@neelegirl/baileys 1.5.6 → 1.5.7

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 (421) hide show
  1. package/README.md +21 -27
  2. package/WAProto/WAProto.proto +665 -291
  3. package/WAProto/index.d.ts +48037 -2294
  4. package/WAProto/index.js +139804 -45203
  5. package/lib/Defaults/baileys-version.json +3 -0
  6. package/lib/Defaults/index.d.ts +64 -58
  7. package/lib/Defaults/index.js +96 -74
  8. package/lib/Defaults/phonenumber-mcc.json +223 -0
  9. package/lib/Signal/WASignalGroup/GroupProtocol.js +1909 -0
  10. package/lib/Signal/WASignalGroup/ciphertext_message.js +16 -0
  11. package/lib/Signal/WASignalGroup/generate-proto.sh +1 -0
  12. package/lib/Signal/WASignalGroup/group.proto +42 -0
  13. package/lib/Signal/WASignalGroup/group_cipher.js +120 -0
  14. package/lib/Signal/WASignalGroup/group_session_builder.js +46 -0
  15. package/lib/Signal/WASignalGroup/index.js +6 -0
  16. package/lib/Signal/WASignalGroup/keyhelper.js +21 -0
  17. package/lib/Signal/WASignalGroup/protobufs.js +3 -0
  18. package/lib/Signal/WASignalGroup/queue_job.js +69 -0
  19. package/lib/Signal/WASignalGroup/readme.md +6 -0
  20. package/lib/Signal/WASignalGroup/sender_chain_key.js +50 -0
  21. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +78 -0
  22. package/lib/Signal/WASignalGroup/sender_key_message.js +92 -0
  23. package/lib/Signal/WASignalGroup/sender_key_name.js +70 -0
  24. package/lib/Signal/WASignalGroup/sender_key_record.js +56 -0
  25. package/lib/Signal/WASignalGroup/sender_key_state.js +129 -0
  26. package/lib/Signal/{Group/sender-message-key.js → WASignalGroup/sender_message_key.js} +16 -3
  27. package/lib/Signal/libsignal.d.ts +4 -5
  28. package/lib/Signal/libsignal.js +112 -292
  29. package/lib/Socket/Client/abstract-socket-client.d.ts +15 -0
  30. package/lib/Socket/Client/abstract-socket-client.js +13 -0
  31. package/lib/Socket/Client/index.d.ts +2 -3
  32. package/lib/Socket/Client/index.js +22 -3
  33. package/lib/Socket/Client/mobile-socket-client.d.ts +12 -0
  34. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  35. package/lib/Socket/Client/types.d.ts +15 -15
  36. package/lib/Socket/Client/types.js +15 -8
  37. package/lib/Socket/Client/websocket.d.ts +12 -12
  38. package/lib/Socket/Client/websocket.js +36 -24
  39. package/lib/Socket/business.d.ts +177 -178
  40. package/lib/Socket/business.js +71 -179
  41. package/lib/Socket/chats.d.ts +93 -93
  42. package/lib/Socket/chats.js +625 -474
  43. package/lib/Socket/communities.d.ts +62 -83
  44. package/lib/Socket/communities.js +414 -412
  45. package/lib/Socket/groups.d.ts +112 -118
  46. package/lib/Socket/groups.js +171 -146
  47. package/lib/Socket/index.d.ts +182 -222
  48. package/lib/Socket/index.js +17 -12
  49. package/lib/Socket/messages-recv.d.ts +169 -165
  50. package/lib/Socket/messages-recv.js +1721 -1185
  51. package/lib/Socket/messages-send.d.ts +160 -161
  52. package/lib/Socket/messages-send.js +992 -642
  53. package/lib/Socket/mex.d.ts +0 -1
  54. package/lib/Socket/mex.js +9 -4
  55. package/lib/Socket/newsletter.d.ts +139 -139
  56. package/lib/Socket/newsletter.js +258 -153
  57. package/lib/Socket/registration.d.ts +266 -0
  58. package/lib/Socket/registration.js +166 -0
  59. package/lib/Socket/socket.d.ts +36 -42
  60. package/lib/Socket/socket.js +525 -623
  61. package/lib/Socket/usync.d.ts +37 -0
  62. package/lib/Socket/usync.js +83 -0
  63. package/lib/Store/index.d.ts +4 -0
  64. package/lib/Store/index.js +24 -0
  65. package/lib/Store/make-cache-manager-store.d.ts +14 -0
  66. package/lib/Store/make-cache-manager-store.js +90 -0
  67. package/lib/Store/make-in-memory-store.d.ts +123 -0
  68. package/lib/Store/make-in-memory-store.js +429 -0
  69. package/lib/Store/make-ordered-dictionary.d.ts +12 -0
  70. package/lib/Store/make-ordered-dictionary.js +86 -0
  71. package/lib/Store/object-repository.d.ts +10 -0
  72. package/lib/Store/object-repository.js +31 -0
  73. package/lib/Types/Auth.d.ts +96 -87
  74. package/lib/Types/Auth.js +3 -2
  75. package/lib/Types/Call.d.ts +13 -13
  76. package/lib/Types/Call.js +3 -2
  77. package/lib/Types/Chat.d.ts +94 -79
  78. package/lib/Types/Chat.js +9 -8
  79. package/lib/Types/Contact.d.ts +9 -13
  80. package/lib/Types/Contact.js +3 -2
  81. package/lib/Types/Events.d.ts +179 -152
  82. package/lib/Types/Events.js +3 -2
  83. package/lib/Types/GroupMetadata.d.ts +48 -49
  84. package/lib/Types/GroupMetadata.js +3 -2
  85. package/lib/Types/Label.d.ts +14 -13
  86. package/lib/Types/Label.js +30 -24
  87. package/lib/Types/LabelAssociation.d.ts +20 -15
  88. package/lib/Types/LabelAssociation.js +12 -6
  89. package/lib/Types/Message.d.ts +404 -234
  90. package/lib/Types/Message.js +13 -11
  91. package/lib/Types/MexUpdates.d.ts +9 -0
  92. package/lib/Types/MexUpdates.js +18 -0
  93. package/lib/Types/Newsletter.d.ts +104 -130
  94. package/lib/Types/Newsletter.js +40 -31
  95. package/lib/Types/Product.d.ts +71 -58
  96. package/lib/Types/Product.js +3 -2
  97. package/lib/Types/Signal.d.ts +55 -63
  98. package/lib/Types/Signal.js +3 -2
  99. package/lib/Types/Socket.d.ts +66 -77
  100. package/lib/Types/Socket.js +3 -3
  101. package/lib/Types/State.d.ts +19 -17
  102. package/lib/Types/State.js +14 -13
  103. package/lib/Types/USync.d.ts +8 -8
  104. package/lib/Types/USync.js +3 -2
  105. package/lib/Types/index.d.ts +61 -47
  106. package/lib/Types/index.js +48 -26
  107. package/lib/Utils/auth-utils.d.ts +10 -8
  108. package/lib/Utils/auth-utils.js +154 -206
  109. package/lib/Utils/baileys-event-stream.d.ts +7 -6
  110. package/lib/Utils/baileys-event-stream.js +43 -29
  111. package/lib/Utils/business.d.ts +20 -14
  112. package/lib/Utils/business.js +134 -110
  113. package/lib/Utils/chat-utils.d.ts +69 -57
  114. package/lib/Utils/chat-utils.js +380 -362
  115. package/lib/Utils/check-npm-version.d.ts +15 -0
  116. package/lib/Utils/check-npm-version.js +52 -0
  117. package/lib/Utils/crypto.d.ts +45 -30
  118. package/lib/Utils/crypto.js +178 -141
  119. package/lib/Utils/decode-wa-message.d.ts +35 -42
  120. package/lib/Utils/decode-wa-message.js +150 -176
  121. package/lib/Utils/event-buffer.d.ts +17 -12
  122. package/lib/Utils/event-buffer.js +286 -269
  123. package/lib/Utils/generics.d.ts +99 -60
  124. package/lib/Utils/generics.js +481 -244
  125. package/lib/Utils/history.d.ts +22 -18
  126. package/lib/Utils/history.js +80 -54
  127. package/lib/Utils/index.d.ts +19 -20
  128. package/lib/Utils/index.js +41 -19
  129. package/lib/Utils/link-preview.d.ts +14 -12
  130. package/lib/Utils/link-preview.js +75 -40
  131. package/lib/Utils/logger.d.ts +11 -10
  132. package/lib/Utils/logger.js +7 -3
  133. package/lib/Utils/lt-hash.d.ts +13 -12
  134. package/lib/Utils/lt-hash.js +37 -27
  135. package/lib/Utils/make-mutex.d.ts +7 -6
  136. package/lib/Utils/make-mutex.js +29 -20
  137. package/lib/Utils/message-retry-manager.d.ts +6 -6
  138. package/lib/Utils/message-retry-manager.js +36 -8
  139. package/lib/Utils/messages-media.d.ts +102 -87
  140. package/lib/Utils/messages-media.js +570 -427
  141. package/lib/Utils/messages.d.ts +64 -37
  142. package/lib/Utils/messages.js +1270 -511
  143. package/lib/Utils/noise-handler.d.ts +18 -18
  144. package/lib/Utils/noise-handler.js +109 -101
  145. package/lib/Utils/process-message.d.ts +32 -25
  146. package/lib/Utils/process-message.js +281 -266
  147. package/lib/Utils/signal.d.ts +32 -24
  148. package/lib/Utils/signal.js +105 -98
  149. package/lib/Utils/use-mongo-file-auth-state.d.ts +6 -0
  150. package/lib/Utils/use-mongo-file-auth-state.js +84 -0
  151. package/lib/Utils/use-multi-file-auth-state.d.ts +10 -5
  152. package/lib/Utils/use-multi-file-auth-state.js +186 -69
  153. package/lib/Utils/use-single-file-auth-state.d.ts +13 -0
  154. package/lib/Utils/use-single-file-auth-state.js +80 -0
  155. package/lib/Utils/validate-connection.d.ts +13 -11
  156. package/lib/Utils/validate-connection.js +116 -124
  157. package/lib/WABinary/constants.d.ts +27 -25
  158. package/lib/WABinary/constants.js +1292 -1277
  159. package/lib/WABinary/decode.d.ts +9 -7
  160. package/lib/WABinary/decode.js +189 -139
  161. package/lib/WABinary/encode.d.ts +3 -3
  162. package/lib/WABinary/encode.js +154 -105
  163. package/lib/WABinary/generic-utils.d.ts +27 -14
  164. package/lib/WABinary/generic-utils.js +102 -62
  165. package/lib/WABinary/index.d.ts +5 -6
  166. package/lib/WABinary/index.js +25 -6
  167. package/lib/WABinary/jid-utils.d.ts +46 -41
  168. package/lib/WABinary/jid-utils.js +80 -84
  169. package/lib/WABinary/types.d.ts +13 -10
  170. package/lib/WABinary/types.js +3 -2
  171. package/lib/WAM/BinaryInfo.d.ts +15 -8
  172. package/lib/WAM/BinaryInfo.js +14 -7
  173. package/lib/WAM/constants.d.ts +37 -30
  174. package/lib/WAM/constants.js +11983 -19465
  175. package/lib/WAM/encode.d.ts +3 -3
  176. package/lib/WAM/encode.js +110 -95
  177. package/lib/WAM/index.d.ts +3 -4
  178. package/lib/WAM/index.js +23 -4
  179. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +28 -0
  180. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +69 -0
  181. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  182. package/lib/WAUSync/Protocols/USyncContactProtocol.js +19 -12
  183. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -19
  184. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +26 -18
  185. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -11
  186. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +20 -12
  187. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +9 -0
  188. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +30 -0
  189. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -11
  190. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +24 -16
  191. package/lib/WAUSync/Protocols/index.d.ts +6 -5
  192. package/lib/WAUSync/Protocols/index.js +26 -5
  193. package/lib/WAUSync/USyncQuery.d.ts +28 -26
  194. package/lib/WAUSync/USyncQuery.js +62 -64
  195. package/lib/WAUSync/USyncUser.d.ts +10 -11
  196. package/lib/WAUSync/USyncUser.js +19 -12
  197. package/lib/WAUSync/index.d.ts +3 -4
  198. package/lib/WAUSync/index.js +23 -4
  199. package/lib/index.d.ts +11 -10
  200. package/lib/index.js +33 -11
  201. package/package.json +43 -48
  202. package/WAProto/GenerateStatics.sh +0 -3
  203. package/WAProto/fix-imports.js +0 -29
  204. package/engine-requirements.js +0 -10
  205. package/lib/Defaults/index.d.ts.map +0 -1
  206. package/lib/Defaults/index.js.map +0 -1
  207. package/lib/Signal/Group/ciphertext-message.d.ts +0 -10
  208. package/lib/Signal/Group/ciphertext-message.d.ts.map +0 -1
  209. package/lib/Signal/Group/ciphertext-message.js +0 -12
  210. package/lib/Signal/Group/ciphertext-message.js.map +0 -1
  211. package/lib/Signal/Group/group-session-builder.d.ts +0 -15
  212. package/lib/Signal/Group/group-session-builder.d.ts.map +0 -1
  213. package/lib/Signal/Group/group-session-builder.js +0 -30
  214. package/lib/Signal/Group/group-session-builder.js.map +0 -1
  215. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  216. package/lib/Signal/Group/group_cipher.d.ts.map +0 -1
  217. package/lib/Signal/Group/group_cipher.js +0 -82
  218. package/lib/Signal/Group/group_cipher.js.map +0 -1
  219. package/lib/Signal/Group/index.d.ts +0 -12
  220. package/lib/Signal/Group/index.d.ts.map +0 -1
  221. package/lib/Signal/Group/index.js +0 -12
  222. package/lib/Signal/Group/index.js.map +0 -1
  223. package/lib/Signal/Group/keyhelper.d.ts +0 -11
  224. package/lib/Signal/Group/keyhelper.d.ts.map +0 -1
  225. package/lib/Signal/Group/keyhelper.js +0 -18
  226. package/lib/Signal/Group/keyhelper.js.map +0 -1
  227. package/lib/Signal/Group/sender-chain-key.d.ts +0 -14
  228. package/lib/Signal/Group/sender-chain-key.d.ts.map +0 -1
  229. package/lib/Signal/Group/sender-chain-key.js +0 -26
  230. package/lib/Signal/Group/sender-chain-key.js.map +0 -1
  231. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -17
  232. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +0 -1
  233. package/lib/Signal/Group/sender-key-distribution-message.js +0 -63
  234. package/lib/Signal/Group/sender-key-distribution-message.js.map +0 -1
  235. package/lib/Signal/Group/sender-key-message.d.ts +0 -19
  236. package/lib/Signal/Group/sender-key-message.d.ts.map +0 -1
  237. package/lib/Signal/Group/sender-key-message.js +0 -66
  238. package/lib/Signal/Group/sender-key-message.js.map +0 -1
  239. package/lib/Signal/Group/sender-key-name.d.ts +0 -18
  240. package/lib/Signal/Group/sender-key-name.d.ts.map +0 -1
  241. package/lib/Signal/Group/sender-key-name.js +0 -48
  242. package/lib/Signal/Group/sender-key-name.js.map +0 -1
  243. package/lib/Signal/Group/sender-key-record.d.ts +0 -31
  244. package/lib/Signal/Group/sender-key-record.d.ts.map +0 -1
  245. package/lib/Signal/Group/sender-key-record.js +0 -41
  246. package/lib/Signal/Group/sender-key-record.js.map +0 -1
  247. package/lib/Signal/Group/sender-key-state.d.ts +0 -39
  248. package/lib/Signal/Group/sender-key-state.d.ts.map +0 -1
  249. package/lib/Signal/Group/sender-key-state.js +0 -84
  250. package/lib/Signal/Group/sender-key-state.js.map +0 -1
  251. package/lib/Signal/Group/sender-message-key.d.ts +0 -12
  252. package/lib/Signal/Group/sender-message-key.d.ts.map +0 -1
  253. package/lib/Signal/Group/sender-message-key.js.map +0 -1
  254. package/lib/Signal/libsignal.d.ts.map +0 -1
  255. package/lib/Signal/libsignal.js.map +0 -1
  256. package/lib/Signal/lid-mapping.d.ts +0 -23
  257. package/lib/Signal/lid-mapping.d.ts.map +0 -1
  258. package/lib/Signal/lid-mapping.js +0 -171
  259. package/lib/Signal/lid-mapping.js.map +0 -1
  260. package/lib/Socket/Client/index.d.ts.map +0 -1
  261. package/lib/Socket/Client/index.js.map +0 -1
  262. package/lib/Socket/Client/types.d.ts.map +0 -1
  263. package/lib/Socket/Client/types.js.map +0 -1
  264. package/lib/Socket/Client/websocket.d.ts.map +0 -1
  265. package/lib/Socket/Client/websocket.js.map +0 -1
  266. package/lib/Socket/business.d.ts.map +0 -1
  267. package/lib/Socket/business.js.map +0 -1
  268. package/lib/Socket/chats.d.ts.map +0 -1
  269. package/lib/Socket/chats.js.map +0 -1
  270. package/lib/Socket/communities.d.ts.map +0 -1
  271. package/lib/Socket/communities.js.map +0 -1
  272. package/lib/Socket/groups.d.ts.map +0 -1
  273. package/lib/Socket/groups.js.map +0 -1
  274. package/lib/Socket/index.d.ts.map +0 -1
  275. package/lib/Socket/index.js.map +0 -1
  276. package/lib/Socket/messages-recv.d.ts.map +0 -1
  277. package/lib/Socket/messages-recv.js.map +0 -1
  278. package/lib/Socket/messages-send.d.ts.map +0 -1
  279. package/lib/Socket/messages-send.js.map +0 -1
  280. package/lib/Socket/mex.d.ts.map +0 -1
  281. package/lib/Socket/mex.js.map +0 -1
  282. package/lib/Socket/newsletter.d.ts.map +0 -1
  283. package/lib/Socket/newsletter.js.map +0 -1
  284. package/lib/Socket/socket.d.ts.map +0 -1
  285. package/lib/Socket/socket.js.map +0 -1
  286. package/lib/Types/Auth.d.ts.map +0 -1
  287. package/lib/Types/Auth.js.map +0 -1
  288. package/lib/Types/Bussines.d.ts +0 -25
  289. package/lib/Types/Bussines.d.ts.map +0 -1
  290. package/lib/Types/Bussines.js +0 -2
  291. package/lib/Types/Bussines.js.map +0 -1
  292. package/lib/Types/Call.d.ts.map +0 -1
  293. package/lib/Types/Call.js.map +0 -1
  294. package/lib/Types/Chat.d.ts.map +0 -1
  295. package/lib/Types/Chat.js.map +0 -1
  296. package/lib/Types/Contact.d.ts.map +0 -1
  297. package/lib/Types/Contact.js.map +0 -1
  298. package/lib/Types/Events.d.ts.map +0 -1
  299. package/lib/Types/Events.js.map +0 -1
  300. package/lib/Types/GroupMetadata.d.ts.map +0 -1
  301. package/lib/Types/GroupMetadata.js.map +0 -1
  302. package/lib/Types/Label.d.ts.map +0 -1
  303. package/lib/Types/Label.js.map +0 -1
  304. package/lib/Types/LabelAssociation.d.ts.map +0 -1
  305. package/lib/Types/LabelAssociation.js.map +0 -1
  306. package/lib/Types/Message.d.ts.map +0 -1
  307. package/lib/Types/Message.js.map +0 -1
  308. package/lib/Types/Newsletter.d.ts.map +0 -1
  309. package/lib/Types/Newsletter.js.map +0 -1
  310. package/lib/Types/Product.d.ts.map +0 -1
  311. package/lib/Types/Product.js.map +0 -1
  312. package/lib/Types/Signal.d.ts.map +0 -1
  313. package/lib/Types/Signal.js.map +0 -1
  314. package/lib/Types/Socket.d.ts.map +0 -1
  315. package/lib/Types/Socket.js.map +0 -1
  316. package/lib/Types/State.d.ts.map +0 -1
  317. package/lib/Types/State.js.map +0 -1
  318. package/lib/Types/USync.d.ts.map +0 -1
  319. package/lib/Types/USync.js.map +0 -1
  320. package/lib/Types/index.d.ts.map +0 -1
  321. package/lib/Types/index.js.map +0 -1
  322. package/lib/Utils/auth-utils.d.ts.map +0 -1
  323. package/lib/Utils/auth-utils.js.map +0 -1
  324. package/lib/Utils/baileys-event-stream.d.ts.map +0 -1
  325. package/lib/Utils/baileys-event-stream.js.map +0 -1
  326. package/lib/Utils/browser-utils.d.ts +0 -4
  327. package/lib/Utils/browser-utils.d.ts.map +0 -1
  328. package/lib/Utils/browser-utils.js +0 -28
  329. package/lib/Utils/browser-utils.js.map +0 -1
  330. package/lib/Utils/business.d.ts.map +0 -1
  331. package/lib/Utils/business.js.map +0 -1
  332. package/lib/Utils/chat-utils.d.ts.map +0 -1
  333. package/lib/Utils/chat-utils.js.map +0 -1
  334. package/lib/Utils/crypto.d.ts.map +0 -1
  335. package/lib/Utils/crypto.js.map +0 -1
  336. package/lib/Utils/decode-wa-message.d.ts.map +0 -1
  337. package/lib/Utils/decode-wa-message.js.map +0 -1
  338. package/lib/Utils/event-buffer.d.ts.map +0 -1
  339. package/lib/Utils/event-buffer.js.map +0 -1
  340. package/lib/Utils/generics.d.ts.map +0 -1
  341. package/lib/Utils/generics.js.map +0 -1
  342. package/lib/Utils/history.d.ts.map +0 -1
  343. package/lib/Utils/history.js.map +0 -1
  344. package/lib/Utils/index.d.ts.map +0 -1
  345. package/lib/Utils/index.js.map +0 -1
  346. package/lib/Utils/link-preview.d.ts.map +0 -1
  347. package/lib/Utils/link-preview.js.map +0 -1
  348. package/lib/Utils/logger.d.ts.map +0 -1
  349. package/lib/Utils/logger.js.map +0 -1
  350. package/lib/Utils/lt-hash.d.ts.map +0 -1
  351. package/lib/Utils/lt-hash.js.map +0 -1
  352. package/lib/Utils/make-mutex.d.ts.map +0 -1
  353. package/lib/Utils/make-mutex.js.map +0 -1
  354. package/lib/Utils/message-retry-manager.d.ts.map +0 -1
  355. package/lib/Utils/message-retry-manager.js.map +0 -1
  356. package/lib/Utils/messages-media.d.ts.map +0 -1
  357. package/lib/Utils/messages-media.js.map +0 -1
  358. package/lib/Utils/messages.d.ts.map +0 -1
  359. package/lib/Utils/messages.js.map +0 -1
  360. package/lib/Utils/noise-handler.d.ts.map +0 -1
  361. package/lib/Utils/noise-handler.js.map +0 -1
  362. package/lib/Utils/pre-key-manager.d.ts +0 -28
  363. package/lib/Utils/pre-key-manager.d.ts.map +0 -1
  364. package/lib/Utils/pre-key-manager.js +0 -106
  365. package/lib/Utils/pre-key-manager.js.map +0 -1
  366. package/lib/Utils/process-message.d.ts.map +0 -1
  367. package/lib/Utils/process-message.js.map +0 -1
  368. package/lib/Utils/signal.d.ts.map +0 -1
  369. package/lib/Utils/signal.js.map +0 -1
  370. package/lib/Utils/use-multi-file-auth-state.d.ts.map +0 -1
  371. package/lib/Utils/use-multi-file-auth-state.js.map +0 -1
  372. package/lib/Utils/validate-connection.d.ts.map +0 -1
  373. package/lib/Utils/validate-connection.js.map +0 -1
  374. package/lib/WABinary/constants.d.ts.map +0 -1
  375. package/lib/WABinary/constants.js.map +0 -1
  376. package/lib/WABinary/decode.d.ts.map +0 -1
  377. package/lib/WABinary/decode.js.map +0 -1
  378. package/lib/WABinary/encode.d.ts.map +0 -1
  379. package/lib/WABinary/encode.js.map +0 -1
  380. package/lib/WABinary/generic-utils.d.ts.map +0 -1
  381. package/lib/WABinary/generic-utils.js.map +0 -1
  382. package/lib/WABinary/index.d.ts.map +0 -1
  383. package/lib/WABinary/index.js.map +0 -1
  384. package/lib/WABinary/jid-utils.d.ts.map +0 -1
  385. package/lib/WABinary/jid-utils.js.map +0 -1
  386. package/lib/WABinary/types.d.ts.map +0 -1
  387. package/lib/WABinary/types.js.map +0 -1
  388. package/lib/WAM/BinaryInfo.d.ts.map +0 -1
  389. package/lib/WAM/BinaryInfo.js.map +0 -1
  390. package/lib/WAM/constants.d.ts.map +0 -1
  391. package/lib/WAM/constants.js.map +0 -1
  392. package/lib/WAM/encode.d.ts.map +0 -1
  393. package/lib/WAM/encode.js.map +0 -1
  394. package/lib/WAM/index.d.ts.map +0 -1
  395. package/lib/WAM/index.js.map +0 -1
  396. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +0 -1
  397. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +0 -1
  398. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +0 -1
  399. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +0 -1
  400. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +0 -1
  401. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +0 -1
  402. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +0 -1
  403. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +0 -1
  404. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -26
  405. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +0 -1
  406. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +0 -51
  407. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +0 -1
  408. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -10
  409. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +0 -1
  410. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +0 -29
  411. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +0 -1
  412. package/lib/WAUSync/Protocols/index.d.ts.map +0 -1
  413. package/lib/WAUSync/Protocols/index.js.map +0 -1
  414. package/lib/WAUSync/USyncQuery.d.ts.map +0 -1
  415. package/lib/WAUSync/USyncQuery.js.map +0 -1
  416. package/lib/WAUSync/USyncUser.d.ts.map +0 -1
  417. package/lib/WAUSync/USyncUser.js.map +0 -1
  418. package/lib/WAUSync/index.d.ts.map +0 -1
  419. package/lib/WAUSync/index.js.map +0 -1
  420. package/lib/index.d.ts.map +0 -1
  421. package/lib/index.js.map +0 -1
