@hardlydifficult/chat 1.1.19 → 1.1.21
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 +47 -3
- package/dist/Channel.d.ts +29 -0
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +61 -110
- 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/PendingMessage.d.ts +46 -0
- package/dist/PendingMessage.d.ts.map +1 -0
- package/dist/PendingMessage.js +111 -0
- package/dist/PendingMessage.js.map +1 -0
- 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/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 +3 -3
- 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
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PendingMessage = void 0;
|
|
4
|
+
const Message_js_1 = require("./Message.js");
|
|
5
|
+
/**
|
|
6
|
+
* A Message that is still being posted.
|
|
7
|
+
* Implements PromiseLike so it can be directly awaited:
|
|
8
|
+
* const msg = await channel.postMessage('Hello');
|
|
9
|
+
*
|
|
10
|
+
* Also supports synchronous chaining before awaiting:
|
|
11
|
+
* await channel.postMessage('Vote!').addReactions(['👍', '👎']).onReaction(cb);
|
|
12
|
+
*/
|
|
13
|
+
class PendingMessage extends Message_js_1.Message {
|
|
14
|
+
postPromise;
|
|
15
|
+
deferredReactionCallbacks = [];
|
|
16
|
+
resolved = false;
|
|
17
|
+
constructor(postPromise, operations, platform) {
|
|
18
|
+
// Initialize with placeholder data using the correct platform
|
|
19
|
+
super({ id: "", channelId: "", platform }, operations);
|
|
20
|
+
this.postPromise = postPromise;
|
|
21
|
+
// Update our data when the post resolves and subscribe any deferred listeners
|
|
22
|
+
this.postPromise
|
|
23
|
+
.then((data) => {
|
|
24
|
+
// Update the readonly properties via Object.defineProperty
|
|
25
|
+
Object.defineProperty(this, "id", { value: data.id });
|
|
26
|
+
Object.defineProperty(this, "channelId", { value: data.channelId });
|
|
27
|
+
Object.defineProperty(this, "platform", { value: data.platform });
|
|
28
|
+
// Subscribe deferred reaction callbacks now that we have the message ID
|
|
29
|
+
for (const callback of this.deferredReactionCallbacks) {
|
|
30
|
+
const unsubscribe = this.operations.subscribeToReactions(data.id, callback);
|
|
31
|
+
this.reactionUnsubscribers.push(unsubscribe);
|
|
32
|
+
}
|
|
33
|
+
this.resolved = true;
|
|
34
|
+
})
|
|
35
|
+
.catch(() => {
|
|
36
|
+
// Errors surfaced when awaited via then()
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Override addReactions to wait for post to complete first
|
|
41
|
+
*/
|
|
42
|
+
addReactions(emojis) {
|
|
43
|
+
// Chain after the post completes, capturing current pendingReactions
|
|
44
|
+
const currentPendingReactions = this.pendingReactions;
|
|
45
|
+
this.pendingReactions = this.postPromise.then(() => currentPendingReactions);
|
|
46
|
+
for (const emoji of emojis) {
|
|
47
|
+
this.pendingReactions = this.pendingReactions.then(() => this.operations.addReaction(this.id, this.channelId, emoji));
|
|
48
|
+
}
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Override removeReactions to wait for post to complete first
|
|
53
|
+
*/
|
|
54
|
+
removeReactions(emojis) {
|
|
55
|
+
const currentPendingReactions = this.pendingReactions;
|
|
56
|
+
this.pendingReactions = this.postPromise.then(() => currentPendingReactions);
|
|
57
|
+
for (const emoji of emojis) {
|
|
58
|
+
this.pendingReactions = this.pendingReactions.then(() => this.operations.removeReaction(this.id, this.channelId, emoji));
|
|
59
|
+
}
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Override removeAllReactions to wait for post to complete first
|
|
64
|
+
*/
|
|
65
|
+
removeAllReactions() {
|
|
66
|
+
const currentPendingReactions = this.pendingReactions;
|
|
67
|
+
this.pendingReactions = this.postPromise.then(() => currentPendingReactions);
|
|
68
|
+
this.pendingReactions = this.pendingReactions.then(() => this.operations.removeAllReactions(this.id, this.channelId));
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Override onReaction to defer subscription until post completes
|
|
73
|
+
*/
|
|
74
|
+
onReaction(callback) {
|
|
75
|
+
if (this.resolved) {
|
|
76
|
+
super.onReaction(callback);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.deferredReactionCallbacks.push(callback);
|
|
80
|
+
}
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Override offReaction to also clear deferred callbacks
|
|
85
|
+
*/
|
|
86
|
+
offReaction() {
|
|
87
|
+
this.deferredReactionCallbacks = [];
|
|
88
|
+
super.offReaction();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Makes PendingMessage directly awaitable.
|
|
92
|
+
* Resolves to a plain Message (not thenable) to prevent infinite await loops.
|
|
93
|
+
*/
|
|
94
|
+
then(onfulfilled, onrejected) {
|
|
95
|
+
const resolved = this.postPromise.then(async () => {
|
|
96
|
+
await this.pendingReactions;
|
|
97
|
+
// Return a plain Message (no then()) to stop await from recursing
|
|
98
|
+
return this.toSnapshot();
|
|
99
|
+
});
|
|
100
|
+
return resolved.then(onfulfilled, onrejected);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Wait for post and all pending reactions to complete.
|
|
104
|
+
*/
|
|
105
|
+
async waitForReactions() {
|
|
106
|
+
await this.postPromise;
|
|
107
|
+
await this.pendingReactions;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.PendingMessage = PendingMessage;
|
|
111
|
+
//# sourceMappingURL=PendingMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingMessage.js","sourceRoot":"","sources":["../src/PendingMessage.ts"],"names":[],"mappings":"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"}
|
package/dist/Thread.d.ts
CHANGED
|
@@ -1,15 +1,57 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Message, type MessageOperations } from "./Message.js";
|
|
2
|
+
import type { FileAttachment, MessageCallback, MessageContent, MessageData, Platform, ThreadData } from "./types.js";
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
+
* Internal operations provided by Channel to power Thread methods.
|
|
5
|
+
* Not exported — Thread consumers interact via the public API only.
|
|
6
|
+
*/
|
|
7
|
+
export interface ThreadOperations {
|
|
8
|
+
delete: () => Promise<void>;
|
|
9
|
+
post: (content: MessageContent, files?: FileAttachment[]) => Promise<MessageData>;
|
|
10
|
+
subscribe: (callback: MessageCallback) => () => void;
|
|
11
|
+
createMessageOps: () => MessageOperations;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A thread with messaging capabilities: post messages, listen for replies,
|
|
15
|
+
* and clean up when done.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const thread = await channel.createThread("Hello!", "Session");
|
|
20
|
+
* await thread.post("How can I help?");
|
|
21
|
+
*
|
|
22
|
+
* thread.onReply(async (msg) => {
|
|
23
|
+
* await thread.post(`Got: ${msg.content}`);
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* await thread.delete();
|
|
27
|
+
* ```
|
|
4
28
|
*/
|
|
5
29
|
export declare class Thread {
|
|
6
30
|
readonly id: string;
|
|
7
31
|
readonly channelId: string;
|
|
8
32
|
readonly platform: Platform;
|
|
9
|
-
private
|
|
10
|
-
|
|
33
|
+
private ops;
|
|
34
|
+
private replyUnsubscribers;
|
|
35
|
+
constructor(data: ThreadData, ops: ThreadOperations);
|
|
36
|
+
/**
|
|
37
|
+
* Post a message in this thread
|
|
38
|
+
* @param content - Message content (string or Document)
|
|
39
|
+
* @param files - Optional file attachments
|
|
40
|
+
* @returns Message object for the posted message
|
|
41
|
+
*/
|
|
42
|
+
post(content: MessageContent, files?: FileAttachment[]): Promise<Message>;
|
|
43
|
+
/**
|
|
44
|
+
* Subscribe to replies in this thread.
|
|
45
|
+
* @param callback - Function called with a Message for each reply
|
|
46
|
+
* @returns Unsubscribe function
|
|
47
|
+
*/
|
|
48
|
+
onReply(callback: (message: Message) => void | Promise<void>): () => void;
|
|
49
|
+
/**
|
|
50
|
+
* Stop listening for all replies in this thread
|
|
51
|
+
*/
|
|
52
|
+
offReply(): void;
|
|
11
53
|
/**
|
|
12
|
-
* Delete this thread
|
|
54
|
+
* Delete this thread and stop all reply listeners
|
|
13
55
|
*/
|
|
14
56
|
delete(): Promise<void>;
|
|
15
57
|
}
|
package/dist/Thread.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EAEX,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,CACJ,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,EAAE,KACrB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IACrD,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM;IACjB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAAsB;gBAEpC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB;IAOnD;;;;;OAKG;IACG,IAAI,CACR,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;IAoBzE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
|
package/dist/Thread.js
CHANGED
|
@@ -1,25 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Thread = void 0;
|
|
4
|
+
const Message_js_1 = require("./Message.js");
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* A thread with messaging capabilities: post messages, listen for replies,
|
|
7
|
+
* and clean up when done.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const thread = await channel.createThread("Hello!", "Session");
|
|
12
|
+
* await thread.post("How can I help?");
|
|
13
|
+
*
|
|
14
|
+
* thread.onReply(async (msg) => {
|
|
15
|
+
* await thread.post(`Got: ${msg.content}`);
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* await thread.delete();
|
|
19
|
+
* ```
|
|
6
20
|
*/
|
|
7
21
|
class Thread {
|
|
8
22
|
id;
|
|
9
23
|
channelId;
|
|
10
24
|
platform;
|
|
11
|
-
|
|
12
|
-
|
|
25
|
+
ops;
|
|
26
|
+
replyUnsubscribers = [];
|
|
27
|
+
constructor(data, ops) {
|
|
13
28
|
this.id = data.id;
|
|
14
29
|
this.channelId = data.channelId;
|
|
15
30
|
this.platform = data.platform;
|
|
16
|
-
this.
|
|
31
|
+
this.ops = ops;
|
|
17
32
|
}
|
|
18
33
|
/**
|
|
19
|
-
*
|
|
34
|
+
* Post a message in this thread
|
|
35
|
+
* @param content - Message content (string or Document)
|
|
36
|
+
* @param files - Optional file attachments
|
|
37
|
+
* @returns Message object for the posted message
|
|
38
|
+
*/
|
|
39
|
+
async post(content, files) {
|
|
40
|
+
const data = await this.ops.post(content, files);
|
|
41
|
+
return new Message_js_1.Message(data, this.ops.createMessageOps());
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Subscribe to replies in this thread.
|
|
45
|
+
* @param callback - Function called with a Message for each reply
|
|
46
|
+
* @returns Unsubscribe function
|
|
47
|
+
*/
|
|
48
|
+
onReply(callback) {
|
|
49
|
+
const unsubscribe = this.ops.subscribe((event) => {
|
|
50
|
+
const message = new Message_js_1.Message({
|
|
51
|
+
id: event.id,
|
|
52
|
+
channelId: event.channelId,
|
|
53
|
+
platform: this.platform,
|
|
54
|
+
content: event.content,
|
|
55
|
+
author: event.author,
|
|
56
|
+
timestamp: event.timestamp,
|
|
57
|
+
attachments: event.attachments,
|
|
58
|
+
}, this.ops.createMessageOps());
|
|
59
|
+
return callback(message);
|
|
60
|
+
});
|
|
61
|
+
this.replyUnsubscribers.push(unsubscribe);
|
|
62
|
+
return unsubscribe;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Stop listening for all replies in this thread
|
|
66
|
+
*/
|
|
67
|
+
offReply() {
|
|
68
|
+
for (const unsub of this.replyUnsubscribers) {
|
|
69
|
+
unsub();
|
|
70
|
+
}
|
|
71
|
+
this.replyUnsubscribers = [];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Delete this thread and stop all reply listeners
|
|
20
75
|
*/
|
|
21
76
|
async delete() {
|
|
22
|
-
|
|
77
|
+
this.offReply();
|
|
78
|
+
await this.ops.delete();
|
|
23
79
|
}
|
|
24
80
|
}
|
|
25
81
|
exports.Thread = Thread;
|
package/dist/Thread.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.js","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Thread.js","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":";;;AAAA,6CAA+D;AAyB/D;;;;;;;;;;;;;;;GAeG;AACH,MAAa,MAAM;IACD,EAAE,CAAS;IACX,SAAS,CAAS;IAClB,QAAQ,CAAW;IAE3B,GAAG,CAAmB;IACtB,kBAAkB,GAAmB,EAAE,CAAC;IAEhD,YAAY,IAAgB,EAAE,GAAqB;QACjD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,OAAuB,EACvB,KAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,oBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAoD;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAmB,EAAE,EAAE;YAC7D,MAAM,OAAO,GAAG,IAAI,oBAAO,CACzB;gBACE,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,EACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAC5B,CAAC;YACF,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,KAAK,EAAE,CAAC;QACV,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;CACF;AAvED,wBAuEC"}
|
|
@@ -123,6 +123,18 @@ export declare class DiscordChatClient extends ChatClient implements ChannelOper
|
|
|
123
123
|
* @param threadId - ID of the thread to delete
|
|
124
124
|
*/
|
|
125
125
|
deleteThread(threadId: string, _channelId: string): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Post a message to a thread channel
|
|
128
|
+
* In Discord, the threadId IS the channel to post in (threads are channels)
|
|
129
|
+
*/
|
|
130
|
+
postToThread(threadId: string, _channelId: string, content: MessageContent, options?: {
|
|
131
|
+
files?: FileAttachment[];
|
|
132
|
+
}): Promise<MessageData>;
|
|
133
|
+
/**
|
|
134
|
+
* Subscribe to messages in a specific thread
|
|
135
|
+
* In Discord, threadId IS the thread channel — reuse message subscription
|
|
136
|
+
*/
|
|
137
|
+
subscribeToThread(threadId: string, _channelId: string, callback: MessageCallback): () => void;
|
|
126
138
|
getMembers(channelId: string): Promise<Member[]>;
|
|
127
139
|
/**
|
|
128
140
|
* Register a callback for disconnect events
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordChatClient.d.ts","sourceRoot":"","sources":["../../src/discord/DiscordChatClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiscordChatClient.d.ts","sourceRoot":"","sources":["../../src/discord/DiscordChatClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":";;;AAAA,2CAWoB;AAEpB,8CAAgE;AAChE,oDAA8C;AAC9C,yDAA0D;AAiB1D,0CAAyC;AAEzC,qEAA+D;AAC/D,qEAA+D;AAC/D,+DAA8E;AAE9E;;GAEG;AACH,MAAa,iBAAkB,SAAQ,0BAAU;IACvC,MAAM,CAAS;IACf,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;IACjC,KAAK,CAAS;IACd,OAAO,CAAS;IAEjC,YAAY,MAAqB;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAEpE,MAAM,OAAO,GAAG;YACd,8BAAiB,CAAC,MAAM;YACxB,8BAAiB,CAAC,YAAY;YAC9B,8BAAiB,CAAC,aAAa;YAC/B,8BAAiB,CAAC,qBAAqB;YACvC,8BAAiB,CAAC,cAAc;SACjC,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAEtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CACZ,oBAAoB,EACpB,CACE,QAAkD,EAClD,IAA+B,EACzB,EAAE;YACR,KAAK,CAAC,KAAK,IAAmB,EAAE;gBAC9B,2BAA2B;gBAC3B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACzB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;wBAC1D,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACvC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAExD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvC,OAAO;gBACT,CAAC;gBAED,MAAM,YAAY,GAAS;oBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;iBACrC,CAAC;gBAEF,MAAM,KAAK,GAAkB;oBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;oBACrD,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAC9B,SAAS;oBACT,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC;gBAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACH,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,CACZ,eAAe,EACf,CAAC,OAAwC,EAAQ,EAAE;YACjD,KAAK,CAAC,KAAK,IAAmB,EAAE;gBAC9B,sCAAsC;gBACtC,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;oBAChD,OAAO;gBACT,CAAC;gBAED,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEvD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvC,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAS;oBACnB,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;oBAC5B,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS;iBAChD,CAAC;gBAEF,MAAM,WAAW,GAAiB,EAAE,CAAC;gBACrC,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACjD,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,UAAU,CAAC,GAAG;wBACnB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,SAAS;wBAChD,IAAI,EAAE,UAAU,CAAC,IAAI;qBACtB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAiB;oBAC1B,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;oBAC9B,MAAM;oBACN,SAAS;oBACT,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,WAAW;iBACZ,CAAC;gBAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACH,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,yBAAyB;QAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACpD,MAAM,MAAM,GAAG,SAAS,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACvD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAChD,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAC5D,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9C,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3C,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAClE,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,SAAiB;QAEjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5D,IACE,CAAC,OAAO;YACR,CAAC,CAAC,CAAC,OAAO,YAAY,wBAAW,CAAC,IAAI,CAAC,CAAC,OAAO,YAAY,0BAAa,CAAC,CAAC,EAC1E,CAAC;YACD,MAAM,IAAI,KAAK,CACb,WAAW,SAAS,qCAAqC,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,IAAI,oBAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,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;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,OAAuB,EACvB,OAIC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAA,4CAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,SAAiB,EACjB,OAAuB;QAEvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,IAAA,qBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAClD,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAExD,yDAAyD;QACzD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,SAAiB,EACjB,KAAa;QAEb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,SAAiB,EACjB,KAAa;QAEb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;IAED;;;;;OAKG;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,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;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,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,SAAiB,EACjB,IAAY,EACZ,mBAA4B;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,IAAA,iCAAW,EAChB,OAAO,EACP,SAAS,EACT,SAAS,EACT,IAAI,EACJ,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,KAAa;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,OAAO,YAAY,wBAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,OAAO,YAAY,wBAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAA,gCAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,UAAkB;QACrD,MAAM,IAAA,kCAAY,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,UAAkB,EAClB,OAAuB,EACvB,OAAsC;QAEtC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,iBAAiB,CACf,QAAgB,EAChB,UAAkB,EAClB,QAAyB;QAEzB,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,OAAO,YAAY,wBAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;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;;;;OAIG;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;AAneD,8CAmeC"}
|
|
@@ -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"}
|