@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
@@ -17,18 +17,19 @@ const WAUSync_1 = require("../WAUSync");
17
17
  const usync_1 = require("./usync");
18
18
  const MAX_SYNC_ATTEMPTS = 2;
19
19
  const makeChatsSocket = (config) => {
20
- const { logger, markOnlineOnConnect, fireInitQueries, appStateMacVerification, shouldIgnoreJid, shouldSyncHistoryMessage, } = config;
20
+ const { logger, markOnlineOnConnect, fireInitQueries, appStateMacVerification, shouldIgnoreJid, shouldSyncHistoryMessage } = config;
21
21
  const sock = (0, usync_1.makeUSyncSocket)(config);
22
- const { ev, ws, authState, generateMessageTag, sendNode, query, onUnexpectedError, } = sock;
22
+ const { ev, ws, authState, generateMessageTag, sendNode, query, onUnexpectedError } = sock;
23
23
  let privacySettings;
24
24
  let needToFlushWithAppStateSync = false;
25
25
  let pendingAppStateSync = false;
26
26
  /** this mutex ensures that the notifications (receipts, messages etc.) are processed in order */
27
27
  const processingMutex = (0, make_mutex_1.makeMutex)();
28
- const placeholderResendCache = config.placeholderResendCache || new node_cache_1.default({
29
- stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
30
- useClones: false
31
- });
28
+ const placeholderResendCache = config.placeholderResendCache ||
29
+ new node_cache_1.default({
30
+ stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
31
+ useClones: false
32
+ });
32
33
  if (!config.placeholderResendCache) {
33
34
  config.placeholderResendCache = placeholderResendCache;
34
35
  }
@@ -46,9 +47,7 @@ const makeChatsSocket = (config) => {
46
47
  to: WABinary_1.S_WHATSAPP_NET,
47
48
  type: 'get'
48
49
  },
49
- content: [
50
- { tag: 'privacy', attrs: {} }
51
- ]
50
+ content: [{ tag: 'privacy', attrs: {} }]
52
51
  });
53
52
  privacySettings = (0, WABinary_1.reduceBinaryNodeToDictionary)(content === null || content === void 0 ? void 0 : content[0], 'category');
54
53
  }
@@ -63,7 +62,8 @@ const makeChatsSocket = (config) => {
63
62
  to: WABinary_1.S_WHATSAPP_NET,
64
63
  type: 'set'
65
64
  },
66
- content: [{
65
+ content: [
66
+ {
67
67
  tag: 'privacy',
68
68
  attrs: {},
69
69
  content: [
@@ -72,7 +72,8 @@ const makeChatsSocket = (config) => {
72
72
  attrs: { name, value }
73
73
  }
74
74
  ]
75
- }]
75
+ }
76
+ ]
76
77
  });
77
78
  };
78
79
  const updateMessagesPrivacy = async (value) => {
@@ -107,12 +108,14 @@ const makeChatsSocket = (config) => {
107
108
  to: WABinary_1.S_WHATSAPP_NET,
108
109
  type: 'set'
109
110
  },
110
- content: [{
111
+ content: [
112
+ {
111
113
  tag: 'disappearing_mode',
112
114
  attrs: {
113
115
  duration: duration.toString()
114
116
  }
115
- }]
117
+ }
118
+ ]
116
119
  });
117
120
  };
118
121
  const getBotListV2 = async () => {
@@ -123,12 +126,14 @@ const makeChatsSocket = (config) => {
123
126
  to: WABinary_1.S_WHATSAPP_NET,
124
127
  type: 'get'
125
128
  },
126
- content: [{
129
+ content: [
130
+ {
127
131
  tag: 'bot',
128
132
  attrs: {
129
133
  v: '2'
130
134
  }
131
- }]
135
+ }
136
+ ]
132
137
  });
133
138
  const botNode = (0, WABinary_1.getBinaryNodeChild)(resp, 'bot');
134
139
  const botList = [];
@@ -145,21 +150,18 @@ const makeChatsSocket = (config) => {
145
150
  return botList;
146
151
  };