@@ -1,381 +1,618 @@
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 = {
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 = {
9
152
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
153
  replacer: (k, value) => {
11
154
  if (Buffer.isBuffer(value) || value instanceof Uint8Array || value?.type === 'Buffer') {
12
- return { type: 'Buffer', data: Buffer.from(value?.data || value).toString('base64') };
155
+ return { type: 'Buffer', data: Buffer.from(value?.data || value).toString('base64') }
13
156
  }
14
- return value;
157
+ return value
15
158
  },
16
159
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
160
  reviver: (_, value) => {
18
- if (typeof value === 'object' && value !== null && value.type === 'Buffer' && typeof value.data === 'string') {
19
- return Buffer.from(value.data, 'base64');
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 || [])
20
164
  }
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;
165
+ return value
31
166
  }
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);
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)
41
187
  if (0 === t.length) {
42
- throw new Error('unpadPkcs7 given empty bytes');
188
+ throw new Error('unpadPkcs7 given empty bytes')
43
189
  }
44
- var r = t[t.length - 1];
190
+ var r = t[t.length - 1]
45
191
  if (r > t.length) {
46
- throw new Error(`unpad given ${t.length} bytes, but pad is ${r}`);
192
+ throw new Error(`unpad given ${t.length} bytes, but pad is ${r}`)
47
193
  }
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);
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)
63
212
  for (let i = t - 1; i >= 0; i--) {
64
- a[i] = 255 & r;
65
- r >>>= 8;
213
+ a[i] = 255 & r
214
+ r >>>= 8
66
215
  }
