@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,624 +1,381 @@
1
- "use strict"
2
-
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
8
- }
9
- Object.defineProperty(o, k2, desc)
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k
12
- o[k2] = m[k]
13
- }))
14
-
15
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
- Object.defineProperty(o, "default", { enumerable: true, value: v })
17
- }) : function(o, v) {
18
- o["default"] = v
19
- })
20
-
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod
23
- var result = {}
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k)
25
- __setModuleDefault(result, mod)
26
- return result
27
- }
28
-
29
- var __importDefault = (this && this.__importDefault) || function (mod) {
30
- return (mod && mod.__esModule) ? mod : { "default": mod }
31
- }
32
-
33
- Object.defineProperty(exports, "__esModule", { value: true })
34
-
35
- const boom_1 = require("@hapi/boom")
36
- const axios_1 = __importDefault(require("axios"))
37
- const crypto_1 = require("crypto")
38
- const os_1 = require("os")
39
- const WAProto_1 = require("../../WAProto")
40
- const baileys_version_json_1 = require("../Defaults/baileys-version.json")
41
- const Types_1 = require("../Types")
42
- const WABinary_1 = require("../WABinary")
43
-
44
- const COMPANION_PLATFORM_MAP = {
45
- 'Chrome': '49',
46
- 'Edge': '50',
47
- 'Firefox': '51',
48
- 'Opera': '53',
49
- 'Safari': '54',
50
- 'Brave': '1.79.112',
51
- 'Vivaldi': '6.2.3105.58',
52
- 'Tor': '12.5.3',
53
- 'Yandex': '23.7.1',
54
- 'Falkon': '22.08.3',
55
- 'Epiphany': '44.2'
56
- }
57
-
58
- const PLATFORM_MAP = {
59
- 'aix': 'AIX',
60
- 'darwin': 'Mac OS',
61
- 'win32': 'Windows',
62
- 'android': 'Android',
63
- 'freebsd': 'FreeBSD',
64
- 'openbsd': 'OpenBSD',
65
- 'sunos': 'Solaris',
66
- 'linux': 'Linux',
67
- 'ubuntu': 'Ubuntu',
68
- 'ios': 'iOS',
69
- 'baileys': 'Baileys',
70
- 'chromeos': 'Chrome OS',
71
- 'tizen': 'Tizen',
72
- 'watchos': 'watchOS',
73
- 'wearos': 'Wear OS',
74
- 'harmonyos': 'HarmonyOS',
75
- 'kaios': 'KaiOS',
76
- 'smarttv': 'Smart TV',
77
- 'raspberrypi': 'Raspberry Pi OS',
78
- 'symbian': 'Symbian',
79
- 'blackberry': 'Blackberry OS',
80
- 'windowsphone': 'Windows Phone'
81
- }
82
-
83
- const PLATFORM_VERSIONS = {
84
- 'ubuntu': '22.04.4',
85
- 'darwin': '18.5',
86
- 'win32': '10.0.22631',
87
- 'android': '14.0.0',
88
- 'freebsd': '13.2',
89
- 'openbsd': '7.3',
90
- 'sunos': '11',
91
- 'linux': '6.5',
92
- 'ios': '18.2',
93
- 'baileys': '6.5.0',
94
- 'chromeos': '117.0.5938.132',
95
- 'tizen': '6.5',
96
- 'watchos': '10.1',
97
- 'wearos': '4.1',
98
- 'harmonyos': '4.0.0',
99
- 'kaios': '3.1',
100
- 'smarttv': '23.3.1',
101
- 'raspberrypi': '11 (Bullseye)',
102
- 'symbian': '3',
103
- 'blackberry': '10.3.3',
104
- 'windowsphone': '8.1'
105
- }
106
-
107
- const Browsers = {
108
- ubuntu: (browser) => {
109
- return [PLATFORM_MAP['ubuntu'], browser, PLATFORM_VERSIONS['ubuntu']]
110
- },
111
- macOS: (browser) => {
112
- return [PLATFORM_MAP['darwin'], browser, PLATFORM_VERSIONS['darwin']]
113
- },
114
- windows: (browser) => {
115
- return [PLATFORM_MAP['win32'], browser, PLATFORM_VERSIONS['win32']]
116
- },
117
- linux: (browser) => {
118
- return [PLATFORM_MAP['linux'], browser, PLATFORM_VERSIONS['linux']]
119
- },
120
- solaris: (browser) => {
121
- return [PLATFORM_MAP['sunos'], browser, PLATFORM_VERSIONS['sunos']]
122
- },
123
- baileys: (browser) => {
124
- return [PLATFORM_MAP['baileys'], browser, PLATFORM_VERSIONS['baileys']]
125
- },
126
- android: (browser) => {
127
- return [PLATFORM_MAP['android'], browser, PLATFORM_VERSIONS['android']]
128
- },
129
- iOS: (browser) => {
130
- return [PLATFORM_MAP['ios'], browser, PLATFORM_VERSIONS['ios']]
131
- },
132
- kaiOS: (browser) => {
133
- return [PLATFORM_MAP['kaios'], browser, PLATFORM_VERSIONS['kaios']]
134
- },
135
- chromeOS: (browser) => {
136
- return [PLATFORM_MAP['chromeos'], browser, PLATFORM_VERSIONS['chromeos']]
137
- },
138
- appropriate: (browser) => {
139
- const platform = os_1.platform()
140
- const platformName = PLATFORM_MAP[platform] || 'Unknown OS'
141
- return [platformName, browser, PLATFORM_VERSIONS[platform] || 'latest']
142
- },
143
- custom: (platform, browser, version) => {
144
- const platformName = PLATFORM_MAP[platform.toLowerCase()] || platform
145
- return [platformName, browser, version || PLATFORM_VERSIONS[platform] || 'latest']
146
- }
147
- }
148
-
149
-
150
-
151
- const BufferJSON = {
1
+ import { Boom } from '@hapi/boom';
2
+ import { createHash, randomBytes } from 'crypto';
3
+ import { proto } from '../../WAProto/index.js';
4
+ const baileysVersion = [2, 3000, 1027934701];
5
+ import { DisconnectReason } from '../Types/index.js';
6
+ import { getAllBinaryNodeChildren, jidDecode } from '../WABinary/index.js';
7
+ import { sha256 } from './crypto.js';
8
+ export const BufferJSON = {
152
9
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
10
  replacer: (k, value) => {
154
11
  if (Buffer.isBuffer(value) || value instanceof Uint8Array || value?.type === 'Buffer') {
155
- return { type: 'Buffer', data: Buffer.from(value?.data || value).toString('base64') }
12
+ return { type: 'Buffer', data: Buffer.from(value?.data || value).toString('base64') };
156
13
  }
157
- return value
14
+ return value;
158
15
  },
159
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
160
17
  reviver: (_, value) => {
161
- if (typeof value === 'object' && !!value && (value.buffer === true || value.type === 'Buffer')) {
162
- const val = value.data || value.value
163
- return typeof val === 'string' ? Buffer.from(val, 'base64') : Buffer.from(val || [])
18
+ if (typeof value === 'object' && value !== null && value.type === 'Buffer' && typeof value.data === 'string') {
19
+ return Buffer.from(value.data, 'base64');
164
20
  }
165
- return value
21
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
22
+ const keys = Object.keys(value);
23
+ if (keys.length > 0 && keys.every(k => !isNaN(parseInt(k, 10)))) {
24
+ const values = Object.values(value);
25
+ if (values.every(v => typeof v === 'number')) {
26
+ return Buffer.from(values);
27
+ }
28
+ }
29
+ }
30
+ return value;
166
31
  }
167
- }
168
-
169
- const getPlatformId = (browser) => {
170
- const platformType = WAProto_1.proto.DeviceProps.PlatformType[browser.toUpperCase()]
171
- return platformType ? platformType.toString() : '1'
172
- }
173
-
174
- const getKeyAuthor = (key, meId = 'me') => {
175
- return key?.fromMe ? meId : key?.participant || key?.remoteJid || ''
176
- }
177
-
178
- const writeRandomPadMax16 = (msg) => {
179
- const pad = crypto_1.randomBytes(1)
180
- const padLength = (pad[0] & 0x0f) + 1
181
-
182
- return Buffer.concat([msg, Buffer.alloc(padLength, padLength)])
183
- }
184
-
185
- const unpadRandomMax16 = (e) => {
186
- const t = new Uint8Array(e)
32
+ };
33
+ export const getKeyAuthor = (key, meId = 'me') => (key?.fromMe ? meId : key?.participant || key?.remoteJid) || '';
34
+ export const writeRandomPadMax16 = (msg) => {
35
+ const pad = randomBytes(1);
36
+ const padLength = (pad[0] & 0x0f) + 1;
37
+ return Buffer.concat([msg, Buffer.alloc(padLength, padLength)]);
38
+ };
39
+ export const unpadRandomMax16 = (e) => {
40
+ const t = new Uint8Array(e);
187
41
  if (0 === t.length) {
188
- throw new Error('unpadPkcs7 given empty bytes')
42
+ throw new Error('unpadPkcs7 given empty bytes');
189
43
  }
190
- var r = t[t.length - 1]
44
+ var r = t[t.length - 1];
191
45
  if (r > t.length) {
192
- throw new Error(`unpad given ${t.length} bytes, but pad is ${r}`)
46
+ throw new Error(`unpad given ${t.length} bytes, but pad is ${r}`);
193
47
  }
194
- return new Uint8Array(t.buffer, t.byteOffset, t.length - r)
195
- }
196
-
197
- const encodeWAMessage = (message) => {
198
- return writeRandomPadMax16(WAProto_1.proto.Message.encode(message).finish())
199
- }
200
-
201
- const encodeNewsletterMessage = (message) => {
202
- return WAProto_1.proto.Message.encode(message).finish()
203
- }
204
-
205
- const generateRegistrationId = () => {
206
- return Uint16Array.from(crypto_1.randomBytes(2))[0] & 16383
207
- }
208
-
209
- const encodeBigEndian = (e, t = 4) => {
210
- let r = e
211
- const a = new Uint8Array(t)
48
+ return new Uint8Array(t.buffer, t.byteOffset, t.length - r);
49
+ };
50
+ // code is inspired by whatsmeow
51
+ export const generateParticipantHashV2 = (participants) => {
52
+ participants.sort();
53
+ const sha256Hash = sha256(Buffer.from(participants.join(''))).toString('base64');
54
+ return '2:' + sha256Hash.slice(0, 6);
55
+ };
56
+ export const encodeWAMessage = (message) => writeRandomPadMax16(proto.Message.encode(message).finish());
57
+ export const generateRegistrationId = () => {
58
+ return Uint16Array.from(randomBytes(2))[0] & 16383;
59
+ };
60
+ export const encodeBigEndian = (e, t = 4) => {
61
+ let r = e;
62
+ const a = new Uint8Array(t);
212
63
  for (let i = t - 1; i >= 0; i--) {
213
- a[i] = 255 & r
214
- r >>>= 8
64
+ a[i] = 255 & r;
65
+ r >>>= 8;
215
66
  }
216
- return a
217
- }
218
-
219
- const toNumber = (t) => ((typeof t === 'object' && t) ? ('toNumber' in t ? t.toNumber() : t.low) : t || 0)
220
-
67
+ return a;
68
+ };
69
+ export const toNumber = (t) => typeof t === 'object' && t ? ('toNumber' in t ? t.toNumber() : t.low) : t || 0;
221
70
  /** unix timestamp of a date in seconds */
