@fer2809fl/baileys 7.0.0 → 7.0.2

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 (273) hide show
  1. package/README.md +259 -595
  2. package/WAProto/WAProto.proto +916 -360
  3. package/WAProto/fix-imports.js +18 -22
  4. package/WAProto/index.d.ts +15471 -8638
  5. package/WAProto/index.js +80576 -45941
  6. package/lib/Defaults/index.d.ts +14 -18
  7. package/lib/Defaults/index.d.ts.map +1 -1
  8. package/lib/Defaults/index.js +110 -115
  9. package/lib/Defaults/index.js.map +1 -1
  10. package/lib/Signal/Group/group_cipher.js.map +1 -1
  11. package/lib/Signal/Group/keyhelper.d.ts.map +1 -1
  12. package/lib/Signal/Group/keyhelper.js.map +1 -1
  13. package/lib/Signal/Group/sender-chain-key.js.map +1 -1
  14. package/lib/Signal/Group/sender-key-message.js.map +1 -1
  15. package/lib/Signal/Group/sender-message-key.js.map +1 -1
  16. package/lib/Signal/libsignal.d.ts.map +1 -1
  17. package/lib/Signal/libsignal.js +17 -45
  18. package/lib/Signal/libsignal.js.map +1 -1
  19. package/lib/Signal/lid-mapping.d.ts +0 -4
  20. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  21. package/lib/Signal/lid-mapping.js +0 -6
  22. package/lib/Signal/lid-mapping.js.map +1 -1
  23. package/lib/Socket/business.d.ts +532 -280
  24. package/lib/Socket/business.d.ts.map +1 -1
  25. package/lib/Socket/business.js +401 -358
  26. package/lib/Socket/chats.d.ts +2 -22
  27. package/lib/Socket/chats.d.ts.map +1 -1
  28. package/lib/Socket/chats.js +43 -314
  29. package/lib/Socket/chats.js.map +1 -1
  30. package/lib/Socket/communities.d.ts +641 -336
  31. package/lib/Socket/communities.d.ts.map +1 -1
  32. package/lib/Socket/communities.js +3 -6
  33. package/lib/Socket/communities.js.map +1 -1
  34. package/lib/Socket/dugong.d.ts +130 -0
  35. package/lib/Socket/dugong.d.ts.map +1 -0
  36. package/lib/Socket/dugong.js +772 -0
  37. package/lib/Socket/dugong.js.map +1 -0
  38. package/lib/Socket/groups.d.ts +2 -23
  39. package/lib/Socket/groups.d.ts.map +1 -1
  40. package/lib/Socket/groups.js +8 -171
  41. package/lib/Socket/groups.js.map +1 -1
  42. package/lib/Socket/index.d.ts +631 -322
  43. package/lib/Socket/index.d.ts.map +1 -1
  44. package/lib/Socket/index.js +12 -9
  45. package/lib/Socket/index.js.map +1 -1
  46. package/lib/Socket/messages-recv.d.ts +52 -84
  47. package/lib/Socket/messages-recv.d.ts.map +1 -1
  48. package/lib/Socket/messages-recv.js +185 -686
  49. package/lib/Socket/messages-recv.js.map +1 -1
  50. package/lib/Socket/messages-send.d.ts +643 -262
  51. package/lib/Socket/messages-send.d.ts.map +1 -1
  52. package/lib/Socket/messages-send.js +1559 -1359
  53. package/lib/Socket/messages-send.js.map +1 -1
  54. package/lib/Socket/mex.d.ts +0 -1
  55. package/lib/Socket/mex.d.ts.map +1 -1
  56. package/lib/Socket/mex.js +8 -22
  57. package/lib/Socket/mex.js.map +1 -1
  58. package/lib/Socket/native-buttons.js +231 -0
  59. package/lib/Socket/newsletter.d.ts +27 -42
  60. package/lib/Socket/newsletter.d.ts.map +1 -1
  61. package/lib/Socket/newsletter.js +439 -402
  62. package/lib/Socket/newsletter.js.map +1 -1
  63. package/lib/Socket/socket.d.ts +2 -6
  64. package/lib/Socket/socket.d.ts.map +1 -1
  65. package/lib/Socket/socket.js +26 -62
  66. package/lib/Socket/socket.js.map +1 -1
  67. package/lib/Types/Auth.d.ts +0 -1
  68. package/lib/Types/Auth.d.ts.map +1 -1
  69. package/lib/Types/Bussines.d.ts +34 -22
  70. package/lib/Types/Call.d.ts +1 -1
  71. package/lib/Types/Call.d.ts.map +1 -1
  72. package/lib/Types/Chat.d.ts +0 -1
  73. package/lib/Types/Chat.d.ts.map +1 -1
  74. package/lib/Types/Contact.d.ts +0 -2
  75. package/lib/Types/Contact.d.ts.map +1 -1
  76. package/lib/Types/Events.d.ts +1 -20
  77. package/lib/Types/Events.d.ts.map +1 -1
  78. package/lib/Types/GroupMetadata.d.ts +1 -4
  79. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  80. package/lib/Types/Message.d.ts +348 -354
  81. package/lib/Types/Message.d.ts.map +1 -1
  82. package/lib/Types/Message.js +0 -4
  83. package/lib/Types/Message.js.map +1 -1
  84. package/lib/Types/{Mex.d.ts → Newsletter.d.ts} +7 -26
  85. package/lib/Types/Newsletter.d.ts.map +1 -0
  86. package/lib/Types/{Mex.js → Newsletter.js} +3 -11
  87. package/lib/Types/Newsletter.js.map +1 -0
  88. package/lib/Types/Signal.d.ts +1 -12
  89. package/lib/Types/Signal.d.ts.map +1 -1
  90. package/lib/Types/Socket.d.ts +148 -135
  91. package/lib/Types/Socket.d.ts.map +1 -1
  92. package/lib/Types/Socket.js.map +1 -1
  93. package/lib/Types/State.d.ts +0 -65
  94. package/lib/Types/State.d.ts.map +1 -1
  95. package/lib/Types/State.js +0 -43
  96. package/lib/Types/State.js.map +1 -1
  97. package/lib/Types/index.d.ts +52 -52
  98. package/lib/Types/index.d.ts.map +1 -1
  99. package/lib/Types/index.js +30 -23
  100. package/lib/Types/index.js.map +1 -1
  101. package/lib/Utils/auth-utils.d.ts +0 -5
  102. package/lib/Utils/auth-utils.d.ts.map +1 -1
  103. package/lib/Utils/auth-utils.js +0 -12
  104. package/lib/Utils/auth-utils.js.map +1 -1
  105. package/lib/Utils/browser-utils.d.ts.map +1 -1
  106. package/lib/Utils/browser-utils.js +0 -1
  107. package/lib/Utils/browser-utils.js.map +1 -1
  108. package/lib/Utils/chat-utils.d.ts +4 -34
  109. package/lib/Utils/chat-utils.d.ts.map +1 -1
  110. package/lib/Utils/chat-utils.js +20 -80
  111. package/lib/Utils/chat-utils.js.map +1 -1
  112. package/lib/Utils/crypto.d.ts +12 -12
  113. package/lib/Utils/crypto.d.ts.map +1 -1
  114. package/lib/Utils/crypto.js.map +1 -1
  115. package/lib/Utils/decode-wa-message.d.ts +0 -18
  116. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  117. package/lib/Utils/decode-wa-message.js +0 -34
  118. package/lib/Utils/decode-wa-message.js.map +1 -1
  119. package/lib/Utils/event-buffer.d.ts +0 -2
  120. package/lib/Utils/event-buffer.d.ts.map +1 -1
  121. package/lib/Utils/event-buffer.js +1 -49
  122. package/lib/Utils/event-buffer.js.map +1 -1
  123. package/lib/Utils/generics.d.ts +2 -3
  124. package/lib/Utils/generics.d.ts.map +1 -1
  125. package/lib/Utils/generics.js +1 -10
  126. package/lib/Utils/generics.js.map +1 -1
  127. package/lib/Utils/history.d.ts +0 -2
  128. package/lib/Utils/history.d.ts.map +1 -1
  129. package/lib/Utils/history.js +9 -12
  130. package/lib/Utils/history.js.map +1 -1
  131. package/lib/Utils/identity-change-handler.d.ts +0 -7
  132. package/lib/Utils/identity-change-handler.d.ts.map +1 -1
  133. package/lib/Utils/identity-change-handler.js +0 -1
  134. package/lib/Utils/identity-change-handler.js.map +1 -1
  135. package/lib/Utils/index.d.ts +23 -30
  136. package/lib/Utils/index.d.ts.map +1 -1
  137. package/lib/Utils/index.js +2 -9
  138. package/lib/Utils/index.js.map +1 -1
  139. package/lib/Utils/link-preview.js +2 -2
  140. package/lib/Utils/link-preview.js.map +1 -1
  141. package/lib/Utils/message-retry-manager.d.ts +0 -5
  142. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  143. package/lib/Utils/message-retry-manager.js +0 -40
  144. package/lib/Utils/message-retry-manager.js.map +1 -1
  145. package/lib/Utils/messages-media.d.ts +13 -45
  146. package/lib/Utils/messages-media.d.ts.map +1 -1
  147. package/lib/Utils/messages-media.js +98 -293
  148. package/lib/Utils/messages-media.js.map +1 -1
  149. package/lib/Utils/messages.d.ts +3 -16
  150. package/lib/Utils/messages.d.ts.map +1 -1
  151. package/lib/Utils/messages.js +1123 -1219
  152. package/lib/Utils/messages.js.map +1 -1
  153. package/lib/Utils/noise-handler.d.ts +1 -1
  154. package/lib/Utils/process-message.d.ts.map +1 -1
  155. package/lib/Utils/process-message.js +1 -103
  156. package/lib/Utils/process-message.js.map +1 -1
  157. package/lib/Utils/rich-messages.d.ts +277 -0
  158. package/lib/Utils/rich-messages.d.ts.map +1 -0
  159. package/lib/Utils/rich-messages.js +1144 -0
  160. package/lib/Utils/rich-messages.js.map +1 -0
  161. package/lib/Utils/signal.d.ts +0 -13
  162. package/lib/Utils/signal.d.ts.map +1 -1
  163. package/lib/Utils/signal.js +0 -42
  164. package/lib/Utils/signal.js.map +1 -1
  165. package/lib/Utils/sticker-pack.d.ts +10 -0
  166. package/lib/Utils/sticker-pack.js +111 -0
  167. package/lib/Utils/sync-action-utils.d.ts.map +1 -1
  168. package/lib/Utils/sync-action-utils.js +0 -1
  169. package/lib/Utils/sync-action-utils.js.map +1 -1
  170. package/lib/Utils/tc-token-utils.d.ts +1 -26
  171. package/lib/Utils/tc-token-utils.d.ts.map +1 -1
  172. package/lib/Utils/tc-token-utils.js +5 -151
  173. package/lib/Utils/tc-token-utils.js.map +1 -1
  174. package/lib/Utils/validate-connection.d.ts +0 -1
  175. package/lib/Utils/validate-connection.d.ts.map +1 -1
  176. package/lib/Utils/validate-connection.js +3 -13
  177. package/lib/Utils/validate-connection.js.map +1 -1
  178. package/lib/WABinary/decode.d.ts +1 -1
  179. package/lib/WABinary/decode.d.ts.map +1 -1
  180. package/lib/WABinary/generic-utils.d.ts +3 -1
  181. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  182. package/lib/WABinary/generic-utils.js +78 -0
  183. package/lib/WABinary/generic-utils.js.map +1 -1
  184. package/lib/WABinary/jid-utils.d.ts +0 -11
  185. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  186. package/lib/WABinary/jid-utils.js +0 -33
  187. package/lib/WABinary/jid-utils.js.map +1 -1
  188. package/lib/WAM/encode.d.ts +1 -1
  189. package/lib/WAM/encode.d.ts.map +1 -1
  190. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  191. package/lib/WAUSync/Protocols/USyncContactProtocol.js +3 -26
  192. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  193. package/lib/WAUSync/Protocols/index.d.ts +0 -1
  194. package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
  195. package/lib/WAUSync/Protocols/index.js +0 -1
  196. package/lib/WAUSync/Protocols/index.js.map +1 -1
  197. package/lib/WAUSync/USyncQuery.d.ts +0 -1
  198. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  199. package/lib/WAUSync/USyncQuery.js +2 -6
  200. package/lib/WAUSync/USyncQuery.js.map +1 -1
  201. package/lib/WAUSync/USyncUser.d.ts +0 -4
  202. package/lib/WAUSync/USyncUser.d.ts.map +1 -1
  203. package/lib/WAUSync/USyncUser.js +0 -8
  204. package/lib/WAUSync/USyncUser.js.map +1 -1
  205. package/lib/index.d.ts +1 -1
  206. package/lib/index.d.ts.map +1 -1
  207. package/lib/index.js +1 -4
  208. package/lib/index.js.map +1 -1
  209. package/package.json +30 -34
  210. package/LICENSE +0 -21
  211. package/engine-requirements.js +0 -10
  212. package/lib/Socket/smgss.d.ts +0 -119
  213. package/lib/Socket/smgss.d.ts.map +0 -1
  214. package/lib/Socket/smgss.js +0 -453
  215. package/lib/Socket/smgss.js.map +0 -1
  216. package/lib/Store/index.d.ts +0 -4
  217. package/lib/Store/index.d.ts.map +0 -1
  218. package/lib/Store/index.js +0 -4
  219. package/lib/Store/index.js.map +0 -1
  220. package/lib/Store/make-in-memory-store.d.ts +0 -132
  221. package/lib/Store/make-in-memory-store.d.ts.map +0 -1
  222. package/lib/Store/make-in-memory-store.js +0 -450
  223. package/lib/Store/make-in-memory-store.js.map +0 -1
  224. package/lib/Store/make-ordered-dictionary.d.ts +0 -14
  225. package/lib/Store/make-ordered-dictionary.d.ts.map +0 -1
  226. package/lib/Store/make-ordered-dictionary.js +0 -80
  227. package/lib/Store/make-ordered-dictionary.js.map +0 -1
  228. package/lib/Store/object-repository.d.ts +0 -13
  229. package/lib/Store/object-repository.d.ts.map +0 -1
  230. package/lib/Store/object-repository.js +0 -24
  231. package/lib/Store/object-repository.js.map +0 -1
  232. package/lib/Types/Mex.d.ts.map +0 -1
  233. package/lib/Types/Mex.js.map +0 -1
  234. package/lib/Utils/button-handler.d.ts +0 -28
  235. package/lib/Utils/button-handler.d.ts.map +0 -1
  236. package/lib/Utils/button-handler.js +0 -140
  237. package/lib/Utils/button-handler.js.map +0 -1
  238. package/lib/Utils/companion-reg-client-utils.d.ts +0 -17
  239. package/lib/Utils/companion-reg-client-utils.d.ts.map +0 -1
  240. package/lib/Utils/companion-reg-client-utils.js +0 -35
  241. package/lib/Utils/companion-reg-client-utils.js.map +0 -1
  242. package/lib/Utils/interactive.d.ts +0 -60
  243. package/lib/Utils/interactive.d.ts.map +0 -1
  244. package/lib/Utils/interactive.js +0 -224
  245. package/lib/Utils/interactive.js.map +0 -1
  246. package/lib/Utils/message-composer.d.ts +0 -93
  247. package/lib/Utils/message-composer.d.ts.map +0 -1
  248. package/lib/Utils/message-composer.js +0 -311
  249. package/lib/Utils/message-composer.js.map +0 -1
  250. package/lib/Utils/messages-newsletter.d.ts +0 -74
  251. package/lib/Utils/messages-newsletter.d.ts.map +0 -1
  252. package/lib/Utils/messages-newsletter.js +0 -128
  253. package/lib/Utils/messages-newsletter.js.map +0 -1
  254. package/lib/Utils/shortcake-crypto.d.ts +0 -36
  255. package/lib/Utils/shortcake-crypto.d.ts.map +0 -1
  256. package/lib/Utils/shortcake-crypto.js +0 -71
  257. package/lib/Utils/shortcake-crypto.js.map +0 -1
  258. package/lib/Utils/shortcake.d.ts +0 -36
  259. package/lib/Utils/shortcake.d.ts.map +0 -1
  260. package/lib/Utils/shortcake.js +0 -162
  261. package/lib/Utils/shortcake.js.map +0 -1
  262. package/lib/Utils/use-single-file-auth-state.d.ts +0 -6
  263. package/lib/Utils/use-single-file-auth-state.d.ts.map +0 -1
  264. package/lib/Utils/use-single-file-auth-state.js +0 -111
  265. package/lib/Utils/use-single-file-auth-state.js.map +0 -1
  266. package/lib/Utils/use-sqlite-auth-state.d.ts +0 -14
  267. package/lib/Utils/use-sqlite-auth-state.d.ts.map +0 -1
  268. package/lib/Utils/use-sqlite-auth-state.js +0 -107
  269. package/lib/Utils/use-sqlite-auth-state.js.map +0 -1
  270. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +0 -10
  271. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +0 -1
  272. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +0 -25
  273. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +0 -1