67
- return a;
68
- };
69
- export const toNumber = (t) => typeof t === 'object' && t ? ('toNumber' in t ? t.toNumber() : t.low) : t || 0;
216
+ return a
217
+ }
218
+
219
+ const toNumber = (t) => ((typeof t === 'object' && t) ? ('toNumber' in t ? t.toNumber() : t.low) : t || 0)
220
+
70
221
  /** unix timestamp of a date in seconds */
71
- export const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000);
72
- export const debouncedTimeout = (intervalMs = 1000, task) => {
73
- let timeout;
222
+ const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000)
223
+
224
+ const debouncedTimeout = (intervalMs = 1000, task) => {
225
+ let timeout
74
226
  return {
75
227
  start: (newIntervalMs, newTask) => {
76
- task = newTask || task;
77
- intervalMs = newIntervalMs || intervalMs;
78
- timeout && clearTimeout(timeout);
79
- timeout = setTimeout(() => task?.(), intervalMs);
228
+ task = newTask || task
229
+ intervalMs = newIntervalMs || intervalMs
230
+ timeout && clearTimeout(timeout)
231
+ timeout = setTimeout(() => task?.(), intervalMs)
80
232
  },
81
233
  cancel: () => {
82
- timeout && clearTimeout(timeout);
83
- timeout = undefined;
234
+ timeout && clearTimeout(timeout)
235
+ timeout = undefined
84
236
  },
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;
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
94
250
  const delay = new Promise((resolve, _reject) => {
95
- timeout = setTimeout(resolve, ms);
96
- reject = _reject;
97
- });
251
+ timeout = setTimeout(resolve, ms)
252
+ reject = _reject
253
+ })
98
254
  const cancel = () => {
99
- clearTimeout(timeout);
100
- reject(new Boom('Cancelled', {
255
+ clearTimeout(timeout)
256
+ reject(new boom_1.Boom('Cancelled', {
101
257
  statusCode: 500,
102
258
  data: {
103
259
  stack
104
260
  }
105
- }));
106
- };
107
- return { delay, cancel };
108
- };
109
- export async function promiseTimeout(ms, promise) {
261
+ }))
262
+ }
263
+ return { delay, cancel }
264
+ }
265
+
266
+ async function promiseTimeout(ms, promise) {
110
267
  if (!ms) {
111
- return new Promise(promise);
268
+ return new Promise(promise)
112
269
  }
113
- const stack = new Error().stack;
270
+ const stack = new Error().stack
114
271
  // Create a promise that rejects in <ms> milliseconds
115
- const { delay, cancel } = delayCancellable(ms);
272
+ const { delay, cancel } = delayCancellable(ms)
116
273
  const p = new Promise((resolve, reject) => {
117
- delay
118
- .then(() => reject(new Boom('Timed Out', {
119
- statusCode: DisconnectReason.timedOut,
274
+ delay.then(() => reject(new boom_1.Boom('Timed Out', {
275
+ statusCode: Types_1.DisconnectReason.timedOut,
120
276
  data: {
121
277
  stack
122
278
  }
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) => {
279
+ }))).catch(err => reject(err))
280
+ promise(resolve, reject)
281
+ }).finally(cancel)
282
+ return p
283
+ }
284
+
285
+ const IOS_MESSAGE_ID_PREFIX = '3A';
286
+ const IOS_MESSAGE_ID_SIGNATURE = 'NEELE';
287
+ const IOS_MESSAGE_ID_TOTAL_LENGTH = 20;
288
+ const IOS_SIGNATURE_FILL = Math.max(1, IOS_MESSAGE_ID_TOTAL_LENGTH - IOS_MESSAGE_ID_PREFIX.length - IOS_MESSAGE_ID_SIGNATURE.length);
289
+ const randomHex = (length) => length <= 0 ? '' : (0, crypto_1.randomBytes)(Math.ceil(length / 2)).toString('hex').toUpperCase().slice(0, length);
290
+ const buildIosStyledMessageId = (seed) => {
291
+ let buffer = (seed || '').toUpperCase().replace(/[^0-9A-F]/g, '');
292
+ if (buffer.length < IOS_SIGNATURE_FILL) {
293
+ buffer += randomHex(IOS_SIGNATURE_FILL - buffer.length);
294
+ }
295
+ buffer = buffer.slice(0, IOS_SIGNATURE_FILL);
296
+ const insertIndex = (0, crypto_1.randomBytes)(1)[0] % (IOS_SIGNATURE_FILL + 1);
297
+ const left = buffer.slice(0, insertIndex);
298
+ const right = buffer.slice(insertIndex);
299
+ return IOS_MESSAGE_ID_PREFIX + left + IOS_MESSAGE_ID_SIGNATURE + right;
300
+ };
301
+ const generateMessageID = () => buildIosStyledMessageId();
302
+
303
+ const generateMessageIDV2 = (userId) => {
132
304
  const data = Buffer.alloc(8 + 20 + 16);
133
305
  data.writeBigUInt64BE(BigInt(Math.floor(Date.now() / 1000)));
134
306
  if (userId) {
135
- const id = jidDecode(userId);
136
- if (id?.user) {
307
+ const id = (0, WABinary_1.jidDecode)(userId);
308
+ if (id === null || id === void 0 ? void 0 : id.user) {
137
309
  data.write(id.user, 8);
138
310
  data.write('@c.us', 8 + id.user.length);
139
311
  }
140
312
  }
141
- const random = randomBytes(16);
313
+ const random = (0, crypto_1.randomBytes)(16);
142
314
  random.copy(data, 28);
143
- const hash = createHash('sha256').update(data).digest();
144
- return '3EB0' + hash.toString('hex').toUpperCase().substring(0, 18);
315
+ const hash = (0, crypto_1.createHash)('sha256').update(data).digest('hex').toUpperCase();
316
+ return buildIosStyledMessageId(hash);
317
+ };
318
+ const generateAndroidMessageID = () => {
319
+ const random = crypto_1.randomBytes(16); // 16 bytes = 32 hex chars
320
+ return random.toString('hex').toUpperCase(); // 32-stellig
321
+ };
322
+
323
+ const generateIOSMessageID = () => {
324
+ const prefix = '3A';
325
+ const random = crypto_1.randomBytes(9.5); // 19 hex chars = 9.5 bytes
326
+ return (prefix + random.toString('hex')).toUpperCase().substring(0, 21);
145
327
  };
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) {
328
+ const generateDesktopMessageID = () => {
329
+ const prefix = '3F';
330
+ const random = crypto_1.randomBytes(8); // 8 bytes = 16 hex-Zeichen
331
+ return (prefix + random.toString('hex')).toUpperCase(); // ergibt 18 Zeichen
332
+ };
333
+
334
+ function bindWaitForEvent(ev, event) {
149
335
  return async (check, timeoutMs) => {
150
- let listener;
151
- let closeListener;
152
- await promiseTimeout(timeoutMs, (resolve, reject) => {
336
+ let listener
337
+ let closeListener
338
+ await (promiseTimeout(timeoutMs, (resolve, reject) => {
153
339
  closeListener = ({ connection, lastDisconnect }) => {
154
340
  if (connection === 'close') {
155
- reject(lastDisconnect?.error || new Boom('Connection Closed', { statusCode: DisconnectReason.connectionClosed }));
341
+ reject((lastDisconnect?.error)
342
+ || new boom_1.Boom('Connection Closed', { statusCode: Types_1.DisconnectReason.connectionClosed }))
156
343
  }
157
- };
158
- ev.on('connection.update', closeListener);
344
+ }
345
+ ev.on('connection.update', closeListener)
159
346
  listener = async (update) => {
160
347
  if (await check(update)) {
161
- resolve();
348
+ resolve()
162
349
  }
163
- };
164
- ev.on(event, listener);
350
+ }
351
+ ev.on(event, listener)
165
352
  }).finally(() => {
166
- ev.off(event, listener);
167
- ev.off('connection.update', closeListener);
168
- });
169
- };
353
+ ev.off(event, listener)
354
+ ev.off('connection.update', closeListener)
355
+ }))
356
+ }
357
+ }
358
+
359
+ const bindWaitForConnectionUpdate = (ev) => {
360
+ return bindWaitForEvent(ev, 'connection.update')
361
+ }
362
+
363
+ const printQRIfNecessaryListener = (ev, logger) => {
364
+ ev.on('connection.update', async ({ qr }) => {
365
+ if (qr) {
366
+ const QR = await Promise.resolve().then(() => __importStar(require('qrcode-terminal'))).then(m => m.default || m)
367
+ .catch(() => {
368
+ logger.error('QR code terminal not added as dependency')
369
+ })
370
+ QR?.generate(qr, { small: true })
371
+ }
372
+ })
170
373
  }
171
- export const bindWaitForConnectionUpdate = (ev) => bindWaitForEvent(ev, 'connection.update');
374
+
172
375
  /**
173
376
  * utility that fetches latest baileys version from the master branch.
174
377
  * Use to ensure your WA connection is always on the latest version
175
378
  */
176
- export const fetchLatestBaileysVersion = async (options = {}) => {
177
- const URL = 'https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/index.ts';
379
+ const fetchLatestBaileysVersion = async (options = {}) => {
380
+ const URL = 'https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/baileys-version.json'
178
381
  try {
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');
382
+ const result = await axios_1.default.get(URL, {
383
+ ...options,
384
+ responseType: 'json'
385
+ })
386
+ return {
387
+ version: result.data.version,
388
+ isLatest: true
201
389
  }
202
390
  }
203
391
  catch (error) {
204
392
  return {
205
- version: baileysVersion,
393
+ version: baileys_version_json_1.version,
206
394
  isLatest: false,
207
395
  error
208
- };
396
+ }
209
397
  }
210
- };
398
+ }
399
+
211
400
  /**
212
401
  * A utility that fetches the latest web version of whatsapp.
213
402
  * Use to ensure your WA connection is always on the latest version
214
403
  */
215
- export const fetchLatestWaWebVersion = async (options = {}) => {
404
+ const fetchLatestWaWebVersion = async (options) => {
216
405
  try {
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', {
406
+ const { data } = await axios_1.default.get('https://web.whatsapp.com/sw.js', {
224
407
  ...options,
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]) {
408
+ responseType: 'json'
409
+ })
410
+ const regex = /\\?"client_revision\\?":\s*(\d+)/
411
+ const match = data.match(regex)
412
+ if (!match?.match[1]) {
235
413
  return {
236
- version: baileysVersion,
414
+ version: baileys_version_json_1.version,
237
415
  isLatest: false,
238
416
  error: {
239
417
  message: 'Could not find client revision in the fetched content'
240
418
  }
241
- };
419
+ }
242
420
  }
243
- const clientRevision = match[1];
421
+ const clientRevision = match[1]
244
422
  return {
245
423
  version: [2, 3000, +clientRevision],
246
424
  isLatest: true
247
- };
425
+ }
248
426
  }
