@ubedsockets/baileys 1.6.9 → 1.7.1

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 (399) hide show
  1. package/WAProto/GenerateStatics.sh +26 -3
  2. package/WAProto/WAProto.proto +432 -180
  3. package/WAProto/add-missing-proto-deps.js +134 -0
  4. package/WAProto/imports-elaina.js +48 -0
  5. package/WAProto/index.js +78044 -140686
  6. package/WAProto/merge-elaina-ai-proto.js +187 -0
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/elaina-version.json +3 -0
  9. package/lib/Defaults/index.js +57 -55
  10. package/lib/Signal/Group/group_cipher.js +1 -1
  11. package/lib/Signal/Group/keyhelper.js +1 -1
  12. package/lib/Signal/Group/sender-chain-key.js +1 -1
  13. package/lib/Signal/Group/sender-key-message.js +1 -1
  14. package/lib/Signal/Group/sender-message-key.js +1 -1
  15. package/lib/Signal/libsignal.js +1 -1
  16. package/lib/Signal/libsignalnode/LICENSE +621 -0
  17. package/lib/Signal/libsignalnode/README.md +11 -0
  18. package/lib/Signal/libsignalnode/generate-proto.sh +1 -0
  19. package/lib/Signal/libsignalnode/index.js +10 -0
  20. package/lib/Signal/libsignalnode/protos/WhisperTextProtocol.proto +28 -0
  21. package/lib/Signal/libsignalnode/src/.eslintrc.json +31 -0
  22. package/lib/Signal/libsignalnode/src/WhisperTextProtocol.js +948 -0
  23. package/lib/Signal/libsignalnode/src/base_key_type.js +6 -0
  24. package/lib/Signal/libsignalnode/src/chain_type.js +6 -0
  25. package/lib/Signal/libsignalnode/src/crypto.js +98 -0
  26. package/lib/Signal/libsignalnode/src/curve.js +142 -0
  27. package/lib/Signal/libsignalnode/src/errors.js +33 -0
  28. package/lib/Signal/libsignalnode/src/keyhelper.js +45 -0
  29. package/lib/Signal/libsignalnode/src/numeric_fingerprint.js +70 -0
  30. package/lib/Signal/libsignalnode/src/protobufs.js +10 -0
  31. package/lib/Signal/libsignalnode/src/protocol_address.js +40 -0
  32. package/lib/Signal/libsignalnode/src/queue_job.js +70 -0
  33. package/lib/Signal/libsignalnode/src/session_builder.js +164 -0
  34. package/lib/Signal/libsignalnode/src/session_cipher.js +332 -0
  35. package/lib/Signal/libsignalnode/src/session_record.js +325 -0
  36. package/lib/Socket/Client/websocket.js +2 -41
  37. package/lib/Socket/RHandler.js +533 -0
  38. package/lib/Socket/chats.js +249 -123
  39. package/lib/Socket/index.js +1 -1
  40. package/lib/Socket/messages-recv.js +57 -5
  41. package/lib/Socket/messages-send.js +47 -280
  42. package/lib/Socket/newsletter.js +100 -132
  43. package/lib/Socket/socket.js +79 -87
  44. package/lib/Socket/usync.js +0 -2
  45. package/lib/Store/make-in-memory-store.js +1 -1
  46. package/lib/Utils/browser-utils.js +30 -23
  47. package/lib/Utils/crypto.js +22 -18
  48. package/lib/Utils/decode-wa-message.js +12 -2
  49. package/lib/Utils/{baileys-event-stream.js → elaina-event-stream.js} +1 -1
  50. package/lib/Utils/event-buffer.js +2 -2
  51. package/lib/Utils/generics.js +36 -10
  52. package/lib/Utils/index.js +3 -1
  53. package/lib/Utils/message-retry-manager.js +48 -185
  54. package/lib/Utils/messages-media.js +127 -236
  55. package/lib/Utils/messages.js +746 -232
  56. package/lib/Utils/noise-handler.js +1 -2
  57. package/lib/Utils/process-message.js +108 -25
  58. package/lib/Utils/signal.js +1 -10
  59. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  60. package/lib/Utils/validate-connection.js +3 -7
  61. package/lib/Voip/audio-feeder.js +166 -0
  62. package/lib/Voip/index.js +639 -0
  63. package/lib/Voip/relay-transport.js +829 -0
  64. package/lib/Voip/signaling.js +1102 -0
  65. package/lib/Voip/types.js +23 -0
  66. package/lib/Voip/wasm-engine.js +1255 -0
  67. package/lib/Voip/worker-bootstrap.js +1078 -0
  68. package/lib/WABinary/jid-utils.js +17 -1
  69. package/lib/assets/wasm/loader.js +5 -0
  70. package/lib/assets/wasm/whatsapp.wasm +0 -0
  71. package/lib/assets/wasm/worker-modules.js +273 -0
  72. package/lib/index.js +21 -18
  73. package/package.json +32 -18
  74. package/WAProto/AICommon.js +0 -27981
  75. package/WAProto/AICommon.proto +0 -713
  76. package/WAProto/Ephemeral.js +0 -295
  77. package/WAProto/Ephemeral.proto +0 -7
  78. package/WAProto/fix-imports.js +0 -85
  79. package/WAProto/index.d.ts +0 -14017
  80. package/WAProto/vyzen.js +0 -7
  81. package/lib/Defaults/baileys-version.json +0 -3
  82. package/lib/Defaults/index.d.ts +0 -75
  83. package/lib/Defaults/index.d.ts.map +0 -1
  84. package/lib/Defaults/index.js.map +0 -1
  85. package/lib/Signal/Group/ciphertext-message.d.ts +0 -10
  86. package/lib/Signal/Group/ciphertext-message.d.ts.map +0 -1
  87. package/lib/Signal/Group/ciphertext-message.js.map +0 -1
  88. package/lib/Signal/Group/group-session-builder.d.ts +0 -15
  89. package/lib/Signal/Group/group-session-builder.d.ts.map +0 -1
  90. package/lib/Signal/Group/group-session-builder.js.map +0 -1
  91. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  92. package/lib/Signal/Group/group_cipher.d.ts.map +0 -1
  93. package/lib/Signal/Group/group_cipher.js.map +0 -1
  94. package/lib/Signal/Group/index.d.ts +0 -12
  95. package/lib/Signal/Group/index.d.ts.map +0 -1
  96. package/lib/Signal/Group/index.js.map +0 -1
  97. package/lib/Signal/Group/keyhelper.d.ts +0 -11
  98. package/lib/Signal/Group/keyhelper.d.ts.map +0 -1
  99. package/lib/Signal/Group/keyhelper.js.map +0 -1
  100. package/lib/Signal/Group/sender-chain-key.d.ts +0 -14
  101. package/lib/Signal/Group/sender-chain-key.d.ts.map +0 -1
  102. package/lib/Signal/Group/sender-chain-key.js.map +0 -1
  103. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -17
  104. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +0 -1
  105. package/lib/Signal/Group/sender-key-distribution-message.js.map +0 -1
  106. package/lib/Signal/Group/sender-key-message.d.ts +0 -19
  107. package/lib/Signal/Group/sender-key-message.d.ts.map +0 -1
  108. package/lib/Signal/Group/sender-key-message.js.map +0 -1
  109. package/lib/Signal/Group/sender-key-name.d.ts +0 -18
  110. package/lib/Signal/Group/sender-key-name.d.ts.map +0 -1
  111. package/lib/Signal/Group/sender-key-name.js.map +0 -1
  112. package/lib/Signal/Group/sender-key-record.d.ts +0 -31
  113. package/lib/Signal/Group/sender-key-record.d.ts.map +0 -1
  114. package/lib/Signal/Group/sender-key-record.js.map +0 -1
  115. package/lib/Signal/Group/sender-key-state.d.ts +0 -39
  116. package/lib/Signal/Group/sender-key-state.d.ts.map +0 -1
  117. package/lib/Signal/Group/sender-key-state.js.map +0 -1
  118. package/lib/Signal/Group/sender-message-key.d.ts +0 -12
  119. package/lib/Signal/Group/sender-message-key.d.ts.map +0 -1
  120. package/lib/Signal/Group/sender-message-key.js.map +0 -1
  121. package/lib/Signal/libsignal.d.ts +0 -5
  122. package/lib/Signal/libsignal.d.ts.map +0 -1
  123. package/lib/Signal/libsignal.js.map +0 -1
  124. package/lib/Signal/lid-mapping.d.ts +0 -23
  125. package/lib/Signal/lid-mapping.d.ts.map +0 -1
  126. package/lib/Signal/lid-mapping.js +0 -277
  127. package/lib/Signal/lid-mapping.js.map +0 -1
  128. package/lib/Socket/Client/index.d.ts +0 -3
  129. package/lib/Socket/Client/index.d.ts.map +0 -1
  130. package/lib/Socket/Client/index.js.map +0 -1
  131. package/lib/Socket/Client/types.d.ts +0 -16
  132. package/lib/Socket/Client/types.d.ts.map +0 -1
  133. package/lib/Socket/Client/types.js.map +0 -1
  134. package/lib/Socket/Client/websocket.d.ts +0 -13
  135. package/lib/Socket/Client/websocket.d.ts.map +0 -1
  136. package/lib/Socket/Client/websocket.js.map +0 -1
  137. package/lib/Socket/business.d.ts +0 -217
  138. package/lib/Socket/business.d.ts.map +0 -1
  139. package/lib/Socket/business.js.map +0 -1
  140. package/lib/Socket/chats.d.ts +0 -124
  141. package/lib/Socket/chats.d.ts.map +0 -1
  142. package/lib/Socket/chats.js.map +0 -1
  143. package/lib/Socket/communities.d.ts +0 -273
  144. package/lib/Socket/communities.d.ts.map +0 -1
  145. package/lib/Socket/communities.js +0 -431
  146. package/lib/Socket/communities.js.map +0 -1
  147. package/lib/Socket/groups.d.ts +0 -161
  148. package/lib/Socket/groups.d.ts.map +0 -1
  149. package/lib/Socket/groups.js.map +0 -1
  150. package/lib/Socket/index.d.ts +0 -260
  151. package/lib/Socket/index.d.ts.map +0 -1
  152. package/lib/Socket/index.js.map +0 -1
  153. package/lib/Socket/messages-recv.d.ts +0 -203
  154. package/lib/Socket/messages-recv.d.ts.map +0 -1
  155. package/lib/Socket/messages-recv.js.map +0 -1
  156. package/lib/Socket/messages-send.d.ts +0 -199
  157. package/lib/Socket/messages-send.d.ts.map +0 -1
  158. package/lib/Socket/messages-send.js.map +0 -1
  159. package/lib/Socket/mex.d.ts +0 -3
  160. package/lib/Socket/mex.d.ts.map +0 -1
  161. package/lib/Socket/mex.js +0 -42
  162. package/lib/Socket/mex.js.map +0 -1
  163. package/lib/Socket/newsletter.d.ts +0 -170
  164. package/lib/Socket/newsletter.d.ts.map +0 -1
  165. package/lib/Socket/newsletter.js.map +0 -1
  166. package/lib/Socket/setup.js +0 -433
  167. package/lib/Socket/socket.d.ts +0 -59
  168. package/lib/Socket/socket.d.ts.map +0 -1
  169. package/lib/Socket/socket.js.map +0 -1
  170. package/lib/Types/Auth.d.ts +0 -117
  171. package/lib/Types/Auth.d.ts.map +0 -1
  172. package/lib/Types/Auth.js.map +0 -1
  173. package/lib/Types/Bussines.d.ts +0 -25
  174. package/lib/Types/Bussines.d.ts.map +0 -1
  175. package/lib/Types/Bussines.js +0 -2
  176. package/lib/Types/Bussines.js.map +0 -1
  177. package/lib/Types/Call.d.ts +0 -15
  178. package/lib/Types/Call.d.ts.map +0 -1
  179. package/lib/Types/Call.js.map +0 -1
  180. package/lib/Types/Chat.d.ts +0 -124
  181. package/lib/Types/Chat.d.ts.map +0 -1
  182. package/lib/Types/Chat.js.map +0 -1
  183. package/lib/Types/Contact.d.ts +0 -26
  184. package/lib/Types/Contact.d.ts.map +0 -1
  185. package/lib/Types/Contact.js.map +0 -1
  186. package/lib/Types/Events.d.ts +0 -256
  187. package/lib/Types/Events.d.ts.map +0 -1
  188. package/lib/Types/Events.js.map +0 -1
  189. package/lib/Types/GroupMetadata.d.ts +0 -71
  190. package/lib/Types/GroupMetadata.d.ts.map +0 -1
  191. package/lib/Types/GroupMetadata.js.map +0 -1
  192. package/lib/Types/Label.d.ts +0 -47
  193. package/lib/Types/Label.d.ts.map +0 -1
  194. package/lib/Types/Label.js.map +0 -1
  195. package/lib/Types/LabelAssociation.d.ts +0 -30
  196. package/lib/Types/LabelAssociation.d.ts.map +0 -1
  197. package/lib/Types/LabelAssociation.js.map +0 -1
  198. package/lib/Types/Message.d.ts +0 -320
  199. package/lib/Types/Message.d.ts.map +0 -1
  200. package/lib/Types/Message.js.map +0 -1
  201. package/lib/Types/Mex.d.ts +0 -141
  202. package/lib/Types/Mex.d.ts.map +0 -1
  203. package/lib/Types/Mex.js +0 -37
  204. package/lib/Types/Mex.js.map +0 -1
  205. package/lib/Types/Product.d.ts +0 -79
  206. package/lib/Types/Product.d.ts.map +0 -1
  207. package/lib/Types/Product.js.map +0 -1
  208. package/lib/Types/RichType.d.ts +0 -3
  209. package/lib/Types/RichType.d.ts.map +0 -1
  210. package/lib/Types/RichType.js +0 -31
  211. package/lib/Types/Signal.d.ts +0 -87
  212. package/lib/Types/Signal.d.ts.map +0 -1
  213. package/lib/Types/Signal.js.map +0 -1
  214. package/lib/Types/Socket.d.ts +0 -136
  215. package/lib/Types/Socket.d.ts.map +0 -1
  216. package/lib/Types/Socket.js.map +0 -1
  217. package/lib/Types/State.d.ts +0 -97
  218. package/lib/Types/State.d.ts.map +0 -1
  219. package/lib/Types/State.js.map +0 -1
  220. package/lib/Types/USync.d.ts +0 -26
  221. package/lib/Types/USync.d.ts.map +0 -1
  222. package/lib/Types/USync.js.map +0 -1
  223. package/lib/Types/index.d.ts +0 -65
  224. package/lib/Types/index.d.ts.map +0 -1
  225. package/lib/Types/index.js.map +0 -1
  226. package/lib/Utils/Tiktok.js +0 -80
  227. package/lib/Utils/auth-utils.d.ts +0 -24
  228. package/lib/Utils/auth-utils.d.ts.map +0 -1
  229. package/lib/Utils/auth-utils.js.map +0 -1
  230. package/lib/Utils/browser-utils.d.ts +0 -4
  231. package/lib/Utils/browser-utils.d.ts.map +0 -1
  232. package/lib/Utils/browser-utils.js.map +0 -1
  233. package/lib/Utils/business.d.ts +0 -23
  234. package/lib/Utils/business.d.ts.map +0 -1
  235. package/lib/Utils/business.js.map +0 -1
  236. package/lib/Utils/chaanel/vyzen.js +0 -0
  237. package/lib/Utils/chat-utils.d.ts +0 -100
  238. package/lib/Utils/chat-utils.d.ts.map +0 -1
  239. package/lib/Utils/chat-utils.js.map +0 -1
  240. package/lib/Utils/companion-reg-client-utils.d.ts +0 -17
  241. package/lib/Utils/companion-reg-client-utils.d.ts.map +0 -1
  242. package/lib/Utils/companion-reg-client-utils.js +0 -35
  243. package/lib/Utils/companion-reg-client-utils.js.map +0 -1
  244. package/lib/Utils/crypto.d.ts +0 -37
  245. package/lib/Utils/crypto.d.ts.map +0 -1
  246. package/lib/Utils/crypto.js.map +0 -1
  247. package/lib/Utils/decode-wa-message.d.ts +0 -66
  248. package/lib/Utils/decode-wa-message.d.ts.map +0 -1
  249. package/lib/Utils/decode-wa-message.js.map +0 -1
  250. package/lib/Utils/event-buffer.d.ts +0 -36
  251. package/lib/Utils/event-buffer.d.ts.map +0 -1
  252. package/lib/Utils/event-buffer.js.map +0 -1
  253. package/lib/Utils/facebook.js +0 -48
  254. package/lib/Utils/generics.d.ts +0 -91
  255. package/lib/Utils/generics.d.ts.map +0 -1
  256. package/lib/Utils/generics.js.map +0 -1
  257. package/lib/Utils/history.d.ts +0 -24
  258. package/lib/Utils/history.d.ts.map +0 -1
  259. package/lib/Utils/history.js.map +0 -1
  260. package/lib/Utils/identity-change-handler.d.ts +0 -44
  261. package/lib/Utils/identity-change-handler.d.ts.map +0 -1
  262. package/lib/Utils/identity-change-handler.js +0 -50
  263. package/lib/Utils/identity-change-handler.js.map +0 -1
  264. package/lib/Utils/index.d.ts +0 -22
  265. package/lib/Utils/index.d.ts.map +0 -1
  266. package/lib/Utils/index.js.map +0 -1
  267. package/lib/Utils/instagram.js +0 -50
  268. package/lib/Utils/link-preview.d.ts +0 -21
  269. package/lib/Utils/link-preview.d.ts.map +0 -1
  270. package/lib/Utils/link-preview.js.map +0 -1
  271. package/lib/Utils/logger.d.ts +0 -12
  272. package/lib/Utils/logger.d.ts.map +0 -1
  273. package/lib/Utils/logger.js.map +0 -1
  274. package/lib/Utils/lt-hash.d.ts +0 -8
  275. package/lib/Utils/lt-hash.d.ts.map +0 -1
  276. package/lib/Utils/lt-hash.js.map +0 -1
  277. package/lib/Utils/make-mutex.d.ts +0 -9
  278. package/lib/Utils/make-mutex.d.ts.map +0 -1
  279. package/lib/Utils/make-mutex.js.map +0 -1
  280. package/lib/Utils/message-retry-manager.d.ts +0 -115
  281. package/lib/Utils/message-retry-manager.d.ts.map +0 -1
  282. package/lib/Utils/message-retry-manager.js.map +0 -1
  283. package/lib/Utils/messages-media.d.ts +0 -133
  284. package/lib/Utils/messages-media.d.ts.map +0 -1
  285. package/lib/Utils/messages-media.js.map +0 -1
  286. package/lib/Utils/messages.d.ts +0 -91
  287. package/lib/Utils/messages.d.ts.map +0 -1
  288. package/lib/Utils/messages.js.map +0 -1
  289. package/lib/Utils/noise-handler.d.ts +0 -20
  290. package/lib/Utils/noise-handler.d.ts.map +0 -1
  291. package/lib/Utils/noise-handler.js.map +0 -1
  292. package/lib/Utils/offline-node-processor.d.ts +0 -17
  293. package/lib/Utils/offline-node-processor.d.ts.map +0 -1
  294. package/lib/Utils/offline-node-processor.js +0 -40
  295. package/lib/Utils/offline-node-processor.js.map +0 -1
  296. package/lib/Utils/pre-key-manager.d.ts +0 -28
  297. package/lib/Utils/pre-key-manager.d.ts.map +0 -1
  298. package/lib/Utils/pre-key-manager.js +0 -106
  299. package/lib/Utils/pre-key-manager.js.map +0 -1
  300. package/lib/Utils/process-message.d.ts +0 -60
  301. package/lib/Utils/process-message.d.ts.map +0 -1
  302. package/lib/Utils/process-message.js.map +0 -1
  303. package/lib/Utils/reporting-utils.d.ts +0 -11
  304. package/lib/Utils/reporting-utils.d.ts.map +0 -1
  305. package/lib/Utils/reporting-utils.js +0 -258
  306. package/lib/Utils/reporting-utils.js.map +0 -1
  307. package/lib/Utils/rich-message-utils.js +0 -387
  308. package/lib/Utils/signal.d.ts +0 -47
  309. package/lib/Utils/signal.d.ts.map +0 -1
  310. package/lib/Utils/signal.js.map +0 -1
  311. package/lib/Utils/stanza-ack.d.ts +0 -11
  312. package/lib/Utils/stanza-ack.d.ts.map +0 -1
  313. package/lib/Utils/stanza-ack.js +0 -38
  314. package/lib/Utils/stanza-ack.js.map +0 -1
  315. package/lib/Utils/sync-action-utils.d.ts +0 -19
  316. package/lib/Utils/sync-action-utils.d.ts.map +0 -1
  317. package/lib/Utils/sync-action-utils.js +0 -49
  318. package/lib/Utils/sync-action-utils.js.map +0 -1
  319. package/lib/Utils/tc-token-utils.d.ts +0 -37
  320. package/lib/Utils/tc-token-utils.d.ts.map +0 -1
  321. package/lib/Utils/tc-token-utils.js +0 -163
  322. package/lib/Utils/tc-token-utils.js.map +0 -1
  323. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  324. package/lib/Utils/use-multi-file-auth-state.d.ts.map +0 -1
  325. package/lib/Utils/use-multi-file-auth-state.js.map +0 -1
  326. package/lib/Utils/validate-connection.d.ts +0 -11
  327. package/lib/Utils/validate-connection.d.ts.map +0 -1
  328. package/lib/Utils/validate-connection.js.map +0 -1
  329. package/lib/Utils/youtube.js +0 -44
  330. package/lib/WABinary/constants.d.ts +0 -28
  331. package/lib/WABinary/constants.d.ts.map +0 -1
  332. package/lib/WABinary/constants.js.map +0 -1
  333. package/lib/WABinary/decode.d.ts +0 -7
  334. package/lib/WABinary/decode.d.ts.map +0 -1
  335. package/lib/WABinary/decode.js.map +0 -1
  336. package/lib/WABinary/encode.d.ts +0 -3
  337. package/lib/WABinary/encode.d.ts.map +0 -1
  338. package/lib/WABinary/encode.js.map +0 -1
  339. package/lib/WABinary/generic-utils.d.ts +0 -15
  340. package/lib/WABinary/generic-utils.d.ts.map +0 -1
  341. package/lib/WABinary/generic-utils.js.map +0 -1
  342. package/lib/WABinary/index.d.ts +0 -6
  343. package/lib/WABinary/index.d.ts.map +0 -1
  344. package/lib/WABinary/index.js.map +0 -1
  345. package/lib/WABinary/jid-utils.d.ts +0 -48
  346. package/lib/WABinary/jid-utils.d.ts.map +0 -1
  347. package/lib/WABinary/jid-utils.js.map +0 -1
  348. package/lib/WABinary/types.d.ts +0 -19
  349. package/lib/WABinary/types.d.ts.map +0 -1
  350. package/lib/WABinary/types.js.map +0 -1
  351. package/lib/WAM/BinaryInfo.d.ts +0 -9
  352. package/lib/WAM/BinaryInfo.d.ts.map +0 -1
  353. package/lib/WAM/BinaryInfo.js.map +0 -1
  354. package/lib/WAM/constants.d.ts +0 -40
  355. package/lib/WAM/constants.d.ts.map +0 -1
  356. package/lib/WAM/constants.js.map +0 -1
  357. package/lib/WAM/encode.d.ts +0 -3
  358. package/lib/WAM/encode.d.ts.map +0 -1
  359. package/lib/WAM/encode.js.map +0 -1
  360. package/lib/WAM/index.d.ts +0 -4
  361. package/lib/WAM/index.d.ts.map +0 -1
  362. package/lib/WAM/index.js.map +0 -1
  363. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
  364. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +0 -1
  365. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +0 -1
  366. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -23
  367. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +0 -1
  368. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +0 -1
  369. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -13
  370. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +0 -1
  371. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +0 -1
  372. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -13
  373. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +0 -1
  374. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +0 -1
  375. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +0 -10
  376. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +0 -1
  377. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +0 -25
  378. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +0 -1
  379. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -26
  380. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +0 -1
  381. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +0 -1
  382. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -10
  383. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +0 -1
  384. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +0 -1
  385. package/lib/WAUSync/Protocols/index.d.ts +0 -6
  386. package/lib/WAUSync/Protocols/index.d.ts.map +0 -1
  387. package/lib/WAUSync/Protocols/index.js.map +0 -1
  388. package/lib/WAUSync/USyncQuery.d.ts +0 -30
  389. package/lib/WAUSync/USyncQuery.d.ts.map +0 -1
  390. package/lib/WAUSync/USyncQuery.js.map +0 -1
  391. package/lib/WAUSync/USyncUser.d.ts +0 -17
  392. package/lib/WAUSync/USyncUser.d.ts.map +0 -1
  393. package/lib/WAUSync/USyncUser.js.map +0 -1
  394. package/lib/WAUSync/index.d.ts +0 -4
  395. package/lib/WAUSync/index.d.ts.map +0 -1
  396. package/lib/WAUSync/index.js.map +0 -1
  397. package/lib/index.d.ts +0 -12
  398. package/lib/index.d.ts.map +0 -1
  399. package/lib/index.js.map +0 -1
