@neelegirl/baileys 1.5.2 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/README.md +26 -18
  2. package/WAProto/GenerateStatics.sh +3 -0
  3. package/WAProto/WAProto.proto +291 -665
  4. package/WAProto/fix-imports.js +29 -0
  5. package/WAProto/index.d.ts +2297 -48040
  6. package/WAProto/index.js +45500 -140101
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/index.d.ts +58 -64
  9. package/lib/Defaults/index.d.ts.map +1 -0
  10. package/lib/Defaults/index.js +74 -96
  11. package/lib/Defaults/index.js.map +1 -0
  12. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  13. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  14. package/lib/Signal/Group/ciphertext-message.js +12 -0
  15. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  16. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  17. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  18. package/lib/Signal/Group/group-session-builder.js +30 -0
  19. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  20. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  21. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  22. package/lib/Signal/Group/group_cipher.js +82 -0
  23. package/lib/Signal/Group/group_cipher.js.map +1 -0
  24. package/lib/Signal/Group/index.d.ts +12 -0
  25. package/lib/Signal/Group/index.d.ts.map +1 -0
  26. package/lib/Signal/Group/index.js +12 -0
  27. package/lib/Signal/Group/index.js.map +1 -0
  28. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  29. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  30. package/lib/Signal/Group/keyhelper.js +18 -0
  31. package/lib/Signal/Group/keyhelper.js.map +1 -0
  32. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  33. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  34. package/lib/Signal/Group/sender-chain-key.js +26 -0
  35. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  36. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  38. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  40. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  42. package/lib/Signal/Group/sender-key-message.js +66 -0
  43. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  44. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  46. package/lib/Signal/Group/sender-key-name.js +48 -0
  47. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  48. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  49. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  50. package/lib/Signal/Group/sender-key-record.js +41 -0
  51. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  52. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  53. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  54. package/lib/Signal/Group/sender-key-state.js +84 -0
  55. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  56. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  57. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  58. package/lib/Signal/{WASignalGroup/sender_message_key.js → Group/sender-message-key.js} +3 -16
  59. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  60. package/lib/Signal/libsignal.d.ts +5 -4
  61. package/lib/Signal/libsignal.d.ts.map +1 -0
  62. package/lib/Signal/libsignal.js +292 -112
  63. package/lib/Signal/libsignal.js.map +1 -0
  64. package/lib/Signal/lid-mapping.d.ts +23 -0
  65. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  66. package/lib/Signal/lid-mapping.js +171 -0
  67. package/lib/Signal/lid-mapping.js.map +1 -0
  68. package/lib/Socket/Client/index.d.ts +3 -2
  69. package/lib/Socket/Client/index.d.ts.map +1 -0
  70. package/lib/Socket/Client/index.js +3 -22
  71. package/lib/Socket/Client/index.js.map +1 -0
  72. package/lib/Socket/Client/types.d.ts +15 -15
  73. package/lib/Socket/Client/types.d.ts.map +1 -0
  74. package/lib/Socket/Client/types.js +8 -15
  75. package/lib/Socket/Client/types.js.map +1 -0
  76. package/lib/Socket/Client/websocket.d.ts +12 -12
  77. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  78. package/lib/Socket/Client/websocket.js +24 -36
  79. package/lib/Socket/Client/websocket.js.map +1 -0
  80. package/lib/Socket/business.d.ts +178 -177
  81. package/lib/Socket/business.d.ts.map +1 -0
  82. package/lib/Socket/business.js +179 -71
  83. package/lib/Socket/business.js.map +1 -0
  84. package/lib/Socket/chats.d.ts +93 -93
  85. package/lib/Socket/chats.d.ts.map +1 -0
  86. package/lib/Socket/chats.js +474 -625
  87. package/lib/Socket/chats.js.map +1 -0
  88. package/lib/Socket/communities.d.ts +83 -62
  89. package/lib/Socket/communities.d.ts.map +1 -0
  90. package/lib/Socket/communities.js +412 -414
  91. package/lib/Socket/communities.js.map +1 -0
  92. package/lib/Socket/groups.d.ts +118 -112
  93. package/lib/Socket/groups.d.ts.map +1 -0
  94. package/lib/Socket/groups.js +146 -171
  95. package/lib/Socket/groups.js.map +1 -0
  96. package/lib/Socket/index.d.ts +222 -182
  97. package/lib/Socket/index.d.ts.map +1 -0
  98. package/lib/Socket/index.js +12 -17
  99. package/lib/Socket/index.js.map +1 -0
  100. package/lib/Socket/messages-recv.d.ts +165 -169
  101. package/lib/Socket/messages-recv.d.ts.map +1 -0
  102. package/lib/Socket/messages-recv.js +1185 -1721
  103. package/lib/Socket/messages-recv.js.map +1 -0
  104. package/lib/Socket/messages-send.d.ts +161 -159
  105. package/lib/Socket/messages-send.d.ts.map +1 -0
  106. package/lib/Socket/messages-send.js +650 -991
  107. package/lib/Socket/messages-send.js.map +1 -0
  108. package/lib/Socket/mex.d.ts +1 -0
  109. package/lib/Socket/mex.d.ts.map +1 -0
  110. package/lib/Socket/mex.js +4 -9
  111. package/lib/Socket/mex.js.map +1 -0
  112. package/lib/Socket/newsletter.d.ts +139 -139
  113. package/lib/Socket/newsletter.d.ts.map +1 -0
  114. package/lib/Socket/newsletter.js +153 -258
  115. package/lib/Socket/newsletter.js.map +1 -0
  116. package/lib/Socket/socket.d.ts +42 -36
  117. package/lib/Socket/socket.d.ts.map +1 -0
  118. package/lib/Socket/socket.js +623 -507
  119. package/lib/Socket/socket.js.map +1 -0
  120. package/lib/Types/Auth.d.ts +87 -96
  121. package/lib/Types/Auth.d.ts.map +1 -0
  122. package/lib/Types/Auth.js +2 -3
  123. package/lib/Types/Auth.js.map +1 -0
  124. package/lib/Types/Bussines.d.ts +25 -0
  125. package/lib/Types/Bussines.d.ts.map +1 -0
  126. package/lib/Types/Bussines.js +2 -0
  127. package/lib/Types/Bussines.js.map +1 -0
  128. package/lib/Types/Call.d.ts +13 -13
  129. package/lib/Types/Call.d.ts.map +1 -0
  130. package/lib/Types/Call.js +2 -3
  131. package/lib/Types/Call.js.map +1 -0
  132. package/lib/Types/Chat.d.ts +79 -94
  133. package/lib/Types/Chat.d.ts.map +1 -0
  134. package/lib/Types/Chat.js +8 -9
  135. package/lib/Types/Chat.js.map +1 -0
  136. package/lib/Types/Contact.d.ts +13 -9
  137. package/lib/Types/Contact.d.ts.map +1 -0
  138. package/lib/Types/Contact.js +2 -3
  139. package/lib/Types/Contact.js.map +1 -0
  140. package/lib/Types/Events.d.ts +152 -179
  141. package/lib/Types/Events.d.ts.map +1 -0
  142. package/lib/Types/Events.js +2 -3
  143. package/lib/Types/Events.js.map +1 -0
  144. package/lib/Types/GroupMetadata.d.ts +49 -48
  145. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  146. package/lib/Types/GroupMetadata.js +2 -3
  147. package/lib/Types/GroupMetadata.js.map +1 -0
  148. package/lib/Types/Label.d.ts +13 -14
  149. package/lib/Types/Label.d.ts.map +1 -0
  150. package/lib/Types/Label.js +24 -30
  151. package/lib/Types/Label.js.map +1 -0
  152. package/lib/Types/LabelAssociation.d.ts +15 -20
  153. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  154. package/lib/Types/LabelAssociation.js +6 -12
  155. package/lib/Types/LabelAssociation.js.map +1 -0
  156. package/lib/Types/Message.d.ts +234 -404
  157. package/lib/Types/Message.d.ts.map +1 -0
  158. package/lib/Types/Message.js +11 -13
  159. package/lib/Types/Message.js.map +1 -0
  160. package/lib/Types/Newsletter.d.ts +130 -104
  161. package/lib/Types/Newsletter.d.ts.map +1 -0
  162. package/lib/Types/Newsletter.js +31 -40
  163. package/lib/Types/Newsletter.js.map +1 -0
  164. package/lib/Types/Product.d.ts +58 -71
  165. package/lib/Types/Product.d.ts.map +1 -0
  166. package/lib/Types/Product.js +2 -3
  167. package/lib/Types/Product.js.map +1 -0
  168. package/lib/Types/Signal.d.ts +63 -55
  169. package/lib/Types/Signal.d.ts.map +1 -0
  170. package/lib/Types/Signal.js +2 -3
  171. package/lib/Types/Signal.js.map +1 -0
  172. package/lib/Types/Socket.d.ts +78 -65
  173. package/lib/Types/Socket.d.ts.map +1 -0
  174. package/lib/Types/Socket.js +3 -3
  175. package/lib/Types/Socket.js.map +1 -0
  176. package/lib/Types/State.d.ts +17 -19
  177. package/lib/Types/State.d.ts.map +1 -0
  178. package/lib/Types/State.js +13 -14
  179. package/lib/Types/State.js.map +1 -0
  180. package/lib/Types/USync.d.ts +8 -8
  181. package/lib/Types/USync.d.ts.map +1 -0
  182. package/lib/Types/USync.js +2 -3
  183. package/lib/Types/USync.js.map +1 -0
  184. package/lib/Types/index.d.ts +47 -61
  185. package/lib/Types/index.d.ts.map +1 -0
  186. package/lib/Types/index.js +26 -48
  187. package/lib/Types/index.js.map +1 -0
  188. package/lib/Utils/auth-utils.d.ts +8 -10
  189. package/lib/Utils/auth-utils.d.ts.map +1 -0
  190. package/lib/Utils/auth-utils.js +206 -154
  191. package/lib/Utils/auth-utils.js.map +1 -0
  192. package/lib/Utils/baileys-event-stream.d.ts +6 -7
  193. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  194. package/lib/Utils/baileys-event-stream.js +29 -43
  195. package/lib/Utils/baileys-event-stream.js.map +1 -0
  196. package/lib/Utils/browser-utils.d.ts +4 -0
  197. package/lib/Utils/browser-utils.d.ts.map +1 -0
  198. package/lib/Utils/browser-utils.js +28 -0
  199. package/lib/Utils/browser-utils.js.map +1 -0
  200. package/lib/Utils/business.d.ts +14 -20
  201. package/lib/Utils/business.d.ts.map +1 -0
  202. package/lib/Utils/business.js +110 -134
  203. package/lib/Utils/business.js.map +1 -0
  204. package/lib/Utils/chat-utils.d.ts +57 -69
  205. package/lib/Utils/chat-utils.d.ts.map +1 -0
  206. package/lib/Utils/chat-utils.js +362 -380
  207. package/lib/Utils/chat-utils.js.map +1 -0
  208. package/lib/Utils/crypto.d.ts +30 -45
  209. package/lib/Utils/crypto.d.ts.map +1 -0
  210. package/lib/Utils/crypto.js +141 -178
  211. package/lib/Utils/crypto.js.map +1 -0
  212. package/lib/Utils/decode-wa-message.d.ts +42 -35
  213. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  214. package/lib/Utils/decode-wa-message.js +176 -150
  215. package/lib/Utils/decode-wa-message.js.map +1 -0
  216. package/lib/Utils/event-buffer.d.ts +12 -17
  217. package/lib/Utils/event-buffer.d.ts.map +1 -0
  218. package/lib/Utils/event-buffer.js +269 -286
  219. package/lib/Utils/event-buffer.js.map +1 -0
  220. package/lib/Utils/generics.d.ts +60 -99
  221. package/lib/Utils/generics.d.ts.map +1 -0
  222. package/lib/Utils/generics.js +244 -487
  223. package/lib/Utils/generics.js.map +1 -0
  224. package/lib/Utils/history.d.ts +18 -22
  225. package/lib/Utils/history.d.ts.map +1 -0
  226. package/lib/Utils/history.js +54 -80
  227. package/lib/Utils/history.js.map +1 -0
  228. package/lib/Utils/index.d.ts +20 -19
  229. package/lib/Utils/index.d.ts.map +1 -0
  230. package/lib/Utils/index.js +19 -39
  231. package/lib/Utils/index.js.map +1 -0
  232. package/lib/Utils/link-preview.d.ts +12 -14
  233. package/lib/Utils/link-preview.d.ts.map +1 -0
  234. package/lib/Utils/link-preview.js +40 -75
  235. package/lib/Utils/link-preview.js.map +1 -0
  236. package/lib/Utils/logger.d.ts +10 -11
  237. package/lib/Utils/logger.d.ts.map +1 -0
  238. package/lib/Utils/logger.js +3 -7
  239. package/lib/Utils/logger.js.map +1 -0
  240. package/lib/Utils/lt-hash.d.ts +12 -13
  241. package/lib/Utils/lt-hash.d.ts.map +1 -0
  242. package/lib/Utils/lt-hash.js +27 -37
  243. package/lib/Utils/lt-hash.js.map +1 -0
  244. package/lib/Utils/make-mutex.d.ts +6 -7
  245. package/lib/Utils/make-mutex.d.ts.map +1 -0
  246. package/lib/Utils/make-mutex.js +20 -29
  247. package/lib/Utils/make-mutex.js.map +1 -0
  248. package/lib/Utils/message-retry-manager.d.ts +82 -0
  249. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  250. package/lib/Utils/message-retry-manager.js +149 -0
  251. package/lib/Utils/message-retry-manager.js.map +1 -0
  252. package/lib/Utils/messages-media.d.ts +87 -102
  253. package/lib/Utils/messages-media.d.ts.map +1 -0
  254. package/lib/Utils/messages-media.js +427 -570
  255. package/lib/Utils/messages-media.js.map +1 -0
  256. package/lib/Utils/messages.d.ts +37 -64
  257. package/lib/Utils/messages.d.ts.map +1 -0
  258. package/lib/Utils/messages.js +511 -1270
  259. package/lib/Utils/messages.js.map +1 -0
  260. package/lib/Utils/noise-handler.d.ts +18 -18
  261. package/lib/Utils/noise-handler.d.ts.map +1 -0
  262. package/lib/Utils/noise-handler.js +101 -109
  263. package/lib/Utils/noise-handler.js.map +1 -0
  264. package/lib/Utils/pre-key-manager.d.ts +28 -0
  265. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  266. package/lib/Utils/pre-key-manager.js +106 -0
  267. package/lib/Utils/pre-key-manager.js.map +1 -0
  268. package/lib/Utils/process-message.d.ts +25 -32
  269. package/lib/Utils/process-message.d.ts.map +1 -0
  270. package/lib/Utils/process-message.js +266 -281
  271. package/lib/Utils/process-message.js.map +1 -0
  272. package/lib/Utils/signal.d.ts +24 -32
  273. package/lib/Utils/signal.d.ts.map +1 -0
  274. package/lib/Utils/signal.js +98 -105
  275. package/lib/Utils/signal.js.map +1 -0
  276. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -10
  277. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  278. package/lib/Utils/use-multi-file-auth-state.js +69 -186
  279. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  280. package/lib/Utils/validate-connection.d.ts +11 -13
  281. package/lib/Utils/validate-connection.d.ts.map +1 -0
  282. package/lib/Utils/validate-connection.js +124 -116
  283. package/lib/Utils/validate-connection.js.map +1 -0
  284. package/lib/WABinary/constants.d.ts +25 -27
  285. package/lib/WABinary/constants.d.ts.map +1 -0
  286. package/lib/WABinary/constants.js +1277 -1292
  287. package/lib/WABinary/constants.js.map +1 -0
  288. package/lib/WABinary/decode.d.ts +7 -9
  289. package/lib/WABinary/decode.d.ts.map +1 -0
  290. package/lib/WABinary/decode.js +139 -189
  291. package/lib/WABinary/decode.js.map +1 -0
  292. package/lib/WABinary/encode.d.ts +3 -3
  293. package/lib/WABinary/encode.d.ts.map +1 -0
  294. package/lib/WABinary/encode.js +105 -154
  295. package/lib/WABinary/encode.js.map +1 -0
  296. package/lib/WABinary/generic-utils.d.ts +14 -27
  297. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  298. package/lib/WABinary/generic-utils.js +62 -102
  299. package/lib/WABinary/generic-utils.js.map +1 -0
  300. package/lib/WABinary/index.d.ts +6 -5
  301. package/lib/WABinary/index.d.ts.map +1 -0
  302. package/lib/WABinary/index.js +6 -25
  303. package/lib/WABinary/index.js.map +1 -0
  304. package/lib/WABinary/jid-utils.d.ts +41 -46
  305. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  306. package/lib/WABinary/jid-utils.js +84 -80
  307. package/lib/WABinary/jid-utils.js.map +1 -0
  308. package/lib/WABinary/types.d.ts +10 -13
  309. package/lib/WABinary/types.d.ts.map +1 -0
  310. package/lib/WABinary/types.js +2 -3
  311. package/lib/WABinary/types.js.map +1 -0
  312. package/lib/WAM/BinaryInfo.d.ts +8 -15
  313. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  314. package/lib/WAM/BinaryInfo.js +7 -14
  315. package/lib/WAM/BinaryInfo.js.map +1 -0
  316. package/lib/WAM/constants.d.ts +30 -37
  317. package/lib/WAM/constants.d.ts.map +1 -0
  318. package/lib/WAM/constants.js +19193 -11711
  319. package/lib/WAM/constants.js.map +1 -0
  320. package/lib/WAM/encode.d.ts +3 -3
  321. package/lib/WAM/encode.d.ts.map +1 -0
  322. package/lib/WAM/encode.js +95 -110
  323. package/lib/WAM/encode.js.map +1 -0
  324. package/lib/WAM/index.d.ts +4 -3
  325. package/lib/WAM/index.d.ts.map +1 -0
  326. package/lib/WAM/index.js +4 -23
  327. package/lib/WAM/index.js.map +1 -0
  328. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  329. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  330. package/lib/WAUSync/Protocols/USyncContactProtocol.js +12 -19
  331. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  332. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +19 -22
  333. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  334. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +18 -26
  335. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  336. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +11 -12
  337. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  338. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -20
  339. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  340. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +11 -12
  341. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  342. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +16 -24
  343. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  344. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  345. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  346. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  347. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  348. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  349. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  350. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  351. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  352. package/lib/WAUSync/Protocols/index.d.ts +5 -6
  353. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  354. package/lib/WAUSync/Protocols/index.js +5 -26
  355. package/lib/WAUSync/Protocols/index.js.map +1 -0
  356. package/lib/WAUSync/USyncQuery.d.ts +26 -28
  357. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  358. package/lib/WAUSync/USyncQuery.js +64 -62
  359. package/lib/WAUSync/USyncQuery.js.map +1 -0
  360. package/lib/WAUSync/USyncUser.d.ts +11 -10
  361. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  362. package/lib/WAUSync/USyncUser.js +12 -19
  363. package/lib/WAUSync/USyncUser.js.map +1 -0
  364. package/lib/WAUSync/index.d.ts +4 -3
  365. package/lib/WAUSync/index.d.ts.map +1 -0
  366. package/lib/WAUSync/index.js +4 -23
  367. package/lib/WAUSync/index.js.map +1 -0
  368. package/lib/index.d.ts +10 -11
  369. package/lib/index.d.ts.map +1 -0
  370. package/lib/index.js +11 -33
  371. package/lib/index.js.map +1 -0
  372. package/package.json +48 -43
  373. package/lib/Defaults/baileys-version.json +0 -3
  374. package/lib/Defaults/phonenumber-mcc.json +0 -223
  375. package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
  376. package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
  377. package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
  378. package/lib/Signal/WASignalGroup/group.proto +0 -42
  379. package/lib/Signal/WASignalGroup/group_cipher.js +0 -120
  380. package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
  381. package/lib/Signal/WASignalGroup/index.js +0 -6
  382. package/lib/Signal/WASignalGroup/keyhelper.js +0 -21
  383. package/lib/Signal/WASignalGroup/protobufs.js +0 -3
  384. package/lib/Signal/WASignalGroup/queue_job.js +0 -69
  385. package/lib/Signal/WASignalGroup/readme.md +0 -6
  386. package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
  387. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
  388. package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
  389. package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
  390. package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
  391. package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
  392. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  393. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  394. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  395. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  396. package/lib/Socket/registration.d.ts +0 -266
  397. package/lib/Socket/registration.js +0 -166
  398. package/lib/Socket/usync.d.ts +0 -37
  399. package/lib/Socket/usync.js +0 -83
  400. package/lib/Store/index.d.ts +0 -4
  401. package/lib/Store/index.js +0 -24
  402. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  403. package/lib/Store/make-cache-manager-store.js +0 -90
  404. package/lib/Store/make-in-memory-store.d.ts +0 -123
  405. package/lib/Store/make-in-memory-store.js +0 -429
  406. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  407. package/lib/Store/make-ordered-dictionary.js +0 -86
  408. package/lib/Store/object-repository.d.ts +0 -10
  409. package/lib/Store/object-repository.js +0 -31
  410. package/lib/Types/MexUpdates.d.ts +0 -9
  411. package/lib/Types/MexUpdates.js +0 -18
  412. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  413. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  414. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  415. package/lib/Utils/use-single-file-auth-state.js +0 -80
  416. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  417. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
  418. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -9
  419. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -30
