@hardlydifficult/chat 1.1.3 → 1.1.5
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 +34 -8
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +52 -22
- package/dist/Channel.js.map +1 -1
- package/dist/ChatClient.d.ts +2 -2
- package/dist/ChatClient.d.ts.map +1 -1
- package/dist/Message.d.ts +21 -14
- package/dist/Message.d.ts.map +1 -1
- package/dist/Message.js +33 -18
- package/dist/Message.js.map +1 -1
- package/dist/discord/DiscordChatClient.d.ts +62 -3
- package/dist/discord/DiscordChatClient.d.ts.map +1 -1
- package/dist/discord/DiscordChatClient.js +220 -22
- package/dist/discord/DiscordChatClient.js.map +1 -1
- package/dist/discord/index.d.ts +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/outputters/discord.d.ts +1 -1
- package/dist/outputters/discord.d.ts.map +1 -1
- package/dist/outputters/discord.js +14 -11
- package/dist/outputters/discord.js.map +1 -1
- package/dist/outputters/index.d.ts +3 -3
- package/dist/outputters/slack.d.ts +2 -2
- package/dist/outputters/slack.d.ts.map +1 -1
- package/dist/outputters/slack.js +29 -29
- package/dist/outputters/slack.js.map +1 -1
- package/dist/slack/SlackChatClient.d.ts +36 -5
- package/dist/slack/SlackChatClient.d.ts.map +1 -1
- package/dist/slack/SlackChatClient.js +206 -13
- package/dist/slack/SlackChatClient.js.map +1 -1
- package/dist/slack/index.d.ts +1 -1
- package/dist/types.d.ts +67 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SlackChatClient = void 0;
|
|
4
4
|
const bolt_1 = require("@slack/bolt");
|
|
5
|
-
const ChatClient_js_1 = require("../ChatClient.js");
|
|
6
5
|
const Channel_js_1 = require("../Channel.js");
|
|
6
|
+
const ChatClient_js_1 = require("../ChatClient.js");
|
|
7
7
|
const slack_js_1 = require("../outputters/slack.js");
|
|
8
8
|
const utils_js_1 = require("../utils.js");
|
|
9
9
|
/**
|
|
@@ -12,6 +12,9 @@ const utils_js_1 = require("../utils.js");
|
|
|
12
12
|
class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
13
13
|
app;
|
|
14
14
|
reactionCallbacks = new Map();
|
|
15
|
+
messageCallbacks = new Map();
|
|
16
|
+
disconnectCallbacks = new Set();
|
|
17
|
+
errorCallbacks = new Set();
|
|
15
18
|
constructor(config) {
|
|
16
19
|
super(config);
|
|
17
20
|
const token = config.token ?? process.env.SLACK_BOT_TOKEN;
|
|
@@ -21,8 +24,20 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
21
24
|
appToken,
|
|
22
25
|
socketMode: config.socketMode ?? true,
|
|
23
26
|
});
|
|
27
|
+
// Forward @slack/bolt errors to registered error callbacks
|
|
28
|
+
this.app.error(async (error) => {
|
|
29
|
+
const wrappedError = error instanceof Error ? error : new Error(String(error));
|
|
30
|
+
for (const callback of this.errorCallbacks) {
|
|
31
|
+
try {
|
|
32
|
+
await callback(wrappedError);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
console.error("Error callback error:", err);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
24
39
|
// Set up global reaction event listener
|
|
25
|
-
this.app.event(
|
|
40
|
+
this.app.event("reaction_added", async ({ event }) => {
|
|
26
41
|
const channelId = event.item.channel;
|
|
27
42
|
const callbacks = this.reactionCallbacks.get(channelId);
|
|
28
43
|
if (!callbacks || callbacks.size === 0) {
|
|
@@ -33,7 +48,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
33
48
|
emoji: event.reaction,
|
|
34
49
|
user,
|
|
35
50
|
messageId: event.item.ts,
|
|
36
|
-
channelId
|
|
51
|
+
channelId,
|
|
37
52
|
timestamp: new Date(parseFloat(event.event_ts) * 1000),
|
|
38
53
|
};
|
|
39
54
|
for (const callback of callbacks) {
|
|
@@ -41,7 +56,41 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
41
56
|
await Promise.resolve(callback(reactionEvent));
|
|
42
57
|
}
|
|
43
58
|
catch (err) {
|
|
44
|
-
console.error(
|
|
59
|
+
console.error("Reaction callback error:", err);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
// Set up global message event listener
|
|
64
|
+
this.app.event("message", async ({ event, context }) => {
|
|
65
|
+
const channelId = event.channel;
|
|
66
|
+
const callbacks = this.messageCallbacks.get(channelId);
|
|
67
|
+
if (!callbacks || callbacks.size === 0) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Skip bot's own messages
|
|
71
|
+
if (context.botId !== undefined &&
|
|
72
|
+
context.botId !== "" &&
|
|
73
|
+
"bot_id" in event &&
|
|
74
|
+
event.bot_id === context.botId) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const user = {
|
|
78
|
+
id: "user" in event ? (event.user ?? "") : "",
|
|
79
|
+
username: undefined,
|
|
80
|
+
};
|
|
81
|
+
const messageEvent = {
|
|
82
|
+
id: "ts" in event ? event.ts : "",
|
|
83
|
+
content: "text" in event ? (event.text ?? "") : "",
|
|
84
|
+
author: user,
|
|
85
|
+
channelId,
|
|
86
|
+
timestamp: "ts" in event ? new Date(parseFloat(event.ts) * 1000) : new Date(),
|
|
87
|
+
};
|
|
88
|
+
for (const callback of callbacks) {
|
|
89
|
+
try {
|
|
90
|
+
await Promise.resolve(callback(messageEvent));
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
console.error("Message callback error:", err);
|
|
45
94
|
}
|
|
46
95
|
}
|
|
47
96
|
});
|
|
@@ -51,7 +100,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
51
100
|
*/
|
|
52
101
|
async connect(channelId) {
|
|
53
102
|
await this.app.start();
|
|
54
|
-
return new Channel_js_1.Channel(channelId,
|
|
103
|
+
return new Channel_js_1.Channel(channelId, "slack", this);
|
|
55
104
|
}
|
|
56
105
|
/**
|
|
57
106
|
* Disconnect from Slack
|
|
@@ -59,6 +108,9 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
59
108
|
async disconnect() {
|
|
60
109
|
await this.app.stop();
|
|
61
110
|
this.reactionCallbacks.clear();
|
|
111
|
+
this.messageCallbacks.clear();
|
|
112
|
+
this.disconnectCallbacks.clear();
|
|
113
|
+
this.errorCallbacks.clear();
|
|
62
114
|
}
|
|
63
115
|
/**
|
|
64
116
|
* Post a message to a Slack channel
|
|
@@ -68,26 +120,57 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
68
120
|
let blocks;
|
|
69
121
|
if ((0, utils_js_1.isDocument)(content)) {
|
|
70
122
|
blocks = (0, slack_js_1.toSlackBlocks)(content.getBlocks());
|
|
71
|
-
text = content.toPlainText().trim() ||
|
|
123
|
+
text = content.toPlainText().trim() || "Message"; // fallback text for accessibility
|
|
72
124
|
}
|
|
73
125
|
else {
|
|
74
126
|
text = content;
|
|
75
127
|
}
|
|
128
|
+
// If files are provided, upload them and attach to the message
|
|
129
|
+
if (options?.files && options.files.length > 0) {
|
|
130
|
+
for (let i = 0; i < options.files.length; i++) {
|
|
131
|
+
const file = options.files[i];
|
|
132
|
+
await this.app.client.filesUploadV2({
|
|
133
|
+
channel_id: channelId,
|
|
134
|
+
filename: file.name,
|
|
135
|
+
// Only attach the text as initial_comment on the first file to avoid duplicates
|
|
136
|
+
...(i === 0 ? { initial_comment: text } : {}),
|
|
137
|
+
thread_ts: options.threadTs,
|
|
138
|
+
// String content uses the content field; binary uses the file field
|
|
139
|
+
...(typeof file.content === "string"
|
|
140
|
+
? { content: file.content }
|
|
141
|
+
: { file: file.content }),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
// Post the text message separately if there are also blocks (rich document)
|
|
145
|
+
if (blocks) {
|
|
146
|
+
const result = await this.app.client.chat.postMessage({
|
|
147
|
+
channel: channelId,
|
|
148
|
+
text,
|
|
149
|
+
blocks,
|
|
150
|
+
thread_ts: options.threadTs,
|
|
151
|
+
});
|
|
152
|
+
if (result.ts === undefined) {
|
|
153
|
+
throw new Error("Slack API did not return a message timestamp");
|
|
154
|
+
}
|
|
155
|
+
return { id: result.ts, channelId, platform: "slack" };
|
|
156
|
+
}
|
|
157
|
+
// File uploads create messages implicitly; the Slack API doesn't reliably
|
|
158
|
+
// return a message timestamp from filesUploadV2, so return empty ID.
|
|
159
|
+
return { id: "", channelId, platform: "slack" };
|
|
160
|
+
}
|
|
76
161
|
const result = await this.app.client.chat.postMessage({
|
|
77
162
|
channel: channelId,
|
|
78
163
|
text,
|
|
79
164
|
blocks,
|
|
80
165
|
thread_ts: options?.threadTs,
|
|
81
|
-
unfurl_links: options?.unfurlLinks,
|
|
82
|
-
unfurl_media: options?.unfurlMedia,
|
|
83
166
|
});
|
|
84
167
|
if (result.ts === undefined) {
|
|
85
|
-
throw new Error(
|
|
168
|
+
throw new Error("Slack API did not return a message timestamp");
|
|
86
169
|
}
|
|
87
170
|
return {
|
|
88
171
|
id: result.ts,
|
|
89
|
-
channelId
|
|
90
|
-
platform:
|
|
172
|
+
channelId,
|
|
173
|
+
platform: "slack",
|
|
91
174
|
};
|
|
92
175
|
}
|
|
93
176
|
/**
|
|
@@ -98,7 +181,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
98
181
|
let blocks;
|
|
99
182
|
if ((0, utils_js_1.isDocument)(content)) {
|
|
100
183
|
blocks = (0, slack_js_1.toSlackBlocks)(content.getBlocks());
|
|
101
|
-
text = content.toPlainText().trim() ||
|
|
184
|
+
text = content.toPlainText().trim() || "Message";
|
|
102
185
|
}
|
|
103
186
|
else {
|
|
104
187
|
text = content;
|
|
@@ -124,7 +207,7 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
124
207
|
*/
|
|
125
208
|
async addReaction(messageId, channelId, emoji) {
|
|
126
209
|
// Strip colons from emoji name (e.g., ":thumbsup:" -> "thumbsup")
|
|
127
|
-
const emojiName = emoji.replace(/^:|:$/g,
|
|
210
|
+
const emojiName = emoji.replace(/^:|:$/g, "");
|
|
128
211
|
await this.app.client.reactions.add({
|
|
129
212
|
channel: channelId,
|
|
130
213
|
timestamp: messageId,
|
|
@@ -152,6 +235,116 @@ class SlackChatClient extends ChatClient_js_1.ChatClient {
|
|
|
152
235
|
}
|
|
153
236
|
};
|
|
154
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Subscribe to incoming message events on a channel
|
|
240
|
+
*/
|
|
241
|
+
subscribeToMessages(channelId, callback) {
|
|
242
|
+
let callbacks = this.messageCallbacks.get(channelId);
|
|
243
|
+
if (!callbacks) {
|
|
244
|
+
callbacks = new Set();
|
|
245
|
+
this.messageCallbacks.set(channelId, callbacks);
|
|
246
|
+
}
|
|
247
|
+
callbacks.add(callback);
|
|
248
|
+
return () => {
|
|
249
|
+
const channelCallbacks = this.messageCallbacks.get(channelId);
|
|
250
|
+
if (channelCallbacks) {
|
|
251
|
+
channelCallbacks.delete(callback);
|
|
252
|
+
if (channelCallbacks.size === 0) {
|
|
253
|
+
this.messageCallbacks.delete(channelId);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Send a typing indicator (not directly supported in Slack bot API - no-op)
|
|
260
|
+
*/
|
|
261
|
+
async sendTyping(_channelId) {
|
|
262
|
+
// Slack does not support bot typing indicators via the API
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Create a thread from a message in Slack
|
|
266
|
+
* Slack threads are implicit - posting a reply creates the thread
|
|
267
|
+
*/
|
|
268
|
+
startThread(messageId, channelId, _name, _options) {
|
|
269
|
+
// In Slack, threads are created by replying to a message.
|
|
270
|
+
// Return the message timestamp as the thread ID
|
|
271
|
+
return Promise.resolve({
|
|
272
|
+
id: messageId,
|
|
273
|
+
channelId,
|
|
274
|
+
platform: "slack",
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Bulk delete messages in a Slack channel
|
|
279
|
+
*/
|
|
280
|
+
async bulkDelete(channelId, count) {
|
|
281
|
+
// Slack doesn't have a bulkDelete API; delete messages one by one
|
|
282
|
+
const history = await this.app.client.conversations.history({
|
|
283
|
+
channel: channelId,
|
|
284
|
+
limit: count,
|
|
285
|
+
});
|
|
286
|
+
let deleted = 0;
|
|
287
|
+
if (history.messages) {
|
|
288
|
+
for (const msg of history.messages) {
|
|
289
|
+
if (msg.ts !== undefined && msg.ts !== "") {
|
|
290
|
+
try {
|
|
291
|
+
await this.app.client.chat.delete({
|
|
292
|
+
channel: channelId,
|
|
293
|
+
ts: msg.ts,
|
|
294
|
+
});
|
|
295
|
+
deleted++;
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
// Some messages may not be deletable (e.g., others' messages without admin)
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return deleted;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Get all threads in a Slack channel
|
|
307
|
+
*/
|
|
308
|
+
async getThreads(channelId) {
|
|
309
|
+
const threads = [];
|
|
310
|
+
const history = await this.app.client.conversations.history({
|
|
311
|
+
channel: channelId,
|
|
312
|
+
limit: 200,
|
|
313
|
+
});
|
|
314
|
+
if (history.messages) {
|
|
315
|
+
for (const msg of history.messages) {
|
|
316
|
+
if (msg.reply_count !== undefined &&
|
|
317
|
+
msg.reply_count > 0 &&
|
|
318
|
+
msg.ts !== undefined &&
|
|
319
|
+
msg.ts !== "") {
|
|
320
|
+
threads.push({
|
|
321
|
+
id: msg.ts,
|
|
322
|
+
channelId,
|
|
323
|
+
platform: "slack",
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return threads;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Register a callback for disconnect events
|
|
332
|
+
*/
|
|
333
|
+
onDisconnect(callback) {
|
|
334
|
+
this.disconnectCallbacks.add(callback);
|
|
335
|
+
return () => {
|
|
336
|
+
this.disconnectCallbacks.delete(callback);
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Register a callback for error events
|
|
341
|
+
*/
|
|
342
|
+
onError(callback) {
|
|
343
|
+
this.errorCallbacks.add(callback);
|
|
344
|
+
return () => {
|
|
345
|
+
this.errorCallbacks.delete(callback);
|
|
346
|
+
};
|
|
347
|
+
}
|
|
155
348
|
}
|
|
156
349
|
exports.SlackChatClient = SlackChatClient;
|
|
157
350
|
//# sourceMappingURL=SlackChatClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackChatClient.js","sourceRoot":"","sources":["../../src/slack/SlackChatClient.ts"],"names":[],"mappings":";;;AAAA,sCAAkC;
|
|
1
|
+
{"version":3,"file":"SlackChatClient.js","sourceRoot":"","sources":["../../src/slack/SlackChatClient.ts"],"names":[],"mappings":";;;AAAA,sCAAkC;AAElC,8CAAgE;AAChE,oDAA8C;AAC9C,qDAAwE;AAgBxE,0CAAyC;AAEzC;;GAEG;AACH,MAAa,eAAgB,SAAQ,0BAAU;IACrC,GAAG,CAAM;IACT,iBAAiB,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC7D,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC3D,mBAAmB,GAAG,IAAI,GAAG,EAAsB,CAAC;IACpD,cAAc,GAAG,IAAI,GAAG,EAAiB,CAAC;IAElD,YAAY,MAAmB;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAEhE,IAAI,CAAC,GAAG,GAAG,IAAI,UAAG,CAAC;YACjB,KAAK;YACL,QAAQ;YACR,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;SACtC,CAAC,CAAC;QAEH,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAExD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAS,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YAE3D,MAAM,aAAa,GAAkB;gBACnC,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,IAAI;gBACJ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;gBACxB,SAAS;gBACT,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;aACvD,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACrD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,0BAA0B;YAC1B,IACE,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC3B,OAAO,CAAC,KAAK,KAAK,EAAE;gBACpB,QAAQ,IAAI,KAAK;gBACjB,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,EAC9B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAS;gBACjB,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC7C,QAAQ,EAAE,SAAS;aACpB,CAAC;YAEF,MAAM,YAAY,GAAiB;gBACjC,EAAE,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBAClD,MAAM,EAAE,IAAI;gBACZ,SAAS;gBACT,SAAS,EACP,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;aACrE,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,oBAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,OAAuB,EACvB,OAAyD;QAEzD,IAAI,IAAY,CAAC;QACjB,IAAI,MAAgC,CAAC;QAErC,IAAI,IAAA,qBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,IAAA,wBAAa,EAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,kCAAkC;QACtF,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QAED,+DAA+D;QAC/D,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;oBAClC,UAAU,EAAE,SAAS;oBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,gFAAgF;oBAChF,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,SAAS,EAAE,OAAO,CAAC,QAAQ;oBAC3B,oEAAoE;oBACpE,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;wBAClC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;wBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,4EAA4E;YAC5E,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBACpD,OAAO,EAAE,SAAS;oBAClB,IAAI;oBACJ,MAAM;oBACN,SAAS,EAAE,OAAO,CAAC,QAAQ;iBAC5B,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACzD,CAAC;YAED,0EAA0E;YAC1E,qEAAqE;YACrE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YACpD,OAAO,EAAE,SAAS;YAClB,IAAI;YACJ,MAAM;YACN,SAAS,EAAE,OAAO,EAAE,QAAQ;SAC7B,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS;YACT,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,SAAiB,EACjB,OAAuB;QAEvB,IAAI,IAAY,CAAC;QACjB,IAAI,MAAgC,CAAC;QAErC,IAAI,IAAA,qBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,IAAA,wBAAa,EAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,SAAS;YAClB,EAAE,EAAE,SAAS;YACb,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACtD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,SAAS;YAClB,EAAE,EAAE,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,SAAiB,EACjB,KAAa;QAEb,kEAAkE;QAClE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;YAClC,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,oBAAoB,CAClB,SAAiB,EACjB,QAA0B;QAE1B,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,8BAA8B;QAC9B,OAAO,GAAG,EAAE;YACV,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,SAAiB,EACjB,QAAyB;QAEzB,IAAI,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,2DAA2D;IAC7D,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,SAAiB,EACjB,SAAiB,EACjB,KAAa,EACb,QAA6B;QAE7B,0DAA0D;QAC1D,gDAAgD;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,SAAS;YACb,SAAS;YACT,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,KAAa;QAC/C,kEAAkE;QAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAC1D,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;4BAChC,OAAO,EAAE,SAAS;4BAClB,EAAE,EAAE,GAAG,CAAC,EAAE;yBACX,CAAC,CAAC;wBACH,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,MAAM,CAAC;wBACP,4EAA4E;oBAC9E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAC1D,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,IACE,GAAG,CAAC,WAAW,KAAK,SAAS;oBAC7B,GAAG,CAAC,WAAW,GAAG,CAAC;oBACnB,GAAG,CAAC,EAAE,KAAK,SAAS;oBACpB,GAAG,CAAC,EAAE,KAAK,EAAE,EACb,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,SAAS;wBACT,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAA4B;QACvC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAAuB;QAC7B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;CACF;AApZD,0CAoZC"}
|
package/dist/slack/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { SlackChatClient } from
|
|
1
|
+
export { SlackChatClient } from "./SlackChatClient";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/types.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import type { Document } from
|
|
1
|
+
import type { Document } from "@hardlydifficult/document-generator";
|
|
2
2
|
/**
|
|
3
3
|
* Configuration for Discord client
|
|
4
4
|
*/
|
|
5
5
|
export interface DiscordConfig {
|
|
6
|
-
type:
|
|
6
|
+
type: "discord";
|
|
7
7
|
token?: string;
|
|
8
8
|
guildId?: string;
|
|
9
|
+
/** Additional gateway intents to register */
|
|
10
|
+
intents?: DiscordGatewayIntents;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Configuration for Slack client
|
|
12
14
|
*/
|
|
13
15
|
export interface SlackConfig {
|
|
14
|
-
type:
|
|
16
|
+
type: "slack";
|
|
15
17
|
token?: string;
|
|
16
18
|
appToken?: string;
|
|
17
19
|
socketMode?: boolean;
|
|
@@ -20,7 +22,7 @@ export type ChatConfig = DiscordConfig | SlackConfig;
|
|
|
20
22
|
/**
|
|
21
23
|
* Platform identifier
|
|
22
24
|
*/
|
|
23
|
-
export type Platform =
|
|
25
|
+
export type Platform = "discord" | "slack";
|
|
24
26
|
/**
|
|
25
27
|
* User who performed an action (e.g., added a reaction)
|
|
26
28
|
*/
|
|
@@ -47,6 +49,50 @@ export interface ReactionEvent {
|
|
|
47
49
|
* Callback function type for reaction events
|
|
48
50
|
*/
|
|
49
51
|
export type ReactionCallback = (event: ReactionEvent) => void | Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Data provided to incoming message callbacks
|
|
54
|
+
*/
|
|
55
|
+
export interface MessageEvent {
|
|
56
|
+
/** ID of the message */
|
|
57
|
+
id: string;
|
|
58
|
+
/** Text content of the message */
|
|
59
|
+
content: string;
|
|
60
|
+
/** User who sent the message */
|
|
61
|
+
author: User;
|
|
62
|
+
/** ID of the channel the message was posted in */
|
|
63
|
+
channelId: string;
|
|
64
|
+
/** Timestamp of the message */
|
|
65
|
+
timestamp: Date;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Callback function type for incoming message events
|
|
69
|
+
*/
|
|
70
|
+
export type MessageCallback = (event: MessageEvent) => void | Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* File attachment for message posting
|
|
73
|
+
*/
|
|
74
|
+
export interface FileAttachment {
|
|
75
|
+
/** File content as a Buffer or string */
|
|
76
|
+
content: Buffer | string;
|
|
77
|
+
/** Filename including extension */
|
|
78
|
+
name: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Data returned when a thread is created
|
|
82
|
+
*/
|
|
83
|
+
export interface ThreadData {
|
|
84
|
+
/** ID of the created thread */
|
|
85
|
+
id: string;
|
|
86
|
+
/** ID of the parent channel */
|
|
87
|
+
channelId: string;
|
|
88
|
+
/** Platform identifier */
|
|
89
|
+
platform: Platform;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Connection event types for resilience callbacks
|
|
93
|
+
*/
|
|
94
|
+
export type DisconnectCallback = (reason: string) => void | Promise<void>;
|
|
95
|
+
export type ErrorCallback = (error: Error) => void | Promise<void>;
|
|
50
96
|
/**
|
|
51
97
|
* Internal message data passed between classes
|
|
52
98
|
*/
|
|
@@ -60,14 +106,25 @@ export interface MessageData {
|
|
|
60
106
|
*/
|
|
61
107
|
export type MessageContent = string | Document;
|
|
62
108
|
/**
|
|
63
|
-
* Options for posting messages
|
|
109
|
+
* Options for posting messages with thread support and file attachments
|
|
64
110
|
*/
|
|
65
111
|
export interface PostMessageOptions {
|
|
66
|
-
/** Thread timestamp for replies */
|
|
67
112
|
threadTs?: string;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
113
|
+
files?: FileAttachment[];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Options for creating a thread from a message
|
|
117
|
+
*/
|
|
118
|
+
export interface StartThreadOptions {
|
|
119
|
+
/** Auto-archive duration in minutes (60, 1440, 4320, 10080) */
|
|
120
|
+
autoArchiveDuration?: number;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Configuration for Discord client
|
|
124
|
+
* Additional gateway intents can be specified
|
|
125
|
+
*/
|
|
126
|
+
export interface DiscordGatewayIntents {
|
|
127
|
+
/** Include MessageContent intent for reading message content from other bots/users */
|
|
128
|
+
messageContent?: boolean;
|
|
72
129
|
}
|
|
73
130
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { Document } from "@hardlydifficult/document-generator";
|
|
2
|
+
import type { MessageContent } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Type guard to check if content is a Document
|
|
5
5
|
*/
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,QAAQ,CAEvE"}
|
package/dist/utils.js
CHANGED
|
@@ -5,6 +5,6 @@ exports.isDocument = isDocument;
|
|
|
5
5
|
* Type guard to check if content is a Document
|
|
6
6
|
*/
|
|
7
7
|
function isDocument(content) {
|
|
8
|
-
return typeof content !==
|
|
8
|
+
return typeof content !== "string" && "getBlocks" in content;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAOA,gCAEC;AALD;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAuB;IAChD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,WAAW,IAAI,OAAO,CAAC;AAC/D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hardlydifficult/chat",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"discord.js": "14.25.1"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@hardlydifficult/document-generator": "
|
|
22
|
+
"@hardlydifficult/document-generator": "1.1.2",
|
|
23
23
|
"@types/node": "20.19.31",
|
|
24
24
|
"typescript": "5.8.3",
|
|
25
25
|
"vitest": "1.6.1"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@hardlydifficult/document-generator": "
|
|
28
|
+
"@hardlydifficult/document-generator": "1.1.2"
|
|
29
29
|
}
|
|
30
30
|
}
|