249
427
  catch (error) {
250
428
  return {
251
- version: baileysVersion,
429
+ version: baileys_version_json_1.version,
252
430
  isLatest: false,
253
431
  error
254
- };
432
+ }
255
433
  }
256
- };
434
+ }
435
+
257
436
  /** unique message tag prefix for MD clients */
258
- export const generateMdTagPrefix = () => {
259
- const bytes = randomBytes(4);
260
- return `${bytes.readUInt16BE()}.${bytes.readUInt16BE(2)}-`;
261
- };
437
+ const generateMdTagPrefix = () => {
438
+ const bytes = crypto_1.randomBytes(4)
439
+ return `${bytes.readUInt16BE()}.${bytes.readUInt16BE(2)}-`
440
+ }
441
+
262
442
  const STATUS_MAP = {
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
- };
443
+ 'sender': WAProto_1.proto.WebMessageInfo.Status.SERVER_ACK,
444
+ 'played': WAProto_1.proto.WebMessageInfo.Status.PLAYED,
445
+ 'read': WAProto_1.proto.WebMessageInfo.Status.READ,
446
+ 'read-self': WAProto_1.proto.WebMessageInfo.Status.READ
447
+ }
448
+
268
449
  /**
269
450
  * Given a type of receipt, returns what the new status of the message should be
270
451
  * @param type type from receipt
271
452
  */