@@ -1,34 +1,23 @@
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 async_mutex_1 = __importDefault(require("async-mutex"))
10
- const promises_1 = require("fs/promises")
11
- const path_1 = require("path")
12
- const WAProto_1 = require("../../WAProto")
13
- const auth_utils_1 = require("./auth-utils")
14
- const generics_1 = require("./generics")
1
+ import { Mutex } from 'async-mutex';
2
+ import { mkdir, readFile, stat, unlink, writeFile } from 'fs/promises';
3
+ import { join } from 'path';
4
+ import { proto } from '../../WAProto/index.js';
5
+ import { initAuthCreds } from './auth-utils.js';
6
+ import { BufferJSON } from './generics.js';
15
7
  // We need to lock files due to the fact that we are using async functions to read and write files
16
8
  // https://github.com/WhiskeySockets/Baileys/issues/794
17
9
  // https://github.com/nodejs/node/issues/26338
18
10
  // Use a Map to store mutexes for each file path
19
- const fileLocks = new Map()
20
-
11
+ const fileLocks = new Map();
21
12
  // Get or create a mutex for a specific file path
22
13
  const getFileLock = (path) => {
23
- let mutex = fileLocks.get(path)
24
- if (!mutex) {
25
- mutex = new async_mutex_1.Mutex()
26
- fileLocks.set(path, mutex)
27
- }
28
-
29
- return mutex
30
- }
31
-
14
+ let mutex = fileLocks.get(path);
15
+ if (!mutex) {
16
+ mutex = new Mutex();
17
+ fileLocks.set(path, mutex);
18
+ }
19
+ return mutex;
20
+ };
32
21
  /**
33
22
  * stores the full authentication state in a single folder.
34
23
  * Far more efficient than singlefileauthstate
@@ -36,203 +25,97 @@ const getFileLock = (path) => {
36
25
  * Again, I wouldn't endorse this for any production level use other than perhaps a bot.
37
26
  * Would recommend writing an auth state for use with a proper SQL or No-SQL DB
38
27
  * */
