@neelegirl/baileys 1.5.3 → 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 (438) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +195 -195
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto.proto +478 -1153
  5. package/WAProto/fix-imports.js +29 -0
  6. package/WAProto/index.d.ts +2645 -51971
  7. package/WAProto/index.js +48649 -154035
  8. package/engine-requirements.js +10 -0
  9. package/lib/Defaults/index.d.ts +62 -78
  10. package/lib/Defaults/index.d.ts.map +1 -0
  11. package/lib/Defaults/index.js +115 -149
  12. package/lib/Defaults/index.js.map +1 -0
  13. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  14. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  15. package/lib/Signal/Group/ciphertext-message.js +12 -0
  16. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  17. package/lib/Signal/{WASignalGroup → Group}/group-session-builder.d.ts +11 -13
  18. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  19. package/lib/Signal/Group/group-session-builder.js +30 -0
  20. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  21. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  22. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  23. package/lib/Signal/{WASignalGroup → Group}/group_cipher.js +41 -70
  24. package/lib/Signal/Group/group_cipher.js.map +1 -0
  25. package/lib/Signal/Group/index.d.ts +12 -0
  26. package/lib/Signal/Group/index.d.ts.map +1 -0
  27. package/lib/Signal/Group/index.js +12 -0
  28. package/lib/Signal/Group/index.js.map +1 -0
  29. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  30. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  31. package/lib/Signal/Group/keyhelper.js +18 -0
  32. package/lib/Signal/Group/keyhelper.js.map +1 -0
  33. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  34. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  35. package/lib/Signal/Group/sender-chain-key.js +26 -0
  36. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  38. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  40. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  42. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  43. package/lib/Signal/Group/sender-key-message.js +66 -0
  44. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  46. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  47. package/lib/Signal/Group/sender-key-name.js +48 -0
  48. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  49. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  50. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  51. package/lib/Signal/Group/sender-key-record.js +41 -0
  52. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  53. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  54. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  55. package/lib/Signal/Group/sender-key-state.js +84 -0
  56. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  57. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  58. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  59. package/lib/Signal/{WASignalGroup/sender_message_key.js → Group/sender-message-key.js} +26 -39
  60. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  61. package/lib/Signal/libsignal.d.ts +5 -8
  62. package/lib/Signal/libsignal.d.ts.map +1 -0
  63. package/lib/Signal/libsignal.js +342 -391
  64. package/lib/Signal/libsignal.js.map +1 -0
  65. package/lib/Signal/lid-mapping.d.ts +23 -28
  66. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  67. package/lib/Signal/lid-mapping.js +171 -184
  68. package/lib/Signal/lid-mapping.js.map +1 -0
  69. package/lib/Socket/Client/index.d.ts +3 -2
  70. package/lib/Socket/Client/index.d.ts.map +1 -0
  71. package/lib/Socket/Client/index.js +3 -22
  72. package/lib/Socket/Client/index.js.map +1 -0
  73. package/lib/Socket/Client/types.d.ts +15 -15
  74. package/lib/Socket/Client/types.d.ts.map +1 -0
  75. package/lib/Socket/Client/types.js +8 -15
  76. package/lib/Socket/Client/types.js.map +1 -0
  77. package/lib/Socket/Client/websocket.d.ts +12 -12
  78. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  79. package/lib/Socket/Client/websocket.js +24 -36
  80. package/lib/Socket/Client/websocket.js.map +1 -0
  81. package/lib/Socket/business.d.ts +178 -177
  82. package/lib/Socket/business.d.ts.map +1 -0
  83. package/lib/Socket/business.js +81 -120
  84. package/lib/Socket/business.js.map +1 -0
  85. package/lib/Socket/chats.d.ts +93 -92
  86. package/lib/Socket/chats.d.ts.map +1 -0
  87. package/lib/Socket/chats.js +462 -618
  88. package/lib/Socket/chats.js.map +1 -0
  89. package/lib/Socket/communities.d.ts +244 -223
  90. package/lib/Socket/communities.d.ts.map +1 -0
  91. package/lib/Socket/communities.js +431 -433
  92. package/lib/Socket/communities.js.map +1 -0
  93. package/lib/Socket/groups.d.ts +118 -110
  94. package/lib/Socket/groups.d.ts.map +1 -0
  95. package/lib/Socket/groups.js +148 -181
  96. package/lib/Socket/groups.js.map +1 -0
  97. package/lib/Socket/index.d.ts +222 -182
  98. package/lib/Socket/index.d.ts.map +1 -0
  99. package/lib/Socket/index.js +12 -18
  100. package/lib/Socket/index.js.map +1 -0
  101. package/lib/Socket/messages-recv.d.ts +165 -166
  102. package/lib/Socket/messages-recv.d.ts.map +1 -0
  103. package/lib/Socket/messages-recv.js +753 -1031
  104. package/lib/Socket/messages-recv.js.map +1 -0
  105. package/lib/Socket/messages-send.d.ts +161 -157
  106. package/lib/Socket/messages-send.d.ts.map +1 -0
  107. package/lib/Socket/messages-send.js +564 -1396
  108. package/lib/Socket/messages-send.js.map +1 -0
  109. package/lib/Socket/mex.d.ts +3 -2
  110. package/lib/Socket/mex.d.ts.map +1 -0
  111. package/lib/Socket/mex.js +42 -47
  112. package/lib/Socket/mex.js.map +1 -0
  113. package/lib/Socket/newsletter.d.ts +139 -137
  114. package/lib/Socket/newsletter.d.ts.map +1 -0
  115. package/lib/Socket/newsletter.js +181 -295
  116. package/lib/Socket/newsletter.js.map +1 -0
  117. package/lib/Socket/socket.d.ts +42 -36
  118. package/lib/Socket/socket.d.ts.map +1 -0
  119. package/lib/Socket/socket.js +487 -557
  120. package/lib/Socket/socket.js.map +1 -0
  121. package/lib/Types/Auth.d.ts +87 -97
  122. package/lib/Types/Auth.d.ts.map +1 -0
  123. package/lib/Types/Auth.js +2 -3
  124. package/lib/Types/Auth.js.map +1 -0
  125. package/lib/Types/Bussines.d.ts +25 -0
  126. package/lib/Types/Bussines.d.ts.map +1 -0
  127. package/lib/Types/Bussines.js +2 -3
  128. package/lib/Types/Bussines.js.map +1 -0
  129. package/lib/Types/Call.d.ts +13 -13
  130. package/lib/Types/Call.d.ts.map +1 -0
  131. package/lib/Types/Call.js +2 -3
  132. package/lib/Types/Call.js.map +1 -0
  133. package/lib/Types/Chat.d.ts +77 -97
  134. package/lib/Types/Chat.d.ts.map +1 -0
  135. package/lib/Types/Chat.js +8 -9
  136. package/lib/Types/Chat.js.map +1 -0
  137. package/lib/Types/Contact.d.ts +10 -9
  138. package/lib/Types/Contact.d.ts.map +1 -0
  139. package/lib/Types/Contact.js +2 -3
  140. package/lib/Types/Contact.js.map +1 -0
  141. package/lib/Types/Events.d.ts +151 -175
  142. package/lib/Types/Events.d.ts.map +1 -0
  143. package/lib/Types/Events.js +2 -3
  144. package/lib/Types/Events.js.map +1 -0
  145. package/lib/Types/GroupMetadata.d.ts +49 -48
  146. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  147. package/lib/Types/GroupMetadata.js +2 -3
  148. package/lib/Types/GroupMetadata.js.map +1 -0
  149. package/lib/Types/Label.d.ts +13 -14
  150. package/lib/Types/Label.d.ts.map +1 -0
  151. package/lib/Types/Label.js +24 -30
  152. package/lib/Types/Label.js.map +1 -0
  153. package/lib/Types/LabelAssociation.d.ts +15 -20
  154. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  155. package/lib/Types/LabelAssociation.js +6 -12
  156. package/lib/Types/LabelAssociation.js.map +1 -0
  157. package/lib/Types/Message.d.ts +231 -412
  158. package/lib/Types/Message.d.ts.map +1 -0
  159. package/lib/Types/Message.js +11 -19
  160. package/lib/Types/Message.js.map +1 -0
  161. package/lib/Types/Newsletter.d.ts +130 -104
  162. package/lib/Types/Newsletter.d.ts.map +1 -0
  163. package/lib/Types/Newsletter.js +31 -40
  164. package/lib/Types/Newsletter.js.map +1 -0
  165. package/lib/Types/Product.d.ts +58 -71
  166. package/lib/Types/Product.d.ts.map +1 -0
  167. package/lib/Types/Product.js +2 -3
  168. package/lib/Types/Product.js.map +1 -0
  169. package/lib/Types/Signal.d.ts +60 -82
  170. package/lib/Types/Signal.d.ts.map +1 -0
  171. package/lib/Types/Signal.js +2 -3
  172. package/lib/Types/Signal.js.map +1 -0
  173. package/lib/Types/Socket.d.ts +73 -81
  174. package/lib/Types/Socket.d.ts.map +1 -0
  175. package/lib/Types/Socket.js +3 -3
  176. package/lib/Types/Socket.js.map +1 -0
  177. package/lib/Types/State.d.ts +17 -19
  178. package/lib/Types/State.d.ts.map +1 -0
  179. package/lib/Types/State.js +13 -14
  180. package/lib/Types/State.js.map +1 -0
  181. package/lib/Types/USync.d.ts +8 -8
  182. package/lib/Types/USync.d.ts.map +1 -0
  183. package/lib/Types/USync.js +2 -3
  184. package/lib/Types/USync.js.map +1 -0
  185. package/lib/Types/index.d.ts +47 -62
  186. package/lib/Types/index.d.ts.map +1 -0
  187. package/lib/Types/index.js +26 -50
  188. package/lib/Types/index.js.map +1 -0
  189. package/lib/Utils/auth-utils.d.ts +19 -21
  190. package/lib/Utils/auth-utils.d.ts.map +1 -0
  191. package/lib/Utils/auth-utils.js +257 -528
  192. package/lib/Utils/auth-utils.js.map +1 -0
  193. package/lib/Utils/baileys-event-stream.d.ts +17 -18
  194. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  195. package/lib/Utils/baileys-event-stream.js +56 -70
  196. package/lib/Utils/baileys-event-stream.js.map +1 -0
  197. package/lib/Utils/browser-utils.d.ts +4 -0
  198. package/lib/Utils/browser-utils.d.ts.map +1 -0
  199. package/lib/Utils/browser-utils.js +28 -0
  200. package/lib/Utils/browser-utils.js.map +1 -0
  201. package/lib/Utils/business.d.ts +23 -29
  202. package/lib/Utils/business.d.ts.map +1 -0
  203. package/lib/Utils/business.js +231 -255
  204. package/lib/Utils/business.js.map +1 -0
  205. package/lib/Utils/chat-utils.d.ts +70 -82
  206. package/lib/Utils/chat-utils.d.ts.map +1 -0
  207. package/lib/Utils/chat-utils.js +763 -809
  208. package/lib/Utils/chat-utils.js.map +1 -0
  209. package/lib/Utils/crypto.d.ts +41 -56
  210. package/lib/Utils/crypto.d.ts.map +1 -0
  211. package/lib/Utils/crypto.js +142 -189
  212. package/lib/Utils/crypto.js.map +1 -0
  213. package/lib/Utils/decode-wa-message.d.ts +48 -53
  214. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  215. package/lib/Utils/decode-wa-message.js +279 -323
  216. package/lib/Utils/decode-wa-message.js.map +1 -0
  217. package/lib/Utils/event-buffer.d.ts +34 -39
  218. package/lib/Utils/event-buffer.d.ts.map +1 -0
  219. package/lib/Utils/event-buffer.js +548 -595
  220. package/lib/Utils/event-buffer.js.map +1 -0
  221. package/lib/Utils/generics.d.ts +90 -131
  222. package/lib/Utils/generics.d.ts.map +1 -0
  223. package/lib/Utils/generics.js +381 -630
  224. package/lib/Utils/generics.js.map +1 -0
  225. package/lib/Utils/history.d.ts +19 -23
  226. package/lib/Utils/history.d.ts.map +1 -0
  227. package/lib/Utils/history.js +84 -104
  228. package/lib/Utils/history.js.map +1 -0
  229. package/lib/Utils/index.d.ts +20 -20
  230. package/lib/Utils/index.d.ts.map +1 -0
  231. package/lib/Utils/index.js +19 -40
  232. package/lib/Utils/index.js.map +1 -0
  233. package/lib/Utils/link-preview.d.ts +21 -23
  234. package/lib/Utils/link-preview.d.ts.map +1 -0
  235. package/lib/Utils/link-preview.js +85 -120
  236. package/lib/Utils/link-preview.js.map +1 -0
  237. package/lib/Utils/logger.d.ts +12 -13
  238. package/lib/Utils/logger.d.ts.map +1 -0
  239. package/lib/Utils/logger.js +3 -7
  240. package/lib/Utils/logger.js.map +1 -0
  241. package/lib/Utils/lt-hash.d.ts +13 -14
  242. package/lib/Utils/lt-hash.d.ts.map +1 -0
  243. package/lib/Utils/lt-hash.js +48 -58
  244. package/lib/Utils/lt-hash.js.map +1 -0
  245. package/lib/Utils/make-mutex.d.ts +8 -9
  246. package/lib/Utils/make-mutex.d.ts.map +1 -0
  247. package/lib/Utils/make-mutex.js +40 -49
  248. package/lib/Utils/make-mutex.js.map +1 -0
  249. package/lib/Utils/message-retry-manager.d.ts +82 -88
  250. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  251. package/lib/Utils/message-retry-manager.js +149 -160
  252. package/lib/Utils/message-retry-manager.js.map +1 -0
  253. package/lib/Utils/messages-media.d.ts +114 -135
  254. package/lib/Utils/messages-media.d.ts.map +1 -0
  255. package/lib/Utils/messages-media.js +663 -869
  256. package/lib/Utils/messages-media.js.map +1 -0
  257. package/lib/Utils/messages.d.ts +76 -105
  258. package/lib/Utils/messages.d.ts.map +1 -0
  259. package/lib/Utils/messages.js +820 -1745
  260. package/lib/Utils/messages.js.map +1 -0
  261. package/lib/Utils/noise-handler.d.ts +20 -21
  262. package/lib/Utils/noise-handler.d.ts.map +1 -0
  263. package/lib/Utils/noise-handler.js +147 -165
  264. package/lib/Utils/noise-handler.js.map +1 -0
  265. package/lib/Utils/pre-key-manager.d.ts +28 -0
  266. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  267. package/lib/Utils/pre-key-manager.js +106 -0
  268. package/lib/Utils/pre-key-manager.js.map +1 -0
  269. package/lib/Utils/process-message.d.ts +42 -49
  270. package/lib/Utils/process-message.d.ts.map +1 -0
  271. package/lib/Utils/process-message.js +413 -427
  272. package/lib/Utils/process-message.js.map +1 -0
  273. package/lib/Utils/signal.d.ts +34 -42
  274. package/lib/Utils/signal.d.ts.map +1 -0
  275. package/lib/Utils/signal.js +159 -166
  276. package/lib/Utils/signal.js.map +1 -0
  277. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -18
  278. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  279. package/lib/Utils/use-multi-file-auth-state.js +121 -238
  280. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  281. package/lib/Utils/validate-connection.d.ts +11 -13
  282. package/lib/Utils/validate-connection.d.ts.map +1 -0
  283. package/lib/Utils/validate-connection.js +195 -220
  284. package/lib/Utils/validate-connection.js.map +1 -0
  285. package/lib/WABinary/constants.d.ts +28 -30
  286. package/lib/WABinary/constants.d.ts.map +1 -0
  287. package/lib/WABinary/constants.js +1301 -1316
  288. package/lib/WABinary/constants.js.map +1 -0
  289. package/lib/WABinary/decode.d.ts +7 -9
  290. package/lib/WABinary/decode.d.ts.map +1 -0
  291. package/lib/WABinary/decode.js +238 -288
  292. package/lib/WABinary/decode.js.map +1 -0
  293. package/lib/WABinary/encode.d.ts +3 -3
  294. package/lib/WABinary/encode.d.ts.map +1 -0
  295. package/lib/WABinary/encode.js +216 -265
  296. package/lib/WABinary/encode.js.map +1 -0
  297. package/lib/WABinary/generic-utils.d.ts +15 -28
  298. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  299. package/lib/WABinary/generic-utils.js +102 -142
  300. package/lib/WABinary/generic-utils.js.map +1 -0
  301. package/lib/WABinary/index.d.ts +6 -5
  302. package/lib/WABinary/index.d.ts.map +1 -0
  303. package/lib/WABinary/index.js +6 -25
  304. package/lib/WABinary/index.js.map +1 -0
  305. package/lib/WABinary/jid-utils.d.ts +48 -58
  306. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  307. package/lib/WABinary/jid-utils.js +96 -104
  308. package/lib/WABinary/jid-utils.js.map +1 -0
  309. package/lib/WABinary/types.d.ts +19 -22
  310. package/lib/WABinary/types.d.ts.map +1 -0
  311. package/lib/WABinary/types.js +2 -3
  312. package/lib/WABinary/types.js.map +1 -0
  313. package/lib/WAM/BinaryInfo.d.ts +9 -16
  314. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  315. package/lib/WAM/BinaryInfo.js +10 -17
  316. package/lib/WAM/BinaryInfo.js.map +1 -0
  317. package/lib/WAM/constants.d.ts +40 -47
  318. package/lib/WAM/constants.d.ts.map +1 -0
  319. package/lib/WAM/constants.js +22853 -15371
  320. package/lib/WAM/constants.js.map +1 -0
  321. package/lib/WAM/encode.d.ts +3 -3
  322. package/lib/WAM/encode.d.ts.map +1 -0
  323. package/lib/WAM/encode.js +150 -164
  324. package/lib/WAM/encode.js.map +1 -0
  325. package/lib/WAM/index.d.ts +4 -3
  326. package/lib/WAM/index.d.ts.map +1 -0
  327. package/lib/WAM/index.js +4 -23
  328. package/lib/WAM/index.js.map +1 -0
  329. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  330. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  331. package/lib/WAUSync/Protocols/USyncContactProtocol.js +12 -19
  332. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  333. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +19 -22
  334. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  335. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +18 -26
  336. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  337. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +11 -12
  338. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  339. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -20
  340. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  341. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +11 -12
  342. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  343. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +16 -24
  344. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  345. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  346. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  347. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  348. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  349. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  350. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  351. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  352. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  353. package/lib/WAUSync/Protocols/index.d.ts +5 -6
  354. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  355. package/lib/WAUSync/Protocols/index.js +5 -26
  356. package/lib/WAUSync/Protocols/index.js.map +1 -0
  357. package/lib/WAUSync/USyncQuery.d.ts +26 -28
  358. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  359. package/lib/WAUSync/USyncQuery.js +64 -62
  360. package/lib/WAUSync/USyncQuery.js.map +1 -0
  361. package/lib/WAUSync/USyncUser.d.ts +11 -10
  362. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  363. package/lib/WAUSync/USyncUser.js +12 -19
  364. package/lib/WAUSync/USyncUser.js.map +1 -0
  365. package/lib/WAUSync/index.d.ts +4 -3
  366. package/lib/WAUSync/index.d.ts.map +1 -0
  367. package/lib/WAUSync/index.js +4 -23
  368. package/lib/WAUSync/index.js.map +1 -0
  369. package/lib/index.d.ts +12 -13
  370. package/lib/index.d.ts.map +1 -0
  371. package/lib/index.js +11 -33
  372. package/lib/index.js.map +1 -0
  373. package/package.json +99 -96
  374. package/lib/Defaults/baileys-version.json +0 -3
  375. package/lib/Defaults/phonenumber-mcc.json +0 -223
  376. package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
  377. package/lib/Signal/WASignalGroup/ciphertext-message.d.ts +0 -9
  378. package/lib/Signal/WASignalGroup/ciphertext-message.js +0 -19
  379. package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
  380. package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
  381. package/lib/Signal/WASignalGroup/group-session-builder.js +0 -72
  382. package/lib/Signal/WASignalGroup/group.proto +0 -42
  383. package/lib/Signal/WASignalGroup/group_cipher.d.ts +0 -19
  384. package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
  385. package/lib/Signal/WASignalGroup/index.d.ts +0 -11
  386. package/lib/Signal/WASignalGroup/index.js +0 -61
  387. package/lib/Signal/WASignalGroup/keyhelper.d.ts +0 -16
  388. package/lib/Signal/WASignalGroup/keyhelper.js +0 -66
  389. package/lib/Signal/WASignalGroup/protobufs.js +0 -3
  390. package/lib/Signal/WASignalGroup/queue_job.js +0 -69
  391. package/lib/Signal/WASignalGroup/readme.md +0 -6
  392. package/lib/Signal/WASignalGroup/sender-chain-key.d.ts +0 -14
  393. package/lib/Signal/WASignalGroup/sender-chain-key.js +0 -47
  394. package/lib/Signal/WASignalGroup/sender-key-distribution-message.d.ts +0 -17
  395. package/lib/Signal/WASignalGroup/sender-key-distribution-message.js +0 -71
  396. package/lib/Signal/WASignalGroup/sender-key-message.d.ts +0 -19
  397. package/lib/Signal/WASignalGroup/sender-key-message.js +0 -73
  398. package/lib/Signal/WASignalGroup/sender-key-name.d.ts +0 -19
  399. package/lib/Signal/WASignalGroup/sender-key-name.js +0 -59
  400. package/lib/Signal/WASignalGroup/sender-key-record.d.ts +0 -32
  401. package/lib/Signal/WASignalGroup/sender-key-record.js +0 -58
  402. package/lib/Signal/WASignalGroup/sender-key-state.d.ts +0 -44
  403. package/lib/Signal/WASignalGroup/sender-key-state.js +0 -147
  404. package/lib/Signal/WASignalGroup/sender-message-key.d.ts +0 -11
  405. package/lib/Signal/WASignalGroup/sender-message-key.js +0 -33
  406. package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
  407. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
  408. package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
  409. package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
  410. package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
  411. package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
  412. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  413. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  414. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  415. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  416. package/lib/Socket/usync.d.ts +0 -37
  417. package/lib/Socket/usync.js +0 -83
  418. package/lib/Store/index.d.ts +0 -4
  419. package/lib/Store/index.js +0 -24
  420. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  421. package/lib/Store/make-cache-manager-store.js +0 -90
  422. package/lib/Store/make-in-memory-store.d.ts +0 -123
  423. package/lib/Store/make-in-memory-store.js +0 -429
  424. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  425. package/lib/Store/make-ordered-dictionary.js +0 -86
  426. package/lib/Store/object-repository.d.ts +0 -10
  427. package/lib/Store/object-repository.js +0 -31
  428. package/lib/Types/Bussiness.d.ts +0 -28
  429. package/lib/Types/MexUpdates.d.ts +0 -9
  430. package/lib/Types/MexUpdates.js +0 -18
  431. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  432. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  433. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  434. package/lib/Utils/use-single-file-auth-state.js +0 -80
  435. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  436. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
  437. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -10
  438. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -38