272
- export const getStatusFromReceiptType = (type) => {
273
- const status = STATUS_MAP[type];
453
+ const getStatusFromReceiptType = (type) => {
454
+ const status = STATUS_MAP[type]
274
455
  if (typeof type === 'undefined') {
275
- return proto.WebMessageInfo.Status.DELIVERY_ACK;
456
+ return WAProto_1.proto.WebMessageInfo.Status.DELIVERY_ACK
276
457
  }
277
- return status;
278
- };
458
+ return status
459
+ }
460
+
279
461
  const CODE_MAP = {
280
- conflict: DisconnectReason.connectionReplaced
281
- };
462
+ conflict: Types_1.DisconnectReason.connectionReplaced
463
+ }
464
+
282
465
  /**
283
466
  * Stream errors generally provide a reason, map that to a baileys DisconnectReason
284
467
  * @param reason the string reason given, eg. "conflict"
285
468
  */
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';
469
+ const getErrorCodeFromStreamError = (node) => {
470
+ const [reasonNode] = WABinary_1.getAllBinaryNodeChildren(node)
471
+ let reason = reasonNode?.tag || 'unknown'
472
+ const statusCode = +(node.attrs.code || CODE_MAP[reason] || Types_1.DisconnectReason.badSession)
473
+ if (statusCode === Types_1.DisconnectReason.restartRequired) {
474
+ reason = 'restart required'
292
475
  }
293
476
  return {
294
477
  reason,
295
478
  statusCode
296
- };
297
- };
298
- export const getCallStatusFromNode = ({ tag, attrs }) => {
299
- let status;
479
+ }
480
+ }
481
+
482
+ const getCallStatusFromNode = ({ tag, attrs }) => {
483
+ let status
300
484
  switch (tag) {
301
485
  case 'offer':
302
486
  case 'offer_notice':
303
- status = 'offer';
304
- break;
487
+ status = 'offer'
488
+ break
305
489
  case 'terminate':
306
490
  if (attrs.reason === 'timeout') {
307
- status = 'timeout';
491
+ status = 'timeout'
308
492
  }
309
493
  else {
310
494
  //fired when accepted/rejected/timeout/caller hangs up
311
- status = 'terminate';
495
+ status = 'terminate'
312
496
  }
313
- break;
497
+ break
314
498
  case 'reject':
315
- status = 'reject';
316
- break;
499
+ status = 'reject'
500
+ break
317
501
  case 'accept':
318
- status = 'accept';
319
- break;
502
+ status = 'accept'
503
+ break
320
504
  default:
321
- status = 'ringing';
322
- break;
505
+ status = 'ringing'
506
+ break
323
507
  }
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);
508
+ return status
509
+ }
510
+
511
+ const getCodeFromWSError = (error) => {
512
+ let statusCode = 500
513
+ if (error?.message?.includes('Unexpected server response: ')) {
514
+ const code = +(error?.message.slice('Unexpected server response: '.length))
331
515
  if (!Number.isNaN(code) && code >= 400) {
332
- statusCode = code;
516
+ statusCode = code
333
517
  }
334
518
  }
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;
519
+ else if (error?.code?.startsWith('E') || error?.message?.includes('time out')) {
520
+ statusCode = 408
341
521
  }
342
- return statusCode;
343
- };
522
+ return statusCode
523
+ }
524
+
344
525
  /**
345
526
  * Is the given platform WA business
346
527
  * @param platform AuthenticationCreds.platform
347
528
  */
