@hardlydifficult/chat 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -118
- package/dist/Channel.d.ts +33 -3
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +47 -17
- package/dist/Channel.js.map +1 -1
- package/dist/Message.d.ts +21 -14
- package/dist/Message.d.ts.map +1 -1
- package/dist/Message.js +29 -14
- package/dist/Message.js.map +1 -1
- package/dist/discord/DiscordChatClient.d.ts +60 -1
- package/dist/discord/DiscordChatClient.d.ts.map +1 -1
- package/dist/discord/DiscordChatClient.js +198 -7
- package/dist/discord/DiscordChatClient.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/slack/SlackChatClient.d.ts +34 -1
- package/dist/slack/SlackChatClient.d.ts.map +1 -1
- package/dist/slack/SlackChatClient.js +195 -0
- package/dist/slack/SlackChatClient.js.map +1 -1
- package/dist/types.d.ts +63 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/Message.js
CHANGED
|
@@ -17,6 +17,15 @@ class Message {
|
|
|
17
17
|
this.platform = data.platform;
|
|
18
18
|
this.operations = operations;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Create a plain Message snapshot, transferring reaction unsubscribers.
|
|
22
|
+
* Used by PendingMessage/ReplyMessage to resolve to a non-thenable Message.
|
|
23
|
+
*/
|
|
24
|
+
toSnapshot() {
|
|
25
|
+
const msg = new Message({ id: this.id, channelId: this.channelId, platform: this.platform }, this.operations);
|
|
26
|
+
msg.reactionUnsubscribers = this.reactionUnsubscribers;
|
|
27
|
+
return msg;
|
|
28
|
+
}
|
|
20
29
|
/**
|
|
21
30
|
* Add multiple emoji reactions to this message
|
|
22
31
|
* @param emojis - Array of emojis to add
|
|
@@ -66,6 +75,15 @@ class Message {
|
|
|
66
75
|
const replyPromise = this.operations.postReply(this.channelId, this.id, content);
|
|
67
76
|
return new ReplyMessage(replyPromise, this.operations, this.platform);
|
|
68
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Create a thread from this message
|
|
80
|
+
* @param name - Thread name
|
|
81
|
+
* @param options - Optional thread options
|
|
82
|
+
* @returns Channel-like object for posting into the thread
|
|
83
|
+
*/
|
|
84
|
+
async startThread(name, options) {
|
|
85
|
+
return this.operations.startThread(this.id, this.channelId, name, options);
|
|
86
|
+
}
|
|
69
87
|
/**
|
|
70
88
|
* Update this message's content
|
|
71
89
|
* @param content - New content (string or Document)
|
|
@@ -96,7 +114,8 @@ class Message {
|
|
|
96
114
|
exports.Message = Message;
|
|
97
115
|
/**
|
|
98
116
|
* A reply message that is still being posted.
|
|
99
|
-
*
|
|
117
|
+
* Implements PromiseLike so it can be directly awaited:
|
|
118
|
+
* const reply = await msg.postReply('text');
|
|
100
119
|
*/
|
|
101
120
|
class ReplyMessage extends Message {
|
|
102
121
|
replyPromise;
|
|
@@ -118,7 +137,7 @@ class ReplyMessage extends Message {
|
|
|
118
137
|
}
|
|
119
138
|
})
|
|
120
139
|
.catch(() => {
|
|
121
|
-
// Errors
|
|
140
|
+
// Errors surfaced when awaited via then()
|
|
122
141
|
});
|
|
123
142
|
}
|
|
124
143
|
/**
|
|
@@ -141,19 +160,15 @@ class ReplyMessage extends Message {
|
|
|
141
160
|
return this;
|
|
142
161
|
}
|
|
143
162
|
/**
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* @example
|
|
148
|
-
* ```typescript
|
|
149
|
-
* const reply = msg.postReply('text');
|
|
150
|
-
* await reply.wait(); // throws if reply fails
|
|
151
|
-
* console.log(reply.id); // now available
|
|
152
|
-
* ```
|
|
163
|
+
* Makes ReplyMessage directly awaitable.
|
|
164
|
+
* Resolves to a plain Message (not thenable) to prevent infinite await loops.
|
|
153
165
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
166
|
+
then(onfulfilled, onrejected) {
|
|
167
|
+
const resolved = this.replyPromise.then(async () => {
|
|
168
|
+
await this.pendingReactions;
|
|
169
|
+
return this.toSnapshot();
|
|
170
|
+
});
|
|
171
|
+
return resolved.then(onfulfilled, onrejected);
|
|
157
172
|
}
|
|
158
173
|
/**
|
|
159
174
|
* Wait for reply and all pending reactions to complete.
|
package/dist/Message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { ChatClient } from '../ChatClient.js';
|
|
2
2
|
import { Channel, type ChannelOperations } from '../Channel.js';
|
|
3
|
-
import type { DiscordConfig, MessageData, ReactionCallback, MessageContent } from '../types.js';
|
|
3
|
+
import type { DiscordConfig, MessageData, ReactionCallback, MessageCallback, MessageContent, FileAttachment, ThreadData, StartThreadOptions, DisconnectCallback, ErrorCallback } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Discord chat client implementation using discord.js
|
|
6
6
|
*/
|
|
7
7
|
export declare class DiscordChatClient extends ChatClient implements ChannelOperations {
|
|
8
8
|
private client;
|
|
9
9
|
private reactionListeners;
|
|
10
|
+
private messageListeners;
|
|
11
|
+
private disconnectCallbacks;
|
|
12
|
+
private errorCallbacks;
|
|
10
13
|
private readonly token;
|
|
11
14
|
private readonly guildId;
|
|
12
15
|
constructor(config: DiscordConfig);
|
|
@@ -14,6 +17,15 @@ export declare class DiscordChatClient extends ChatClient implements ChannelOper
|
|
|
14
17
|
* Set up the global reaction listener that routes events to channel-specific callbacks
|
|
15
18
|
*/
|
|
16
19
|
private setupReactionListener;
|
|
20
|
+
/**
|
|
21
|
+
* Set up the global message listener that routes events to channel-specific callbacks
|
|
22
|
+
*/
|
|
23
|
+
private setupMessageListener;
|
|
24
|
+
/**
|
|
25
|
+
* Set up connection event forwarding.
|
|
26
|
+
* discord.js handles reconnection internally — these callbacks are for observability.
|
|
27
|
+
*/
|
|
28
|
+
private setupConnectionResilience;
|
|
17
29
|
/**
|
|
18
30
|
* Connect to Discord and return a channel object
|
|
19
31
|
* @param channelId - Discord channel ID
|
|
@@ -33,6 +45,7 @@ export declare class DiscordChatClient extends ChatClient implements ChannelOper
|
|
|
33
45
|
*/
|
|
34
46
|
postMessage(channelId: string, content: MessageContent, options?: {
|
|
35
47
|
threadTs?: string;
|
|
48
|
+
files?: FileAttachment[];
|
|
36
49
|
}): Promise<MessageData>;
|
|
37
50
|
/**
|
|
38
51
|
* Update a message in a Discord channel
|
|
@@ -61,5 +74,51 @@ export declare class DiscordChatClient extends ChatClient implements ChannelOper
|
|
|
61
74
|
* @returns Unsubscribe function
|
|
62
75
|
*/
|
|
63
76
|
subscribeToReactions(channelId: string, callback: ReactionCallback): () => void;
|
|
77
|
+
/**
|
|
78
|
+
* Subscribe to incoming message events on a channel
|
|
79
|
+
* @param channelId - Channel to monitor
|
|
80
|
+
* @param callback - Function to call when messages are received
|
|
81
|
+
* @returns Unsubscribe function
|
|
82
|
+
*/
|
|
83
|
+
subscribeToMessages(channelId: string, callback: MessageCallback): () => void;
|
|
84
|
+
/**
|
|
85
|
+
* Send a typing indicator in a Discord channel
|
|
86
|
+
* @param channelId - Channel to send typing indicator in
|
|
87
|
+
*/
|
|
88
|
+
sendTyping(channelId: string): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Create a thread from a message
|
|
91
|
+
* @param messageId - Message to create thread from
|
|
92
|
+
* @param channelId - Channel containing the message
|
|
93
|
+
* @param name - Thread name
|
|
94
|
+
* @param options - Optional thread options
|
|
95
|
+
* @returns Thread data
|
|
96
|
+
*/
|
|
97
|
+
startThread(messageId: string, channelId: string, name: string, options?: StartThreadOptions): Promise<ThreadData>;
|
|
98
|
+
/**
|
|
99
|
+
* Bulk delete messages in a Discord channel
|
|
100
|
+
* @param channelId - Channel to delete messages from
|
|
101
|
+
* @param count - Number of recent messages to delete (max 100)
|
|
102
|
+
* @returns Number of messages actually deleted
|
|
103
|
+
*/
|
|
104
|
+
bulkDelete(channelId: string, count: number): Promise<number>;
|
|
105
|
+
/**
|
|
106
|
+
* Get all threads (active and archived) in a Discord channel
|
|
107
|
+
* @param channelId - Channel to get threads from
|
|
108
|
+
* @returns Array of thread data
|
|
109
|
+
*/
|
|
110
|
+
getThreads(channelId: string): Promise<ThreadData[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Register a callback for disconnect events
|
|
113
|
+
* @param callback - Function to call when disconnected
|
|
114
|
+
* @returns Unsubscribe function
|
|
115
|
+
*/
|
|
116
|
+
onDisconnect(callback: DisconnectCallback): () => void;
|
|
117
|
+
/**
|
|
118
|
+
* Register a callback for error events
|
|
119
|
+
* @param callback - Function to call when an error occurs
|
|
120
|
+
* @returns Unsubscribe function
|
|
121
|
+
*/
|
|
122
|
+
onError(callback: ErrorCallback): () => void;
|
|
64
123
|
}
|
|
65
124
|
//# sourceMappingURL=DiscordChatClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordChatClient.d.ts","sourceRoot":"","sources":["../../src/discord/DiscordChatClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiscordChatClient.d.ts","sourceRoot":"","sources":["../../src/discord/DiscordChatClient.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAEhB,eAAe,EAGf,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAW,YAAW,iBAAiB;IAC5E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,aAAa;IAqBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+C7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAuBjC;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;;;;;OAMG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;KAAE,GACxD,OAAO,CAAC,WAAW,CAAC;IAyDvB;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF;;;;;OAKG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAmB/E;;;;;OAKG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAmB7E;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASlD;;;;;;;OAOG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,CAAC;IAmBtB;;;;;OAKG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnE;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAuB1D;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAOtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;CAM7C"}
|
|
@@ -12,20 +12,27 @@ const utils_js_1 = require("../utils.js");
|
|
|
12
12
|
class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
13
13
|
client;
|
|
14
14
|
reactionListeners = new Map();
|
|
15
|
+
messageListeners = new Map();
|
|
16
|
+
disconnectCallbacks = new Set();
|
|
17
|
+
errorCallbacks = new Set();
|
|
15
18
|
token;
|
|
16
19
|
guildId;
|
|
17
20
|
constructor(config) {
|
|
18
21
|
super(config);
|
|
19
22
|
this.token = config.token ?? process.env.DISCORD_TOKEN ?? '';
|
|
20
23
|
this.guildId = config.guildId ?? process.env.DISCORD_GUILD_ID ?? '';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
const intents = [
|
|
25
|
+
discord_js_1.GatewayIntentBits.Guilds,
|
|
26
|
+
discord_js_1.GatewayIntentBits.GuildMessages,
|
|
27
|
+
discord_js_1.GatewayIntentBits.GuildMessageReactions,
|
|
28
|
+
// MessageContent is a privileged intent requiring Discord developer portal approval.
|
|
29
|
+
// Enabled by default; set config.intents.messageContent = false to disable.
|
|
30
|
+
...(config.intents?.messageContent === false ? [] : [discord_js_1.GatewayIntentBits.MessageContent]),
|
|
31
|
+
];
|
|
32
|
+
this.client = new discord_js_1.Client({ intents });
|
|
28
33
|
this.setupReactionListener();
|
|
34
|
+
this.setupMessageListener();
|
|
35
|
+
this.setupConnectionResilience();
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
38
|
* Set up the global reaction listener that routes events to channel-specific callbacks
|
|
@@ -67,6 +74,67 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
67
74
|
})();
|
|
68
75
|
});
|
|
69
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Set up the global message listener that routes events to channel-specific callbacks
|
|
79
|
+
*/
|
|
80
|
+
setupMessageListener() {
|
|
81
|
+
this.client.on('messageCreate', (message) => {
|
|
82
|
+
void (async () => {
|
|
83
|
+
// Ignore messages from the bot itself
|
|
84
|
+
if (message.author?.id === this.client.user?.id) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const channelId = message.channelId;
|
|
88
|
+
const callbacks = this.messageListeners.get(channelId);
|
|
89
|
+
if (!callbacks || callbacks.size === 0) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const author = {
|
|
93
|
+
id: message.author?.id ?? '',
|
|
94
|
+
username: message.author?.username ?? undefined,
|
|
95
|
+
};
|
|
96
|
+
const event = {
|
|
97
|
+
id: message.id,
|
|
98
|
+
content: message.content ?? '',
|
|
99
|
+
author,
|
|
100
|
+
channelId,
|
|
101
|
+
timestamp: message.createdAt,
|
|
102
|
+
};
|
|
103
|
+
for (const callback of callbacks) {
|
|
104
|
+
try {
|
|
105
|
+
await callback(event);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error('Message callback error:', error);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
})();
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Set up connection event forwarding.
|
|
116
|
+
* discord.js handles reconnection internally — these callbacks are for observability.
|
|
117
|
+
*/
|
|
118
|
+
setupConnectionResilience() {
|
|
119
|
+
this.client.on('shardDisconnect', (_event, shardId) => {
|
|
120
|
+
const reason = `Shard ${String(shardId)} disconnected`;
|
|
121
|
+
for (const callback of this.disconnectCallbacks) {
|
|
122
|
+
void Promise.resolve(callback(reason)).catch((err) => {
|
|
123
|
+
console.error('Disconnect callback error:', err);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
this.client.on('shardError', (error, shardId) => {
|
|
128
|
+
const wrappedError = error instanceof Error
|
|
129
|
+
? error
|
|
130
|
+
: new Error(`Shard ${String(shardId)} error: ${String(error)}`);
|
|
131
|
+
for (const callback of this.errorCallbacks) {
|
|
132
|
+
void Promise.resolve(callback(wrappedError)).catch((err) => {
|
|
133
|
+
console.error('Error callback error:', err);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
70
138
|
/**
|
|
71
139
|
* Connect to Discord and return a channel object
|
|
72
140
|
* @param channelId - Discord channel ID
|
|
@@ -85,6 +153,9 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
85
153
|
*/
|
|
86
154
|
async disconnect() {
|
|
87
155
|
this.reactionListeners.clear();
|
|
156
|
+
this.messageListeners.clear();
|
|
157
|
+
this.disconnectCallbacks.clear();
|
|
158
|
+
this.errorCallbacks.clear();
|
|
88
159
|
await this.client.destroy();
|
|
89
160
|
}
|
|
90
161
|
/**
|
|
@@ -122,6 +193,10 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
122
193
|
if (options?.threadTs !== undefined && options.threadTs !== '') {
|
|
123
194
|
messageOptions.messageReference = { messageId: options.threadTs };
|
|
124
195
|
}
|
|
196
|
+
// Add file attachments
|
|
197
|
+
if (options?.files && options.files.length > 0) {
|
|
198
|
+
messageOptions.files = options.files.map((file) => new discord_js_1.AttachmentBuilder(typeof file.content === 'string' ? Buffer.from(file.content) : file.content, { name: file.name }));
|
|
199
|
+
}
|
|
125
200
|
const message = await channel.send(messageOptions);
|
|
126
201
|
return {
|
|
127
202
|
id: message.id,
|
|
@@ -199,6 +274,122 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
199
274
|
}
|
|
200
275
|
};
|
|
201
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Subscribe to incoming message events on a channel
|
|
279
|
+
* @param channelId - Channel to monitor
|
|
280
|
+
* @param callback - Function to call when messages are received
|
|
281
|
+
* @returns Unsubscribe function
|
|
282
|
+
*/
|
|
283
|
+
subscribeToMessages(channelId, callback) {
|
|
284
|
+
if (!this.messageListeners.has(channelId)) {
|
|
285
|
+
this.messageListeners.set(channelId, new Set());
|
|
286
|
+
}
|
|
287
|
+
const callbacks = this.messageListeners.get(channelId);
|
|
288
|
+
if (!callbacks) {
|
|
289
|
+
throw new Error(`Callbacks not found for channel ${channelId}`);
|
|
290
|
+
}
|
|
291
|
+
callbacks.add(callback);
|
|
292
|
+
return () => {
|
|
293
|
+
callbacks.delete(callback);
|
|
294
|
+
if (callbacks.size === 0) {
|
|
295
|
+
this.messageListeners.delete(channelId);
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Send a typing indicator in a Discord channel
|
|
301
|
+
* @param channelId - Channel to send typing indicator in
|
|
302
|
+
*/
|
|
303
|
+
async sendTyping(channelId) {
|
|
304
|
+
const channel = await this.client.channels.fetch(channelId);
|
|
305
|
+
if (!channel || !(channel instanceof discord_js_1.TextChannel)) {
|
|
306
|
+
throw new Error(`Channel ${channelId} not found or is not a text channel`);
|
|
307
|
+
}
|
|
308
|
+
await channel.sendTyping();
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Create a thread from a message
|
|
312
|
+
* @param messageId - Message to create thread from
|
|
313
|
+
* @param channelId - Channel containing the message
|
|
314
|
+
* @param name - Thread name
|
|
315
|
+
* @param options - Optional thread options
|
|
316
|
+
* @returns Thread data
|
|
317
|
+
*/
|
|
318
|
+
async startThread(messageId, channelId, name, options) {
|
|
319
|
+
const channel = await this.client.channels.fetch(channelId);
|
|
320
|
+
if (!channel || !(channel instanceof discord_js_1.TextChannel)) {
|
|
321
|
+
throw new Error(`Channel ${channelId} not found or is not a text channel`);
|
|
322
|
+
}
|
|
323
|
+
const message = await channel.messages.fetch(messageId);
|
|
324
|
+
const thread = await message.startThread({
|
|
325
|
+
name,
|
|
326
|
+
autoArchiveDuration: options?.autoArchiveDuration,
|
|
327
|
+
});
|
|
328
|
+
return {
|
|
329
|
+
id: thread.id,
|
|
330
|
+
channelId: channelId,
|
|
331
|
+
platform: 'discord',
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Bulk delete messages in a Discord channel
|
|
336
|
+
* @param channelId - Channel to delete messages from
|
|
337
|
+
* @param count - Number of recent messages to delete (max 100)
|
|
338
|
+
* @returns Number of messages actually deleted
|
|
339
|
+
*/
|
|
340
|
+
async bulkDelete(channelId, count) {
|
|
341
|
+
const channel = await this.client.channels.fetch(channelId);
|
|
342
|
+
if (!channel || !(channel instanceof discord_js_1.TextChannel)) {
|
|
343
|
+
throw new Error(`Channel ${channelId} not found or is not a text channel`);
|
|
344
|
+
}
|
|
345
|
+
const deleted = await channel.bulkDelete(count, true);
|
|
346
|
+
return deleted.size;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Get all threads (active and archived) in a Discord channel
|
|
350
|
+
* @param channelId - Channel to get threads from
|
|
351
|
+
* @returns Array of thread data
|
|
352
|
+
*/
|
|
353
|
+
async getThreads(channelId) {
|
|
354
|
+
const channel = await this.client.channels.fetch(channelId);
|
|
355
|
+
if (!channel || !(channel instanceof discord_js_1.TextChannel)) {
|
|
356
|
+
throw new Error(`Channel ${channelId} not found or is not a text channel`);
|
|
357
|
+
}
|
|
358
|
+
const threads = [];
|
|
359
|
+
// Fetch active threads
|
|
360
|
+
const activeThreads = await channel.threads.fetchActive();
|
|
361
|
+
for (const [threadId] of activeThreads.threads) {
|
|
362
|
+
threads.push({ id: threadId, channelId, platform: 'discord' });
|
|
363
|
+
}
|
|
364
|
+
// Fetch archived threads
|
|
365
|
+
const archivedThreads = await channel.threads.fetchArchived();
|
|
366
|
+
for (const [threadId] of archivedThreads.threads) {
|
|
367
|
+
threads.push({ id: threadId, channelId, platform: 'discord' });
|
|
368
|
+
}
|
|
369
|
+
return threads;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Register a callback for disconnect events
|
|
373
|
+
* @param callback - Function to call when disconnected
|
|
374
|
+
* @returns Unsubscribe function
|
|
375
|
+
*/
|
|
376
|
+
onDisconnect(callback) {
|
|
377
|
+
this.disconnectCallbacks.add(callback);
|
|
378
|
+
return () => {
|
|
379
|
+
this.disconnectCallbacks.delete(callback);
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Register a callback for error events
|
|
384
|
+
* @param callback - Function to call when an error occurs
|
|
385
|
+
* @returns Unsubscribe function
|
|
386
|
+
*/
|
|
387
|
+
onError(callback) {
|
|
388
|
+
this.errorCallbacks.add(callback);
|
|
389
|
+
return () => {
|
|
390
|
+
this.errorCallbacks.delete(callback);
|
|
391
|
+
};
|
|
392
|
+
}
|
|
202
393
|
}
|
|
203
394
|
exports.DiscordChatClient = DiscordChatClient;
|
|
204
395
|
//# sourceMappingURL=DiscordChatClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordChatClient.js","sourceRoot":"","sources":["../../src/discord/DiscordChatClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiscordChatClient.js","sourceRoot":"","sources":["../../src/discord/DiscordChatClient.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type User, type DiscordConfig, type SlackConfig, type ChatConfig, type Platform, type ReactionEvent, type ReactionCallback, type MessageContent, type PostMessageOptions, } from './types';
|
|
1
|
+
export { type User, type DiscordConfig, type SlackConfig, type ChatConfig, type Platform, type ReactionEvent, type ReactionCallback, type MessageEvent, type MessageCallback, type MessageContent, type PostMessageOptions, type FileAttachment, type ThreadData, type StartThreadOptions, type DiscordGatewayIntents, type DisconnectCallback, type ErrorCallback, } from './types';
|
|
2
2
|
export { ChatClient } from './ChatClient';
|
|
3
3
|
export { Channel, type ChannelOperations } from './Channel';
|
|
4
4
|
export { Message, ReplyMessage, type MessageOperations } from './Message';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAS/D"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAwDA,4CASC;AA5CD,eAAe;AACf,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qCAA4D;AAAnD,kGAAA,OAAO,OAAA;AAChB,qCAA0E;AAAjE,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAE9B,2BAA2B;AAC3B,yCAAoD;AAA3C,0GAAA,iBAAiB,OAAA;AAC1B,uCAAgD;AAAvC,wGAAA,eAAe,OAAA;AAKxB,2CAAoD;AACpD,yCAAgD;AAEhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,IAAI,yBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,IAAI,uBAAe,CAAC,MAAM,CAAC,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CAAC,0BAA2B,MAA2B,CAAC,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { ChatClient } from '../ChatClient.js';
|
|
2
2
|
import { Channel, type ChannelOperations } from '../Channel.js';
|
|
3
|
-
import type { SlackConfig, MessageData, ReactionCallback, MessageContent } from '../types.js';
|
|
3
|
+
import type { SlackConfig, MessageData, ReactionCallback, MessageCallback, MessageContent, FileAttachment, ThreadData, StartThreadOptions, DisconnectCallback, ErrorCallback } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Slack chat client implementation using @slack/bolt
|
|
6
6
|
*/
|
|
7
7
|
export declare class SlackChatClient extends ChatClient implements ChannelOperations {
|
|
8
8
|
private app;
|
|
9
9
|
private reactionCallbacks;
|
|
10
|
+
private messageCallbacks;
|
|
11
|
+
private disconnectCallbacks;
|
|
12
|
+
private errorCallbacks;
|
|
10
13
|
constructor(config: SlackConfig);
|
|
11
14
|
/**
|
|
12
15
|
* Connect to Slack and return a channel object
|
|
@@ -21,6 +24,7 @@ export declare class SlackChatClient extends ChatClient implements ChannelOperat
|
|
|
21
24
|
*/
|
|
22
25
|
postMessage(channelId: string, content: MessageContent, options?: {
|
|
23
26
|
threadTs?: string;
|
|
27
|
+
files?: FileAttachment[];
|
|
24
28
|
}): Promise<MessageData>;
|
|
25
29
|
/**
|
|
26
30
|
* Update a message in a Slack channel
|
|
@@ -38,5 +42,34 @@ export declare class SlackChatClient extends ChatClient implements ChannelOperat
|
|
|
38
42
|
* Subscribe to reaction events for a specific channel
|
|
39
43
|
*/
|
|
40
44
|
subscribeToReactions(channelId: string, callback: ReactionCallback): () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Subscribe to incoming message events on a channel
|
|
47
|
+
*/
|
|
48
|
+
subscribeToMessages(channelId: string, callback: MessageCallback): () => void;
|
|
49
|
+
/**
|
|
50
|
+
* Send a typing indicator (not directly supported in Slack bot API - no-op)
|
|
51
|
+
*/
|
|
52
|
+
sendTyping(_channelId: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Create a thread from a message in Slack
|
|
55
|
+
* Slack threads are implicit - posting a reply creates the thread
|
|
56
|
+
*/
|
|
57
|
+
startThread(messageId: string, channelId: string, _name: string, _options?: StartThreadOptions): Promise<ThreadData>;
|
|
58
|
+
/**
|
|
59
|
+
* Bulk delete messages in a Slack channel
|
|
60
|
+
*/
|
|
61
|
+
bulkDelete(channelId: string, count: number): Promise<number>;
|
|
62
|
+
/**
|
|
63
|
+
* Get all threads in a Slack channel
|
|
64
|
+
*/
|
|
65
|
+
getThreads(channelId: string): Promise<ThreadData[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Register a callback for disconnect events
|
|
68
|
+
*/
|
|
69
|
+
onDisconnect(callback: DisconnectCallback): () => void;
|
|
70
|
+
/**
|
|
71
|
+
* Register a callback for error events
|
|
72
|
+
*/
|
|
73
|
+
onError(callback: ErrorCallback): () => void;
|
|
41
74
|
}
|
|
42
75
|
//# sourceMappingURL=SlackChatClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackChatClient.d.ts","sourceRoot":"","sources":["../../src/slack/SlackChatClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SlackChatClient.d.ts","sourceRoot":"","sources":["../../src/slack/SlackChatClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAEhB,eAAe,EAGf,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAW,YAAW,iBAAiB;IAC1E,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,cAAc,CAA4B;gBAEtC,MAAM,EAAE,WAAW;IA8F/B;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;KAAE,GACxD,OAAO,CAAC,WAAW,CAAC;IAgEvB;;OAEG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAmBhB;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAoB/E;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAmB7E;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;OAGG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,UAAU,CAAC;IAUtB;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BnE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA4B1D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAOtD;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;CAM7C"}
|