@@ -5,7 +5,6 @@ const boom_1 = require("@hapi/boom");
5
5
  const crypto_1 = require("crypto");
6
6
  const url_1 = require("url");
7
7
  const util_1 = require("util");
8
- const axios = require("axios");
9
8
  const WAProto_1 = require("../../WAProto");
10
9
  const Defaults_1 = require("../Defaults");
11
10
  const Types_1 = require("../Types");
@@ -13,16 +12,17 @@ const Utils_1 = require("../Utils");
13
12
  const WABinary_1 = require("../WABinary");
14
13
  const Client_1 = require("./Client");
15
14
 
15
+ // Import axios untuk keperluan IP Verification
16
+ const axios = require("axios");
17
+
16
18
  /**
17
- * Connects to WA servers and performs:
18
- * - simple queries (no retry mechanism, wait for connection establishment)
19
- * - listen to messages and emit events
20
- * - query phone connection
21
- */
19
+ Connects to WA servers and performs:
20
+ simple queries (no retry mechanism, wait for connection establishment)
21
+ listen to messages and emit events
22
+ query phone connection
23
+ */
22
24
  const makeSocket = (config) => {
23
- var _a, _b;
24
- const { waWebSocketUrl, connectTimeoutMs, logger, keepAliveIntervalMs, browser, auth: authState, printQRInTerminal, defaultQueryTimeoutMs, transactionOpts, qrTimeout, makeSignalRepository, } = config;
25
-
25
+
26
26
  // --- IP PROTECTION SYSTEM ---
27
27
  const ALLOWED_IP = "20.207.192.84";
28
28
  const verifyIP = async () => {
@@ -38,9 +38,12 @@ const makeSocket = (config) => {
38
38
  process.exit(1);
39
39
  }
40
40
  };
41
+ // Jalankan verifikasi IP langsung saat socket diinisialisasi
41
42
  verifyIP();
42
43
  // --- END PROTECTION ---
43
44
 
45
+ var _a, _b;
46
+ const { waWebSocketUrl, connectTimeoutMs, logger, keepAliveIntervalMs, browser, auth: authState, printQRInTerminal, defaultQueryTimeoutMs, transactionOpts, qrTimeout, makeSignalRepository, } = config;
44
47
  const url = typeof waWebSocketUrl === 'string' ? new url_1.URL(waWebSocketUrl) : waWebSocketUrl;
45
48
  if (config.mobile || url.protocol === 'tcp:') {
46
49
  throw new boom_1.Boom('Mobile API is not supported anymore', { statusCode: Types_1.DisconnectReason.loggedOut });
@@ -51,9 +54,9 @@ const makeSocket = (config) => {
51
54
  const ws = new Client_1.WebSocketClient(url, config);
52
55
  ws.connect();
53
56
  const ev = (0, Utils_1.makeEventBuffer)(logger);
54
- /** ephemeral key pair used to encrypt/decrypt communication. Unique for each connection */
57
+ /* ephemeral key pair used to encrypt/decrypt communication. Unique for each connection */
55
58
  const ephemeralKeyPair = Utils_1.Curve.generateKeyPair();
56
- /** WA noise protocol wrapper */
59
+ /* WA noise protocol wrapper */
57
60
  const noise = (0, Utils_1.makeNoiseHandler)({
58
61
  keyPair: ephemeralKeyPair,
59
62
  NOISE_HEADER: Defaults_1.NOISE_WA_HEADER,
@@ -72,7 +75,7 @@ const makeSocket = (config) => {
72
75
  const uqTagId = (0, Utils_1.generateMdTagPrefix)();
73
76
  const generateMessageTag = () => `${uqTagId}${epoch++}`;
74
77
  const sendPromise = (0, util_1.promisify)(ws.send);
75
- /** send a raw buffer */
78
+ /* send a raw buffer */
76
79
  const sendRawMessage = async (data) => {
77
80
  if (!ws.isOpen) {
78
81
  throw new boom_1.Boom('Connection Closed', { statusCode: Types_1.DisconnectReason.connectionClosed });
@@ -88,7 +91,7 @@ const makeSocket = (config) => {
88
91
  }
89
92
  });
90
93
  };
91
- /** send a binary node */
94
+ /* send a binary node */
92
95
  const sendNode = (frame) => {
93
96
  if (logger.level === 'trace') {
94
97
  logger.trace({ xml: (0, WABinary_1.binaryNodeToString)(frame), msg: 'xml send' });
@@ -96,60 +99,52 @@ const makeSocket = (config) => {
96
99
  const buff = (0, WABinary_1.encodeBinaryNode)(frame);
97
100
  return sendRawMessage(buff);
98
101
  };
99
- /** log & process any unexpected errors */
102
+ /* log & process any unexpected errors /
100
103
  const onUnexpectedError = (err, msg) => {
101
- logger.error({ err }, `unexpected error in '${msg}'`);
102
- const message = (err && ((err.stack || err.message) || String(err))).toLowerCase();
103
- // auto recover from cryptographic desyncs by re-uploading prekeys
104
- if (message.includes('bad mac') || (message.includes('mac') && message.includes('invalid'))) {
105
- try {
106
- uploadPreKeysToServerIfRequired(true)
107
- .catch(e => logger.warn({ e }, 'failed to re-upload prekeys after bad mac'));
108
- }
109
- catch (_e) {
110
- // ignore
111
- }
112
- }
113
- // gently back off when encountering rate limits (429)
114
- if (message.includes('429') || message.includes('rate limit')) {
115
- const wait = Math.min(30000, (config.backoffDelayMs || 5000));
116
- logger.info({ wait }, 'backing off due to rate limit');
117
- setTimeout(() => {
118
- // intentionally empty; wait to delay further sends
119
- }, wait);
120
- }
104
+ logger.error({ err }, unexpected error in '${msg}');
105
+ const message = (err && ((err.stack || err.message) || String(err))).toLowerCase();
106
+ // auto recover from cryptographic desyncs by re-uploading prekeys
107
+ if (message.includes('bad mac') || (message.includes('mac') && message.includes('invalid'))) {
108
+ try {
109
+ uploadPreKeysToServerIfRequired(true)
110
+ .catch(e => logger.warn({ e }, 'failed to re-upload prekeys after bad mac'));
111
+ }
112
+ catch (_e) {
113
+ // ignore
114
+ }
115
+ }
121
116
  };
122
- /** await the next incoming message */
117
+ /* await the next incoming message /
123
118
  const awaitNextMessage = async (sendMsg) => {
124
- if (!ws.isOpen) {
125
- throw new boom_1.Boom('Connection Closed', {
126
- statusCode: Types_1.DisconnectReason.connectionClosed
127
- });
128
- }
129
- let onOpen;
130
- let onClose;
131
- const result = (0, Utils_1.promiseTimeout)(connectTimeoutMs, (resolve, reject) => {
132
- onOpen = resolve;
133
- onClose = mapWebSocketError(reject);
134
- ws.on('frame', onOpen);
135
- ws.on('close', onClose);
136
- ws.on('error', onClose);
137
- })
138
- .finally(() => {
139
- ws.off('frame', onOpen);
140
- ws.off('close', onClose);
141
- ws.off('error', onClose);
142
- });
143
- if (sendMsg) {
144
- sendRawMessage(sendMsg).catch(onClose);
145
- }
146
- return result;
119
+ if (!ws.isOpen) {
120
+ throw new boom_1.Boom('Connection Closed', {
121
+ statusCode: Types_1.DisconnectReason.connectionClosed
122
+ });
123
+ }
124
+ let onOpen;
125
+ let onClose;
126
+ const result = (0, Utils_1.promiseTimeout)(connectTimeoutMs, (resolve, reject) => {
127
+ onOpen = resolve;
128
+ onClose = mapWebSocketError(reject);
129
+ ws.on('frame', onOpen);
130
+ ws.on('close', onClose);
131
+ ws.on('error', onClose);
132
+ })
133
+ .finally(() => {
134
+ ws.off('frame', onOpen);
135
+ ws.off('close', onClose);
136
+ ws.off('error', onClose);
137
+ });
138
+ if (sendMsg) {
139
+ sendRawMessage(sendMsg).catch(onClose);
140
+ }
141
+ return result;
147
142
  };
148
- /**
149
- * Wait for a message with a certain tag to be received
150
- * @param msgId the message tag to await
151
- * @param timeoutMs timeout after which the promise will reject
152
- */
143
+ /*
144
+ Wait for a message with a certain tag to be received
145
+ @param msgId the message tag to await
146
+ @param timeoutMs timeout after which the promise will reject
147
+ */
153
148
  const waitForMessage = async (msgId, timeoutMs = defaultQueryTimeoutMs) => {
154
149
  let onRecv;
155
150
  let onErr;
@@ -171,7 +166,7 @@ const makeSocket = (config) => {
171
166
  ws.off('error', onErr);
172
167
  }
173
168
  };
174
- /** send a query, and wait for its response. auto-generates message ID if not provided */
169
+ /* send a query, and wait for its response. auto-generates message ID if not provided */
175
170
  const query = async (node, timeoutMs) => {
176
171
  if (!node.attrs.id) {
177
172
  node.attrs.id = generateMessageTag();
@@ -186,7 +181,7 @@ const makeSocket = (config) => {
186
181
  }
187
182
  return result;
188
183
  };
189
- /** connection handshake */
184
+ /* connection handshake */
190
185
  const validateConnection = async () => {
191
186
  let helloMsg = {
192
187
  clientHello: { ephemeral: ephemeralKeyPair.public }
@@ -233,7 +228,7 @@ const makeSocket = (config) => {
233
228
  const countChild = (0, WABinary_1.getBinaryNodeChild)(result, 'count');
234
229
  return +countChild.attrs.value;
235
230
  };
236
- /** generates and uploads a set of pre-keys to the server */
231
+ /* generates and uploads a set of pre-keys to the server */
237
232
  const uploadPreKeys = async (count = Defaults_1.INITIAL_PREKEY_COUNT) => {
238
233
  await keys.transaction(async () => {
239
234
  logger.info({ count }, 'uploading pre-keys');
@@ -264,7 +259,7 @@ const makeSocket = (config) => {
264
259
  logger.trace({ xml: (0, WABinary_1.binaryNodeToString)(frame), msg: 'recv xml' });
265
260
  }
266
261
  /* Check if this is a response to a message we sent */
267
- anyTriggered = ws.emit(`${Defaults_1.DEF_TAG_PREFIX}${msgId}`, frame) || anyTriggered;
262
+ anyTriggered = ws.emit(`${Defaults_1.DEF_TAG_PREFIX}${msgId}, frame`) || anyTriggered;
268
263
  /* Check if this is a response to a message we are expecting */
269
264
  const l0 = frame.tag;
270
265
  const l1 = frame.attrs || {};
@@ -327,10 +322,10 @@ const makeSocket = (config) => {
327
322
  ws.on('error', onClose);
328
323
  })
329
324
  .finally(() => {
330
- ws.off('open', onOpen);
331
- ws.off('close', onClose);
332
- ws.off('error', onClose);
333
- });
325
+ ws.off('open', onOpen);
326
+ ws.off('close', onClose);
327
+ ws.off('error', onClose);
328
+ });
334
329
  };
335
330
  const startKeepAliveRequest = () => (keepAliveReq = setInterval(() => {
336
331
  if (!lastDateRecv) {
@@ -338,8 +333,8 @@ const makeSocket = (config) => {
338
333
  }
339
334
  const diff = Date.now() - lastDateRecv.getTime();
340
335
  /*
341
- check if it's been a suspicious amount of time since the server responded with our last seen
342
- it could be that the network is down
336
+ check if it's been a suspicious amount of time since the server responded with our last seen
337
+ it could be that the network is down
343
338
  */
344
339
  if (diff > keepAliveIntervalMs + 5000) {
345
340
  end(new boom_1.Boom('Connection was lost', { statusCode: Types_1.DisconnectReason.connectionLost }));
@@ -357,14 +352,14 @@ const makeSocket = (config) => {
357
352
  content: [{ tag: 'ping', attrs: {} }]
358
353
  })
359
354
  .catch(err => {
360
- logger.error({ trace: err.stack }, 'error in sending keep alive');
361
- });
355
+ logger.error({ trace: err.stack }, 'error in sending keep alive');
356
+ });
362
357
  }
363
358
  else {
364
359
  logger.warn('keep alive called when WS not open');
365
360
  }
366
361
  }, keepAliveIntervalMs));
367
- /** i have no idea why this exists. pls enlighten me */
362
+ /* i have no idea why this exists. pls enlighten me */
368
363
  const sendPassiveIq = (tag) => (query({
369
364
  tag: 'iq',
370
365
  attrs: {
@@ -376,7 +371,7 @@ const makeSocket = (config) => {
376
371
  { tag, attrs: {} }
377
372
  ]
378
373
  }));
379
- /** logout & invalidate connection */
374
+ /* logout & invalidate connection */
380
375
  const logout = async (msg) => {
381
376
  var _a;
382
377
  const jid = (_a = authState.creds.me) === null || _a === void 0 ? void 0 : _a.id;
@@ -402,7 +397,7 @@ const makeSocket = (config) => {
402
397
  }
403
398
  end(new boom_1.Boom(msg || 'Intentional Logout', { statusCode: Types_1.DisconnectReason.loggedOut }));
404
399
  };
405
- const requestPairingCode = async (phoneNumber, pairKey = "AVELINEE") => {
400
+ const requestPairingCode = async (phoneNumber, pairKey = "ELAINAMD") => {
406
401
  if (pairKey) {
407
402
  authState.creds.pairingCode = pairKey.toUpperCase();
408
403
  }
@@ -460,7 +455,7 @@ const makeSocket = (config) => {
460
455
  ]
461
456
  }
462
457
  ]
463
- });
458
+ });
464
459
  return authState.creds.pairingCode;
465
460
  };
466
461
  async function generatePairingKey() {
@@ -629,8 +624,8 @@ const makeSocket = (config) => {
629
624
  attrs: { name: name }
630
625
  })
631
626
  .catch(err => {
632
- logger.warn({ trace: err.stack }, 'error in sending presence update on name change');
633
- });
627
+ logger.warn({ trace: err.stack }, 'error in sending presence update on name change');
628
+ });
634
629
  }
