@neelegirl/baileys 1.5.2 → 1.5.4

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 (419) hide show
  1. package/README.md +26 -18
  2. package/WAProto/GenerateStatics.sh +3 -0
  3. package/WAProto/WAProto.proto +291 -665
  4. package/WAProto/fix-imports.js +29 -0
  5. package/WAProto/index.d.ts +2297 -48040
  6. package/WAProto/index.js +45500 -140101
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/index.d.ts +58 -64
  9. package/lib/Defaults/index.d.ts.map +1 -0
  10. package/lib/Defaults/index.js +74 -96
  11. package/lib/Defaults/index.js.map +1 -0
  12. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  13. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  14. package/lib/Signal/Group/ciphertext-message.js +12 -0
  15. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  16. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  17. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  18. package/lib/Signal/Group/group-session-builder.js +30 -0
  19. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  20. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  21. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  22. package/lib/Signal/Group/group_cipher.js +82 -0
  23. package/lib/Signal/Group/group_cipher.js.map +1 -0
  24. package/lib/Signal/Group/index.d.ts +12 -0
  25. package/lib/Signal/Group/index.d.ts.map +1 -0
  26. package/lib/Signal/Group/index.js +12 -0
  27. package/lib/Signal/Group/index.js.map +1 -0
  28. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  29. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  30. package/lib/Signal/Group/keyhelper.js +18 -0
  31. package/lib/Signal/Group/keyhelper.js.map +1 -0
  32. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  33. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  34. package/lib/Signal/Group/sender-chain-key.js +26 -0
  35. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  36. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  38. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  40. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  42. package/lib/Signal/Group/sender-key-message.js +66 -0
  43. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  44. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  46. package/lib/Signal/Group/sender-key-name.js +48 -0
  47. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  48. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  49. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  50. package/lib/Signal/Group/sender-key-record.js +41 -0
  51. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  52. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  53. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  54. package/lib/Signal/Group/sender-key-state.js +84 -0
  55. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  56. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  57. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  58. package/lib/Signal/{WASignalGroup/sender_message_key.js → Group/sender-message-key.js} +3 -16
  59. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  60. package/lib/Signal/libsignal.d.ts +5 -4
  61. package/lib/Signal/libsignal.d.ts.map +1 -0
  62. package/lib/Signal/libsignal.js +292 -112
  63. package/lib/Signal/libsignal.js.map +1 -0
  64. package/lib/Signal/lid-mapping.d.ts +23 -0
  65. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  66. package/lib/Signal/lid-mapping.js +171 -0
  67. package/lib/Signal/lid-mapping.js.map +1 -0
  68. package/lib/Socket/Client/index.d.ts +3 -2
  69. package/lib/Socket/Client/index.d.ts.map +1 -0
  70. package/lib/Socket/Client/index.js +3 -22
  71. package/lib/Socket/Client/index.js.map +1 -0
  72. package/lib/Socket/Client/types.d.ts +15 -15
  73. package/lib/Socket/Client/types.d.ts.map +1 -0
  74. package/lib/Socket/Client/types.js +8 -15
  75. package/lib/Socket/Client/types.js.map +1 -0
  76. package/lib/Socket/Client/websocket.d.ts +12 -12
  77. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  78. package/lib/Socket/Client/websocket.js +24 -36
  79. package/lib/Socket/Client/websocket.js.map +1 -0
  80. package/lib/Socket/business.d.ts +178 -177
  81. package/lib/Socket/business.d.ts.map +1 -0
  82. package/lib/Socket/business.js +179 -71
  83. package/lib/Socket/business.js.map +1 -0
  84. package/lib/Socket/chats.d.ts +93 -93
  85. package/lib/Socket/chats.d.ts.map +1 -0
  86. package/lib/Socket/chats.js +474 -625
  87. package/lib/Socket/chats.js.map +1 -0
  88. package/lib/Socket/communities.d.ts +83 -62
  89. package/lib/Socket/communities.d.ts.map +1 -0
  90. package/lib/Socket/communities.js +412 -414
  91. package/lib/Socket/communities.js.map +1 -0
  92. package/lib/Socket/groups.d.ts +118 -112
  93. package/lib/Socket/groups.d.ts.map +1 -0
  94. package/lib/Socket/groups.js +146 -171
  95. package/lib/Socket/groups.js.map +1 -0
  96. package/lib/Socket/index.d.ts +222 -182
  97. package/lib/Socket/index.d.ts.map +1 -0
  98. package/lib/Socket/index.js +12 -17
  99. package/lib/Socket/index.js.map +1 -0
  100. package/lib/Socket/messages-recv.d.ts +165 -169
  101. package/lib/Socket/messages-recv.d.ts.map +1 -0
  102. package/lib/Socket/messages-recv.js +1185 -1721
  103. package/lib/Socket/messages-recv.js.map +1 -0
  104. package/lib/Socket/messages-send.d.ts +161 -159
  105. package/lib/Socket/messages-send.d.ts.map +1 -0
  106. package/lib/Socket/messages-send.js +650 -991
  107. package/lib/Socket/messages-send.js.map +1 -0
  108. package/lib/Socket/mex.d.ts +1 -0
  109. package/lib/Socket/mex.d.ts.map +1 -0
  110. package/lib/Socket/mex.js +4 -9
  111. package/lib/Socket/mex.js.map +1 -0
  112. package/lib/Socket/newsletter.d.ts +139 -139
  113. package/lib/Socket/newsletter.d.ts.map +1 -0
  114. package/lib/Socket/newsletter.js +153 -258
  115. package/lib/Socket/newsletter.js.map +1 -0
  116. package/lib/Socket/socket.d.ts +42 -36
  117. package/lib/Socket/socket.d.ts.map +1 -0
  118. package/lib/Socket/socket.js +623 -507
  119. package/lib/Socket/socket.js.map +1 -0
  120. package/lib/Types/Auth.d.ts +87 -96
  121. package/lib/Types/Auth.d.ts.map +1 -0
  122. package/lib/Types/Auth.js +2 -3
  123. package/lib/Types/Auth.js.map +1 -0
  124. package/lib/Types/Bussines.d.ts +25 -0
  125. package/lib/Types/Bussines.d.ts.map +1 -0
  126. package/lib/Types/Bussines.js +2 -0
  127. package/lib/Types/Bussines.js.map +1 -0
  128. package/lib/Types/Call.d.ts +13 -13
  129. package/lib/Types/Call.d.ts.map +1 -0
  130. package/lib/Types/Call.js +2 -3
  131. package/lib/Types/Call.js.map +1 -0
  132. package/lib/Types/Chat.d.ts +79 -94
  133. package/lib/Types/Chat.d.ts.map +1 -0
  134. package/lib/Types/Chat.js +8 -9
  135. package/lib/Types/Chat.js.map +1 -0
  136. package/lib/Types/Contact.d.ts +13 -9
  137. package/lib/Types/Contact.d.ts.map +1 -0
  138. package/lib/Types/Contact.js +2 -3
  139. package/lib/Types/Contact.js.map +1 -0
  140. package/lib/Types/Events.d.ts +152 -179
  141. package/lib/Types/Events.d.ts.map +1 -0
  142. package/lib/Types/Events.js +2 -3
  143. package/lib/Types/Events.js.map +1 -0
  144. package/lib/Types/GroupMetadata.d.ts +49 -48
  145. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  146. package/lib/Types/GroupMetadata.js +2 -3
  147. package/lib/Types/GroupMetadata.js.map +1 -0
  148. package/lib/Types/Label.d.ts +13 -14
  149. package/lib/Types/Label.d.ts.map +1 -0
  150. package/lib/Types/Label.js +24 -30
  151. package/lib/Types/Label.js.map +1 -0
  152. package/lib/Types/LabelAssociation.d.ts +15 -20
  153. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  154. package/lib/Types/LabelAssociation.js +6 -12
  155. package/lib/Types/LabelAssociation.js.map +1 -0
  156. package/lib/Types/Message.d.ts +234 -404
  157. package/lib/Types/Message.d.ts.map +1 -0
  158. package/lib/Types/Message.js +11 -13
  159. package/lib/Types/Message.js.map +1 -0
  160. package/lib/Types/Newsletter.d.ts +130 -104
  161. package/lib/Types/Newsletter.d.ts.map +1 -0
  162. package/lib/Types/Newsletter.js +31 -40
  163. package/lib/Types/Newsletter.js.map +1 -0
  164. package/lib/Types/Product.d.ts +58 -71
  165. package/lib/Types/Product.d.ts.map +1 -0
  166. package/lib/Types/Product.js +2 -3
  167. package/lib/Types/Product.js.map +1 -0
  168. package/lib/Types/Signal.d.ts +63 -55
  169. package/lib/Types/Signal.d.ts.map +1 -0
  170. package/lib/Types/Signal.js +2 -3
  171. package/lib/Types/Signal.js.map +1 -0
  172. package/lib/Types/Socket.d.ts +78 -65
  173. package/lib/Types/Socket.d.ts.map +1 -0
  174. package/lib/Types/Socket.js +3 -3
  175. package/lib/Types/Socket.js.map +1 -0
  176. package/lib/Types/State.d.ts +17 -19
  177. package/lib/Types/State.d.ts.map +1 -0
  178. package/lib/Types/State.js +13 -14
  179. package/lib/Types/State.js.map +1 -0
  180. package/lib/Types/USync.d.ts +8 -8
  181. package/lib/Types/USync.d.ts.map +1 -0
  182. package/lib/Types/USync.js +2 -3
  183. package/lib/Types/USync.js.map +1 -0
  184. package/lib/Types/index.d.ts +47 -61
  185. package/lib/Types/index.d.ts.map +1 -0
  186. package/lib/Types/index.js +26 -48
  187. package/lib/Types/index.js.map +1 -0
  188. package/lib/Utils/auth-utils.d.ts +8 -10
  189. package/lib/Utils/auth-utils.d.ts.map +1 -0
  190. package/lib/Utils/auth-utils.js +206 -154
  191. package/lib/Utils/auth-utils.js.map +1 -0
  192. package/lib/Utils/baileys-event-stream.d.ts +6 -7
  193. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  194. package/lib/Utils/baileys-event-stream.js +29 -43
  195. package/lib/Utils/baileys-event-stream.js.map +1 -0
  196. package/lib/Utils/browser-utils.d.ts +4 -0
  197. package/lib/Utils/browser-utils.d.ts.map +1 -0
  198. package/lib/Utils/browser-utils.js +28 -0
  199. package/lib/Utils/browser-utils.js.map +1 -0
  200. package/lib/Utils/business.d.ts +14 -20
  201. package/lib/Utils/business.d.ts.map +1 -0
  202. package/lib/Utils/business.js +110 -134
  203. package/lib/Utils/business.js.map +1 -0
  204. package/lib/Utils/chat-utils.d.ts +57 -69
  205. package/lib/Utils/chat-utils.d.ts.map +1 -0
  206. package/lib/Utils/chat-utils.js +362 -380
  207. package/lib/Utils/chat-utils.js.map +1 -0
  208. package/lib/Utils/crypto.d.ts +30 -45
  209. package/lib/Utils/crypto.d.ts.map +1 -0
  210. package/lib/Utils/crypto.js +141 -178
  211. package/lib/Utils/crypto.js.map +1 -0
  212. package/lib/Utils/decode-wa-message.d.ts +42 -35
  213. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  214. package/lib/Utils/decode-wa-message.js +176 -150
  215. package/lib/Utils/decode-wa-message.js.map +1 -0
  216. package/lib/Utils/event-buffer.d.ts +12 -17
  217. package/lib/Utils/event-buffer.d.ts.map +1 -0
  218. package/lib/Utils/event-buffer.js +269 -286
  219. package/lib/Utils/event-buffer.js.map +1 -0
  220. package/lib/Utils/generics.d.ts +60 -99
  221. package/lib/Utils/generics.d.ts.map +1 -0
  222. package/lib/Utils/generics.js +244 -487
  223. package/lib/Utils/generics.js.map +1 -0
  224. package/lib/Utils/history.d.ts +18 -22
  225. package/lib/Utils/history.d.ts.map +1 -0
  226. package/lib/Utils/history.js +54 -80
  227. package/lib/Utils/history.js.map +1 -0
  228. package/lib/Utils/index.d.ts +20 -19
  229. package/lib/Utils/index.d.ts.map +1 -0
  230. package/lib/Utils/index.js +19 -39
  231. package/lib/Utils/index.js.map +1 -0
  232. package/lib/Utils/link-preview.d.ts +12 -14
  233. package/lib/Utils/link-preview.d.ts.map +1 -0
  234. package/lib/Utils/link-preview.js +40 -75
  235. package/lib/Utils/link-preview.js.map +1 -0
  236. package/lib/Utils/logger.d.ts +10 -11
  237. package/lib/Utils/logger.d.ts.map +1 -0
  238. package/lib/Utils/logger.js +3 -7
  239. package/lib/Utils/logger.js.map +1 -0
  240. package/lib/Utils/lt-hash.d.ts +12 -13
  241. package/lib/Utils/lt-hash.d.ts.map +1 -0
  242. package/lib/Utils/lt-hash.js +27 -37
  243. package/lib/Utils/lt-hash.js.map +1 -0
  244. package/lib/Utils/make-mutex.d.ts +6 -7
  245. package/lib/Utils/make-mutex.d.ts.map +1 -0
  246. package/lib/Utils/make-mutex.js +20 -29
  247. package/lib/Utils/make-mutex.js.map +1 -0
  248. package/lib/Utils/message-retry-manager.d.ts +82 -0
  249. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  250. package/lib/Utils/message-retry-manager.js +149 -0
  251. package/lib/Utils/message-retry-manager.js.map +1 -0
  252. package/lib/Utils/messages-media.d.ts +87 -102
  253. package/lib/Utils/messages-media.d.ts.map +1 -0
  254. package/lib/Utils/messages-media.js +427 -570
  255. package/lib/Utils/messages-media.js.map +1 -0
  256. package/lib/Utils/messages.d.ts +37 -64
  257. package/lib/Utils/messages.d.ts.map +1 -0
  258. package/lib/Utils/messages.js +511 -1270
  259. package/lib/Utils/messages.js.map +1 -0
  260. package/lib/Utils/noise-handler.d.ts +18 -18
  261. package/lib/Utils/noise-handler.d.ts.map +1 -0
  262. package/lib/Utils/noise-handler.js +101 -109
  263. package/lib/Utils/noise-handler.js.map +1 -0
  264. package/lib/Utils/pre-key-manager.d.ts +28 -0
  265. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  266. package/lib/Utils/pre-key-manager.js +106 -0
  267. package/lib/Utils/pre-key-manager.js.map +1 -0
  268. package/lib/Utils/process-message.d.ts +25 -32
  269. package/lib/Utils/process-message.d.ts.map +1 -0
  270. package/lib/Utils/process-message.js +266 -281
  271. package/lib/Utils/process-message.js.map +1 -0
  272. package/lib/Utils/signal.d.ts +24 -32
  273. package/lib/Utils/signal.d.ts.map +1 -0
  274. package/lib/Utils/signal.js +98 -105
  275. package/lib/Utils/signal.js.map +1 -0
  276. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -10
  277. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  278. package/lib/Utils/use-multi-file-auth-state.js +69 -186
  279. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  280. package/lib/Utils/validate-connection.d.ts +11 -13
  281. package/lib/Utils/validate-connection.d.ts.map +1 -0
  282. package/lib/Utils/validate-connection.js +124 -116
  283. package/lib/Utils/validate-connection.js.map +1 -0
  284. package/lib/WABinary/constants.d.ts +25 -27
  285. package/lib/WABinary/constants.d.ts.map +1 -0
  286. package/lib/WABinary/constants.js +1277 -1292
  287. package/lib/WABinary/constants.js.map +1 -0
  288. package/lib/WABinary/decode.d.ts +7 -9
  289. package/lib/WABinary/decode.d.ts.map +1 -0
  290. package/lib/WABinary/decode.js +139 -189
  291. package/lib/WABinary/decode.js.map +1 -0
  292. package/lib/WABinary/encode.d.ts +3 -3
  293. package/lib/WABinary/encode.d.ts.map +1 -0
  294. package/lib/WABinary/encode.js +105 -154
  295. package/lib/WABinary/encode.js.map +1 -0
  296. package/lib/WABinary/generic-utils.d.ts +14 -27
  297. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  298. package/lib/WABinary/generic-utils.js +62 -102
  299. package/lib/WABinary/generic-utils.js.map +1 -0
  300. package/lib/WABinary/index.d.ts +6 -5
  301. package/lib/WABinary/index.d.ts.map +1 -0
  302. package/lib/WABinary/index.js +6 -25
  303. package/lib/WABinary/index.js.map +1 -0
  304. package/lib/WABinary/jid-utils.d.ts +41 -46
  305. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  306. package/lib/WABinary/jid-utils.js +84 -80
  307. package/lib/WABinary/jid-utils.js.map +1 -0
  308. package/lib/WABinary/types.d.ts +10 -13
  309. package/lib/WABinary/types.d.ts.map +1 -0
  310. package/lib/WABinary/types.js +2 -3
  311. package/lib/WABinary/types.js.map +1 -0
  312. package/lib/WAM/BinaryInfo.d.ts +8 -15
  313. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  314. package/lib/WAM/BinaryInfo.js +7 -14
  315. package/lib/WAM/BinaryInfo.js.map +1 -0
  316. package/lib/WAM/constants.d.ts +30 -37
  317. package/lib/WAM/constants.d.ts.map +1 -0
  318. package/lib/WAM/constants.js +19193 -11711
  319. package/lib/WAM/constants.js.map +1 -0
  320. package/lib/WAM/encode.d.ts +3 -3
  321. package/lib/WAM/encode.d.ts.map +1 -0
  322. package/lib/WAM/encode.js +95 -110
  323. package/lib/WAM/encode.js.map +1 -0
  324. package/lib/WAM/index.d.ts +4 -3
  325. package/lib/WAM/index.d.ts.map +1 -0
  326. package/lib/WAM/index.js +4 -23
  327. package/lib/WAM/index.js.map +1 -0
  328. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  329. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  330. package/lib/WAUSync/Protocols/USyncContactProtocol.js +12 -19
  331. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  332. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +19 -22
  333. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  334. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +18 -26
  335. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  336. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +11 -12
  337. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  338. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -20
  339. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  340. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +11 -12
  341. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  342. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +16 -24
  343. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  344. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  345. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  346. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  347. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  348. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  349. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  350. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  351. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  352. package/lib/WAUSync/Protocols/index.d.ts +5 -6
  353. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  354. package/lib/WAUSync/Protocols/index.js +5 -26
  355. package/lib/WAUSync/Protocols/index.js.map +1 -0
  356. package/lib/WAUSync/USyncQuery.d.ts +26 -28
  357. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  358. package/lib/WAUSync/USyncQuery.js +64 -62
  359. package/lib/WAUSync/USyncQuery.js.map +1 -0
  360. package/lib/WAUSync/USyncUser.d.ts +11 -10
  361. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  362. package/lib/WAUSync/USyncUser.js +12 -19
  363. package/lib/WAUSync/USyncUser.js.map +1 -0
  364. package/lib/WAUSync/index.d.ts +4 -3
  365. package/lib/WAUSync/index.d.ts.map +1 -0
  366. package/lib/WAUSync/index.js +4 -23
  367. package/lib/WAUSync/index.js.map +1 -0
  368. package/lib/index.d.ts +10 -11
  369. package/lib/index.d.ts.map +1 -0
  370. package/lib/index.js +11 -33
  371. package/lib/index.js.map +1 -0
  372. package/package.json +48 -43
  373. package/lib/Defaults/baileys-version.json +0 -3
  374. package/lib/Defaults/phonenumber-mcc.json +0 -223
  375. package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
  376. package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
  377. package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
  378. package/lib/Signal/WASignalGroup/group.proto +0 -42
  379. package/lib/Signal/WASignalGroup/group_cipher.js +0 -120
  380. package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
  381. package/lib/Signal/WASignalGroup/index.js +0 -6
  382. package/lib/Signal/WASignalGroup/keyhelper.js +0 -21
  383. package/lib/Signal/WASignalGroup/protobufs.js +0 -3
  384. package/lib/Signal/WASignalGroup/queue_job.js +0 -69
  385. package/lib/Signal/WASignalGroup/readme.md +0 -6
  386. package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
  387. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
  388. package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
  389. package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
  390. package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
  391. package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
  392. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  393. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  394. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  395. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  396. package/lib/Socket/registration.d.ts +0 -266
  397. package/lib/Socket/registration.js +0 -166
  398. package/lib/Socket/usync.d.ts +0 -37
  399. package/lib/Socket/usync.js +0 -83
  400. package/lib/Store/index.d.ts +0 -4
  401. package/lib/Store/index.js +0 -24
  402. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  403. package/lib/Store/make-cache-manager-store.js +0 -90
  404. package/lib/Store/make-in-memory-store.d.ts +0 -123
  405. package/lib/Store/make-in-memory-store.js +0 -429
  406. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  407. package/lib/Store/make-ordered-dictionary.js +0 -86
  408. package/lib/Store/object-repository.d.ts +0 -10
  409. package/lib/Store/object-repository.js +0 -31
  410. package/lib/Types/MexUpdates.d.ts +0 -9
  411. package/lib/Types/MexUpdates.js +0 -18
  412. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  413. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  414. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  415. package/lib/Utils/use-single-file-auth-state.js +0 -80
  416. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  417. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
  418. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -9
  419. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -30
