@queenanya/baileys 9.2.4 → 9.4.1
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 +329 -1237
- package/WAProto/fix-imports.js +22 -18
- package/WAProto/index.js +22 -18
- package/lib/Defaults/index.d.ts +17 -0
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +29 -3
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/libsignal.d.ts.map +1 -1
- package/lib/Signal/libsignal.js +61 -2
- package/lib/Signal/libsignal.js.map +1 -1
- package/lib/Signal/lid-mapping.d.ts +5 -9
- package/lib/Signal/lid-mapping.d.ts.map +1 -1
- package/lib/Signal/lid-mapping.js +170 -70
- package/lib/Signal/lid-mapping.js.map +1 -1
- package/lib/Socket/business.d.ts +112 -2
- package/lib/Socket/business.d.ts.map +1 -1
- package/lib/Socket/chats.d.ts +10 -0
- package/lib/Socket/chats.d.ts.map +1 -1
- package/lib/Socket/chats.js +243 -38
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +112 -2
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/groups.d.ts +7 -0
- package/lib/Socket/groups.d.ts.map +1 -1
- package/lib/Socket/groups.js +6 -0
- package/lib/Socket/groups.js.map +1 -1
- package/lib/Socket/index.d.ts +112 -2
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/index.js +0 -6
- package/lib/Socket/index.js.map +1 -1
- package/lib/Socket/messages-recv.d.ts +113 -3
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +739 -150
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts +116 -4
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +328 -86
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +7 -0
- package/lib/Socket/newsletter.d.ts.map +1 -1
- package/lib/Socket/socket.d.ts +2 -0
- package/lib/Socket/socket.d.ts.map +1 -1
- package/lib/Socket/socket.js +142 -16
- package/lib/Socket/socket.js.map +1 -1
- package/lib/Types/Auth.d.ts +2 -0
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Call.d.ts +10 -1
- package/lib/Types/Call.d.ts.map +1 -1
- package/lib/Types/Contact.d.ts +2 -0
- package/lib/Types/Contact.d.ts.map +1 -1
- package/lib/Types/Events.d.ts +21 -1
- package/lib/Types/Events.d.ts.map +1 -1
- package/lib/Types/GroupMetadata.d.ts +4 -0
- package/lib/Types/GroupMetadata.d.ts.map +1 -1
- package/lib/Types/Message.d.ts +530 -16
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Types/Message.js.map +1 -1
- package/lib/Types/Newsletter.d.ts +33 -29
- package/lib/Types/Newsletter.d.ts.map +1 -1
- package/lib/Types/Newsletter.js +25 -23
- package/lib/Types/Newsletter.js.map +1 -1
- package/lib/Types/State.d.ts +54 -0
- package/lib/Types/State.d.ts.map +1 -1
- package/lib/Types/State.js +42 -0
- package/lib/Types/State.js.map +1 -1
- package/lib/Types/index.d.ts +9 -0
- package/lib/Types/index.d.ts.map +1 -1
- package/lib/Types/index.js.map +1 -1
- package/lib/Utils/browser-utils.d.ts +13 -0
- package/lib/Utils/browser-utils.d.ts.map +1 -1
- package/lib/Utils/browser-utils.js +90 -10
- package/lib/Utils/browser-utils.js.map +1 -1
- package/lib/Utils/chat-utils.d.ts +30 -0
- package/lib/Utils/chat-utils.d.ts.map +1 -1
- package/lib/Utils/chat-utils.js +81 -52
- package/lib/Utils/chat-utils.js.map +1 -1
- package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
- package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
- package/lib/Utils/companion-reg-client-utils.js +34 -0
- package/lib/Utils/companion-reg-client-utils.js.map +1 -0
- package/lib/Utils/crypto.d.ts +4 -8
- package/lib/Utils/crypto.d.ts.map +1 -1
- package/lib/Utils/crypto.js +2 -26
- package/lib/Utils/crypto.js.map +1 -1
- package/lib/Utils/decode-wa-message.d.ts +12 -0
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +16 -0
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.js +10 -1
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/generics.d.ts +3 -1
- package/lib/Utils/generics.d.ts.map +1 -1
- package/lib/Utils/generics.js +16 -3
- package/lib/Utils/generics.js.map +1 -1
- package/lib/Utils/history.d.ts +5 -2
- package/lib/Utils/history.d.ts.map +1 -1
- package/lib/Utils/history.js +53 -17
- package/lib/Utils/history.js.map +1 -1
- package/lib/Utils/identity-change-handler.d.ts +44 -0
- package/lib/Utils/identity-change-handler.d.ts.map +1 -0
- package/lib/Utils/identity-change-handler.js +50 -0
- package/lib/Utils/identity-change-handler.js.map +1 -0
- package/lib/Utils/index.d.ts +6 -0
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +6 -0
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/interactive-message.d.ts +201 -0
- package/lib/Utils/interactive-message.d.ts.map +1 -0
- package/lib/Utils/interactive-message.js +256 -0
- package/lib/Utils/interactive-message.js.map +1 -0
- package/lib/Utils/lt-hash.d.ts +7 -12
- package/lib/Utils/lt-hash.d.ts.map +1 -1
- package/lib/Utils/lt-hash.js +2 -42
- package/lib/Utils/lt-hash.js.map +1 -1
- package/lib/Utils/message-composer.d.ts +5 -0
- package/lib/Utils/message-composer.d.ts.map +1 -0
- package/lib/Utils/message-composer.js +5 -0
- package/lib/Utils/message-composer.js.map +1 -0
- package/lib/Utils/message-retry-manager.d.ts +30 -2
- package/lib/Utils/message-retry-manager.d.ts.map +1 -1
- package/lib/Utils/message-retry-manager.js +59 -2
- package/lib/Utils/message-retry-manager.js.map +1 -1
- package/lib/Utils/messages-media.d.ts +19 -5
- package/lib/Utils/messages-media.d.ts.map +1 -1
- package/lib/Utils/messages-media.js +26 -17
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +433 -13
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/noise-handler.d.ts +2 -2
- package/lib/Utils/noise-handler.d.ts.map +1 -1
- package/lib/Utils/noise-handler.js +10 -10
- package/lib/Utils/noise-handler.js.map +1 -1
- package/lib/Utils/offline-node-processor.d.ts +17 -0
- package/lib/Utils/offline-node-processor.d.ts.map +1 -0
- package/lib/Utils/offline-node-processor.js +40 -0
- package/lib/Utils/offline-node-processor.js.map +1 -0
- package/lib/Utils/process-message.d.ts.map +1 -1
- package/lib/Utils/process-message.js +96 -16
- package/lib/Utils/process-message.js.map +1 -1
- package/lib/Utils/reporting-utils.js +2 -2
- package/lib/Utils/reporting-utils.js.map +1 -1
- package/lib/Utils/stanza-ack.d.ts +11 -0
- package/lib/Utils/stanza-ack.d.ts.map +1 -0
- package/lib/Utils/stanza-ack.js +38 -0
- package/lib/Utils/stanza-ack.js.map +1 -0
- package/lib/Utils/sync-action-utils.d.ts.map +1 -1
- package/lib/Utils/sync-action-utils.js +2 -1
- package/lib/Utils/sync-action-utils.js.map +1 -1
- package/lib/Utils/tc-token-utils.d.ts +26 -1
- package/lib/Utils/tc-token-utils.d.ts.map +1 -1
- package/lib/Utils/tc-token-utils.js +149 -4
- package/lib/Utils/tc-token-utils.js.map +1 -1
- package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
- package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
- package/lib/Utils/use-mongo-file-auth-state.js +60 -0
- package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +1 -1
- package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
- package/lib/Utils/validate-connection.d.ts.map +1 -1
- package/lib/Utils/validate-connection.js +11 -1
- package/lib/Utils/validate-connection.js.map +1 -1
- package/lib/WABinary/generic-utils.d.ts +9 -0
- package/lib/WABinary/generic-utils.d.ts.map +1 -1
- package/lib/WABinary/generic-utils.js +23 -0
- package/lib/WABinary/generic-utils.js.map +1 -1
- package/lib/WABinary/jid-utils.js.map +1 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
- package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/index.d.ts +1 -0
- package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
- package/lib/WAUSync/Protocols/index.js +1 -0
- package/lib/WAUSync/Protocols/index.js.map +1 -1
- package/lib/WAUSync/USyncQuery.d.ts +1 -0
- package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
- package/lib/WAUSync/USyncQuery.js +5 -1
- package/lib/WAUSync/USyncQuery.js.map +1 -1
- package/lib/WAUSync/USyncUser.d.ts +4 -0
- package/lib/WAUSync/USyncUser.d.ts.map +1 -1
- package/lib/WAUSync/USyncUser.js +8 -0
- package/lib/WAUSync/USyncUser.js.map +1 -1
- package/lib/addons/anti-delete.d.ts +72 -0
- package/lib/addons/anti-delete.d.ts.map +1 -0
- package/lib/addons/anti-delete.js +165 -0
- package/lib/addons/anti-delete.js.map +1 -0
- package/lib/addons/auto-reply.d.ts +67 -0
- package/lib/addons/auto-reply.d.ts.map +1 -0
- package/lib/addons/auto-reply.js +145 -0
- package/lib/addons/auto-reply.js.map +1 -0
- package/lib/addons/browser-presets.d.ts +16 -0
- package/lib/addons/browser-presets.d.ts.map +1 -0
- package/lib/addons/browser-presets.js +24 -0
- package/lib/addons/browser-presets.js.map +1 -0
- package/lib/addons/button-sender.d.ts +260 -0
- package/lib/addons/button-sender.d.ts.map +1 -0
- package/lib/addons/button-sender.js +771 -0
- package/lib/addons/button-sender.js.map +1 -0
- package/lib/addons/call-handler.d.ts +79 -0
- package/lib/addons/call-handler.d.ts.map +1 -0
- package/lib/addons/call-handler.js +342 -0
- package/lib/addons/call-handler.js.map +1 -0
- package/lib/addons/from-chats.d.ts +30 -0
- package/lib/addons/from-chats.d.ts.map +1 -0
- package/lib/addons/from-chats.js +38 -0
- package/lib/addons/from-chats.js.map +1 -0
- package/lib/addons/from-messages-recv.d.ts +59 -0
- package/lib/addons/from-messages-recv.d.ts.map +1 -0
- package/lib/addons/from-messages-recv.js +326 -0
- package/lib/addons/from-messages-recv.js.map +1 -0
- package/lib/addons/from-messages-send.d.ts +50 -0
- package/lib/addons/from-messages-send.d.ts.map +1 -0
- package/lib/addons/from-messages-send.js +148 -0
- package/lib/addons/from-messages-send.js.map +1 -0
- package/lib/addons/from-messages.d.ts +52 -0
- package/lib/addons/from-messages.d.ts.map +1 -0
- package/lib/addons/from-messages.js +304 -0
- package/lib/addons/from-messages.js.map +1 -0
- package/lib/addons/index.d.ts +67 -0
- package/lib/addons/index.d.ts.map +1 -0
- package/lib/addons/index.js +86 -0
- package/lib/addons/index.js.map +1 -0
- package/lib/addons/interactive-message.d.ts +201 -0
- package/lib/addons/interactive-message.d.ts.map +1 -0
- package/lib/addons/interactive-message.js +256 -0
- package/lib/addons/interactive-message.js.map +1 -0
- package/lib/addons/jid-plot.d.ts +49 -0
- package/lib/addons/jid-plot.d.ts.map +1 -0
- package/lib/addons/jid-plot.js +84 -0
- package/lib/addons/jid-plot.js.map +1 -0
- package/lib/addons/jid-plotting.d.ts +54 -0
- package/lib/addons/jid-plotting.d.ts.map +1 -0
- package/lib/addons/jid-plotting.js +150 -0
- package/lib/addons/jid-plotting.js.map +1 -0
- package/lib/addons/lid-support.d.ts +41 -0
- package/lib/addons/lid-support.d.ts.map +1 -0
- package/lib/addons/lid-support.js +42 -0
- package/lib/addons/lid-support.js.map +1 -0
- package/lib/addons/message-composer.d.ts +142 -0
- package/lib/addons/message-composer.d.ts.map +1 -0
- package/lib/addons/message-composer.js +377 -0
- package/lib/addons/message-composer.js.map +1 -0
- package/lib/addons/message-scheduler.d.ts +77 -0
- package/lib/addons/message-scheduler.d.ts.map +1 -0
- package/lib/addons/message-scheduler.js +108 -0
- package/lib/addons/message-scheduler.js.map +1 -0
- package/lib/addons/message-search.d.ts +51 -0
- package/lib/addons/message-search.d.ts.map +1 -0
- package/lib/addons/message-search.js +171 -0
- package/lib/addons/message-search.js.map +1 -0
- package/lib/addons/message-utils.d.ts +88 -0
- package/lib/addons/message-utils.d.ts.map +1 -0
- package/lib/addons/message-utils.js +292 -0
- package/lib/addons/message-utils.js.map +1 -0
- package/lib/addons/outgoing-calls.d.ts +64 -0
- package/lib/addons/outgoing-calls.d.ts.map +1 -0
- package/lib/addons/outgoing-calls.js +139 -0
- package/lib/addons/outgoing-calls.js.map +1 -0
- package/lib/addons/pairing-fix.d.ts +31 -0
- package/lib/addons/pairing-fix.d.ts.map +1 -0
- package/lib/addons/pairing-fix.js +74 -0
- package/lib/addons/pairing-fix.js.map +1 -0
- package/lib/addons/past-participants.d.ts +42 -0
- package/lib/addons/past-participants.d.ts.map +1 -0
- package/lib/addons/past-participants.js +41 -0
- package/lib/addons/past-participants.js.map +1 -0
- package/lib/addons/rich-response.d.ts +111 -0
- package/lib/addons/rich-response.d.ts.map +1 -0
- package/lib/addons/rich-response.js +152 -0
- package/lib/addons/rich-response.js.map +1 -0
- package/lib/addons/scheduling.d.ts +41 -0
- package/lib/addons/scheduling.d.ts.map +1 -0
- package/lib/addons/scheduling.js +110 -0
- package/lib/addons/scheduling.js.map +1 -0
- package/lib/addons/status-posting.d.ts +177 -0
- package/lib/addons/status-posting.d.ts.map +1 -0
- package/lib/addons/status-posting.js +240 -0
- package/lib/addons/status-posting.js.map +1 -0
- package/lib/addons/stickerpack.d.ts +37 -0
- package/lib/addons/stickerpack.d.ts.map +1 -0
- package/lib/addons/stickerpack.js +39 -0
- package/lib/addons/stickerpack.js.map +1 -0
- package/lib/addons/templates.d.ts +72 -0
- package/lib/addons/templates.d.ts.map +1 -0
- package/lib/addons/templates.js +145 -0
- package/lib/addons/templates.js.map +1 -0
- package/lib/addons/vcard.d.ts +59 -0
- package/lib/addons/vcard.d.ts.map +1 -0
- package/lib/addons/vcard.js +88 -0
- package/lib/addons/vcard.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* message-composer.ts (addons)
|
|
3
|
+
* Rich message builders for Meta AI / Bot botForwardedMessage payloads.
|
|
4
|
+
* Ported from WhiskeySockets/Baileys main (April 2026).
|
|
5
|
+
*/
|
|
6
|
+
import { generateMessageID } from '../Utils/generics.js';
|
|
7
|
+
// ── Keyword sets ──────────────────────────────────────────────────────────────
|
|
8
|
+
export const JS_KEYWORDS = new Set([
|
|
9
|
+
'import',
|
|
10
|
+
'export',
|
|
11
|
+
'from',
|
|
12
|
+
'default',
|
|
13
|
+
'as',
|
|
14
|
+
'const',
|
|
15
|
+
'let',
|
|
16
|
+
'var',
|
|
17
|
+
'function',
|
|
18
|
+
'class',
|
|
19
|
+
'extends',
|
|
20
|
+
'new',
|
|
21
|
+
'return',
|
|
22
|
+
'if',
|
|
23
|
+
'else',
|
|
24
|
+
'for',
|
|
25
|
+
'while',
|
|
26
|
+
'do',
|
|
27
|
+
'switch',
|
|
28
|
+
'case',
|
|
29
|
+
'break',
|
|
30
|
+
'continue',
|
|
31
|
+
'try',
|
|
32
|
+
'catch',
|
|
33
|
+
'finally',
|
|
34
|
+
'throw',
|
|
35
|
+
'async',
|
|
36
|
+
'await',
|
|
37
|
+
'yield',
|
|
38
|
+
'typeof',
|
|
39
|
+
'instanceof',
|
|
40
|
+
'in',
|
|
41
|
+
'of',
|
|
42
|
+
'delete',
|
|
43
|
+
'void',
|
|
44
|
+
'true',
|
|
45
|
+
'false',
|
|
46
|
+
'null',
|
|
47
|
+
'undefined',
|
|
48
|
+
'NaN',
|
|
49
|
+
'Infinity',
|
|
50
|
+
'this',
|
|
51
|
+
'super',
|
|
52
|
+
'static',
|
|
53
|
+
'get',
|
|
54
|
+
'set',
|
|
55
|
+
'debugger',
|
|
56
|
+
'with'
|
|
57
|
+
]);
|
|
58
|
+
export const PYTHON_KEYWORDS = new Set([
|
|
59
|
+
'import',
|
|
60
|
+
'from',
|
|
61
|
+
'as',
|
|
62
|
+
'def',
|
|
63
|
+
'class',
|
|
64
|
+
'return',
|
|
65
|
+
'if',
|
|
66
|
+
'elif',
|
|
67
|
+
'else',
|
|
68
|
+
'for',
|
|
69
|
+
'while',
|
|
70
|
+
'break',
|
|
71
|
+
'continue',
|
|
72
|
+
'try',
|
|
73
|
+
'except',
|
|
74
|
+
'finally',
|
|
75
|
+
'raise',
|
|
76
|
+
'with',
|
|
77
|
+
'yield',
|
|
78
|
+
'lambda',
|
|
79
|
+
'pass',
|
|
80
|
+
'del',
|
|
81
|
+
'global',
|
|
82
|
+
'nonlocal',
|
|
83
|
+
'assert',
|
|
84
|
+
'True',
|
|
85
|
+
'False',
|
|
86
|
+
'None',
|
|
87
|
+
'and',
|
|
88
|
+
'or',
|
|
89
|
+
'not',
|
|
90
|
+
'in',
|
|
91
|
+
'is',
|
|
92
|
+
'async',
|
|
93
|
+
'await',
|
|
94
|
+
'self',
|
|
95
|
+
'print'
|
|
96
|
+
]);
|
|
97
|
+
export const LANGUAGE_KEYWORDS = {
|
|
98
|
+
javascript: JS_KEYWORDS,
|
|
99
|
+
typescript: JS_KEYWORDS,
|
|
100
|
+
js: JS_KEYWORDS,
|
|
101
|
+
ts: JS_KEYWORDS,
|
|
102
|
+
python: PYTHON_KEYWORDS,
|
|
103
|
+
py: PYTHON_KEYWORDS
|
|
104
|
+
};
|
|
105
|
+
// ── Enums ─────────────────────────────────────────────────────────────────────
|
|
106
|
+
export var CodeHighlightType;
|
|
107
|
+
(function (CodeHighlightType) {
|
|
108
|
+
CodeHighlightType[CodeHighlightType["DEFAULT"] = 0] = "DEFAULT";
|
|
109
|
+
CodeHighlightType[CodeHighlightType["KEYWORD"] = 1] = "KEYWORD";
|
|
110
|
+
CodeHighlightType[CodeHighlightType["METHOD"] = 2] = "METHOD";
|
|
111
|
+
CodeHighlightType[CodeHighlightType["STRING"] = 3] = "STRING";
|
|
112
|
+
CodeHighlightType[CodeHighlightType["NUMBER"] = 4] = "NUMBER";
|
|
113
|
+
CodeHighlightType[CodeHighlightType["COMMENT"] = 5] = "COMMENT";
|
|
114
|
+
})(CodeHighlightType || (CodeHighlightType = {}));
|
|
115
|
+
export var RichSubMessageType;
|
|
116
|
+
(function (RichSubMessageType) {
|
|
117
|
+
RichSubMessageType[RichSubMessageType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
118
|
+
RichSubMessageType[RichSubMessageType["GRID_IMAGE"] = 1] = "GRID_IMAGE";
|
|
119
|
+
RichSubMessageType[RichSubMessageType["TEXT"] = 2] = "TEXT";
|
|
120
|
+
RichSubMessageType[RichSubMessageType["INLINE_IMAGE"] = 3] = "INLINE_IMAGE";
|
|
121
|
+
RichSubMessageType[RichSubMessageType["TABLE"] = 4] = "TABLE";
|
|
122
|
+
RichSubMessageType[RichSubMessageType["CODE"] = 5] = "CODE";
|
|
123
|
+
RichSubMessageType[RichSubMessageType["DYNAMIC"] = 6] = "DYNAMIC";
|
|
124
|
+
RichSubMessageType[RichSubMessageType["MAP"] = 7] = "MAP";
|
|
125
|
+
RichSubMessageType[RichSubMessageType["LATEX"] = 8] = "LATEX";
|
|
126
|
+
RichSubMessageType[RichSubMessageType["CONTENT_ITEMS"] = 9] = "CONTENT_ITEMS";
|
|
127
|
+
})(RichSubMessageType || (RichSubMessageType = {}));
|
|
128
|
+
// ── Tokenizer ─────────────────────────────────────────────────────────────────
|
|
129
|
+
export const tokenizeCode = (codeStr, language = 'javascript') => {
|
|
130
|
+
const keywords = LANGUAGE_KEYWORDS[language] || JS_KEYWORDS;
|
|
131
|
+
const blocks = [];
|
|
132
|
+
const lines = codeStr.split('\n');
|
|
133
|
+
for (let li = 0; li < lines.length; li++) {
|
|
134
|
+
const line = lines[li];
|
|
135
|
+
const isLast = li === lines.length - 1;
|
|
136
|
+
const nl = isLast ? '' : '\n';
|
|
137
|
+
if (!line.trim()) {
|
|
138
|
+
blocks.push({ highlightType: CodeHighlightType.DEFAULT, codeContent: line + nl });
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (line.trim().startsWith('//') || line.trim().startsWith('#')) {
|
|
142
|
+
blocks.push({ highlightType: CodeHighlightType.COMMENT, codeContent: line + nl });
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const regex = new RegExp([
|
|
146
|
+
'(\\/\\/.*$|#.*$)',
|
|
147
|
+
'("(?:[^"\\\\]|\\\\.)*")',
|
|
148
|
+
"('(?:[^'\\\\]|\\\\.)*')",
|
|
149
|
+
'(`(?:[^`\\\\]|\\\\.)*`)',
|
|
150
|
+
'(\\b\\d+(?:\\.\\d+)?\\b)',
|
|
151
|
+
'(\\b[a-zA-Z_$][\\w$]*\\b)',
|
|
152
|
+
'([^\\s\\w$"\'`]+)',
|
|
153
|
+
'(\\s+)'
|
|
154
|
+
].join('|'), 'g');
|
|
155
|
+
let match;
|
|
156
|
+
const tokens = [];
|
|
157
|
+
while ((match = regex.exec(line)) !== null) {
|
|
158
|
+
const val = match[0];
|
|
159
|
+
if (match[1]) {
|
|
160
|
+
tokens.push({ highlightType: CodeHighlightType.COMMENT, codeContent: val });
|
|
161
|
+
}
|
|
162
|
+
else if (match[2] || match[3] || match[4]) {
|
|
163
|
+
tokens.push({ highlightType: CodeHighlightType.STRING, codeContent: val });
|
|
164
|
+
}
|
|
165
|
+
else if (match[5]) {
|
|
166
|
+
tokens.push({ highlightType: CodeHighlightType.NUMBER, codeContent: val });
|
|
167
|
+
}
|
|
168
|
+
else if (match[6]) {
|
|
169
|
+
if (keywords.has(val)) {
|
|
170
|
+
tokens.push({ highlightType: CodeHighlightType.KEYWORD, codeContent: val });
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
const after = line.slice(regex.lastIndex).trimStart();
|
|
174
|
+
tokens.push({
|
|
175
|
+
highlightType: after.startsWith('(') ? CodeHighlightType.METHOD : CodeHighlightType.DEFAULT,
|
|
176
|
+
codeContent: val
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
tokens.push({ highlightType: CodeHighlightType.DEFAULT, codeContent: val });
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (tokens.length === 0) {
|
|
185
|
+
blocks.push({ highlightType: CodeHighlightType.DEFAULT, codeContent: line + nl });
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
const merged = [];
|
|
189
|
+
for (const t of tokens) {
|
|
190
|
+
const prev = merged.length > 0 ? merged[merged.length - 1] : undefined;
|
|
191
|
+
if (prev?.highlightType === t.highlightType) {
|
|
192
|
+
prev.codeContent += t.codeContent;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
merged.push({ ...t });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (merged.length > 0)
|
|
199
|
+
merged[merged.length - 1].codeContent += nl;
|
|
200
|
+
blocks.push(...merged);
|
|
201
|
+
}
|
|
202
|
+
return blocks;
|
|
203
|
+
};
|
|
204
|
+
// ── Context / wrapper helpers ─────────────────────────────────────────────────
|
|
205
|
+
export const buildRichContextInfo = (quoted) => {
|
|
206
|
+
const ctxInfo = {
|
|
207
|
+
forwardingScore: 1,
|
|
208
|
+
isForwarded: true,
|
|
209
|
+
forwardedAiBotMessageInfo: { botJid: '867051314767696@bot' },
|
|
210
|
+
forwardOrigin: 4
|
|
211
|
+
};
|
|
212
|
+
if (quoted?.key) {
|
|
213
|
+
ctxInfo.stanzaId = quoted.key.id;
|
|
214
|
+
ctxInfo.participant = quoted.key.participant || quoted.sender || quoted.key.remoteJid;
|
|
215
|
+
ctxInfo.quotedMessage = quoted.message;
|
|
216
|
+
}
|
|
217
|
+
return ctxInfo;
|
|
218
|
+
};
|
|
219
|
+
export const buildBotForwardedMessage = (submessages, contextInfo, unifiedResponse) => {
|
|
220
|
+
const richResponse = { messageType: 1, submessages, contextInfo };
|
|
221
|
+
if (unifiedResponse)
|
|
222
|
+
richResponse.unifiedResponse = unifiedResponse;
|
|
223
|
+
return {
|
|
224
|
+
richResponseMessage: richResponse
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
// ── Generators ────────────────────────────────────────────────────────────────
|
|
228
|
+
export const generateTableContent = (title, headers, rows, quoted, options = {}) => {
|
|
229
|
+
const { footer, headerText } = options;
|
|
230
|
+
const tableRows = [{ items: headers, isHeading: true }, ...rows.map(row => ({ items: row.map(String) }))];
|
|
231
|
+
const submessages = [];
|
|
232
|
+
if (headerText)
|
|
233
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: headerText });
|
|
234
|
+
submessages.push({ messageType: RichSubMessageType.TABLE, tableMetadata: { title, rows: tableRows } });
|
|
235
|
+
if (footer)
|
|
236
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: footer });
|
|
237
|
+
return {
|
|
238
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
239
|
+
messageId: generateMessageID()
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
export const generateListContent = (title, items, quoted, options = {}) => {
|
|
243
|
+
const { footer, headerText } = options;
|
|
244
|
+
const tableRows = items.map(item => ({ items: Array.isArray(item) ? item.map(String) : [String(item)] }));
|
|
245
|
+
const submessages = [];
|
|
246
|
+
if (headerText)
|
|
247
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: headerText });
|
|
248
|
+
submessages.push({ messageType: RichSubMessageType.TABLE, tableMetadata: { title, rows: tableRows } });
|
|
249
|
+
if (footer)
|
|
250
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: footer });
|
|
251
|
+
return {
|
|
252
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
253
|
+
messageId: generateMessageID()
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
export const generateCodeBlockContent = (code, quoted, options = {}) => {
|
|
257
|
+
const { title, footer, language = 'javascript' } = options;
|
|
258
|
+
const submessages = [];
|
|
259
|
+
if (title)
|
|
260
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: title });
|
|
261
|
+
submessages.push({
|
|
262
|
+
messageType: RichSubMessageType.CODE,
|
|
263
|
+
codeMetadata: { codeLanguage: language, codeBlocks: tokenizeCode(code, language) }
|
|
264
|
+
});
|
|
265
|
+
if (footer)
|
|
266
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: footer });
|
|
267
|
+
return {
|
|
268
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
269
|
+
messageId: generateMessageID()
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
export const generateLatexContent = (quoted, options) => {
|
|
273
|
+
const { text, expressions, headerText, footer } = options;
|
|
274
|
+
const submessages = [];
|
|
275
|
+
if (headerText)
|
|
276
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: headerText });
|
|
277
|
+
const latexExpressions = expressions.map(expr => {
|
|
278
|
+
const entry = {
|
|
279
|
+
latexExpression: expr.latexExpression,
|
|
280
|
+
url: expr.url,
|
|
281
|
+
width: expr.width,
|
|
282
|
+
height: expr.height
|
|
283
|
+
};
|
|
284
|
+
if (expr.fontHeight !== undefined)
|
|
285
|
+
entry.fontHeight = expr.fontHeight;
|
|
286
|
+
if (expr.imageTopPadding !== undefined)
|
|
287
|
+
entry.imageTopPadding = expr.imageTopPadding;
|
|
288
|
+
if (expr.imageLeadingPadding !== undefined)
|
|
289
|
+
entry.imageLeadingPadding = expr.imageLeadingPadding;
|
|
290
|
+
if (expr.imageBottomPadding !== undefined)
|
|
291
|
+
entry.imageBottomPadding = expr.imageBottomPadding;
|
|
292
|
+
if (expr.imageTrailingPadding !== undefined)
|
|
293
|
+
entry.imageTrailingPadding = expr.imageTrailingPadding;
|
|
294
|
+
return entry;
|
|
295
|
+
});
|
|
296
|
+
submessages.push({
|
|
297
|
+
messageType: RichSubMessageType.LATEX,
|
|
298
|
+
latexMetadata: { text: text || '', expressions: latexExpressions }
|
|
299
|
+
});
|
|
300
|
+
if (footer)
|
|
301
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: footer });
|
|
302
|
+
return {
|
|
303
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
304
|
+
messageId: generateMessageID()
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
export const generateLatexImageContent = async (quoted, options, uploadFn, renderLatexToPng) => {
|
|
308
|
+
const { text, expressions, headerText, footer } = options;
|
|
309
|
+
const submessages = [];
|
|
310
|
+
if (headerText)
|
|
311
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: headerText });
|
|
312
|
+
const latexExpressions = await Promise.all(expressions.map(async (expr) => {
|
|
313
|
+
const { buffer, width, height } = await renderLatexToPng(expr.latexExpression);
|
|
314
|
+
const res = await uploadFn(buffer, 'image');
|
|
315
|
+
return { latexExpression: expr.latexExpression, url: res.url || res.directPath, width, height };
|
|
316
|
+
}));
|
|
317
|
+
submessages.push({
|
|
318
|
+
messageType: RichSubMessageType.LATEX,
|
|
319
|
+
latexMetadata: { text: text || '', expressions: latexExpressions }
|
|
320
|
+
});
|
|
321
|
+
if (footer)
|
|
322
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: footer });
|
|
323
|
+
return {
|
|
324
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
325
|
+
messageId: generateMessageID()
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
export const generateLatexInlineImageContent = async (quoted, options, uploadFn, renderLatexToPng) => {
|
|
329
|
+
const { text, expressions, headerText, footer } = options;
|
|
330
|
+
const submessages = [];
|
|
331
|
+
if (headerText)
|
|
332
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: headerText });
|
|
333
|
+
if (text)
|
|
334
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: text });
|
|
335
|
+
for (const expr of expressions) {
|
|
336
|
+
const { buffer /* width, height */ } = await renderLatexToPng(expr.latexExpression);
|
|
337
|
+
const res = await uploadFn(buffer, 'image');
|
|
338
|
+
const imageUrl = res.url || res.directPath || '';
|
|
339
|
+
submessages.push({
|
|
340
|
+
messageType: RichSubMessageType.INLINE_IMAGE,
|
|
341
|
+
imageMetadata: {
|
|
342
|
+
imageUrl: { imagePreviewUrl: imageUrl, imageHighResUrl: imageUrl },
|
|
343
|
+
imageText: expr.latexExpression,
|
|
344
|
+
alignment: 2
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
if (footer)
|
|
349
|
+
submessages.push({ messageType: RichSubMessageType.TEXT, messageText: footer });
|
|
350
|
+
return {
|
|
351
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
352
|
+
messageId: generateMessageID()
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
export const extractUnifiedResponse = (msg) => {
|
|
356
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
357
|
+
const botFwd = msg?.botForwardedMessage?.message;
|
|
358
|
+
if (!botFwd)
|
|
359
|
+
return null;
|
|
360
|
+
const rich = botFwd.richResponseMessage;
|
|
361
|
+
if (!rich?.unifiedResponse?.data)
|
|
362
|
+
return null;
|
|
363
|
+
return {
|
|
364
|
+
unifiedResponse: { data: rich.unifiedResponse.data },
|
|
365
|
+
submessages: rich.submessages || [],
|
|
366
|
+
contextInfo: rich.contextInfo || {}
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
export const generateUnifiedResponseContent = (quoted, captured) => ({
|
|
370
|
+
message: buildBotForwardedMessage(captured.submessages, buildRichContextInfo(quoted), captured.unifiedResponse),
|
|
371
|
+
messageId: generateMessageID()
|
|
372
|
+
});
|
|
373
|
+
export const generateRichMessageContent = (submessages, quoted) => ({
|
|
374
|
+
message: buildBotForwardedMessage(submessages, buildRichContextInfo(quoted)),
|
|
375
|
+
messageId: generateMessageID()
|
|
376
|
+
});
|
|
377
|
+
//# sourceMappingURL=message-composer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-composer.js","sourceRoot":"","sources":["../../src/addons/message-composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Scheduler
|
|
3
|
+
* Schedule messages to be sent at a specific time or after a delay
|
|
4
|
+
*/
|
|
5
|
+
import type { AnyMessageContent, MiscMessageGenerationOptions } from '../Types/index.js';
|
|
6
|
+
export type ScheduledMessageJob = {
|
|
7
|
+
/** Unique job ID */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Target JID */
|
|
10
|
+
jid: string;
|
|
11
|
+
/** Message content */
|
|
12
|
+
content: AnyMessageContent;
|
|
13
|
+
/** Options for sendMessage */
|
|
14
|
+
options?: MiscMessageGenerationOptions;
|
|
15
|
+
/** Scheduled send time (ms since epoch) */
|
|
16
|
+
sendAt: number;
|
|
17
|
+
/** Repeat interval in ms (0 = no repeat) */
|
|
18
|
+
repeatIntervalMs?: number;
|
|
19
|
+
/** Max repeats (undefined = infinite) */
|
|
20
|
+
maxRepeats?: number;
|
|
21
|
+
/** Current repeat count */
|
|
22
|
+
repeatCount?: number;
|
|
23
|
+
/** Status */
|
|
24
|
+
status: 'pending' | 'sent' | 'cancelled' | 'failed';
|
|
25
|
+
/** Error if failed */
|
|
26
|
+
error?: string;
|
|
27
|
+
};
|
|
28
|
+
type SendFn = (jid: string, content: AnyMessageContent, options?: MiscMessageGenerationOptions) => Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Attach the sendMessage function from a Baileys socket.
|
|
31
|
+
* Must be called before scheduling any messages.
|
|
32
|
+
*/
|
|
33
|
+
export declare const attachSchedulerSendFn: (fn: SendFn) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Schedule a message to be sent at a specific time
|
|
36
|
+
*/
|
|
37
|
+
export declare const scheduleMessage: (params: {
|
|
38
|
+
jid: string;
|
|
39
|
+
content: AnyMessageContent;
|
|
40
|
+
sendAt: Date | number;
|
|
41
|
+
options?: MiscMessageGenerationOptions;
|
|
42
|
+
repeatIntervalMs?: number;
|
|
43
|
+
maxRepeats?: number;
|
|
44
|
+
id?: string;
|
|
45
|
+
}) => ScheduledMessageJob;
|
|
46
|
+
/**
|
|
47
|
+
* Schedule a message to be sent after a delay (ms)
|
|
48
|
+
*/
|
|
49
|
+
export declare const scheduleMessageAfter: (params: {
|
|
50
|
+
jid: string;
|
|
51
|
+
content: AnyMessageContent;
|
|
52
|
+
delayMs: number;
|
|
53
|
+
options?: MiscMessageGenerationOptions;
|
|
54
|
+
id?: string;
|
|
55
|
+
}) => ScheduledMessageJob;
|
|
56
|
+
/**
|
|
57
|
+
* Cancel a scheduled job
|
|
58
|
+
*/
|
|
59
|
+
export declare const cancelScheduledMessage: (id: string) => boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Get a scheduled job by ID
|
|
62
|
+
*/
|
|
63
|
+
export declare const getScheduledMessage: (id: string) => ScheduledMessageJob | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Get all scheduled jobs
|
|
66
|
+
*/
|
|
67
|
+
export declare const getAllScheduledMessages: () => ScheduledMessageJob[];
|
|
68
|
+
/**
|
|
69
|
+
* Get all pending scheduled jobs
|
|
70
|
+
*/
|
|
71
|
+
export declare const getPendingScheduledMessages: () => ScheduledMessageJob[];
|
|
72
|
+
/**
|
|
73
|
+
* Cancel all pending scheduled jobs
|
|
74
|
+
*/
|
|
75
|
+
export declare const cancelAllScheduledMessages: () => void;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=message-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-scheduler.d.ts","sourceRoot":"","sources":["../../src/addons/message-scheduler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,sBAAsB;IACtB,OAAO,EAAE,iBAAiB,CAAA;IAC1B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,4BAA4B,CAAA;IACtC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa;IACb,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACnD,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,4BAA4B,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AAM/G;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,MAAM,KAAG,IAElD,CAAA;AAkCD;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,4BAA4B,CAAA;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;CACX,KAAG,mBAgBH,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,iBAAiB,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,4BAA4B,CAAA;IACtC,EAAE,CAAC,EAAE,MAAM,CAAA;CACX,KAAG,mBAEH,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,IAAI,MAAM,KAAG,OAQnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,MAAM,KAAG,mBAAmB,GAAG,SAAyB,CAAA;AAEhG;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAO,mBAAmB,EAAwB,CAAA;AAEtF;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAO,mBAAmB,EACX,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAO,IAQ7C,CAAA"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Scheduler
|
|
3
|
+
* Schedule messages to be sent at a specific time or after a delay
|
|
4
|
+
*/
|
|
5
|
+
const jobs = new Map();
|
|
6
|
+
const timers = new Map();
|
|
7
|
+
let sendFn = null;
|
|
8
|
+
/**
|
|
9
|
+
* Attach the sendMessage function from a Baileys socket.
|
|
10
|
+
* Must be called before scheduling any messages.
|
|
11
|
+
*/
|
|
12
|
+
export const attachSchedulerSendFn = (fn) => {
|
|
13
|
+
sendFn = fn;
|
|
14
|
+
};
|
|
15
|
+
const scheduleTimer = (job) => {
|
|
16
|
+
const delay = Math.max(0, job.sendAt - Date.now());
|
|
17
|
+
const timer = setTimeout(async () => {
|
|
18
|
+
if (!sendFn) {
|
|
19
|
+
job.status = 'failed';
|
|
20
|
+
job.error = 'sendFn not attached';
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
await sendFn(job.jid, job.content, job.options);
|
|
25
|
+
job.status = 'sent';
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
job.status = 'failed';
|
|
29
|
+
job.error = e?.message || String(e);
|
|
30
|
+
}
|
|
31
|
+
// Handle repeating jobs
|
|
32
|
+
if (job.repeatIntervalMs && job.repeatIntervalMs > 0) {
|
|
33
|
+
const nextCount = (job.repeatCount ?? 0) + 1;
|
|
34
|
+
if (job.maxRepeats === undefined || nextCount < job.maxRepeats) {
|
|
35
|
+
job.repeatCount = nextCount;
|
|
36
|
+
job.sendAt = Date.now() + job.repeatIntervalMs;
|
|
37
|
+
job.status = 'pending';
|
|
38
|
+
scheduleTimer(job);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}, delay);
|
|
42
|
+
timers.set(job.id, timer);
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Schedule a message to be sent at a specific time
|
|
46
|
+
*/
|
|
47
|
+
export const scheduleMessage = (params) => {
|
|
48
|
+
const id = params.id || `sched_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
49
|
+
const job = {
|
|
50
|
+
id,
|
|
51
|
+
jid: params.jid,
|
|
52
|
+
content: params.content,
|
|
53
|
+
options: params.options,
|
|
54
|
+
sendAt: params.sendAt instanceof Date ? params.sendAt.getTime() : params.sendAt,
|
|
55
|
+
repeatIntervalMs: params.repeatIntervalMs,
|
|
56
|
+
maxRepeats: params.maxRepeats,
|
|
57
|
+
repeatCount: 0,
|
|
58
|
+
status: 'pending'
|
|
59
|
+
};
|
|
60
|
+
jobs.set(id, job);
|
|
61
|
+
scheduleTimer(job);
|
|
62
|
+
return job;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Schedule a message to be sent after a delay (ms)
|
|
66
|
+
*/
|
|
67
|
+
export const scheduleMessageAfter = (params) => {
|
|
68
|
+
return scheduleMessage({ ...params, sendAt: Date.now() + params.delayMs });
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Cancel a scheduled job
|
|
72
|
+
*/
|
|
73
|
+
export const cancelScheduledMessage = (id) => {
|
|
74
|
+
const job = jobs.get(id);
|
|
75
|
+
if (!job)
|
|
76
|
+
return false;
|
|
77
|
+
const timer = timers.get(id);
|
|
78
|
+
if (timer)
|
|
79
|
+
clearTimeout(timer);
|
|
80
|
+
timers.delete(id);
|
|
81
|
+
job.status = 'cancelled';
|
|
82
|
+
return true;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Get a scheduled job by ID
|
|
86
|
+
*/
|
|
87
|
+
export const getScheduledMessage = (id) => jobs.get(id);
|
|
88
|
+
/**
|
|
89
|
+
* Get all scheduled jobs
|
|
90
|
+
*/
|
|
91
|
+
export const getAllScheduledMessages = () => [...jobs.values()];
|
|
92
|
+
/**
|
|
93
|
+
* Get all pending scheduled jobs
|
|
94
|
+
*/
|
|
95
|
+
export const getPendingScheduledMessages = () => [...jobs.values()].filter(j => j.status === 'pending');
|
|
96
|
+
/**
|
|
97
|
+
* Cancel all pending scheduled jobs
|
|
98
|
+
*/
|
|
99
|
+
export const cancelAllScheduledMessages = () => {
|
|
100
|
+
for (const [id, timer] of timers.entries()) {
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
const job = jobs.get(id);
|
|
103
|
+
if (job?.status === 'pending')
|
|
104
|
+
job.status = 'cancelled';
|
|
105
|
+
}
|
|
106
|
+
timers.clear();
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=message-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-scheduler.js","sourceRoot":"","sources":["../../src/addons/message-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { WAMessage } from '../Types/index.js';
|
|
2
|
+
export type SearchMessageType = 'text' | 'image' | 'video' | 'document' | 'audio' | 'sticker' | 'location' | 'contact' | 'other';
|
|
3
|
+
export interface SearchOptions {
|
|
4
|
+
jid?: string;
|
|
5
|
+
fromDate?: Date;
|
|
6
|
+
toDate?: Date;
|
|
7
|
+
fromSender?: string;
|
|
8
|
+
fromMe?: boolean;
|
|
9
|
+
messageTypes?: SearchMessageType[];
|
|
10
|
+
limit?: number;
|
|
11
|
+
caseSensitive?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface SearchResult {
|
|
14
|
+
message: WAMessage;
|
|
15
|
+
matchedText: string;
|
|
16
|
+
matchPosition: number;
|
|
17
|
+
relevanceScore: number;
|
|
18
|
+
}
|
|
19
|
+
/** Options for regex-based message search */
|
|
20
|
+
export interface RegexSearchOptions {
|
|
21
|
+
/** Filter by chat JID */
|
|
22
|
+
jid?: string;
|
|
23
|
+
/** Filter by sender JID */
|
|
24
|
+
fromSender?: string;
|
|
25
|
+
/** Filter by fromMe flag */
|
|
26
|
+
fromMe?: boolean;
|
|
27
|
+
/** Filter by message types */
|
|
28
|
+
messageTypes?: SearchMessageType[];
|
|
29
|
+
/** Max number of results */
|
|
30
|
+
limit?: number;
|
|
31
|
+
}
|
|
32
|
+
export declare const extractMessageText: (message: WAMessage) => string;
|
|
33
|
+
export declare const calculateRelevance: (query: string, text: string, position: number) => number;
|
|
34
|
+
export declare const searchMessages: (messages: WAMessage[], query: string, options?: SearchOptions) => SearchResult[];
|
|
35
|
+
export declare const searchMessagesRegex: (messages: WAMessage[], pattern: RegExp, options?: RegexSearchOptions) => SearchResult[];
|
|
36
|
+
export declare class MessageSearchManager {
|
|
37
|
+
private messages;
|
|
38
|
+
private messageIndex;
|
|
39
|
+
addMessages(messages: WAMessage[]): void;
|
|
40
|
+
removeMessages(messageIds: string[]): void;
|
|
41
|
+
clear(): void;
|
|
42
|
+
get count(): number;
|
|
43
|
+
search(query: string, options?: SearchOptions): SearchResult[];
|
|
44
|
+
searchRegex(pattern: RegExp, options?: RegexSearchOptions): SearchResult[];
|
|
45
|
+
getByJid(jid: string): WAMessage[];
|
|
46
|
+
getBySender(sender: string): WAMessage[];
|
|
47
|
+
getByType(type: SearchMessageType): WAMessage[];
|
|
48
|
+
getById(id: string): WAMessage | undefined;
|
|
49
|
+
}
|
|
50
|
+
export declare const createMessageSearch: () => MessageSearchManager;
|
|
51
|
+
//# sourceMappingURL=message-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-search.d.ts","sourceRoot":"","sources":["../../src/addons/message-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,MAAM,iBAAiB,GAC1B,MAAM,GACN,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,CAAA;AAEV,MAAM,WAAW,aAAa;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IAClC,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAClC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,KAAG,MAcvD,CAAA;AAgBD,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MAclF,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,EAAE,EAAE,OAAO,MAAM,EAAE,UAAS,aAAkB,KAAG,YAAY,EAgC9G,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC/B,UAAU,SAAS,EAAE,EACrB,SAAS,MAAM,EACf,UAAS,kBAAuB,KAC9B,YAAY,EAkBd,CAAA;AAED,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,YAAY,CAA+B;IAEnD,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE;IAUjC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE;IAMnC,KAAK;IAIL,IAAI,KAAK,WAER;IACD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;IAG7C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAGzD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAGpB,WAAW,CAAC,MAAM,EAAE,MAAM;IAG1B,SAAS,CAAC,IAAI,EAAE,iBAAiB;IAGjC,OAAO,CAAC,EAAE,EAAE,MAAM;CAGlB;AAED,eAAO,MAAM,mBAAmB,4BAAmC,CAAA"}
|