222
- const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000)
223
-
224
- const debouncedTimeout = (intervalMs = 1000, task) => {
225
- let timeout
71
+ export const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000);
72
+ export const debouncedTimeout = (intervalMs = 1000, task) => {
73
+ let timeout;
226
74
  return {
227
75
  start: (newIntervalMs, newTask) => {
228
- task = newTask || task
229
- intervalMs = newIntervalMs || intervalMs
230
- timeout && clearTimeout(timeout)
231
- timeout = setTimeout(() => task?.(), intervalMs)
76
+ task = newTask || task;
77
+ intervalMs = newIntervalMs || intervalMs;
78
+ timeout && clearTimeout(timeout);
79
+ timeout = setTimeout(() => task?.(), intervalMs);
232
80
  },
233
81
  cancel: () => {
234
- timeout && clearTimeout(timeout)
235
- timeout = undefined
82
+ timeout && clearTimeout(timeout);
83
+ timeout = undefined;
236
84
  },
237
- setTask: (newTask) => task = newTask,
238
- setInterval: (newInterval) => intervalMs = newInterval
239
- }
240
- }
241
-
242
- const delay = (ms) => {
243
- return delayCancellable(ms).delay
244
- }
245
-
246
- const delayCancellable = (ms) => {
247
- const stack = new Error().stack
248
- let timeout
249
- let reject
85
+ setTask: (newTask) => (task = newTask),
86
+ setInterval: (newInterval) => (intervalMs = newInterval)
87
+ };
88
+ };
89
+ export const delay = (ms) => delayCancellable(ms).delay;
90
+ export const delayCancellable = (ms) => {
91
+ const stack = new Error().stack;
92
+ let timeout;
93
+ let reject;
250
94
  const delay = new Promise((resolve, _reject) => {
251
- timeout = setTimeout(resolve, ms)
252
- reject = _reject
253
- })
95
+ timeout = setTimeout(resolve, ms);
96
+ reject = _reject;
97
+ });
254
98
  const cancel = () => {
255
- clearTimeout(timeout)
256
- reject(new boom_1.Boom('Cancelled', {
99
+ clearTimeout(timeout);
100
+ reject(new Boom('Cancelled', {
257
101
  statusCode: 500,
258
102
  data: {
259
103
  stack
260
104
  }
261
- }))
262
- }
263
- return { delay, cancel }
264
- }
265
-
266
- async function promiseTimeout(ms, promise) {
105
+ }));
106
+ };
107
+ return { delay, cancel };
108
+ };
109
+ export async function promiseTimeout(ms, promise) {
267
110
  if (!ms) {
268
- return new Promise(promise)
111
+ return new Promise(promise);
269
112
  }
270
- const stack = new Error().stack
113
+ const stack = new Error().stack;
271
114
  // Create a promise that rejects in <ms> milliseconds
272
- const { delay, cancel } = delayCancellable(ms)
115
+ const { delay, cancel } = delayCancellable(ms);
273
116
  const p = new Promise((resolve, reject) => {
274
- delay.then(() => reject(new boom_1.Boom('Timed Out', {
275
- statusCode: Types_1.DisconnectReason.timedOut,
117
+ delay
118
+ .then(() => reject(new Boom('Timed Out', {
119
+ statusCode: DisconnectReason.timedOut,
276
120
  data: {
277
121
  stack
278
122
  }
279
- }))).catch(err => reject(err))
280
- promise(resolve, reject)
281
- }).finally(cancel)
282
- return p
283
- }
284
-
285
- const generateMessageID = () => {
286
- const targetLength = 20; // Gesamtlänge
287
- const prefix = '3A'; // iOS-Style Prefix
288
- const middle = 'NEELE'; // Fester Name in der ID
289
-
290
- const fillLen = targetLength - prefix.length - middle.length;
291
- const leftLen = Math.floor(Math.random() * (fillLen + 1));
292
- const rightLen = fillLen - leftLen;
293
-
294
- const randomHex = (len) => {
295
- const hexChars = '0123456789ABCDEF';
296
- let s = '';
297
- for (let i = 0; i < len; i++) {
298
- s += hexChars.charAt(Math.floor(Math.random() * hexChars.length));
299
- }
300
- return s;
301
- };
302
-
303
- const leftPart = randomHex(leftLen);
304
- const rightPart = randomHex(rightLen);
305
-
306
- return prefix + leftPart + middle + rightPart;
307
- };
308
-
309
- const generateMessageIDV2 = (userId) => {
123
+ })))
124
+ .catch(err => reject(err));
125
+ promise(resolve, reject);
126
+ }).finally(cancel);
127
+ return p;
128
+ }
129
+ // inspired from whatsmeow code
130
+ // https://github.com/tulir/whatsmeow/blob/64bc969fbe78d31ae0dd443b8d4c80a5d026d07a/send.go#L42
131
+ export const generateMessageIDV2 = (userId) => {
310
132
  const data = Buffer.alloc(8 + 20 + 16);
311
133
  data.writeBigUInt64BE(BigInt(Math.floor(Date.now() / 1000)));
312
134
  if (userId) {
313
- const id = (0, WABinary_1.jidDecode)(userId);
314
- if (id === null || id === void 0 ? void 0 : id.user) {
135
+ const id = jidDecode(userId);
136
+ if (id?.user) {
315
137
  data.write(id.user, 8);
316
138
  data.write('@c.us', 8 + id.user.length);
317
139
  }
318
140
  }
319
- const random = (0, crypto_1.randomBytes)(16);
141
+ const random = randomBytes(16);
320
142
  random.copy(data, 28);
321
- const hash = (0, crypto_1.createHash)('sha256').update(data).digest();
322
- return 'BAE5' + hash.toString('hex').toUpperCase().substring(0, 18);
323
- };
324
- const generateAndroidMessageID = () => {
325
- const random = crypto_1.randomBytes(16); // 16 bytes = 32 hex chars
326
- return random.toString('hex').toUpperCase(); // 32-stellig
327
- };
328
-
329
- const generateIOSMessageID = () => {
330
- const prefix = '3A';
331
- const random = crypto_1.randomBytes(9.5); // 19 hex chars = 9.5 bytes
332
- return (prefix + random.toString('hex')).toUpperCase().substring(0, 21);
143
+ const hash = createHash('sha256').update(data).digest();
144
+ return '3EB0' + hash.toString('hex').toUpperCase().substring(0, 18);
333
145
  };
334
- const generateDesktopMessageID = () => {
335
- const prefix = '3F';
336
- const random = crypto_1.randomBytes(8); // 8 bytes = 16 hex-Zeichen
337
- return (prefix + random.toString('hex')).toUpperCase(); // ergibt 18 Zeichen
338
- };
339
-
340
- function bindWaitForEvent(ev, event) {
146
+ // generate a random ID to attach to a message
147
+ export const generateMessageID = () => '3EB0' + randomBytes(18).toString('hex').toUpperCase();
148
+ export function bindWaitForEvent(ev, event) {
341
149
  return async (check, timeoutMs) => {
342
- let listener
343
- let closeListener
344
- await (promiseTimeout(timeoutMs, (resolve, reject) => {
150
+ let listener;
151
+ let closeListener;
152
+ await promiseTimeout(timeoutMs, (resolve, reject) => {
345
153
  closeListener = ({ connection, lastDisconnect }) => {
346
154
  if (connection === 'close') {
347
- reject((lastDisconnect?.error)
348
- || new boom_1.Boom('Connection Closed', { statusCode: Types_1.DisconnectReason.connectionClosed }))
155
+ reject(lastDisconnect?.error || new Boom('Connection Closed', { statusCode: DisconnectReason.connectionClosed }));
349
156
  }
350
- }
351
- ev.on('connection.update', closeListener)
157
+ };
158
+ ev.on('connection.update', closeListener);
352
159
  listener = async (update) => {
353
160
  if (await check(update)) {
354
- resolve()
161
+ resolve();
355
162
  }
356
- }
357
- ev.on(event, listener)
163
+ };
164
+ ev.on(event, listener);
358
165
  }).finally(() => {
359
- ev.off(event, listener)
360
- ev.off('connection.update', closeListener)
361
- }))
362
- }
363
- }
364
-
365
- const bindWaitForConnectionUpdate = (ev) => {
366
- return bindWaitForEvent(ev, 'connection.update')
367
- }
368
-
369
- const printQRIfNecessaryListener = (ev, logger) => {
370
- ev.on('connection.update', async ({ qr }) => {
371
- if (qr) {
372
- const QR = await Promise.resolve().then(() => __importStar(require('qrcode-terminal'))).then(m => m.default || m)
373
- .catch(() => {
374
- logger.error('QR code terminal not added as dependency')
375
- })
376
- QR?.generate(qr, { small: true })
377
- }
378
- })
166
+ ev.off(event, listener);
167
+ ev.off('connection.update', closeListener);
168
+ });
169
+ };
379
170
  }