@@ -1,90 +0,0 @@
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 cache_manager_1 = require("cache-manager")
10
- const WAProto_1 = require("../../WAProto")
11
- const Utils_1 = require("../Utils")
12
- const logger_1 = __importDefault(require("../Utils/logger"))
13
-
14
- const makeCacheManagerAuthState = async (store, sessionKey) => {
15
- const defaultKey = (file) => `${sessionKey}:${file}`
16
- const databaseConn = await cache_manager_1.caching(store)
17
- const writeData = async (file, data) => {
18
- let ttl = undefined
19
- if (file === 'creds') {
20
- ttl = 63115200 // 2 years
21
- }
22
- await databaseConn.set(defaultKey(file), JSON.stringify(data, Utils_1.BufferJSON.replacer), ttl)
23
- }
24
- const readData = async (file) => {
25
- try {
26
- const data = await databaseConn.get(defaultKey(file))
27
- if (data) {
28
- return JSON.parse(data, Utils_1.BufferJSON.reviver)
29
- }
30
- return null
31
- }
32
- catch (error) {
33
- logger_1.default.error(error)
34
- return null
35
- }
36
- }
37
- const removeData = async (file) => {
38
- try {
39
- return await databaseConn.del(defaultKey(file))
40
- }
41
- catch (_a) {
42
- logger_1.default.error(`Error removing ${file} from session ${sessionKey}`)
43
- }
44
- }
45
- const clearState = async () => {
46
- try {
47
- const result = await databaseConn.store.keys(`${sessionKey}*`)
48
- await Promise.all(result.map(async (key) => await databaseConn.del(key)))
49
- }
50
- catch (err) {
51
- }
52
- }
53
- const creds = (await readData('creds')) || (0, Utils_1.initAuthCreds)()
54
- return {
55
- clearState,
56
- saveCreds: () => writeData('creds', creds),
57
- state: {
58
- creds,
59
- keys: {
60
- get: async (type, ids) => {
61
- const data = {}
62
- await Promise.all(ids.map(async (id) => {
63
- let value = await readData(`${type}-${id}`)
64
- if (type === 'app-state-sync-key' && value) {
65
- value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value)
66
- }
67
- data[id] = value
68
- }))
69
- return data
70
- },
71
- set: async (data) => {
72
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
- const tasks = []
74
- for (const category in data) {
75
- for (const id in data[category]) {
76
- const value = data[category][id]
77
- const key = `${category}-${id}`
78
- tasks.push(value ? writeData(key, value) : removeData(key))
79
- }
80
- }
81
- await Promise.all(tasks)
82
- },
83
- }
84
- }
85
- }
86
- }
87
-
88
- module.exports = {
89
- makeCacheManagerAuthState
90
- }
@@ -1,123 +0,0 @@
1
- import type KeyedDB from '@adiwajshing/keyed-db'
2
- import type { Comparable } from '@adiwajshing/keyed-db/lib/Types'
3
- import type { Logger } from 'pino'
4
- import { proto } from '@neelegirl/baileys/WAProto'
5
- import type makeMDSocket from '@neelegirl/baileys/lib/Socket'
6
- import type { BaileysEventEmitter, Chat, ConnectionState, Contact, GroupMetadata, PresenceData, WAMessage, WAMessageCursor, WAMessageKey } from '@neelegirl/baileys/lib/Types'
7
- import { Label } from '@neelegirl/baileys/lib/Types/Label'
8
- import { LabelAssociation } from '@neelegirl/baileys/lib/Types/LabelAssociation'
9
- import { ObjectRepository } from '@neelegirl/baileys/lib/Store/object-repository'
10
-
11
- type WASocket = ReturnType<typeof makeMDSocket>
12
-
13
- export declare const waChatKey: (pin: boolean) => {
14
- key: (c: Chat) => string
15
- compare: (k1: string, k2: string) => number
16
- }
17
-
18
- export declare const waMessageID: (m: WAMessage) => string
19
-
20
- export declare const waLabelAssociationKey: Comparable<LabelAssociation, string>
21
-
22
- export type BaileysInMemoryStoreConfig = {
23
- chatKey?: Comparable<Chat, string>
24
- labelAssociationKey?: Comparable<LabelAssociation, string>
25
- logger?: Logger
26
- socket?: WASocket
27
- }
28
-
29
- export declare const makeInMemoryStore: (config: BaileysInMemoryStoreConfig) => {
30
- chats: KeyedDB<Chat, string>
31
- contacts: {
32
- [_: string]: Contact
33
- }
34
- messages: {
35
- [_: string]: {
36
- array: proto.IWebMessageInfo[]
37
- get: (id: string) => proto.IWebMessageInfo | undefined
38
- upsert: (item: proto.IWebMessageInfo, mode: "append" | "prepend") => void
39
- update: (item: proto.IWebMessageInfo) => boolean
40
- remove: (item: proto.IWebMessageInfo) => boolean
41
- updateAssign: (id: string, update: Partial<proto.IWebMessageInfo>) => boolean
42
- clear: () => void
43
- filter: (contain: (item: proto.IWebMessageInfo) => boolean) => void
44
- toJSON: () => proto.IWebMessageInfo[]
45
- fromJSON: (newItems: proto.IWebMessageInfo[]) => void
46
- }
47
- }
48
- groupMetadata: {
49
- [_: string]: GroupMetadata
50
- }
51
- state: ConnectionState
52
- presences: {
53
- [id: string]: {
54
- [participant: string]: PresenceData
55
- }
56
- }
57
- labels: ObjectRepository<Label>
58
- labelAssociations: KeyedDB<LabelAssociation, string>
59
- bind: (ev: BaileysEventEmitter) => void
60
- /** loads messages from the store, if not found -- uses the legacy connection */
61
- loadMessages: (jid: string, count: number, cursor: WAMessageCursor) => Promise<proto.IWebMessageInfo[]>
62
- /**
63
- * Get all available labels for profile
64
- *
65
- * Keep in mind that the list is formed from predefined tags and tags
66
- * that were "caught" during their editing.
67
- */
68
- getLabels: () => ObjectRepository<Label>
69
- /**
70
- * Get labels for chat
71
- *
72
- * @returns Label IDs
73
- **/
74
- getChatLabels: (chatId: string) => LabelAssociation[]
75
- /**
76
- * Get labels for message
77
- *
78
- * @returns Label IDs
79
- **/
80
- getMessageLabels: (messageId: string) => string[]
81
- loadMessage: (jid: string, id: string) => Promise<proto.IWebMessageInfo | undefined>
82
- mostRecentMessage: (jid: string) => Promise<proto.IWebMessageInfo>
83
- fetchImageUrl: (jid: string, baron: WASocket | undefined) => Promise<string | null | undefined>
84
- fetchGroupMetadata: (jid: string, baron: WASocket | undefined) => Promise<GroupMetadata>
85
- fetchMessageReceipts: ({ remoteJid, id }: WAMessageKey) => Promise<proto.IUserReceipt[] | null | undefined>
86
- toJSON: () => {
87
- chats: KeyedDB<Chat, string>
88
- contacts: {
89
- [_: string]: Contact
90
- }
91
- messages: {
92
- [_: string]: {
93
- array: proto.IWebMessageInfo[]
94
- get: (id: string) => proto.IWebMessageInfo | undefined
95
- upsert: (item: proto.IWebMessageInfo, mode: "append" | "prepend") => void
96
- update: (item: proto.IWebMessageInfo) => boolean
97
- remove: (item: proto.IWebMessageInfo) => boolean
98
- updateAssign: (id: string, update: Partial<proto.IWebMessageInfo>) => boolean
99
- clear: () => void
100
- filter: (contain: (item: proto.IWebMessageInfo) => boolean) => void
101
- toJSON: () => proto.IWebMessageInfo[]
102
- fromJSON: (newItems: proto.IWebMessageInfo[]) => void
103
- }
104
- }
105
- labels: ObjectRepository<Label>
106
- labelAssociations: KeyedDB<LabelAssociation, string>
107
- }
108
- fromJSON: (json: {
109
- chats: Chat[]
110
- contacts: {
111
- [id: string]: Contact
112
- }
113
- messages: {
114
- [id: string]: proto.IWebMessageInfo[]
115
- }
116
- labels: {
117
- [labelId: string]: Label
118
- }
119
- labelAssociations: LabelAssociation[]
120
- }) => void
121
- writeToFile: (path: string) => void
122
- readFromFile: (path: string) => void
123
- }
@@ -1,429 +0,0 @@
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 WAProto_1 = require("../../WAProto")
10
- const Defaults_1 = require("../Defaults")
11
- const LabelAssociation_1 = require("../Types/LabelAssociation")
12
- const Utils_1 = require("../Utils")
13
- const WABinary_1 = require("../WABinary")
14
- const Store_1 = require("./make-ordered-dictionary")
15
- const object_repository_1 = require("./object-repository")
16
-
17
- const waChatKey = (pin) => ({
18
- key: (c) => (pin ? (c.pinned ? '1' : '0') : '') + (c.archived ? '0' : '1') + (c.conversationTimestamp ? c.conversationTimestamp.toString(16).padStart(8, '0') : '') + c.id,
19
- compare: (k1, k2) => k2.localeCompare(k1)
20
- })
21
-
22
- const waMessageID = (m) => m.key.id || ''
23
-
24
- const waLabelAssociationKey = {
25
- key: (la) => (la.type === LabelAssociation_1.LabelAssociationType.Chat ? la.chatId + la.labelId : la.chatId + la.messageId + la.labelId),
26
- compare: (k1, k2) => k2.localeCompare(k1)
27
- }
28
-
29
- const makeMessagesDictionary = () => Store_1.makeOrderedDictionary(waMessageID)
30
-
31
- const makeInMemoryStore = (config) => {
32
- const socket = config.socket
33
- const chatKey = config.chatKey || waChatKey(true)
34
- const labelAssociationKey = config.labelAssociationKey || waLabelAssociationKey
35
- const logger = config.logger || Defaults_1.DEFAULT_CONNECTION_CONFIG.logger.child({ stream: 'in-mem-store' })
36
- const KeyedDB = require('@adiwajshing/keyed-db').default
37
- const chats = new KeyedDB(chatKey, c => c.id)
38
- const messages = {}
39
- const contacts = {}
40
- const groupMetadata = {}
41
- const presences = {}
42
- const state = { connection: 'close' }
43
- const labels = new object_repository_1.ObjectRepository()
44
- const labelAssociations = new KeyedDB(labelAssociationKey, labelAssociationKey.key)
45
- const assertMessageList = (jid) => {
46
- if (!messages[jid]) {
47
- messages[jid] = makeMessagesDictionary()
48
- }
49
- return messages[jid]
50
- }
51
- const contactsUpsert = (newContacts) => {
52
- const oldContacts = new Set(Object.keys(contacts))
53
- for (const contact of newContacts) {
54
- oldContacts.delete(contact.id)
55
- contacts[contact.id] = Object.assign(contacts[contact.id] || {}, contact)
56
- }
57
- return oldContacts
58
- }
59
- const labelsUpsert = (newLabels) => {
60
- for (const label of newLabels) {
61
- labels.upsertById(label.id, label)
62
- }
63
- }
64
- /**
65
- * binds to a BaileysEventEmitter.
66
- * It listens to all events and constructs a state that you can query accurate data from.
67
- * Eg. can use the store to fetch chats, contacts, messages etc.
68
- * @param ev typically the event emitter from the socket connection
69
- */
70
- const bind = (ev) => {
71
- ev.on('connection.update', update => {
72
- Object.assign(state, update)
73
- })
74
- ev.on('messaging-history.set', ({ chats: newChats, contacts: newContacts, messages: newMessages, isLatest, syncType }) => {
75
- if (syncType === WAProto_1.proto.HistorySync.HistorySyncType.ON_DEMAND) {
76
- return // FOR NOW,
77
- //TODO: HANDLE
78
- }
79
- if (isLatest) {
80
- chats.clear()
81
- for (const id in messages) {
82
- delete messages[id]
83
- }
84
- }
85
- const chatsAdded = chats.insertIfAbsent(...newChats).length
86
- logger.debug({ chatsAdded }, 'synced chats')
87
- const oldContacts = contactsUpsert(newContacts)
88
- if (isLatest) {
89
- for (const jid of oldContacts) {
90
- delete contacts[jid]
91
- }
92
- }
93
- logger.debug({ deletedContacts: isLatest ? oldContacts.size : 0, newContacts }, 'synced contacts')
94
- for (const msg of newMessages) {
95
- const jid = msg.key.remoteJid
96
- const list = assertMessageList(jid)
97
- list.upsert(msg, 'prepend')
98
- }
99
- logger.debug({ messages: newMessages.length }, 'synced messages')
100
- })
101
- ev.on('contacts.upsert', contacts => {
102
- contactsUpsert(contacts)
103
- })
104
- ev.on('contacts.update', async (updates) => {
105
- for (const update of updates) {
106
- let contact
107
- if (contacts[update.id]) {
108
- contact = contacts[update.id]
109
- }
110
- else {
111
- const contactHashes = await Promise.all(Object.keys(contacts).map(async (contactId) => {
112
- const { user } = WABinary_1.jidDecode(contactId)
113
- return [contactId, (await Utils_1.md5(Buffer.from(user + 'WA_ADD_NOTIF', 'utf8'))).toString('base64').slice(0, 3)]
114
- }))
115
- contact = contacts[contactHashes.find(([, b]) => b === update.id?.[0]) || ''] // find contact by attrs.hash, when user is not saved as a contact
116
- }
117
- if (contact) {
118
- if (update.imgUrl === 'changed') {
119
- contact.imgUrl = socket ? await socket.profilePictureUrl(contact.id) : undefined
120
- }
121
- else if (update.imgUrl === 'removed') {
122
- delete contact.imgUrl
123
- }
124
- }
125
- else {
126
- return logger.debug({ update }, 'got update for non-existant contact')
127
- }
128
- Object.assign(contacts[contact.id], contact)
129
- }
130
- })
131
- ev.on('chats.upsert', newChats => {
132
- chats.upsert(...newChats)
133
- })
134
- ev.on('chats.update', updates => {
135
- for (let update of updates) {
136
- const result = chats.update(update.id, chat => {
137
- if (update.unreadCount > 0) {
138
- update = { ...update }
139
- update.unreadCount = (chat.unreadCount || 0) + update.unreadCount
140
- }
141
- Object.assign(chat, update)
142
- })
143
- if (!result) {
144
- logger.debug({ update }, 'got update for non-existant chat')
145
- }
146
- }
147
- })
148
- ev.on('labels.edit', (label) => {
149
- if (label.deleted) {
150
- return labels.deleteById(label.id)
151
- }
152
- // WhatsApp can store only up to 20 labels
153
- if (labels.count() < 20) {
154
- return labels.upsertById(label.id, label)
155
- }
156
- logger.error('Labels count exceed')
157
- })
158
- ev.on('labels.association', ({ type, association }) => {
159
- switch (type) {
160
- case 'add':
161
- labelAssociations.upsert(association)
162
- break
163
- case 'remove':
164
- labelAssociations.delete(association)
165
- break
166
- default:
167
- console.error(`unknown operation type [${type}]`)
168
- }
169
- })
170
- ev.on('presence.update', ({ id, presences: update }) => {
171
- presences[id] = presences[id] || {}
172
- Object.assign(presences[id], update)
173
- })
174
- ev.on('chats.delete', deletions => {
175
- for (const item of deletions) {
176
- if (chats.get(item)) {
177
- chats.deleteById(item)
178
- }
179
- }
180
- })
181
- ev.on('messages.upsert', ({ messages: newMessages, type }) => {
182
- switch (type) {
183
- case 'append':
184
- case 'notify':
185
- for (const msg of newMessages) {
186
- const jid = WABinary_1.jidNormalizedUser(msg.key.remoteJid)
187
- const list = assertMessageList(jid)
188
- list.upsert(msg, 'append')
189
- if (type === 'notify' && !chats.get(jid)) {
190
- ev.emit('chats.upsert', [
191
- {
192
- id: jid,
193
- conversationTimestamp: Utils_1.toNumber(msg.messageTimestamp),
194
- unreadCount: 1
195
- }
196
- ])
197
- }
198
- }
199
- break
200
- }
201
- })
202
- ev.on('messages.update', updates => {
203
- for (const { update, key } of updates) {
204
- const list = assertMessageList(WABinary_1.jidNormalizedUser(key.remoteJid))
205
- if (update?.status) {
206
- const listStatus = list.get(key.id)?.status
207
- if (listStatus && update?.status <= listStatus) {
208
- logger.debug({ update, storedStatus: listStatus }, 'status stored newer then update')
209
- delete update.status
210
- logger.debug({ update }, 'new update object')
211
- }
212
- }
213
- const result = list.updateAssign(key.id, update)
214
- if (!result) {
215
- logger.debug({ update }, 'got update for non-existent message')
216
- }
217
- }
218
- })
219
- ev.on('messages.delete', item => {
220
- if ('all' in item) {
221
- const list = messages[item.jid]
222
- list?.clear()
223
- }
224
- else {
225
- const jid = item.keys[0].remoteJid
226
- const list = messages[jid]
227
- if (list) {
228
- const idSet = new Set(item.keys.map(k => k.id))
229
- list.filter(m => !idSet.has(m.key.id))
230
- }
231
- }
232
- })
233
- ev.on('groups.update', updates => {
234
- for (const update of updates) {
235
- const id = update.id
236
- if (groupMetadata[id]) {
237
- Object.assign(groupMetadata[id], update)
238
- }
239
- else {
240
- logger.debug({ update }, 'got update for non-existant group metadata')
241
- }
242
- }
243
- })
244
- ev.on('group-participants.update', ({ id, participants, action }) => {
245
- const metadata = groupMetadata[id]
246
- if (metadata) {
247
- switch (action) {
248
- case 'add':
249
- metadata.participants.push(...participants.map(id => ({ id, isAdmin: false, isSuperAdmin: false })))
250
- break
251
- case 'demote':
252
- case 'promote':
253
- for (const participant of metadata.participants) {
254
- if (participants.includes(participant.id)) {
255
- participant.isAdmin = action === 'promote'
256
- }
257
- }
258
- break
259
- case 'remove':
260
- metadata.participants = metadata.participants.filter(p => !participants.includes(p.id))
261
- break
262
- }
263
- }
264
- })
265
- ev.on('message-receipt.update', updates => {
266
- for (const { key, receipt } of updates) {
267
- const obj = messages[key.remoteJid]
268
- const msg = obj?.get(key.id)
269
- if (msg) {
270
- Utils_1.updateMessageWithReceipt(msg, receipt)
271
- }
272
- }
273
- })
274
- ev.on('messages.reaction', (reactions) => {
275
- for (const { key, reaction } of reactions) {
276
- const obj = messages[key.remoteJid]
277
- const msg = obj?.get(key.id)
278
- if (msg) {
279
- Utils_1.updateMessageWithReaction(msg, reaction)
280
- }
281
- }
282
- })
283
- }
284
- const toJSON = () => ({
285
- chats,
286
- contacts,
287
- messages,
288
- labels,
289
- labelAssociations
290
- })
291
- const fromJSON = (json) => {
292
- chats.upsert(...json.chats)
293
- labelAssociations.upsert(...json.labelAssociations || [])
294
- contactsUpsert(Object.values(json.contacts))
295
- labelsUpsert(Object.values(json.labels || {}))
296
- for (const jid in json.messages) {
297
- const list = assertMessageList(jid)
298
- for (const msg of json.messages[jid]) {
299
- list.upsert(WAProto_1.proto.WebMessageInfo.fromObject(msg), 'append')
300
- }
301
- }
302
- }
303
- return {
304
- chats,
305
- contacts,
306
- messages,
307
- groupMetadata,
308
- state,
309
- presences,
310
- labels,
311
- labelAssociations,
312
- bind,
313
- /** loads messages from the store, if not found -- uses the legacy connection */
314
- loadMessages: async (jid, count, cursor) => {
315
- const list = assertMessageList(jid)
316
- const mode = !cursor || 'before' in cursor ? 'before' : 'after'
317
- const cursorKey = !!cursor ? ('before' in cursor ? cursor.before : cursor.after) : undefined
318
- const cursorValue = cursorKey ? list.get(cursorKey.id) : undefined
319
- let messages
320
- if (list && mode === 'before' && (!cursorKey || cursorValue)) {
321
- if (cursorValue) {
322
- const msgIdx = list.array.findIndex(m => m.key.id === cursorKey?.id)
323
- messages = list.array.slice(0, msgIdx)
324
- }
325
- else {
326
- messages = list.array
327
- }
328
- const diff = count - messages.length
329
- if (diff < 0) {
330
- messages = messages.slice(-count) // get the last X messages
331
- }
332
- }
333
- else {
334
- messages = []
335
- }
336
- return messages
337
- },
338
- /**
339
- * Get all available labels for profile
340
- *
341
- * Keep in mind that the list is formed from predefined tags and tags
342
- * that were "caught" during their editing.
343
- */
344
- getLabels: () => {
345
- return labels
346
- },
347
- /**
348
- * Get labels for chat
349
- *
350
- * @returns Label IDs
351
- **/
352
- getChatLabels: (chatId) => {
353
- return labelAssociations.filter((la) => la.chatId === chatId).all()
354
- },
355
- /**
356
- * Get labels for message
357
- *
358
- * @returns Label IDs
359
- **/
360
- getMessageLabels: (messageId) => {
361
- const associations = labelAssociations
362
- .filter((la) => la.messageId === messageId)
363
- .all()
364
- return associations.map(({ labelId }) => labelId)
365
- },
366
- loadMessage: async (jid, id) => messages[jid]?.get(id),
367
- mostRecentMessage: async (jid) => {
368
- const message = messages[jid]?.array.slice(-1)[0]
369
- return message
370
- },
371
- fetchImageUrl: async (jid, baron) => {
372
- const contact = contacts[jid]
373
- if (!contact) {
374
- return baron?.profilePictureUrl(jid)
375
- }
376
- if (typeof contact.imgUrl === 'undefined') {
377
- contact.imgUrl = await baron?.profilePictureUrl(jid)
378
- }
379
- return contact.imgUrl
380
- },
381
- fetchGroupMetadata: async (jid, baron) => {
382
- if (!groupMetadata[jid]) {
383
- const metadata = await baron?.groupMetadata(jid)
384
- if (metadata) {
385
- groupMetadata[jid] = metadata
386
- }
387
- }
388
- return groupMetadata[jid]
389
- },
390
- // fetchBroadcastListInfo: async(jid: string, sock: WASocket | undefined) => {
391
- // if(!groupMetadata[jid]) {
392
- // const metadata = await sock?.getBroadcastListInfo(jid)
393
- // if(metadata) {
394
- // groupMetadata[jid] = metadata
395
- // }
396
- // }
397
- // return groupMetadata[jid]
398
- // },
399
- fetchMessageReceipts: async ({ remoteJid, id }) => {
400
- const list = messages[remoteJid]
401
- const msg = list?.get(id)
402
- return msg?.userReceipt
403
- },
404
- toJSON,
405
- fromJSON,
406
- writeToFile: (path) => {
407
- // require fs here so that in case "fs" is not available -- the app does not crash
408
- const { writeFileSync } = require('fs')
409
- writeFileSync(path, JSON.stringify(toJSON()))
410
- },
411
- readFromFile: (path) => {
412
- // require fs here so that in case "fs" is not available -- the app does not crash
413
- const { readFileSync, existsSync } = require('fs')
414
- if (existsSync(path)) {
415
- logger.debug({ path }, 'reading from file')
416
- const jsonStr = readFileSync(path, { encoding: 'utf-8' })
417
- const json = JSON.parse(jsonStr)
418
- fromJSON(json)
419
- }
420
- }
421
- }
422
- }
423
-
424
- module.exports = {
425
- waChatKey,
426
- waMessageID,
427
- waLabelAssociationKey,
428
- makeInMemoryStore
429
- }
@@ -1,12 +0,0 @@
1
- export declare function makeOrderedDictionary<T>(idGetter: (item: T) => string): {
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
- }