discord.js 15.0.0-dev.1736942697-6a42c5f92 → 15.0.0-dev.1737029096-0c40bc195

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "discord.js",
4
- "version": "15.0.0-dev.1736942697-6a42c5f92",
4
+ "version": "15.0.0-dev.1737029096-0c40bc195",
5
5
  "description": "A powerful library for interacting with the Discord API",
6
6
  "main": "./src/index.js",
7
7
  "types": "./typings/index.d.ts",
@@ -60,9 +60,9 @@
60
60
  "tslib": "^2.8.1",
61
61
  "undici": "6.21.0",
62
62
  "@discordjs/collection": "^2.1.1",
63
- "@discordjs/formatters": "^0.5.0",
64
- "@discordjs/ws": "^2.0.0",
65
63
  "@discordjs/rest": "^2.4.0",
64
+ "@discordjs/ws": "^2.0.0",
65
+ "@discordjs/formatters": "^0.5.0",
66
66
  "@discordjs/util": "^1.1.1"
67
67
  },
68
68
  "devDependencies": {
@@ -81,8 +81,8 @@
81
81
  "turbo": "^2.3.3",
82
82
  "typescript": "~5.5.4",
83
83
  "@discordjs/api-extractor": "^7.38.1",
84
- "@discordjs/scripts": "^0.1.0",
85
- "@discordjs/docgen": "^0.12.1"
84
+ "@discordjs/docgen": "^0.12.1",
85
+ "@discordjs/scripts": "^0.1.0"
86
86
  },