380
-
171
+ export const bindWaitForConnectionUpdate = (ev) => bindWaitForEvent(ev, 'connection.update');
381
172
  /**
382
173
  * utility that fetches latest baileys version from the master branch.
383
174
  * Use to ensure your WA connection is always on the latest version
384
175
  */
385
- const fetchLatestBaileysVersion = async (options = {}) => {
386
- const URL = 'https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/baileys-version.json'
176
+ export const fetchLatestBaileysVersion = async (options = {}) => {
177
+ const URL = 'https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/index.ts';
387
178
  try {
388
- const result = await axios_1.default.get(URL, {
389
- ...options,
390
- responseType: 'json'
391
- })
392
- return {
393
- version: result.data.version,
394
- isLatest: true
179
+ const response = await fetch(URL, {
180
+ dispatcher: options.dispatcher,
181
+ method: 'GET',
182
+ headers: options.headers
183
+ });
184
+ if (!response.ok) {
185
+ throw new Boom(`Failed to fetch latest Baileys version: ${response.statusText}`, { statusCode: response.status });
186
+ }
187
+ const text = await response.text();
188
+ // Extract version from line 7 (const version = [...])
189
+ const lines = text.split('\n');
190
+ const versionLine = lines[6]; // Line 7 (0-indexed)
191
+ const versionMatch = versionLine.match(/const version = \[(\d+),\s*(\d+),\s*(\d+)\]/);
192
+ if (versionMatch) {
193
+ const version = [parseInt(versionMatch[1]), parseInt(versionMatch[2]), parseInt(versionMatch[3])];
194
+ return {
195
+ version,
196
+ isLatest: true
197
+ };
198
+ }
199
+ else {
200
+ throw new Error('Could not parse version from Defaults/index.ts');
395
201
  }
396
202
  }
397
203
  catch (error) {
398
204
  return {
399
- version: baileys_version_json_1.version,
205
+ version: baileysVersion,
400
206
  isLatest: false,
401
207
  error
402
- }
208
+ };
403
209
  }
404
- }
405
-
210
+ };
406
211
  /**
407
212
  * A utility that fetches the latest web version of whatsapp.
408
213
  * Use to ensure your WA connection is always on the latest version
409
214
  */