39
- const useMultiFileAuthState = async (folder) => {
28
+ export const useMultiFileAuthState = async (folder) => {
40
29
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
30
  const writeData = async (data, file) => {
42
- const filePath = path_1.join(folder, fixFileName(file))
43
- const mutex = getFileLock(filePath)
31
+ const filePath = join(folder, fixFileName(file));
32
+ const mutex = getFileLock(filePath);
44
33
  return mutex.acquire().then(async (release) => {
45
34
  try {
46
- await promises_1.writeFile(filePath, JSON.stringify(data, generics_1.BufferJSON.replacer))
47
- } finally {
48
- release()
35
+ await writeFile(filePath, JSON.stringify(data, BufferJSON.replacer));
49
36
  }
50
- })
51
- }
37
+ finally {
38
+ release();
39
+ }
40
+ });
41
+ };
52
42
  const readData = async (file) => {
53
43
  try {
54
- const filePath = path_1.join(folder, fixFileName(file))
55
- const mutex = getFileLock(filePath)
56
- const data = await mutex.acquire().then(async (release) => {
44
+ const filePath = join(folder, fixFileName(file));
45
+ const mutex = getFileLock(filePath);
46
+ return await mutex.acquire().then(async (release) => {
57
47
  try {
58
- return await promises_1.readFile(filePath, { encoding: 'utf-8' })
59
- } finally {
60
- release()
61
- }
62
- })
63
-
64
- return JSON.parse(data, generics_1.BufferJSON.reviver)
65
- } catch (error) {
66
- return null
67
- }
68
- }
69
- const removeData = async (file) => {
70
- try {
71
- const filePath = path_1.join(folder, fixFileName(file))
72
- const mutex = getFileLock(filePath)
73
- await mutex.acquire().then(async (release) => {
74
- try {
75
- await promises_1.unlink(filePath)
76
- } finally {
77
- release()
48
+ const data = await readFile(filePath, { encoding: 'utf-8' });
49
+ return JSON.parse(data, BufferJSON.reviver);
78
50
  }
79
- })
80
- } catch {}
81
- }
82
- const folderInfo = await promises_1.stat(folder).catch(() => { })
83
- if (folderInfo) {
84
- if (!folderInfo.isDirectory()) {
85
- throw new Error(`found something that is not a directory at ${folder}, either delete it or specify a different location`)
86
- }
87
- }
88
- else {
89
- await promises_1.mkdir(folder, { recursive: true })
90
- }
91
- const fixFileName = (file) => {
92
- return file?.replace(/\//g, '__')?.replace(/:/g, '-')
93
- }
94
- const creds = await readData('creds.json') || auth_utils_1.initAuthCreds()
95
- return {
96
- state: {
97
- creds,
98
- keys: {
99
- get: async (type, ids) => {
100
- const data = {}
101
- await Promise.all(ids.map(async (id) => {
102
- let value = await readData(`${type}-${id}.json`)
103
- if (type === 'app-state-sync-key' && value) {
104
- value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value)
105
- }
106
- data[id] = value
107
- }))
108
- return data
109
- },
110
- set: async (data) => {
111
- const tasks = []
112
- for (const category in data) {
113
- for (const id in data[category]) {
114
- const value = data[category][id]
115
- const file = `${category}-${id}.json`
116
- tasks.push(value ? writeData(value, file) : removeData(file))
117
- }
118
- }
119
- await Promise.all(tasks)
51
+ finally {
52
+ release();
120
53
  }
121
- }
122
- },
123
- saveCreds: async () => {
124
- return writeData(creds, 'creds.json')
54
+ });
125
55
  }
126
- }
127
- }
128
-
129
- /**
130
- * stores the full authentication state in a single folder.
131
- * Far more efficient than singlefileauthstate
132
- *
133
- * Again, I wouldn't endorse this for any production level use other than perhaps a bot.
134
- * Would recommend writing an auth state for use with a proper SQL or No-SQL DB
135
- * */
136
- const useMultiFileAuthStateV2 = async (folder) => {
137
- const fixFileName = (file) => {
138
- return file?.replace(/\//g, '__')?.replace(/:/g, '-')
139
- }
140
-
141
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
142
- const writeData = async (data, file) => {
143
- const filePath = path_1.join(folder, fixFileName(file))
144
- const mutex = getFileLock(filePath)
145
- return mutex.acquire().then(async (release) => {
146
- try {
147
- await promises_1.writeFile(
148
- filePath,
149
- JSON.stringify(data, generics_1.BufferJSON.replacer, 2) // <-- lesbar formatiert
150
- )
151
- } finally {
152
- release()
153
- }
154
- })
155
- }
156
-
157
- const readData = async (file) => {
158
- try {
159
- const filePath = path_1.join(folder, fixFileName(file))
160
- const mutex = getFileLock(filePath)
161
- const data = await mutex.acquire().then(async (release) => {
162
- try {
163
- return await promises_1.readFile(filePath, { encoding: 'utf-8' })
164
- } finally {
165
- release()
166
- }
167
- })
168
-
169
- return JSON.parse(data, generics_1.BufferJSON.reviver)
170
- } catch (error) {
171
- return null
56
+ catch (error) {
57
+ return null;
172
58
  }
173
- }
174
-
59
+ };
175
60
  const removeData = async (file) => {
176
61
  try {
177
- const filePath = path_1.join(folder, fixFileName(file))
178
- const mutex = getFileLock(filePath)
179
- await mutex.acquire().then(async (release) => {
62
+ const filePath = join(folder, fixFileName(file));
63
+ const mutex = getFileLock(filePath);
64
+ return mutex.acquire().then(async (release) => {
180
65
  try {
181
- await promises_1.unlink(filePath)
182
- } finally {
183
- release()
66
+ await unlink(filePath);
184
67
  }
185
- })
186
- } catch {}
187
- }
188
-
189
- const folderInfo = await promises_1.stat(folder).catch(() => {})
68
+ catch {
69
+ }
70
+ finally {
71
+ release();
72
+ }
73
+ });
74
+ }
75
+ catch { }
76
+ };
77
+ const folderInfo = await stat(folder).catch(() => { });
190
78
  if (folderInfo) {
191
79
  if (!folderInfo.isDirectory()) {
192
- throw new Error(`found something that is not a directory at ${folder}, either delete it or specify a different location`)
80
+ throw new Error(`found something that is not a directory at ${folder}, either delete it or specify a different location`);
193
81
  }
194
- } else {
195
- await promises_1.mkdir(folder, { recursive: true })
196
82
  }