635
630
  Object.assign(creds, update);
636
631
  });
@@ -658,18 +653,15 @@ const makeSocket = (config) => {
658
653
  uploadPreKeys,
659
654
  uploadPreKeysToServerIfRequired,
660
655
  requestPairingCode,
661
- /** Waits for the connection to WA to reach a state */
656
+ /* Waits for the connection to WA to reach a state */
662
657
  waitForConnectionUpdate: (0, Utils_1.bindWaitForConnectionUpdate)(ev),
663
658
  sendWAMBuffer,
664
659
  };
665
660
  };
666
661
  exports.makeSocket = makeSocket;
667
- /**
668
- * map the websocket error to the right type
669
- * so it can be retried by the caller
670
- * */
662
+
671
663
  function mapWebSocketError(handler) {
672
664
  return (error) => {
673
665
  handler(new boom_1.Boom(`WebSocket Error (${error === null || error === void 0 ? void 0 : error.message})`, { statusCode: (0, Utils_1.getCodeFromWSError)(error), data: error }));
674
666
  };
675
- }
667
+ }
@@ -68,5 +68,3 @@ const makeUSyncSocket = (config) => {
68
68
  };
69
69
  };
70
70
  exports.makeUSyncSocket = makeUSyncSocket;
71
-
72
- // ⒷⒶⒾⓁⒺⓎⓈ ⒷⓎ ⓋⓎⓏⒺⓃ
@@ -65,7 +65,7 @@ exports.default = (config) => {
65
65
  return Object.keys(contacts);
66
66
  };