@@ -1,17 +1,8 @@
1
- "use strict"
2
-
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod }
5
- }
6
-
7
- Object.defineProperty(exports, "__esModule", { value: true })
8
-
9
- const events_1 = __importDefault(require("events"))
10
- const Types_1 = require("../Types")
11
- const generics_1 = require("./generics")
12
- const messages_1 = require("./messages")
13
- const process_message_1 = require("./process-message")
14
-
1
+ import EventEmitter from 'events';
2
+ import { WAMessageStatus } from '../Types/index.js';
3
+ import { trimUndefined } from './generics.js';
4
+ import { updateMessageWithReaction, updateMessageWithReceipt } from './messages.js';
5
+ import { isRealMessage, shouldIncrementChatUnread } from './process-message.js';
15
6
  const BUFFERABLE_EVENT = [
16
7
  'messaging-history.set',
17
8
  'chats.upsert',
@@ -22,107 +13,139 @@ const BUFFERABLE_EVENT = [
22
13
  'messages.upsert',
23
14
  'messages.update',
24
15
  'messages.delete',
25
- //'messages.poll',
26
16
  'messages.reaction',
27
17
  'message-receipt.update',
28
- 'groups.update',
29
- 'communities.update',
30
- ]
31
-
32
- const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENT)
33
-
18
+ 'groups.update'
19
+ ];
20
+ const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENT);
34
21
  /**
35
22
  * The event buffer logically consolidates different events into a single event
36
23
  * making the data processing more efficient.
37
- * @param ev the baileys event emitter
38
24
  */
