anya-bail 1.0.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 (550) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +316 -0
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto/GenerateStatics.sh +3 -0
  5. package/WAProto/WAProto/WAProto.proto +5479 -0
  6. package/WAProto/WAProto/fix-imports.js +81 -0
  7. package/WAProto/WAProto/index.d.ts +14017 -0
  8. package/WAProto/WAProto/index.js +97687 -0
  9. package/WAProto/WAProto.proto +5479 -0
  10. package/WAProto/fix-imports.js +85 -0
  11. package/WAProto/index.d.ts +14017 -0
  12. package/WAProto/index.js +97691 -0
  13. package/engine-requirements.js +10 -0
  14. package/lib/Defaults/index.d.ts +86 -0
  15. package/lib/Defaults/index.d.ts.map +1 -0
  16. package/lib/Defaults/index.js +145 -0
  17. package/lib/Defaults/index.js.map +1 -0
  18. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  19. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  20. package/lib/Signal/Group/ciphertext-message.js +12 -0
  21. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  22. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  23. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  24. package/lib/Signal/Group/group-session-builder.js +30 -0
  25. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  26. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  27. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  28. package/lib/Signal/Group/group_cipher.js +82 -0
  29. package/lib/Signal/Group/group_cipher.js.map +1 -0
  30. package/lib/Signal/Group/index.d.ts +12 -0
  31. package/lib/Signal/Group/index.d.ts.map +1 -0
  32. package/lib/Signal/Group/index.js +12 -0
  33. package/lib/Signal/Group/index.js.map +1 -0
  34. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  35. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  36. package/lib/Signal/Group/keyhelper.js +18 -0
  37. package/lib/Signal/Group/keyhelper.js.map +1 -0
  38. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  39. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  40. package/lib/Signal/Group/sender-chain-key.js +26 -0
  41. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  42. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  43. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  44. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  45. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  46. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  47. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  48. package/lib/Signal/Group/sender-key-message.js +66 -0
  49. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  50. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  51. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  52. package/lib/Signal/Group/sender-key-name.js +48 -0
  53. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  54. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  55. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  56. package/lib/Signal/Group/sender-key-record.js +41 -0
  57. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  58. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  59. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  60. package/lib/Signal/Group/sender-key-state.js +84 -0
  61. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  62. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  63. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  64. package/lib/Signal/Group/sender-message-key.js +26 -0
  65. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  66. package/lib/Signal/libsignal.d.ts +5 -0
  67. package/lib/Signal/libsignal.d.ts.map +1 -0
  68. package/lib/Signal/libsignal.js +431 -0
  69. package/lib/Signal/libsignal.js.map +1 -0
  70. package/lib/Signal/lid-mapping.d.ts +23 -0
  71. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  72. package/lib/Signal/lid-mapping.js +277 -0
  73. package/lib/Signal/lid-mapping.js.map +1 -0
  74. package/lib/Socket/Client/index.d.ts +3 -0
  75. package/lib/Socket/Client/index.d.ts.map +1 -0
  76. package/lib/Socket/Client/index.js +3 -0
  77. package/lib/Socket/Client/index.js.map +1 -0
  78. package/lib/Socket/Client/types.d.ts +16 -0
  79. package/lib/Socket/Client/types.d.ts.map +1 -0
  80. package/lib/Socket/Client/types.js +11 -0
  81. package/lib/Socket/Client/types.js.map +1 -0
  82. package/lib/Socket/Client/websocket.d.ts +13 -0
  83. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  84. package/lib/Socket/Client/websocket.js +54 -0
  85. package/lib/Socket/Client/websocket.js.map +1 -0
  86. package/lib/Socket/business.d.ts +217 -0
  87. package/lib/Socket/business.d.ts.map +1 -0
  88. package/lib/Socket/business.js +379 -0
  89. package/lib/Socket/business.js.map +1 -0
  90. package/lib/Socket/chats.d.ts +124 -0
  91. package/lib/Socket/chats.d.ts.map +1 -0
  92. package/lib/Socket/chats.js +1192 -0
  93. package/lib/Socket/chats.js.map +1 -0
  94. package/lib/Socket/communities.d.ts +273 -0
  95. package/lib/Socket/communities.d.ts.map +1 -0
  96. package/lib/Socket/communities.js +431 -0
  97. package/lib/Socket/communities.js.map +1 -0
  98. package/lib/Socket/groups.d.ts +161 -0
  99. package/lib/Socket/groups.d.ts.map +1 -0
  100. package/lib/Socket/groups.js +347 -0
  101. package/lib/Socket/groups.js.map +1 -0
  102. package/lib/Socket/index.d.ts +260 -0
  103. package/lib/Socket/index.d.ts.map +1 -0
  104. package/lib/Socket/index.js +12 -0
  105. package/lib/Socket/index.js.map +1 -0
  106. package/lib/Socket/messages-recv.d.ts +203 -0
  107. package/lib/Socket/messages-recv.d.ts.map +1 -0
  108. package/lib/Socket/messages-recv.js +1772 -0
  109. package/lib/Socket/messages-recv.js.map +1 -0
  110. package/lib/Socket/messages-send.d.ts +199 -0
  111. package/lib/Socket/messages-send.d.ts.map +1 -0
  112. package/lib/Socket/messages-send.js +1157 -0
  113. package/lib/Socket/messages-send.js.map +1 -0
  114. package/lib/Socket/mex.d.ts +3 -0
  115. package/lib/Socket/mex.d.ts.map +1 -0
  116. package/lib/Socket/mex.js +42 -0
  117. package/lib/Socket/mex.js.map +1 -0
  118. package/lib/Socket/newsletter.d.ts +170 -0
  119. package/lib/Socket/newsletter.d.ts.map +1 -0
  120. package/lib/Socket/newsletter.js +181 -0
  121. package/lib/Socket/newsletter.js.map +1 -0
  122. package/lib/Socket/rich-messages.d.ts +7 -0
  123. package/lib/Socket/rich-messages.d.ts.map +1 -0
  124. package/lib/Socket/rich-messages.js +6 -0
  125. package/lib/Socket/rich-messages.js.map +1 -0
  126. package/lib/Socket/socket.d.ts +59 -0
  127. package/lib/Socket/socket.d.ts.map +1 -0
  128. package/lib/Socket/socket.js +1040 -0
  129. package/lib/Socket/socket.js.map +1 -0
  130. package/lib/Socket/usync.d.ts +49 -0
  131. package/lib/Socket/usync.d.ts.map +1 -0
  132. package/lib/Socket/usync.js +42 -0
  133. package/lib/Socket/usync.js.map +1 -0
  134. package/lib/Types/Auth.d.ts +117 -0
  135. package/lib/Types/Auth.d.ts.map +1 -0
  136. package/lib/Types/Auth.js +2 -0
  137. package/lib/Types/Auth.js.map +1 -0
  138. package/lib/Types/Bussines.d.ts +25 -0
  139. package/lib/Types/Bussines.d.ts.map +1 -0
  140. package/lib/Types/Bussines.js +2 -0
  141. package/lib/Types/Bussines.js.map +1 -0
  142. package/lib/Types/Call.d.ts +23 -0
  143. package/lib/Types/Call.d.ts.map +1 -0
  144. package/lib/Types/Call.js +2 -0
  145. package/lib/Types/Call.js.map +1 -0
  146. package/lib/Types/Chat.d.ts +123 -0
  147. package/lib/Types/Chat.d.ts.map +1 -0
  148. package/lib/Types/Chat.js +8 -0
  149. package/lib/Types/Chat.js.map +1 -0
  150. package/lib/Types/Contact.d.ts +26 -0
  151. package/lib/Types/Contact.d.ts.map +1 -0
  152. package/lib/Types/Contact.js +2 -0
  153. package/lib/Types/Contact.js.map +1 -0
  154. package/lib/Types/Events.d.ts +256 -0
  155. package/lib/Types/Events.d.ts.map +1 -0
  156. package/lib/Types/Events.js +2 -0
  157. package/lib/Types/Events.js.map +1 -0
  158. package/lib/Types/GroupMetadata.d.ts +71 -0
  159. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  160. package/lib/Types/GroupMetadata.js +2 -0
  161. package/lib/Types/GroupMetadata.js.map +1 -0
  162. package/lib/Types/Label.d.ts +47 -0
  163. package/lib/Types/Label.d.ts.map +1 -0
  164. package/lib/Types/Label.js +25 -0
  165. package/lib/Types/Label.js.map +1 -0
  166. package/lib/Types/LabelAssociation.d.ts +30 -0
  167. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  168. package/lib/Types/LabelAssociation.js +7 -0
  169. package/lib/Types/LabelAssociation.js.map +1 -0
  170. package/lib/Types/Message.d.ts +355 -0
  171. package/lib/Types/Message.d.ts.map +1 -0
  172. package/lib/Types/Message.js +18 -0
  173. package/lib/Types/Message.js.map +1 -0
  174. package/lib/Types/Mex.d.ts +141 -0
  175. package/lib/Types/Mex.d.ts.map +1 -0
  176. package/lib/Types/Mex.js +37 -0
  177. package/lib/Types/Mex.js.map +1 -0
  178. package/lib/Types/MexUpdates.d.ts +9 -0
  179. package/lib/Types/MexUpdates.d.ts.map +1 -0
  180. package/lib/Types/MexUpdates.js +11 -0
  181. package/lib/Types/MexUpdates.js.map +1 -0
  182. package/lib/Types/Newsletter.d.ts +135 -0
  183. package/lib/Types/Newsletter.d.ts.map +1 -0
  184. package/lib/Types/Newsletter.js +31 -0
  185. package/lib/Types/Newsletter.js.map +1 -0
  186. package/lib/Types/Product.d.ts +79 -0
  187. package/lib/Types/Product.d.ts.map +1 -0
  188. package/lib/Types/Product.js +2 -0
  189. package/lib/Types/Product.js.map +1 -0
  190. package/lib/Types/Signal.d.ts +87 -0
  191. package/lib/Types/Signal.d.ts.map +1 -0
  192. package/lib/Types/Signal.js +2 -0
  193. package/lib/Types/Signal.js.map +1 -0
  194. package/lib/Types/Socket.d.ts +136 -0
  195. package/lib/Types/Socket.d.ts.map +1 -0
  196. package/lib/Types/Socket.js +3 -0
  197. package/lib/Types/Socket.js.map +1 -0
  198. package/lib/Types/State.d.ts +97 -0
  199. package/lib/Types/State.d.ts.map +1 -0
  200. package/lib/Types/State.js +56 -0
  201. package/lib/Types/State.js.map +1 -0
  202. package/lib/Types/USync.d.ts +26 -0
  203. package/lib/Types/USync.d.ts.map +1 -0
  204. package/lib/Types/USync.js +2 -0
  205. package/lib/Types/USync.js.map +1 -0
  206. package/lib/Types/index.d.ts +67 -0
  207. package/lib/Types/index.d.ts.map +1 -0
  208. package/lib/Types/index.js +26 -0
  209. package/lib/Types/index.js.map +1 -0
  210. package/lib/Utils/anti-delete.d.ts +3 -0
  211. package/lib/Utils/anti-delete.d.ts.map +1 -0
  212. package/lib/Utils/anti-delete.js +3 -0
  213. package/lib/Utils/anti-delete.js.map +1 -0
  214. package/lib/Utils/auth-utils.d.ts +24 -0
  215. package/lib/Utils/auth-utils.d.ts.map +1 -0
  216. package/lib/Utils/auth-utils.js +302 -0
  217. package/lib/Utils/auth-utils.js.map +1 -0
  218. package/lib/Utils/auto-reply.d.ts +50 -0
  219. package/lib/Utils/auto-reply.d.ts.map +1 -0
  220. package/lib/Utils/auto-reply.js +118 -0
  221. package/lib/Utils/auto-reply.js.map +1 -0
  222. package/lib/Utils/baileys-event-stream.d.ts +3 -0
  223. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  224. package/lib/Utils/baileys-event-stream.js +3 -0
  225. package/lib/Utils/baileys-event-stream.js.map +1 -0
  226. package/lib/Utils/browser-utils.d.ts +11 -0
  227. package/lib/Utils/browser-utils.d.ts.map +1 -0
  228. package/lib/Utils/browser-utils.js +52 -0
  229. package/lib/Utils/browser-utils.js.map +1 -0
  230. package/lib/Utils/business.d.ts +23 -0
  231. package/lib/Utils/business.d.ts.map +1 -0
  232. package/lib/Utils/business.js +231 -0
  233. package/lib/Utils/business.js.map +1 -0
  234. package/lib/Utils/chat-control.d.ts +55 -0
  235. package/lib/Utils/chat-control.d.ts.map +1 -0
  236. package/lib/Utils/chat-control.js +128 -0
  237. package/lib/Utils/chat-control.js.map +1 -0
  238. package/lib/Utils/chat-utils.d.ts +100 -0
  239. package/lib/Utils/chat-utils.d.ts.map +1 -0
  240. package/lib/Utils/chat-utils.js +872 -0
  241. package/lib/Utils/chat-utils.js.map +1 -0
  242. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  243. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  244. package/lib/Utils/companion-reg-client-utils.js +34 -0
  245. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  246. package/lib/Utils/crypto.d.ts +37 -0
  247. package/lib/Utils/crypto.d.ts.map +1 -0
  248. package/lib/Utils/crypto.js +118 -0
  249. package/lib/Utils/crypto.js.map +1 -0
  250. package/lib/Utils/decode-wa-message.d.ts +66 -0
  251. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  252. package/lib/Utils/decode-wa-message.js +311 -0
  253. package/lib/Utils/decode-wa-message.js.map +1 -0
  254. package/lib/Utils/event-buffer.d.ts +36 -0
  255. package/lib/Utils/event-buffer.d.ts.map +1 -0
  256. package/lib/Utils/event-buffer.js +622 -0
  257. package/lib/Utils/event-buffer.js.map +1 -0
  258. package/lib/Utils/generics.d.ts +98 -0
  259. package/lib/Utils/generics.d.ts.map +1 -0
  260. package/lib/Utils/generics.js +410 -0
  261. package/lib/Utils/generics.js.map +1 -0
  262. package/lib/Utils/history.d.ts +24 -0
  263. package/lib/Utils/history.d.ts.map +1 -0
  264. package/lib/Utils/history.js +134 -0
  265. package/lib/Utils/history.js.map +1 -0
  266. package/lib/Utils/identity-change-handler.d.ts +44 -0
  267. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  268. package/lib/Utils/identity-change-handler.js +50 -0
  269. package/lib/Utils/identity-change-handler.js.map +1 -0
  270. package/lib/Utils/index.d.ts +23 -0
  271. package/lib/Utils/index.d.ts.map +1 -0
  272. package/lib/Utils/index.js +23 -0
  273. package/lib/Utils/index.js.map +1 -0
  274. package/lib/Utils/interactive-message.d.ts +201 -0
  275. package/lib/Utils/interactive-message.d.ts.map +1 -0
  276. package/lib/Utils/interactive-message.js +256 -0
  277. package/lib/Utils/interactive-message.js.map +1 -0
  278. package/lib/Utils/jid-plotting.d.ts +3 -0
  279. package/lib/Utils/jid-plotting.d.ts.map +1 -0
  280. package/lib/Utils/jid-plotting.js +3 -0
  281. package/lib/Utils/jid-plotting.js.map +1 -0
  282. package/lib/Utils/link-preview.d.ts +21 -0
  283. package/lib/Utils/link-preview.d.ts.map +1 -0
  284. package/lib/Utils/link-preview.js +85 -0
  285. package/lib/Utils/link-preview.js.map +1 -0
  286. package/lib/Utils/logger.d.ts +13 -0
  287. package/lib/Utils/logger.d.ts.map +1 -0
  288. package/lib/Utils/logger.js +3 -0
  289. package/lib/Utils/logger.js.map +1 -0
  290. package/lib/Utils/lt-hash.d.ts +8 -0
  291. package/lib/Utils/lt-hash.d.ts.map +1 -0
  292. package/lib/Utils/lt-hash.js +8 -0
  293. package/lib/Utils/lt-hash.js.map +1 -0
  294. package/lib/Utils/make-mutex.d.ts +9 -0
  295. package/lib/Utils/make-mutex.d.ts.map +1 -0
  296. package/lib/Utils/make-mutex.js +33 -0
  297. package/lib/Utils/make-mutex.js.map +1 -0
  298. package/lib/Utils/message-composer.d.ts +7 -0
  299. package/lib/Utils/message-composer.d.ts.map +1 -0
  300. package/lib/Utils/message-composer.js +6 -0
  301. package/lib/Utils/message-composer.js.map +1 -0
  302. package/lib/Utils/message-retry-manager.d.ts +115 -0
  303. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  304. package/lib/Utils/message-retry-manager.js +265 -0
  305. package/lib/Utils/message-retry-manager.js.map +1 -0
  306. package/lib/Utils/message-search.d.ts +37 -0
  307. package/lib/Utils/message-search.d.ts.map +1 -0
  308. package/lib/Utils/message-search.js +149 -0
  309. package/lib/Utils/message-search.js.map +1 -0
  310. package/lib/Utils/messages-media.d.ts +191 -0
  311. package/lib/Utils/messages-media.d.ts.map +1 -0
  312. package/lib/Utils/messages-media.js +786 -0
  313. package/lib/Utils/messages-media.js.map +1 -0
  314. package/lib/Utils/messages.d.ts +94 -0
  315. package/lib/Utils/messages.d.ts.map +1 -0
  316. package/lib/Utils/messages.js +1375 -0
  317. package/lib/Utils/messages.js.map +1 -0
  318. package/lib/Utils/noise-handler.d.ts +20 -0
  319. package/lib/Utils/noise-handler.d.ts.map +1 -0
  320. package/lib/Utils/noise-handler.js +201 -0
  321. package/lib/Utils/noise-handler.js.map +1 -0
  322. package/lib/Utils/offline-node-processor.d.ts +17 -0
  323. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  324. package/lib/Utils/offline-node-processor.js +40 -0
  325. package/lib/Utils/offline-node-processor.js.map +1 -0
  326. package/lib/Utils/pre-key-manager.d.ts +28 -0
  327. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  328. package/lib/Utils/pre-key-manager.js +106 -0
  329. package/lib/Utils/pre-key-manager.js.map +1 -0
  330. package/lib/Utils/process-message.d.ts +60 -0
  331. package/lib/Utils/process-message.d.ts.map +1 -0
  332. package/lib/Utils/process-message.js +597 -0
  333. package/lib/Utils/process-message.js.map +1 -0
  334. package/lib/Utils/reporting-utils.d.ts +11 -0
  335. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  336. package/lib/Utils/reporting-utils.js +258 -0
  337. package/lib/Utils/reporting-utils.js.map +1 -0
  338. package/lib/Utils/scheduling.d.ts +40 -0
  339. package/lib/Utils/scheduling.d.ts.map +1 -0
  340. package/lib/Utils/scheduling.js +105 -0
  341. package/lib/Utils/scheduling.js.map +1 -0
  342. package/lib/Utils/signal.d.ts +47 -0
  343. package/lib/Utils/signal.d.ts.map +1 -0
  344. package/lib/Utils/signal.js +201 -0
  345. package/lib/Utils/signal.js.map +1 -0
  346. package/lib/Utils/stanza-ack.d.ts +11 -0
  347. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  348. package/lib/Utils/stanza-ack.js +38 -0
  349. package/lib/Utils/stanza-ack.js.map +1 -0
  350. package/lib/Utils/status-posting.d.ts +79 -0
  351. package/lib/Utils/status-posting.d.ts.map +1 -0
  352. package/lib/Utils/status-posting.js +69 -0
  353. package/lib/Utils/status-posting.js.map +1 -0
  354. package/lib/Utils/sync-action-utils.d.ts +19 -0
  355. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  356. package/lib/Utils/sync-action-utils.js +49 -0
  357. package/lib/Utils/sync-action-utils.js.map +1 -0
  358. package/lib/Utils/tc-token-utils.d.ts +37 -0
  359. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  360. package/lib/Utils/tc-token-utils.js +163 -0
  361. package/lib/Utils/tc-token-utils.js.map +1 -0
  362. package/lib/Utils/templates.d.ts +48 -0
  363. package/lib/Utils/templates.d.ts.map +1 -0
  364. package/lib/Utils/templates.js +119 -0
  365. package/lib/Utils/templates.js.map +1 -0
  366. package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
  367. package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
  368. package/lib/Utils/use-mongo-file-auth-state.js +60 -0
  369. package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
  370. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  371. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  372. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  373. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  374. package/lib/Utils/use-single-file-auth-state.d.ts +6 -0
  375. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -0
  376. package/lib/Utils/use-single-file-auth-state.js +88 -0
  377. package/lib/Utils/use-single-file-auth-state.js.map +1 -0
  378. package/lib/Utils/validate-connection.d.ts +11 -0
  379. package/lib/Utils/validate-connection.d.ts.map +1 -0
  380. package/lib/Utils/validate-connection.js +209 -0
  381. package/lib/Utils/validate-connection.js.map +1 -0
  382. package/lib/Utils/vcard.d.ts +53 -0
  383. package/lib/Utils/vcard.d.ts.map +1 -0
  384. package/lib/Utils/vcard.js +81 -0
  385. package/lib/Utils/vcard.js.map +1 -0
  386. package/lib/WABinary/constants.d.ts +28 -0
  387. package/lib/WABinary/constants.d.ts.map +1 -0
  388. package/lib/WABinary/constants.js +1301 -0
  389. package/lib/WABinary/constants.js.map +1 -0
  390. package/lib/WABinary/decode.d.ts +7 -0
  391. package/lib/WABinary/decode.d.ts.map +1 -0
  392. package/lib/WABinary/decode.js +262 -0
  393. package/lib/WABinary/decode.js.map +1 -0
  394. package/lib/WABinary/encode.d.ts +3 -0
  395. package/lib/WABinary/encode.d.ts.map +1 -0
  396. package/lib/WABinary/encode.js +220 -0
  397. package/lib/WABinary/encode.js.map +1 -0
  398. package/lib/WABinary/generic-utils.d.ts +15 -0
  399. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  400. package/lib/WABinary/generic-utils.js +113 -0
  401. package/lib/WABinary/generic-utils.js.map +1 -0
  402. package/lib/WABinary/index.d.ts +6 -0
  403. package/lib/WABinary/index.d.ts.map +1 -0
  404. package/lib/WABinary/index.js +6 -0
  405. package/lib/WABinary/index.js.map +1 -0
  406. package/lib/WABinary/jid-utils.d.ts +48 -0
  407. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  408. package/lib/WABinary/jid-utils.js +96 -0
  409. package/lib/WABinary/jid-utils.js.map +1 -0
  410. package/lib/WABinary/types.d.ts +19 -0
  411. package/lib/WABinary/types.d.ts.map +1 -0
  412. package/lib/WABinary/types.js +2 -0
  413. package/lib/WABinary/types.js.map +1 -0
  414. package/lib/WAM/BinaryInfo.d.ts +9 -0
  415. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  416. package/lib/WAM/BinaryInfo.js +10 -0
  417. package/lib/WAM/BinaryInfo.js.map +1 -0
  418. package/lib/WAM/constants.d.ts +40 -0
  419. package/lib/WAM/constants.d.ts.map +1 -0
  420. package/lib/WAM/constants.js +22853 -0
  421. package/lib/WAM/constants.js.map +1 -0
  422. package/lib/WAM/encode.d.ts +3 -0
  423. package/lib/WAM/encode.d.ts.map +1 -0
  424. package/lib/WAM/encode.js +150 -0
  425. package/lib/WAM/encode.js.map +1 -0
  426. package/lib/WAM/index.d.ts +4 -0
  427. package/lib/WAM/index.d.ts.map +1 -0
  428. package/lib/WAM/index.js +4 -0
  429. package/lib/WAM/index.js.map +1 -0
  430. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  431. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  432. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  433. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  434. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  435. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  436. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  437. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  438. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  439. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  440. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  441. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  442. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  443. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  444. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  445. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  446. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  447. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  448. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  449. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  450. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  451. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  452. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  453. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  454. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  455. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  456. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  457. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  458. package/lib/WAUSync/Protocols/index.d.ts +8 -0
  459. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  460. package/lib/WAUSync/Protocols/index.js +8 -0
  461. package/lib/WAUSync/Protocols/index.js.map +1 -0
  462. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  463. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  464. package/lib/WAUSync/USyncQuery.js +98 -0
  465. package/lib/WAUSync/USyncQuery.js.map +1 -0
  466. package/lib/WAUSync/USyncUser.d.ts +17 -0
  467. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  468. package/lib/WAUSync/USyncUser.js +31 -0
  469. package/lib/WAUSync/USyncUser.js.map +1 -0
  470. package/lib/WAUSync/index.d.ts +4 -0
  471. package/lib/WAUSync/index.d.ts.map +1 -0
  472. package/lib/WAUSync/index.js +4 -0
  473. package/lib/WAUSync/index.js.map +1 -0
  474. package/lib/addons/anti-delete.d.ts +62 -0
  475. package/lib/addons/anti-delete.d.ts.map +1 -0
  476. package/lib/addons/anti-delete.js +145 -0
  477. package/lib/addons/anti-delete.js.map +1 -0
  478. package/lib/addons/auto-reply.d.ts +57 -0
  479. package/lib/addons/auto-reply.d.ts.map +1 -0
  480. package/lib/addons/auto-reply.js +150 -0
  481. package/lib/addons/auto-reply.js.map +1 -0
  482. package/lib/addons/baileys-event-stream.d.ts +12 -0
  483. package/lib/addons/baileys-event-stream.d.ts.map +1 -0
  484. package/lib/addons/baileys-event-stream.js +45 -0
  485. package/lib/addons/baileys-event-stream.js.map +1 -0
  486. package/lib/addons/chat-control.d.ts +63 -0
  487. package/lib/addons/chat-control.d.ts.map +1 -0
  488. package/lib/addons/chat-control.js +121 -0
  489. package/lib/addons/chat-control.js.map +1 -0
  490. package/lib/addons/index.d.ts +40 -0
  491. package/lib/addons/index.d.ts.map +1 -0
  492. package/lib/addons/index.js +44 -0
  493. package/lib/addons/index.js.map +1 -0
  494. package/lib/addons/interactive-message.d.ts +293 -0
  495. package/lib/addons/interactive-message.d.ts.map +1 -0
  496. package/lib/addons/interactive-message.js +72 -0
  497. package/lib/addons/interactive-message.js.map +1 -0
  498. package/lib/addons/jid-plotting.d.ts +57 -0
  499. package/lib/addons/jid-plotting.d.ts.map +1 -0
  500. package/lib/addons/jid-plotting.js +152 -0
  501. package/lib/addons/jid-plotting.js.map +1 -0
  502. package/lib/addons/message-search.d.ts +41 -0
  503. package/lib/addons/message-search.d.ts.map +1 -0
  504. package/lib/addons/message-search.js +162 -0
  505. package/lib/addons/message-search.js.map +1 -0
  506. package/lib/addons/rich-message-composer.d.ts +94 -0
  507. package/lib/addons/rich-message-composer.d.ts.map +1 -0
  508. package/lib/addons/rich-message-composer.js +183 -0
  509. package/lib/addons/rich-message-composer.js.map +1 -0
  510. package/lib/addons/rich-message-utils.d.ts +144 -0
  511. package/lib/addons/rich-message-utils.d.ts.map +1 -0
  512. package/lib/addons/rich-message-utils.js +323 -0
  513. package/lib/addons/rich-message-utils.js.map +1 -0
  514. package/lib/addons/rich-types.d.ts +28 -0
  515. package/lib/addons/rich-types.d.ts.map +1 -0
  516. package/lib/addons/rich-types.js +127 -0
  517. package/lib/addons/rich-types.js.map +1 -0
  518. package/lib/addons/scheduling.d.ts +47 -0
  519. package/lib/addons/scheduling.d.ts.map +1 -0
  520. package/lib/addons/scheduling.js +109 -0
  521. package/lib/addons/scheduling.js.map +1 -0
  522. package/lib/addons/status-helpers.d.ts +75 -0
  523. package/lib/addons/status-helpers.d.ts.map +1 -0
  524. package/lib/addons/status-helpers.js +100 -0
  525. package/lib/addons/status-helpers.js.map +1 -0
  526. package/lib/addons/templates.d.ts +67 -0
  527. package/lib/addons/templates.d.ts.map +1 -0
  528. package/lib/addons/templates.js +137 -0
  529. package/lib/addons/templates.js.map +1 -0
  530. package/lib/addons/use-cache-manager-auth-state.d.ts +14 -0
  531. package/lib/addons/use-cache-manager-auth-state.d.ts.map +1 -0
  532. package/lib/addons/use-cache-manager-auth-state.js +71 -0
  533. package/lib/addons/use-cache-manager-auth-state.js.map +1 -0
  534. package/lib/addons/use-mongo-auth-state.d.ts +12 -0
  535. package/lib/addons/use-mongo-auth-state.d.ts.map +1 -0
  536. package/lib/addons/use-mongo-auth-state.js +64 -0
  537. package/lib/addons/use-mongo-auth-state.js.map +1 -0
  538. package/lib/addons/use-single-file-auth-state.d.ts +6 -0
  539. package/lib/addons/use-single-file-auth-state.d.ts.map +1 -0
  540. package/lib/addons/use-single-file-auth-state.js +155 -0
  541. package/lib/addons/use-single-file-auth-state.js.map +1 -0
  542. package/lib/addons/vcard.d.ts +61 -0
  543. package/lib/addons/vcard.d.ts.map +1 -0
  544. package/lib/addons/vcard.js +103 -0
  545. package/lib/addons/vcard.js.map +1 -0
  546. package/lib/index.d.ts +13 -0
  547. package/lib/index.d.ts.map +1 -0
  548. package/lib/index.js +14 -0
  549. package/lib/index.js.map +1 -0
  550. package/package.json +126 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-message.d.ts","sourceRoot":"","sources":["../../src/Utils/process-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,EACX,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EAQV,6BAA6B,EAC7B,4BAA4B,EAC5B,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,MAAM,UAAU,CAAA;AAiBjB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGvC,KAAK,qBAAqB,GAAG;IAC5B,uBAAuB,EAAE,OAAO,CAAA;IAChC,sBAAsB,CAAC,EAAE,UAAU,CAAA;IACnC,KAAK,EAAE,mBAAmB,CAAA;IAC1B,QAAQ,EAAE,6BAA6B,CAAA;IACvC,EAAE,EAAE,mBAAmB,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,4BAA4B,CAAA;IAC9C,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;CACtC,CAAA;AAqED,sDAAsD;AACtD,eAAO,MAAM,YAAY,GAAI,SAAS,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,SAiD3E,CAAA;AAGD,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,YAY/C,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,SAAS,SAAS,YAAoD,CAAA;AAEhH;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,oCAAoC,YAAY,KAAG,MAkB5E,CAAA;AAED,KAAK,WAAW,GAAG;IAClB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAA;IACtB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,YAAY,GAAG;IACnB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAA;IACvB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,WAAW,EAAE,UAAU,CAAA;IACvB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAClD,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,WAAW,iCAoBhE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAClD,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,YAAY,sCAoBxE;AAED,QAAA,MAAM,cAAc,GACnB,SAAS,SAAS,EAClB,yHAUG,qBAAqB,kBA8bxB,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,597 @@
