@hardlydifficult/chat 1.1.3 → 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/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
- * Use `.wait()` to await completion and handle errors.
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 handled via wait()
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
- * Wait for reply to complete.
145
- * Throws if the reply fails - allows callers to handle errors.
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
- async wait() {
155
- await this.replyPromise;
156
- return this;
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.
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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"}
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":"AASA,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,EAGhB,cAAc,EACf,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,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,aAAa;IAgBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+C7B;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;OAMG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,WAAW,CAAC;IA6CvB;;;;;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;CAkBhF"}
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
- this.client = new discord_js_1.Client({
22
- intents: [
23
- discord_js_1.GatewayIntentBits.Guilds,
24
- discord_js_1.GatewayIntentBits.GuildMessages,
25
- discord_js_1.GatewayIntentBits.GuildMessageReactions,
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';
@@ -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,GACxB,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"}
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":";;;AAgDA,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
+ {"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,8 +24,7 @@ export declare class SlackChatClient extends ChatClient implements ChannelOperat
21
24
  */
22
25
  postMessage(channelId: string, content: MessageContent, options?: {
23
26
  threadTs?: string;
24
- unfurlLinks?: boolean;
25
- unfurlMedia?: boolean;
27
+ files?: FileAttachment[];
26
28
  }): Promise<MessageData>;
27
29
  /**
28
30
  * Update a message in a Slack channel
@@ -40,5 +42,34 @@ export declare class SlackChatClient extends ChatClient implements ChannelOperat
40
42
  * Subscribe to reaction events for a specific channel
41
43
  */
42
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;
43
74
  }
44
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,EAGhB,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAW,YAAW,iBAAiB;IAC1E,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,MAAM,EAAE,WAAW;IAyC/B;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5E,OAAO,CAAC,WAAW,CAAC;IA8BvB;;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;CAmBhF"}
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"}