39
- const makeEventBuffer = (logger) => {
40
- const ev = new events_1.default()
41
- const historyCache = new Set()
42
- let data = makeBufferData()
43
- let buffersInProgress = 0
25
+ export const makeEventBuffer = (logger) => {
26
+ const ev = new EventEmitter();
27
+ const historyCache = new Set();
28
+ let data = makeBufferData();
29
+ let isBuffering = false;
30
+ let bufferTimeout = null;
31
+ let bufferCount = 0;
32
+ const MAX_HISTORY_CACHE_SIZE = 10000; // Limit the history cache size to prevent memory bloat
33
+ const BUFFER_TIMEOUT_MS = 30000; // 30 seconds
44
34
  // take the generic event and fire it as a baileys event
45
35
  ev.on('event', (map) => {
46
36
  for (const event in map) {
47
- ev.emit(event, map[event])
37
+ ev.emit(event, map[event]);
48
38
  }
49
- })
39
+ });
50
40
  function buffer() {
51
- buffersInProgress += 1
41
+ if (!isBuffering) {
42
+ logger.debug('Event buffer activated');
43
+ isBuffering = true;
44
+ bufferCount++;
45
+ // Auto-flush after a timeout to prevent infinite buffering
46
+ if (bufferTimeout) {
47
+ clearTimeout(bufferTimeout);
48
+ }
49
+ bufferTimeout = setTimeout(() => {
50
+ if (isBuffering) {
51
+ logger.warn('Buffer timeout reached, auto-flushing');
52
+ flush();
53
+ }
54
+ }, BUFFER_TIMEOUT_MS);
55
+ }
56
+ else {
57
+ bufferCount++;
58
+ }
52
59
  }
