@periskope/baileys 6.7.17-alpha.4 → 6.7.18-13

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 (301) hide show
  1. package/README.md +1263 -4
  2. package/WAProto/GenerateStatics.sh +2 -0
  3. package/WAProto/WAProto.proto +4633 -0
  4. package/WAProto/index.d.ts +3212 -122
  5. package/WAProto/index.js +9635 -299
  6. package/lib/Defaults/baileys-version.json +1 -1
  7. package/lib/Defaults/index.d.ts +1 -1
  8. package/lib/Defaults/index.d.ts.map +1 -0
  9. package/lib/Defaults/index.js +16 -16
  10. package/lib/Defaults/index.js.map +1 -0
  11. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  12. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  13. package/lib/Signal/Group/ciphertext-message.js +15 -0
  14. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  15. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  16. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  17. package/lib/Signal/Group/group-session-builder.js +64 -0
  18. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  19. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  20. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  21. package/lib/Signal/Group/group_cipher.js +96 -0
  22. package/lib/Signal/Group/group_cipher.js.map +1 -0
  23. package/lib/Signal/Group/index.d.ts +11 -0
  24. package/lib/Signal/Group/index.d.ts.map +1 -0
  25. package/lib/Signal/Group/index.js +57 -0
  26. package/lib/Signal/Group/index.js.map +1 -0
  27. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  28. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  29. package/lib/Signal/Group/keyhelper.js +55 -0
  30. package/lib/Signal/Group/keyhelper.js.map +1 -0
  31. package/lib/Signal/Group/queue-job.d.ts +1 -0
  32. package/lib/Signal/Group/queue-job.d.ts.map +1 -0
  33. package/lib/Signal/Group/queue-job.js +57 -0
  34. package/lib/Signal/Group/queue-job.js.map +1 -0
  35. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  36. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  37. package/lib/Signal/Group/sender-chain-key.js +34 -0
  38. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  40. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  41. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  42. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  43. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  44. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  45. package/lib/Signal/Group/sender-key-message.js +69 -0
  46. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  47. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  48. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  49. package/lib/Signal/Group/sender-key-name.js +51 -0
  50. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  51. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  52. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  53. package/lib/Signal/Group/sender-key-record.js +53 -0
  54. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  55. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  56. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  57. package/lib/Signal/Group/sender-key-state.js +99 -0
  58. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  59. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  60. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  61. package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +29 -39
  62. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  63. package/lib/Signal/libsignal.d.ts.map +1 -0
  64. package/lib/Signal/libsignal.js +33 -20
  65. package/lib/Signal/libsignal.js.map +1 -0
  66. package/lib/Socket/Client/index.d.ts.map +1 -0
  67. package/lib/Socket/Client/index.js.map +1 -0
  68. package/lib/Socket/Client/types.d.ts.map +1 -0
  69. package/lib/Socket/Client/types.js.map +1 -0
  70. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  71. package/lib/Socket/Client/websocket.js +1 -1
  72. package/lib/Socket/Client/websocket.js.map +1 -0
  73. package/lib/Socket/business.d.ts +36 -8
  74. package/lib/Socket/business.d.ts.map +1 -0
  75. package/lib/Socket/business.js +5 -5
  76. package/lib/Socket/business.js.map +1 -0
  77. package/lib/Socket/chats.d.ts +12 -7
  78. package/lib/Socket/chats.d.ts.map +1 -0
  79. package/lib/Socket/chats.js +90 -72
  80. package/lib/Socket/chats.js.map +1 -0
  81. package/lib/Socket/communities.d.ts +218 -0
  82. package/lib/Socket/communities.d.ts.map +1 -0
  83. package/lib/Socket/communities.js +351 -0
  84. package/lib/Socket/communities.js.map +1 -0
  85. package/lib/Socket/groups.d.ts +14 -8
  86. package/lib/Socket/groups.d.ts.map +1 -0
  87. package/lib/Socket/groups.js +39 -23
  88. package/lib/Socket/groups.js.map +1 -0
  89. package/lib/Socket/index.d.ts +36 -8
  90. package/lib/Socket/index.d.ts.map +1 -0
  91. package/lib/Socket/index.js +2 -2
  92. package/lib/Socket/index.js.map +1 -0
  93. package/lib/Socket/messages-recv.d.ts +35 -7
  94. package/lib/Socket/messages-recv.d.ts.map +1 -0
  95. package/lib/Socket/messages-recv.js +228 -58
  96. package/lib/Socket/messages-recv.js.map +1 -0
  97. package/lib/Socket/messages-send.d.ts +35 -7
  98. package/lib/Socket/messages-send.d.ts.map +1 -0
  99. package/lib/Socket/messages-send.js +81 -48
  100. package/lib/Socket/messages-send.js.map +1 -0
  101. package/lib/Socket/mex.d.ts +2 -0
  102. package/lib/Socket/mex.d.ts.map +1 -0
  103. package/lib/Socket/mex.js +46 -0
  104. package/lib/Socket/mex.js.map +1 -0
  105. package/lib/Socket/newsletter.d.ts +141 -0
  106. package/lib/Socket/newsletter.d.ts.map +1 -0
  107. package/lib/Socket/newsletter.js +183 -0
  108. package/lib/Socket/newsletter.js.map +1 -0
  109. package/lib/Socket/socket.d.ts +3 -3
  110. package/lib/Socket/socket.d.ts.map +1 -0
  111. package/lib/Socket/socket.js +22 -30
  112. package/lib/Socket/socket.js.map +1 -0
  113. package/lib/Socket/usync.d.ts +3 -3
  114. package/lib/Socket/usync.d.ts.map +1 -0
  115. package/lib/Socket/usync.js +10 -15
  116. package/lib/Socket/usync.js.map +1 -0
  117. package/lib/Types/Auth.d.ts +1 -1
  118. package/lib/Types/Auth.d.ts.map +1 -0
  119. package/lib/Types/Auth.js.map +1 -0
  120. package/lib/Types/Call.d.ts.map +1 -0
  121. package/lib/Types/Call.js.map +1 -0
  122. package/lib/Types/Chat.d.ts +4 -1
  123. package/lib/Types/Chat.d.ts.map +1 -0
  124. package/lib/Types/Chat.js +7 -1
  125. package/lib/Types/Chat.js.map +1 -0
  126. package/lib/Types/Contact.d.ts +4 -0
  127. package/lib/Types/Contact.d.ts.map +1 -0
  128. package/lib/Types/Contact.js.map +1 -0
  129. package/lib/Types/Events.d.ts +34 -1
  130. package/lib/Types/Events.d.ts.map +1 -0
  131. package/lib/Types/Events.js.map +1 -0
  132. package/lib/Types/GroupMetadata.d.ts +10 -3
  133. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  134. package/lib/Types/GroupMetadata.js.map +1 -0
  135. package/lib/Types/Label.d.ts.map +1 -0
  136. package/lib/Types/Label.js.map +1 -0
  137. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  138. package/lib/Types/LabelAssociation.js.map +1 -0
  139. package/lib/Types/Message.d.ts +12 -2
  140. package/lib/Types/Message.d.ts.map +1 -0
  141. package/lib/Types/Message.js.map +1 -0
  142. package/lib/Types/Newsletter.d.ts +134 -0
  143. package/lib/Types/Newsletter.d.ts.map +1 -0
  144. package/lib/Types/Newsletter.js +33 -0
  145. package/lib/Types/Newsletter.js.map +1 -0
  146. package/lib/Types/Product.d.ts.map +1 -0
  147. package/lib/Types/Product.js.map +1 -0
  148. package/lib/Types/Signal.d.ts.map +1 -0
  149. package/lib/Types/Signal.js.map +1 -0
  150. package/lib/Types/Socket.d.ts +3 -3
  151. package/lib/Types/Socket.d.ts.map +1 -0
  152. package/lib/Types/Socket.js.map +1 -0
  153. package/lib/Types/State.d.ts.map +1 -0
  154. package/lib/Types/State.js.map +1 -0
  155. package/lib/Types/USync.d.ts.map +1 -0
  156. package/lib/Types/USync.js.map +1 -0
  157. package/lib/Types/index.d.ts +1 -0
  158. package/lib/Types/index.d.ts.map +1 -0
  159. package/lib/Types/index.js +1 -0
  160. package/lib/Types/index.js.map +1 -0
  161. package/lib/Utils/auth-utils.d.ts.map +1 -0
  162. package/lib/Utils/auth-utils.js +8 -9
  163. package/lib/Utils/auth-utils.js.map +1 -0
  164. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  165. package/lib/Utils/baileys-event-stream.js +1 -1
  166. package/lib/Utils/baileys-event-stream.js.map +1 -0
  167. package/lib/Utils/business.d.ts.map +1 -0
  168. package/lib/Utils/business.js +9 -11
  169. package/lib/Utils/business.js.map +1 -0
  170. package/lib/Utils/chat-utils.d.ts +4 -4
  171. package/lib/Utils/chat-utils.d.ts.map +1 -0
  172. package/lib/Utils/chat-utils.js +78 -70
  173. package/lib/Utils/chat-utils.js.map +1 -0
  174. package/lib/Utils/crypto.d.ts.map +1 -0
  175. package/lib/Utils/crypto.js +4 -10
  176. package/lib/Utils/crypto.js.map +1 -0
  177. package/lib/Utils/decode-wa-message.d.ts +3 -4
  178. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  179. package/lib/Utils/decode-wa-message.js +11 -2
  180. package/lib/Utils/decode-wa-message.js.map +1 -0
  181. package/lib/Utils/event-buffer.d.ts +2 -2
  182. package/lib/Utils/event-buffer.d.ts.map +1 -0
  183. package/lib/Utils/event-buffer.js +9 -13
  184. package/lib/Utils/event-buffer.js.map +1 -0
  185. package/lib/Utils/generics.d.ts +2 -1
  186. package/lib/Utils/generics.d.ts.map +1 -0
  187. package/lib/Utils/generics.js +32 -30
  188. package/lib/Utils/generics.js.map +1 -0
  189. package/lib/Utils/history.d.ts.map +1 -0
  190. package/lib/Utils/history.js +10 -11
  191. package/lib/Utils/history.js.map +1 -0
  192. package/lib/Utils/index.d.ts.map +1 -0
  193. package/lib/Utils/index.js.map +1 -0
  194. package/lib/Utils/link-preview.d.ts.map +1 -0
  195. package/lib/Utils/link-preview.js +9 -10
  196. package/lib/Utils/link-preview.js.map +1 -0
  197. package/lib/Utils/logger.d.ts.map +1 -0
  198. package/lib/Utils/logger.js.map +1 -0
  199. package/lib/Utils/lt-hash.d.ts.map +1 -0
  200. package/lib/Utils/lt-hash.js +2 -2
  201. package/lib/Utils/lt-hash.js.map +1 -0
  202. package/lib/Utils/make-mutex.d.ts.map +1 -0
  203. package/lib/Utils/make-mutex.js +1 -1
  204. package/lib/Utils/make-mutex.js.map +1 -0
  205. package/lib/Utils/messages-media.d.ts +11 -3
  206. package/lib/Utils/messages-media.d.ts.map +1 -0
  207. package/lib/Utils/messages-media.js +108 -90
  208. package/lib/Utils/messages-media.js.map +1 -0
  209. package/lib/Utils/messages.d.ts +3 -3
  210. package/lib/Utils/messages.d.ts.map +1 -0
  211. package/lib/Utils/messages.js +109 -69
  212. package/lib/Utils/messages.js.map +1 -0
  213. package/lib/Utils/noise-handler.d.ts.map +1 -0
  214. package/lib/Utils/noise-handler.js.map +1 -0
  215. package/lib/Utils/process-message.d.ts +1 -1
  216. package/lib/Utils/process-message.d.ts.map +1 -0
  217. package/lib/Utils/process-message.js +62 -65
  218. package/lib/Utils/process-message.js.map +1 -0
  219. package/lib/Utils/signal.d.ts.map +1 -0
  220. package/lib/Utils/signal.js +9 -7
  221. package/lib/Utils/signal.js.map +1 -0
  222. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  223. package/lib/Utils/use-multi-file-auth-state.js +2 -3
  224. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  225. package/lib/Utils/validate-connection.d.ts.map +1 -0
  226. package/lib/Utils/validate-connection.js +17 -22
  227. package/lib/Utils/validate-connection.js.map +1 -0
  228. package/lib/WABinary/constants.d.ts +4 -4
  229. package/lib/WABinary/constants.d.ts.map +1 -0
  230. package/lib/WABinary/constants.js +1271 -8
  231. package/lib/WABinary/constants.js.map +1 -0
  232. package/lib/WABinary/decode.d.ts.map +1 -0
  233. package/lib/WABinary/decode.js +2 -1
  234. package/lib/WABinary/decode.js.map +1 -0
  235. package/lib/WABinary/encode.d.ts.map +1 -0
  236. package/lib/WABinary/encode.js +2 -2
  237. package/lib/WABinary/encode.js.map +1 -0
  238. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  239. package/lib/WABinary/generic-utils.js +1 -1
  240. package/lib/WABinary/generic-utils.js.map +1 -0
  241. package/lib/WABinary/index.d.ts.map +1 -0
  242. package/lib/WABinary/index.js.map +1 -0
  243. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  244. package/lib/WABinary/jid-utils.js +8 -11
  245. package/lib/WABinary/jid-utils.js.map +1 -0
  246. package/lib/WABinary/types.d.ts.map +1 -0
  247. package/lib/WABinary/types.js.map +1 -0
  248. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  249. package/lib/WAM/BinaryInfo.js.map +1 -0
  250. package/lib/WAM/constants.d.ts.map +1 -0
  251. package/lib/WAM/constants.js +2252 -2359
  252. package/lib/WAM/constants.js.map +1 -0
  253. package/lib/WAM/encode.d.ts.map +1 -0
  254. package/lib/WAM/encode.js +5 -7
  255. package/lib/WAM/encode.js.map +1 -0
  256. package/lib/WAM/index.d.ts.map +1 -0
  257. package/lib/WAM/index.js.map +1 -0
  258. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  259. package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
  260. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  261. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  262. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +2 -2
  263. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  264. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  265. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +3 -3
  266. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  267. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  268. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +5 -5
  269. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  270. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  271. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +1 -1
  272. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  273. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  274. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +1 -1
  275. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  276. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  277. package/lib/WAUSync/Protocols/index.js.map +1 -0
  278. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  279. package/lib/WAUSync/USyncQuery.js +17 -13
  280. package/lib/WAUSync/USyncQuery.js.map +1 -0
  281. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  282. package/lib/WAUSync/USyncUser.js.map +1 -0
  283. package/lib/WAUSync/index.d.ts.map +1 -0
  284. package/lib/WAUSync/index.js.map +1 -0
  285. package/lib/index.d.ts.map +1 -0
  286. package/lib/index.js.map +1 -0
  287. package/package.json +25 -17
  288. package/WASignalGroup/GroupProtocol.js +0 -1697
  289. package/WASignalGroup/ciphertext_message.js +0 -16
  290. package/WASignalGroup/group_cipher.js +0 -120
  291. package/WASignalGroup/group_session_builder.js +0 -46
  292. package/WASignalGroup/index.js +0 -5
  293. package/WASignalGroup/keyhelper.js +0 -21
  294. package/WASignalGroup/protobufs.js +0 -3
  295. package/WASignalGroup/queue_job.js +0 -69
  296. package/WASignalGroup/sender_chain_key.js +0 -50
  297. package/WASignalGroup/sender_key_distribution_message.js +0 -78
  298. package/WASignalGroup/sender_key_message.js +0 -92
  299. package/WASignalGroup/sender_key_name.js +0 -70
  300. package/WASignalGroup/sender_key_record.js +0 -56
  301. package/WASignalGroup/sender_key_state.js +0 -129