410
- const fetchLatestWaWebVersion = async (options) => {
215
+ export const fetchLatestWaWebVersion = async (options = {}) => {
411
216
  try {
412
- const { data } = await axios_1.default.get('https://web.whatsapp.com/sw.js', {
217
+ // Absolute minimal headers required to bypass anti-bot detection
218
+ const defaultHeaders = {
219
+ 'sec-fetch-site': 'none',
220
+ 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
221
+ };
222
+ const headers = { ...defaultHeaders, ...options.headers };
223
+ const response = await fetch('https://web.whatsapp.com/sw.js', {
413
224
  ...options,
414
- responseType: 'json'
415
- })
416
- const regex = /\\?"client_revision\\?":\s*(\d+)/
417
- const match = data.match(regex)
418
- if (!match?.match[1]) {
225
+ method: 'GET',
226
+ headers
227
+ });
228
+ if (!response.ok) {
229
+ throw new Boom(`Failed to fetch sw.js: ${response.statusText}`, { statusCode: response.status });
230
+ }
231
+ const data = await response.text();
232
+ const regex = /\\?"client_revision\\?":\s*(\d+)/;
233
+ const match = data.match(regex);
234
+ if (!match?.[1]) {
419
235
  return {
420
- version: baileys_version_json_1.version,
236
+ version: baileysVersion,
421
237
  isLatest: false,
422
238
  error: {
423
239
  message: 'Could not find client revision in the fetched content'
424
240
  }
425
- }
241
+ };
426
242
  }
427
- const clientRevision = match[1]
243
+ const clientRevision = match[1];
428
244
  return {
429
245
  version: [2, 3000, +clientRevision],
430
246
  isLatest: true
431
- }
247
+ };
432
248
  }
433
249
  catch (error) {
434
250
  return {
435
- version: baileys_version_json_1.version,
251
+ version: baileysVersion,
436
252
  isLatest: false,
437
253
  error
438
- }
254
+ };
439
255
  }