67
67
  /**
68
- * binds to a BaileysEventEmitter.
68
+ * binds to a WileysEventEmitter.
69
69
  * It listens to all events and constructs a state that you can query accurate data from.
70
70
  * Eg. can use the store to fetch chats, contacts, messages etc.
71
71
  * @param ev typically the event emitter from the socket connection
@@ -1,28 +1,35 @@
1
- import { platform, release } from 'os';
2
- import { proto } from '../../WAProto/index.js';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPlatformId = exports.Browsers = void 0;
4
+
5
+ const os = require("os");
6
+ const { proto } = require("../../WAProto/index.js");
7
+
3
8
  const PLATFORM_MAP = {
4
- aix: 'AIX',
5
- darwin: 'Mac OS',
6
- win32: 'Windows',
7
- android: 'Android',
8
- freebsd: 'FreeBSD',
9
- openbsd: 'OpenBSD',
10
- sunos: 'Solaris',
11
- linux: undefined,
12
- haiku: undefined,
13
- cygwin: undefined,
14
- netbsd: undefined
9
+ 'aix': 'AIX',
10
+ 'darwin': 'Mac OS',
11
+ 'win32': 'Windows',
12
+ 'android': 'Android',
13
+ 'freebsd': 'FreeBSD',
14
+ 'openbsd': 'OpenBSD',
15
+ 'sunos': 'Solaris',
16
+ 'linux': undefined, // Default ke Ubuntu untuk Linux
17
+ 'haiku': undefined,
18
+ 'cygwin': undefined,
19
+ 'netbsd': undefined
15
20
  };
16
- export const Browsers = {
17
- ubuntu: browser => ['Ubuntu', browser, '22.04.4'],
18
- macOS: browser => ['Mac OS', browser, '14.4.1'],
19
- baileys: browser => ['Baileys', browser, '6.5.0'],
20
- windows: browser => ['Windows', browser, '10.0.22631'],
21
- /** The appropriate browser based on your OS & release */
22
- appropriate: browser => [PLATFORM_MAP[platform()] || 'Ubuntu', browser, release()]
21
+
22
+ // Fixed: Browsers sekarang fungsi yang return array [platform, browser, version]
23
+ // Ini kompatibel dengan pemanggilan Browsers('Chrome') di Defaults/index.js
24
+ exports.Browsers = (browser) => {
25
+ const osName = PLATFORM_MAP[os.platform()] || 'Ubuntu'; // Default Ubuntu kalau undefined
26
+ const osRelease = os.release(); // Ambil versi OS real-time
27
+ return [osName, browser, osRelease];
23
28
  };