@@ -18,21 +18,24 @@ const messages_send_1 = require("./messages-send");
18
18
  const makeMessagesRecvSocket = (config) => {
19
19
  const { logger, retryRequestDelayMs, maxMsgRetryCount, getMessage, shouldIgnoreJid } = config;
20
20
  const sock = (0, messages_send_1.makeMessagesSocket)(config);
21
- const { ev, authState, ws, processingMutex, signalRepository, query, upsertMessage, resyncAppState, onUnexpectedError, assertSessions, sendNode, relayMessage, sendReceipt, uploadPreKeys, sendPeerDataOperationMessage, } = sock;
21
+ const { ev, authState, ws, processingMutex, signalRepository, query, upsertMessage, resyncAppState, onUnexpectedError, assertSessions, sendNode, relayMessage, sendReceipt, uploadPreKeys, sendPeerDataOperationMessage } = sock;
22
22
  /** this mutex ensures that each retryRequest will wait for the previous one to finish */
23
23
  const retryMutex = (0, make_mutex_1.makeMutex)();
24
- const msgRetryCache = config.msgRetryCounterCache || new node_cache_1.default({
25
- stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
26
- useClones: false
27
- });
28
- const callOfferCache = config.callOfferCache || new node_cache_1.default({
29
- stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.CALL_OFFER, // 5 mins
30
- useClones: false
31
- });
32
- const placeholderResendCache = config.placeholderResendCache || new node_cache_1.default({
33
- stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
34
- useClones: false
35
- });
24
+ const msgRetryCache = config.msgRetryCounterCache ||
25
+ new node_cache_1.default({
26
+ stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
27
+ useClones: false
28
+ });
29
+ const callOfferCache = config.callOfferCache ||
30
+ new node_cache_1.default({
31
+ stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.CALL_OFFER, // 5 mins
32
+ useClones: false
33
+ });
34
+ const placeholderResendCache = config.placeholderResendCache ||
35
+ new node_cache_1.default({
36
+ stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
37
+ useClones: false
38
+ });
36
39
  let sendActiveReceipts = false;
37
40
  const sendMessageAck = async ({ tag, attrs, content }, errorCode) => {
38
41
  var _a, _b, _c, _d, _e;
@@ -53,7 +56,8 @@ const makeMessagesRecvSocket = (config) => {
53
56
  if (!!attrs.recipient) {
54
57
  stanza.attrs.recipient = attrs.recipient;
55
58
  }
56
- if (!!attrs.type && (tag !== 'message' || (0, WABinary_1.getBinaryNodeChild)({ tag, attrs, content }, 'unavailable') || errorCode !== 0)) {
59
+ if (!!attrs.type &&
60
+ (tag !== 'message' || (0, WABinary_1.getBinaryNodeChild)({ tag, attrs, content }, 'unavailable') || errorCode !== 0)) {
57
61
  stanza.attrs.type = attrs.type;
58
62
  }
59
63
  if (tag === 'message' && (0, WABinary_1.getBinaryNodeChild)({ tag, attrs, content }, 'unavailable')) {
@@ -85,22 +89,24 @@ const makeMessagesRecvSocket = (config) => {
85
89
  await sendNode(stanza);
86
90
  };
87
91
  const rejectCall = async (callId, callFrom) => {
88
- const stanza = ({
92
+ const stanza = {
89
93
  tag: 'call',
90
94
  attrs: {
91
95
  from: authState.creds.me.id,
92
- to: callFrom,
96
+ to: callFrom
93
97
  },
94
- content: [{
98
+ content: [
99
+ {
95
100
  tag: 'reject',
96
101
  attrs: {
97
102
  'call-id': callId,
98
103
  'call-creator': callFrom,
99
- count: '0',
104
+ count: '0'
100
105
  },
101
- content: undefined,
102
- }],
103
- });
106
+ content: undefined
107
+ }
108
+ ]
109
+ };
104
110
  await query(stanza);
105
111
  };
106
112
  const sendRetryRequest = async (node, forceIncludeKeys = false) => {
@@ -208,15 +214,19 @@ const makeMessagesRecvSocket = (config) => {
208
214
  msg.messageStubType = Types_1.WAMessageStubType.GROUP_CREATE;
209
215
  msg.messageStubParameters = [metadata.subject];
210
216
  msg.key = { participant: metadata.owner };
211
- ev.emit('chats.upsert', [{
217
+ ev.emit('chats.upsert', [
218
+ {
212
219
  id: metadata.id,
213
220
  name: metadata.subject,
214
- conversationTimestamp: metadata.creation,
215
- }]);
216
- ev.emit('groups.upsert', [{
221
+ conversationTimestamp: metadata.creation
222
+ }
223
+ ]);
224
+ ev.emit('groups.upsert', [
225
+ {
217
226
  ...metadata,
218
227
  author: participant
219
- }]);
228
+ }
229
+ ]);
220
230
  break;
221
231
  case 'ephemeral':
222
232
  case 'not_ephemeral':
@@ -261,12 +271,12 @@ const makeMessagesRecvSocket = (config) => {
261
271
  case 'announcement':
262
272
  case 'not_announcement':
263
273
  msg.messageStubType = Types_1.WAMessageStubType.GROUP_CHANGE_ANNOUNCE;
264
- msg.messageStubParameters = [(child.tag === 'announcement') ? 'on' : 'off'];
274
+ msg.messageStubParameters = [child.tag === 'announcement' ? 'on' : 'off'];
265
275
  break;
266
276
  case 'locked':
267
277
  case 'unlocked':
268
278
  msg.messageStubType = Types_1.WAMessageStubType.GROUP_CHANGE_RESTRICT;
269
- msg.messageStubParameters = [(child.tag === 'locked') ? 'on' : 'off'];
279
+ msg.messageStubParameters = [child.tag === 'locked' ? 'on' : 'off'];
270
280
  break;
271
281
  case 'invite':
272
282
  msg.messageStubType = Types_1.WAMessageStubType.GROUP_CHANGE_INVITE_LINK;
@@ -317,6 +327,12 @@ const makeMessagesRecvSocket = (config) => {
317
327
  logger.debug({ jid }, 'got privacy token update');
318
328
  }
319
329
  break;
330
+ case 'newsletter':
331
+ await handleNewsletterNotification(node);
332
+ break;
333
+ case 'mex':
334
+ await handleMexNewsletterNotification(node);
335
+ break;
320
336
  case 'w:gp2':
321
337
  handleGroupNotification(node.attrs.participant, child, result);
322
338
  break;
@@ -344,10 +360,12 @@ const makeMessagesRecvSocket = (config) => {
344
360
  case 'picture':
345
361
  const setPicture = (0, WABinary_1.getBinaryNodeChild)(node, 'set');
346
362
  const delPicture = (0, WABinary_1.getBinaryNodeChild)(node, 'delete');
347
- ev.emit('contacts.update', [{
363
+ ev.emit('contacts.update', [
364
+ {
348
365
  id: (0, WABinary_1.jidNormalizedUser)((_a = node === null || node === void 0 ? void 0 : node.attrs) === null || _a === void 0 ? void 0 : _a.from) || ((_c = (_b = (setPicture || delPicture)) === null || _b === void 0 ? void 0 : _b.attrs) === null || _c === void 0 ? void 0 : _c.hash) || '',
349
366
  imgUrl: setPicture ? 'changed' : 'removed'
350
- }]);
367
+ }
368
+ ]);
351
369
  if ((0, WABinary_1.isJidGroup)(from)) {
352
370
  const node = setPicture || delPicture;
353
371
  result.messageStubType = Types_1.WAMessageStubType.GROUP_CHANGE_ICON;
@@ -356,7 +374,7 @@ const makeMessagesRecvSocket = (config) => {
356
374
  }
357
375
  result.participant = node === null || node === void 0 ? void 0 : node.attrs.author;
358
376
  result.key = {
359
- ...result.key || {},
377
+ ...(result.key || {}),
360
378
  participant: setPicture === null || setPicture === void 0 ? void 0 : setPicture.attrs.author
361
379
  };
362
380
  }
@@ -371,8 +389,8 @@ const makeMessagesRecvSocket = (config) => {
371
389
  ...authState.creds.accountSettings,
372
390
  defaultDisappearingMode: {
373
391
  ephemeralExpiration: newDuration,
374
- ephemeralSettingTimestamp: timestamp,
375
- },
392
+ ephemeralSettingTimestamp: timestamp
393
+ }
376
394
  }
377
395
  });
378
396
  }
@@ -380,7 +398,7 @@ const makeMessagesRecvSocket = (config) => {
380
398
  const blocklists = (0, WABinary_1.getBinaryNodeChildren)(child, 'item');
381
399
  for (const { attrs } of blocklists) {
382
400
  const blocklist = [attrs.jid];
383
- const type = (attrs.action === 'block') ? 'add' : 'remove';
401
+ const type = attrs.action === 'block' ? 'add' : 'remove';
384
402
  ev.emit('blocklist.update', { blocklist, type });
385
403
  }
386
404
  }
@@ -398,7 +416,11 @@ const makeMessagesRecvSocket = (config) => {
398
416
  salt: linkCodeSalt,
399
417
  info: 'link_code_pairing_key_bundle_encryption_key'
400
418
  });
401
- const encryptPayload = Buffer.concat([Buffer.from(authState.creds.signedIdentityKey.public), primaryIdentityPublicKey, random]);
419
+ const encryptPayload = Buffer.concat([
420
+ Buffer.from(authState.creds.signedIdentityKey.public),
421
+ primaryIdentityPublicKey,
422
+ random
423
+ ]);
402
424
  const encryptIv = (0, crypto_1.randomBytes)(12);
403
425
  const encrypted = (0, Utils_1.aesEncryptGCM)(encryptPayload, linkCodePairingExpanded, encryptIv, Buffer.alloc(0));
404
426
  const encryptedPayload = Buffer.concat([linkCodeSalt, encryptIv, encrypted]);
@@ -418,7 +440,7 @@ const makeMessagesRecvSocket = (config) => {
418
440
  tag: 'link_code_companion_reg',
419
441
  attrs: {
420
442
  jid: authState.creds.me.id,
421
- stage: 'companion_finish',
443
+ stage: 'companion_finish'
422
444
  },
423
445
  content: [
424
446
  {
@@ -512,8 +534,7 @@ const makeMessagesRecvSocket = (config) => {
512
534
  const isLid = attrs.from.includes('lid');
513
535
  const isNodeFromMe = (0, WABinary_1.areJidsSameUser)(attrs.participant || attrs.from, isLid ? (_a = authState.creds.me) === null || _a === void 0 ? void 0 : _a.lid : (_b = authState.creds.me) === null || _b === void 0 ? void 0 : _b.id);
514
536
  const remoteJid = !isNodeFromMe || (0, WABinary_1.isJidGroup)(attrs.from) ? attrs.from : attrs.recipient;
515
- const fromMe = !attrs.recipient || ((attrs.type === 'retry' || attrs.type === 'sender')
516
- && isNodeFromMe);
537
+ const fromMe = !attrs.recipient || ((attrs.type === 'retry' || attrs.type === 'sender') && isNodeFromMe);
517
538
  const key = {
518
539
  remoteJid,
519
540
  id: '',
@@ -533,16 +554,15 @@ const makeMessagesRecvSocket = (config) => {
533
554
  try {
534
555
  await Promise.all([
535
556
  processingMutex.mutex(async () => {
557
+ var _a, _b, _c;
536
558
  const status = (0, Utils_1.getStatusFromReceiptType)(attrs.type);
537
559
  if (typeof status !== 'undefined' &&
538
- (
539
560
  // basically, we only want to know when a message from us has been delivered to/read by the other person
540
561
  // or another device of ours has read some messages
541
- status >= WAProto_1.proto.WebMessageInfo.Status.SERVER_ACK ||
542
- !isNodeFromMe)) {
562
+ (status >= WAProto_1.proto.WebMessageInfo.Status.SERVER_ACK || !isNodeFromMe)) {
543
563
  if ((0, WABinary_1.isJidGroup)(remoteJid) || (0, WABinary_1.isJidStatusBroadcast)(remoteJid)) {
564
+ const updateKey = status === WAProto_1.proto.WebMessageInfo.Status.DELIVERY_ACK ? 'receiptTimestamp' : 'readTimestamp';
544
565
  if (attrs.participant) {
545
- const updateKey = status === WAProto_1.proto.WebMessageInfo.Status.DELIVERY_ACK ? 'receiptTimestamp' : 'readTimestamp';
546
566
  ev.emit('message-receipt.update', ids.map(id => ({
547
567
  key: { ...key, id },
548
568
  receipt: {
@@ -551,6 +571,19 @@ const makeMessagesRecvSocket = (config) => {
551
571
  }
552
572
  })));
553
573
  }
574
+ if (Array.isArray(content)) {
575
+ const group_receipt = (_a = content[0]) === null || _a === void 0 ? void 0 : _a.content;
576
+ const id = (_c = (_b = content[0]) === null || _b === void 0 ? void 0 : _b.attrs) === null || _c === void 0 ? void 0 : _c.key;
577
+ if (id && group_receipt && Array.isArray(group_receipt)) {
578
+ ev.emit('message-receipt.update', group_receipt.map(item => ({
579
+ key: { ...key, id },
580
+ receipt: {
581
+ userJid: (0, WABinary_1.jidNormalizedUser)(item.attrs.jid),
582
+ [updateKey]: +item.attrs.t
583
+ }
584
+ })));
585
+ }
586
+ }
554
587
  }
555
588
  else {
556
589
  ev.emit('messages.update', ids.map(id => ({
@@ -659,7 +692,8 @@ const makeMessagesRecvSocket = (config) => {
659
692
  if (response && ((_a = msg === null || msg === void 0 ? void 0 : msg.messageStubParameters) === null || _a === void 0 ? void 0 : _a[0]) === Utils_1.NO_MESSAGE_FOUND_ERROR_TEXT) {
660
693
  msg.messageStubParameters = [Utils_1.NO_MESSAGE_FOUND_ERROR_TEXT, response];
661
694
  }
662
- if (((_c = (_b = msg.message) === null || _b === void 0 ? void 0 : _b.protocolMessage) === null || _c === void 0 ? void 0 : _c.type) === WAProto_1.proto.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER && node.attrs.sender_pn) {
695
+ if (((_c = (_b = msg.message) === null || _b === void 0 ? void 0 : _b.protocolMessage) === null || _c === void 0 ? void 0 : _c.type) === WAProto_1.proto.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER &&
696
+ node.attrs.sender_pn) {
663
697
  ev.emit('chats.phoneNumberShare', { lid: node.attrs.from, jid: node.attrs.sender_pn });
664
698
  }
665
699
  try {
@@ -692,10 +726,12 @@ const makeMessagesRecvSocket = (config) => {
692
726
  // no type in the receipt => message delivered
693
727
  let type = undefined;
694
728
  let participant = msg.key.participant;
695
- if (category === 'peer') { // special peer message
729
+ if (category === 'peer') {
730
+ // special peer message
696
731
  type = 'peer_msg';
697
732
  }
698
- else if (msg.key.fromMe) { // message was sent by us from a different device
733
+ else if (msg.key.fromMe) {
734
+ // message was sent by us from a different device
699
735
  type = 'sender';
700
736
  // need to specially handle this case
701
737
  if ((0, WABinary_1.isJidUser)(msg.key.remoteJid)) {
@@ -758,9 +794,11 @@ const makeMessagesRecvSocket = (config) => {
758
794
  return 'RESOLVED';
759
795
  }
760
796
  const pdoMessage = {
761
- placeholderMessageResendRequest: [{
797
+ placeholderMessageResendRequest: [
798
+ {
762
799
  messageKey
763
- }],
800
+ }
801
+ ],
764
802
  peerDataOperationRequestType: WAProto_1.proto.Message.PeerDataOperationRequestType.PLACEHOLDER_MESSAGE_RESEND
765
803
  };
766
804
  setTimeout(() => {
@@ -783,7 +821,7 @@ const makeMessagesRecvSocket = (config) => {
783
821
  id: callId,
784
822
  date: new Date(+attrs.t * 1000),
785
823
  offline: !!attrs.offline,
786
- status,
824
+ status
787
825
  };
788
826
  if (status === 'offer') {
789
827
  call.isVideo = !!(0, WABinary_1.getBinaryNodeChild)(infoChild, 'video');
@@ -828,9 +866,7 @@ const makeMessagesRecvSocket = (config) => {
828
866
  key,
829
867
  update: {
830
868
  status: Types_1.WAMessageStatus.ERROR,
831
- messageStubParameters: [
832
- attrs.error
833
- ]
869
+ messageStubParameters: [attrs.error]
834
870
  }
835
871
  }
836
872
  ]);
@@ -843,8 +879,7 @@ const makeMessagesRecvSocket = (config) => {
843
879
  await execTask();
844
880
  ev.flush();
845
881
  function execTask() {
846
- return exec(node, false)
847
- .catch(err => onUnexpectedError(err, identifier));
882
+ return exec(node, false).catch(err => onUnexpectedError(err, identifier));
848
883
  }
849
884
  };
850
885
  const makeOfflineNodeProcessor = () => {
@@ -888,6 +923,140 @@ const makeMessagesRecvSocket = (config) => {
888
923
  processNodeWithBuffer(node, identifier, exec);
889
924
  }
890
925
  };
926
+ // Handles newsletter notifications
927
+ async function handleNewsletterNotification(node) {
928
+ var _a;
929
+ const from = node.attrs.from;
930
+ const [child] = (0, WABinary_1.getAllBinaryNodeChildren)(node);
931
+ const author = node.attrs.participant;
932
+ logger.info({ from, child }, 'got newsletter notification');
933
+ switch (child.tag) {
934
+ case 'reaction':
935
+ const reactionUpdate = {
936
+ id: from,
937
+ server_id: child.attrs.message_id,
938
+ reaction: {
939
+ code: (0, WABinary_1.getBinaryNodeChildString)(child, 'reaction'),
940
+ count: 1
941
+ }
942
+ };
943
+ ev.emit('newsletter.reaction', reactionUpdate);
944
+ break;
945
+ case 'view':
946
+ const viewUpdate = {
947
+ id: from,
948
+ server_id: child.attrs.message_id,
949
+ count: parseInt(((_a = child.content) === null || _a === void 0 ? void 0 : _a.toString()) || '0', 10)
950
+ };
951
+ ev.emit('newsletter.view', viewUpdate);
952
+ break;
953
+ case 'participant':
954
+ const participantUpdate = {
955
+ id: from,
956
+ author,
957
+ user: child.attrs.jid,
958
+ action: child.attrs.action,
959
+ new_role: child.attrs.role
960
+ };
961
+ ev.emit('newsletter-participants.update', participantUpdate);
962
+ break;
963
+ case 'update':
964
+ const settingsNode = (0, WABinary_1.getBinaryNodeChild)(child, 'settings');
965
+ if (settingsNode) {
966
+ const update = {};
967
+ const nameNode = (0, WABinary_1.getBinaryNodeChild)(settingsNode, 'name');
968
+ if (nameNode === null || nameNode === void 0 ? void 0 : nameNode.content)
969
+ update.name = nameNode.content.toString();
970
+ const descriptionNode = (0, WABinary_1.getBinaryNodeChild)(settingsNode, 'description');
971
+ if (descriptionNode === null || descriptionNode === void 0 ? void 0 : descriptionNode.content)
972
+ update.description = descriptionNode.content.toString();
973
+ ev.emit('newsletter-settings.update', {
974
+ id: from,
975
+ update
976
+ });
977
+ }
978
+ break;
979
+ case 'message':
980
+ const plaintextNode = (0, WABinary_1.getBinaryNodeChild)(child, 'plaintext');
981
+ if (plaintextNode === null || plaintextNode === void 0 ? void 0 : plaintextNode.content) {
982
+ try {
983
+ const contentBuf = typeof plaintextNode.content === 'string'
984
+ ? Buffer.from(plaintextNode.content, 'binary')
985
+ : Buffer.from(plaintextNode.content);
986
+ const messageProto = WAProto_1.proto.Message.decode(contentBuf);
987
+ const fullMessage = WAProto_1.proto.WebMessageInfo.fromObject({
988
+ key: {
989
+ remoteJid: from,
990
+ id: child.attrs.message_id || child.attrs.server_id,
991
+ fromMe: false
992
+ },
993
+ message: messageProto,
994
+ messageTimestamp: +child.attrs.t
995
+ });
996
+ await upsertMessage(fullMessage, 'append');
997
+ logger.info('Processed plaintext newsletter message');
998
+ }
999
+ catch (error) {
1000
+ logger.error({ error }, 'Failed to decode plaintext newsletter message');
1001
+ }
1002
+ }
1003
+ break;
1004
+ default:
1005
+ logger.warn({ node }, 'Unknown newsletter notification');
1006
+ break;
1007
+ }
1008
+ }
1009
+ // Handles mex newsletter notifications
1010
+ async function handleMexNewsletterNotification(node) {
1011
+ const mexNode = (0, WABinary_1.getBinaryNodeChild)(node, 'mex');
1012
+ if (!(mexNode === null || mexNode === void 0 ? void 0 : mexNode.content)) {
1013
+ logger.warn({ node }, 'Invalid mex newsletter notification');
1014
+ return;
1015
+ }
1016
+ let data;
1017
+ try {
1018
+ data = JSON.parse(mexNode.content.toString());
1019
+ }
1020
+ catch (error) {
1021
+ logger.error({ err: error, node }, 'Failed to parse mex newsletter notification');
1022
+ return;
1023
+ }
1024
+ const operation = data === null || data === void 0 ? void 0 : data.operation;
1025
+ const updates = data === null || data === void 0 ? void 0 : data.updates;
1026
+ if (!updates || !operation) {
1027
+ logger.warn({ data }, 'Invalid mex newsletter notification content');
1028
+ return;
1029
+ }
1030
+ logger.info({ operation, updates }, 'got mex newsletter notification');
1031
+ switch (operation) {
1032
+ case 'NotificationNewsletterUpdate':
1033
+ for (const update of updates) {
1034
+ if (update.jid && update.settings && Object.keys(update.settings).length > 0) {
1035
+ ev.emit('newsletter-settings.update', {
1036
+ id: update.jid,
1037
+ update: update.settings
1038
+ });
1039
+ }
1040
+ }
1041
+ break;
1042
+ case 'NotificationNewsletterAdminPromote':
1043
+ for (const update of updates) {
1044
+ if (update.jid && update.user) {
1045
+ ev.emit('newsletter-participants.update', {
1046
+ id: update.jid,
1047
+ author: node.attrs.from,
1048
+ user: update.user,
1049
+ new_role: 'ADMIN',
1050
+ action: 'promote'
1051
+ });
1052
+ }
1053
+ }
1054
+ break;
1055
+ default:
1056
+ logger.info({ operation, data }, 'Unhandled mex newsletter notification');
1057
+ break;
1058
+ }
1059
+ }
891
1060
  // recv a message
892
1061
  ws.on('CB:message', (node) => {
893
1062
  processNode('message', node, 'processing message', handleMessage);
@@ -902,8 +1071,7 @@ const makeMessagesRecvSocket = (config) => {
902
1071
  processNode('notification', node, 'handling notification', handleNotification);
903
1072
  });
904
1073
  ws.on('CB:ack,class:message', (node) => {
905
- handleBadAck(node)
906
- .catch(error => onUnexpectedError(error, 'handling bad ack'));
1074
+ handleBadAck(node).catch(error => onUnexpectedError(error, 'handling bad ack'));
907
1075
  });
908
1076
  ev.on('call', ([call]) => {
909
1077
  // missed call + group call notification message generation
@@ -914,11 +1082,13 @@ const makeMessagesRecvSocket = (config) => {
914
1082
  id: call.id,
915
1083
  fromMe: false
916
1084
  },
917
- messageTimestamp: (0, Utils_1.unixTimestampSeconds)(call.date),
1085
+ messageTimestamp: (0, Utils_1.unixTimestampSeconds)(call.date)
918
1086
  };
919
1087
  if (call.status === 'timeout') {
920
1088
  if (call.isGroup) {
921
- msg.messageStubType = call.isVideo ? Types_1.WAMessageStubType.CALL_MISSED_GROUP_VIDEO : Types_1.WAMessageStubType.CALL_MISSED_GROUP_VOICE;
1089
+ msg.messageStubType = call.isVideo
1090
+ ? Types_1.WAMessageStubType.CALL_MISSED_GROUP_VIDEO
1091
+ : Types_1.WAMessageStubType.CALL_MISSED_GROUP_VOICE;
922
1092
  }
923
1093
  else {
924
1094
  msg.messageStubType = call.isVideo ? Types_1.WAMessageStubType.CALL_MISSED_VIDEO : Types_1.WAMessageStubType.CALL_MISSED_VOICE;
@@ -943,7 +1113,7 @@ const makeMessagesRecvSocket = (config) => {
943
1113
  sendRetryRequest,
944
1114
  rejectCall,
945
1115
  fetchMessageHistory,
946
- requestPlaceholderResend,
1116
+ requestPlaceholderResend
947
1117
  };
948
1118
  };
949
1119
  exports.makeMessagesRecvSocket = makeMessagesRecvSocket;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages-recv.js","sourceRoot":"","sources":["../../src/Socket/messages-recv.ts"],"names":[],"mappings":"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"}