440
- }
441
-
256
+ };
442
257
  /** unique message tag prefix for MD clients */
443
- const generateMdTagPrefix = () => {
444
- const bytes = crypto_1.randomBytes(4)
445
- return `${bytes.readUInt16BE()}.${bytes.readUInt16BE(2)}-`
446
- }
447
-
258
+ export const generateMdTagPrefix = () => {
259
+ const bytes = randomBytes(4);
260
+ return `${bytes.readUInt16BE()}.${bytes.readUInt16BE(2)}-`;
261
+ };
448
262
  const STATUS_MAP = {
449
- 'sender': WAProto_1.proto.WebMessageInfo.Status.SERVER_ACK,
450
- 'played': WAProto_1.proto.WebMessageInfo.Status.PLAYED,
451
- 'read': WAProto_1.proto.WebMessageInfo.Status.READ,
452
- 'read-self': WAProto_1.proto.WebMessageInfo.Status.READ
453
- }
454
-
263
+ sender: proto.WebMessageInfo.Status.SERVER_ACK,
264
+ played: proto.WebMessageInfo.Status.PLAYED,
265
+ read: proto.WebMessageInfo.Status.READ,
266
+ 'read-self': proto.WebMessageInfo.Status.READ
267
+ };
455
268
  /**
456
269
  * Given a type of receipt, returns what the new status of the message should be
457
270
  * @param type type from receipt
458
271
  */
