@vanzxy/baileys 2.0.0

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.
Files changed (281) hide show
  1. package/NOTICE.md +111 -0
  2. package/README.md +830 -0
  3. package/WAProto/index.d.ts +9 -0
  4. package/WAProto/index.js +142036 -0
  5. package/engine-requirements.js +13 -0
  6. package/lib/Defaults/index.d.ts +152 -0
  7. package/lib/Defaults/index.js +179 -0
  8. package/lib/Framework/Bot.js +209 -0
  9. package/lib/Framework/Context.js +90 -0
  10. package/lib/Framework/MediaManager.js +152 -0
  11. package/lib/Framework/SessionManager.js +34 -0
  12. package/lib/Framework/StatsManager.js +120 -0
  13. package/lib/Framework/Store/SQLiteStore.js +74 -0
  14. package/lib/Framework/index.js +11 -0
  15. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  16. package/lib/Signal/Group/ciphertext-message.js +12 -0
  17. package/lib/Signal/Group/group-session-builder.d.ts +7 -0
  18. package/lib/Signal/Group/group-session-builder.js +30 -0
  19. package/lib/Signal/Group/group_cipher.d.ts +10 -0
  20. package/lib/Signal/Group/group_cipher.js +82 -0
  21. package/lib/Signal/Group/index.d.ts +11 -0
  22. package/lib/Signal/Group/index.js +12 -0
  23. package/lib/Signal/Group/keyhelper.d.ts +6 -0
  24. package/lib/Signal/Group/keyhelper.js +18 -0
  25. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  26. package/lib/Signal/Group/sender-chain-key.js +26 -0
  27. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  28. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  29. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  30. package/lib/Signal/Group/sender-key-message.js +66 -0
  31. package/lib/Signal/Group/sender-key-name.d.ts +11 -0
  32. package/lib/Signal/Group/sender-key-name.js +48 -0
  33. package/lib/Signal/Group/sender-key-record.d.ts +12 -0
  34. package/lib/Signal/Group/sender-key-record.js +41 -0
  35. package/lib/Signal/Group/sender-key-state.d.ts +16 -0
  36. package/lib/Signal/Group/sender-key-state.js +84 -0
  37. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  38. package/lib/Signal/Group/sender-message-key.js +26 -0
  39. package/lib/Signal/libsignal.d.ts +54 -0
  40. package/lib/Signal/libsignal.js +431 -0
  41. package/lib/Signal/lid-mapping.d.ts +20 -0
  42. package/lib/Signal/lid-mapping.js +277 -0
  43. package/lib/Socket/Client/index.d.ts +2 -0
  44. package/lib/Socket/Client/index.js +3 -0
  45. package/lib/Socket/Client/types.d.ts +5 -0
  46. package/lib/Socket/Client/types.js +11 -0
  47. package/lib/Socket/Client/websocket.d.ts +12 -0
  48. package/lib/Socket/Client/websocket.js +54 -0
  49. package/lib/Socket/business.d.ts +395 -0
  50. package/lib/Socket/business.js +380 -0
  51. package/lib/Socket/chats.d.ts +136 -0
  52. package/lib/Socket/chats.js +1328 -0
  53. package/lib/Socket/communities.d.ts +561 -0
  54. package/lib/Socket/communities.js +434 -0
  55. package/lib/Socket/dugong.d.ts +117 -0
  56. package/lib/Socket/dugong.js +799 -0
  57. package/lib/Socket/groups.d.ts +285 -0
  58. package/lib/Socket/groups.js +355 -0
  59. package/lib/Socket/index.d.ts +531 -0
  60. package/lib/Socket/index.js +34 -0
  61. package/lib/Socket/messages-recv.d.ts +333 -0
  62. package/lib/Socket/messages-recv.js +1782 -0
  63. package/lib/Socket/messages-send.d.ts +329 -0
  64. package/lib/Socket/messages-send.js +1383 -0
  65. package/lib/Socket/mex.d.ts +1 -0
  66. package/lib/Socket/mex.js +42 -0
  67. package/lib/Socket/newsletter.d.ts +281 -0
  68. package/lib/Socket/newsletter.js +321 -0
  69. package/lib/Socket/socket.d.ts +60 -0
  70. package/lib/Socket/socket.js +1001 -0
  71. package/lib/Socket/username.js +153 -0
  72. package/lib/Store/index.d.ts +3 -0
  73. package/lib/Store/index.js +4 -0
  74. package/lib/Store/make-in-memory-store.d.ts +62 -0
  75. package/lib/Store/make-in-memory-store.js +429 -0
  76. package/lib/Store/make-ordered-dictionary.d.ts +12 -0
  77. package/lib/Store/make-ordered-dictionary.js +79 -0
  78. package/lib/Store/object-repository.d.ts +10 -0
  79. package/lib/Store/object-repository.js +24 -0
  80. package/lib/Types/Auth.d.ts +117 -0
  81. package/lib/Types/Auth.js +2 -0
  82. package/lib/Types/Bussines.d.ts +25 -0
  83. package/lib/Types/Bussines.js +2 -0
  84. package/lib/Types/Call.d.ts +15 -0
  85. package/lib/Types/Call.js +2 -0
  86. package/lib/Types/Chat.d.ts +124 -0
  87. package/lib/Types/Chat.js +8 -0
  88. package/lib/Types/Contact.d.ts +26 -0
  89. package/lib/Types/Contact.js +2 -0
  90. package/lib/Types/Events.d.ts +256 -0
  91. package/lib/Types/Events.js +2 -0
  92. package/lib/Types/GroupMetadata.d.ts +71 -0
  93. package/lib/Types/GroupMetadata.js +2 -0
  94. package/lib/Types/Label.d.ts +2 -0
  95. package/lib/Types/Label.js +25 -0
  96. package/lib/Types/LabelAssociation.d.ts +2 -0
  97. package/lib/Types/LabelAssociation.js +7 -0
  98. package/lib/Types/Message.d.ts +11 -0
  99. package/lib/Types/Message.js +18 -0
  100. package/lib/Types/Mex.d.ts +2 -0
  101. package/lib/Types/Mex.js +39 -0
  102. package/lib/Types/Product.d.ts +79 -0
  103. package/lib/Types/Product.js +2 -0
  104. package/lib/Types/RichType.d.ts +2 -0
  105. package/lib/Types/RichType.js +23 -0
  106. package/lib/Types/Signal.d.ts +87 -0
  107. package/lib/Types/Signal.js +2 -0
  108. package/lib/Types/Socket.d.ts +136 -0
  109. package/lib/Types/Socket.js +2 -0
  110. package/lib/Types/State.d.ts +5 -0
  111. package/lib/Types/State.js +56 -0
  112. package/lib/Types/USync.d.ts +26 -0
  113. package/lib/Types/USync.js +2 -0
  114. package/lib/Types/index.d.ts +66 -0
  115. package/lib/Types/index.js +26 -0
  116. package/lib/Utils/A2UI.js +277 -0
  117. package/lib/Utils/MessageBuilder.js +4405 -0
  118. package/lib/Utils/MessageBuilder_d.ts +411 -0
  119. package/lib/Utils/PersistentStore.js +592 -0
  120. package/lib/Utils/PersistentStore_d.ts +60 -0
  121. package/lib/Utils/anti-delete.d.ts +74 -0
  122. package/lib/Utils/anti-delete.js +222 -0
  123. package/lib/Utils/auth-utils.d.ts +57 -0
  124. package/lib/Utils/auth-utils.js +307 -0
  125. package/lib/Utils/auto-reply.d.ts +47 -0
  126. package/lib/Utils/auto-reply.js +158 -0
  127. package/lib/Utils/baileys-event-stream.d.ts +8 -0
  128. package/lib/Utils/baileys-event-stream.js +62 -0
  129. package/lib/Utils/browser-utils.d.ts +8 -0
  130. package/lib/Utils/browser-utils.js +28 -0
  131. package/lib/Utils/business.d.ts +49 -0
  132. package/lib/Utils/business.js +240 -0
  133. package/lib/Utils/button-helper-utils.js +314 -0
  134. package/lib/Utils/button-sender.js +824 -0
  135. package/lib/Utils/chat-control.d.ts +159 -0
  136. package/lib/Utils/chat-control.js +232 -0
  137. package/lib/Utils/chat-history-helpers.d.ts +21 -0
  138. package/lib/Utils/chat-history-helpers.js +71 -0
  139. package/lib/Utils/chat-utils.d.ts +407 -0
  140. package/lib/Utils/chat-utils.js +886 -0
  141. package/lib/Utils/companion-reg-client-utils.d.ts +4 -0
  142. package/lib/Utils/companion-reg-client-utils.js +40 -0
  143. package/lib/Utils/crypto.d.ts +41 -0
  144. package/lib/Utils/crypto.js +148 -0
  145. package/lib/Utils/decode-wa-message.d.ts +83 -0
  146. package/lib/Utils/decode-wa-message.js +317 -0
  147. package/lib/Utils/event-buffer.d.ts +12 -0
  148. package/lib/Utils/event-buffer.js +636 -0
  149. package/lib/Utils/generics.d.ts +69 -0
  150. package/lib/Utils/generics.js +439 -0
  151. package/lib/Utils/history.d.ts +90 -0
  152. package/lib/Utils/history.js +147 -0
  153. package/lib/Utils/identity-change-handler.d.ts +13 -0
  154. package/lib/Utils/identity-change-handler.js +50 -0
  155. package/lib/Utils/index.d.ts +39 -0
  156. package/lib/Utils/index.js +46 -0
  157. package/lib/Utils/link-preview.d.ts +12 -0
  158. package/lib/Utils/link-preview.js +85 -0
  159. package/lib/Utils/logger.d.ts +2 -0
  160. package/lib/Utils/logger.js +3 -0
  161. package/lib/Utils/lt-hash.d.ts +12 -0
  162. package/lib/Utils/lt-hash.js +27 -0
  163. package/lib/Utils/make-mutex.d.ts +6 -0
  164. package/lib/Utils/make-mutex.js +33 -0
  165. package/lib/Utils/media-messages.d.ts +18 -0
  166. package/lib/Utils/media-messages.js +71 -0
  167. package/lib/Utils/media-set.d.ts +13 -0
  168. package/lib/Utils/media-set.js +172 -0
  169. package/lib/Utils/message-kind.js +139 -0
  170. package/lib/Utils/message-retry-manager.d.ts +79 -0
  171. package/lib/Utils/message-retry-manager.js +265 -0
  172. package/lib/Utils/message-search.d.ts +44 -0
  173. package/lib/Utils/message-search.js +189 -0
  174. package/lib/Utils/messages-media.d.ts +135 -0
  175. package/lib/Utils/messages-media.js +869 -0
  176. package/lib/Utils/messages.d.ts +44 -0
  177. package/lib/Utils/messages.js +2155 -0
  178. package/lib/Utils/noise-handler.d.ts +20 -0
  179. package/lib/Utils/noise-handler.js +201 -0
  180. package/lib/Utils/offline-node-processor.d.ts +9 -0
  181. package/lib/Utils/offline-node-processor.js +40 -0
  182. package/lib/Utils/past-participants.d.ts +14 -0
  183. package/lib/Utils/past-participants.js +40 -0
  184. package/lib/Utils/pre-key-manager.d.ts +25 -0
  185. package/lib/Utils/pre-key-manager.js +106 -0
  186. package/lib/Utils/process-message.d.ts +82 -0
  187. package/lib/Utils/process-message.js +809 -0
  188. package/lib/Utils/reporting-utils.d.ts +12 -0
  189. package/lib/Utils/reporting-utils.js +258 -0
  190. package/lib/Utils/rich-message-utils.d.ts +48 -0
  191. package/lib/Utils/rich-message-utils.js +445 -0
  192. package/lib/Utils/scheduling.d.ts +42 -0
  193. package/lib/Utils/scheduling.js +140 -0
  194. package/lib/Utils/signal.d.ts +82 -0
  195. package/lib/Utils/signal.js +201 -0
  196. package/lib/Utils/stanza-ack.d.ts +16 -0
  197. package/lib/Utils/stanza-ack.js +38 -0
  198. package/lib/Utils/status.d.ts +50 -0
  199. package/lib/Utils/status.js +108 -0
  200. package/lib/Utils/stickerpack.d.ts +51 -0
  201. package/lib/Utils/stickerpack.js +275 -0
  202. package/lib/Utils/sync-action-utils.d.ts +2 -0
  203. package/lib/Utils/sync-action-utils.js +49 -0
  204. package/lib/Utils/tc-token-utils.d.ts +29 -0
  205. package/lib/Utils/tc-token-utils.js +163 -0
  206. package/lib/Utils/templates.d.ts +76 -0
  207. package/lib/Utils/templates.js +151 -0
  208. package/lib/Utils/use-cache-manager-auth-state.d.ts +13 -0
  209. package/lib/Utils/use-cache-manager-auth-state.js +82 -0
  210. package/lib/Utils/use-multi-file-auth-state.d.ts +10 -0
  211. package/lib/Utils/use-multi-file-auth-state.js +167 -0
  212. package/lib/Utils/use-single-file-auth-state.d.ts +10 -0
  213. package/lib/Utils/use-single-file-auth-state.js +114 -0
  214. package/lib/Utils/use-sqlite-auth-state.d.ts +11 -0
  215. package/lib/Utils/use-sqlite-auth-state.js +170 -0
  216. package/lib/Utils/validate-connection.d.ts +42 -0
  217. package/lib/Utils/validate-connection.js +199 -0
  218. package/lib/Utils/vcard.d.ts +58 -0
  219. package/lib/Utils/vcard.js +105 -0
  220. package/lib/VoIP/audio-feeder.d.ts +15 -0
  221. package/lib/VoIP/audio-feeder.js +132 -0
  222. package/lib/VoIP/index.js +277 -0
  223. package/lib/VoIP/relay-transport.d.ts +43 -0
  224. package/lib/VoIP/relay-transport.js +559 -0
  225. package/lib/VoIP/signaling.js +624 -0
  226. package/lib/VoIP/types.d.ts +69 -0
  227. package/lib/VoIP/types.js +17 -0
  228. package/lib/VoIP/wasm-engine.d.ts +103 -0
  229. package/lib/VoIP/wasm-engine.js +1214 -0
  230. package/lib/VoIP/worker-bootstrap.js +1042 -0
  231. package/lib/WABinary/constants.d.ts +61 -0
  232. package/lib/WABinary/constants.js +1467 -0
  233. package/lib/WABinary/decode.d.ts +9 -0
  234. package/lib/WABinary/decode.js +262 -0
  235. package/lib/WABinary/encode.d.ts +2 -0
  236. package/lib/WABinary/encode.js +220 -0
  237. package/lib/WABinary/generic-utils.d.ts +74 -0
  238. package/lib/WABinary/generic-utils.js +277 -0
  239. package/lib/WABinary/index.d.ts +5 -0
  240. package/lib/WABinary/index.js +6 -0
  241. package/lib/WABinary/jid-utils.d.ts +28 -0
  242. package/lib/WABinary/jid-utils.js +96 -0
  243. package/lib/WABinary/types.d.ts +19 -0
  244. package/lib/WABinary/types.js +2 -0
  245. package/lib/WAM/BinaryInfo.d.ts +7 -0
  246. package/lib/WAM/BinaryInfo.js +10 -0
  247. package/lib/WAM/constants.d.ts +34926 -0
  248. package/lib/WAM/constants.js +22853 -0
  249. package/lib/WAM/encode.d.ts +1 -0
  250. package/lib/WAM/encode.js +150 -0
  251. package/lib/WAM/index.d.ts +3 -0
  252. package/lib/WAM/index.js +4 -0
  253. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +36 -0
  254. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  255. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +29 -0
  256. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +63 -0
  257. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  258. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  259. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  260. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  261. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +9 -0
  262. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  263. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +38 -0
  264. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  265. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +14 -0
  266. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  267. package/lib/WAUSync/Protocols/index.d.ts +7 -0
  268. package/lib/WAUSync/Protocols/index.js +8 -0
  269. package/lib/WAUSync/USyncQuery.d.ts +20 -0
  270. package/lib/WAUSync/USyncQuery.js +122 -0
  271. package/lib/WAUSync/USyncUser.d.ts +16 -0
  272. package/lib/WAUSync/USyncUser.js +31 -0
  273. package/lib/WAUSync/index.d.ts +3 -0
  274. package/lib/WAUSync/index.js +4 -0
  275. package/lib/assets/wasm/loader.js +5 -0
  276. package/lib/assets/wasm/whatsapp.wasm +0 -0
  277. package/lib/assets/wasm/worker-modules.js +273 -0
  278. package/lib/index.d.ts +12 -0
  279. package/lib/index.js +20 -0
  280. package/package.json +175 -0
  281. package/postinstall-banner.js +56 -0