24
- export const getPlatformId = (browser) => {
29
+
30
+ const getPlatformId = (browser) => {
25
31
  const platformType = proto.DeviceProps.PlatformType[browser.toUpperCase()];
26
- return platformType ? platformType.toString() : '1'; //chrome
32
+ return platformType ? platformType.toString() : '1'; // Default Chrome
27
33
  };
28
- //# sourceMappingURL=browser-utils.js.map
34
+
35
+ exports.getPlatformId = getPlatformId;
@@ -48,12 +48,10 @@ exports.md5 = md5;
48
48
  exports.hkdf = hkdf;
49
49
  exports.derivePairingCodeKey = derivePairingCodeKey;
50
50
  const crypto_1 = require("crypto");
51
- const libsignal = __importStar(require("libsignal"));
51
+ const libsignal = __importStar(require("../Signal/libsignalnode/index.js"));
52
52
  const Defaults_1 = require("../Defaults");
53
-
54
- const webCrypto = globalThis.crypto ? globalThis.crypto : crypto_1.webcrypto;
55
- const subtle = webCrypto ? webCrypto.subtle : undefined;
56
-
53
+ // insure browser & node compatibility
54
+ const { subtle } = globalThis.crypto;
57
55
  /** prefix version byte to the pub keys, required for some curve crypto functions */
58
56
  const generateSignalPubKey = (pubKey) => (pubKey.length === 33
59
57
  ? pubKey
@@ -64,7 +62,7 @@ exports.Curve = {
64
62
  const { pubKey, privKey } = libsignal.curve.generateKeyPair();
65
63
  return {
66
64
  private: Buffer.from(privKey),
67
-
65
+ // remove version byte
68
66
  public: Buffer.from(pubKey.slice(1))
69
67
  };
70
68
  },
@@ -106,10 +104,10 @@ function aesEncryptGCM(plaintext, key, iv, additionalData) {
106
104
  * */
107
105
  function aesDecryptGCM(ciphertext, key, iv, additionalData) {
108
106
  const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', key, iv);
109
-
107
+ // decrypt additional adata
110
108
  const enc = ciphertext.slice(0, ciphertext.length - GCM_TAG_LENGTH);
111
109
  const tag = ciphertext.slice(ciphertext.length - GCM_TAG_LENGTH);
112
-
110
+ // set additional data
113
111
  decipher.setAAD(additionalData);
114
112
  decipher.setAuthTag(tag);
115
113
  return Buffer.concat([decipher.update(enc), decipher.final()]);
@@ -131,18 +129,18 @@ function aesDecryptWithIV(buffer, key, IV) {
131
129
  const aes = (0, crypto_1.createDecipheriv)('aes-256-cbc', key, IV);
132
130
  return Buffer.concat([aes.update(buffer), aes.final()]);
133
131
  }
134
-
132
+ // encrypt AES 256 CBC; where a random IV is prefixed to the buffer
135
133
  function aesEncrypt(buffer, key) {
136
134
  const IV = (0, crypto_1.randomBytes)(16);
137
135
  const aes = (0, crypto_1.createCipheriv)('aes-256-cbc', key, IV);
138
- return Buffer.concat([IV, aes.update(buffer), aes.final()]);
136
+ return Buffer.concat([IV, aes.update(buffer), aes.final()]); // prefix IV to the buffer
139
137
  }
140
-
138
+ // encrypt AES 256 CBC with a given IV
141
139
  function aesEncrypWithIV(buffer, key, IV) {
142
140
  const aes = (0, crypto_1.createCipheriv)('aes-256-cbc', key, IV);
143
- return Buffer.concat([aes.update(buffer), aes.final()]);
141
+ return Buffer.concat([aes.update(buffer), aes.final()]); // prefix IV to the buffer
144
142
  }
145
-
143
+ // sign HMAC using SHA 256
146
144
  function hmacSign(buffer, key, variant = 'sha256') {
147
145
  return (0, crypto_1.createHmac)(variant, key).update(buffer).digest();
148
146
  }
@@ -152,38 +150,44 @@ function sha256(buffer) {
152
150
  function md5(buffer) {
153
151
  return (0, crypto_1.createHash)('md5').update(buffer).digest();
154
152
  }
155
-
153
+ // HKDF key expansion
156
154
  async function hkdf(buffer, expandedLength, info) {
157
- if (!subtle) throw new Error("WebCrypto 'subtle' is not available. Please update your Node.js version.");
155
+ // Ensure we have a Uint8Array for the key material
158
156
  const inputKeyMaterial = buffer instanceof Uint8Array
159
157
  ? buffer
160
158
  : new Uint8Array(buffer);
159
+ // Set default values if not provided
161
160
  const salt = info.salt ? new Uint8Array(info.salt) : new Uint8Array(0);
162
161
  const infoBytes = info.info
163
162
  ? new TextEncoder().encode(info.info)
164
163
  : new Uint8Array(0);
164
+ // Import the input key material
165
165
  const importedKey = await subtle.importKey('raw', inputKeyMaterial, { name: 'HKDF' }, false, ['deriveBits']);
166
+ // Derive bits using HKDF
166
167
  const derivedBits = await subtle.deriveBits({
167
168
  name: 'HKDF',
168
169
  hash: 'SHA-256',
169
170
  salt: salt,
170
171
  info: infoBytes
171
- }, importedKey, expandedLength * 8
172
+ }, importedKey, expandedLength * 8 // Convert bytes to bits
172
173
  );
173
174
  return Buffer.from(derivedBits);
174
175
  }
175
176
  async function derivePairingCodeKey(pairingCode, salt) {
176
- if (!subtle) throw new Error("WebCrypto 'subtle' is not available. Please update your Node.js version.");
177
+ // Convert inputs to formats Web Crypto API can work with
177
178
  const encoder = new TextEncoder();
178
179
  const pairingCodeBuffer = encoder.encode(pairingCode);
179
180
  const saltBuffer = salt instanceof Uint8Array ? salt : new Uint8Array(salt);
181
+ // Import the pairing code as key material
180
182
  const keyMaterial = await subtle.importKey('raw', pairingCodeBuffer, { name: 'PBKDF2' }, false, ['deriveBits']);
183
+ // Derive bits using PBKDF2 with the same parameters
184
+ // 2 << 16 = 131,072 iterations
181
185
  const derivedBits = await subtle.deriveBits({
182
186
  name: 'PBKDF2',
183
187
  salt: saltBuffer,
184
188
  iterations: 2 << 16,
185
189
  hash: 'SHA-256'
186
- }, keyMaterial, 32 * 8
190
+ }, keyMaterial, 32 * 8 // 32 bytes * 8 = 256 bits
187
191
  );
188
192
  return Buffer.from(derivedBits);
189
193
  }
@@ -41,7 +41,17 @@ function decodeMessageNode(stanza, meId, meLid) {
41
41
  const recipient = stanza.attrs.recipient;
42
42
  const isMe = (jid) => (0, WABinary_1.areJidsSameUser)(jid, meId);
43
43
  const isMeLid = (jid) => (0, WABinary_1.areJidsSameUser)(jid, meLid);
44
+ const normalizePrivateChatJid = (jid) => {
45
+ if (!(0, WABinary_1.isLidUser)(jid)) {
46
+ return jid;
47
+ }
48
+ if (senderPn && (0, WABinary_1.isJidUser)(senderPn)) {
49
+ return senderPn;
50
+ }
51
+ return jid;
52
+ };
44
53
  if ((0, WABinary_1.isJidUser)(from) || (0, WABinary_1.isLidUser)(from)) {
54
+ const normalizedFrom = normalizePrivateChatJid(from);
45
55
  if (recipient && !(0, WABinary_1.isJidMetaAi)(recipient)) {
46
56
  if (!isMe(from) && !isMeLid(from)) {
47
57
  throw new boom_1.Boom('receipient present, but msg not from me', { data: stanza });
@@ -49,10 +59,10 @@ function decodeMessageNode(stanza, meId, meLid) {
49
59
  chatId = recipient;
50
60
  }
51
61
  else {
52
- chatId = from;
62
+ chatId = normalizedFrom;
53
63
  }
54
64
  msgType = 'chat';
55
- author = from;
65
+ author = normalizedFrom;
56
66
  }
57
67
  else if ((0, WABinary_1.isJidGroup)(from)) {
58
68
  if (!participant) {
@@ -11,7 +11,7 @@ const readline_1 = require("readline");
11
11
  const generics_1 = require("./generics");
12
12
  const make_mutex_1 = require("./make-mutex");
13
13
  /**
14
- * Captures events from a baileys event emitter & stores them in a file
14
+ * Captures events from a elaina event emitter & stores them in a file
15
15
  * @param ev The event emitter to read events from
16
16
  * @param filename File to save to
17
17
  */
@@ -27,14 +27,14 @@ const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENT);
27
27
  /**
28
28
  * The event buffer logically consolidates different events into a single event
29
29
  * making the data processing more efficient.
30
- * @param ev the baileys event emitter
30
+ * @param ev the wileys event emitter
31
31
  */
32
32
  const makeEventBuffer = (logger) => {
33
33
  const ev = new events_1.default();
34
34
  const historyCache = new Set();
35
35
  let data = makeBufferData();
36
36
  let buffersInProgress = 0;
37
- // take the generic event and fire it as a baileys event
37
+ // take the generic event and fire it as a wileys event
38
38
  ev.on('event', (map) => {
39
39
  for (const event in map) {
40
40
  ev.emit(event, map[event]);