459
- const getStatusFromReceiptType = (type) => {
460
- const status = STATUS_MAP[type]
272
+ export const getStatusFromReceiptType = (type) => {
273
+ const status = STATUS_MAP[type];
461
274
  if (typeof type === 'undefined') {
462
- return WAProto_1.proto.WebMessageInfo.Status.DELIVERY_ACK
275
+ return proto.WebMessageInfo.Status.DELIVERY_ACK;
463
276
  }
464
- return status
465
- }
466
-
277
+ return status;
278
+ };
467
279
  const CODE_MAP = {
468
- conflict: Types_1.DisconnectReason.connectionReplaced
469
- }
470
-
280
+ conflict: DisconnectReason.connectionReplaced
281
+ };
471
282
  /**
472
283
  * Stream errors generally provide a reason, map that to a baileys DisconnectReason
473
284
  * @param reason the string reason given, eg. "conflict"
474
285
  */
475
- const getErrorCodeFromStreamError = (node) => {
476
- const [reasonNode] = WABinary_1.getAllBinaryNodeChildren(node)
477
- let reason = reasonNode?.tag || 'unknown'
478
- const statusCode = +(node.attrs.code || CODE_MAP[reason] || Types_1.DisconnectReason.badSession)
479
- if (statusCode === Types_1.DisconnectReason.restartRequired) {
480
- reason = 'restart required'
286
+ export const getErrorCodeFromStreamError = (node) => {
287
+ const [reasonNode] = getAllBinaryNodeChildren(node);
288
+ let reason = reasonNode?.tag || 'unknown';
289
+ const statusCode = +(node.attrs.code || CODE_MAP[reason] || DisconnectReason.badSession);
290
+ if (statusCode === DisconnectReason.restartRequired) {
291
+ reason = 'restart required';
481
292
  }
482
293
  return {
483
294
  reason,
484
295
  statusCode
485
- }
486
- }
487
-
488
- const getCallStatusFromNode = ({ tag, attrs }) => {
489
- let status
296
+ };
297
+ };
298
+ export const getCallStatusFromNode = ({ tag, attrs }) => {
299
+ let status;
490
300
  switch (tag) {
491
301
  case 'offer':
492
302
  case 'offer_notice':
493
- status = 'offer'
494
- break
303
+ status = 'offer';
304
+ break;
495
305
  case 'terminate':
496
306
  if (attrs.reason === 'timeout') {
497
- status = 'timeout'
307
+ status = 'timeout';
498
308
  }
499
309
  else {
500
310
  //fired when accepted/rejected/timeout/caller hangs up
501
- status = 'terminate'
311
+ status = 'terminate';
502
312
  }
503
- break
313
+ break;
504
314
  case 'reject':
505
- status = 'reject'
506
- break
315
+ status = 'reject';
316
+ break;
507
317
  case 'accept':
508
- status = 'accept'
509
- break
318
+ status = 'accept';
319
+ break;
510
320
  default:
511
- status = 'ringing'
512
- break
321
+ status = 'ringing';
322
+ break;
513
323
  }
514
- return status
515
- }
516
-
517
- const getCodeFromWSError = (error) => {
518
- let statusCode = 500
519
- if (error?.message?.includes('Unexpected server response: ')) {
520
- const code = +(error?.message.slice('Unexpected server response: '.length))
324
+ return status;
325
+ };
326
+ const UNEXPECTED_SERVER_CODE_TEXT = 'Unexpected server response: ';
327
+ export const getCodeFromWSError = (error) => {
328
+ let statusCode = 500;
329
+ if (error?.message?.includes(UNEXPECTED_SERVER_CODE_TEXT)) {
330
+ const code = +error?.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length);
521
331
  if (!Number.isNaN(code) && code >= 400) {
522
- statusCode = code
332
+ statusCode = code;
523
333
  }
524
334
  }
525
- else if (error?.code?.startsWith('E') || error?.message?.includes('time out')) {
526
- statusCode = 408
335
+ else if (
336
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
337
+ error?.code?.startsWith('E') ||
338
+ error?.message?.includes('timed out')) {
339
+ // handle ETIMEOUT, ENOTFOUND etc
340
+ statusCode = 408;
527
341
  }
528
- return statusCode
529
- }
530
-
342
+ return statusCode;
343
+ };
531
344
  /**
532
345
  * Is the given platform WA business
533
346
  * @param platform AuthenticationCreds.platform
534
347
  */
535
- const isWABusinessPlatform = (platform) => {
536
- return platform === 'smbi' || platform === 'smba'
537
- }
538
-
348
+ export const isWABusinessPlatform = (platform) => {
349
+ return platform === 'smbi' || platform === 'smba';
350
+ };
539
351
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
540
- function trimUndefined(obj) {
352
+ export function trimUndefined(obj) {
541
353
  for (const key in obj) {
542
354
  if (typeof obj[key] === 'undefined') {
543
- delete obj[key]
355
+ delete obj[key];
544
356
  }
545
357
  }
546
- return obj
358
+ return obj;
547
359
  }
548
-
549
- function bytesToCrockford(buffer) {
550
- let value = 0
551
- let bitCount = 0
552
- const crockford = []
360
+ const CROCKFORD_CHARACTERS = '123456789ABCDEFGHJKLMNPQRSTVWXYZ';
361
+ export function bytesToCrockford(buffer) {
362
+ let value = 0;
363
+ let bitCount = 0;
364
+ const crockford = [];
553
365
  for (const element of buffer) {
554
- value = (value << 8) | (element & 0xff)
555
- bitCount += 8
366
+ value = (value << 8) | (element & 0xff);
367
+ bitCount += 8;
556
368
  while (bitCount >= 5) {
557
- crockford.push('123456789ABCDEFGHJKLMNPQRSTVWXYZ'.charAt((value >>> (bitCount - 5)) & 31))
558
- bitCount -= 5
369
+ crockford.push(CROCKFORD_CHARACTERS.charAt((value >>> (bitCount - 5)) & 31));
370
+ bitCount -= 5;
559
371
  }
560
372
  }
561
373
  if (bitCount > 0) {
562
- crockford.push('123456789ABCDEFGHJKLMNPQRSTVWXYZ'.charAt((value << (5 - bitCount)) & 31))
374
+ crockford.push(CROCKFORD_CHARACTERS.charAt((value << (5 - bitCount)) & 31));
563
375
  }
564
- return crockford.join('')
565
- }
566
-
567
- const toUnicodeEscape = (text) => {
568
- return text.split("").map(char => "\\u" + char.charCodeAt(0).toString(16).padStart(4, "0")).join("")
569
- }
570
-
571
- const fromUnicodeEscape = (escapedText) => {
572
- return escapedText.replace(/\\u[\dA-Fa-f]{4}/g, match => String.fromCharCode(parseInt(match.slice(2), 16)))
573
- }
574
-
575
- const asciiEncode = (text) => {
576
- var encoded = text.split("").map(c => c.charCodeAt(0))
577
- return encoded
376
+ return crockford.join('');
578
377
  }
579
-
580
- const asciiDecode = (...codes) => {
581
- var codeArray = Array.isArray(codes[0]) ? codes[0] : codes
582
- return codeArray.map(c => String.fromCharCode(c)).join("")
378
+ export function encodeNewsletterMessage(message) {
379
+ return proto.Message.encode(message).finish();
583
380
  }
584
-
585
- module.exports = {
586
- Browsers,
587
- BufferJSON,
588
- getPlatformId,
589
- getKeyAuthor,
590
- writeRandomPadMax16,
591
- unpadRandomMax16,
592
- encodeWAMessage,
593
- encodeNewsletterMessage,
594
- generateRegistrationId,
595
- encodeBigEndian,
596
- toNumber,
597
- unixTimestampSeconds,
598
- debouncedTimeout,
599
- delay,
600
- delayCancellable,
601
- promiseTimeout,
602
- generateMessageID,
603
- generateMessageIDV2,
604
- generateAndroidMessageID,
605
- generateIOSMessageID,
606
- generateDesktopMessageID,
607
- bindWaitForEvent,
608
- bindWaitForConnectionUpdate,
609
- printQRIfNecessaryListener,
610
- fetchLatestBaileysVersion,
611
- fetchLatestWaWebVersion,
612
- generateMdTagPrefix,
613
- getStatusFromReceiptType,
614
- getErrorCodeFromStreamError,
615
- getCallStatusFromNode,
616
- getCodeFromWSError,
617
- isWABusinessPlatform,
618
- trimUndefined,
619
- bytesToCrockford,
620
- toUnicodeEscape,
621
- fromUnicodeEscape,
622
- asciiEncode,
623
- asciiDecode
624
- }
381
+ //# sourceMappingURL=generics.js.map