@@ -1,132 +0,0 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import type { Chat, PresenceData } from '../Types/Chat.js';
3
- import type { Contact } from '../Types/Contact.js';
4
- import type { BaileysEventEmitter } from '../Types/Events.js';
5
- import type { GroupMetadata } from '../Types/GroupMetadata.js';
6
- import type { Label } from '../Types/Label.js';
7
- import { type LabelAssociation } from '../Types/LabelAssociation.js';
8
- import type { WAMessage, WAMessageKey } from '../Types/Message.js';
9
- import type { ILogger } from '../Utils/logger.js';
10
- import { type OrderedDictionary } from './make-ordered-dictionary.js';
11
- import { ObjectRepository } from './object-repository.js';
12
- type Comparable<T, K> = {
13
- key: (v: T) => K;
14
- compare: (a: K, b: K) => number;
15
- };
16
- type KeyedDBType<T, K> = {
17
- length: number;
18
- first: T;
19
- last: T;
20
- toJSON(): T[];
21
- insert(...values: T[]): void;
22
- upsert(...values: T[]): T[];
23
- insertIfAbsent(...values: T[]): T[];
24
- deleteById(id: string, assertPresent?: boolean): T;
25
- delete(value: T): T;
26
- slice(start?: number, end?: number): KeyedDBType<T, K>;
27
- clear(): void;
28
- get(id: string): T;
29
- all(): T[];
30
- update(id: string, update: (value: T) => void): 1 | 2;
31
- filter(predicate: (value: T, index: number) => boolean): KeyedDBType<T, K>;
32
- paginatedByValue(value: T | null, limit: number, predicate?: (value: T, index: number) => boolean, mode?: 'before' | 'after'): T[];
33
- paginated(cursor: K | null, limit: number, predicate?: (value: T, index: number) => boolean, mode?: 'before' | 'after'): T[];
34
- };
35
- export type MinimalStoreSocket = {
36
- profilePictureUrl: (jid: string, type?: 'preview' | 'image', timeoutMs?: number) => Promise<string | undefined>;
37
- groupMetadata: (jid: string) => Promise<GroupMetadata>;
38
- };
39
- export declare const waChatKey: (pin: boolean) => Comparable<Chat, string>;
40
- export declare const waMessageID: (m: WAMessage) => string;
41
- export declare const waLabelAssociationKey: Comparable<LabelAssociation, string>;
42
- export type InMemoryStoreConfig = {
43
- chatKey?: Comparable<Chat, string>;
44
- labelAssociationKey?: Comparable<LabelAssociation, string>;
45
- logger?: ILogger;
46
- socket?: MinimalStoreSocket;
47
- };
48
- export declare const makeInMemoryStore: (config?: InMemoryStoreConfig) => {
49
- chats: KeyedDBType<Chat, string>;
50
- contacts: {
51
- [jid: string]: Contact;
52
- };
53
- messages: {
54
- [jid: string]: OrderedDictionary<WAMessage>;
55
- };
56
- groupMetadata: {
57
- [jid: string]: GroupMetadata;
58
- };
59
- state: {
60
- connection: string;
61
- };
62
- presences: {
63
- [jid: string]: {
64
- [participant: string]: PresenceData;
65
- };
66
- };
67
- labels: ObjectRepository<Label>;
68
- labelAssociations: KeyedDBType<LabelAssociation, string>;
69
- bind: (ev: BaileysEventEmitter) => void;
70
- /** loads messages from the store, if not found -- uses the legacy connection */
71
- loadMessages: (jid: string, count: number, cursor: {
72
- before: WAMessageKey | undefined;
73
- } | {
74
- after: WAMessageKey | undefined;
75
- } | undefined) => Promise<WAMessage[]>;
76
- /**
77
- * Get all available labels for profile
78
- *
79
- * Keep in mind that the list is formed from predefined tags and tags
80
- * that were "caught" during their editing.
81
- */
82
- getLabels: () => ObjectRepository<Label>;
83
- /**
84
- * Get labels for chat
85
- *
86
- * @returns Label IDs
87
- **/
88
- getChatLabels: (chatId: string) => LabelAssociation[];
89
- /**
90
- * Get labels for message
91
- *
92
- * @returns Label IDs
93
- **/
94
- getMessageLabels: (messageId: string) => string[];
95
- loadMessage: (jid: string, id: string) => Promise<WAMessage | undefined>;
96
- mostRecentMessage: (jid: string) => Promise<WAMessage | undefined>;
97
- fetchImageUrl: (jid: string, sock?: MinimalStoreSocket) => Promise<string | null | undefined>;
98
- fetchGroupMetadata: (jid: string, sock?: MinimalStoreSocket) => Promise<GroupMetadata | undefined>;
99
- fetchMessageReceipts: ({ remoteJid, id }: {
100
- remoteJid: string;
101
- id: string;
102
- }) => Promise<proto.IUserReceipt[] | null | undefined>;
103
- toJSON: () => {
104
- chats: KeyedDBType<Chat, string>;
105
- contacts: {
106
- [jid: string]: Contact;
107
- };
108
- messages: {
109
- [jid: string]: OrderedDictionary<WAMessage>;
110
- };
111
- labels: ObjectRepository<Label>;
112
- labelAssociations: KeyedDBType<LabelAssociation, string>;
113
- };
114
- fromJSON: (json: {
115
- chats: Chat[];
116
- contacts: {
117
- [jid: string]: Contact;
118
- };
119
- messages: {
120
- [jid: string]: WAMessage[];
121
- };
122
- labels?: {
123
- [id: string]: Label;
124
- };
125
- labelAssociations?: LabelAssociation[];
126
- }) => void;
127
- writeToFile: (path: string) => void;
128
- readFromFile: (path: string) => void;
129
- };
130
- export type InMemoryStore = ReturnType<typeof makeInMemoryStore>;
131
- export {};
132
- //# sourceMappingURL=make-in-memory-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"make-in-memory-store.d.ts","sourceRoot":"","sources":["../../src/Store/make-in-memory-store.ts"],"names":[],"mappings":"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"}
@@ -1,450 +0,0 @@
1
- import KeyedDBImport from '@adiwajshing/keyed-db';
2
- import { existsSync, readFileSync, writeFileSync } from 'fs';
3
- import { proto } from '../../WAProto/index.js';
4
- import { DEFAULT_CONNECTION_CONFIG } from '../Defaults/index.js';
5
- import { LabelAssociationType } from '../Types/LabelAssociation.js';
6
- import { md5, toNumber, updateMessageWithReaction, updateMessageWithReceipt } from '../Utils/index.js';
7
- import { jidDecode, jidNormalizedUser } from '../WABinary/index.js';
8
- import { makeOrderedDictionary } from './make-ordered-dictionary.js';
9
- import { ObjectRepository } from './object-repository.js';
10
- const KeyedDB = (KeyedDBImport?.default ??
11
- KeyedDBImport);
12
- export const waChatKey = (pin) => ({
13
- key: c => (pin ? (c.pinned ? '1' : '0') : '') +
14
- (c.archived ? '0' : '1') +
15
- (c.conversationTimestamp ? c.conversationTimestamp.toString(16).padStart(8, '0') : '') +
16
- c.id,
17
- compare: (k1, k2) => k2.localeCompare(k1)
18
- });
19
- export const waMessageID = (m) => m.key.id || '';
20
- export const waLabelAssociationKey = {
21
- key: la => (la.type === LabelAssociationType.Chat ? la.chatId + la.labelId : la.chatId + la.messageId + la.labelId),
22
- compare: (k1, k2) => k2.localeCompare(k1)
23
- };
24
- const makeMessagesDictionary = () => makeOrderedDictionary(waMessageID);
25
- export const makeInMemoryStore = (config = {}) => {
26
- const socket = config.socket;
27
- const chatKey = config.chatKey || waChatKey(true);
28
- const labelAssociationKey = config.labelAssociationKey || waLabelAssociationKey;
29
- const logger = config.logger || DEFAULT_CONNECTION_CONFIG.logger.child({ stream: 'in-mem-store' });
30
- const chats = new KeyedDB(chatKey, c => c.id);
31
- const messages = {};
32
- const contacts = {};
33
- const groupMetadata = {};
34
- const presences = {};
35
- const state = { connection: 'close' };
36
- const labels = new ObjectRepository();
37
- const labelAssociations = new KeyedDB(labelAssociationKey, labelAssociationKey.key);
38
- const assertMessageList = (jid) => {
39
- if (!messages[jid]) {
40
- messages[jid] = makeMessagesDictionary();
41
- }
42
- return messages[jid];
43
- };
44
- const contactsUpsert = (newContacts) => {
45
- const oldContacts = new Set(Object.keys(contacts));
46
- for (const contact of newContacts) {
47
- oldContacts.delete(contact.id);
48
- contacts[contact.id] = Object.assign(contacts[contact.id] || {}, contact);
49
- }
50
- return oldContacts;
51
- };
52
- const labelsUpsert = (newLabels) => {
53
- for (const label of newLabels) {
54
- labels.upsertById(label.id, label);
55
- }
56
- };
57
- /**
58
- * binds to a BaileysEventEmitter.
59
- * It listens to all events and constructs a state that you can query accurate data from.
60
- * Eg. can use the store to fetch chats, contacts, messages etc.
61
- * @param ev typically the event emitter from the socket connection
62
- */
63
- const bind = (ev) => {
64
- ev.on('connection.update', update => {
65
- Object.assign(state, update);
66
- });
67
- ev.on('messaging-history.set', ({ chats: newChats, contacts: newContacts, messages: newMessages, isLatest, syncType }) => {
68
- if (syncType === proto.HistorySync.HistorySyncType.ON_DEMAND) {
69
- return;
70
- }
71
- if (isLatest) {
72
- chats.clear();
73
- for (const id in messages) {
74
- delete messages[id];
75
- }
76
- }
77
- const chatsAdded = chats.insertIfAbsent(...newChats).length;
78
- logger.debug({ chatsAdded }, 'synced chats');
79
- const oldContacts = contactsUpsert(newContacts);
80
- if (isLatest) {
81
- for (const jid of oldContacts) {
82
- delete contacts[jid];
83
- }
84
- }
85
- logger.debug({ deletedContacts: isLatest ? oldContacts.size : 0, newContacts }, 'synced contacts');
86
- for (const msg of newMessages) {
87
- const jid = msg.key.remoteJidAlt || msg.key.remoteJid;
88
- if (!jid) {
89
- continue;
90
- }
91
- const list = assertMessageList(jid);
92
- list.upsert(msg, 'prepend');
93
- }
94
- logger.debug({ messages: newMessages.length }, 'synced messages');
95
- });
96
- ev.on('contacts.upsert', newContacts => {
97
- contactsUpsert(newContacts);
98
- });
99
- ev.on('contacts.update', async (updates) => {
100
- for (const update of updates) {
101
- let contact;
102
- if (update.id && contacts[update.id]) {
103
- contact = contacts[update.id];
104
- }
105
- else {
106
- const contactHashes = await Promise.all(Object.keys(contacts).map(async (contactId) => {
107
- const decoded = jidDecode(contactId);
108
- const user = decoded?.user || '';
109
- return [
110
- contactId,
111
- Buffer.from(await md5(Buffer.from(user + 'WA_ADD_NOTIF', 'utf8')))
112
- .toString('base64')
113
- .slice(0, 3)
114
- ];
115
- }));
116
- const matched = contactHashes.find(([, b]) => b === update.id)?.[0];
117
- contact = matched ? contacts[matched] : undefined;
118
- }
119
- if (contact) {
120
- if (update.imgUrl === 'changed') {
121
- contact.imgUrl = socket ? await socket.profilePictureUrl(contact.id) : undefined;
122
- }
123
- else if (update.imgUrl === 'removed') {
124
- delete contact.imgUrl;
125
- }
126
- }
127
- else {
128
- logger.debug({ update }, 'got update for non-existant contact');
129
- continue;
130
- }
131
- Object.assign(contacts[contact.id], contact);
132
- }
133
- });
134
- ev.on('chats.upsert', newChats => {
135
- chats.upsert(...newChats);
136
- });
137
- ev.on('chats.update', updates => {
138
- for (let update of updates) {
139
- if (!update.id) {
140
- continue;
141
- }
142
- const result = chats.update(update.id, chat => {
143
- const incomingUnreadCount = update.unreadCount;
144
- if (incomingUnreadCount && incomingUnreadCount > 0) {
145
- update = { ...update, unreadCount: (chat.unreadCount || 0) + incomingUnreadCount };
146
- }
147
- Object.assign(chat, update);
148
- });
149
- if (!result) {
150
- logger.debug({ update }, 'got update for non-existant chat');
151
- }
152
- }
153
- });
154
- ev.on('labels.edit', label => {
155
- if (label.deleted) {
156
- return labels.deleteById(label.id);
157
- }
158
- // WhatsApp can store only up to 20 labels
159
- if (labels.count() < 20) {
160
- return labels.upsertById(label.id, label);
161
- }
162
- logger.error('Labels count exceed');
163
- });
164
- ev.on('labels.association', ({ type, association }) => {
165
- switch (type) {
166
- case 'add':
167
- labelAssociations.upsert(association);
168
- break;
169
- case 'remove':
170
- labelAssociations.delete(association);
171
- break;
172
- default:
173
- console.error(`unknown operation type [${type}]`);
174
- }
175
- });
176
- ev.on('presence.update', ({ id, presences: update }) => {
177
- presences[id] = presences[id] || {};
178
- Object.assign(presences[id], update);
179
- });
180
- ev.on('chats.delete', deletions => {
181
- for (const item of deletions) {
182
- if (chats.get(item)) {
183
- chats.deleteById(item);
184
- }
185
- }
186
- });
187
- ev.on('messages.upsert', ({ messages: newMessages, type }) => {
188
- switch (type) {
189
- case 'append':
190
- case 'notify':
191
- for (const msg of newMessages) {
192
- const rawJid = msg.key.remoteJidAlt || msg.key.remoteJid;
193
- if (!rawJid) {
194
- continue;
195
- }
196
- const jid = jidNormalizedUser(rawJid);
197
- const list = assertMessageList(jid);
198
- list.upsert(msg, 'append');
199
- if (type === 'notify' && !chats.get(jid)) {
200
- ev.emit('chats.upsert', [
201
- {
202
- id: jid,
203
- conversationTimestamp: toNumber(msg.messageTimestamp),
204
- unreadCount: 1
205
- }
206
- ]);
207
- }
208
- }
209
- break;
210
- }
211
- });
212
- ev.on('messages.update', updates => {
213
- for (const { update, key } of updates) {
214
- if (!key.remoteJid) {
215
- continue;
216
- }
217
- const list = assertMessageList(jidNormalizedUser(key.remoteJid));
218
- if (update?.status !== undefined && key.id) {
219
- const listStatus = list.get(key.id)?.status;
220
- if (listStatus && update.status && update.status <= listStatus) {
221
- logger.debug({ update, storedStatus: listStatus }, 'status stored newer then update');
222
- delete update.status;
223
- logger.debug({ update }, 'new update object');
224
- }
225
- }
226
- const result = key.id ? list.updateAssign(key.id, update) : false;
227
- if (!result) {
228
- logger.debug({ update }, 'got update for non-existent message');
229
- }
230
- }
231
- });
232
- ev.on('messages.delete', item => {
233
- if ('all' in item) {
234
- const list = messages[item.jid];
235
- list?.clear();
236
- }
237
- else {
238
- const firstKey = item.keys[0];
239
- const jid = firstKey?.remoteJidAlt || firstKey?.remoteJid;
240
- const list = jid ? messages[jid] : undefined;
241
- if (list) {
242
- const idSet = new Set(item.keys.map(k => k.id));
243
- list.filter(m => !idSet.has(m.key.id));
244
- }
245
- }
246
- });
247
- ev.on('groups.update', updates => {
248
- for (const update of updates) {
249
- const id = update.id;
250
- if (!id) {
251
- continue;
252
- }
253
- if (groupMetadata[id]) {
254
- Object.assign(groupMetadata[id], update);
255
- }
256
- else {
257
- logger.debug({ update }, 'got update for non-existant group metadata');
258
- }
259
- }
260
- });
261
- ev.on('group-participants.update', ({ id, participants, action }) => {
262
- const metadata = groupMetadata[id];
263
- if (metadata) {
264
- switch (action) {
265
- case 'add':
266
- metadata.participants.push(...participants.map(participant => ({
267
- id: participant.id,
268
- phoneNumber: participant.phoneNumber,
269
- admin: participant.admin
270
- })));
271
- break;
272
- case 'demote':
273
- case 'promote':
274
- for (const participant of metadata.participants) {
275
- for (const participantData of participants) {
276
- if (participantData.id === participant.id || participantData.phoneNumber === participant.phoneNumber) {
277
- participant.admin = action === 'promote' ? 'admin' : null;
278
- }
279
- }
280
- }
281
- break;
282
- case 'remove': {
283
- const removeSet = new Set();
284
- for (const p of participants) {
285
- if (p.id) {
286
- removeSet.add(p.id);
287
- }
288
- if (p.phoneNumber) {
289
- removeSet.add(p.phoneNumber);
290
- }
291
- }
292
- metadata.participants = metadata.participants.reduce((acc, p) => {
293
- if (!removeSet.has(p.id) && !(p.phoneNumber && removeSet.has(p.phoneNumber))) {
294
- acc.push(p);
295
- }
296
- return acc;
297
- }, []);
298
- break;
299
- }
300
- }
301
- }
302
- });
303
- ev.on('message-receipt.update', updates => {
304
- for (const { key, receipt } of updates) {
305
- const jid = key.remoteJidAlt || key.remoteJid;
306
- const obj = jid ? messages[jid] : undefined;
307
- const msg = key.id ? obj?.get(key.id) : undefined;
308
- if (msg) {
309
- updateMessageWithReceipt(msg, receipt);
310
- }
311
- }
312
- });
313
- ev.on('messages.reaction', reactions => {
314
- for (const { key, reaction } of reactions) {
315
- const jid = key.remoteJidAlt || key.remoteJid;
316
- const obj = jid ? messages[jid] : undefined;
317
- const msg = key.id ? obj?.get(key.id) : undefined;
318
- if (msg) {
319
- updateMessageWithReaction(msg, reaction);
320
- }
321
- }
322
- });
323
- };
324
- const toJSON = () => ({
325
- chats,
326
- contacts,
327
- messages,
328
- labels,
329
- labelAssociations
330
- });
331
- const fromJSON = (json) => {
332
- chats.upsert(...json.chats);
333
- labelAssociations.upsert(...(json.labelAssociations || []));
334
- contactsUpsert(Object.values(json.contacts));
335
- labelsUpsert(Object.values(json.labels || {}));
336
- for (const jid in json.messages) {
337
- const list = assertMessageList(jid);
338
- for (const msg of json.messages[jid]) {
339
- list.upsert(proto.WebMessageInfo.fromObject(msg), 'append');
340
- }
341
- }
342
- };
343
- return {
344
- chats,
345
- contacts,
346
- messages,
347
- groupMetadata,
348
- state,
349
- presences,
350
- labels,
351
- labelAssociations,
352
- bind,
353
- /** loads messages from the store, if not found -- uses the legacy connection */
354
- loadMessages: async (jid, count, cursor) => {
355
- const list = assertMessageList(jid);
356
- const mode = !cursor || 'before' in cursor ? 'before' : 'after';
357
- const cursorKey = cursor ? ('before' in cursor ? cursor.before : cursor.after) : undefined;
358
- const cursorValue = cursorKey?.id ? list.get(cursorKey.id) : undefined;
359
- let messages;
360
- if (list && mode === 'before' && (!cursorKey || cursorValue)) {
361
- if (cursorValue) {
362
- const msgIdx = list.array.findIndex(m => m.key.id === cursorKey?.id);
363
- messages = list.array.slice(0, msgIdx);
364
- }
365
- else {
366
- messages = list.array;
367
- }
368
- const diff = count - messages.length;
369
- if (diff < 0) {
370
- messages = messages.slice(-count); // get the last X messages
371
- }
372
- }
373
- else {
374
- messages = [];
375
- }
376
- return messages;
377
- },
378
- /**
379
- * Get all available labels for profile
380
- *
381
- * Keep in mind that the list is formed from predefined tags and tags
382
- * that were "caught" during their editing.
383
- */
384
- getLabels: () => {
385
- return labels;
386
- },
387
- /**
388
- * Get labels for chat
389
- *
390
- * @returns Label IDs
391
- **/
392
- getChatLabels: (chatId) => {
393
- return labelAssociations.filter(la => la.chatId === chatId).all();
394
- },
395
- /**
396
- * Get labels for message
397
- *
398
- * @returns Label IDs
399
- **/
400
- getMessageLabels: (messageId) => {
401
- const associations = labelAssociations
402
- .filter(la => la.type === LabelAssociationType.Message && la.messageId === messageId)
403
- .all();
404
- return associations.map(({ labelId }) => labelId);
405
- },
406
- loadMessage: async (jid, id) => messages[jid]?.get(id),
407
- mostRecentMessage: async (jid) => {
408
- const message = messages[jid]?.array.slice(-1)[0];
409
- return message;
410
- },
411
- fetchImageUrl: async (jid, sock) => {
412
- const contact = contacts[jid];
413
- if (!contact) {
414
- return sock?.profilePictureUrl(jid);
415
- }
416
- if (typeof contact.imgUrl === 'undefined') {
417
- contact.imgUrl = await sock?.profilePictureUrl(jid);
418
- }
419
- return contact.imgUrl;
420
- },
421
- fetchGroupMetadata: async (jid, sock) => {
422
- if (!groupMetadata[jid]) {
423
- const metadata = await sock?.groupMetadata(jid);
424
- if (metadata) {
425
- groupMetadata[jid] = metadata;
426
- }
427
- }
428
- return groupMetadata[jid];
429
- },
430
- fetchMessageReceipts: async ({ remoteJid, id }) => {
431
- const list = messages[remoteJid];
432
- const msg = list?.get(id);
433
- return msg?.userReceipt;
434
- },
435
- toJSON,
436
- fromJSON,
437
- writeToFile: (path) => {
438
- writeFileSync(path, JSON.stringify(toJSON()));
439
- },
440
- readFromFile: (path) => {
441
- if (existsSync(path)) {
442
- logger.debug({ path }, 'reading from file');
443
- const jsonStr = readFileSync(path, { encoding: 'utf-8' });
444
- const json = JSON.parse(jsonStr);
445
- fromJSON(json);
446
- }
447
- }
448
- };
449
- };
450
- //# sourceMappingURL=make-in-memory-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"make-in-memory-store.js","sourceRoot":"","sources":["../../src/Store/make-in-memory-store.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export type OrderedDictionary<T> = {
2
- array: T[];
3
- get: (id: string) => T | undefined;
4
- upsert: (item: T, mode: 'append' | 'prepend') => void;
5
- update: (item: T) => boolean;
6
- remove: (item: T) => boolean;
7
- updateAssign: (id: string, update: Partial<T>) => boolean;
8
- clear: () => void;
9
- filter: (contain: (item: T) => boolean) => void;
10
- toJSON: () => T[];
11
- fromJSON: (newItems: T[]) => void;
12
- };
13
- export declare function makeOrderedDictionary<T>(idGetter: (item: T) => string): OrderedDictionary<T>;
14
- //# sourceMappingURL=make-ordered-dictionary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"make-ordered-dictionary.d.ts","sourceRoot":"","sources":["../../src/Store/make-ordered-dictionary.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IAClC,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;IAClC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAA;IACrD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAA;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAA;IAC5B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;IACzD,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,KAAK,IAAI,CAAA;IAC/C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;CACjC,CAAA;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAoF5F"}