discord.js 15.0.0-dev.1736769925-18ab0cf62 → 15.0.0-dev.1736856293-a65c982dd
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.
|
|
4
|
+
"version": "15.0.0-dev.1736856293-a65c982dd",
|
|
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",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"undici": "6.21.0",
|
|
62
62
|
"@discordjs/collection": "^2.1.1",
|
|
63
63
|
"@discordjs/formatters": "^0.5.0",
|
|
64
|
-
"@discordjs/util": "^1.1.1",
|
|
65
64
|
"@discordjs/rest": "^2.4.0",
|
|
66
|
-
"@discordjs/ws": "^2.0.0"
|
|
65
|
+
"@discordjs/ws": "^2.0.0",
|
|
66
|
+
"@discordjs/util": "^1.1.1"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@favware/cliff-jumper": "^4.1.0",
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
"tslint": "6.1.3",
|
|
81
81
|
"turbo": "^2.3.3",
|
|
82
82
|
"typescript": "~5.5.4",
|
|
83
|
-
"@discordjs/api-extractor": "^7.38.1",
|
|
84
83
|
"@discordjs/docgen": "^0.12.1",
|
|
84
|
+
"@discordjs/api-extractor": "^7.38.1",
|
|
85
85
|
"@discordjs/scripts": "^0.1.0"
|
|
86
86
|
},
|
|
87
87
|
"engines": {
|
package/src/errors/Messages.js
CHANGED
|
@@ -70,7 +70,8 @@ const Messages = {
|
|
|
70
70
|
[DjsErrorCodes.ChannelNotCached]: 'Could not find the channel where this message came from in the cache!',
|
|
71
71
|
[DjsErrorCodes.StageChannelResolve]: 'Could not resolve channel to a stage channel.',
|
|
72
72
|
[DjsErrorCodes.GuildScheduledEventResolve]: 'Could not resolve the guild scheduled event.',
|
|
73
|
-
[DjsErrorCodes.FetchOwnerId]: type =>
|
|
73
|
+
[DjsErrorCodes.FetchOwnerId]: type =>
|
|
74
|
+
`Couldn't resolve the ${type} ownerId to fetch the ${type} ${type === 'group DM' ? 'owner' : 'member'}.`,
|
|
74
75
|
|
|
75
76
|
[DjsErrorCodes.InvalidType]: (name, expected, an = false) => `Supplied ${name} is not a${an ? 'n' : ''} ${expected}.`,
|
|
76
77
|
[DjsErrorCodes.InvalidElement]: (type, name, elem) => `Supplied ${type} ${name} includes an invalid element: ${elem}`,
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const { BaseChannel } = require('./BaseChannel');
|
|
4
|
+
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
|
4
5
|
const { DiscordjsError, ErrorCodes } = require('../errors');
|
|
5
6
|
const PartialGroupDMMessageManager = require('../managers/PartialGroupDMMessageManager');
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Represents a Partial Group DM Channel on Discord.
|
|
9
10
|
* @extends {BaseChannel}
|
|
11
|
+
* @implements {TextBasedChannel}
|
|
10
12
|
*/
|
|
11
13
|
class PartialGroupDMChannel extends BaseChannel {
|
|
12
14
|
constructor(client, data) {
|
|
@@ -44,6 +46,36 @@ class PartialGroupDMChannel extends BaseChannel {
|
|
|
44
46
|
* @type {PartialGroupDMMessageManager}
|
|
45
47
|
*/
|
|
46
48
|
this.messages = new PartialGroupDMMessageManager(this);
|
|
49
|
+
|
|
50
|
+
if ('owner_id' in data) {
|
|
51
|
+
/**
|
|
52
|
+
* The user id of the owner of this Group DM Channel
|
|
53
|
+
* @type {?Snowflake}
|
|
54
|
+
*/
|
|
55
|
+
this.ownerId = data.owner_id;
|
|
56
|
+
} else {
|
|
57
|
+
this.ownerId ??= null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if ('last_message_id' in data) {
|
|
61
|
+
/**
|
|
62
|
+
* The channel's last message id, if one was sent
|
|
63
|
+
* @type {?Snowflake}
|
|
64
|
+
*/
|
|
65
|
+
this.lastMessageId = data.last_message_id;
|
|
66
|
+
} else {
|
|
67
|
+
this.lastMessageId ??= null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if ('last_pin_timestamp' in data) {
|
|
71
|
+
/**
|
|
72
|
+
* The timestamp when the last pinned message was pinned, if there was one
|
|
73
|
+
* @type {?number}
|
|
74
|
+
*/
|
|
75
|
+
this.lastPinTimestamp = data.last_pin_timestamp ? Date.parse(data.last_pin_timestamp) : null;
|
|
76
|
+
} else {
|
|
77
|
+
this.lastPinTimestamp ??= null;
|
|
78
|
+
}
|
|
47
79
|
}
|
|
48
80
|
|
|
49
81
|
/**
|
|
@@ -55,6 +87,19 @@ class PartialGroupDMChannel extends BaseChannel {
|
|
|
55
87
|
return this.icon && this.client.rest.cdn.channelIcon(this.id, this.icon, options);
|
|
56
88
|
}
|
|
57
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Fetches the owner of this Group DM Channel.
|
|
92
|
+
* @param {BaseFetchOptions} [options] The options for fetching the user
|
|
93
|
+
* @returns {Promise<User>}
|
|
94
|
+
*/
|
|
95
|
+
async fetchOwner(options) {
|
|
96
|
+
if (!this.ownerId) {
|
|
97
|
+
throw new DiscordjsError(ErrorCodes.FetchOwnerId, 'group DM');
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return this.client.users.fetch(this.ownerId, options);
|
|
101
|
+
}
|
|
102
|
+
|
|
58
103
|
delete() {
|
|
59
104
|
return Promise.reject(new DiscordjsError(ErrorCodes.DeleteGroupDMChannel));
|
|
60
105
|
}
|
|
@@ -62,6 +107,25 @@ class PartialGroupDMChannel extends BaseChannel {
|
|
|
62
107
|
fetch() {
|
|
63
108
|
return Promise.reject(new DiscordjsError(ErrorCodes.FetchGroupDMChannel));
|
|
64
109
|
}
|
|
110
|
+
|
|
111
|
+
// These are here only for documentation purposes - they are implemented by TextBasedChannel
|
|
112
|
+
/* eslint-disable no-empty-function */
|
|
113
|
+
get lastMessage() {}
|
|
114
|
+
get lastPinAt() {}
|
|
115
|
+
createMessageComponentCollector() {}
|
|
116
|
+
awaitMessageComponent() {}
|
|
65
117
|
}
|
|
66
118
|
|
|
119
|
+
TextBasedChannel.applyToClass(PartialGroupDMChannel, true, [
|
|
120
|
+
'bulkDelete',
|
|
121
|
+
'send',
|
|
122
|
+
'sendTyping',
|
|
123
|
+
'createMessageCollector',
|
|
124
|
+
'awaitMessages',
|
|
125
|
+
'fetchWebhooks',
|
|
126
|
+
'createWebhook',
|
|
127
|
+
'setRateLimitPerUser',
|
|
128
|
+
'setNSFW',
|
|
129
|
+
]);
|
|
130
|
+
|
|
67
131
|
module.exports = PartialGroupDMChannel;
|
package/typings/index.d.mts
CHANGED
|
@@ -1312,7 +1312,7 @@ export class ContextMenuCommandInteraction<Cached extends CacheType = CacheType>
|
|
|
1312
1312
|
// tslint:disable-next-line no-empty-interface
|
|
1313
1313
|
export interface DMChannel
|
|
1314
1314
|
extends Omit<
|
|
1315
|
-
TextBasedChannelFields<false>,
|
|
1315
|
+
TextBasedChannelFields<false, true>,
|
|
1316
1316
|
'bulkDelete' | 'fetchWebhooks' | 'createWebhook' | 'setRateLimitPerUser' | 'setNSFW'
|
|
1317
1317
|
> {}
|
|
1318
1318
|
export class DMChannel extends BaseChannel {
|
|
@@ -2595,6 +2595,19 @@ export class OAuth2Guild extends BaseGuild {
|
|
|
2595
2595
|
public permissions: Readonly<PermissionsBitField>;
|
|
2596
2596
|
}
|
|
2597
2597
|
|
|
2598
|
+
export interface PartialGroupDMChannel
|
|
2599
|
+
extends Omit<
|
|
2600
|
+
TextBasedChannelFields<false, false>,
|
|
2601
|
+
| 'bulkDelete'
|
|
2602
|
+
| 'send'
|
|
2603
|
+
| 'sendTyping'
|
|
2604
|
+
| 'createMessageCollector'
|
|
2605
|
+
| 'awaitMessages'
|
|
2606
|
+
| 'fetchWebhooks'
|
|
2607
|
+
| 'createWebhook'
|
|
2608
|
+
| 'setRateLimitPerUser'
|
|
2609
|
+
| 'setNSFW'
|
|
2610
|
+
> {}
|
|
2598
2611
|
export class PartialGroupDMChannel extends BaseChannel {
|
|
2599
2612
|
private constructor(client: Client<true>, data: RawPartialGroupDMChannelData);
|
|
2600
2613
|
public type: ChannelType.GroupDM;
|
|
@@ -2602,8 +2615,9 @@ export class PartialGroupDMChannel extends BaseChannel {
|
|
|
2602
2615
|
public name: string | null;
|
|
2603
2616
|
public icon: string | null;
|
|
2604
2617
|
public recipients: PartialRecipient[];
|
|
2605
|
-
public
|
|
2618
|
+
public ownerId: Snowflake | null;
|
|
2606
2619
|
public iconURL(options?: ImageURLOptions): string | null;
|
|
2620
|
+
public fetchOwner(options?: BaseFetchOptions): Promise<User>;
|
|
2607
2621
|
public toString(): ChannelMention;
|
|
2608
2622
|
}
|
|
2609
2623
|
|
|
@@ -4556,13 +4570,13 @@ export interface PartialTextBasedChannelFields<InGuild extends boolean = boolean
|
|
|
4556
4570
|
send(options: string | MessagePayload | MessageCreateOptions): Promise<Message<InGuild>>;
|
|
4557
4571
|
}
|
|
4558
4572
|
|
|
4559
|
-
export interface TextBasedChannelFields<InGuild extends boolean = boolean>
|
|
4573
|
+
export interface TextBasedChannelFields<InGuild extends boolean = boolean, InDM extends boolean = boolean>
|
|
4560
4574
|
extends PartialTextBasedChannelFields<InGuild> {
|
|
4561
4575
|
lastMessageId: Snowflake | null;
|
|
4562
4576
|
get lastMessage(): Message | null;
|
|
4563
4577
|
lastPinTimestamp: number | null;
|
|
4564
4578
|
get lastPinAt(): Date | null;
|
|
4565
|
-
messages: If<InGuild, GuildMessageManager, DMMessageManager
|
|
4579
|
+
messages: If<InGuild, GuildMessageManager, If<InDM, DMMessageManager, PartialGroupDMMessageManager>>;
|
|
4566
4580
|
awaitMessageComponent<ComponentType extends MessageComponentType>(
|
|
4567
4581
|
options?: AwaitMessageCollectorOptionsParams<ComponentType, true>,
|
|
4568
4582
|
): Promise<MappedInteractionTypes[ComponentType]>;
|
package/typings/index.d.ts
CHANGED
|
@@ -1312,7 +1312,7 @@ export class ContextMenuCommandInteraction<Cached extends CacheType = CacheType>
|
|
|
1312
1312
|
// tslint:disable-next-line no-empty-interface
|
|
1313
1313
|
export interface DMChannel
|
|
1314
1314
|
extends Omit<
|
|
1315
|
-
TextBasedChannelFields<false>,
|
|
1315
|
+
TextBasedChannelFields<false, true>,
|
|
1316
1316
|
'bulkDelete' | 'fetchWebhooks' | 'createWebhook' | 'setRateLimitPerUser' | 'setNSFW'
|
|
1317
1317
|
> {}
|
|
1318
1318
|
export class DMChannel extends BaseChannel {
|
|
@@ -2595,6 +2595,19 @@ export class OAuth2Guild extends BaseGuild {
|
|
|
2595
2595
|
public permissions: Readonly<PermissionsBitField>;
|
|
2596
2596
|
}
|
|
2597
2597
|
|
|
2598
|
+
export interface PartialGroupDMChannel
|
|
2599
|
+
extends Omit<
|
|
2600
|
+
TextBasedChannelFields<false, false>,
|
|
2601
|
+
| 'bulkDelete'
|
|
2602
|
+
| 'send'
|
|
2603
|
+
| 'sendTyping'
|
|
2604
|
+
| 'createMessageCollector'
|
|
2605
|
+
| 'awaitMessages'
|
|
2606
|
+
| 'fetchWebhooks'
|
|
2607
|
+
| 'createWebhook'
|
|
2608
|
+
| 'setRateLimitPerUser'
|
|
2609
|
+
| 'setNSFW'
|
|
2610
|
+
> {}
|
|
2598
2611
|
export class PartialGroupDMChannel extends BaseChannel {
|
|
2599
2612
|
private constructor(client: Client<true>, data: RawPartialGroupDMChannelData);
|
|
2600
2613
|
public type: ChannelType.GroupDM;
|
|
@@ -2602,8 +2615,9 @@ export class PartialGroupDMChannel extends BaseChannel {
|
|
|
2602
2615
|
public name: string | null;
|
|
2603
2616
|
public icon: string | null;
|
|
2604
2617
|
public recipients: PartialRecipient[];
|
|
2605
|
-
public
|
|
2618
|
+
public ownerId: Snowflake | null;
|
|
2606
2619
|
public iconURL(options?: ImageURLOptions): string | null;
|
|
2620
|
+
public fetchOwner(options?: BaseFetchOptions): Promise<User>;
|
|
2607
2621
|
public toString(): ChannelMention;
|
|
2608
2622
|
}
|
|
2609
2623
|
|
|
@@ -4556,13 +4570,13 @@ export interface PartialTextBasedChannelFields<InGuild extends boolean = boolean
|
|
|
4556
4570
|
send(options: string | MessagePayload | MessageCreateOptions): Promise<Message<InGuild>>;
|
|
4557
4571
|
}
|
|
4558
4572
|
|
|
4559
|
-
export interface TextBasedChannelFields<InGuild extends boolean = boolean>
|
|
4573
|
+
export interface TextBasedChannelFields<InGuild extends boolean = boolean, InDM extends boolean = boolean>
|
|
4560
4574
|
extends PartialTextBasedChannelFields<InGuild> {
|
|
4561
4575
|
lastMessageId: Snowflake | null;
|
|
4562
4576
|
get lastMessage(): Message | null;
|
|
4563
4577
|
lastPinTimestamp: number | null;
|
|
4564
4578
|
get lastPinAt(): Date | null;
|
|
4565
|
-
messages: If<InGuild, GuildMessageManager, DMMessageManager
|
|
4579
|
+
messages: If<InGuild, GuildMessageManager, If<InDM, DMMessageManager, PartialGroupDMMessageManager>>;
|
|
4566
4580
|
awaitMessageComponent<ComponentType extends MessageComponentType>(
|
|
4567
4581
|
options?: AwaitMessageCollectorOptionsParams<ComponentType, true>,
|
|
4568
4582
|
): Promise<MappedInteractionTypes[ComponentType]>;
|