147
152
  const onWhatsApp = async (...jids) => {
148
- const usyncQuery = new WAUSync_1.USyncQuery()
149
- .withContactProtocol()
150
- .withLIDProtocol();
153
+ const usyncQuery = new WAUSync_1.USyncQuery().withContactProtocol().withLIDProtocol();
151
154
  for (const jid of jids) {
152
155
  const phone = `+${jid.replace('+', '').split('@')[0].split(':')[0]}`;
153
156
  usyncQuery.withUser(new WAUSync_1.USyncUser().withPhone(phone));
154
157
  }
155
158
  const results = await sock.executeUSyncQuery(usyncQuery);
156
159
  if (results) {
157
- return results.list.filter((a) => !!a.contact).map(({ contact, id, lid }) => ({ jid: id, exists: contact, lid }));
160
+ return results.list.filter(a => !!a.contact).map(({ contact, id, lid }) => ({ jid: id, exists: contact, lid }));
158
161
  }
159
162
  };
160
163
  const fetchStatus = async (...jids) => {
161
- const usyncQuery = new WAUSync_1.USyncQuery()
162
- .withStatusProtocol();
164
+ const usyncQuery = new WAUSync_1.USyncQuery().withStatusProtocol();
163
165
  for (const jid of jids) {
164
166
  usyncQuery.withUser(new WAUSync_1.USyncUser().withId(jid));
165
167
  }
@@ -169,8 +171,7 @@ const makeChatsSocket = (config) => {
169
171
  }
170
172
  };
171
173
  const fetchDisappearingDuration = async (...jids) => {
172
- const usyncQuery = new WAUSync_1.USyncQuery()
173
- .withDisappearingModeProtocol();
174
+ const usyncQuery = new WAUSync_1.USyncQuery().withDisappearingModeProtocol();
174
175
  for (const jid of jids) {
175
176
  usyncQuery.withUser(new WAUSync_1.USyncUser().withId(jid));
176
177
  }
@@ -180,7 +181,7 @@ const makeChatsSocket = (config) => {
180
181
  }
181
182
  };
182
183
  /** update the profile picture for yourself or a group */
