From 35005cf1c3599254459c3108db84c1fb19fad946 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Tue, 9 Jul 2024 15:30:30 -0400 Subject: [PATCH 01/14] Add support for Automated Message nonce handling --- .../discord.js/src/structures/interfaces/TextBasedChannel.js | 5 +++++ packages/discord.js/typings/index.d.ts | 1 + 2 files changed, 6 insertions(+) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index f3f2bf8d6a0b..25af16498eef 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -165,6 +165,11 @@ class TextBasedChannel { return dm.send(options); } + if (!options.nonce && this.client.automatedMessageNonce) { + options.nonce = DiscordSnowflake.generate().toString(); + options.enforceNonce = true; + } + let messagePayload; if (options instanceof MessagePayload) { diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index b1071e1d3558..425ac1f615f3 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -5311,6 +5311,7 @@ export interface ClientOptions { ws?: WebSocketOptions; rest?: Partial; jsonTransformer?: (obj: unknown) => unknown; + automatedMessageNonce?: boolean; } export type ClientPresenceStatus = 'online' | 'idle' | 'dnd'; From c9fecf20dd896704e6af973b1aa1ffbc3616f430 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Tue, 9 Jul 2024 15:33:08 -0400 Subject: [PATCH 02/14] Fix options property --- .../discord.js/src/structures/interfaces/TextBasedChannel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index 25af16498eef..de107b6d576c 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -165,7 +165,7 @@ class TextBasedChannel { return dm.send(options); } - if (!options.nonce && this.client.automatedMessageNonce) { + if (!options.nonce && this.client.options.automatedMessageNonce) { options.nonce = DiscordSnowflake.generate().toString(); options.enforceNonce = true; } From 921ffb741e760c786fbf7326189f9b4a5bc1d397 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Tue, 9 Jul 2024 16:10:11 -0400 Subject: [PATCH 03/14] Address PR feedback --- packages/discord.js/src/client/Client.js | 3 +++ .../discord.js/src/structures/interfaces/TextBasedChannel.js | 2 +- packages/discord.js/src/util/Options.js | 2 ++ packages/discord.js/typings/index.d.ts | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/discord.js/src/client/Client.js b/packages/discord.js/src/client/Client.js index f45b0388b2cb..bbf1af478fc9 100644 --- a/packages/discord.js/src/client/Client.js +++ b/packages/discord.js/src/client/Client.js @@ -535,6 +535,9 @@ class Client extends BaseClient { if (typeof options.failIfNotExists !== 'boolean') { throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'failIfNotExists', 'a boolean'); } + if (typeof options.enforceNonce !== 'boolean') { + throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'enforceNonce', 'a boolean'); + } if ( (typeof options.allowedMentions !== 'object' && options.allowedMentions !== undefined) || options.allowedMentions === null diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index de107b6d576c..c0991c68ecc3 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -165,7 +165,7 @@ class TextBasedChannel { return dm.send(options); } - if (!options.nonce && this.client.options.automatedMessageNonce) { + if (typeof options.nonce === 'undefined' && this.client.options.enforceNonce) { options.nonce = DiscordSnowflake.generate().toString(); options.enforceNonce = true; } diff --git a/packages/discord.js/src/util/Options.js b/packages/discord.js/src/util/Options.js index 9e674b76d781..04ec75840c5e 100644 --- a/packages/discord.js/src/util/Options.js +++ b/packages/discord.js/src/util/Options.js @@ -41,6 +41,7 @@ const { version } = require('../../package.json'); * @property {WebsocketOptions} [ws] Options for the WebSocket * @property {RESTOptions} [rest] Options for the REST manager * @property {Function} [jsonTransformer] A function used to transform outgoing json data + * @property {boolean} [enforceNonce=false] The default value for {@link MessageReplyOptions#enforceNonce} */ /** @@ -117,6 +118,7 @@ class Options extends null { makeCache: this.cacheWithLimits(this.DefaultMakeCacheSettings), partials: [], failIfNotExists: true, + enforceNonce: false, presence: {}, sweepers: this.DefaultSweeperSettings, ws: { diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 425ac1f615f3..1b50d8f606b5 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -5311,7 +5311,7 @@ export interface ClientOptions { ws?: WebSocketOptions; rest?: Partial; jsonTransformer?: (obj: unknown) => unknown; - automatedMessageNonce?: boolean; + enforceNonce?: boolean; } export type ClientPresenceStatus = 'online' | 'idle' | 'dnd'; From b582b296c9bf4afa609798825acab8b1e0be23d3 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Wed, 10 Jul 2024 14:34:38 -0400 Subject: [PATCH 04/14] Handled case where it was explicitly set to false for that iteration to not generate a nonce, and PR feedback --- .../discord.js/src/structures/interfaces/TextBasedChannel.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index c0991c68ecc3..ea5f9778946a 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -165,7 +165,10 @@ class TextBasedChannel { return dm.send(options); } - if (typeof options.nonce === 'undefined' && this.client.options.enforceNonce) { + /** + * If `nonce` is not provided, generate one and set `enforceNonce`, unless `enforceNonce` is explicitly set to `false` + */ + if (options.nonce === undefined && options.enforceNonce !== false && this.client.options.enforceNonce) { options.nonce = DiscordSnowflake.generate().toString(); options.enforceNonce = true; } From 5799001bfd2967a8fe44a2f80f883b62ecb7fe32 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Thu, 11 Jul 2024 10:29:51 -0400 Subject: [PATCH 05/14] Fix lint issue --- .../discord.js/src/structures/interfaces/TextBasedChannel.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index ea5f9778946a..9875fbe9067c 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -168,7 +168,8 @@ class TextBasedChannel { /** * If `nonce` is not provided, generate one and set `enforceNonce`, unless `enforceNonce` is explicitly set to `false` */ - if (options.nonce === undefined && options.enforceNonce !== false && this.client.options.enforceNonce) { + const clientEnforceNonce = this.client.options.enforceNonce; + if (options.nonce === undefined && options.enforceNonce !== false && clientEnforceNonce) { options.nonce = DiscordSnowflake.generate().toString(); options.enforceNonce = true; } From 3fe742ef6446f95cb3373cf4665d4712d9b76596 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Thu, 11 Jul 2024 10:37:34 -0400 Subject: [PATCH 06/14] Fix lint issue --- .../discord.js/src/structures/interfaces/TextBasedChannel.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index 9875fbe9067c..b35cdc051768 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -166,10 +166,9 @@ class TextBasedChannel { } /** - * If `nonce` is not provided, generate one and set `enforceNonce`, unless `enforceNonce` is explicitly set to `false` + * If `nonce` is not provided generate one & set `enforceNonce`, unless `enforceNonce` is explicitly set to `false` */ - const clientEnforceNonce = this.client.options.enforceNonce; - if (options.nonce === undefined && options.enforceNonce !== false && clientEnforceNonce) { + if (options.nonce === undefined && options.enforceNonce !== false && this.client.options.enforceNonce) { options.nonce = DiscordSnowflake.generate().toString(); options.enforceNonce = true; } From b0230812af7694f0d1f581abe774b99d712ace95 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Mon, 15 Jul 2024 11:18:59 -0400 Subject: [PATCH 07/14] Add compression method --- .../src/client/websocket/WebSocketManager.js | 2 +- packages/discord.js/src/util/Options.js | 2 + packages/discord.js/typings/index.d.ts | 216 +++++++++--------- 3 files changed, 112 insertions(+), 108 deletions(-) diff --git a/packages/discord.js/src/client/websocket/WebSocketManager.js b/packages/discord.js/src/client/websocket/WebSocketManager.js index 7a1831ad6aea..c397a7a85529 100644 --- a/packages/discord.js/src/client/websocket/WebSocketManager.js +++ b/packages/discord.js/src/client/websocket/WebSocketManager.js @@ -153,7 +153,7 @@ class WebSocketManager extends EventEmitter { updateSessionInfo: (shardId, sessionInfo) => { this.shards.get(shardId).sessionInfo = sessionInfo; }, - compression: zlib ? CompressionMethod.ZlibStream : null, + compression: ws.compressionMethod !== undefined ? ws.compressionMethod : zlib ? CompressionMethod.ZlibStream : null, }; if (ws.buildIdentifyThrottler) wsOptions.buildIdentifyThrottler = ws.buildIdentifyThrottler; if (ws.buildStrategy) wsOptions.buildStrategy = ws.buildStrategy; diff --git a/packages/discord.js/src/util/Options.js b/packages/discord.js/src/util/Options.js index 04ec75840c5e..d6e4d0a85d5e 100644 --- a/packages/discord.js/src/util/Options.js +++ b/packages/discord.js/src/util/Options.js @@ -88,6 +88,7 @@ const { version } = require('../../package.json'); * @typedef {Object} WebsocketOptions * @property {number} [large_threshold=50] Number of members in a guild after which offline users will no longer be * sent in the initial guild member list, must be between 50 and 250 + * @property {CompressionMethod} [compressionMethod=undefined] The compression method to use, if any. Defaults off * @property {number} [version=10] The Discord gateway version to use Changing this can break the library; * only set this if you know what you are doing * @property {BuildStrategyFunction} [buildStrategy] Builds the strategy to use for sharding @@ -124,6 +125,7 @@ class Options extends null { ws: { large_threshold: 50, version: 10, + compressionMethod: undefined }, rest: { ...DefaultRestOptions, diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 1b50d8f606b5..26ac33bc16d0 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -41,6 +41,7 @@ import { Collection, ReadonlyCollection } from '@discordjs/collection'; import { BaseImageURLOptions, ImageURLOptions, RawFile, REST, RESTOptions } from '@discordjs/rest'; import { WebSocketManager as WSWebSocketManager, + CompressionMethod, IShardingStrategy, IIdentifyThrottler, SessionInfo, @@ -663,7 +664,7 @@ export class BaseGuildEmoji extends Emoji { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildTextChannel extends TextBasedChannelFields {} +export interface BaseGuildTextChannel extends TextBasedChannelFields { } export class BaseGuildTextChannel extends GuildChannel { protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean); public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; @@ -684,7 +685,7 @@ export class BaseGuildTextChannel extends GuildChannel { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> {} +export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> { } export class BaseGuildVoiceChannel extends GuildChannel { public constructor(guild: Guild, data?: RawGuildChannelData); public bitrate: number; @@ -858,11 +859,11 @@ export { StringSelectMenuComponent as SelectMenuComponent, }; -export class UserSelectMenuComponent extends BaseSelectMenuComponent {} +export class UserSelectMenuComponent extends BaseSelectMenuComponent { } -export class RoleSelectMenuComponent extends BaseSelectMenuComponent {} +export class RoleSelectMenuComponent extends BaseSelectMenuComponent { } -export class MentionableSelectMenuComponent extends BaseSelectMenuComponent {} +export class MentionableSelectMenuComponent extends BaseSelectMenuComponent { } export class ChannelSelectMenuComponent extends BaseSelectMenuComponent { public getChannelTypes(): ChannelType[] | null; @@ -889,9 +890,9 @@ export interface IconData { proxyIconURL?: string; } -export interface EmbedAuthorData extends Omit, IconData {} +export interface EmbedAuthorData extends Omit, IconData { } -export interface EmbedFooterData extends Omit, IconData {} +export interface EmbedFooterData extends Omit, IconData { } export interface EmbedAssetData extends Omit { proxyURL?: string; @@ -985,8 +986,8 @@ export abstract class BaseChannel extends Base { export type If = Value extends true ? TrueResult : Value extends false - ? FalseResult - : TrueResult | FalseResult; + ? FalseResult + : TrueResult | FalseResult; export class Client extends BaseClient { public constructor(options: ClientOptions); @@ -1245,8 +1246,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } >; /** @@ -1263,8 +1264,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } > | null; public getString(name: string, required: true): string; @@ -1317,7 +1318,7 @@ export interface DMChannel extends Omit< TextBasedChannelFields, 'bulkDelete' | 'fetchWebhooks' | 'createWebhook' | 'setRateLimitPerUser' | 'setNSFW' - > {} + > { } export class DMChannel extends BaseChannel { private constructor(client: Client, data?: RawDMChannelData); public flags: Readonly; @@ -1497,11 +1498,11 @@ export class GuildAuditLogs { private constructor(guild: Guild, data: RawGuildAuditLogEntryData, logs?: GuildAuditLogs); @@ -1599,7 +1600,7 @@ export class GuildMemberFlagsBitField extends BitField { public static resolve(bit?: BitFieldResolvable): number; } -export interface GuildMember extends PartialTextBasedChannelFields {} +export interface GuildMember extends PartialTextBasedChannelFields { } export class GuildMember extends Base { private constructor(client: Client, data: RawGuildMemberData, guild: Guild); private _roles: Snowflake[]; @@ -1849,10 +1850,10 @@ export type CacheTypeReducer< > = [State] extends ['cached'] ? CachedType : [State] extends ['raw'] - ? RawType - : [State] extends ['raw' | 'cached'] - ? PresentType - : Fallback; + ? RawType + : [State] extends ['raw' | 'cached'] + ? PresentType + : Fallback; export type Interaction = | ChatInputCommandInteraction @@ -1958,7 +1959,7 @@ export class InteractionCollector exte } // tslint:disable-next-line no-empty-interface -export interface InteractionWebhook extends PartialWebhookFields {} +export interface InteractionWebhook extends PartialWebhookFields { } export class InteractionWebhook { public constructor(client: Client, id: Snowflake, token: string); public readonly client: Client; @@ -2054,9 +2055,9 @@ export interface AwaitMessageCollectorOptionsParams< ComponentType extends MessageComponentType, Cached extends boolean = boolean, > extends Pick< - InteractionCollectorOptions[ComponentType]>, - keyof AwaitMessageComponentOptions - > { + InteractionCollectorOptions[ComponentType]>, + keyof AwaitMessageComponentOptions +> { componentType?: ComponentType; } @@ -2528,7 +2529,7 @@ export interface ThreadOnlyChannel | 'awaitMessages' | 'createMessageComponentCollector' | 'awaitMessageComponent' - > {} + > { } export abstract class ThreadOnlyChannel extends GuildChannel { public type: ChannelType.GuildForum | ChannelType.GuildMedia; public threads: GuildForumThreadManager; @@ -3227,7 +3228,7 @@ export interface PrivateThreadChannel extends ThreadChannel { // tslint:disable-next-line no-empty-interface export interface ThreadChannel - extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> {} + extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> { } export class ThreadChannel extends BaseChannel { private constructor(guild: Guild, data?: RawThreadChannelData, client?: Client); public archived: boolean | null; @@ -3329,7 +3330,7 @@ export interface AvatarDecorationData { } // tslint:disable-next-line no-empty-interface -export interface User extends PartialTextBasedChannelFields {} +export interface User extends PartialTextBasedChannelFields { } export class User extends Base { protected constructor(client: Client, data: RawUserData); private _equals(user: APIUser): boolean; @@ -3592,7 +3593,7 @@ export class VoiceState extends Base { } // tslint:disable-next-line no-empty-interface -export interface Webhook extends WebhookFields {} +export interface Webhook extends WebhookFields { } export class Webhook { private constructor(client: Client, data?: RawWebhookData); public avatar: string | null; @@ -3607,8 +3608,8 @@ export class Webhook { public token: Type extends WebhookType.Incoming ? string : Type extends WebhookType.ChannelFollower - ? null - : string | null; + ? null + : string | null; public type: Type; public applicationId: Type extends WebhookType.Application ? Snowflake : null; public get channel(): TextChannel | VoiceChannel | NewsChannel | StageChannel | ForumChannel | MediaChannel | null; @@ -3628,7 +3629,7 @@ export class Webhook { } // tslint:disable-next-line no-empty-interface -export interface WebhookClient extends WebhookFields, BaseClient {} +export interface WebhookClient extends WebhookFields, BaseClient { } export class WebhookClient extends BaseClient { public constructor(data: WebhookClientData, options?: WebhookClientOptions); public readonly client: this; @@ -4114,23 +4115,23 @@ export class ApplicationCommandPermissionsManager< public remove( options: | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }), + token: string; + channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }), ): Promise; public set( options: FetchSingleOptions & EditApplicationCommandPermissionsMixin, @@ -4208,7 +4209,7 @@ export class EntitlementManager extends CachedManager; } -export interface FetchGuildApplicationCommandFetchOptions extends Omit {} +export interface FetchGuildApplicationCommandFetchOptions extends Omit { } export class GuildApplicationCommandManager extends ApplicationCommandManager { private constructor(guild: Guild, iterable?: Iterable); @@ -4661,7 +4662,7 @@ export interface WebhookFields extends PartialWebhookFields { //#region Typedefs -export interface ActivitiesOptions extends Omit {} +export interface ActivitiesOptions extends Omit { } export interface ActivityOptions { name: string; @@ -5017,10 +5018,10 @@ export interface AutoModerationTriggerMetadata { } export interface AwaitMessageComponentOptions - extends Omit, 'max' | 'maxComponents' | 'maxUsers'> {} + extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { } export interface ModalSubmitInteractionCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } export interface AwaitModalSubmitOptions extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { @@ -5042,7 +5043,7 @@ export interface BanOptions { reason?: string; } -export interface BulkBanOptions extends Omit {} +export interface BulkBanOptions extends Omit { } export interface BulkBanResult { bannedUsers: readonly Snowflake[]; @@ -5130,8 +5131,8 @@ export type CacheFactory = ( export type CacheWithLimitsOptions = { [K in keyof Caches]?: Caches[K][0]['prototype'] extends DataManager - ? LimitedCollectionOptions | number - : never; + ? LimitedCollectionOptions | number + : never; }; export interface CategoryCreateChannelOptions { @@ -5384,9 +5385,9 @@ export interface CommandInteractionResolvedData { focused: true; type: - | ApplicationCommandOptionType.String - | ApplicationCommandOptionType.Integer - | ApplicationCommandOptionType.Number; + | ApplicationCommandOptionType.String + | ApplicationCommandOptionType.Integer + | ApplicationCommandOptionType.Number; value: string; } @@ -5805,20 +5806,20 @@ export interface GuildAuditLogsEntryExtraField { [AuditLogEvent.MessageUnpin]: { channel: GuildTextBasedChannel | { id: Snowflake }; messageId: Snowflake }; [AuditLogEvent.MemberDisconnect]: { count: number }; [AuditLogEvent.ChannelOverwriteCreate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteUpdate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteDelete]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.StageInstanceCreate]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceDelete]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceUpdate]: StageChannel | { id: Snowflake }; @@ -5847,8 +5848,8 @@ export interface GuildAuditLogsEntryTargetField> {} +export interface AutoModerationRuleEditOptions extends Partial> { } -export interface AutoModerationTriggerMetadataOptions extends Partial {} +export interface AutoModerationTriggerMetadataOptions extends Partial { } export interface AutoModerationActionOptions { type: AutoModerationActionType; @@ -6104,10 +6105,10 @@ export type GuildScheduledEventResolvable = Snowflake | GuildScheduledEvent; export type GuildScheduledEventSetStatusArg = Status extends GuildScheduledEventStatus.Scheduled - ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled - : Status extends GuildScheduledEventStatus.Active - ? GuildScheduledEventStatus.Completed - : never; + ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled + : Status extends GuildScheduledEventStatus.Active + ? GuildScheduledEventStatus.Completed + : never; export interface GuildScheduledEventUser { guildScheduledEventId: Snowflake; @@ -6184,7 +6185,7 @@ export interface InteractionDeferReplyOptions { fetchReply?: boolean; } -export interface InteractionDeferUpdateOptions extends Omit {} +export interface InteractionDeferUpdateOptions extends Omit { } export interface InteractionReplyOptions extends BaseMessageOptions { tts?: boolean; @@ -6298,10 +6299,10 @@ export type CollectedMessageInteraction = >; export interface MessageComponentCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } export interface MessageChannelComponentCollectorOptions - extends Omit, 'channel' | 'guild' | 'interactionType'> {} + extends Omit, 'channel' | 'guild' | 'interactionType'> { } export interface MessageInteraction { id: Snowflake; @@ -6360,7 +6361,7 @@ export interface MessageCreateOptions extends BaseMessageOptions { export interface GuildForumThreadMessageCreateOptions extends Omit, - Pick {} + Pick { } export interface MessageEditAttachmentData { id: Snowflake; @@ -6486,7 +6487,7 @@ export type PermissionResolvable = BitFieldResolvable extends ReadonlyArray> {} +export interface RecursiveReadonlyArray extends ReadonlyArray> { } export interface PartialRecipient { username: string; @@ -6532,30 +6533,30 @@ export type Partialize< NullableKeys extends keyof PartialType | null = null, OverridableKeys extends keyof PartialType | '' = '', > = { - [K in keyof Omit]: K extends 'partial' + [K in keyof Omit]: K extends 'partial' ? true : K extends NulledKeys - ? null - : K extends NullableKeys - ? PartialType[K] | null - : PartialType[K]; -}; + ? null + : K extends NullableKeys + ? PartialType[K] | null + : PartialType[K]; + }; export interface PartialDMChannel extends Partialize { lastMessageId: undefined; } -export interface PartialGuildMember extends Partialize {} +export interface PartialGuildMember extends Partialize { } export interface PartialMessage - extends Partialize {} + extends Partialize { } -export interface PartialMessageReaction extends Partialize {} +export interface PartialMessageReaction extends Partialize { } export interface PartialGuildScheduledEvent - extends Partialize {} + extends Partialize { } -export interface PartialThreadMember extends Partialize {} +export interface PartialThreadMember extends Partialize { } export interface PartialOverwriteData { id: Snowflake | number; @@ -6578,7 +6579,7 @@ export enum Partials { ThreadMember, } -export interface PartialUser extends Partialize {} +export interface PartialUser extends Partialize { } export type PresenceStatusData = ClientPresenceStatus | 'invisible'; @@ -6735,8 +6736,8 @@ export interface SweeperDefinitions { export type SweeperOptions = { [Key in keyof SweeperDefinitions]?: SweeperDefinitions[Key][2] extends true - ? SweepOptions | LifetimeSweepOptions - : SweepOptions; + ? SweepOptions | LifetimeSweepOptions + : SweepOptions; }; export interface LimitedCollectionOptions { @@ -6840,7 +6841,7 @@ export interface WebhookClientDataURL { url: string; } -export interface WebhookClientOptions extends Pick {} +export interface WebhookClientOptions extends Pick { } export interface WebhookDeleteOptions { token?: string; @@ -6876,6 +6877,7 @@ export interface WebhookMessageCreateOptions extends Omit; @@ -6923,14 +6925,14 @@ export interface ClientApplicationInstallParams { export type Serialized = Value extends symbol | bigint | (() => any) ? never : Value extends number | string | boolean | undefined - ? Value - : Value extends JSONEncodable - ? JSONResult - : Value extends ReadonlyArray - ? Serialized[] - : Value extends ReadonlyMap | ReadonlySet - ? {} - : { [K in keyof Value]: Serialized }; + ? Value + : Value extends JSONEncodable + ? JSONResult + : Value extends ReadonlyArray + ? Serialized[] + : Value extends ReadonlyMap | ReadonlySet + ? {} + : { [K in keyof Value]: Serialized }; //#endregion From 21c7312c9d49bf925e6a87edd18fbd93596389fb Mon Sep 17 00:00:00 2001 From: Jacob Morrison Date: Fri, 26 Jul 2024 13:39:59 -0400 Subject: [PATCH 08/14] Update Client.js --- packages/discord.js/src/client/Client.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/discord.js/src/client/Client.js b/packages/discord.js/src/client/Client.js index bbf1af478fc9..f45b0388b2cb 100644 --- a/packages/discord.js/src/client/Client.js +++ b/packages/discord.js/src/client/Client.js @@ -535,9 +535,6 @@ class Client extends BaseClient { if (typeof options.failIfNotExists !== 'boolean') { throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'failIfNotExists', 'a boolean'); } - if (typeof options.enforceNonce !== 'boolean') { - throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'enforceNonce', 'a boolean'); - } if ( (typeof options.allowedMentions !== 'object' && options.allowedMentions !== undefined) || options.allowedMentions === null From 958127ed928da2db1da19e08de31c3e7ae35ef61 Mon Sep 17 00:00:00 2001 From: Jacob Morrison Date: Fri, 26 Jul 2024 13:40:53 -0400 Subject: [PATCH 09/14] Update TextBasedChannel.js --- .../src/structures/interfaces/TextBasedChannel.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index b35cdc051768..eae5b7c6741b 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -164,15 +164,7 @@ class TextBasedChannel { const dm = await this.createDM(); return dm.send(options); } - - /** - * If `nonce` is not provided generate one & set `enforceNonce`, unless `enforceNonce` is explicitly set to `false` - */ - if (options.nonce === undefined && options.enforceNonce !== false && this.client.options.enforceNonce) { - options.nonce = DiscordSnowflake.generate().toString(); - options.enforceNonce = true; - } - + let messagePayload; if (options instanceof MessagePayload) { From 056e7ba116a254575f3648cf513efe0ca64b4b8c Mon Sep 17 00:00:00 2001 From: Jacob Morrison Date: Fri, 26 Jul 2024 13:41:10 -0400 Subject: [PATCH 10/14] Update Options.js --- packages/discord.js/src/util/Options.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/discord.js/src/util/Options.js b/packages/discord.js/src/util/Options.js index d6e4d0a85d5e..c3f1d272ede5 100644 --- a/packages/discord.js/src/util/Options.js +++ b/packages/discord.js/src/util/Options.js @@ -41,7 +41,6 @@ const { version } = require('../../package.json'); * @property {WebsocketOptions} [ws] Options for the WebSocket * @property {RESTOptions} [rest] Options for the REST manager * @property {Function} [jsonTransformer] A function used to transform outgoing json data - * @property {boolean} [enforceNonce=false] The default value for {@link MessageReplyOptions#enforceNonce} */ /** From 8b5d4116b7583eeefda6343c6daa7e33f511bf2a Mon Sep 17 00:00:00 2001 From: Jacob Morrison Date: Fri, 26 Jul 2024 13:41:37 -0400 Subject: [PATCH 11/14] Update Options.js --- packages/discord.js/src/util/Options.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/discord.js/src/util/Options.js b/packages/discord.js/src/util/Options.js index c3f1d272ede5..bd6d37947daa 100644 --- a/packages/discord.js/src/util/Options.js +++ b/packages/discord.js/src/util/Options.js @@ -118,7 +118,6 @@ class Options extends null { makeCache: this.cacheWithLimits(this.DefaultMakeCacheSettings), partials: [], failIfNotExists: true, - enforceNonce: false, presence: {}, sweepers: this.DefaultSweeperSettings, ws: { From e6a6883bb7c211f44064d01d8824826f920ac4ab Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Fri, 26 Jul 2024 13:42:33 -0400 Subject: [PATCH 12/14] Fix lint --- .../src/client/websocket/WebSocketManager.js | 3 +- packages/discord.js/src/util/Options.js | 2 +- packages/discord.js/typings/index.d.ts | 214 +++++++++--------- 3 files changed, 110 insertions(+), 109 deletions(-) diff --git a/packages/discord.js/src/client/websocket/WebSocketManager.js b/packages/discord.js/src/client/websocket/WebSocketManager.js index c397a7a85529..133eb7fe6907 100644 --- a/packages/discord.js/src/client/websocket/WebSocketManager.js +++ b/packages/discord.js/src/client/websocket/WebSocketManager.js @@ -153,7 +153,8 @@ class WebSocketManager extends EventEmitter { updateSessionInfo: (shardId, sessionInfo) => { this.shards.get(shardId).sessionInfo = sessionInfo; }, - compression: ws.compressionMethod !== undefined ? ws.compressionMethod : zlib ? CompressionMethod.ZlibStream : null, + compression: + ws.compressionMethod !== undefined ? ws.compressionMethod : zlib ? CompressionMethod.ZlibStream : null, }; if (ws.buildIdentifyThrottler) wsOptions.buildIdentifyThrottler = ws.buildIdentifyThrottler; if (ws.buildStrategy) wsOptions.buildStrategy = ws.buildStrategy; diff --git a/packages/discord.js/src/util/Options.js b/packages/discord.js/src/util/Options.js index d6e4d0a85d5e..c1254d4d5ba8 100644 --- a/packages/discord.js/src/util/Options.js +++ b/packages/discord.js/src/util/Options.js @@ -125,7 +125,7 @@ class Options extends null { ws: { large_threshold: 50, version: 10, - compressionMethod: undefined + compressionMethod: undefined, }, rest: { ...DefaultRestOptions, diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 26ac33bc16d0..df92782093e8 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -664,7 +664,7 @@ export class BaseGuildEmoji extends Emoji { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildTextChannel extends TextBasedChannelFields { } +export interface BaseGuildTextChannel extends TextBasedChannelFields {} export class BaseGuildTextChannel extends GuildChannel { protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean); public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; @@ -685,7 +685,7 @@ export class BaseGuildTextChannel extends GuildChannel { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> { } +export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> {} export class BaseGuildVoiceChannel extends GuildChannel { public constructor(guild: Guild, data?: RawGuildChannelData); public bitrate: number; @@ -859,11 +859,11 @@ export { StringSelectMenuComponent as SelectMenuComponent, }; -export class UserSelectMenuComponent extends BaseSelectMenuComponent { } +export class UserSelectMenuComponent extends BaseSelectMenuComponent {} -export class RoleSelectMenuComponent extends BaseSelectMenuComponent { } +export class RoleSelectMenuComponent extends BaseSelectMenuComponent {} -export class MentionableSelectMenuComponent extends BaseSelectMenuComponent { } +export class MentionableSelectMenuComponent extends BaseSelectMenuComponent {} export class ChannelSelectMenuComponent extends BaseSelectMenuComponent { public getChannelTypes(): ChannelType[] | null; @@ -890,9 +890,9 @@ export interface IconData { proxyIconURL?: string; } -export interface EmbedAuthorData extends Omit, IconData { } +export interface EmbedAuthorData extends Omit, IconData {} -export interface EmbedFooterData extends Omit, IconData { } +export interface EmbedFooterData extends Omit, IconData {} export interface EmbedAssetData extends Omit { proxyURL?: string; @@ -986,8 +986,8 @@ export abstract class BaseChannel extends Base { export type If = Value extends true ? TrueResult : Value extends false - ? FalseResult - : TrueResult | FalseResult; + ? FalseResult + : TrueResult | FalseResult; export class Client extends BaseClient { public constructor(options: ClientOptions); @@ -1246,8 +1246,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } >; /** @@ -1264,8 +1264,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } > | null; public getString(name: string, required: true): string; @@ -1318,7 +1318,7 @@ export interface DMChannel extends Omit< TextBasedChannelFields, 'bulkDelete' | 'fetchWebhooks' | 'createWebhook' | 'setRateLimitPerUser' | 'setNSFW' - > { } + > {} export class DMChannel extends BaseChannel { private constructor(client: Client, data?: RawDMChannelData); public flags: Readonly; @@ -1498,11 +1498,11 @@ export class GuildAuditLogs { private constructor(guild: Guild, data: RawGuildAuditLogEntryData, logs?: GuildAuditLogs); @@ -1600,7 +1600,7 @@ export class GuildMemberFlagsBitField extends BitField { public static resolve(bit?: BitFieldResolvable): number; } -export interface GuildMember extends PartialTextBasedChannelFields { } +export interface GuildMember extends PartialTextBasedChannelFields {} export class GuildMember extends Base { private constructor(client: Client, data: RawGuildMemberData, guild: Guild); private _roles: Snowflake[]; @@ -1850,10 +1850,10 @@ export type CacheTypeReducer< > = [State] extends ['cached'] ? CachedType : [State] extends ['raw'] - ? RawType - : [State] extends ['raw' | 'cached'] - ? PresentType - : Fallback; + ? RawType + : [State] extends ['raw' | 'cached'] + ? PresentType + : Fallback; export type Interaction = | ChatInputCommandInteraction @@ -1959,7 +1959,7 @@ export class InteractionCollector exte } // tslint:disable-next-line no-empty-interface -export interface InteractionWebhook extends PartialWebhookFields { } +export interface InteractionWebhook extends PartialWebhookFields {} export class InteractionWebhook { public constructor(client: Client, id: Snowflake, token: string); public readonly client: Client; @@ -2055,9 +2055,9 @@ export interface AwaitMessageCollectorOptionsParams< ComponentType extends MessageComponentType, Cached extends boolean = boolean, > extends Pick< - InteractionCollectorOptions[ComponentType]>, - keyof AwaitMessageComponentOptions -> { + InteractionCollectorOptions[ComponentType]>, + keyof AwaitMessageComponentOptions + > { componentType?: ComponentType; } @@ -2529,7 +2529,7 @@ export interface ThreadOnlyChannel | 'awaitMessages' | 'createMessageComponentCollector' | 'awaitMessageComponent' - > { } + > {} export abstract class ThreadOnlyChannel extends GuildChannel { public type: ChannelType.GuildForum | ChannelType.GuildMedia; public threads: GuildForumThreadManager; @@ -3228,7 +3228,7 @@ export interface PrivateThreadChannel extends ThreadChannel { // tslint:disable-next-line no-empty-interface export interface ThreadChannel - extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> { } + extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> {} export class ThreadChannel extends BaseChannel { private constructor(guild: Guild, data?: RawThreadChannelData, client?: Client); public archived: boolean | null; @@ -3330,7 +3330,7 @@ export interface AvatarDecorationData { } // tslint:disable-next-line no-empty-interface -export interface User extends PartialTextBasedChannelFields { } +export interface User extends PartialTextBasedChannelFields {} export class User extends Base { protected constructor(client: Client, data: RawUserData); private _equals(user: APIUser): boolean; @@ -3593,7 +3593,7 @@ export class VoiceState extends Base { } // tslint:disable-next-line no-empty-interface -export interface Webhook extends WebhookFields { } +export interface Webhook extends WebhookFields {} export class Webhook { private constructor(client: Client, data?: RawWebhookData); public avatar: string | null; @@ -3608,8 +3608,8 @@ export class Webhook { public token: Type extends WebhookType.Incoming ? string : Type extends WebhookType.ChannelFollower - ? null - : string | null; + ? null + : string | null; public type: Type; public applicationId: Type extends WebhookType.Application ? Snowflake : null; public get channel(): TextChannel | VoiceChannel | NewsChannel | StageChannel | ForumChannel | MediaChannel | null; @@ -3629,7 +3629,7 @@ export class Webhook { } // tslint:disable-next-line no-empty-interface -export interface WebhookClient extends WebhookFields, BaseClient { } +export interface WebhookClient extends WebhookFields, BaseClient {} export class WebhookClient extends BaseClient { public constructor(data: WebhookClientData, options?: WebhookClientOptions); public readonly client: this; @@ -4115,23 +4115,23 @@ export class ApplicationCommandPermissionsManager< public remove( options: | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }), + token: string; + channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }), ): Promise; public set( options: FetchSingleOptions & EditApplicationCommandPermissionsMixin, @@ -4209,7 +4209,7 @@ export class EntitlementManager extends CachedManager; } -export interface FetchGuildApplicationCommandFetchOptions extends Omit { } +export interface FetchGuildApplicationCommandFetchOptions extends Omit {} export class GuildApplicationCommandManager extends ApplicationCommandManager { private constructor(guild: Guild, iterable?: Iterable); @@ -4662,7 +4662,7 @@ export interface WebhookFields extends PartialWebhookFields { //#region Typedefs -export interface ActivitiesOptions extends Omit { } +export interface ActivitiesOptions extends Omit {} export interface ActivityOptions { name: string; @@ -5018,10 +5018,10 @@ export interface AutoModerationTriggerMetadata { } export interface AwaitMessageComponentOptions - extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { } + extends Omit, 'max' | 'maxComponents' | 'maxUsers'> {} export interface ModalSubmitInteractionCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} export interface AwaitModalSubmitOptions extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { @@ -5043,7 +5043,7 @@ export interface BanOptions { reason?: string; } -export interface BulkBanOptions extends Omit { } +export interface BulkBanOptions extends Omit {} export interface BulkBanResult { bannedUsers: readonly Snowflake[]; @@ -5131,8 +5131,8 @@ export type CacheFactory = ( export type CacheWithLimitsOptions = { [K in keyof Caches]?: Caches[K][0]['prototype'] extends DataManager - ? LimitedCollectionOptions | number - : never; + ? LimitedCollectionOptions | number + : never; }; export interface CategoryCreateChannelOptions { @@ -5385,9 +5385,9 @@ export interface CommandInteractionResolvedData { focused: true; type: - | ApplicationCommandOptionType.String - | ApplicationCommandOptionType.Integer - | ApplicationCommandOptionType.Number; + | ApplicationCommandOptionType.String + | ApplicationCommandOptionType.Integer + | ApplicationCommandOptionType.Number; value: string; } @@ -5806,20 +5806,20 @@ export interface GuildAuditLogsEntryExtraField { [AuditLogEvent.MessageUnpin]: { channel: GuildTextBasedChannel | { id: Snowflake }; messageId: Snowflake }; [AuditLogEvent.MemberDisconnect]: { count: number }; [AuditLogEvent.ChannelOverwriteCreate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteUpdate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteDelete]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.StageInstanceCreate]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceDelete]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceUpdate]: StageChannel | { id: Snowflake }; @@ -5848,8 +5848,8 @@ export interface GuildAuditLogsEntryTargetField> { } +export interface AutoModerationRuleEditOptions extends Partial> {} -export interface AutoModerationTriggerMetadataOptions extends Partial { } +export interface AutoModerationTriggerMetadataOptions extends Partial {} export interface AutoModerationActionOptions { type: AutoModerationActionType; @@ -6105,10 +6105,10 @@ export type GuildScheduledEventResolvable = Snowflake | GuildScheduledEvent; export type GuildScheduledEventSetStatusArg = Status extends GuildScheduledEventStatus.Scheduled - ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled - : Status extends GuildScheduledEventStatus.Active - ? GuildScheduledEventStatus.Completed - : never; + ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled + : Status extends GuildScheduledEventStatus.Active + ? GuildScheduledEventStatus.Completed + : never; export interface GuildScheduledEventUser { guildScheduledEventId: Snowflake; @@ -6185,7 +6185,7 @@ export interface InteractionDeferReplyOptions { fetchReply?: boolean; } -export interface InteractionDeferUpdateOptions extends Omit { } +export interface InteractionDeferUpdateOptions extends Omit {} export interface InteractionReplyOptions extends BaseMessageOptions { tts?: boolean; @@ -6299,10 +6299,10 @@ export type CollectedMessageInteraction = >; export interface MessageComponentCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} export interface MessageChannelComponentCollectorOptions - extends Omit, 'channel' | 'guild' | 'interactionType'> { } + extends Omit, 'channel' | 'guild' | 'interactionType'> {} export interface MessageInteraction { id: Snowflake; @@ -6361,7 +6361,7 @@ export interface MessageCreateOptions extends BaseMessageOptions { export interface GuildForumThreadMessageCreateOptions extends Omit, - Pick { } + Pick {} export interface MessageEditAttachmentData { id: Snowflake; @@ -6487,7 +6487,7 @@ export type PermissionResolvable = BitFieldResolvable extends ReadonlyArray> { } +export interface RecursiveReadonlyArray extends ReadonlyArray> {} export interface PartialRecipient { username: string; @@ -6533,30 +6533,30 @@ export type Partialize< NullableKeys extends keyof PartialType | null = null, OverridableKeys extends keyof PartialType | '' = '', > = { - [K in keyof Omit]: K extends 'partial' + [K in keyof Omit]: K extends 'partial' ? true : K extends NulledKeys - ? null - : K extends NullableKeys - ? PartialType[K] | null - : PartialType[K]; - }; + ? null + : K extends NullableKeys + ? PartialType[K] | null + : PartialType[K]; +}; export interface PartialDMChannel extends Partialize { lastMessageId: undefined; } -export interface PartialGuildMember extends Partialize { } +export interface PartialGuildMember extends Partialize {} export interface PartialMessage - extends Partialize { } + extends Partialize {} -export interface PartialMessageReaction extends Partialize { } +export interface PartialMessageReaction extends Partialize {} export interface PartialGuildScheduledEvent - extends Partialize { } + extends Partialize {} -export interface PartialThreadMember extends Partialize { } +export interface PartialThreadMember extends Partialize {} export interface PartialOverwriteData { id: Snowflake | number; @@ -6579,7 +6579,7 @@ export enum Partials { ThreadMember, } -export interface PartialUser extends Partialize { } +export interface PartialUser extends Partialize {} export type PresenceStatusData = ClientPresenceStatus | 'invisible'; @@ -6736,8 +6736,8 @@ export interface SweeperDefinitions { export type SweeperOptions = { [Key in keyof SweeperDefinitions]?: SweeperDefinitions[Key][2] extends true - ? SweepOptions | LifetimeSweepOptions - : SweepOptions; + ? SweepOptions | LifetimeSweepOptions + : SweepOptions; }; export interface LimitedCollectionOptions { @@ -6841,7 +6841,7 @@ export interface WebhookClientDataURL { url: string; } -export interface WebhookClientOptions extends Pick { } +export interface WebhookClientOptions extends Pick {} export interface WebhookDeleteOptions { token?: string; @@ -6925,14 +6925,14 @@ export interface ClientApplicationInstallParams { export type Serialized = Value extends symbol | bigint | (() => any) ? never : Value extends number | string | boolean | undefined - ? Value - : Value extends JSONEncodable - ? JSONResult - : Value extends ReadonlyArray - ? Serialized[] - : Value extends ReadonlyMap | ReadonlySet - ? {} - : { [K in keyof Value]: Serialized }; + ? Value + : Value extends JSONEncodable + ? JSONResult + : Value extends ReadonlyArray + ? Serialized[] + : Value extends ReadonlyMap | ReadonlySet + ? {} + : { [K in keyof Value]: Serialized }; //#endregion From e25aa409af0fb10c7e6ecba1c438752a2f5b7d64 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Fri, 26 Jul 2024 13:43:11 -0400 Subject: [PATCH 13/14] Fix wrong change --- packages/discord.js/typings/index.d.ts | 215 ++++++++++++------------- 1 file changed, 107 insertions(+), 108 deletions(-) diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index df92782093e8..5b44ad8caf9c 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -664,7 +664,7 @@ export class BaseGuildEmoji extends Emoji { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildTextChannel extends TextBasedChannelFields {} +export interface BaseGuildTextChannel extends TextBasedChannelFields { } export class BaseGuildTextChannel extends GuildChannel { protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean); public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; @@ -685,7 +685,7 @@ export class BaseGuildTextChannel extends GuildChannel { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> {} +export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> { } export class BaseGuildVoiceChannel extends GuildChannel { public constructor(guild: Guild, data?: RawGuildChannelData); public bitrate: number; @@ -859,11 +859,11 @@ export { StringSelectMenuComponent as SelectMenuComponent, }; -export class UserSelectMenuComponent extends BaseSelectMenuComponent {} +export class UserSelectMenuComponent extends BaseSelectMenuComponent { } -export class RoleSelectMenuComponent extends BaseSelectMenuComponent {} +export class RoleSelectMenuComponent extends BaseSelectMenuComponent { } -export class MentionableSelectMenuComponent extends BaseSelectMenuComponent {} +export class MentionableSelectMenuComponent extends BaseSelectMenuComponent { } export class ChannelSelectMenuComponent extends BaseSelectMenuComponent { public getChannelTypes(): ChannelType[] | null; @@ -890,9 +890,9 @@ export interface IconData { proxyIconURL?: string; } -export interface EmbedAuthorData extends Omit, IconData {} +export interface EmbedAuthorData extends Omit, IconData { } -export interface EmbedFooterData extends Omit, IconData {} +export interface EmbedFooterData extends Omit, IconData { } export interface EmbedAssetData extends Omit { proxyURL?: string; @@ -986,8 +986,8 @@ export abstract class BaseChannel extends Base { export type If = Value extends true ? TrueResult : Value extends false - ? FalseResult - : TrueResult | FalseResult; + ? FalseResult + : TrueResult | FalseResult; export class Client extends BaseClient { public constructor(options: ClientOptions); @@ -1246,8 +1246,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } >; /** @@ -1264,8 +1264,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } > | null; public getString(name: string, required: true): string; @@ -1318,7 +1318,7 @@ export interface DMChannel extends Omit< TextBasedChannelFields, 'bulkDelete' | 'fetchWebhooks' | 'createWebhook' | 'setRateLimitPerUser' | 'setNSFW' - > {} + > { } export class DMChannel extends BaseChannel { private constructor(client: Client, data?: RawDMChannelData); public flags: Readonly; @@ -1498,11 +1498,11 @@ export class GuildAuditLogs { private constructor(guild: Guild, data: RawGuildAuditLogEntryData, logs?: GuildAuditLogs); @@ -1600,7 +1600,7 @@ export class GuildMemberFlagsBitField extends BitField { public static resolve(bit?: BitFieldResolvable): number; } -export interface GuildMember extends PartialTextBasedChannelFields {} +export interface GuildMember extends PartialTextBasedChannelFields { } export class GuildMember extends Base { private constructor(client: Client, data: RawGuildMemberData, guild: Guild); private _roles: Snowflake[]; @@ -1850,10 +1850,10 @@ export type CacheTypeReducer< > = [State] extends ['cached'] ? CachedType : [State] extends ['raw'] - ? RawType - : [State] extends ['raw' | 'cached'] - ? PresentType - : Fallback; + ? RawType + : [State] extends ['raw' | 'cached'] + ? PresentType + : Fallback; export type Interaction = | ChatInputCommandInteraction @@ -1959,7 +1959,7 @@ export class InteractionCollector exte } // tslint:disable-next-line no-empty-interface -export interface InteractionWebhook extends PartialWebhookFields {} +export interface InteractionWebhook extends PartialWebhookFields { } export class InteractionWebhook { public constructor(client: Client, id: Snowflake, token: string); public readonly client: Client; @@ -2055,9 +2055,9 @@ export interface AwaitMessageCollectorOptionsParams< ComponentType extends MessageComponentType, Cached extends boolean = boolean, > extends Pick< - InteractionCollectorOptions[ComponentType]>, - keyof AwaitMessageComponentOptions - > { + InteractionCollectorOptions[ComponentType]>, + keyof AwaitMessageComponentOptions +> { componentType?: ComponentType; } @@ -2529,7 +2529,7 @@ export interface ThreadOnlyChannel | 'awaitMessages' | 'createMessageComponentCollector' | 'awaitMessageComponent' - > {} + > { } export abstract class ThreadOnlyChannel extends GuildChannel { public type: ChannelType.GuildForum | ChannelType.GuildMedia; public threads: GuildForumThreadManager; @@ -3228,7 +3228,7 @@ export interface PrivateThreadChannel extends ThreadChannel { // tslint:disable-next-line no-empty-interface export interface ThreadChannel - extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> {} + extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> { } export class ThreadChannel extends BaseChannel { private constructor(guild: Guild, data?: RawThreadChannelData, client?: Client); public archived: boolean | null; @@ -3330,7 +3330,7 @@ export interface AvatarDecorationData { } // tslint:disable-next-line no-empty-interface -export interface User extends PartialTextBasedChannelFields {} +export interface User extends PartialTextBasedChannelFields { } export class User extends Base { protected constructor(client: Client, data: RawUserData); private _equals(user: APIUser): boolean; @@ -3593,7 +3593,7 @@ export class VoiceState extends Base { } // tslint:disable-next-line no-empty-interface -export interface Webhook extends WebhookFields {} +export interface Webhook extends WebhookFields { } export class Webhook { private constructor(client: Client, data?: RawWebhookData); public avatar: string | null; @@ -3608,8 +3608,8 @@ export class Webhook { public token: Type extends WebhookType.Incoming ? string : Type extends WebhookType.ChannelFollower - ? null - : string | null; + ? null + : string | null; public type: Type; public applicationId: Type extends WebhookType.Application ? Snowflake : null; public get channel(): TextChannel | VoiceChannel | NewsChannel | StageChannel | ForumChannel | MediaChannel | null; @@ -3629,7 +3629,7 @@ export class Webhook { } // tslint:disable-next-line no-empty-interface -export interface WebhookClient extends WebhookFields, BaseClient {} +export interface WebhookClient extends WebhookFields, BaseClient { } export class WebhookClient extends BaseClient { public constructor(data: WebhookClientData, options?: WebhookClientOptions); public readonly client: this; @@ -4115,23 +4115,23 @@ export class ApplicationCommandPermissionsManager< public remove( options: | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }), + token: string; + channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }), ): Promise; public set( options: FetchSingleOptions & EditApplicationCommandPermissionsMixin, @@ -4209,7 +4209,7 @@ export class EntitlementManager extends CachedManager; } -export interface FetchGuildApplicationCommandFetchOptions extends Omit {} +export interface FetchGuildApplicationCommandFetchOptions extends Omit { } export class GuildApplicationCommandManager extends ApplicationCommandManager { private constructor(guild: Guild, iterable?: Iterable); @@ -4662,7 +4662,7 @@ export interface WebhookFields extends PartialWebhookFields { //#region Typedefs -export interface ActivitiesOptions extends Omit {} +export interface ActivitiesOptions extends Omit { } export interface ActivityOptions { name: string; @@ -5018,10 +5018,10 @@ export interface AutoModerationTriggerMetadata { } export interface AwaitMessageComponentOptions - extends Omit, 'max' | 'maxComponents' | 'maxUsers'> {} + extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { } export interface ModalSubmitInteractionCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } export interface AwaitModalSubmitOptions extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { @@ -5043,7 +5043,7 @@ export interface BanOptions { reason?: string; } -export interface BulkBanOptions extends Omit {} +export interface BulkBanOptions extends Omit { } export interface BulkBanResult { bannedUsers: readonly Snowflake[]; @@ -5131,8 +5131,8 @@ export type CacheFactory = ( export type CacheWithLimitsOptions = { [K in keyof Caches]?: Caches[K][0]['prototype'] extends DataManager - ? LimitedCollectionOptions | number - : never; + ? LimitedCollectionOptions | number + : never; }; export interface CategoryCreateChannelOptions { @@ -5312,7 +5312,6 @@ export interface ClientOptions { ws?: WebSocketOptions; rest?: Partial; jsonTransformer?: (obj: unknown) => unknown; - enforceNonce?: boolean; } export type ClientPresenceStatus = 'online' | 'idle' | 'dnd'; @@ -5385,9 +5384,9 @@ export interface CommandInteractionResolvedData { focused: true; type: - | ApplicationCommandOptionType.String - | ApplicationCommandOptionType.Integer - | ApplicationCommandOptionType.Number; + | ApplicationCommandOptionType.String + | ApplicationCommandOptionType.Integer + | ApplicationCommandOptionType.Number; value: string; } @@ -5806,20 +5805,20 @@ export interface GuildAuditLogsEntryExtraField { [AuditLogEvent.MessageUnpin]: { channel: GuildTextBasedChannel | { id: Snowflake }; messageId: Snowflake }; [AuditLogEvent.MemberDisconnect]: { count: number }; [AuditLogEvent.ChannelOverwriteCreate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteUpdate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteDelete]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.StageInstanceCreate]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceDelete]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceUpdate]: StageChannel | { id: Snowflake }; @@ -5848,8 +5847,8 @@ export interface GuildAuditLogsEntryTargetField> {} +export interface AutoModerationRuleEditOptions extends Partial> { } -export interface AutoModerationTriggerMetadataOptions extends Partial {} +export interface AutoModerationTriggerMetadataOptions extends Partial { } export interface AutoModerationActionOptions { type: AutoModerationActionType; @@ -6105,10 +6104,10 @@ export type GuildScheduledEventResolvable = Snowflake | GuildScheduledEvent; export type GuildScheduledEventSetStatusArg = Status extends GuildScheduledEventStatus.Scheduled - ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled - : Status extends GuildScheduledEventStatus.Active - ? GuildScheduledEventStatus.Completed - : never; + ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled + : Status extends GuildScheduledEventStatus.Active + ? GuildScheduledEventStatus.Completed + : never; export interface GuildScheduledEventUser { guildScheduledEventId: Snowflake; @@ -6185,7 +6184,7 @@ export interface InteractionDeferReplyOptions { fetchReply?: boolean; } -export interface InteractionDeferUpdateOptions extends Omit {} +export interface InteractionDeferUpdateOptions extends Omit { } export interface InteractionReplyOptions extends BaseMessageOptions { tts?: boolean; @@ -6299,10 +6298,10 @@ export type CollectedMessageInteraction = >; export interface MessageComponentCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } export interface MessageChannelComponentCollectorOptions - extends Omit, 'channel' | 'guild' | 'interactionType'> {} + extends Omit, 'channel' | 'guild' | 'interactionType'> { } export interface MessageInteraction { id: Snowflake; @@ -6361,7 +6360,7 @@ export interface MessageCreateOptions extends BaseMessageOptions { export interface GuildForumThreadMessageCreateOptions extends Omit, - Pick {} + Pick { } export interface MessageEditAttachmentData { id: Snowflake; @@ -6487,7 +6486,7 @@ export type PermissionResolvable = BitFieldResolvable extends ReadonlyArray> {} +export interface RecursiveReadonlyArray extends ReadonlyArray> { } export interface PartialRecipient { username: string; @@ -6533,30 +6532,30 @@ export type Partialize< NullableKeys extends keyof PartialType | null = null, OverridableKeys extends keyof PartialType | '' = '', > = { - [K in keyof Omit]: K extends 'partial' + [K in keyof Omit]: K extends 'partial' ? true : K extends NulledKeys - ? null - : K extends NullableKeys - ? PartialType[K] | null - : PartialType[K]; -}; + ? null + : K extends NullableKeys + ? PartialType[K] | null + : PartialType[K]; + }; export interface PartialDMChannel extends Partialize { lastMessageId: undefined; } -export interface PartialGuildMember extends Partialize {} +export interface PartialGuildMember extends Partialize { } export interface PartialMessage - extends Partialize {} + extends Partialize { } -export interface PartialMessageReaction extends Partialize {} +export interface PartialMessageReaction extends Partialize { } export interface PartialGuildScheduledEvent - extends Partialize {} + extends Partialize { } -export interface PartialThreadMember extends Partialize {} +export interface PartialThreadMember extends Partialize { } export interface PartialOverwriteData { id: Snowflake | number; @@ -6579,7 +6578,7 @@ export enum Partials { ThreadMember, } -export interface PartialUser extends Partialize {} +export interface PartialUser extends Partialize { } export type PresenceStatusData = ClientPresenceStatus | 'invisible'; @@ -6736,8 +6735,8 @@ export interface SweeperDefinitions { export type SweeperOptions = { [Key in keyof SweeperDefinitions]?: SweeperDefinitions[Key][2] extends true - ? SweepOptions | LifetimeSweepOptions - : SweepOptions; + ? SweepOptions | LifetimeSweepOptions + : SweepOptions; }; export interface LimitedCollectionOptions { @@ -6841,7 +6840,7 @@ export interface WebhookClientDataURL { url: string; } -export interface WebhookClientOptions extends Pick {} +export interface WebhookClientOptions extends Pick { } export interface WebhookDeleteOptions { token?: string; @@ -6925,14 +6924,14 @@ export interface ClientApplicationInstallParams { export type Serialized = Value extends symbol | bigint | (() => any) ? never : Value extends number | string | boolean | undefined - ? Value - : Value extends JSONEncodable - ? JSONResult - : Value extends ReadonlyArray - ? Serialized[] - : Value extends ReadonlyMap | ReadonlySet - ? {} - : { [K in keyof Value]: Serialized }; + ? Value + : Value extends JSONEncodable + ? JSONResult + : Value extends ReadonlyArray + ? Serialized[] + : Value extends ReadonlyMap | ReadonlySet + ? {} + : { [K in keyof Value]: Serialized }; //#endregion From 81c22daecf955dd80ea82e0bc57a5f8b987664c6 Mon Sep 17 00:00:00 2001 From: Jake Morrison Date: Fri, 26 Jul 2024 13:43:36 -0400 Subject: [PATCH 14/14] Fix lint --- .../structures/interfaces/TextBasedChannel.js | 2 +- packages/discord.js/typings/index.d.ts | 214 +++++++++--------- 2 files changed, 108 insertions(+), 108 deletions(-) diff --git a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js index eae5b7c6741b..f3f2bf8d6a0b 100644 --- a/packages/discord.js/src/structures/interfaces/TextBasedChannel.js +++ b/packages/discord.js/src/structures/interfaces/TextBasedChannel.js @@ -164,7 +164,7 @@ class TextBasedChannel { const dm = await this.createDM(); return dm.send(options); } - + let messagePayload; if (options instanceof MessagePayload) { diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 5b44ad8caf9c..dbc1b71f149e 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -664,7 +664,7 @@ export class BaseGuildEmoji extends Emoji { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildTextChannel extends TextBasedChannelFields { } +export interface BaseGuildTextChannel extends TextBasedChannelFields {} export class BaseGuildTextChannel extends GuildChannel { protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean); public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; @@ -685,7 +685,7 @@ export class BaseGuildTextChannel extends GuildChannel { } // tslint:disable-next-line no-empty-interface -export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> { } +export interface BaseGuildVoiceChannel extends Omit, 'lastPinTimestamp' | 'lastPinAt'> {} export class BaseGuildVoiceChannel extends GuildChannel { public constructor(guild: Guild, data?: RawGuildChannelData); public bitrate: number; @@ -859,11 +859,11 @@ export { StringSelectMenuComponent as SelectMenuComponent, }; -export class UserSelectMenuComponent extends BaseSelectMenuComponent { } +export class UserSelectMenuComponent extends BaseSelectMenuComponent {} -export class RoleSelectMenuComponent extends BaseSelectMenuComponent { } +export class RoleSelectMenuComponent extends BaseSelectMenuComponent {} -export class MentionableSelectMenuComponent extends BaseSelectMenuComponent { } +export class MentionableSelectMenuComponent extends BaseSelectMenuComponent {} export class ChannelSelectMenuComponent extends BaseSelectMenuComponent { public getChannelTypes(): ChannelType[] | null; @@ -890,9 +890,9 @@ export interface IconData { proxyIconURL?: string; } -export interface EmbedAuthorData extends Omit, IconData { } +export interface EmbedAuthorData extends Omit, IconData {} -export interface EmbedFooterData extends Omit, IconData { } +export interface EmbedFooterData extends Omit, IconData {} export interface EmbedAssetData extends Omit { proxyURL?: string; @@ -986,8 +986,8 @@ export abstract class BaseChannel extends Base { export type If = Value extends true ? TrueResult : Value extends false - ? FalseResult - : TrueResult | FalseResult; + ? FalseResult + : TrueResult | FalseResult; export class Client extends BaseClient { public constructor(options: ClientOptions); @@ -1246,8 +1246,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } >; /** @@ -1264,8 +1264,8 @@ export class CommandInteractionOptionResolver['channel']>, { type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread - ? ChannelType.PublicThread | ChannelType.AnnouncementThread - : Type; + ? ChannelType.PublicThread | ChannelType.AnnouncementThread + : Type; } > | null; public getString(name: string, required: true): string; @@ -1318,7 +1318,7 @@ export interface DMChannel extends Omit< TextBasedChannelFields, 'bulkDelete' | 'fetchWebhooks' | 'createWebhook' | 'setRateLimitPerUser' | 'setNSFW' - > { } + > {} export class DMChannel extends BaseChannel { private constructor(client: Client, data?: RawDMChannelData); public flags: Readonly; @@ -1498,11 +1498,11 @@ export class GuildAuditLogs { private constructor(guild: Guild, data: RawGuildAuditLogEntryData, logs?: GuildAuditLogs); @@ -1600,7 +1600,7 @@ export class GuildMemberFlagsBitField extends BitField { public static resolve(bit?: BitFieldResolvable): number; } -export interface GuildMember extends PartialTextBasedChannelFields { } +export interface GuildMember extends PartialTextBasedChannelFields {} export class GuildMember extends Base { private constructor(client: Client, data: RawGuildMemberData, guild: Guild); private _roles: Snowflake[]; @@ -1850,10 +1850,10 @@ export type CacheTypeReducer< > = [State] extends ['cached'] ? CachedType : [State] extends ['raw'] - ? RawType - : [State] extends ['raw' | 'cached'] - ? PresentType - : Fallback; + ? RawType + : [State] extends ['raw' | 'cached'] + ? PresentType + : Fallback; export type Interaction = | ChatInputCommandInteraction @@ -1959,7 +1959,7 @@ export class InteractionCollector exte } // tslint:disable-next-line no-empty-interface -export interface InteractionWebhook extends PartialWebhookFields { } +export interface InteractionWebhook extends PartialWebhookFields {} export class InteractionWebhook { public constructor(client: Client, id: Snowflake, token: string); public readonly client: Client; @@ -2055,9 +2055,9 @@ export interface AwaitMessageCollectorOptionsParams< ComponentType extends MessageComponentType, Cached extends boolean = boolean, > extends Pick< - InteractionCollectorOptions[ComponentType]>, - keyof AwaitMessageComponentOptions -> { + InteractionCollectorOptions[ComponentType]>, + keyof AwaitMessageComponentOptions + > { componentType?: ComponentType; } @@ -2529,7 +2529,7 @@ export interface ThreadOnlyChannel | 'awaitMessages' | 'createMessageComponentCollector' | 'awaitMessageComponent' - > { } + > {} export abstract class ThreadOnlyChannel extends GuildChannel { public type: ChannelType.GuildForum | ChannelType.GuildMedia; public threads: GuildForumThreadManager; @@ -3228,7 +3228,7 @@ export interface PrivateThreadChannel extends ThreadChannel { // tslint:disable-next-line no-empty-interface export interface ThreadChannel - extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> { } + extends Omit, 'fetchWebhooks' | 'createWebhook' | 'setNSFW'> {} export class ThreadChannel extends BaseChannel { private constructor(guild: Guild, data?: RawThreadChannelData, client?: Client); public archived: boolean | null; @@ -3330,7 +3330,7 @@ export interface AvatarDecorationData { } // tslint:disable-next-line no-empty-interface -export interface User extends PartialTextBasedChannelFields { } +export interface User extends PartialTextBasedChannelFields {} export class User extends Base { protected constructor(client: Client, data: RawUserData); private _equals(user: APIUser): boolean; @@ -3593,7 +3593,7 @@ export class VoiceState extends Base { } // tslint:disable-next-line no-empty-interface -export interface Webhook extends WebhookFields { } +export interface Webhook extends WebhookFields {} export class Webhook { private constructor(client: Client, data?: RawWebhookData); public avatar: string | null; @@ -3608,8 +3608,8 @@ export class Webhook { public token: Type extends WebhookType.Incoming ? string : Type extends WebhookType.ChannelFollower - ? null - : string | null; + ? null + : string | null; public type: Type; public applicationId: Type extends WebhookType.Application ? Snowflake : null; public get channel(): TextChannel | VoiceChannel | NewsChannel | StageChannel | ForumChannel | MediaChannel | null; @@ -3629,7 +3629,7 @@ export class Webhook { } // tslint:disable-next-line no-empty-interface -export interface WebhookClient extends WebhookFields, BaseClient { } +export interface WebhookClient extends WebhookFields, BaseClient {} export class WebhookClient extends BaseClient { public constructor(data: WebhookClientData, options?: WebhookClientOptions); public readonly client: this; @@ -4115,23 +4115,23 @@ export class ApplicationCommandPermissionsManager< public remove( options: | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }) + token: string; + channels?: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }) | (FetchSingleOptions & { - token: string; - channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; - roles?: readonly (RoleResolvable | RolePermissionConstant)[]; - users?: readonly UserResolvable[]; - }), + token: string; + channels: readonly (GuildChannelResolvable | ChannelPermissionConstant)[]; + roles?: readonly (RoleResolvable | RolePermissionConstant)[]; + users?: readonly UserResolvable[]; + }), ): Promise; public set( options: FetchSingleOptions & EditApplicationCommandPermissionsMixin, @@ -4209,7 +4209,7 @@ export class EntitlementManager extends CachedManager; } -export interface FetchGuildApplicationCommandFetchOptions extends Omit { } +export interface FetchGuildApplicationCommandFetchOptions extends Omit {} export class GuildApplicationCommandManager extends ApplicationCommandManager { private constructor(guild: Guild, iterable?: Iterable); @@ -4662,7 +4662,7 @@ export interface WebhookFields extends PartialWebhookFields { //#region Typedefs -export interface ActivitiesOptions extends Omit { } +export interface ActivitiesOptions extends Omit {} export interface ActivityOptions { name: string; @@ -5018,10 +5018,10 @@ export interface AutoModerationTriggerMetadata { } export interface AwaitMessageComponentOptions - extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { } + extends Omit, 'max' | 'maxComponents' | 'maxUsers'> {} export interface ModalSubmitInteractionCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} export interface AwaitModalSubmitOptions extends Omit, 'max' | 'maxComponents' | 'maxUsers'> { @@ -5043,7 +5043,7 @@ export interface BanOptions { reason?: string; } -export interface BulkBanOptions extends Omit { } +export interface BulkBanOptions extends Omit {} export interface BulkBanResult { bannedUsers: readonly Snowflake[]; @@ -5131,8 +5131,8 @@ export type CacheFactory = ( export type CacheWithLimitsOptions = { [K in keyof Caches]?: Caches[K][0]['prototype'] extends DataManager - ? LimitedCollectionOptions | number - : never; + ? LimitedCollectionOptions | number + : never; }; export interface CategoryCreateChannelOptions { @@ -5384,9 +5384,9 @@ export interface CommandInteractionResolvedData { focused: true; type: - | ApplicationCommandOptionType.String - | ApplicationCommandOptionType.Integer - | ApplicationCommandOptionType.Number; + | ApplicationCommandOptionType.String + | ApplicationCommandOptionType.Integer + | ApplicationCommandOptionType.Number; value: string; } @@ -5805,20 +5805,20 @@ export interface GuildAuditLogsEntryExtraField { [AuditLogEvent.MessageUnpin]: { channel: GuildTextBasedChannel | { id: Snowflake }; messageId: Snowflake }; [AuditLogEvent.MemberDisconnect]: { count: number }; [AuditLogEvent.ChannelOverwriteCreate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteUpdate]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.ChannelOverwriteDelete]: - | Role - | GuildMember - | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } - | { id: Snowflake; type: AuditLogOptionsType.Member }; + | Role + | GuildMember + | { id: Snowflake; name: string; type: AuditLogOptionsType.Role } + | { id: Snowflake; type: AuditLogOptionsType.Member }; [AuditLogEvent.StageInstanceCreate]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceDelete]: StageChannel | { id: Snowflake }; [AuditLogEvent.StageInstanceUpdate]: StageChannel | { id: Snowflake }; @@ -5847,8 +5847,8 @@ export interface GuildAuditLogsEntryTargetField> { } +export interface AutoModerationRuleEditOptions extends Partial> {} -export interface AutoModerationTriggerMetadataOptions extends Partial { } +export interface AutoModerationTriggerMetadataOptions extends Partial {} export interface AutoModerationActionOptions { type: AutoModerationActionType; @@ -6104,10 +6104,10 @@ export type GuildScheduledEventResolvable = Snowflake | GuildScheduledEvent; export type GuildScheduledEventSetStatusArg = Status extends GuildScheduledEventStatus.Scheduled - ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled - : Status extends GuildScheduledEventStatus.Active - ? GuildScheduledEventStatus.Completed - : never; + ? GuildScheduledEventStatus.Active | GuildScheduledEventStatus.Canceled + : Status extends GuildScheduledEventStatus.Active + ? GuildScheduledEventStatus.Completed + : never; export interface GuildScheduledEventUser { guildScheduledEventId: Snowflake; @@ -6184,7 +6184,7 @@ export interface InteractionDeferReplyOptions { fetchReply?: boolean; } -export interface InteractionDeferUpdateOptions extends Omit { } +export interface InteractionDeferUpdateOptions extends Omit {} export interface InteractionReplyOptions extends BaseMessageOptions { tts?: boolean; @@ -6298,10 +6298,10 @@ export type CollectedMessageInteraction = >; export interface MessageComponentCollectorOptions - extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> { } + extends Omit, 'channel' | 'message' | 'guild' | 'interactionType'> {} export interface MessageChannelComponentCollectorOptions - extends Omit, 'channel' | 'guild' | 'interactionType'> { } + extends Omit, 'channel' | 'guild' | 'interactionType'> {} export interface MessageInteraction { id: Snowflake; @@ -6360,7 +6360,7 @@ export interface MessageCreateOptions extends BaseMessageOptions { export interface GuildForumThreadMessageCreateOptions extends Omit, - Pick { } + Pick {} export interface MessageEditAttachmentData { id: Snowflake; @@ -6486,7 +6486,7 @@ export type PermissionResolvable = BitFieldResolvable extends ReadonlyArray> { } +export interface RecursiveReadonlyArray extends ReadonlyArray> {} export interface PartialRecipient { username: string; @@ -6532,30 +6532,30 @@ export type Partialize< NullableKeys extends keyof PartialType | null = null, OverridableKeys extends keyof PartialType | '' = '', > = { - [K in keyof Omit]: K extends 'partial' + [K in keyof Omit]: K extends 'partial' ? true : K extends NulledKeys - ? null - : K extends NullableKeys - ? PartialType[K] | null - : PartialType[K]; - }; + ? null + : K extends NullableKeys + ? PartialType[K] | null + : PartialType[K]; +}; export interface PartialDMChannel extends Partialize { lastMessageId: undefined; } -export interface PartialGuildMember extends Partialize { } +export interface PartialGuildMember extends Partialize {} export interface PartialMessage - extends Partialize { } + extends Partialize {} -export interface PartialMessageReaction extends Partialize { } +export interface PartialMessageReaction extends Partialize {} export interface PartialGuildScheduledEvent - extends Partialize { } + extends Partialize {} -export interface PartialThreadMember extends Partialize { } +export interface PartialThreadMember extends Partialize {} export interface PartialOverwriteData { id: Snowflake | number; @@ -6578,7 +6578,7 @@ export enum Partials { ThreadMember, } -export interface PartialUser extends Partialize { } +export interface PartialUser extends Partialize {} export type PresenceStatusData = ClientPresenceStatus | 'invisible'; @@ -6735,8 +6735,8 @@ export interface SweeperDefinitions { export type SweeperOptions = { [Key in keyof SweeperDefinitions]?: SweeperDefinitions[Key][2] extends true - ? SweepOptions | LifetimeSweepOptions - : SweepOptions; + ? SweepOptions | LifetimeSweepOptions + : SweepOptions; }; export interface LimitedCollectionOptions { @@ -6840,7 +6840,7 @@ export interface WebhookClientDataURL { url: string; } -export interface WebhookClientOptions extends Pick { } +export interface WebhookClientOptions extends Pick {} export interface WebhookDeleteOptions { token?: string; @@ -6924,14 +6924,14 @@ export interface ClientApplicationInstallParams { export type Serialized = Value extends symbol | bigint | (() => any) ? never : Value extends number | string | boolean | undefined - ? Value - : Value extends JSONEncodable - ? JSONResult - : Value extends ReadonlyArray - ? Serialized[] - : Value extends ReadonlyMap | ReadonlySet - ? {} - : { [K in keyof Value]: Serialized }; + ? Value + : Value extends JSONEncodable + ? JSONResult + : Value extends ReadonlyArray + ? Serialized[] + : Value extends ReadonlyMap | ReadonlySet + ? {} + : { [K in keyof Value]: Serialized }; //#endregion