197
-
198
- const creds = await readData('creds.json') || auth_utils_1.initAuthCreds()
199
-
83
+ else {
84
+ await mkdir(folder, { recursive: true });
85
+ }
86
+ const fixFileName = (file) => file?.replace(/\//g, '__')?.replace(/:/g, '-');
87
+ const creds = (await readData('creds.json')) || initAuthCreds();
200
88
  return {
201
89
  state: {
202
90
  creds,
203
91
  keys: {
204
92
  get: async (type, ids) => {
205
- const data = {}
93
+ const data = {};
206
94
  await Promise.all(ids.map(async (id) => {
207
- let value = await readData(`${type}-${id}.json`)
95
+ let value = await readData(`${type}-${id}.json`);
208
96
  if (type === 'app-state-sync-key' && value) {
209
- value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value)
97
+ value = proto.Message.AppStateSyncKeyData.fromObject(value);
210
98
  }
211
- data[id] = value
212
- }))
213
- return data
99
+ data[id] = value;
100
+ }));
101
+ return data;
214
102
  },
215
103
  set: async (data) => {
216
- const tasks = []
104
+ const tasks = [];
217
105
  for (const category in data) {
218
106
  for (const id in data[category]) {
219
- const value = data[category][id]
220
- const file = `${category}-${id}.json`
221
- tasks.push(value ? writeData(value, file) : removeData(file))
107
+ const value = data[category][id];
108
+ const file = `${category}-${id}.json`;
109
+ tasks.push(value ? writeData(value, file) : removeData(file));
222
110
  }
223
111
  }
224
- await Promise.all(tasks)
112
+ await Promise.all(tasks);
225
113
  }