87
87
  "engines": {
88
88
  "node": ">=20"
@@ -58,7 +58,7 @@ class BaseGuildEmoji extends Emoji {
58
58
  * @method imageURL
59
59
  * @memberof BaseGuildEmoji
60
60
  * @instance
61
- * @param {BaseImageURLOptions} [options] Options for the image URL
61
+ * @param {ImageURLOptions} [options={}] Options for the image URL
62
62
  * @returns {string}
63
63
  */
64
64
 
@@ -42,11 +42,11 @@ class Emoji extends Base {
42
42
 
43
43
  /**
44
44
  * Returns a URL for the emoji or `null` if this is not a custom emoji.
45
- * @param {BaseImageURLOptions} [options] Options for the image URL
45
+ * @param {ImageURLOptions} [options={}] Options for the image URL
46
46
  * @returns {?string}
47
47
  */
48
- imageURL(options) {
49
- return this.id && this.client.rest.cdn.emoji(this.id, options);
48
+ imageURL(options = {}) {
49
+ return this.id && this.client.rest.cdn.emoji(this.id, this.animated, options);
50
50
  }
51
51
 
52
52
  /**
@@ -286,56 +286,44 @@ class TextBasedChannel {
286
286
  }
287
287
 
288
288
  /**
289
- * Bulk deletes given messages that are newer than two weeks.
289
+ * Bulk deletes given messages up to 2 weeks old.
290
290
  * @param {Collection<Snowflake, Message>|MessageResolvable[]|number} messages
291
291
  * Messages or number of messages to delete
292
292
  * @param {boolean} [filterOld=false] Filter messages to remove those which are older than two weeks automatically
293
- * @returns {Promise<Collection<Snowflake, Message|undefined>>} Returns the deleted messages
293
+ * @returns {Promise<Snowflake[]>} Returns the deleted messages ids
294
294
  * @example
295
295
  * // Bulk delete messages
296
296
  * channel.bulkDelete(5)
297
- * .then(messages => console.log(`Bulk deleted ${messages.size} messages`))
297
+ * .then(messages => console.log(`Bulk deleted ${messages.length} messages`))
298
298
  * .catch(console.error);
299
299
  */
300
300
  async bulkDelete(messages, filterOld = false) {
301
301
  if (Array.isArray(messages) || messages instanceof Collection) {
302
302
  let messageIds =
303
303
  messages instanceof Collection ? [...messages.keys()] : messages.map(message => message.id ?? message);
304
+
304
305
  if (filterOld) {
305
306
  messageIds = messageIds.filter(
306
307
  id => Date.now() - DiscordSnowflake.timestampFrom(id) < MaxBulkDeletableMessageAge,
307
308
  );
308
309
  }
309
- if (messageIds.length === 0) return new Collection();
310
+
311
+ if (messageIds.length === 0) return [];
312
+
310
313
  if (messageIds.length === 1) {
311
- const message = this.client.actions.MessageDelete.getMessage(
312
- {
313
- message_id: messageIds[0],
314
- },
315
- this,
316
- );
317
314
  await this.client.rest.delete(Routes.channelMessage(this.id, messageIds[0]));
318
- return message ? new Collection([[message.id, message]]) : new Collection();
315
+ return messageIds;
319
316
  }
317
+
320
318
  await this.client.rest.post(Routes.channelBulkDelete(this.id), { body: { messages: messageIds } });
321
- return messageIds.reduce(
322
- (col, id) =>
323
- col.set(
324
- id,
325
- this.client.actions.MessageDeleteBulk.getMessage(
326
- {
327
- message_id: id,
328
- },
329
- this,
330
- ),
331
- ),
332
- new Collection(),
333
- );
319
+ return messageIds;
334
320
  }
335
- if (!isNaN(messages)) {
321
+
322
+ if (!Number.isNaN(messages)) {
336
323
  const msgs = await this.messages.fetch({ limit: messages });
337
324
  return this.bulkDelete(msgs, filterOld);
338
325
  }
326
+
339
327
  throw new DiscordjsTypeError(ErrorCodes.MessageBulkDeleteType);
340
328
  }
341
329
 
@@ -634,7 +634,7 @@ export abstract class BaseGuild extends Base {
634
634
 
635
635
  export class BaseGuildEmoji extends Emoji {
636
636
  protected constructor(client: Client<true>, data: RawGuildEmojiData, guild: Guild | GuildPreview);
637
- public imageURL(options?: BaseImageURLOptions): string;
637
+ public imageURL(options?: ImageURLOptions): string;
638
638
  public get url(): string;
639
639
  public available: boolean | null;
640
640
  public get createdAt(): Date;
@@ -1333,7 +1333,7 @@ export class Emoji extends Base {
1333
1333
  public id: Snowflake | null;
1334
1334
  public name: string | null;
1335
1335
  public get identifier(): string;
1336
- public imageURL(options?: BaseImageURLOptions): string | null;
1336
+ public imageURL(options?: ImageURLOptions): string | null;
1337
1337
  public get url(): string | null;
1338
1338
  public toJSON(): unknown;
1339
1339
  public toString(): string;
@@ -4584,7 +4584,7 @@ export interface TextBasedChannelFields<InGuild extends boolean = boolean, InDM
4584
4584
  bulkDelete(
4585
4585
  messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
4586
4586
  filterOld?: boolean,
4587
- ): Promise<Collection<Snowflake, Message | PartialMessage | undefined>>;
4587
+ ): Promise<Snowflake[]>;
4588
4588
  createMessageComponentCollector<ComponentType extends MessageComponentType>(
4589
4589
  options?: MessageChannelCollectorOptionsParams<ComponentType, true>,
4590
4590
  ): InteractionCollector<MappedInteractionTypes[ComponentType]>;
@@ -634,7 +634,7 @@ export abstract class BaseGuild extends Base {
634
634
 
635
635
  export class BaseGuildEmoji extends Emoji {
636
636
  protected constructor(client: Client<true>, data: RawGuildEmojiData, guild: Guild | GuildPreview);
637
- public imageURL(options?: BaseImageURLOptions): string;
637
+ public imageURL(options?: ImageURLOptions): string;
638
638
  public get url(): string;
639
639
  public available: boolean | null;
640
640
  public get createdAt(): Date;
@@ -1333,7 +1333,7 @@ export class Emoji extends Base {
1333
1333
  public id: Snowflake | null;
1334
1334
  public name: string | null;
1335
1335
  public get identifier(): string;
1336
- public imageURL(options?: BaseImageURLOptions): string | null;
1336
+ public imageURL(options?: ImageURLOptions): string | null;
1337
1337
  public get url(): string | null;
1338
1338
  public toJSON(): unknown;
1339
1339
  public toString(): string;
@@ -4584,7 +4584,7 @@ export interface TextBasedChannelFields<InGuild extends boolean = boolean, InDM
4584
4584
  bulkDelete(
4585
4585
  messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
4586
4586
  filterOld?: boolean,
4587
- ): Promise<Collection<Snowflake, Message | PartialMessage | undefined>>;
4587
+ ): Promise<Snowflake[]>;
4588
4588
  createMessageComponentCollector<ComponentType extends MessageComponentType>(
4589
4589
  options?: MessageChannelCollectorOptionsParams<ComponentType, true>,
4590
4590
  ): InteractionCollector<MappedInteractionTypes[ComponentType]>;