@@ -0,0 +1,189 @@
1
+ // Vanz@Add --- ported from Bail-master addons/message-search.ts (type-only
2
+ // annotations dropped; behavior unchanged).
3
+ // Vanz@Fix (bug 58): peel off ephemeral / view-once wrappers so search still
4
+ // indexes text from disappearing-message chats instead of always seeing '{}'.
5
+ const unwrapMessage = (content) => {
6
+ let c = content;
7
+ while (c && (c.ephemeralMessage || c.viewOnceMessage || c.viewOnceMessageV2 || c.viewOnceMessageV2Extension || c.documentWithCaptionMessage)) {
8
+ c = c.ephemeralMessage?.message ||
9
+ c.viewOnceMessage?.message ||
10
+ c.viewOnceMessageV2?.message ||
11
+ c.viewOnceMessageV2Extension?.message ||
12
+ c.documentWithCaptionMessage?.message;
13
+ }
14
+ return c;
15
+ };
16
+ export const extractMessageText = (message) => {
17
+ const c = unwrapMessage(message.message);
18
+ if (!c)
19
+ return '';
20
+ if (c.conversation)
21
+ return c.conversation;
22
+ if (c.extendedTextMessage?.text)
23
+ return c.extendedTextMessage.text;
24
+ if (c.imageMessage?.caption)
25
+ return c.imageMessage.caption;
26
+ if (c.videoMessage?.caption)
27
+ return c.videoMessage.caption;
28
+ if (c.documentMessage?.caption)
29
+ return c.documentMessage.caption;
30
+ if (c.documentMessage?.fileName)
31
+ return c.documentMessage.fileName;
32
+ if (c.locationMessage?.name)
33
+ return c.locationMessage.name;
34
+ if (c.locationMessage?.address)
35
+ return c.locationMessage.address;
36
+ if (c.contactMessage?.displayName)
37
+ return c.contactMessage.displayName;
38
+ if (c.pollCreationMessage?.name)
39
+ return c.pollCreationMessage.name;
40
+ return '';
41
+ };
42
+ const getMessageType = (message) => {
43
+ const c = unwrapMessage(message.message);
44
+ if (!c)
45
+ return 'other';
46
+ if (c.conversation || c.extendedTextMessage)
47
+ return 'text';
48
+ if (c.imageMessage)
49
+ return 'image';
50
+ if (c.videoMessage)
51
+ return 'video';
52
+ if (c.documentMessage)
53
+ return 'document';
54
+ if (c.audioMessage)
55
+ return 'audio';
56
+ if (c.stickerMessage)
57
+ return 'sticker';
58
+ if (c.locationMessage || c.liveLocationMessage)
59
+ return 'location';
60
+ if (c.contactMessage || c.contactsArrayMessage)
61
+ return 'contact';
62
+ return 'other';
63
+ };
64
+ export const calculateRelevance = (query, text, position) => {
65
+ let score = 100;
66
+ if (text.toLowerCase() === query.toLowerCase())
67
+ score += 50;
68
+ score -= Math.min(position / 10, 20);
69
+ const lt = text.toLowerCase(), lq = query.toLowerCase();
70
+ if (position === 0 ||
71
+ lt[position - 1] === ' ' ||
72
+ lt[position + lq.length] === ' ' ||
73
+ position + lq.length === text.length)
74
+ score += 20;
75
+ return Math.max(score, 0);
76
+ };
77
+ /** Plain-text substring search with relevance-sorted results. */
78
+ export const searchMessages = (messages, query, options = {}) => {
79
+ const results = [];
80
+ const sq = options.caseSensitive ? query : query.toLowerCase();
81
+ for (const message of messages) {
82
+ if (options.jid && message.key.remoteJid !== options.jid)
83
+ continue;
84
+ const ts = message.messageTimestamp;
85
+ const mt = ts ? new Date((typeof ts === 'number' ? ts : Number(ts)) * 1000) : null;
86
+ if (options.fromDate && mt && mt < options.fromDate)
87
+ continue;
88
+ if (options.toDate && mt && mt > options.toDate)
89
+ continue;
90
+ if (options.fromSender && message.key.participant !== options.fromSender)
91
+ continue;
92
+ if (options.fromMe !== undefined && message.key.fromMe !== options.fromMe)
93
+ continue;
94
+ if (options.messageTypes?.length) {
95
+ if (!options.messageTypes.includes(getMessageType(message)))
96
+ continue;
97
+ }
98
+ const text = extractMessageText(message);
99
+ if (!text)
100
+ continue;
101
+ const st = options.caseSensitive ? text : text.toLowerCase();
102
+ const pos = st.indexOf(sq);
103
+ if (pos !== -1) {
104
+ results.push({
105
+ message,
106
+ matchedText: text.substring(Math.max(0, pos - 20), Math.min(text.length, pos + query.length + 20)),
107
+ matchPosition: pos,
108
+ relevanceScore: calculateRelevance(query, text, pos)
109
+ });
110
+ }
111
+ // Vanz@Fix (bug 59): limit used to break the scan loop *before* sorting,
112
+ // so it kept the first N matches in document order and could drop
113
+ // higher-relevance matches found later. Sort first, then slice.
114
+ }
115
+ results.sort((a, b) => b.relevanceScore - a.relevanceScore);
116
+ return options.limit ? results.slice(0, options.limit) : results;
117
+ };
118
+ /** Regex-based search (e.g. for commands/patterns), unordered by relevance. */
119
+ export const searchMessagesRegex = (messages, pattern, options = {}) => {
120
+ const results = [];
121
+ for (const message of messages) {
122
+ if (options.jid && message.key.remoteJid !== options.jid)
123
+ continue;
124
+ if (options.fromSender && message.key.participant !== options.fromSender)
125
+ continue;
126
+ if (options.fromMe !== undefined && message.key.fromMe !== options.fromMe)
127
+ continue;
128
+ if (options.messageTypes?.length) {
129
+ if (!options.messageTypes.includes(getMessageType(message)))
130
+ continue;
131
+ }
132
+ const text = extractMessageText(message);
133
+ if (!text)
134
+ continue;
135
+ const match = text.match(pattern);
136
+ if (match)
137
+ results.push({ message, matchedText: match[0], matchPosition: match.index ?? 0, relevanceScore: 100 });
138
+ if (options.limit && results.length >= options.limit)
139
+ break;
140
+ }
141
+ return results;
142
+ };
143
+ /** Standalone searchable index — feed it messages independently of the main Store. */
144
+ export class MessageSearchManager {
145
+ messages = [];
146
+ messageIndex = new Map();
147
+ addMessages(messages) {
148
+ for (const msg of messages) {
149
+ const id = msg.key.id;
150
+ if (id && !this.messageIndex.has(id)) {
151
+ this.messages.push(msg);
152
+ this.messageIndex.set(id, msg);
153
+ }
154
+ }
155
+ }
156
+ removeMessages(messageIds) {
157
+ const idSet = new Set(messageIds);
158
+ this.messages = this.messages.filter((m) => !idSet.has(m.key.id || ''));
159
+ for (const id of messageIds)
160
+ this.messageIndex.delete(id);
161
+ }
162
+ clear() {
163
+ this.messages = [];
164
+ this.messageIndex.clear();
165
+ }
166
+ get count() {
167
+ return this.messages.length;
168
+ }
169
+ search(query, options) {
170
+ return searchMessages(this.messages, query, options);
171
+ }
172
+ searchRegex(pattern, options) {
173
+ return searchMessagesRegex(this.messages, pattern, options);
174
+ }
175
+ getByJid(jid) {
176
+ return this.messages.filter((m) => m.key.remoteJid === jid);
177
+ }
178
+ getBySender(sender) {
179
+ return this.messages.filter((m) => m.key.participant === sender || m.key.remoteJid === sender);
180
+ }
181
+ getByType(type) {
182
+ return this.messages.filter((m) => getMessageType(m) === type);
183
+ }
184
+ getById(id) {
185
+ return this.messageIndex.get(id);
186
+ }
187
+ }
188
+ export const createMessageSearch = () => new MessageSearchManager();
189
+ //# sourceMappingURL=message-search.js.map
@@ -0,0 +1,135 @@
1
+ /** generates all the keys required to encrypt/decrypt & sign a media message */
2
+ export function getMediaKeys(buffer: any, mediaType: any): Promise<{
3
+ iv: any;
4
+ cipherKey: any;
5
+ macKey: any;
6
+ }>;
7
+ export function getAudioDuration(buffer: any): Promise<any>;
8
+ /**
9
+ referenced from and modifying https://github.com/wppconnect-team/wa-js/blob/main/src/chat/functions/prepareAudioWaveform.ts
10
+ */
11
+ export function getAudioWaveform(buffer: any, logger: any): Promise<Uint8Array<ArrayBuffer> | undefined>;
12
+ /** generates a thumbnail for a given media, if required */
13
+ export function generateThumbnail(file: any, mediaType: any, options: any): Promise<{
14
+ thumbnail: any;
15
+ originalImageDimensions: {
16
+ width: any;
17
+ height: any;
18
+ } | undefined;
19
+ }>;
20
+ export function extensionForMediaMessage(message: any): any;
21
+ export function getImageProcessingLibrary(): Promise<any>;
22
+ export function hkdfInfoKey(type: any): string;
23
+ export function getRawMediaUploadData(media: any, mediaType: any, logger: any): Promise<{
24
+ filePath: any;
25
+ fileSha256: any;
26
+ fileLength: number;
27
+ }>;
28
+ export function extractVideoThumb(path: any, time: any, size: any): Promise<any>;
29
+ export function extractImageThumb(bufferOrFilePath: any, width?: number): Promise<{
30
+ buffer: any;
31
+ original: {
32
+ width: any;
33
+ height: any;
34
+ };
35
+ }>;
36
+ export function encodeBase64EncodedStringForUpload(b64: any): string;
37
+ export function generateProfilePicture(mediaUpload: any, dimensions: any): Promise<{
38
+ img: any;
39
+ }>;
40
+ export function mediaMessageSHA256B64(message: any): any;
41
+ export function toReadable(buffer: any): any;
42
+ export function toBuffer(stream: any): Promise<any>;
43
+ export function getStream(item: any, opts: any): Promise<{
44
+ stream: any;
45
+ type: string;
46
+ }>;
47
+ export function getHttpStream(url: any, options?: {}): Promise<any>;
48
+ export function encryptedStream(media: any, mediaType: any, { logger, saveOriginalFileIfRequired, opts }?: {}): Promise<{
49
+ mediaKey: any;
50
+ originalFilePath: any;
51
+ encFilePath: any;
52
+ mac: any;
53
+ fileEncSha256: any;
54
+ fileSha256: any;
55
+ fileLength: number;
56
+ }>;
57
+ export const DEF_MEDIA_HOST: "mmg.whatsapp.net";
58
+ export function getUrlFromDirectPath(directPath: any, host?: string): string;
59
+ export function downloadContentFromMessage({ mediaKey, directPath, url }: {
60
+ mediaKey: any;
61
+ directPath: any;
62
+ url: any;
63
+ }, type: any, opts?: {}): Promise<any>;
64
+ export function downloadEncryptedContent(downloadUrl: any, { cipherKey, iv }: {
65
+ cipherKey: any;
66
+ iv: any;
67
+ }, { startByte, endByte, options }?: {}): Promise<any>;
68
+ export function uploadWithNodeHttp({ url, filePath, headers, timeoutMs, agent }: {
69
+ url: any;
70
+ filePath: any;
71
+ headers: any;
72
+ timeoutMs: any;
73
+ agent: any;
74
+ }, redirectCount?: number): Promise<any>;
75
+ export function getWAUploadToServer({ customUploadHosts, fetchAgent, logger, options }: {
76
+ customUploadHosts: any;
77
+ fetchAgent: any;
78
+ logger: any;
79
+ options: any;
80
+ }, refreshMediaConn: any): (filePath: any, { mediaType, fileEncSha256B64, timeoutMs, newsletter }: {
81
+ mediaType: any;
82
+ fileEncSha256B64: any;
83
+ timeoutMs: any;
84
+ newsletter: any;
85
+ }) => Promise<{
86
+ mediaUrl: any;
87
+ directPath: any;
88
+ meta_hmac: any;
89
+ fbid: any;
90
+ ts: any;
91
+ thumbnailDirectPath: any;
92
+ thumbnailSha256: any;
93
+ }>;
94
+ export function encryptMediaRetryRequest(key: any, mediaKey: any, meId: any): {
95
+ tag: string;
96
+ attrs: {
97
+ id: any;
98
+ to: string;
99
+ type: string;
100
+ };
101
+ content: ({
102
+ tag: string;
103
+ attrs: {
104
+ jid?: undefined;
105
+ from_me?: undefined;
106
+ participant?: undefined;
107
+ };
108
+ content: {
109
+ tag: string;
110
+ attrs: {};
111
+ content: any;
112
+ }[];
113
+ } | {
114
+ tag: string;
115
+ attrs: {
116
+ jid: any;
117
+ from_me: string;
118
+ participant: any;
119
+ };
120
+ content?: undefined;
121
+ })[];
122
+ };
123
+ export function decodeMediaRetryNode(node: any): {
124
+ key: {
125
+ id: any;
126
+ remoteJid: any;
127
+ fromMe: boolean;
128
+ participant: any;
129
+ };
130
+ };
131
+ export function decryptMediaRetryData({ ciphertext, iv }: {
132
+ ciphertext: any;
133
+ iv: any;
134
+ }, mediaKey: any, msgId: any): any;
135
+ export function getStatusCodeForMediaRetry(code: any): number;