226
114
  }
227
115
  },
228
116
  saveCreds: async () => {
229
- return writeData(creds, 'creds.json')
117
+ return writeData(creds, 'creds.json');
230
118
  }
231
- }
232
- }
233
-
234
-
235
- module.exports = {
236
- useMultiFileAuthState,
237
- useMultiFileAuthStateV2
238
- }
119
+ };
120
+ };
121
+ //# sourceMappingURL=use-multi-file-auth-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-multi-file-auth-state.js","sourceRoot":"","sources":["../../src/Utils/use-multi-file-auth-state.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
- import { proto } from '../../WAProto'
2
- import type { AuthenticationCreds, SignalCreds, SocketConfig } from '../Types'
3
- import { BinaryNode } from '../WABinary'
4
-
5
- export declare const generateLoginNode: (userJid: string, config: SocketConfig) => proto.IClientPayload
6
-
7
- export declare const generateRegistrationNode: ({ registrationId, signedPreKey, signedIdentityKey }: SignalCreds, config: SocketConfig) => proto.ClientPayload
8
-
9
- export declare const configureSuccessfulPairing: (stanza: BinaryNode, { advSecretKey, signedIdentityKey, signalIdentities }: Pick<AuthenticationCreds, 'advSecretKey' | 'signedIdentityKey' | 'signalIdentities'>) => {
10
- creds: Partial<AuthenticationCreds>
11
- reply: BinaryNode
12
- }
13
- export declare const encodeSignedDeviceIdentity: (account: proto.IADVSignedDeviceIdentity, includeSignatureKey: boolean) => Uint8Array
1
+ import { proto } from '../../WAProto/index.js';
2
+ import type { AuthenticationCreds, SignalCreds, SocketConfig } from '../Types/index.js';
3
+ import { type BinaryNode } from '../WABinary/index.js';
4
+ export declare const generateLoginNode: (userJid: string, config: SocketConfig) => proto.IClientPayload;
5
+ export declare const generateRegistrationNode: ({ registrationId, signedPreKey, signedIdentityKey }: SignalCreds, config: SocketConfig) => proto.ClientPayload;
6
+ export declare const configureSuccessfulPairing: (stanza: BinaryNode, { advSecretKey, signedIdentityKey, signalIdentities }: Pick<AuthenticationCreds, "advSecretKey" | "signedIdentityKey" | "signalIdentities">) => {
7
+ creds: Partial<AuthenticationCreds>;
8
+ reply: BinaryNode;
9
+ };
10
+ export declare const encodeSignedDeviceIdentity: (account: proto.IADVSignedDeviceIdentity, includeSignatureKey: boolean) => Uint8Array<ArrayBufferLike>;
11
+ //# sourceMappingURL=validate-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-connection.d.ts","sourceRoot":"","sources":["../../src/Utils/validate-connection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAO9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC9E,OAAO,EAAE,KAAK,UAAU,EAAiD,MAAM,aAAa,CAAA;AAuD5F,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,QAAQ,YAAY,KAAG,KAAK,CAAC,cAY/E,CAAA;AAUD,eAAO,MAAM,wBAAwB,GACpC,qDAAqD,WAAW,EAChE,QAAQ,YAAY,wBAkDpB,CAAA;AAED,eAAO,MAAM,0BAA0B,GACtC,QAAQ,UAAU,EAClB,uDAIG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;;;CAyFvF,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,SAAS,KAAK,CAAC,wBAAwB,EAAE,qBAAqB,OAAO,gCAS/G,CAAA"}
@@ -1,89 +1,98 @@
1
- "use strict"
2
-
3
- Object.defineProperty(exports, "__esModule", { value: true })
4
-
5
- const boom_1 = require("@hapi/boom")
6
- const crypto_1 = require("crypto")
7
- const WAProto_1 = require("../../WAProto")
8
- const Defaults_1 = require("../Defaults")
9
- const WABinary_1 = require("../WABinary")
10
- const crypto_2 = require("./crypto")
11
- const generics_1 = require("./generics")
12
- const signal_1 = require("./signal")
13
-
1
+ import { Boom } from '@hapi/boom';
2
+ import { createHash } from 'crypto';
3
+ import { proto } from '../../WAProto/index.js';
4
+ import { KEY_BUNDLE_TYPE, WA_ADV_ACCOUNT_SIG_PREFIX, WA_ADV_DEVICE_SIG_PREFIX, WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX } from '../Defaults/index.js';
5
+ import { getBinaryNodeChild, jidDecode, S_WHATSAPP_NET } from '../WABinary/index.js';
6
+ import { Curve, hmacSign } from './crypto.js';
7
+ import { encodeBigEndian } from './generics.js';
8
+ import { createSignalIdentity } from './signal.js';
14
9
  const getUserAgent = (config) => {
15
10
  return {
16
11
  appVersion: {
17
12
  primary: config.version[0],
18
13
  secondary: config.version[1],
19
- tertiary: config.version[2],
14
+ tertiary: config.version[2]
20
15
  },
21
- platform: WAProto_1.proto.ClientPayload.UserAgent.Platform.WEB,
22
- releaseChannel: WAProto_1.proto.ClientPayload.UserAgent.ReleaseChannel.BETA,
16
+ platform: proto.ClientPayload.UserAgent.Platform.WEB,
17
+ releaseChannel: proto.ClientPayload.UserAgent.ReleaseChannel.RELEASE,
23
18
  osVersion: '0.1',
24
19
  device: 'Desktop',
25
- deviceType: WAProto_1.proto.ClientPayload.UserAgent.DeviceType.DESKTOP,
26
20
  osBuildNumber: '0.1',
27
21
  localeLanguageIso6391: 'en',
28
22
  mnc: '000',
29
23
  mcc: '000',
30
- localeCountryIso31661Alpha2: config.countryCode,
31
- }
32
- }
33
-
24
+ localeCountryIso31661Alpha2: config.countryCode
25
+ };
26
+ };
34
27
  const PLATFORM_MAP = {
35
- 'Mac OS': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.DARWIN,
36
- 'Windows': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WIN32,
37
- 'Android': WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WIN_HYBRID
38
- }
39
-
28
+ 'Mac OS': proto.ClientPayload.WebInfo.WebSubPlatform.DARWIN,
29
+ Windows: proto.ClientPayload.WebInfo.WebSubPlatform.WIN32
30
+ };
40
31
  const getWebInfo = (config) => {
41
- let webSubPlatform = WAProto_1.proto.ClientPayload.WebInfo.WebSubPlatform.WEB_BROWSER
42
- if (config.syncFullHistory && PLATFORM_MAP[config.browser[0]]) {
43
- webSubPlatform = PLATFORM_MAP[config.browser[0]]
32
+ let webSubPlatform = proto.ClientPayload.WebInfo.WebSubPlatform.WEB_BROWSER;
33
+ if (config.syncFullHistory &&
34
+ PLATFORM_MAP[config.browser[0]] &&
35
+ config.browser[1] === 'Desktop') {
36
+ webSubPlatform = PLATFORM_MAP[config.browser[0]];
44
37
  }
45
- return { webSubPlatform }
46
- }
47
-
38
+ return { webSubPlatform };
39
+ };
48
40
  const getClientPayload = (config) => {
49
41
  const payload = {
50
- connectType: WAProto_1.proto.ClientPayload.ConnectType.WIFI_UNKNOWN,
51
- connectReason: WAProto_1.proto.ClientPayload.ConnectReason.USER_ACTIVATED,
52
- userAgent: getUserAgent(config),
53
- }
54
- payload.webInfo = getWebInfo(config)
55
- return payload
56
- }
57
-
58
- const generateLoginNode = (userJid, config) => {
59
- const { user, device } = WABinary_1.jidDecode(userJid)
42
+ connectType: proto.ClientPayload.ConnectType.WIFI_UNKNOWN,
43
+ connectReason: proto.ClientPayload.ConnectReason.USER_ACTIVATED,
44
+ userAgent: getUserAgent(config)
45
+ };
46
+ payload.webInfo = getWebInfo(config);
47
+ return payload;
48
+ };
49
+ export const generateLoginNode = (userJid, config) => {
50
+ const { user, device } = jidDecode(userJid);
60
51
  const payload = {
61
52
  ...getClientPayload(config),
62
- passive: false,
53
+ passive: true,
63
54
  pull: true,
64
55
  username: +user,
65
56
  device: device,
66
- }
67
- return WAProto_1.proto.ClientPayload.fromObject(payload)
68
- }
69
-
57
+ // TODO: investigate (hard set as false atm)
58
+ lidDbMigrated: false
59
+ };
60
+ return proto.ClientPayload.fromObject(payload);
61
+ };
70
62
  const getPlatformType = (platform) => {
71
- const platformType = platform.toUpperCase()
72
- return WAProto_1.proto.DeviceProps.PlatformType[platformType] || WAProto_1.proto.DeviceProps.PlatformType.DESKTOP
73
- }
74
-
75
- const generateRegistrationNode = ({ registrationId, signedPreKey, signedIdentityKey }, config) => {
63
+ const platformType = platform.toUpperCase();
64
+ return (proto.DeviceProps.PlatformType[platformType] ||
65
+ proto.DeviceProps.PlatformType.CHROME);
66
+ };
67
+ export const generateRegistrationNode = ({ registrationId, signedPreKey, signedIdentityKey }, config) => {
76
68
  // the app version needs to be md5 hashed
77
69
  // and passed in
78
- const appVersionBuf = crypto_1.createHash('md5')
70
+ const appVersionBuf = createHash('md5')
79
71
  .update(config.version.join('.')) // join as string
80
- .digest()
72
+ .digest();
81
73
  const companion = {
82
74
  os: config.browser[0],
83
75
  platformType: getPlatformType(config.browser[1]),
84
76
  requireFullSync: config.syncFullHistory,
85
- }
86
- const companionProto = WAProto_1.proto.DeviceProps.encode(companion).finish()
77
+ historySyncConfig: {
78
+ storageQuotaMb: 569150,
79
+ inlineInitialPayloadInE2EeMsg: true,
80
+ supportCallLogHistory: false,
81
+ supportBotUserAgentChatHistory: true,
82
+ supportCagReactionsAndPolls: true,
83
+ supportBizHostedMsg: true,
84
+ supportRecentSyncChunkMessageCountTuning: true,
85
+ supportHostedGroupMsg: true,
86
+ supportFbidBotChatHistory: true,
87
+ supportMessageAssociation: true
88
+ },
89
+ version: {
90
+ primary: 10,
91
+ secondary: 15,
92
+ tertiary: 7
93
+ }
94
+ };
95
+ const companionProto = proto.DeviceProps.encode(companion).finish();
87
96
  const registerPayload = {
88
97
  ...getClientPayload(config),
89
98
  passive: false,
@@ -91,54 +100,63 @@ const generateRegistrationNode = ({ registrationId, signedPreKey, signedIdentity
91
100
  devicePairingData: {
92
101
  buildHash: appVersionBuf,
93
102
  deviceProps: companionProto,
94
- eRegid: generics_1.encodeBigEndian(registrationId),
95
- eKeytype: Defaults_1.KEY_BUNDLE_TYPE,
103
+ eRegid: encodeBigEndian(registrationId),
104
+ eKeytype: KEY_BUNDLE_TYPE,
96
105
  eIdent: signedIdentityKey.public,
97
- eSkeyId: generics_1.encodeBigEndian(signedPreKey.keyId, 3),
106
+ eSkeyId: encodeBigEndian(signedPreKey.keyId, 3),
98
107
  eSkeyVal: signedPreKey.keyPair.public,
99
- eSkeySig: signedPreKey.signature,
100
- },
101
- }
102
- return WAProto_1.proto.ClientPayload.fromObject(registerPayload)
103
- }
104
-
105
- const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, signalIdentities }) => {
106
- const msgId = stanza.attrs.id
107
- const pairSuccessNode = WABinary_1.getBinaryNodeChild(stanza, 'pair-success')
108
- const deviceIdentityNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'device-identity')
109
- const platformNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'platform')
110
- const deviceNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'device')
111
- const businessNode = WABinary_1.getBinaryNodeChild(pairSuccessNode, 'biz')
108
+ eSkeySig: signedPreKey.signature
109
+ }
110
+ };
111
+ return proto.ClientPayload.fromObject(registerPayload);
112
+ };
113
+ export const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, signalIdentities }) => {
114
+ const msgId = stanza.attrs.id;
115
+ const pairSuccessNode = getBinaryNodeChild(stanza, 'pair-success');
116
+ const deviceIdentityNode = getBinaryNodeChild(pairSuccessNode, 'device-identity');
117
+ const platformNode = getBinaryNodeChild(pairSuccessNode, 'platform');
118
+ const deviceNode = getBinaryNodeChild(pairSuccessNode, 'device');
119
+ const businessNode = getBinaryNodeChild(pairSuccessNode, 'biz');
112
120
  if (!deviceIdentityNode || !deviceNode) {
113
- throw new boom_1.Boom('Missing device-identity or device in pair success node', { data: stanza })
121
+ throw new Boom('Missing device-identity or device in pair success node', { data: stanza });
122
+ }
123
+ const bizName = businessNode?.attrs.name;
124
+ const jid = deviceNode.attrs.jid;
125
+ const lid = deviceNode.attrs.lid;
126
+ const { details, hmac, accountType } = proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content);
127
+ let hmacPrefix = Buffer.from([]);
128
+ if (accountType !== undefined && accountType === proto.ADVEncryptionType.HOSTED) {
129
+ hmacPrefix = WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX;
114
130
  }