53
- function flush(force = false) {
54
- // no buffer going on
55
- if (!buffersInProgress) {
56
- return false
60
+ function flush() {
61
+ if (!isBuffering) {
62
+ return false;
57
63
  }
58
- if (!force) {
59
- // reduce the number of buffers in progress
60
- buffersInProgress -= 1
61
- // if there are still some buffers going on
62
- // then we don't flush now
63
- if (buffersInProgress) {
64
- return false
65
- }
64
+ logger.debug({ bufferCount }, 'Flushing event buffer');
65
+ isBuffering = false;
66
+ bufferCount = 0;
67
+ // Clear timeout
68
+ if (bufferTimeout) {
69
+ clearTimeout(bufferTimeout);
70
+ bufferTimeout = null;
66
71
  }
67
- const newData = makeBufferData()
68
- const chatUpdates = Object.values(data.chatUpdates)
69
- // gather the remaining conditional events so we re-queue them
70
- let conditionalChatUpdatesLeft = 0
72
+ // Clear history cache if it exceeds the max size
73
+ if (historyCache.size > MAX_HISTORY_CACHE_SIZE) {
74
+ logger.debug({ cacheSize: historyCache.size }, 'Clearing history cache');
75
+ historyCache.clear();
76
+ }
77
+ const newData = makeBufferData();
78
+ const chatUpdates = Object.values(data.chatUpdates);
79
+ let conditionalChatUpdatesLeft = 0;
71
80
  for (const update of chatUpdates) {
72
81
  if (update.conditional) {
73
- conditionalChatUpdatesLeft += 1
74
- newData.chatUpdates[update.id] = update
75
- delete data.chatUpdates[update.id]
82
+ conditionalChatUpdatesLeft += 1;
83
+ newData.chatUpdates[update.id] = update;
84
+ delete data.chatUpdates[update.id];
76
85
  }
77
86
  }
78
- const consolidatedData = consolidateEvents(data)
87
+ const consolidatedData = consolidateEvents(data);
79
88
  if (Object.keys(consolidatedData).length) {
80
- ev.emit('event', consolidatedData)
89
+ ev.emit('event', consolidatedData);
81
90
  }
82
- data = newData
83
- logger.trace({ conditionalChatUpdatesLeft }, 'released buffered events')
84
- return true
91
+ data = newData;
92
+ logger.trace({ conditionalChatUpdatesLeft }, 'released buffered events');
93
+ return true;
85
94
  }
86
95
  return {
87
96
  process(handler) {
88
97
  const listener = (map) => {
89
- handler(map)
90
- }
91
- ev.on('event', listener)
98
+ handler(map);
99
+ };
100
+ ev.on('event', listener);
92
101
  return () => {
93
- ev.off('event', listener)
94
- }
102
+ ev.off('event', listener);
103
+ };
95
104
  },
96
105
  emit(event, evData) {
97
- if (buffersInProgress && BUFFERABLE_EVENT_SET.has(event)) {
98
- append(data, historyCache, event, evData, logger)
99
- return true
106
+ if (isBuffering && BUFFERABLE_EVENT_SET.has(event)) {
107
+ append(data, historyCache, event, evData, logger);
108
+ return true;
100
109
  }
101
- return ev.emit('event', { [event]: evData })
110
+ return ev.emit('event', { [event]: evData });
102
111
  },
103
112
  isBuffering() {
104
- return buffersInProgress > 0
113
+ return isBuffering;
105
114
  },
106
115
  buffer,
107
116
  flush,
108
117
  createBufferedFunction(work) {
109
118
  return async (...args) => {
110
- buffer()
119
+ buffer();
111
120
  try {
112
- const result = await work(...args)
113
- return result
121
+ const result = await work(...args);
122
+ // If this is the only buffer, flush after a small delay
123
+ if (bufferCount === 1) {
124
+ setTimeout(() => {
125
+ if (isBuffering && bufferCount === 1) {
126
+ flush();
127
+ }
128
+ }, 100); // Small delay to allow nested buffers
129
+ }
130
+ return result;
131
+ }
132
+ catch (error) {
133
+ throw error;
114
134
  }
115
135
  finally {
116
- flush()
136
+ bufferCount = Math.max(0, bufferCount - 1);
137
+ if (bufferCount === 0) {
138
+ // Auto-flush when no other buffers are active
139
+ setTimeout(flush, 100);
140
+ }
117
141
  }
118
- }
142
+ };
119
143
  },
120
144
  on: (...args) => ev.on(...args),
121
145
  off: (...args) => ev.off(...args),
122
- removeAllListeners: (...args) => ev.removeAllListeners(...args),
123
- }
124
- }
125
-
146
+ removeAllListeners: (...args) => ev.removeAllListeners(...args)
147
+ };
148
+ };
126
149
  const makeBufferData = () => {
127
150
  return {
128
151
  historySets: {
@@ -139,342 +162,313 @@ const makeBufferData = () => {
139
162
  contactUpdates: {},
140
163
  messageUpserts: {},
141
164
  messageUpdates: {},
142
- //messagePollings: {},
143
165
  messageReactions: {},
144
166
  messageDeletes: {},
145
167
  messageReceipts: {},
146
- groupUpdates: {},
147
- communityUpdates: {}
148
- }
149
- }
150
-
151
- function append(data, historyCache, event, eventData, logger) {
152
- var _a, _b, _c
168
+ groupUpdates: {}
169
+ };
170
+ };
171
+ function append(data, historyCache, event,
172
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
173
+ eventData, logger) {
153
174
  switch (event) {
154
175
  case 'messaging-history.set':
155
176
  for (const chat of eventData.chats) {
156
- const existingChat = data.historySets.chats[chat.id]
177
+ const id = chat.id || '';
178
+ const existingChat = data.historySets.chats[id];
157
179
  if (existingChat) {
158
- existingChat.endOfHistoryTransferType = chat.endOfHistoryTransferType
180
+ existingChat.endOfHistoryTransferType = chat.endOfHistoryTransferType;
159
181
  }
160
- if (!existingChat && !historyCache.has(chat.id)) {
161
- data.historySets.chats[chat.id] = chat
162
- historyCache.add(chat.id)
163
- absorbingChatUpdate(chat)
182
+ if (!existingChat && !historyCache.has(id)) {
183
+ data.historySets.chats[id] = chat;
184
+ historyCache.add(id);
185
+ absorbingChatUpdate(chat);
164
186
  }
165
187
  }
166
188
  for (const contact of eventData.contacts) {
167
- const existingContact = data.historySets.contacts[contact.id]
189
+ const existingContact = data.historySets.contacts[contact.id];
168
190
  if (existingContact) {
169
- Object.assign(existingContact, generics_1.trimUndefined(contact))
191
+ Object.assign(existingContact, trimUndefined(contact));
170
192
  }
171
193
  else {
172
- const historyContactId = `c:${contact.id}`
173
- const hasAnyName = contact.notify || contact.name || contact.verifiedName
194
+ const historyContactId = `c:${contact.id}`;
195
+ const hasAnyName = contact.notify || contact.name || contact.verifiedName;
174
196
  if (!historyCache.has(historyContactId) || hasAnyName) {
175
- data.historySets.contacts[contact.id] = contact
176
- historyCache.add(historyContactId)
197
+ data.historySets.contacts[contact.id] = contact;
198
+ historyCache.add(historyContactId);
177
199
  }
178
200
  }
179
201
  }
180
202
  for (const message of eventData.messages) {
181
- const key = stringifyMessageKey(message.key)
182
- const existingMsg = data.historySets.messages[key]
203
+ const key = stringifyMessageKey(message.key);
204
+ const existingMsg = data.historySets.messages[key];
183
205
  if (!existingMsg && !historyCache.has(key)) {
184
- data.historySets.messages[key] = message
185
- historyCache.add(key)
206
+ data.historySets.messages[key] = message;
207
+ historyCache.add(key);
186
208
  }
187
209
  }
188
- data.historySets.empty = false
189
- data.historySets.syncType = eventData.syncType
190
- data.historySets.progress = eventData.progress
191
- data.historySets.peerDataRequestSessionId = eventData.peerDataRequestSessionId
192
- data.historySets.isLatest = eventData.isLatest || data.historySets.isLatest
193
- break
210
+ data.historySets.empty = false;
211
+ data.historySets.syncType = eventData.syncType;
212
+ data.historySets.progress = eventData.progress;
213
+ data.historySets.peerDataRequestSessionId = eventData.peerDataRequestSessionId;
214
+ data.historySets.isLatest = eventData.isLatest || data.historySets.isLatest;
215
+ break;
194
216
  case 'chats.upsert':
195
217
  for (const chat of eventData) {
196
- let upsert = data.chatUpserts[chat.id]
197
- if (!upsert) {
198
- upsert = data.historySets[chat.id]
218
+ const id = chat.id || '';
219
+ let upsert = data.chatUpserts[id];
220
+ if (id && !upsert) {
221
+ upsert = data.historySets.chats[id];
199
222
  if (upsert) {
200
- logger.debug({ chatId: chat.id }, 'absorbed chat upsert in chat set')
223
+ logger.debug({ chatId: id }, 'absorbed chat upsert in chat set');
201
224
  }
202
225
  }
203
226
  if (upsert) {
204
- upsert = concatChats(upsert, chat)
227
+ upsert = concatChats(upsert, chat);
205
228
  }
206
229
  else {
207
- upsert = chat
208
- data.chatUpserts[chat.id] = upsert
230
+ upsert = chat;
231
+ data.chatUpserts[id] = upsert;
209
232
  }
210
- absorbingChatUpdate(upsert)
211
- if (data.chatDeletes.has(chat.id)) {
212
- data.chatDeletes.delete(chat.id)
233
+ absorbingChatUpdate(upsert);
234
+ if (data.chatDeletes.has(id)) {
235
+ data.chatDeletes.delete(id);
213
236
  }
214
237
  }
215
- break
238
+ break;
216
239
  case 'chats.update':
217
240
  for (const update of eventData) {
218
- const chatId = update.id
219
- const conditionMatches = update.conditional ? update.conditional(data) : true
241
+ const chatId = update.id;
242
+ const conditionMatches = update.conditional ? update.conditional(data) : true;
220
243
  if (conditionMatches) {
221
- delete update.conditional
244
+ delete update.conditional;
222
245
  // if there is an existing upsert, merge the update into it
223
- const upsert = data.historySets.chats[chatId] || data.chatUpserts[chatId]
246
+ const upsert = data.historySets.chats[chatId] || data.chatUpserts[chatId];
224
247
  if (upsert) {
225
- concatChats(upsert, update)
248
+ concatChats(upsert, update);
226
249
  }
227
250
  else {
228
251
  // merge the update into the existing update
229
- const chatUpdate = data.chatUpdates[chatId] || {}
230
- data.chatUpdates[chatId] = concatChats(chatUpdate, update)
252
+ const chatUpdate = data.chatUpdates[chatId] || {};
253
+ data.chatUpdates[chatId] = concatChats(chatUpdate, update);
231
254
  }
232
255
  }
233
256
  else if (conditionMatches === undefined) {
234
257
  // condition yet to be fulfilled
235
- data.chatUpdates[chatId] = update
258
+ data.chatUpdates[chatId] = update;
236
259
  }
237
260
  // otherwise -- condition not met, update is invalid
238
261
  // if the chat has been updated
239
262
  // ignore any existing chat delete
240
263
  if (data.chatDeletes.has(chatId)) {
241
- data.chatDeletes.delete(chatId)
264
+ data.chatDeletes.delete(chatId);
242
265
  }
243
266
  }
244
- break
267
+ break;
245
268
  case 'chats.delete':
246
269
  for (const chatId of eventData) {
247
270
  if (!data.chatDeletes.has(chatId)) {
248
- data.chatDeletes.add(chatId)
271
+ data.chatDeletes.add(chatId);
249
272
  }
250
273
  // remove any prior updates & upserts
251
274
  if (data.chatUpdates[chatId]) {
252
- delete data.chatUpdates[chatId]
275
+ delete data.chatUpdates[chatId];
253
276
  }
254
277
  if (data.chatUpserts[chatId]) {
255
- delete data.chatUpserts[chatId]
278
+ delete data.chatUpserts[chatId];
256
279
  }
257
280
  if (data.historySets.chats[chatId]) {
258
- delete data.historySets.chats[chatId]
281
+ delete data.historySets.chats[chatId];
259
282
  }
260
283
  }
261
- break
284
+ break;
262
285
  case 'contacts.upsert':
263
286
  for (const contact of eventData) {
264
- let upsert = data.contactUpserts[contact.id]
287
+ let upsert = data.contactUpserts[contact.id];
265
288
  if (!upsert) {
266
- upsert = data.historySets.contacts[contact.id]
289
+ upsert = data.historySets.contacts[contact.id];
267
290
  if (upsert) {
268
- logger.debug({ contactId: contact.id }, 'absorbed contact upsert in contact set')
291
+ logger.debug({ contactId: contact.id }, 'absorbed contact upsert in contact set');
269
292
  }
270
293
  }
271
294
  if (upsert) {
272
- upsert = Object.assign(upsert, generics_1.trimUndefined(contact))
295
+ upsert = Object.assign(upsert, trimUndefined(contact));
273
296
  }
274
297
  else {
275
- upsert = contact
276
- data.contactUpserts[contact.id] = upsert
298
+ upsert = contact;
299
+ data.contactUpserts[contact.id] = upsert;
277
300
  }
278
301
  if (data.contactUpdates[contact.id]) {
279
- upsert = Object.assign(data.contactUpdates[contact.id], generics_1.trimUndefined(contact))
280
- delete data.contactUpdates[contact.id]
302
+ upsert = Object.assign(data.contactUpdates[contact.id], trimUndefined(contact));
303
+ delete data.contactUpdates[contact.id];
281
304
  }
282
305
  }
283
- break
306
+ break;
284
307
  case 'contacts.update':
285
- const contactUpdates = eventData
308
+ const contactUpdates = eventData;
286
309
  for (const update of contactUpdates) {
287
- const id = update.id
310
+ const id = update.id;
288
311
  // merge into prior upsert
289
- const upsert = data.historySets.contacts[id] || data.contactUpserts[id]
312
+ const upsert = data.historySets.contacts[id] || data.contactUpserts[id];
290
313
  if (upsert) {
291
- Object.assign(upsert, update)
314
+ Object.assign(upsert, update);
292
315
  }
293
316
  else {
294
317
  // merge into prior update
295
- const contactUpdate = data.contactUpdates[id] || {}
296
- data.contactUpdates[id] = Object.assign(contactUpdate, update)
318
+ const contactUpdate = data.contactUpdates[id] || {};
319
+ data.contactUpdates[id] = Object.assign(contactUpdate, update);
297
320
  }
298
321
  }
299
- break
322
+ break;
300
323
  case 'messages.upsert':
301
- const { messages, type } = eventData
324
+ const { messages, type } = eventData;
302
325
  for (const message of messages) {
303
- const key = stringifyMessageKey(message.key)
304
- let existing = (_a = data.messageUpserts[key]) === null || _a === void 0 ? void 0 : _a.message
326
+ const key = stringifyMessageKey(message.key);
327
+ let existing = data.messageUpserts[key]?.message;
305
328
  if (!existing) {
306
- existing = data.historySets.messages[key]
329
+ existing = data.historySets.messages[key];
307
330
  if (existing) {
308
- logger.debug({ messageId: key }, 'absorbed message upsert in message set')
331
+ logger.debug({ messageId: key }, 'absorbed message upsert in message set');
309
332
  }
310
333
  }
311
334
  if (existing) {
312
- message.messageTimestamp = existing.messageTimestamp
335
+ message.messageTimestamp = existing.messageTimestamp;
313
336
  }
314
337
  if (data.messageUpdates[key]) {
315
- logger.debug('absorbed prior message update in message upsert')
316
- Object.assign(message, data.messageUpdates[key].update)
317
- delete data.messageUpdates[key]
338
+ logger.debug('absorbed prior message update in message upsert');
339
+ Object.assign(message, data.messageUpdates[key].update);
340
+ delete data.messageUpdates[key];
318
341
  }
319
342
  if (data.historySets.messages[key]) {
320
- data.historySets.messages[key] = message
343
+ data.historySets.messages[key] = message;
321
344
  }
322
345
  else {
323
346
  data.messageUpserts[key] = {
324
347
  message,
325
- type: type === 'notify' || ((_b = data.messageUpserts[key]) === null || _b === void 0 ? void 0 : _b.type) === 'notify'
326
- ? 'notify'
327
- : type
328
- }
348
+ type: type === 'notify' || data.messageUpserts[key]?.type === 'notify' ? 'notify' : type
349
+ };
329
350
  }
330
351
  }
331
- break
352
+ break;
332
353
  case 'messages.update':
333
- const msgUpdates = eventData
354
+ const msgUpdates = eventData;
334
355
  for (const { key, update } of msgUpdates) {
335
- const keyStr = stringifyMessageKey(key)
336
- const existing = data.historySets.messages[keyStr] || ((_c = data.messageUpserts[keyStr]) === null || _c === void 0 ? void 0 : _c.message)
356
+ const keyStr = stringifyMessageKey(key);
357
+ const existing = data.historySets.messages[keyStr] || data.messageUpserts[keyStr]?.message;
337
358
  if (existing) {
338
- Object.assign(existing, update)
359
+ Object.assign(existing, update);
339
360
  // if the message was received & read by us
340
361
  // the chat counter must have been incremented
341
362
  // so we need to decrement it
342
- if (update.status === Types_1.WAMessageStatus.READ && !key.fromMe) {
343
- decrementChatReadCounterIfMsgDidUnread(existing)
363
+ if (update.status === WAMessageStatus.READ && !key.fromMe) {
364
+ decrementChatReadCounterIfMsgDidUnread(existing);
344
365
  }
345
366
  }
346
367
  else {
347
- const msgUpdate = data.messageUpdates[keyStr] || { key, update: {} }
348
- Object.assign(msgUpdate.update, update)
349
- data.messageUpdates[keyStr] = msgUpdate
368
+ const msgUpdate = data.messageUpdates[keyStr] || { key, update: {} };
369
+ Object.assign(msgUpdate.update, update);
370
+ data.messageUpdates[keyStr] = msgUpdate;
350
371
  }
351
372
  }
352
- break
373
+ break;
353
374
  case 'messages.delete':
354
- const deleteData = eventData
375
+ const deleteData = eventData;
355
376
  if ('keys' in deleteData) {
356
- const { keys } = deleteData
377
+ const { keys } = deleteData;
357
378
  for (const key of keys) {
358
- const keyStr = stringifyMessageKey(key)
379
+ const keyStr = stringifyMessageKey(key);
359
380
  if (!data.messageDeletes[keyStr]) {
360
- data.messageDeletes[keyStr] = key
381
+ data.messageDeletes[keyStr] = key;
361
382
  }
362
383
  if (data.messageUpserts[keyStr]) {
363
- delete data.messageUpserts[keyStr]
384
+ delete data.messageUpserts[keyStr];
364
385
  }
365
386
  if (data.messageUpdates[keyStr]) {
366
- delete data.messageUpdates[keyStr]
387
+ delete data.messageUpdates[keyStr];
367
388
  }
368
389
  }
369
390
  }
370
391
  else {
371
392
  // TODO: add support
372
393
  }
373
- break
374
- // case 'messages.poll':
375
- // const pollUpdates = eventData
376
- // for(const { vote, pollUpdateMessageKey } of pollUpdates) {
377
- // const keyStr = stringifyMessageKey(pollUpdateMessageKey)
378
- // const existing = data.messagePollings[keyStr]
379
- // if(existing) {
380
- // messages_1.updateMessageWithPollUpdate(existing.message, pollUpdates)
381
- // } else {
382
- // data.messagePollings[keyStr] = data.messagePollings[keyStr]
383
- // || { pollUpdateMessageKey, pollUpdates: [] }
384
- // messages_1.updateMessageWithPollUpdate(data.messagePollings[keyStr], vote)
385
- // }
386
- // }
387
- // break
394
+ break;
388
395
  case 'messages.reaction':
389
- const reactions = eventData
396
+ const reactions = eventData;
390
397
  for (const { key, reaction } of reactions) {
391
- const keyStr = stringifyMessageKey(key)
392
- const existing = data.messageUpserts[keyStr]
398
+ const keyStr = stringifyMessageKey(key);
399
+ const existing = data.messageUpserts[keyStr];
393
400
  if (existing) {
394
- messages_1.updateMessageWithReaction(existing.message, reaction)
401
+ updateMessageWithReaction(existing.message, reaction);
395
402
  }
396
403
  else {
397
- data.messageReactions[keyStr] = data.messageReactions[keyStr]
398
- || { key, reactions: [] }
399
- messages_1.updateMessageWithReaction(data.messageReactions[keyStr], reaction)
404
+ data.messageReactions[keyStr] = data.messageReactions[keyStr] || { key, reactions: [] };
405
+ updateMessageWithReaction(data.messageReactions[keyStr], reaction);
400
406
  }
401
407
  }
402
- break
408
+ break;
403
409
  case 'message-receipt.update':
404
- const receipts = eventData
410
+ const receipts = eventData;
405
411
  for (const { key, receipt } of receipts) {
406
- const keyStr = stringifyMessageKey(key)
407
- const existing = data.messageUpserts[keyStr]
412
+ const keyStr = stringifyMessageKey(key);
413
+ const existing = data.messageUpserts[keyStr];
408
414
  if (existing) {
409
- messages_1.updateMessageWithReceipt(existing.message, receipt)
415
+ updateMessageWithReceipt(existing.message, receipt);
410
416
  }
411
417
  else {
412
- data.messageReceipts[keyStr] = data.messageReceipts[keyStr]
413
- || { key, userReceipt: [] }
414
- messages_1.updateMessageWithReceipt(data.messageReceipts[keyStr], receipt)
418
+ data.messageReceipts[keyStr] = data.messageReceipts[keyStr] || { key, userReceipt: [] };
419
+ updateMessageWithReceipt(data.messageReceipts[keyStr], receipt);
415
420
  }
416
421
  }
417
- break
422
+ break;
418
423
  case 'groups.update':
419
- const groupUpdates = eventData
424
+ const groupUpdates = eventData;
420
425
  for (const update of groupUpdates) {
421
- const id = update.id
422
- const groupUpdate = data.groupUpdates[id] || {}
426
+ const id = update.id;
427
+ const groupUpdate = data.groupUpdates[id] || {};
423
428
  if (!data.groupUpdates[id]) {
424
- data.groupUpdates[id] = Object.assign(groupUpdate, update)
425
- }
426
- }
427
- break
428
- case 'communities.update':
429
- const communityUpdates = eventData
430
- console.log('community updates', communityUpdates )
431
- for (const update of communityUpdates) {
432
- const id = update.id
433
- const communityUpdate = data.communityUpdates[id] || {}
434
- if (!data.communityUpdates[id]) {
435
- data.communityUpdates[id] = Object.assign(communityUpdate, update)
429
+ data.groupUpdates[id] = Object.assign(groupUpdate, update);
436
430
  }
437
431
  }
438
- break
432
+ break;
439
433
  default:
440
- throw new Error(`"${event}" cannot be buffered`)
434
+ throw new Error(`"${event}" cannot be buffered`);
441
435
  }
442
436
  function absorbingChatUpdate(existing) {
443
- const chatId = existing.id
444
- const update = data.chatUpdates[chatId]
437
+ const chatId = existing.id || '';
438
+ const update = data.chatUpdates[chatId];
445
439
  if (update) {
446
- const conditionMatches = update.conditional ? update.conditional(data) : true
440
+ const conditionMatches = update.conditional ? update.conditional(data) : true;
447
441
  if (conditionMatches) {
448
- delete update.conditional
449
- logger.debug({ chatId }, 'absorbed chat update in existing chat')
450
- Object.assign(existing, concatChats(update, existing))
451
- delete data.chatUpdates[chatId]
442
+ delete update.conditional;
443
+ logger.debug({ chatId }, 'absorbed chat update in existing chat');
444
+ Object.assign(existing, concatChats(update, existing));
445
+ delete data.chatUpdates[chatId];
452
446
  }
453
447
  else if (conditionMatches === false) {
454
- logger.debug({ chatId }, 'chat update condition fail, removing')
455
- delete data.chatUpdates[chatId]
448
+ logger.debug({ chatId }, 'chat update condition fail, removing');
449
+ delete data.chatUpdates[chatId];
456
450
  }
457
451
  }
458
452
  }
459
453
  function decrementChatReadCounterIfMsgDidUnread(message) {
460
454
  // decrement chat unread counter
461
455
  // if the message has already been marked read by us
462
- const chatId = message.key.remoteJid
463
- const chat = data.chatUpdates[chatId] || data.chatUpserts[chatId]
464
- if (process_message_1.isRealMessage(message, '')
465
- && process_message_1.shouldIncrementChatUnread(message)
466
- && typeof (chat?.unreadCount) === 'number'
467
- && chat.unreadCount > 0) {
468
- logger.debug({ chatId: chat.id }, 'decrementing chat counter')
469
- chat.unreadCount -= 1
456
+ const chatId = message.key.remoteJid;
457
+ const chat = data.chatUpdates[chatId] || data.chatUpserts[chatId];
458
+ if (isRealMessage(message) &&
459
+ shouldIncrementChatUnread(message) &&
460
+ typeof chat?.unreadCount === 'number' &&
461
+ chat.unreadCount > 0) {
462
+ logger.debug({ chatId: chat.id }, 'decrementing chat counter');
463
+ chat.unreadCount -= 1;
470
464
  if (chat.unreadCount === 0) {
471
- delete chat.unreadCount
465
+ delete chat.unreadCount;
472
466
  }
473
467
  }
474
468
  }
475
469
  }
476
470
  function consolidateEvents(data) {
477
- const map = {}
471
+ const map = {};
478
472
  if (!data.historySets.empty) {
479
473
  map['messaging-history.set'] = {
480
474
  chats: Object.values(data.historySets.chats),
@@ -484,82 +478,71 @@ function consolidateEvents(data) {
484
478
  progress: data.historySets.progress,
485
479
  isLatest: data.historySets.isLatest,
486
480
  peerDataRequestSessionId: data.historySets.peerDataRequestSessionId
487
- }
481
+ };
488
482
  }
489
- const chatUpsertList = Object.values(data.chatUpserts)
483
+ const chatUpsertList = Object.values(data.chatUpserts);
490
484
  if (chatUpsertList.length) {
491
- map['chats.upsert'] = chatUpsertList
485
+ map['chats.upsert'] = chatUpsertList;
492
486
  }
493
- const chatUpdateList = Object.values(data.chatUpdates)
487
+ const chatUpdateList = Object.values(data.chatUpdates);
494
488
  if (chatUpdateList.length) {
495
- map['chats.update'] = chatUpdateList
489
+ map['chats.update'] = chatUpdateList;
496
490
  }
497
- const chatDeleteList = Array.from(data.chatDeletes)
491
+ const chatDeleteList = Array.from(data.chatDeletes);
498
492
  if (chatDeleteList.length) {
499
- map['chats.delete'] = chatDeleteList
493
+ map['chats.delete'] = chatDeleteList;
500
494
  }
501
- const messageUpsertList = Object.values(data.messageUpserts)
495
+ const messageUpsertList = Object.values(data.messageUpserts);
502
496
  if (messageUpsertList.length) {
503
- const type = messageUpsertList[0].type
497
+ const type = messageUpsertList[0].type;
504
498
  map['messages.upsert'] = {
505
499
  messages: messageUpsertList.map(m => m.message),
506
500
  type
507
- }
501
+ };
508
502
  }
509
- const messageUpdateList = Object.values(data.messageUpdates)
503
+ const messageUpdateList = Object.values(data.messageUpdates);
510
504
  if (messageUpdateList.length) {
511
- map['messages.update'] = messageUpdateList
505
+ map['messages.update'] = messageUpdateList;
512
506
  }
513
- const messageDeleteList = Object.values(data.messageDeletes)
507
+ const messageDeleteList = Object.values(data.messageDeletes);
514
508
  if (messageDeleteList.length) {
515
- map['messages.delete'] = { keys: messageDeleteList }
509
+ map['messages.delete'] = { keys: messageDeleteList };
516
510
  }
517
- // const messagePollingList = Object.values(data.messagePollings).flatMap(({ vote, pollUpdateMessageKey }) => vote.flatMap(polling => ({ polling, pollUpdateMessageKey })))
518
- // if(messagePollingList.length) {
519
- // map['messages.poll'] = messagePollingList
520
- // }
521
- const messageReactionList = Object.values(data.messageReactions).flatMap(({ key, reactions }) => reactions.flatMap(reaction => ({ key, reaction })))
511
+ const messageReactionList = Object.values(data.messageReactions).flatMap(({ key, reactions }) => reactions.flatMap(reaction => ({ key, reaction })));
522
512
  if (messageReactionList.length) {
523
- map['messages.reaction'] = messageReactionList
513
+ map['messages.reaction'] = messageReactionList;
524
514
  }
525
- const messageReceiptList = Object.values(data.messageReceipts).flatMap(({ key, userReceipt }) => userReceipt.flatMap(receipt => ({ key, receipt })))
515
+ const messageReceiptList = Object.values(data.messageReceipts).flatMap(({ key, userReceipt }) => userReceipt.flatMap(receipt => ({ key, receipt })));
526
516
  if (messageReceiptList.length) {
527
- map['message-receipt.update'] = messageReceiptList
517
+ map['message-receipt.update'] = messageReceiptList;
528
518
  }
529
- const contactUpsertList = Object.values(data.contactUpserts)
519
+ const contactUpsertList = Object.values(data.contactUpserts);
530
520
  if (contactUpsertList.length) {
531
- map['contacts.upsert'] = contactUpsertList
521
+ map['contacts.upsert'] = contactUpsertList;
532
522
  }
533
- const contactUpdateList = Object.values(data.contactUpdates)
523
+ const contactUpdateList = Object.values(data.contactUpdates);
534
524
  if (contactUpdateList.length) {
535
- map['contacts.update'] = contactUpdateList
525
+ map['contacts.update'] = contactUpdateList;
536
526
  }
537
- const groupUpdateList = Object.values(data.groupUpdates)
527
+ const groupUpdateList = Object.values(data.groupUpdates);
538
528
  if (groupUpdateList.length) {
539
- map['groups.update'] = groupUpdateList
540
- }
541
- const communityUpdateList = Object.values(data.communityUpdates)
542
- if (communityUpdateList.length) {
543
- map['communities.update'] = communityUpdateList
529
+ map['groups.update'] = groupUpdateList;
544
530
  }
545
- return map
531
+ return map;
546
532
  }
547
533
  function concatChats(a, b) {
548
534
  if (b.unreadCount === null && // neutralize unread counter
549
535
  a.unreadCount < 0) {
550
- a.unreadCount = undefined
551
- b.unreadCount = undefined
536
+ a.unreadCount = undefined;
537
+ b.unreadCount = undefined;
552
538
  }
553
539
  if (typeof a.unreadCount === 'number' && typeof b.unreadCount === 'number') {
554
- b = { ...b }
540
+ b = { ...b };
555
541
  if (b.unreadCount >= 0) {
556
- b.unreadCount = Math.max(b.unreadCount, 0) + Math.max(a.unreadCount, 0)
542
+ b.unreadCount = Math.max(b.unreadCount, 0) + Math.max(a.unreadCount, 0);
557
543
  }
558
544
  }
559
- return Object.assign(a, b)
545
+ return Object.assign(a, b);
560
546
  }
561
- const stringifyMessageKey = (key) => `${key.remoteJid},${key.id},${key.fromMe ? '1' : '0'}`
562
-
563
- module.exports = {
564
- makeEventBuffer
565
- }
547
+ const stringifyMessageKey = (key) => `${key.remoteJid},${key.id},${key.fromMe ? '1' : '0'}`;
548
+ //# sourceMappingURL=event-buffer.js.map