183
- const updateProfilePicture = async (jid, content) => {
184
+ const updateProfilePicture = async (jid, content, dimensions) => {
184
185
  let targetJid;
185
186
  if (!jid) {
186
187
  throw new boom_1.Boom('Illegal no-jid profile update. Please specify either your ID or the ID of the chat you wish to update');
@@ -188,7 +189,7 @@ const makeChatsSocket = (config) => {
188
189
  if ((0, WABinary_1.jidNormalizedUser)(jid) !== (0, WABinary_1.jidNormalizedUser)(authState.creds.me.id)) {
189
190
  targetJid = (0, WABinary_1.jidNormalizedUser)(jid); // in case it is someone other than us
190
191
  }
191
- const { img } = await (0, Utils_1.generateProfilePicture)(content);
192
+ const { img } = await (0, Utils_1.generateProfilePicture)(content, dimensions);
192
193
  await query({
193
194
  tag: 'iq',
194
195
  attrs: {
@@ -256,8 +257,7 @@ const makeChatsSocket = (config) => {
256
257
  }
257
258
  });
258
259
  const listNode = (0, WABinary_1.getBinaryNodeChild)(result, 'list');
259
- return (0, WABinary_1.getBinaryNodeChildren)(listNode, 'item')
260
- .map(n => n.attrs.jid);
260
+ return (0, WABinary_1.getBinaryNodeChildren)(listNode, 'item').map(n => n.attrs.jid);
261
261
  };
262
262
  const updateBlockStatus = async (jid, action) => {
263
263
  await query({
@@ -287,14 +287,18 @@ const makeChatsSocket = (config) => {
287
287
  xmlns: 'w:biz',
288
288
  type: 'get'
289
289
  },
290
- content: [{
290
+ content: [
291
+ {
291
292
  tag: 'business_profile',
292
293
  attrs: { v: '244' },
293
- content: [{
294
+ content: [
295
+ {
294
296
  tag: 'profile',
295
297
  attrs: { jid }
296
- }]
297
- }]
298
+ }
299
+ ]
300
+ }
301
+ ]
298
302
  });
299
303
  const profileNode = (0, WABinary_1.getBinaryNodeChild)(results, 'business_profile');
300
304
  const profiles = (0, WABinary_1.getBinaryNodeChild)(profileNode, 'profile');
@@ -316,9 +320,9 @@ const makeChatsSocket = (config) => {
316
320
  website: websiteStr ? [websiteStr] : [],
317
321
  email: (_e = email === null || email === void 0 ? void 0 : email.content) === null || _e === void 0 ? void 0 : _e.toString(),
318
322
  category: (_f = category === null || category === void 0 ? void 0 : category.content) === null || _f === void 0 ? void 0 : _f.toString(),
319
- 'business_hours': {
323
+ business_hours: {
320
324
  timezone: (_g = businessHours === null || businessHours === void 0 ? void 0 : businessHours.attrs) === null || _g === void 0 ? void 0 : _g.timezone,
321
- 'business_config': businessHoursConfig === null || businessHoursConfig === void 0 ? void 0 : businessHoursConfig.map(({ attrs }) => attrs)
325
+ business_config: businessHoursConfig === null || businessHoursConfig === void 0 ? void 0 : businessHoursConfig.map(({ attrs }) => attrs)
322
326
  }
323
327
  };
324
328
  }
@@ -331,14 +335,14 @@ const makeChatsSocket = (config) => {
331
335
  to: WABinary_1.S_WHATSAPP_NET,
332
336
  type: 'set',
333
337
  xmlns: 'urn:xmpp:whatsapp:dirty',
334
- id: generateMessageTag(),
338
+ id: generateMessageTag()
335
339
  },
336
340
  content: [
337
341
  {
338
342
  tag: 'clean',
339
343
  attrs: {
340
344
  type,
341
- ...(fromTimestamp ? { timestamp: fromTimestamp.toString() } : null),
345
+ ...(fromTimestamp ? { timestamp: fromTimestamp.toString() } : null)
342
346
  }
343
347
  }
344
348
  ]
@@ -386,7 +390,7 @@ const makeChatsSocket = (config) => {
386
390
  name,
387
391
  version: state.version.toString(),
388
392
  // return snapshot if being synced from scratch
389
- 'return_snapshot': (!state.version).toString()
393
+ return_snapshot: (!state.version).toString()
390
394
  }
391
395
  });
392
396
  }
@@ -429,16 +433,17 @@ const makeChatsSocket = (config) => {
429
433
  if (hasMorePatches) {
430
434
  logger.info(`${name} has more patches...`);
431
435
  }
432
- else { // collection is done with sync
436
+ else {
437
+ // collection is done with sync
433
438
  collectionsToHandle.delete(name);
434
439
  }
435
440
  }
436
441
  catch (error) {
437
442
  // if retry attempts overshoot
438
443
  // or key not found
439
- const isIrrecoverableError = attemptsMap[name] >= MAX_SYNC_ATTEMPTS
440
- || ((_a = error.output) === null || _a === void 0 ? void 0 : _a.statusCode) === 404
441
- || error.name === 'TypeError';
444
+ const isIrrecoverableError = attemptsMap[name] >= MAX_SYNC_ATTEMPTS ||
445
+ ((_a = error.output) === null || _a === void 0 ? void 0 : _a.statusCode) === 404 ||
446
+ error.name === 'TypeError';
442
447
  logger.info({ name, error: error.stack }, `failed to sync state from version${isIrrecoverableError ? '' : ', removing and trying from scratch'}`);
443
448
  await authState.keys.set({ 'app-state-sync-version': { [name]: null } });
444
449
  // increment number of retries
@@ -472,9 +477,7 @@ const makeChatsSocket = (config) => {
472
477
  type: 'get',
473
478
  xmlns: 'w:profile:picture'
474
479
  },
475
- content: [
476
- { tag: 'picture', attrs: { type, query: 'url' } }
477
- ]
480
+ content: [{ tag: 'picture', attrs: { type, query: 'url' } }]
478
481
  }, timeoutMs);
479
482
  const child = (0, WABinary_1.getBinaryNodeChild)(result, 'picture');
480
483
  return (_a = child === null || child === void 0 ? void 0 : child.attrs) === null || _a === void 0 ? void 0 : _a.url;
@@ -490,17 +493,19 @@ const makeChatsSocket = (config) => {
490
493
  await sendNode({
491
494
  tag: 'presence',
492
495
  attrs: {
493
- name: me.name,
496
+ name: me.name.replace(/@/g, ''),
494
497
  type
495
498
  }
496
499
  });
497
500
  }
498
501
  else {
502
+ const { server } = (0, WABinary_1.jidDecode)(toJid);
503
+ const isLid = server === 'lid';
499
504
  await sendNode({
500
505
  tag: 'chatstate',
501
506
  attrs: {
502
- from: me.id,
503
- to: toJid,
507
+ from: isLid ? me.lid : me.id,
508
+ to: toJid
504
509
  },
505
510
  content: [
506
511
  {
@@ -515,7 +520,7 @@ const makeChatsSocket = (config) => {
515
520
  * @param toJid the jid to subscribe to
516
521
  * @param tcToken token for subscription, use if present
517
522
  */
518
- const presenceSubscribe = (toJid, tcToken) => (sendNode({
523
+ const presenceSubscribe = (toJid, tcToken) => sendNode({
519
524
  tag: 'presence',
520
525
  attrs: {
521
526
  to: toJid,
@@ -531,7 +536,7 @@ const makeChatsSocket = (config) => {
531
536
  }
532
537
  ]
533
538
  : undefined
534
- }));
539
+ });
535
540
  const handlePresenceUpdate = ({ tag, attrs, content }) => {
536
541
  var _a;
537
542
  let presence;
@@ -597,7 +602,7 @@ const makeChatsSocket = (config) => {
597
602
  attrs: {
598
603
  name,
599
604
  version: (state.version - 1).toString(),
600
- 'return_snapshot': 'false'
605
+ return_snapshot: 'false'
601
606
  },
602
607
  content: [
603
608
  {
@@ -617,7 +622,7 @@ const makeChatsSocket = (config) => {
617
622
  });
618
623
  if (config.emitOwnEvents) {
619
624
  const { onMutation } = newAppStateChunkHandler(false);
620
- const { mutationMap } = await (0, Utils_1.decodePatches)(name, [{ ...encodeResult.patch, version: { version: encodeResult.state.version }, }], initial, getAppStateSyncKey, config.options, undefined, logger);
625
+ const { mutationMap } = await (0, Utils_1.decodePatches)(name, [{ ...encodeResult.patch, version: { version: encodeResult.state.version } }], initial, getAppStateSyncKey, config.options, undefined, logger);
621
626
  for (const key in mutationMap) {
622
627
  onMutation(mutationMap[key]);
623
628
  }
@@ -631,19 +636,23 @@ const makeChatsSocket = (config) => {
631
636
  attrs: {
632
637
  to: WABinary_1.S_WHATSAPP_NET,
633
638
  xmlns: 'w',
634
- type: 'get',
639
+ type: 'get'
635
640
  },
636
641
  content: [
637
- { tag: 'props', attrs: {
642
+ {
643
+ tag: 'props',
644
+ attrs: {
638
645
  protocol: '2',
639
646
  hash: ((_a = authState === null || authState === void 0 ? void 0 : authState.creds) === null || _a === void 0 ? void 0 : _a.lastPropHash) || ''
640
- } }
647
+ }
648
+ }
641
649
  ]
642
650
  });
643
651
  const propsNode = (0, WABinary_1.getBinaryNodeChild)(resultNode, 'props');
644
652
  let props = {};
645
653
  if (propsNode) {
646
- if ((_b = propsNode.attrs) === null || _b === void 0 ? void 0 : _b.hash) { // on some clients, the hash is returning as undefined
654
+ if ((_b = propsNode.attrs) === null || _b === void 0 ? void 0 : _b.hash) {
655
+ // on some clients, the hash is returning as undefined
647
656
  authState.creds.lastPropHash = (_c = propsNode === null || propsNode === void 0 ? void 0 : propsNode.attrs) === null || _c === void 0 ? void 0 : _c.hash;
648
657
  ev.emit('creds.update', authState.creds);
649
658
  }
@@ -656,7 +665,7 @@ const makeChatsSocket = (config) => {
656
665
  * modify a chat -- mark unread, read etc.
657
666
  * lastMessages must be sorted in reverse chronologically
658
667
  * requires the last messages till the last message received; required for archive & unread
659
- */
668
+ */
660
669
  const chatModify = (mod, jid) => {
661
670
  const patch = (0, Utils_1.chatModificationToAppPatch)(mod, jid);
662
671
  return appPatch(patch);
@@ -672,6 +681,22 @@ const makeChatsSocket = (config) => {
672
681
  }
673
682
  }, jid);
674
683
  };
684
+ /**
685
+ * Add or Edit Contact
686
+ */
687
+ const addOrEditContact = (jid, contact) => {
688
+ return chatModify({
689
+ contact
690
+ }, jid);
691
+ };
692
+ /**
693
+ * Remove Contact
694
+ */
695
+ const removeContact = (jid) => {
696
+ return chatModify({
697
+ contact: null
698
+ }, jid);
699
+ };
675
700
  /**
676
701
  * Adds label
677
702
  */
@@ -729,20 +754,16 @@ const makeChatsSocket = (config) => {
729
754
  * help ensure parity with WA Web
730
755
  * */
731
756
  const executeInitQueries = async () => {
732
- await Promise.all([
733
- fetchProps(),
734
- fetchBlocklist(),
735
- fetchPrivacySettings(),
736
- ]);
757
+ await Promise.all([fetchProps(), fetchBlocklist(), fetchPrivacySettings()]);
737
758
  };
738
759
  const upsertMessage = ev.createBufferedFunction(async (msg, type) => {
739
760
  var _a, _b, _c;
740
761
  ev.emit('messages.upsert', { messages: [msg], type });
741
762
  if (!!msg.pushName) {
742
- let jid = msg.key.fromMe ? authState.creds.me.id : (msg.key.participant || msg.key.remoteJid);
763
+ let jid = msg.key.fromMe ? authState.creds.me.id : msg.key.participant || msg.key.remoteJid;
743
764
  jid = (0, WABinary_1.jidNormalizedUser)(jid);
744
765
  if (!msg.key.fromMe) {
745
- ev.emit('contacts.update', [{ id: jid, notify: msg.pushName, verifiedName: msg.verifiedBizName }]);
766
+ ev.emit('contacts.update', [{ id: jid, lid: msg.key.participantLid || msg.key.senderLid, notify: msg.pushName, verifiedName: msg.verifiedBizName }]);
746
767
  }
747
768
  // update our pushname too
748
769
  if (msg.key.fromMe && msg.pushName && ((_a = authState.creds.me) === null || _a === void 0 ? void 0 : _a.name) !== msg.pushName) {
@@ -751,8 +772,7 @@ const makeChatsSocket = (config) => {
751
772
  }
752
773
  const historyMsg = (0, Utils_1.getHistoryMsg)(msg.message);
753
774
  const shouldProcessHistoryMsg = historyMsg
754
- ? (shouldSyncHistoryMessage(historyMsg)
755
- && Defaults_1.PROCESSABLE_HISTORY_TYPES.includes(historyMsg.syncType))
775
+ ? shouldSyncHistoryMessage(historyMsg) && Defaults_1.PROCESSABLE_HISTORY_TYPES.includes(historyMsg.syncType)
756
776
  : false;
757
777
  if (historyMsg && !authState.creds.myAppStateKeyId) {
758
778
  logger.warn('skipping app state sync, as myAppStateKeyId is not set');
@@ -760,8 +780,7 @@ const makeChatsSocket = (config) => {
760
780
  }
761
781
  await Promise.all([
762
782
  (async () => {
763
- if (historyMsg
764
- && authState.creds.myAppStateKeyId) {
783
+ if (historyMsg && authState.creds.myAppStateKeyId) {
765
784
  pendingAppStateSync = false;
766
785
  await doAppStateSync();
767
786
  }
@@ -777,8 +796,7 @@ const makeChatsSocket = (config) => {
777
796
  getMessage: config.getMessage
778
797
  })
779
798
  ]);
780
- if (((_c = (_b = msg.message) === null || _b === void 0 ? void 0 : _b.protocolMessage) === null || _c === void 0 ? void 0 : _c.appStateSyncKeyShare)
781
- && pendingAppStateSync) {
799
+ if (((_c = (_b = msg.message) === null || _b === void 0 ? void 0 : _b.protocolMessage) === null || _c === void 0 ? void 0 : _c.appStateSyncKeyShare) && pendingAppStateSync) {
782
800
  await doAppStateSync();
783
801
  pendingAppStateSync = false;
784
802
  }
@@ -823,11 +841,9 @@ const makeChatsSocket = (config) => {
823
841
  var _a;
824
842
  if (connection === 'open') {
825
843
  if (fireInitQueries) {
826
- executeInitQueries()
827
- .catch(error => onUnexpectedError(error, 'init queries'));
844
+ executeInitQueries().catch(error => onUnexpectedError(error, 'init queries'));
828
845
  }
829
- sendPresenceUpdate(markOnlineOnConnect ? 'available' : 'unavailable')
830
- .catch(error => onUnexpectedError(error, 'presence update requests'));
846
+ sendPresenceUpdate(markOnlineOnConnect ? 'available' : 'unavailable').catch(error => onUnexpectedError(error, 'presence update requests'));
831
847
  }
832
848
  if (receivedPendingNotifications && // if we don't have the app state key
833
849
  // we keep buffering events until we finally have
@@ -870,6 +886,8 @@ const makeChatsSocket = (config) => {
870
886
  resyncAppState,
871
887
  chatModify,
872
888
  cleanDirtyBits,
889
+ addOrEditContact,
890
+ removeContact,
873
891
  addLabel,
874
892
  addChatLabel,
875
893
  removeChatLabel,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/Socket/chats.ts"],"names":[],"mappings":"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"}