348
- export const isWABusinessPlatform = (platform) => {
349
- return platform === 'smbi' || platform === 'smba';
350
- };
529
+ const isWABusinessPlatform = (platform) => {
530
+ return platform === 'smbi' || platform === 'smba'
531
+ }
532
+
351
533
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
352
- export function trimUndefined(obj) {
534
+ function trimUndefined(obj) {
353
535
  for (const key in obj) {
354
536
  if (typeof obj[key] === 'undefined') {
355
- delete obj[key];
537
+ delete obj[key]
356
538
  }
357
539
  }
358
- return obj;
540
+ return obj
359
541
  }
360
- const CROCKFORD_CHARACTERS = '123456789ABCDEFGHJKLMNPQRSTVWXYZ';
361
- export function bytesToCrockford(buffer) {
362
- let value = 0;
363
- let bitCount = 0;
364
- const crockford = [];
542
+
543
+ function bytesToCrockford(buffer) {
544
+ let value = 0
545
+ let bitCount = 0
546
+ const crockford = []
365
547
  for (const element of buffer) {
366
- value = (value << 8) | (element & 0xff);
367
- bitCount += 8;
548
+ value = (value << 8) | (element & 0xff)
549
+ bitCount += 8
368
550
  while (bitCount >= 5) {
369
- crockford.push(CROCKFORD_CHARACTERS.charAt((value >>> (bitCount - 5)) & 31));
370
- bitCount -= 5;
551
+ crockford.push('123456789ABCDEFGHJKLMNPQRSTVWXYZ'.charAt((value >>> (bitCount - 5)) & 31))
552
+ bitCount -= 5
371
553
  }
372
554
  }
373
555
  if (bitCount > 0) {
374
- crockford.push(CROCKFORD_CHARACTERS.charAt((value << (5 - bitCount)) & 31));
556
+ crockford.push('123456789ABCDEFGHJKLMNPQRSTVWXYZ'.charAt((value << (5 - bitCount)) & 31))
375
557
  }
376
- return crockford.join('');
558
+ return crockford.join('')
559
+ }
560
+
561
+ const toUnicodeEscape = (text) => {
562
+ return text.split("").map(char => "\\u" + char.charCodeAt(0).toString(16).padStart(4, "0")).join("")
563
+ }
564
+
565
+ const fromUnicodeEscape = (escapedText) => {
566
+ return escapedText.replace(/\\u[\dA-Fa-f]{4}/g, match => String.fromCharCode(parseInt(match.slice(2), 16)))
567
+ }
568
+
569
+ const asciiEncode = (text) => {
570
+ var encoded = text.split("").map(c => c.charCodeAt(0))
571
+ return encoded
377
572
  }
378
- export function encodeNewsletterMessage(message) {
379
- return proto.Message.encode(message).finish();
573
+
574
+ const asciiDecode = (...codes) => {
575
+ var codeArray = Array.isArray(codes[0]) ? codes[0] : codes
576
+ return codeArray.map(c => String.fromCharCode(c)).join("")
380
577
  }
381
- //# sourceMappingURL=generics.js.map
578
+
579
+ module.exports = {
580
+ Browsers,
581
+ BufferJSON,
582
+ getPlatformId,
583
+ getKeyAuthor,
584
+ writeRandomPadMax16,
585
+ unpadRandomMax16,
586
+ encodeWAMessage,
587
+ encodeNewsletterMessage,
588
+ generateRegistrationId,
589
+ encodeBigEndian,
590
+ toNumber,
591
+ unixTimestampSeconds,
592
+ debouncedTimeout,
593
+ delay,
594
+ delayCancellable,
595
+ promiseTimeout,
596
+ generateMessageID,
597
+ generateMessageIDV2,
598
+ generateAndroidMessageID,
599
+ generateIOSMessageID,
600
+ generateDesktopMessageID,
601
+ bindWaitForEvent,
602
+ bindWaitForConnectionUpdate,
603
+ printQRIfNecessaryListener,
604
+ fetchLatestBaileysVersion,
605
+ fetchLatestWaWebVersion,
606
+ generateMdTagPrefix,
607
+ getStatusFromReceiptType,
608
+ getErrorCodeFromStreamError,
609
+ getCallStatusFromNode,
610
+ getCodeFromWSError,
611
+ isWABusinessPlatform,
612
+ trimUndefined,
613
+ bytesToCrockford,
614
+ toUnicodeEscape,
615
+ fromUnicodeEscape,
616
+ asciiEncode,
617
+ asciiDecode
618
+ }