@hardlydifficult/chat 1.1.18 → 1.1.20
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 +39 -3
- package/dist/Channel.d.ts +23 -0
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +47 -7
- package/dist/Channel.js.map +1 -1
- package/dist/Message.d.ts +7 -7
- package/dist/Message.d.ts.map +1 -1
- package/dist/Message.js +5 -6
- package/dist/Message.js.map +1 -1
- package/dist/Thread.d.ts +47 -5
- package/dist/Thread.d.ts.map +1 -1
- package/dist/Thread.js +62 -6
- package/dist/Thread.js.map +1 -1
- package/dist/discord/DiscordChatClient.d.ts +12 -0
- package/dist/discord/DiscordChatClient.d.ts.map +1 -1
- package/dist/discord/DiscordChatClient.js +38 -73
- package/dist/discord/DiscordChatClient.js.map +1 -1
- package/dist/discord/buildMessagePayload.d.ts +23 -0
- package/dist/discord/buildMessagePayload.d.ts.map +1 -0
- package/dist/discord/buildMessagePayload.js +41 -0
- package/dist/discord/buildMessagePayload.js.map +1 -0
- package/dist/discord/threadOperations.d.ts +16 -0
- package/dist/discord/threadOperations.d.ts.map +1 -0
- package/dist/discord/threadOperations.js +48 -0
- package/dist/discord/threadOperations.js.map +1 -0
- package/dist/outputters/discord.d.ts +1 -0
- package/dist/outputters/discord.d.ts.map +1 -1
- package/dist/outputters/discord.js +1 -0
- package/dist/outputters/discord.js.map +1 -1
- package/dist/slack/SlackChatClient.d.ts +13 -0
- package/dist/slack/SlackChatClient.d.ts.map +1 -1
- package/dist/slack/SlackChatClient.js +66 -59
- package/dist/slack/SlackChatClient.js.map +1 -1
- package/dist/slack/buildMessageEvent.d.ts +23 -0
- package/dist/slack/buildMessageEvent.d.ts.map +1 -0
- package/dist/slack/buildMessageEvent.js +44 -0
- package/dist/slack/buildMessageEvent.js.map +1 -0
- package/dist/slack/getThreads.d.ts +7 -0
- package/dist/slack/getThreads.d.ts.map +1 -0
- package/dist/slack/getThreads.js +29 -0
- package/dist/slack/getThreads.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/discord/deleteThread.d.ts +0 -7
- package/dist/discord/deleteThread.d.ts.map +0 -1
- package/dist/discord/deleteThread.js +0 -16
- package/dist/discord/deleteThread.js.map +0 -1
|
@@ -6,8 +6,9 @@ const Channel_js_1 = require("../Channel.js");
|
|
|
6
6
|
const ChatClient_js_1 = require("../ChatClient.js");
|
|
7
7
|
const discord_js_2 = require("../outputters/discord.js");
|
|
8
8
|
const utils_js_1 = require("../utils.js");
|
|
9
|
-
const
|
|
9
|
+
const buildMessagePayload_js_1 = require("./buildMessagePayload.js");
|
|
10
10
|
const fetchChannelMembers_js_1 = require("./fetchChannelMembers.js");
|
|
11
|
+
const threadOperations_js_1 = require("./threadOperations.js");
|
|
11
12
|
/**
|
|
12
13
|
* Discord chat client implementation using discord.js
|
|
13
14
|
*/
|
|
@@ -151,7 +152,8 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
151
152
|
}
|
|
152
153
|
async fetchTextChannel(channelId) {
|
|
153
154
|
const channel = await this.client.channels.fetch(channelId);
|
|
154
|
-
if (!channel ||
|
|
155
|
+
if (!channel ||
|
|
156
|
+
(!(channel instanceof discord_js_1.TextChannel) && !(channel instanceof discord_js_1.ThreadChannel))) {
|
|
155
157
|
throw new Error(`Channel ${channelId} not found or is not a text channel`);
|
|
156
158
|
}
|
|
157
159
|
return channel;
|
|
@@ -180,45 +182,9 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
180
182
|
*/
|
|
181
183
|
async postMessage(channelId, content, options) {
|
|
182
184
|
const channel = await this.fetchTextChannel(channelId);
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
// Check if embed has any content - Discord rejects empty embeds
|
|
187
|
-
const hasEmbedContent = embed.title !== undefined ||
|
|
188
|
-
embed.description !== undefined ||
|
|
189
|
-
embed.footer !== undefined ||
|
|
190
|
-
embed.image !== undefined;
|
|
191
|
-
if (hasEmbedContent) {
|
|
192
|
-
messageOptions = { embeds: [embed] };
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
// Fallback to empty content for documents with no visible blocks
|
|
196
|
-
messageOptions = { content: "\u200B" };
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
messageOptions = { content };
|
|
201
|
-
}
|
|
202
|
-
// If threadTs is provided (non-empty), use it as a reply reference
|
|
203
|
-
if (options?.threadTs !== undefined && options.threadTs !== "") {
|
|
204
|
-
messageOptions.messageReference = { messageId: options.threadTs };
|
|
205
|
-
}
|
|
206
|
-
// Add file attachments
|
|
207
|
-
if (options?.files && options.files.length > 0) {
|
|
208
|
-
messageOptions.files = options.files.map((file) => new discord_js_1.AttachmentBuilder(typeof file.content === "string"
|
|
209
|
-
? Buffer.from(file.content)
|
|
210
|
-
: file.content, { name: file.name }));
|
|
211
|
-
}
|
|
212
|
-
// Suppress link preview embeds by default
|
|
213
|
-
if (options?.linkPreviews !== true) {
|
|
214
|
-
messageOptions.flags = discord_js_1.MessageFlags.SuppressEmbeds;
|
|
215
|
-
}
|
|
216
|
-
const message = await channel.send(messageOptions);
|
|
217
|
-
return {
|
|
218
|
-
id: message.id,
|
|
219
|
-
channelId,
|
|
220
|
-
platform: "discord",
|
|
221
|
-
};
|
|
185
|
+
const payload = (0, buildMessagePayload_js_1.buildMessagePayload)(content, options);
|
|
186
|
+
const message = await channel.send(payload);
|
|
187
|
+
return { id: message.id, channelId, platform: "discord" };
|
|
222
188
|
}
|
|
223
189
|
/**
|
|
224
190
|
* Update a message in a Discord channel
|
|
@@ -294,12 +260,10 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
294
260
|
* @returns Unsubscribe function
|
|
295
261
|
*/
|
|
296
262
|
subscribeToReactions(channelId, callback) {
|
|
297
|
-
|
|
298
|
-
this.reactionListeners.set(channelId, new Set());
|
|
299
|
-
}
|
|
300
|
-
const callbacks = this.reactionListeners.get(channelId);
|
|
263
|
+
let callbacks = this.reactionListeners.get(channelId);
|
|
301
264
|
if (!callbacks) {
|
|
302
|
-
|
|
265
|
+
callbacks = new Set();
|
|
266
|
+
this.reactionListeners.set(channelId, callbacks);
|
|
303
267
|
}
|
|
304
268
|
callbacks.add(callback);
|
|
305
269
|
return () => {
|
|
@@ -316,12 +280,10 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
316
280
|
* @returns Unsubscribe function
|
|
317
281
|
*/
|
|
318
282
|
subscribeToMessages(channelId, callback) {
|
|
319
|
-
|
|
320
|
-
this.messageListeners.set(channelId, new Set());
|
|
321
|
-
}
|
|
322
|
-
const callbacks = this.messageListeners.get(channelId);
|
|
283
|
+
let callbacks = this.messageListeners.get(channelId);
|
|
323
284
|
if (!callbacks) {
|
|
324
|
-
|
|
285
|
+
callbacks = new Set();
|
|
286
|
+
this.messageListeners.set(channelId, callbacks);
|
|
325
287
|
}
|
|
326
288
|
callbacks.add(callback);
|
|
327
289
|
return () => {
|
|
@@ -349,16 +311,7 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
349
311
|
*/
|
|
350
312
|
async startThread(messageId, channelId, name, autoArchiveDuration) {
|
|
351
313
|
const channel = await this.fetchTextChannel(channelId);
|
|
352
|
-
|
|
353
|
-
const thread = await message.startThread({
|
|
354
|
-
name,
|
|
355
|
-
autoArchiveDuration: autoArchiveDuration,
|
|
356
|
-
});
|
|
357
|
-
return {
|
|
358
|
-
id: thread.id,
|
|
359
|
-
channelId,
|
|
360
|
-
platform: "discord",
|
|
361
|
-
};
|
|
314
|
+
return (0, threadOperations_js_1.startThread)(channel, messageId, channelId, name, autoArchiveDuration);
|
|
362
315
|
}
|
|
363
316
|
/**
|
|
364
317
|
* Bulk delete messages in a Discord channel
|
|
@@ -368,6 +321,9 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
368
321
|
*/
|
|
369
322
|
async bulkDelete(channelId, count) {
|
|
370
323
|
const channel = await this.fetchTextChannel(channelId);
|
|
324
|
+
if (!(channel instanceof discord_js_1.TextChannel)) {
|
|
325
|
+
throw new Error(`Channel ${channelId} is not a text channel`);
|
|
326
|
+
}
|
|
371
327
|
const deleted = await channel.bulkDelete(count, true);
|
|
372
328
|
return deleted.size;
|
|
373
329
|
}
|
|
@@ -378,28 +334,37 @@ class DiscordChatClient extends ChatClient_js_1.ChatClient {
|
|
|
378
334
|
*/
|
|
379
335
|
async getThreads(channelId) {
|
|
380
336
|
const channel = await this.fetchTextChannel(channelId);
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
const activeThreads = await channel.threads.fetchActive();
|
|
384
|
-
for (const [threadId] of activeThreads.threads) {
|
|
385
|
-
threads.push({ id: threadId, channelId, platform: "discord" });
|
|
386
|
-
}
|
|
387
|
-
// Fetch archived threads
|
|
388
|
-
const archivedThreads = await channel.threads.fetchArchived();
|
|
389
|
-
for (const [threadId] of archivedThreads.threads) {
|
|
390
|
-
threads.push({ id: threadId, channelId, platform: "discord" });
|
|
337
|
+
if (!(channel instanceof discord_js_1.TextChannel)) {
|
|
338
|
+
throw new Error(`Channel ${channelId} is not a text channel`);
|
|
391
339
|
}
|
|
392
|
-
return
|
|
340
|
+
return (0, threadOperations_js_1.getThreads)(channel, channelId);
|
|
393
341
|
}
|
|
394
342
|
/**
|
|
395
343
|
* Delete a thread in a Discord channel
|
|
396
344
|
* @param threadId - ID of the thread to delete
|
|
397
345
|
*/
|
|
398
346
|
async deleteThread(threadId, _channelId) {
|
|
399
|
-
await (0,
|
|
347
|
+
await (0, threadOperations_js_1.deleteThread)(this.client, threadId);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Post a message to a thread channel
|
|
351
|
+
* In Discord, the threadId IS the channel to post in (threads are channels)
|
|
352
|
+
*/
|
|
353
|
+
async postToThread(threadId, _channelId, content, options) {
|
|
354
|
+
return this.postMessage(threadId, content, { files: options?.files });
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Subscribe to messages in a specific thread
|
|
358
|
+
* In Discord, threadId IS the thread channel — reuse message subscription
|
|
359
|
+
*/
|
|
360
|
+
subscribeToThread(threadId, _channelId, callback) {
|
|
361
|
+
return this.subscribeToMessages(threadId, callback);
|
|
400
362
|
}
|
|
401
363
|
async getMembers(channelId) {
|
|
402
364
|
const channel = await this.fetchTextChannel(channelId);
|
|
365
|
+
if (!(channel instanceof discord_js_1.TextChannel)) {
|
|
366
|
+
throw new Error(`Channel ${channelId} is not a text channel`);
|
|
367
|
+
}
|
|
403
368
|
return (0, fetchChannelMembers_js_1.fetchChannelMembers)(channel);
|
|
404
369
|
}
|
|
405
370
|
/**
|
|
@@ -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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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AttachmentBuilder, MessageFlags } from "discord.js";
|
|
2
|
+
import { type DiscordEmbed } from "../outputters/discord.js";
|
|
3
|
+
import type { FileAttachment, MessageContent } from "../types.js";
|
|
4
|
+
export interface DiscordMessagePayload {
|
|
5
|
+
content?: string;
|
|
6
|
+
embeds?: DiscordEmbed[];
|
|
7
|
+
messageReference?: {
|
|
8
|
+
messageId: string;
|
|
9
|
+
};
|
|
10
|
+
files?: AttachmentBuilder[];
|
|
11
|
+
flags?: typeof MessageFlags.SuppressEmbeds;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Build a Discord message payload from content and options.
|
|
15
|
+
* Handles Document-to-embed conversion, file attachments, reply references,
|
|
16
|
+
* and link preview suppression.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildMessagePayload(content: MessageContent, options?: {
|
|
19
|
+
threadTs?: string;
|
|
20
|
+
files?: FileAttachment[];
|
|
21
|
+
linkPreviews?: boolean;
|
|
22
|
+
}): DiscordMessagePayload;
|
|
23
|
+
//# sourceMappingURL=buildMessagePayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildMessagePayload.d.ts","sourceRoot":"","sources":["../../src/discord/buildMessagePayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlE,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,cAAc,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,qBAAqB,CAwCvB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildMessagePayload = buildMessagePayload;
|
|
4
|
+
const discord_js_1 = require("discord.js");
|
|
5
|
+
const discord_js_2 = require("../outputters/discord.js");
|
|
6
|
+
const utils_js_1 = require("../utils.js");
|
|
7
|
+
/**
|
|
8
|
+
* Build a Discord message payload from content and options.
|
|
9
|
+
* Handles Document-to-embed conversion, file attachments, reply references,
|
|
10
|
+
* and link preview suppression.
|
|
11
|
+
*/
|
|
12
|
+
function buildMessagePayload(content, options) {
|
|
13
|
+
let payload;
|
|
14
|
+
if ((0, utils_js_1.isDocument)(content)) {
|
|
15
|
+
const embed = (0, discord_js_2.toDiscordEmbed)(content.getBlocks());
|
|
16
|
+
const hasEmbedContent = embed.title !== undefined ||
|
|
17
|
+
embed.description !== undefined ||
|
|
18
|
+
embed.footer !== undefined ||
|
|
19
|
+
embed.image !== undefined;
|
|
20
|
+
payload = hasEmbedContent ? { embeds: [embed] } : { content: "\u200B" };
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
payload = { content };
|
|
24
|
+
}
|
|
25
|
+
// If threadTs is provided (non-empty), use it as a reply reference
|
|
26
|
+
if (options?.threadTs !== undefined && options.threadTs !== "") {
|
|
27
|
+
payload.messageReference = { messageId: options.threadTs };
|
|
28
|
+
}
|
|
29
|
+
// Add file attachments
|
|
30
|
+
if (options?.files && options.files.length > 0) {
|
|
31
|
+
payload.files = options.files.map((file) => new discord_js_1.AttachmentBuilder(typeof file.content === "string"
|
|
32
|
+
? Buffer.from(file.content)
|
|
33
|
+
: file.content, { name: file.name }));
|
|
34
|
+
}
|
|
35
|
+
// Suppress link preview embeds by default
|
|
36
|
+
if (options?.linkPreviews !== true) {
|
|
37
|
+
payload.flags = discord_js_1.MessageFlags.SuppressEmbeds;
|
|
38
|
+
}
|
|
39
|
+
return payload;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=buildMessagePayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildMessagePayload.js","sourceRoot":"","sources":["../../src/discord/buildMessagePayload.ts"],"names":[],"mappings":";;AAmBA,kDA+CC;AAlED,2CAA6D;AAE7D,yDAA6E;AAE7E,0CAAyC;AAUzC;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,OAAuB,EACvB,OAIC;IAED,IAAI,OAA8B,CAAC;IAEnC,IAAI,IAAA,qBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,eAAe,GACnB,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,KAAK,CAAC,WAAW,KAAK,SAAS;YAC/B,KAAK,CAAC,MAAM,KAAK,SAAS;YAC1B,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;QAE5B,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,mEAAmE;IACnE,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC/D,OAAO,CAAC,gBAAgB,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAC/B,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,8BAAiB,CACnB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,EAChB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CACpB,CACJ,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,IAAI,OAAO,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,GAAG,yBAAY,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Client, type TextChannel, ThreadChannel } from "discord.js";
|
|
2
|
+
import type { ThreadData } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Create a thread from a message in a Discord text channel.
|
|
5
|
+
*/
|
|
6
|
+
export declare function startThread(channel: TextChannel | ThreadChannel, messageId: string, channelId: string, name: string, autoArchiveDuration?: number): Promise<ThreadData>;
|
|
7
|
+
/**
|
|
8
|
+
* Get all threads (active and archived) in a Discord text channel.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getThreads(channel: TextChannel, channelId: string): Promise<ThreadData[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Delete a thread by its ID.
|
|
13
|
+
* Fetches the thread channel and calls delete().
|
|
14
|
+
*/
|
|
15
|
+
export declare function deleteThread(client: Client, threadId: string): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=threadOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threadOperations.d.ts","sourceRoot":"","sources":["../../src/discord/threadOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,GAAG,aAAa,EACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,UAAU,CAAC,CAiBrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CAcvB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startThread = startThread;
|
|
4
|
+
exports.getThreads = getThreads;
|
|
5
|
+
exports.deleteThread = deleteThread;
|
|
6
|
+
const discord_js_1 = require("discord.js");
|
|
7
|
+
/**
|
|
8
|
+
* Create a thread from a message in a Discord text channel.
|
|
9
|
+
*/
|
|
10
|
+
async function startThread(channel, messageId, channelId, name, autoArchiveDuration) {
|
|
11
|
+
const message = await channel.messages.fetch(messageId);
|
|
12
|
+
const thread = await message.startThread({
|
|
13
|
+
name,
|
|
14
|
+
autoArchiveDuration: autoArchiveDuration,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
id: thread.id,
|
|
18
|
+
channelId,
|
|
19
|
+
platform: "discord",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get all threads (active and archived) in a Discord text channel.
|
|
24
|
+
*/
|
|
25
|
+
async function getThreads(channel, channelId) {
|
|
26
|
+
const threads = [];
|
|
27
|
+
const activeThreads = await channel.threads.fetchActive();
|
|
28
|
+
for (const [threadId] of activeThreads.threads) {
|
|
29
|
+
threads.push({ id: threadId, channelId, platform: "discord" });
|
|
30
|
+
}
|
|
31
|
+
const archivedThreads = await channel.threads.fetchArchived();
|
|
32
|
+
for (const [threadId] of archivedThreads.threads) {
|
|
33
|
+
threads.push({ id: threadId, channelId, platform: "discord" });
|
|
34
|
+
}
|
|
35
|
+
return threads;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Delete a thread by its ID.
|
|
39
|
+
* Fetches the thread channel and calls delete().
|
|
40
|
+
*/
|
|
41
|
+
async function deleteThread(client, threadId) {
|
|
42
|
+
const thread = await client.channels.fetch(threadId);
|
|
43
|
+
if (!thread || !(thread instanceof discord_js_1.ThreadChannel)) {
|
|
44
|
+
throw new Error(`Thread ${threadId} not found`);
|
|
45
|
+
}
|
|
46
|
+
await thread.delete();
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=threadOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threadOperations.js","sourceRoot":"","sources":["../../src/discord/threadOperations.ts"],"names":[],"mappings":";;AAOA,kCAuBC;AAKD,gCAiBC;AAMD,oCASC;AAnED,2CAA0E;AAI1E;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAoC,EACpC,SAAiB,EACjB,SAAiB,EACjB,IAAY,EACZ,mBAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI;QACJ,mBAAmB,EAAE,mBAKR;KACd,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,SAAS;QACT,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAoB,EACpB,SAAiB;IAEjB,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC9D,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,YAAY,0BAAa,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../src/outputters/discord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAsE5D"}
|
|
1
|
+
{"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../src/outputters/discord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAsE5D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toDiscordEmbed = toDiscordEmbed;
|
|
4
|
+
/** Converts an array of Document blocks into a Discord embed object. */
|
|
4
5
|
function toDiscordEmbed(blocks) {
|
|
5
6
|
const embed = {};
|
|
6
7
|
const descriptionParts = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord.js","sourceRoot":"","sources":["../../src/outputters/discord.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"discord.js","sourceRoot":"","sources":["../../src/outputters/discord.ts"],"names":[],"mappings":";;AAiBA,wCAsEC;AAvED,wEAAwE;AACxE,SAAgB,cAAc,CAAC,MAAe;IAC5C,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,yCAAyC;oBACzC,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM;YAER,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACjC,MAAM;YACR,CAAC;YAED,KAAK,SAAS;gBACZ,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrC,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;oBACpC,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACxB,mDAAmD;oBACnD,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClE,CAAC;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,gBAAgB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvD,MAAM;YAER,KAAK,MAAM;gBACT,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,gBAAgB,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBACjC,MAAM;YAER;gBACE,2BAA2B;gBAC3B,MAAM;QACV,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -8,6 +8,7 @@ export declare class SlackChatClient extends ChatClient implements ChannelOperat
|
|
|
8
8
|
private app;
|
|
9
9
|
private reactionCallbacks;
|
|
10
10
|
private messageCallbacks;
|
|
11
|
+
private threadCallbacks;
|
|
11
12
|
private disconnectCallbacks;
|
|
12
13
|
private errorCallbacks;
|
|
13
14
|
constructor(config: SlackConfig);
|
|
@@ -79,6 +80,18 @@ export declare class SlackChatClient extends ChatClient implements ChannelOperat
|
|
|
79
80
|
*/
|
|
80
81
|
deleteThread(threadId: string, channelId: string): Promise<void>;
|
|
81
82
|
getMembers(channelId: string): Promise<Member[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Post a message to a thread
|
|
85
|
+
* Slack posts to the parent channel with thread_ts
|
|
86
|
+
*/
|
|
87
|
+
postToThread(threadId: string, channelId: string, content: MessageContent, options?: {
|
|
88
|
+
files?: FileAttachment[];
|
|
89
|
+
}): Promise<MessageData>;
|
|
90
|
+
/**
|
|
91
|
+
* Subscribe to messages in a specific thread
|
|
92
|
+
* Callbacks are keyed by threadId (parent message ts)
|
|
93
|
+
*/
|
|
94
|
+
subscribeToThread(threadId: string, _channelId: string, callback: MessageCallback): () => void;
|
|
82
95
|
/**
|
|
83
96
|
* Register a callback for disconnect events
|
|
84
97
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackChatClient.d.ts","sourceRoot":"","sources":["../../src/slack/SlackChatClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SlackChatClient.d.ts","sourceRoot":"","sources":["../../src/slack/SlackChatClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,9 @@ const Channel_js_1 = require("../Channel.js");
|
|
|
7
7
|
const ChatClient_js_1 = require("../ChatClient.js");
|
|
8
8
|
const slack_js_1 = require("../outputters/slack.js");
|
|
9
9
|
const utils_js_1 = require("../utils.js");
|
|
10
|
+
const buildMessageEvent_js_1 = require("./buildMessageEvent.js");
|
|
10
11
|
const fetchChannelMembers_js_1 = require("./fetchChannelMembers.js");
|
|
12
|
+
const getThreads_js_1 = require("./getThreads.js");
|
|
11
13
|
const removeAllReactions_js_1 = require("./removeAllReactions.js");
|
|
12
14
|
/**
|
|
13
15
|
* Slack chat client implementation using @slack/bolt
|
|
@@ -16,6 +18,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
16
18
|
app;
|
|
17
19
|
reactionCallbacks = new Map();
|
|
18
20
|
messageCallbacks = new Map();
|
|
21
|
+
threadCallbacks = new Map();
|
|
19
22
|
disconnectCallbacks = new Set();
|
|
20
23
|
errorCallbacks = new Set();
|
|
21
24
|
constructor(config) {
|
|
@@ -64,55 +67,46 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
64
67
|
}
|
|
65
68
|
});
|
|
66
69
|
// Set up global message event listener
|
|
70
|
+
// @slack/bolt's message event is a complex union — narrow to our typed subset
|
|
67
71
|
this.app.event("message", async ({ event, context }) => {
|
|
68
|
-
const
|
|
69
|
-
const callbacks = this.messageCallbacks.get(channelId);
|
|
70
|
-
if (!callbacks || callbacks.size === 0) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
72
|
+
const payload = event;
|
|
73
73
|
// Skip bot's own messages
|
|
74
74
|
if (context.botId !== undefined &&
|
|
75
75
|
context.botId !== "" &&
|
|
76
|
-
|
|
77
|
-
event.bot_id === context.botId) {
|
|
76
|
+
payload.bot_id === context.botId) {
|
|
78
77
|
return;
|
|
79
78
|
}
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
const messageEvent = (0, buildMessageEvent_js_1.buildMessageEvent)(payload);
|
|
80
|
+
// Determine if this is a thread reply (thread_ts present and differs from ts)
|
|
81
|
+
const { thread_ts: threadTs } = payload;
|
|
82
|
+
const isThreadReply = threadTs !== undefined && threadTs !== payload.ts;
|
|
83
|
+
if (isThreadReply) {
|
|
84
|
+
const callbacks = this.threadCallbacks.get(threadTs);
|
|
85
|
+
if (!callbacks || callbacks.size === 0) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
messageEvent.threadId = threadTs;
|
|
89
|
+
for (const callback of callbacks) {
|
|
90
|
+
try {
|
|
91
|
+
await Promise.resolve(callback(messageEvent));
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
console.error("Message callback error:", err);
|
|
92
95
|
}
|
|
93
|
-
const mimetype = typeof f.mimetype === "string" ? f.mimetype : undefined;
|
|
94
|
-
attachments.push({
|
|
95
|
-
url,
|
|
96
|
-
name,
|
|
97
|
-
contentType: mimetype === "" ? undefined : mimetype,
|
|
98
|
-
size: typeof f.size === "number" ? f.size : undefined,
|
|
99
|
-
});
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
channelId,
|
|
107
|
-
timestamp: "ts" in event ? new Date(parseFloat(event.ts) * 1000) : new Date(),
|
|
108
|
-
attachments,
|
|
109
|
-
};
|
|
110
|
-
for (const callback of callbacks) {
|
|
111
|
-
try {
|
|
112
|
-
await Promise.resolve(callback(messageEvent));
|
|
98
|
+
else {
|
|
99
|
+
const callbacks = this.messageCallbacks.get(payload.channel);
|
|
100
|
+
if (!callbacks || callbacks.size === 0) {
|
|
101
|
+
return;
|
|
113
102
|
}
|
|
114
|
-
|
|
115
|
-
|
|
103
|
+
for (const callback of callbacks) {
|
|
104
|
+
try {
|
|
105
|
+
await Promise.resolve(callback(messageEvent));
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
console.error("Message callback error:", err);
|
|
109
|
+
}
|
|
116
110
|
}
|
|
117
111
|
}
|
|
118
112
|
});
|
|
@@ -131,6 +125,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
131
125
|
await this.app.stop();
|
|
132
126
|
this.reactionCallbacks.clear();
|
|
133
127
|
this.messageCallbacks.clear();
|
|
128
|
+
this.threadCallbacks.clear();
|
|
134
129
|
this.disconnectCallbacks.clear();
|
|
135
130
|
this.errorCallbacks.clear();
|
|
136
131
|
}
|
|
@@ -369,26 +364,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
369
364
|
* Get all threads in a Slack channel
|
|
370
365
|
*/
|
|
371
366
|
async getThreads(channelId) {
|
|
372
|
-
|
|
373
|
-
const history = await this.app.client.conversations.history({
|
|
374
|
-
channel: channelId,
|
|
375
|
-
limit: 200,
|
|
376
|
-
});
|
|
377
|
-
if (history.messages) {
|
|
378
|
-
for (const msg of history.messages) {
|
|
379
|
-
if (msg.reply_count !== undefined &&
|
|
380
|
-
msg.reply_count > 0 &&
|
|
381
|
-
msg.ts !== undefined &&
|
|
382
|
-
msg.ts !== "") {
|
|
383
|
-
threads.push({
|
|
384
|
-
id: msg.ts,
|
|
385
|
-
channelId,
|
|
386
|
-
platform: "slack",
|
|
387
|
-
});
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
return threads;
|
|
367
|
+
return (0, getThreads_js_1.getThreads)(this.app, channelId);
|
|
392
368
|
}
|
|
393
369
|
/**
|
|
394
370
|
* Delete a thread in a Slack channel.
|
|
@@ -400,6 +376,37 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
400
376
|
async getMembers(channelId) {
|
|
401
377
|
return (0, fetchChannelMembers_js_1.fetchChannelMembers)(this.app, channelId);
|
|
402
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Post a message to a thread
|
|
381
|
+
* Slack posts to the parent channel with thread_ts
|
|
382
|
+
*/
|
|
383
|
+
async postToThread(threadId, channelId, content, options) {
|
|
384
|
+
return this.postMessage(channelId, content, {
|
|
385
|
+
threadTs: threadId,
|
|
386
|
+
files: options?.files,
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Subscribe to messages in a specific thread
|
|
391
|
+
* Callbacks are keyed by threadId (parent message ts)
|
|
392
|
+
*/
|
|
393
|
+
subscribeToThread(threadId, _channelId, callback) {
|
|
394
|
+
let callbacks = this.threadCallbacks.get(threadId);
|
|
395
|
+
if (!callbacks) {
|
|
396
|
+
callbacks = new Set();
|
|
397
|
+
this.threadCallbacks.set(threadId, callbacks);
|
|
398
|
+
}
|
|
399
|
+
callbacks.add(callback);
|
|
400
|
+
return () => {
|
|
401
|
+
const cbs = this.threadCallbacks.get(threadId);
|
|
402
|
+
if (cbs) {
|
|
403
|
+
cbs.delete(callback);
|
|
404
|
+
if (cbs.size === 0) {
|
|
405
|
+
this.threadCallbacks.delete(threadId);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
}
|
|
403
410
|
/**
|
|
404
411
|
* Register a callback for disconnect events
|
|
405
412
|
*/
|