1
+ import { Boom } from '@hapi/boom';
2
+ import { proto } from '../../WAProto/index.js';
3
+ import { WAMessageStubType } from '../Types/index.js';
4
+ import { getContentType, normalizeMessageContent } from '../Utils/messages.js';
5
+ import { areJidsSameUser, isHostedLidUser, isHostedPnUser, isJidBroadcast, isJidStatusBroadcast, isLidUser, jidDecode, jidEncode, jidNormalizedUser } from '../WABinary/index.js';
6
+ import { aesDecryptGCM, hmacSign } from './crypto.js';
7
+ import { getKeyAuthor, toNumber } from './generics.js';
8
+ import { downloadAndProcessHistorySyncNotification } from './history.js';
9
+ import { buildMergedTcTokenIndexWrite, resolveTcTokenJid } from './tc-token-utils.js';
10
+ const REAL_MSG_STUB_TYPES = new Set([
11
+ WAMessageStubType.CALL_MISSED_GROUP_VIDEO,
12
+ WAMessageStubType.CALL_MISSED_GROUP_VOICE,
13
+ WAMessageStubType.CALL_MISSED_VIDEO,
14
+ WAMessageStubType.CALL_MISSED_VOICE
15
+ ]);
16
+ const REAL_MSG_REQ_ME_STUB_TYPES = new Set([WAMessageStubType.GROUP_PARTICIPANT_ADD]);
17
+ async function storeTcTokensFromHistorySync(chats, signalRepository, keyStore, logger) {
18
+ const getLIDForPN = signalRepository.lidMapping.getLIDForPN.bind(signalRepository.lidMapping);
19
+ const candidates = [];
20
+ for (const chat of chats) {
21
+ const ts = chat.tcTokenTimestamp ? toNumber(chat.tcTokenTimestamp) : 0;
22
+ if (chat.tcToken?.length && ts > 0) {
23
+ const jid = jidNormalizedUser(chat.id);
24
+ const storageJid = await resolveTcTokenJid(jid, getLIDForPN);
25
+ candidates.push({
26
+ storageJid,
27
+ token: Buffer.from(chat.tcToken),
28
+ ts,
29
+ senderTs: chat.tcTokenSenderTimestamp ? toNumber(chat.tcTokenSenderTimestamp) : undefined
30
+ });
31
+ }
32
+ }
33
+ if (!candidates.length) {
34
+ return;
35
+ }
36
+ const jids = candidates.map(c => c.storageJid);
37
+ const existing = await keyStore.get('tctoken', jids);
38
+ const entries = {};
39
+ for (const c of candidates) {
40
+ const existingEntry = existing[c.storageJid];
41
+ const existingTs = existingEntry?.timestamp ? Number(existingEntry.timestamp) : 0;
42
+ if (existingTs > 0 && existingTs >= c.ts) {
43
+ continue;
44
+ }
45
+ entries[c.storageJid] = {
46
+ ...existingEntry,
47
+ token: c.token,
48
+ timestamp: String(c.ts),
49
+ ...(c.senderTs !== undefined ? { senderTimestamp: c.senderTs } : {})
50
+ };
51
+ }
52
+ if (Object.keys(entries).length) {
53
+ logger?.debug({ count: Object.keys(entries).length }, 'storing tctokens from history sync');
54
+ try {
55
+ // Include updated __index so cross-session pruning picks these JIDs up.
56
+ const indexWrite = await buildMergedTcTokenIndexWrite(keyStore, Object.keys(entries));
57
+ await keyStore.set({ tctoken: { ...entries, ...indexWrite } });
58
+ }
59
+ catch (err) {
60
+ logger?.warn({ err }, 'failed to store tctokens from history sync');
61
+ }
62
+ }
63
+ }
64
+ /** Cleans a received message to further processing */
65
+ export const cleanMessage = (message, meId, meLid) => {
66
+ // ensure remoteJid and participant doesn't have device or agent in it
67
+ if (isHostedPnUser(message.key.remoteJid) || isHostedLidUser(message.key.remoteJid)) {
68
+ message.key.remoteJid = jidEncode(jidDecode(message.key?.remoteJid)?.user, isHostedPnUser(message.key.remoteJid) ? 's.whatsapp.net' : 'lid');
69
+ }
70
+ else {
71
+ message.key.remoteJid = jidNormalizedUser(message.key.remoteJid);
72
+ }
73
+ if (isHostedPnUser(message.key.participant) || isHostedLidUser(message.key.participant)) {
74
+ message.key.participant = jidEncode(jidDecode(message.key.participant)?.user, isHostedPnUser(message.key.participant) ? 's.whatsapp.net' : 'lid');
75
+ }
76
+ else {
77
+ message.key.participant = jidNormalizedUser(message.key.participant);
78
+ }
79
+ const content = normalizeMessageContent(message.message);
80
+ // if the message has a reaction, ensure fromMe & remoteJid are from our perspective
81
+ if (content?.reactionMessage) {
82
+ normaliseKey(content.reactionMessage.key);
83
+ }
84
+ if (content?.pollUpdateMessage) {
85
+ normaliseKey(content.pollUpdateMessage.pollCreationMessageKey);
86
+ }
87
+ function normaliseKey(msgKey) {
88
+ // if the reaction is from another user
89
+ // we've to correctly map the key to this user's perspective
90
+ if (!message.key.fromMe) {
91
+ // if the sender believed the message being reacted to is not from them
92
+ // we've to correct the key to be from them, or some other participant
93
+ msgKey.fromMe = !msgKey.fromMe
94
+ ? areJidsSameUser(msgKey.participant || msgKey.remoteJid, meId) ||
95
+ areJidsSameUser(msgKey.participant || msgKey.remoteJid, meLid)
96
+ : // if the message being reacted to, was from them
97
+ // fromMe automatically becomes false
98
+ false;
99
+ // set the remoteJid to being the same as the chat the message came from
100
+ // TODO: investigate inconsistencies
101
+ msgKey.remoteJid = message.key.remoteJid;
102
+ // set participant of the message
103
+ msgKey.participant = msgKey.participant || message.key.participant;
104
+ }
105
+ }
106
+ };
107
+ // TODO: target:audit AUDIT THIS FUNCTION AGAIN
108
+ export const isRealMessage = (message) => {
109
+ const normalizedContent = normalizeMessageContent(message.message);
110
+ const hasSomeContent = !!getContentType(normalizedContent);
111
+ return ((!!normalizedContent ||
112
+ REAL_MSG_STUB_TYPES.has(message.messageStubType) ||
113
+ REAL_MSG_REQ_ME_STUB_TYPES.has(message.messageStubType)) &&
114
+ hasSomeContent &&
115
+ !normalizedContent?.protocolMessage &&
116
+ !normalizedContent?.reactionMessage &&
117
+ !normalizedContent?.pollUpdateMessage);
118
+ };
119
+ export const shouldIncrementChatUnread = (message) => !message.key.fromMe && !message.messageStubType;
120
+ /**
121
+ * Get the ID of the chat from the given key.
122
+ * Typically -- that'll be the remoteJid, but for broadcasts, it'll be the participant
123
+ */
124
+ export const getChatId = ({ remoteJid, participant, fromMe }) => {
125
+ if (!remoteJid) {
126
+ throw new Boom('Cannot derive chat id: message key is missing remoteJid', {
127
+ data: { remoteJid, participant, fromMe }
128
+ });
129
+ }
130
+ if (isJidBroadcast(remoteJid) && !isJidStatusBroadcast(remoteJid) && !fromMe) {
131
+ if (!participant) {
132
+ throw new Boom('Cannot derive chat id: broadcast message key is missing participant', {
133
+ data: { remoteJid, fromMe }
134
+ });
135
+ }
136
+ return participant;
137
+ }
138
+ return remoteJid;
139
+ };
140
+ /**
141
+ * Decrypt a poll vote
142
+ * @param vote encrypted vote
143
+ * @param ctx additional info about the poll required for decryption
144
+ * @returns list of SHA256 options
145
+ */
146
+ export function decryptPollVote({ encPayload, encIv }, { pollCreatorJid, pollMsgId, pollEncKey, voterJid }) {
147
+ const sign = Buffer.concat([
148
+ toBinary(pollMsgId),
149
+ toBinary(pollCreatorJid),
150
+ toBinary(voterJid),
151
+ toBinary('Poll Vote'),
152
+ new Uint8Array([1])
153
+ ]);
154
+ const key0 = hmacSign(pollEncKey, new Uint8Array(32), 'sha256');
155
+ const decKey = hmacSign(sign, key0, 'sha256');
156
+ const aad = toBinary(`${pollMsgId}\u0000${voterJid}`);
157
+ const decrypted = aesDecryptGCM(encPayload, decKey, encIv, aad);
158
+ return proto.Message.PollVoteMessage.decode(decrypted);
159
+ function toBinary(txt) {
160
+ return Buffer.from(txt);
161
+ }
162
+ }
163
+ /**
164
+ * Decrypt an event response
165
+ * @param response encrypted event response
166
+ * @param ctx additional info about the event required for decryption
167
+ * @returns event response message
168
+ */
169
+ export function decryptEventResponse({ encPayload, encIv }, { eventCreatorJid, eventMsgId, eventEncKey, responderJid }) {
170
+ const sign = Buffer.concat([
171
+ toBinary(eventMsgId),
172
+ toBinary(eventCreatorJid),
173
+ toBinary(responderJid),
174
+ toBinary('Event Response'),
175
+ new Uint8Array([1])
176
+ ]);
177
+ const key0 = hmacSign(eventEncKey, new Uint8Array(32), 'sha256');
178
+ const decKey = hmacSign(sign, key0, 'sha256');
179
+ const aad = toBinary(`${eventMsgId}\u0000${responderJid}`);
180
+ const decrypted = aesDecryptGCM(encPayload, decKey, encIv, aad);
181
+ return proto.Message.EventResponseMessage.decode(decrypted);
182
+ function toBinary(txt) {
183
+ return Buffer.from(txt);
184
+ }
185
+ }
186
+ const processMessage = async (message, { shouldProcessHistoryMsg, placeholderResendCache, ev, creds, signalRepository, keyStore, logger, options, getMessage }) => {
187
+ const meId = creds.me.id;
188
+ const { accountSettings } = creds;
189
+ const chat = { id: jidNormalizedUser(getChatId(message.key)) };
190
+ const isRealMsg = isRealMessage(message);
191
+ if (isRealMsg) {
192
+ chat.messages = [{ message }];
193
+ chat.conversationTimestamp = toNumber(message.messageTimestamp);
194
+ // only increment unread count if not CIPHERTEXT and from another person
195
+ if (shouldIncrementChatUnread(message)) {
196
+ chat.unreadCount = (chat.unreadCount || 0) + 1;
197
+ }
198
+ }
199
+ const content = normalizeMessageContent(message.message);
200
+ // unarchive chat if it's a real message, or someone reacted to our message
201
+ // and we've the unarchive chats setting on
202
+ if ((isRealMsg || content?.reactionMessage?.key?.fromMe) && accountSettings?.unarchiveChats) {
203
+ chat.archived = false;
204
+ chat.readOnly = false;
205
+ }
206
+ const protocolMsg = content?.protocolMessage;
207
+ if (protocolMsg) {
208
+ switch (protocolMsg.type) {
209
+ case proto.Message.ProtocolMessage.Type.HISTORY_SYNC_NOTIFICATION:
210
+ const histNotification = protocolMsg.historySyncNotification;
211
+ const process = shouldProcessHistoryMsg;
212
+ const isLatest = !creds.processedHistoryMessages?.length;
213
+ logger?.info({
214
+ histNotification,
215
+ process,
216
+ id: message.key.id,
217
+ isLatest
218
+ }, 'got history notification');
219
+ if (process) {
220
+ // TODO: investigate
221
+ if (histNotification.syncType !== proto.HistorySync.HistorySyncType.ON_DEMAND) {
222
+ ev.emit('creds.update', {
223
+ processedHistoryMessages: [
224
+ ...(creds.processedHistoryMessages || []),
225
+ { key: message.key, messageTimestamp: message.messageTimestamp }
226
+ ]
227
+ });
228
+ }
229
+ const data = await downloadAndProcessHistorySyncNotification(histNotification, options, logger);
230
+ if (data.lidPnMappings?.length) {
231
+ logger?.debug({ count: data.lidPnMappings.length }, 'processing LID-PN mappings from history sync');
232
+ await signalRepository.lidMapping
233
+ .storeLIDPNMappings(data.lidPnMappings)
234
+ .catch(err => logger?.warn({ err }, 'failed to store LID-PN mappings from history sync'));
235
+ }
236
+ await storeTcTokensFromHistorySync(data.chats, signalRepository, keyStore, logger);
237
+ ev.emit('messaging-history.set', {
238
+ ...data,
239
+ isLatest: histNotification.syncType !== proto.HistorySync.HistorySyncType.ON_DEMAND ? isLatest : undefined,
240
+ chunkOrder: histNotification.chunkOrder,
241
+ peerDataRequestSessionId: histNotification.peerDataRequestSessionId
242
+ });
243
+ }
244
+ break;
245
+ case proto.Message.ProtocolMessage.Type.APP_STATE_SYNC_KEY_SHARE:
246
+ const keys = protocolMsg.appStateSyncKeyShare.keys;
247
+ if (keys?.length) {
248
+ let newAppStateSyncKeyId = '';
249
+ await keyStore.transaction(async () => {
250
+ const newKeys = [];
251
+ for (const { keyData, keyId } of keys) {
252
+ const strKeyId = Buffer.from(keyId.keyId).toString('base64');
253
+ newKeys.push(strKeyId);
254
+ await keyStore.set({ 'app-state-sync-key': { [strKeyId]: keyData } });
255
+ newAppStateSyncKeyId = strKeyId;
256
+ }
257
+ logger?.info({ newAppStateSyncKeyId, newKeys }, 'injecting new app state sync keys');
258
+ }, meId);
259
+ ev.emit('creds.update', { myAppStateKeyId: newAppStateSyncKeyId });
260
+ }
261
+ else {
262
+ logger?.info({ protocolMsg }, 'recv app state sync with 0 keys');
263
+ }
264
+ break;
265
+ case proto.Message.ProtocolMessage.Type.REVOKE:
266
+ ev.emit('messages.update', [
267
+ {
268
+ key: {
269
+ ...message.key,
270
+ id: protocolMsg.key.id
271
+ },
272
+ update: { message: null, messageStubType: WAMessageStubType.REVOKE, key: message.key }
273
+ }
274
+ ]);
275
+ break;
276
+ case proto.Message.ProtocolMessage.Type.EPHEMERAL_SETTING:
277
+ Object.assign(chat, {
278
+ ephemeralSettingTimestamp: toNumber(message.messageTimestamp),
279
+ ephemeralExpiration: protocolMsg.ephemeralExpiration || null
280
+ });
281
+ break;
282
+ case proto.Message.ProtocolMessage.Type.PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE:
283
+ const response = protocolMsg.peerDataOperationRequestResponseMessage;
284
+ if (response) {
285
+ // TODO: IMPLEMENT HISTORY SYNC ETC (sticker uploads etc.).
286
+ const peerDataOperationResult = response.peerDataOperationResult || [];
287
+ for (const result of peerDataOperationResult) {
288
+ const retryResponse = result?.placeholderMessageResendResponse;
289
+ //eslint-disable-next-line max-depth
290
+ if (!retryResponse?.webMessageInfoBytes) {
291
+ continue;
292
+ }
293
+ //eslint-disable-next-line max-depth
294
+ try {
295
+ const webMessageInfo = proto.WebMessageInfo.decode(retryResponse.webMessageInfoBytes);
296
+ const msgId = webMessageInfo.key?.id;
297
+ // Retrieve cached original message data (preserves LID details,
298
+ // timestamps, etc. that the phone may omit in its PDO response)
299
+ const cachedData = msgId ? await placeholderResendCache?.get(msgId) : undefined;
300
+ //eslint-disable-next-line max-depth
301
+ if (msgId) {
302
+ await placeholderResendCache?.del(msgId);
303
+ }
304
+ let finalMsg;
305
+ //eslint-disable-next-line max-depth
306
+ if (cachedData && typeof cachedData === 'object') {
307
+ // Apply decoded message content onto cached metadata (preserves LID etc.)
308
+ cachedData.message = webMessageInfo.message;
309
+ //eslint-disable-next-line max-depth
310
+ if (webMessageInfo.messageTimestamp) {
311
+ cachedData.messageTimestamp = webMessageInfo.messageTimestamp;
312
+ }
313
+ finalMsg = cachedData;
314
+ }
315
+ else {
316
+ finalMsg = webMessageInfo;
317
+ }
318
+ logger?.debug({ msgId, requestId: response.stanzaId }, 'received placeholder resend');
319
+ ev.emit('messages.upsert', {
320
+ messages: [finalMsg],
321
+ type: 'notify',
322
+ requestId: response.stanzaId
323
+ });
324
+ }
325
+ catch (err) {
326
+ logger?.warn({ err, stanzaId: response.stanzaId }, 'failed to decode placeholder resend response');
327
+ }
328
+ }
329
+ }
330
+ break;
331
+ case proto.Message.ProtocolMessage.Type.MESSAGE_EDIT:
332
+ ev.emit('messages.update', [
333
+ {
334
+ // flip the sender / fromMe properties because they're in the perspective of the sender
335
+ key: { ...message.key, id: protocolMsg.key?.id },
336
+ update: {
337
+ message: {
338
+ editedMessage: {
339
+ message: protocolMsg.editedMessage
340
+ }
341
+ },
342
+ messageTimestamp: protocolMsg.timestampMs
343
+ ? Math.floor(toNumber(protocolMsg.timestampMs) / 1000)
344
+ : message.messageTimestamp
345
+ }
346
+ }
347
+ ]);
348
+ break;
349
+ case proto.Message.ProtocolMessage.Type.GROUP_MEMBER_LABEL_CHANGE:
350
+ const labelAssociationMsg = protocolMsg.memberLabel;
351
+ if (labelAssociationMsg?.label) {
352
+ ev.emit('group.member-tag.update', {
353
+ groupId: chat.id,
354
+ label: labelAssociationMsg.label,
355
+ participant: message.key.participant,
356
+ participantAlt: message.key.participantAlt,
357
+ messageTimestamp: Number(message.messageTimestamp)
358
+ });
359
+ }
360
+ break;
361
+ case proto.Message.ProtocolMessage.Type.LID_MIGRATION_MAPPING_SYNC:
362
+ const encodedPayload = protocolMsg.lidMigrationMappingSyncMessage?.encodedMappingPayload;
363
+ const { pnToLidMappings, chatDbMigrationTimestamp } = proto.LIDMigrationMappingSyncPayload.decode(encodedPayload);
364
+ logger?.debug({ pnToLidMappings, chatDbMigrationTimestamp }, 'got lid mappings and chat db migration timestamp');
365
+ const pairs = [];
366
+ for (const { pn, latestLid, assignedLid } of pnToLidMappings) {
367
+ const lid = latestLid || assignedLid;
368
+ pairs.push({ lid: `${lid}@lid`, pn: `${pn}@s.whatsapp.net` });
369
+ }
370
+ await signalRepository.lidMapping.storeLIDPNMappings(pairs);
371
+ if (pairs.length) {
372
+ for (const { pn, lid } of pairs) {
373
+ await signalRepository.migrateSession(pn, lid);
374
+ }
375
+ }
376
+ }
377
+ }
378
+ else if (content?.reactionMessage) {
379
+ const reaction = {
380
+ ...content.reactionMessage,
381
+ key: message.key
382
+ };
383
+ ev.emit('messages.reaction', [
384
+ {
385
+ reaction,
386
+ key: content.reactionMessage?.key
387
+ }
388
+ ]);
389
+ }
390
+ else if (content?.encEventResponseMessage) {
391
+ const encEventResponse = content.encEventResponseMessage;
392
+ const creationMsgKey = encEventResponse.eventCreationMessageKey;
393
+ // we need to fetch the event creation message to get the event enc key
394
+ const eventMsg = await getMessage(creationMsgKey);
395
+ if (eventMsg) {
396
+ try {
397
+ const meIdNormalised = jidNormalizedUser(meId);
398
+ // all jids need to be PN
399
+ const eventCreatorKey = creationMsgKey.participant || creationMsgKey.remoteJid;
400
+ const eventCreatorPn = isLidUser(eventCreatorKey)
401
+ ? await signalRepository.lidMapping.getPNForLID(eventCreatorKey)
402
+ : eventCreatorKey;
403
+ const eventCreatorJid = getKeyAuthor({ remoteJid: jidNormalizedUser(eventCreatorPn), fromMe: meIdNormalised === eventCreatorPn }, meIdNormalised);
404
+ const responderJid = getKeyAuthor(message.key, meIdNormalised);
405
+ const eventEncKey = eventMsg?.messageContextInfo?.messageSecret;
406
+ if (!eventEncKey) {
407
+ logger?.warn({ creationMsgKey }, 'event response: missing messageSecret for decryption');
408
+ }
409
+ else {
410
+ const responseMsg = decryptEventResponse(encEventResponse, {
411
+ eventEncKey,
412
+ eventCreatorJid,
413
+ eventMsgId: creationMsgKey.id,
414
+ responderJid
415
+ });
416
+ const eventResponse = {
417
+ eventResponseMessageKey: message.key,
418
+ senderTimestampMs: responseMsg.timestampMs,
419
+ response: responseMsg
420
+ };
421
+ ev.emit('messages.update', [
422
+ {
423
+ key: creationMsgKey,
424
+ update: {
425
+ eventResponses: [eventResponse]
426
+ }
427
+ }
428
+ ]);
429
+ }
430
+ }
431
+ catch (err) {
432
+ logger?.warn({ err, creationMsgKey }, 'failed to decrypt event response');
433
+ }
434
+ }
435
+ else {
436
+ logger?.warn({ creationMsgKey }, 'event creation message not found, cannot decrypt response');
437
+ }
438
+ }
439
+ else if (message.messageStubType) {
440
+ const jid = message.key?.remoteJid;
441
+ //let actor = whatsappID (message.participant)
442
+ let participants;
443
+ const emitParticipantsUpdate = (action) => ev.emit('group-participants.update', {
444
+ id: jid,
445
+ author: message.key.participant,
446
+ authorPn: message.key.participantAlt,
447
+ authorUsername: message.key.participantUsername,
448
+ participants,
449
+ action
450
+ });
451
+ const emitGroupUpdate = (update) => {
452
+ ev.emit('groups.update', [
453
+ {
454
+ id: jid,
455
+ ...update,
456
+ author: message.key.participant ?? undefined,
457
+ authorPn: message.key.participantAlt,
458
+ authorUsername: message.key.participantUsername
459
+ }
460
+ ]);
461
+ };
462
+ const emitGroupRequestJoin = (participant, action, method) => {
463
+ ev.emit('group.join-request', {
464
+ id: jid,
465
+ author: message.key.participant,
466
+ authorPn: message.key.participantAlt,
467
+ authorUsername: message.key.participantUsername,
468
+ participant: participant.lid,
469
+ participantPn: participant.pn,
470
+ action,
471
+ method: method
472
+ });
473
+ };
474
+ const participantsIncludesMe = () => participants.find(jid => areJidsSameUser(meId, jid.phoneNumber)); // ADD SUPPORT FOR LID
475
+ switch (message.messageStubType) {
476
+ case WAMessageStubType.GROUP_PARTICIPANT_CHANGE_NUMBER:
477
+ participants = message.messageStubParameters.map((a) => JSON.parse(a)) || [];
478
+ emitParticipantsUpdate('modify');
479
+ break;
480
+ case WAMessageStubType.GROUP_PARTICIPANT_LEAVE:
481
+ case WAMessageStubType.GROUP_PARTICIPANT_REMOVE:
482
+ participants = message.messageStubParameters.map((a) => JSON.parse(a)) || [];
483
+ emitParticipantsUpdate('remove');
484
+ // mark the chat read only if you left the group
485
+ if (participantsIncludesMe()) {
486
+ chat.readOnly = true;
487
+ }
488
+ break;
489
+ case WAMessageStubType.GROUP_PARTICIPANT_ADD:
490
+ case WAMessageStubType.GROUP_PARTICIPANT_INVITE:
491
+ case WAMessageStubType.GROUP_PARTICIPANT_ADD_REQUEST_JOIN:
492
+ participants = message.messageStubParameters.map((a) => JSON.parse(a)) || [];
493
+ if (participantsIncludesMe()) {
494
+ chat.readOnly = false;
495
+ }
496
+ emitParticipantsUpdate('add');
497
+ break;
498
+ case WAMessageStubType.GROUP_PARTICIPANT_DEMOTE:
499
+ participants = message.messageStubParameters.map((a) => JSON.parse(a)) || [];
500
+ emitParticipantsUpdate('demote');
501
+ break;
502
+ case WAMessageStubType.GROUP_PARTICIPANT_PROMOTE:
503
+ participants = message.messageStubParameters.map((a) => JSON.parse(a)) || [];
504
+ emitParticipantsUpdate('promote');
505
+ break;
506
+ case WAMessageStubType.GROUP_CHANGE_ANNOUNCE:
507
+ const announceValue = message.messageStubParameters?.[0];
508
+ emitGroupUpdate({ announce: announceValue === 'true' || announceValue === 'on' });
509
+ break;
510
+ case WAMessageStubType.GROUP_CHANGE_RESTRICT:
511
+ const restrictValue = message.messageStubParameters?.[0];
512
+ emitGroupUpdate({ restrict: restrictValue === 'true' || restrictValue === 'on' });
513
+ break;
514
+ case WAMessageStubType.GROUP_CHANGE_SUBJECT:
515
+ const name = message.messageStubParameters?.[0];
516
+ chat.name = name;
517
+ emitGroupUpdate({ subject: name });
518
+ break;
519
+ case WAMessageStubType.GROUP_CHANGE_DESCRIPTION:
520
+ const description = message.messageStubParameters?.[0];
521
+ chat.description = description;
522
+ emitGroupUpdate({ desc: description });
523
+ break;
524
+ case WAMessageStubType.GROUP_CHANGE_INVITE_LINK:
525
+ const code = message.messageStubParameters?.[0];
526
+ emitGroupUpdate({ inviteCode: code });
527
+ break;
528
+ case WAMessageStubType.GROUP_MEMBER_ADD_MODE:
529
+ const memberAddValue = message.messageStubParameters?.[0];
530
+ emitGroupUpdate({ memberAddMode: memberAddValue === 'all_member_add' });
531
+ break;
532
+ case WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE:
533
+ const approvalMode = message.messageStubParameters?.[0];
534
+ emitGroupUpdate({ joinApprovalMode: approvalMode === 'on' });
535
+ break;
536
+ case WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD: // TODO: Add other events
537
+ const participant = JSON.parse(message.messageStubParameters?.[0]);
538
+ const action = message.messageStubParameters?.[1];
539
+ const method = message.messageStubParameters?.[2];
540
+ emitGroupRequestJoin(participant, action, method);
541
+ break;
542
+ }
543
+ } /* else if(content?.pollUpdateMessage) {
544
+ const creationMsgKey = content.pollUpdateMessage.pollCreationMessageKey!
545
+ // we need to fetch the poll creation message to get the poll enc key
546
+ // TODO: make standalone, remove getMessage reference
547
+ // TODO: Remove entirely
548
+ const pollMsg = await getMessage(creationMsgKey)
549
+ if(pollMsg) {
550
+ const meIdNormalised = jidNormalizedUser(meId)
551
+ const pollCreatorJid = getKeyAuthor(creationMsgKey, meIdNormalised)
552
+ const voterJid = getKeyAuthor(message.key, meIdNormalised)
553
+ const pollEncKey = pollMsg.messageContextInfo?.messageSecret!
554
+
555
+ try {
556
+ const voteMsg = decryptPollVote(
557
+ content.pollUpdateMessage.vote!,
558
+ {
559
+ pollEncKey,
560
+ pollCreatorJid,
561
+ pollMsgId: creationMsgKey.id!,
562
+ voterJid,
563
+ }
564
+ )
565
+ ev.emit('messages.update', [
566
+ {
567
+ key: creationMsgKey,
568
+ update: {
569
+ pollUpdates: [
570
+ {
571
+ pollUpdateMessageKey: message.key,
572
+ vote: voteMsg,
573
+ senderTimestampMs: (content.pollUpdateMessage.senderTimestampMs! as Long).toNumber(),
574
+ }
575
+ ]
576
+ }
577
+ }
578
+ ])
579
+ } catch(err) {
580
+ logger?.warn(
581
+ { err, creationMsgKey },
582
+ 'failed to decrypt poll vote'
583
+ )
584
+ }
585
+ } else {
586
+ logger?.warn(
587
+ { creationMsgKey },
588
+ 'poll creation message not found, cannot decrypt update'
589
+ )
590
+ }
591
+ } */
592
+ if (Object.keys(chat).length > 1) {
593
+ ev.emit('chats.update', [chat]);
594
+ }
595
+ };
596
+ export default processMessage;
597
+ //# sourceMappingURL=process-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-message.js","sourceRoot":"","sources":["../../src/Utils/process-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import type { WAMessageContent, WAMessageKey } from '../Types/index.js';
3
+ import type { BinaryNode } from '../WABinary/index.js';
4
+ export type ReportingField = {
5
+ f: number;
6
+ m?: boolean;
7
+ s?: ReportingField[];
8
+ };
9
+ export declare const shouldIncludeReportingToken: (message: proto.IMessage) => boolean;
10
+ export declare const getMessageReportingToken: (msgProtobuf: Buffer, message: WAMessageContent, key: WAMessageKey) => Promise<BinaryNode | null>;
11
+ //# sourceMappingURL=reporting-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/reporting-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,MAAM,MAAM,cAAc,GAAG;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,CAAC,EAAE,OAAO,CAAA;IACX,CAAC,CAAC,EAAE,cAAc,EAAE,CAAA;CACpB,CAAA;AAwFD,eAAO,MAAM,2BAA2B,GAAI,SAAS,KAAK,CAAC,QAAQ,KAAG,OAI3C,CAAA;AAgN3B,eAAO,MAAM,wBAAwB,GACpC,aAAa,MAAM,EACnB,SAAS,gBAAgB,EACzB,KAAK,YAAY,KACf,OAAO,CAAC,UAAU,GAAG,IAAI,CA6B3B,CAAA"}