115
- const bizName = businessNode?.attrs?.name
116
- const jid = deviceNode.attrs.jid
117
- const { details, hmac, accountType } = WAProto_1.proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content)
118
- const isHostedAccount = accountType !== undefined && accountType === WAProto_1.proto.ADVEncryptionType.HOSTED
119
- const hmacPrefix = isHostedAccount ? Buffer.from([6, 5]) : Buffer.alloc(0)
120
- const advSign = crypto_2.hmacSign(Buffer.concat([hmacPrefix, details]), Buffer.from(advSecretKey, 'base64'))
131
+ const advSign = hmacSign(Buffer.concat([hmacPrefix, details]), Buffer.from(advSecretKey, 'base64'));
121
132
  if (Buffer.compare(hmac, advSign) !== 0) {
122
- throw new boom_1.Boom('Invalid account signature')
133
+ throw new Boom('Invalid account signature');
123
134
  }
124
- const account = WAProto_1.proto.ADVSignedDeviceIdentity.decode(details)
125
- const { accountSignatureKey, accountSignature, details: deviceDetails } = account
126
- const accountMsg = Buffer.concat([Buffer.from([6, 0]), deviceDetails, signedIdentityKey.public])
127
- if (!crypto_2.Curve.verify(accountSignatureKey, accountMsg, accountSignature)) {
128
- throw new boom_1.Boom('Failed to verify account signature')
135
+ const account = proto.ADVSignedDeviceIdentity.decode(details);
136
+ const { accountSignatureKey, accountSignature, details: deviceDetails } = account;
137
+ const deviceIdentity = proto.ADVDeviceIdentity.decode(deviceDetails);
138
+ const accountSignaturePrefix = deviceIdentity.deviceType === proto.ADVEncryptionType.HOSTED
139
+ ? WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX
140
+ : WA_ADV_ACCOUNT_SIG_PREFIX;
141
+ const accountMsg = Buffer.concat([accountSignaturePrefix, deviceDetails, signedIdentityKey.public]);
142
+ if (!Curve.verify(accountSignatureKey, accountMsg, accountSignature)) {
143
+ throw new Boom('Failed to verify account signature');
129
144
  }
130
- const devicePrefix = isHostedAccount ? Buffer.from([6, 6]) : Buffer.from([6, 1])
131
- const deviceMsg = Buffer.concat([devicePrefix, deviceDetails, signedIdentityKey.public, accountSignatureKey])
132
- account.deviceSignature = crypto_2.Curve.sign(signedIdentityKey.private, deviceMsg)
133
- const identity = signal_1.createSignalIdentity(jid, accountSignatureKey)
134
- const accountEnc = encodeSignedDeviceIdentity(account, false)
135
- const deviceIdentity = WAProto_1.proto.ADVDeviceIdentity.decode(account.details)
145
+ const deviceMsg = Buffer.concat([
146
+ WA_ADV_DEVICE_SIG_PREFIX,
147
+ deviceDetails,
148
+ signedIdentityKey.public,
149
+ accountSignatureKey
150
+ ]);
151
+ account.deviceSignature = Curve.sign(signedIdentityKey.private, deviceMsg);
152
+ const identity = createSignalIdentity(lid, accountSignatureKey);
153
+ const accountEnc = encodeSignedDeviceIdentity(account, false);
136
154
  const reply = {
137
155
  tag: 'iq',
138
156
  attrs: {
139
- to: WABinary_1.S_WHATSAPP_NET,
157
+ to: S_WHATSAPP_NET,
140
158
  type: 'result',
141
- id: msgId,
159
+ id: msgId
142
160
  },
143
161
  content: [
144
162
  {
@@ -153,35 +171,25 @@ const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, s
153
171
  ]
154
172
  }
155
173
  ]
156
- }
174
+ };
157
175
  const authUpdate = {
158
176
  account,
159
- me: { id: jid, name: bizName },
160
- signalIdentities: [
161
- ...(signalIdentities || []),
162
- identity
163
- ],
164
- platform: platformNode?.attrs?.name
165
- }
177
+ me: { id: jid, name: bizName, lid },
178
+ signalIdentities: [...(signalIdentities || []), identity],
179
+ platform: platformNode?.attrs.name
180
+ };
166
181
  return {
167
182
  creds: authUpdate,
168
183
  reply
169
- }
170
- }
171
-
172
- const encodeSignedDeviceIdentity = (account, includeSignatureKey) => {
173
- account = { ...account }
184
+ };
185
+ };
186
+ export const encodeSignedDeviceIdentity = (account, includeSignatureKey) => {
187
+ account = { ...account };
174
188
  // set to null if we are not to include the signature key
175
189
  // or if we are including the signature key but it is empty
176
190
  if (!includeSignatureKey || !account.accountSignatureKey?.length) {
177
- account.accountSignatureKey = null
191
+ account.accountSignatureKey = null;
178
192
  }
179
- return WAProto_1.proto.ADVSignedDeviceIdentity.encode(account).finish()
180
- }
181
-
182
- module.exports = {
183
- generateLoginNode,
184
- generateRegistrationNode,
185
- configureSuccessfulPairing,
186
- encodeSignedDeviceIdentity
187
- }
193
+ return proto.ADVSignedDeviceIdentity.encode(account).finish();
194
+ };
195
+ //# sourceMappingURL=validate-connection.js.map