@baileysmod-ubed/baileys 0.3.17

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 (430) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +79 -0
  3. package/WAProto/index.d.ts +15871 -0
  4. package/WAProto/index.js +115447 -0
  5. package/engine-requirements.js +13 -0
  6. package/lib/Defaults/index.d.ts +145 -0
  7. package/lib/Defaults/index.d.ts.map +1 -0
  8. package/lib/Defaults/index.js +152 -0
  9. package/lib/Defaults/index.js.map +1 -0
  10. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  11. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  12. package/lib/Signal/Group/ciphertext-message.js +12 -0
  13. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  14. package/lib/Signal/Group/group-session-builder.d.ts +8 -0
  15. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  16. package/lib/Signal/Group/group-session-builder.js +30 -0
  17. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  18. package/lib/Signal/Group/group_cipher.d.ts +11 -0
  19. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  20. package/lib/Signal/Group/group_cipher.js +82 -0
  21. package/lib/Signal/Group/group_cipher.js.map +1 -0
  22. package/lib/Signal/Group/index.d.ts +12 -0
  23. package/lib/Signal/Group/index.d.ts.map +1 -0
  24. package/lib/Signal/Group/index.js +12 -0
  25. package/lib/Signal/Group/index.js.map +1 -0
  26. package/lib/Signal/Group/keyhelper.d.ts +7 -0
  27. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  28. package/lib/Signal/Group/keyhelper.js +18 -0
  29. package/lib/Signal/Group/keyhelper.js.map +1 -0
  30. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  31. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  32. package/lib/Signal/Group/sender-chain-key.js +26 -0
  33. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  34. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  35. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  36. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  38. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  39. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  40. package/lib/Signal/Group/sender-key-message.js +66 -0
  41. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  42. package/lib/Signal/Group/sender-key-name.d.ts +12 -0
  43. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  44. package/lib/Signal/Group/sender-key-name.js +48 -0
  45. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  46. package/lib/Signal/Group/sender-key-record.d.ts +13 -0
  47. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  48. package/lib/Signal/Group/sender-key-record.js +41 -0
  49. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  50. package/lib/Signal/Group/sender-key-state.d.ts +17 -0
  51. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  52. package/lib/Signal/Group/sender-key-state.js +84 -0
  53. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  54. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  55. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  56. package/lib/Signal/Group/sender-message-key.js +26 -0
  57. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  58. package/lib/Signal/libsignal.d.ts +55 -0
  59. package/lib/Signal/libsignal.d.ts.map +1 -0
  60. package/lib/Signal/libsignal.js +431 -0
  61. package/lib/Signal/libsignal.js.map +1 -0
  62. package/lib/Signal/lid-mapping.d.ts +21 -0
  63. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  64. package/lib/Signal/lid-mapping.js +277 -0
  65. package/lib/Signal/lid-mapping.js.map +1 -0
  66. package/lib/Socket/Client/index.d.ts +3 -0
  67. package/lib/Socket/Client/index.d.ts.map +1 -0
  68. package/lib/Socket/Client/index.js +3 -0
  69. package/lib/Socket/Client/index.js.map +1 -0
  70. package/lib/Socket/Client/types.d.ts +6 -0
  71. package/lib/Socket/Client/types.d.ts.map +1 -0
  72. package/lib/Socket/Client/types.js +11 -0
  73. package/lib/Socket/Client/types.js.map +1 -0
  74. package/lib/Socket/Client/websocket.d.ts +13 -0
  75. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  76. package/lib/Socket/Client/websocket.js +54 -0
  77. package/lib/Socket/Client/websocket.js.map +1 -0
  78. package/lib/Socket/business.d.ts +395 -0
  79. package/lib/Socket/business.d.ts.map +1 -0
  80. package/lib/Socket/business.js +380 -0
  81. package/lib/Socket/business.js.map +1 -0
  82. package/lib/Socket/chats.d.ts +137 -0
  83. package/lib/Socket/chats.d.ts.map +1 -0
  84. package/lib/Socket/chats.js +1214 -0
  85. package/lib/Socket/chats.js.map +1 -0
  86. package/lib/Socket/communities.d.ts +562 -0
  87. package/lib/Socket/communities.d.ts.map +1 -0
  88. package/lib/Socket/communities.js +432 -0
  89. package/lib/Socket/communities.js.map +1 -0
  90. package/lib/Socket/groups.d.ts +286 -0
  91. package/lib/Socket/groups.d.ts.map +1 -0
  92. package/lib/Socket/groups.js +348 -0
  93. package/lib/Socket/groups.js.map +1 -0
  94. package/lib/Socket/index.d.ts +530 -0
  95. package/lib/Socket/index.d.ts.map +1 -0
  96. package/lib/Socket/index.js +12 -0
  97. package/lib/Socket/index.js.map +1 -0
  98. package/lib/Socket/messages-recv.d.ts +334 -0
  99. package/lib/Socket/messages-recv.d.ts.map +1 -0
  100. package/lib/Socket/messages-recv.js +1772 -0
  101. package/lib/Socket/messages-recv.js.map +1 -0
  102. package/lib/Socket/messages-send.d.ts +330 -0
  103. package/lib/Socket/messages-send.d.ts.map +1 -0
  104. package/lib/Socket/messages-send.js +1368 -0
  105. package/lib/Socket/messages-send.js.map +1 -0
  106. package/lib/Socket/mex.d.ts +2 -0
  107. package/lib/Socket/mex.d.ts.map +1 -0
  108. package/lib/Socket/mex.js +42 -0
  109. package/lib/Socket/mex.js.map +1 -0
  110. package/lib/Socket/newsletter.d.ts +283 -0
  111. package/lib/Socket/newsletter.d.ts.map +1 -0
  112. package/lib/Socket/newsletter.js +226 -0
  113. package/lib/Socket/newsletter.js.map +1 -0
  114. package/lib/Socket/socket.d.ts +61 -0
  115. package/lib/Socket/socket.d.ts.map +1 -0
  116. package/lib/Socket/socket.js +967 -0
  117. package/lib/Socket/socket.js.map +1 -0
  118. package/lib/Store/index.d.ts +4 -0
  119. package/lib/Store/index.d.ts.map +1 -0
  120. package/lib/Store/index.js +4 -0
  121. package/lib/Store/index.js.map +1 -0
  122. package/lib/Store/make-in-memory-store.d.ts +63 -0
  123. package/lib/Store/make-in-memory-store.d.ts.map +1 -0
  124. package/lib/Store/make-in-memory-store.js +421 -0
  125. package/lib/Store/make-in-memory-store.js.map +1 -0
  126. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  127. package/lib/Store/make-ordered-dictionary.d.ts.map +1 -0
  128. package/lib/Store/make-ordered-dictionary.js +79 -0
  129. package/lib/Store/make-ordered-dictionary.js.map +1 -0
  130. package/lib/Store/object-repository.d.ts +11 -0
  131. package/lib/Store/object-repository.d.ts.map +1 -0
  132. package/lib/Store/object-repository.js +24 -0
  133. package/lib/Store/object-repository.js.map +1 -0
  134. package/lib/Types/Auth.d.ts +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +3 -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 +3 -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 +12 -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 +3 -0
  175. package/lib/Types/Mex.d.ts.map +1 -0
  176. package/lib/Types/Mex.js +39 -0
  177. package/lib/Types/Mex.js.map +1 -0
  178. package/lib/Types/Product.d.ts +2 -0
  179. package/lib/Types/Product.d.ts.map +1 -0
  180. package/lib/Types/Product.js +2 -0
  181. package/lib/Types/Product.js.map +1 -0
  182. package/lib/Types/RichType.d.ts +3 -0
  183. package/lib/Types/RichType.d.ts.map +1 -0
  184. package/lib/Types/RichType.js +23 -0
  185. package/lib/Types/RichType.js.map +1 -0
  186. package/lib/Types/Signal.d.ts +2 -0
  187. package/lib/Types/Signal.d.ts.map +1 -0
  188. package/lib/Types/Signal.js +2 -0
  189. package/lib/Types/Signal.js.map +1 -0
  190. package/lib/Types/Socket.d.ts +2 -0
  191. package/lib/Types/Socket.d.ts.map +1 -0
  192. package/lib/Types/Socket.js +2 -0
  193. package/lib/Types/Socket.js.map +1 -0
  194. package/lib/Types/State.d.ts +6 -0
  195. package/lib/Types/State.d.ts.map +1 -0
  196. package/lib/Types/State.js +56 -0
  197. package/lib/Types/State.js.map +1 -0
  198. package/lib/Types/USync.d.ts +2 -0
  199. package/lib/Types/USync.d.ts.map +1 -0
  200. package/lib/Types/USync.js +2 -0
  201. package/lib/Types/USync.js.map +1 -0
  202. package/lib/Types/index.d.ts +14 -0
  203. package/lib/Types/index.d.ts.map +1 -0
  204. package/lib/Types/index.js +26 -0
  205. package/lib/Types/index.js.map +1 -0
  206. package/lib/Utils/auth-utils.d.ts +58 -0
  207. package/lib/Utils/auth-utils.d.ts.map +1 -0
  208. package/lib/Utils/auth-utils.js +302 -0
  209. package/lib/Utils/auth-utils.js.map +1 -0
  210. package/lib/Utils/browser-utils.d.ts +9 -0
  211. package/lib/Utils/browser-utils.d.ts.map +1 -0
  212. package/lib/Utils/browser-utils.js +28 -0
  213. package/lib/Utils/browser-utils.js.map +1 -0
  214. package/lib/Utils/business.d.ts +50 -0
  215. package/lib/Utils/business.d.ts.map +1 -0
  216. package/lib/Utils/business.js +231 -0
  217. package/lib/Utils/business.js.map +1 -0
  218. package/lib/Utils/chat-utils.d.ts +409 -0
  219. package/lib/Utils/chat-utils.d.ts.map +1 -0
  220. package/lib/Utils/chat-utils.js +872 -0
  221. package/lib/Utils/chat-utils.js.map +1 -0
  222. package/lib/Utils/companion-reg-client-utils.d.ts +5 -0
  223. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  224. package/lib/Utils/companion-reg-client-utils.js +40 -0
  225. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  226. package/lib/Utils/crypto.d.ts +40 -0
  227. package/lib/Utils/crypto.d.ts.map +1 -0
  228. package/lib/Utils/crypto.js +118 -0
  229. package/lib/Utils/crypto.js.map +1 -0
  230. package/lib/Utils/decode-wa-message.d.ts +84 -0
  231. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  232. package/lib/Utils/decode-wa-message.js +317 -0
  233. package/lib/Utils/decode-wa-message.js.map +1 -0
  234. package/lib/Utils/event-buffer.d.ts +13 -0
  235. package/lib/Utils/event-buffer.d.ts.map +1 -0
  236. package/lib/Utils/event-buffer.js +622 -0
  237. package/lib/Utils/event-buffer.js.map +1 -0
  238. package/lib/Utils/generics.d.ts +64 -0
  239. package/lib/Utils/generics.d.ts.map +1 -0
  240. package/lib/Utils/generics.js +395 -0
  241. package/lib/Utils/generics.js.map +1 -0
  242. package/lib/Utils/history.d.ts +76 -0
  243. package/lib/Utils/history.d.ts.map +1 -0
  244. package/lib/Utils/history.js +134 -0
  245. package/lib/Utils/history.js.map +1 -0
  246. package/lib/Utils/identity-change-handler.d.ts +14 -0
  247. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  248. package/lib/Utils/identity-change-handler.js +50 -0
  249. package/lib/Utils/identity-change-handler.js.map +1 -0
  250. package/lib/Utils/index.d.ts +25 -0
  251. package/lib/Utils/index.d.ts.map +1 -0
  252. package/lib/Utils/index.js +25 -0
  253. package/lib/Utils/index.js.map +1 -0
  254. package/lib/Utils/link-preview.d.ts +13 -0
  255. package/lib/Utils/link-preview.d.ts.map +1 -0
  256. package/lib/Utils/link-preview.js +85 -0
  257. package/lib/Utils/link-preview.js.map +1 -0
  258. package/lib/Utils/logger.d.ts +3 -0
  259. package/lib/Utils/logger.d.ts.map +1 -0
  260. package/lib/Utils/logger.js +3 -0
  261. package/lib/Utils/logger.js.map +1 -0
  262. package/lib/Utils/lt-hash.d.ts +7 -0
  263. package/lib/Utils/lt-hash.d.ts.map +1 -0
  264. package/lib/Utils/lt-hash.js +8 -0
  265. package/lib/Utils/lt-hash.js.map +1 -0
  266. package/lib/Utils/make-mutex.d.ts +7 -0
  267. package/lib/Utils/make-mutex.d.ts.map +1 -0
  268. package/lib/Utils/make-mutex.js +33 -0
  269. package/lib/Utils/make-mutex.js.map +1 -0
  270. package/lib/Utils/message-retry-manager.d.ts +80 -0
  271. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  272. package/lib/Utils/message-retry-manager.js +265 -0
  273. package/lib/Utils/message-retry-manager.js.map +1 -0
  274. package/lib/Utils/messages-media.d.ts +137 -0
  275. package/lib/Utils/messages-media.d.ts.map +1 -0
  276. package/lib/Utils/messages-media.js +843 -0
  277. package/lib/Utils/messages-media.js.map +1 -0
  278. package/lib/Utils/messages.d.ts +46 -0
  279. package/lib/Utils/messages.d.ts.map +1 -0
  280. package/lib/Utils/messages.js +1863 -0
  281. package/lib/Utils/messages.js.map +1 -0
  282. package/lib/Utils/noise-handler.d.ts +21 -0
  283. package/lib/Utils/noise-handler.d.ts.map +1 -0
  284. package/lib/Utils/noise-handler.js +201 -0
  285. package/lib/Utils/noise-handler.js.map +1 -0
  286. package/lib/Utils/offline-node-processor.d.ts +10 -0
  287. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  288. package/lib/Utils/offline-node-processor.js +40 -0
  289. package/lib/Utils/offline-node-processor.js.map +1 -0
  290. package/lib/Utils/pre-key-manager.d.ts +26 -0
  291. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  292. package/lib/Utils/pre-key-manager.js +106 -0
  293. package/lib/Utils/pre-key-manager.js.map +1 -0
  294. package/lib/Utils/process-message.d.ts +84 -0
  295. package/lib/Utils/process-message.d.ts.map +1 -0
  296. package/lib/Utils/process-message.js +749 -0
  297. package/lib/Utils/process-message.js.map +1 -0
  298. package/lib/Utils/reporting-utils.d.ts +13 -0
  299. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  300. package/lib/Utils/reporting-utils.js +258 -0
  301. package/lib/Utils/reporting-utils.js.map +1 -0
  302. package/lib/Utils/rich-message-utils.d.ts +49 -0
  303. package/lib/Utils/rich-message-utils.d.ts.map +1 -0
  304. package/lib/Utils/rich-message-utils.js +370 -0
  305. package/lib/Utils/rich-message-utils.js.map +1 -0
  306. package/lib/Utils/signal.d.ts +83 -0
  307. package/lib/Utils/signal.d.ts.map +1 -0
  308. package/lib/Utils/signal.js +201 -0
  309. package/lib/Utils/signal.js.map +1 -0
  310. package/lib/Utils/stanza-ack.d.ts +17 -0
  311. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  312. package/lib/Utils/stanza-ack.js +38 -0
  313. package/lib/Utils/stanza-ack.js.map +1 -0
  314. package/lib/Utils/sync-action-utils.d.ts +3 -0
  315. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  316. package/lib/Utils/sync-action-utils.js +49 -0
  317. package/lib/Utils/sync-action-utils.js.map +1 -0
  318. package/lib/Utils/tc-token-utils.d.ts +30 -0
  319. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  320. package/lib/Utils/tc-token-utils.js +163 -0
  321. package/lib/Utils/tc-token-utils.js.map +1 -0
  322. package/lib/Utils/use-multi-file-auth-state.d.ts +11 -0
  323. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  324. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  325. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  326. package/lib/Utils/use-single-file-auth-state.d.ts +11 -0
  327. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -0
  328. package/lib/Utils/use-single-file-auth-state.js +109 -0
  329. package/lib/Utils/use-single-file-auth-state.js.map +1 -0
  330. package/lib/Utils/use-sqlite-auth-state.d.ts +11 -0
  331. package/lib/Utils/use-sqlite-auth-state.d.ts.map +1 -0
  332. package/lib/Utils/use-sqlite-auth-state.js +109 -0
  333. package/lib/Utils/use-sqlite-auth-state.js.map +1 -0
  334. package/lib/Utils/validate-connection.d.ts +44 -0
  335. package/lib/Utils/validate-connection.d.ts.map +1 -0
  336. package/lib/Utils/validate-connection.js +203 -0
  337. package/lib/Utils/validate-connection.js.map +1 -0
  338. package/lib/WABinary/constants.d.ts +62 -0
  339. package/lib/WABinary/constants.d.ts.map +1 -0
  340. package/lib/WABinary/constants.js +1467 -0
  341. package/lib/WABinary/constants.js.map +1 -0
  342. package/lib/WABinary/decode.d.ts +10 -0
  343. package/lib/WABinary/decode.d.ts.map +1 -0
  344. package/lib/WABinary/decode.js +262 -0
  345. package/lib/WABinary/decode.js.map +1 -0
  346. package/lib/WABinary/encode.d.ts +3 -0
  347. package/lib/WABinary/encode.d.ts.map +1 -0
  348. package/lib/WABinary/encode.js +220 -0
  349. package/lib/WABinary/encode.js.map +1 -0
  350. package/lib/WABinary/generic-utils.d.ts +77 -0
  351. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  352. package/lib/WABinary/generic-utils.js +226 -0
  353. package/lib/WABinary/generic-utils.js.map +1 -0
  354. package/lib/WABinary/index.d.ts +6 -0
  355. package/lib/WABinary/index.d.ts.map +1 -0
  356. package/lib/WABinary/index.js +6 -0
  357. package/lib/WABinary/index.js.map +1 -0
  358. package/lib/WABinary/jid-utils.d.ts +29 -0
  359. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  360. package/lib/WABinary/jid-utils.js +96 -0
  361. package/lib/WABinary/jid-utils.js.map +1 -0
  362. package/lib/WABinary/types.d.ts +2 -0
  363. package/lib/WABinary/types.d.ts.map +1 -0
  364. package/lib/WABinary/types.js +2 -0
  365. package/lib/WABinary/types.js.map +1 -0
  366. package/lib/WAM/BinaryInfo.d.ts +8 -0
  367. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  368. package/lib/WAM/BinaryInfo.js +10 -0
  369. package/lib/WAM/BinaryInfo.js.map +1 -0
  370. package/lib/WAM/constants.d.ts +34927 -0
  371. package/lib/WAM/constants.d.ts.map +1 -0
  372. package/lib/WAM/constants.js +22853 -0
  373. package/lib/WAM/constants.js.map +1 -0
  374. package/lib/WAM/encode.d.ts +2 -0
  375. package/lib/WAM/encode.d.ts.map +1 -0
  376. package/lib/WAM/encode.js +150 -0
  377. package/lib/WAM/encode.js.map +1 -0
  378. package/lib/WAM/index.d.ts +4 -0
  379. package/lib/WAM/index.d.ts.map +1 -0
  380. package/lib/WAM/index.js +4 -0
  381. package/lib/WAM/index.js.map +1 -0
  382. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +37 -0
  383. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  384. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  385. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  386. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  387. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  388. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  389. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  390. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  391. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  392. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  393. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  394. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  395. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  396. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  397. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  398. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  399. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  400. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  401. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  402. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +39 -0
  403. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  404. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  405. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  406. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +15 -0
  407. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  408. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  409. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  410. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  411. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  412. package/lib/WAUSync/Protocols/index.js +6 -0
  413. package/lib/WAUSync/Protocols/index.js.map +1 -0
  414. package/lib/WAUSync/USyncQuery.d.ts +21 -0
  415. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  416. package/lib/WAUSync/USyncQuery.js +98 -0
  417. package/lib/WAUSync/USyncQuery.js.map +1 -0
  418. package/lib/WAUSync/USyncUser.d.ts +17 -0
  419. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  420. package/lib/WAUSync/USyncUser.js +31 -0
  421. package/lib/WAUSync/USyncUser.js.map +1 -0
  422. package/lib/WAUSync/index.d.ts +4 -0
  423. package/lib/WAUSync/index.d.ts.map +1 -0
  424. package/lib/WAUSync/index.js +4 -0
  425. package/lib/WAUSync/index.js.map +1 -0
  426. package/lib/index.d.ts +12 -0
  427. package/lib/index.d.ts.map +1 -0
  428. package/lib/index.js +12 -0
  429. package/lib/index.js.map +1 -0
  430. package/package.json +108 -0
@@ -0,0 +1,286 @@
1
+ export function makeGroupsSocket(config: any): {
2
+ groupQuery: (jid: any, type: any, content: any) => Promise<any>;
3
+ groupMetadata: (jid: any) => Promise<{
4
+ id: any;
5
+ notify: any;
6
+ addressingMode: any;
7
+ subject: any;
8
+ subjectOwner: any;
9
+ subjectOwnerPn: any;
10
+ subjectOwnerUsername: any;
11
+ subjectTime: number;
12
+ size: any;
13
+ creation: number;
14
+ owner: string | undefined;
15
+ ownerPn: string | undefined;
16
+ ownerUsername: any;
17
+ owner_country_code: any;
18
+ desc: any;
19
+ descId: any;
20
+ descOwner: string | undefined;
21
+ descOwnerPn: string | undefined;
22
+ descOwnerUsername: any;
23
+ descTime: number | undefined;
24
+ linkedParent: any;
25
+ restrict: boolean;
26
+ announce: boolean;
27
+ isCommunity: boolean;
28
+ isCommunityAnnounce: boolean;
29
+ joinApprovalMode: boolean;
30
+ memberAddMode: boolean;
31
+ participants: any;
32
+ ephemeralDuration: number | undefined;
33
+ }>;
34
+ groupCreate: (subject: any, participants: any) => Promise<{
35
+ id: any;
36
+ notify: any;
37
+ addressingMode: any;
38
+ subject: any;
39
+ subjectOwner: any;
40
+ subjectOwnerPn: any;
41
+ subjectOwnerUsername: any;
42
+ subjectTime: number;
43
+ size: any;
44
+ creation: number;
45
+ owner: string | undefined;
46
+ ownerPn: string | undefined;
47
+ ownerUsername: any;
48
+ owner_country_code: any;
49
+ desc: any;
50
+ descId: any;
51
+ descOwner: string | undefined;
52
+ descOwnerPn: string | undefined;
53
+ descOwnerUsername: any;
54
+ descTime: number | undefined;
55
+ linkedParent: any;
56
+ restrict: boolean;
57
+ announce: boolean;
58
+ isCommunity: boolean;
59
+ isCommunityAnnounce: boolean;
60
+ joinApprovalMode: boolean;
61
+ memberAddMode: boolean;
62
+ participants: any;
63
+ ephemeralDuration: number | undefined;
64
+ }>;
65
+ groupLeave: (id: any) => Promise<void>;
66
+ groupUpdateSubject: (jid: any, subject: any) => Promise<void>;
67
+ groupRequestParticipantsList: (jid: any) => Promise<any>;
68
+ groupRequestParticipantsUpdate: (jid: any, participants: any, action: any) => Promise<any>;
69
+ groupParticipantsUpdate: (jid: any, participants: any, action: any) => Promise<any>;
70
+ groupUpdateDescription: (jid: any, description: any) => Promise<void>;
71
+ groupInviteCode: (jid: any) => Promise<any>;
72
+ groupRevokeInvite: (jid: any) => Promise<any>;
73
+ groupAcceptInvite: (code: any) => Promise<any>;
74
+ /**
75
+ * revoke a v4 invite for someone
76
+ * @param groupJid group jid
77
+ * @param invitedJid jid of person you invited
78
+ * @returns true if successful
79
+ */
80
+ groupRevokeInviteV4: (groupJid: any, invitedJid: any) => Promise<boolean>;
81
+ /**
82
+ * accept a GroupInviteMessage
83
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
84
+ * @param inviteMessage the message to accept
85
+ */
86
+ groupAcceptInviteV4: (...args: any[]) => Promise<any>;
87
+ groupGetInviteInfo: (code: any) => Promise<{
88
+ id: any;
89
+ notify: any;
90
+ addressingMode: any;
91
+ subject: any;
92
+ subjectOwner: any;
93
+ subjectOwnerPn: any;
94
+ subjectOwnerUsername: any;
95
+ subjectTime: number;
96
+ size: any;
97
+ creation: number;
98
+ owner: string | undefined;
99
+ ownerPn: string | undefined;
100
+ ownerUsername: any;
101
+ owner_country_code: any;
102
+ desc: any;
103
+ descId: any;
104
+ descOwner: string | undefined;
105
+ descOwnerPn: string | undefined;
106
+ descOwnerUsername: any;
107
+ descTime: number | undefined;
108
+ linkedParent: any;
109
+ restrict: boolean;
110
+ announce: boolean;
111
+ isCommunity: boolean;
112
+ isCommunityAnnounce: boolean;
113
+ joinApprovalMode: boolean;
114
+ memberAddMode: boolean;
115
+ participants: any;
116
+ ephemeralDuration: number | undefined;
117
+ }>;
118
+ groupToggleEphemeral: (jid: any, ephemeralExpiration: any) => Promise<void>;
119
+ groupSettingUpdate: (jid: any, setting: any) => Promise<void>;
120
+ groupMemberAddMode: (jid: any, mode: any) => Promise<void>;
121
+ groupJoinApprovalMode: (jid: any, mode: any) => Promise<void>;
122
+ groupFetchAllParticipating: () => Promise<{}>;
123
+ findUserId: (pnLid: any) => Promise<{
124
+ lid: undefined;
125
+ phoneNumber: undefined;
126
+ }>;
127
+ serverProps: {
128
+ privacyTokenOn1to1: boolean;
129
+ profilePicPrivacyToken: boolean;
130
+ lidTrustedTokenIssueToLid: boolean;
131
+ };
132
+ createCallLink: (type: any, event: any, timeoutMs: any) => Promise<any>;
133
+ getBotListV2: () => Promise<{
134
+ jid: any;
135
+ personaId: any;
136
+ }[]>;
137
+ messageMutex: {
138
+ mutex(code: any): any;
139
+ };
140
+ receiptMutex: {
141
+ mutex(code: any): any;
142
+ };
143
+ appStatePatchMutex: {
144
+ mutex(code: any): any;
145
+ };
146
+ notificationMutex: {
147
+ mutex(code: any): any;
148
+ };
149
+ fetchPrivacySettings: (force?: boolean) => Promise<any>;
150
+ upsertMessage: (...args: any[]) => Promise<any>;
151
+ appPatch: (patchCreate: any) => Promise<void>;
152
+ sendPresenceUpdate: (type: any, toJid: any) => Promise<void>;
153
+ presenceSubscribe: (toJid: any) => Promise<void>;
154
+ profilePictureUrl: (jid: any, type?: string, timeoutMs?: number, shouldIncludeTcToken?: boolean) => Promise<any>;
155
+ fetchBlocklist: () => Promise<any>;
156
+ fetchStatus: (...jids: any[]) => Promise<any>;
157
+ fetchDisappearingDuration: (...jids: any[]) => Promise<any>;
158
+ updateProfilePicture: (jid: any, content: any, dimensions: any) => Promise<void>;
159
+ removeProfilePicture: (jid: any) => Promise<void>;
160
+ updateProfileStatus: (status: any) => Promise<void>;
161
+ updateProfileName: (name: any) => Promise<void>;
162
+ updateBlockStatus: (jid: any, action: any) => Promise<void>;
163
+ updateDisableLinkPreviewsPrivacy: (isPreviewsDisabled: any) => Promise<void>;
164
+ updateCallPrivacy: (value: any) => Promise<void>;
165
+ updateMessagesPrivacy: (value: any) => Promise<void>;
166
+ updateLastSeenPrivacy: (value: any) => Promise<void>;
167
+ updateOnlinePrivacy: (value: any) => Promise<void>;
168
+ updateProfilePicturePrivacy: (value: any) => Promise<void>;
169
+ updateStatusPrivacy: (value: any) => Promise<void>;
170
+ updateReadReceiptsPrivacy: (value: any) => Promise<void>;
171
+ updateGroupsAddPrivacy: (value: any) => Promise<void>;
172
+ updateDefaultDisappearingMode: (duration: any) => Promise<void>;
173
+ getBusinessProfile: (jid: any) => Promise<{
174
+ wid: any;
175
+ address: any;
176
+ description: any;
177
+ website: any[];
178
+ email: any;
179
+ category: any;
180
+ business_hours: {
181
+ timezone: any;
182
+ business_config: any;
183
+ };
184
+ } | undefined>;
185
+ resyncAppState: (...args: any[]) => Promise<any>;
186
+ chatModify: (mod: any, jid: any) => Promise<void>;
187
+ cleanDirtyBits: (type: any, fromTimestamp: any) => Promise<void>;
188
+ addOrEditContact: (jid: any, contact: any) => Promise<void>;
189
+ removeContact: (jid: any) => Promise<void>;
190
+ placeholderResendCache: any;
191
+ addLabel: (jid: any, labels: any) => Promise<void>;
192
+ addChatLabel: (jid: any, labelId: any) => Promise<void>;
193
+ removeChatLabel: (jid: any, labelId: any) => Promise<void>;
194
+ addMessageLabel: (jid: any, messageId: any, labelId: any) => Promise<void>;
195
+ removeMessageLabel: (jid: any, messageId: any, labelId: any) => Promise<void>;
196
+ star: (jid: any, messages: any, star: any) => Promise<void>;
197
+ addOrEditQuickReply: (quickReply: any) => Promise<void>;
198
+ removeQuickReply: (timestamp: any) => Promise<void>;
199
+ type: string;
200
+ ws: import("./Client/websocket.js").WebSocketClient;
201
+ ev: {
202
+ process(handler: any): () => void;
203
+ emit(event: any, evData: any): any;
204
+ isBuffering(): boolean;
205
+ buffer: () => void;
206
+ flush: () => boolean;
207
+ createBufferedFunction(work: any): (...args: any[]) => Promise<any>;
208
+ on: (...args: any[]) => any;
209
+ off: (...args: any[]) => any;
210
+ removeAllListeners: (...args: any[]) => any;
211
+ destroy(): void;
212
+ };
213
+ authState: {
214
+ creds: any;
215
+ keys: {
216
+ get: (type: any, ids: any) => Promise<any>;
217
+ set: (data: any) => Promise<void>;
218
+ isInTransaction: () => boolean;
219
+ transaction: (work: any, key: any) => Promise<any>;
220
+ };
221
+ };
222
+ signalRepository: any;
223
+ user: any;
224
+ generateMessageTag: () => string;
225
+ query: (node: any, timeoutMs: any) => Promise<any>;
226
+ waitForMessage: (msgId: any, timeoutMs?: any) => Promise<any>;
227
+ waitForSocketOpen: () => Promise<void>;
228
+ sendRawMessage: (data: any) => Promise<void>;
229
+ sendNode: (frame: any) => Promise<void>;
230
+ logout: (msg: any) => Promise<void>;
231
+ end: (error: any) => Promise<void>;
232
+ registerSocketEndHandler: (handler: any) => void;
233
+ onUnexpectedError: (err: any, msg: any) => void;
234
+ uploadPreKeys: (count?: number) => Promise<void>;
235
+ uploadPreKeysToServerIfRequired: () => Promise<void>;
236
+ digestKeyBundle: () => Promise<void>;
237
+ rotateSignedPreKey: () => Promise<void>;
238
+ requestPairingCode: (phoneNumber: any, customPairingCode: any) => Promise<any>;
239
+ updateServerTimeOffset: ({ attrs }: {
240
+ attrs: any;
241
+ }) => void;
242
+ sendUnifiedSession: () => Promise<void>;
243
+ wamBuffer: import("../index.js").BinaryInfo;
244
+ waitForConnectionUpdate: (check: any, timeoutMs: any) => Promise<void>;
245
+ sendWAMBuffer: (wamBuffer: any) => Promise<any>;
246
+ executeUSyncQuery: (usyncQuery: any) => Promise<any>;
247
+ onWhatsApp: (...phoneNumber: any[]) => Promise<any>;
248
+ fetchAccountReachoutTimelock: () => Promise<{
249
+ isActive: boolean;
250
+ timeEnforcementEnds: Date | undefined;
251
+ enforcementType: any;
252
+ }>;
253
+ fetchNewChatMessageCap: () => Promise<any>;
254
+ };
255
+ export function extractGroupMetadata(result: any): {
256
+ id: any;
257
+ notify: any;
258
+ addressingMode: any;
259
+ subject: any;
260
+ subjectOwner: any;
261
+ subjectOwnerPn: any;
262
+ subjectOwnerUsername: any;
263
+ subjectTime: number;
264
+ size: any;
265
+ creation: number;
266
+ owner: string | undefined;
267
+ ownerPn: string | undefined;
268
+ ownerUsername: any;
269
+ owner_country_code: any;
270
+ desc: any;
271
+ descId: any;
272
+ descOwner: string | undefined;
273
+ descOwnerPn: string | undefined;
274
+ descOwnerUsername: any;
275
+ descTime: number | undefined;
276
+ linkedParent: any;
277
+ restrict: boolean;
278
+ announce: boolean;
279
+ isCommunity: boolean;
280
+ isCommunityAnnounce: boolean;
281
+ joinApprovalMode: boolean;
282
+ memberAddMode: boolean;
283
+ participants: any;
284
+ ephemeralDuration: number | undefined;
285
+ };
286
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/Socket/groups.js"],"names":[],"mappings":"AAMO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoLC;;;;;OAKG;;IAOH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA3DS,cAAR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgIX;AACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0EN"}
@@ -0,0 +1,348 @@
1
+ import { Boom } from '@hapi/boom';
2
+ import { proto } from '../../WAProto/index.js';
3
+ import { WAMessageAddressingMode, WAMessageStubType } from '../Types/index.js';
4
+ import { generateMessageIDV2, unixTimestampSeconds } from '../Utils/index.js';
5
+ import { getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString, isLidUser, isPnUser, jidEncode, jidNormalizedUser } from '../WABinary/index.js';
6
+ import { makeChatsSocket } from './chats.js';
7
+ export const makeGroupsSocket = (config) => {
8
+ const sock = makeChatsSocket(config);
9
+ const { authState, ev, query, upsertMessage } = sock;
10
+ const groupQuery = async (jid, type, content) => query({
11
+ tag: 'iq',
12
+ attrs: {
13
+ type,
14
+ xmlns: 'w:g2',
15
+ to: jid
16
+ },
17
+ content
18
+ });
19
+ const groupMetadata = async (jid) => {
20
+ const result = await groupQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
21
+ return extractGroupMetadata(result);
22
+ };
23
+ const groupFetchAllParticipating = async () => {
24
+ const result = await query({
25
+ tag: 'iq',
26
+ attrs: {
27
+ to: '@g.us',
28
+ xmlns: 'w:g2',
29
+ type: 'get'
30
+ },
31
+ content: [
32
+ {
33
+ tag: 'participating',
34
+ attrs: {},
35
+ content: [
36
+ { tag: 'participants', attrs: {} },
37
+ { tag: 'description', attrs: {} }
38
+ ]
39
+ }
40
+ ]
41
+ });
42
+ const data = {};
43
+ const groupsChild = getBinaryNodeChild(result, 'groups');
44
+ if (groupsChild) {
45
+ const groups = getBinaryNodeChildren(groupsChild, 'group');
46
+ for (const groupNode of groups) {
47
+ const meta = extractGroupMetadata({
48
+ tag: 'result',
49
+ attrs: {},
50
+ content: [groupNode]
51
+ });
52
+ data[meta.id] = meta;
53
+ }
54
+ }
55
+ // TODO: properly parse LID / PN DATA
56
+ sock.ev.emit('groups.update', Object.values(data));
57
+ return data;
58
+ };
59
+ sock.ws.on('CB:ib,,dirty', async (node) => {
60
+ const { attrs } = getBinaryNodeChild(node, 'dirty');
61
+ if (attrs.type !== 'groups') {
62
+ return;
63
+ }
64
+ await groupFetchAllParticipating();
65
+ await sock.cleanDirtyBits('groups');
66
+ });
67
+ return {
68
+ ...sock,
69
+ groupQuery,
70
+ groupMetadata,
71
+ groupCreate: async (subject, participants) => {
72
+ const key = generateMessageIDV2();
73
+ const result = await groupQuery('@g.us', 'set', [
74
+ {
75
+ tag: 'create',
76
+ attrs: {
77
+ subject,
78
+ key
79
+ },
80
+ content: participants.map(jid => ({
81
+ tag: 'participant',
82
+ attrs: { jid }
83
+ }))
84
+ }
85
+ ]);
86
+ return extractGroupMetadata(result);
87
+ },
88
+ groupLeave: async (id) => {
89
+ await groupQuery('@g.us', 'set', [
90
+ {
91
+ tag: 'leave',
92
+ attrs: {},
93
+ content: [{ tag: 'group', attrs: { id } }]
94
+ }
95
+ ]);
96
+ },
97
+ groupUpdateSubject: async (jid, subject) => {
98
+ await groupQuery(jid, 'set', [
99
+ {
100
+ tag: 'subject',
101
+ attrs: {},
102
+ content: Buffer.from(subject, 'utf-8')
103
+ }
104
+ ]);
105
+ },
106
+ groupRequestParticipantsList: async (jid) => {
107
+ const result = await groupQuery(jid, 'get', [
108
+ {
109
+ tag: 'membership_approval_requests',
110
+ attrs: {}
111
+ }
112
+ ]);
113
+ const node = getBinaryNodeChild(result, 'membership_approval_requests');
114
+ const participants = getBinaryNodeChildren(node, 'membership_approval_request');
115
+ return participants.map(v => v.attrs);
116
+ },
117
+ groupRequestParticipantsUpdate: async (jid, participants, action) => {
118
+ const result = await groupQuery(jid, 'set', [
119
+ {
120
+ tag: 'membership_requests_action',
121
+ attrs: {},
122
+ content: [
123
+ {
124
+ tag: action,
125
+ attrs: {},
126
+ content: participants.map(jid => ({
127
+ tag: 'participant',
128
+ attrs: { jid }
129
+ }))
130
+ }
131
+ ]
132
+ }
133
+ ]);
134
+ const node = getBinaryNodeChild(result, 'membership_requests_action');
135
+ const nodeAction = getBinaryNodeChild(node, action);
136
+ const participantsAffected = getBinaryNodeChildren(nodeAction, 'participant');
137
+ return participantsAffected.map(p => {
138
+ return { status: p.attrs.error || '200', jid: p.attrs.jid };
139
+ });
140
+ },
141
+ groupParticipantsUpdate: async (jid, participants, action) => {
142
+ const result = await groupQuery(jid, 'set', [
143
+ {
144
+ tag: action,
145
+ attrs: {},
146
+ content: participants.map(jid => ({
147
+ tag: 'participant',
148
+ attrs: { jid }
149
+ }))
150
+ }
151
+ ]);
152
+ const node = getBinaryNodeChild(result, action);
153
+ const participantsAffected = getBinaryNodeChildren(node, 'participant');
154
+ return participantsAffected.map(p => {
155
+ return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p };
156
+ });
157
+ },
158
+ groupUpdateDescription: async (jid, description) => {
159
+ const metadata = await groupMetadata(jid);
160
+ const prev = metadata.descId ?? null;
161
+ await groupQuery(jid, 'set', [
162
+ {
163
+ tag: 'description',
164
+ attrs: {
165
+ ...(description ? { id: generateMessageIDV2() } : { delete: 'true' }),
166
+ ...(prev ? { prev } : {})
167
+ },
168
+ content: description ? [{ tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }] : undefined
169
+ }
170
+ ]);
171
+ },
172
+ groupInviteCode: async (jid) => {
173
+ const result = await groupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
174
+ const inviteNode = getBinaryNodeChild(result, 'invite');
175
+ return inviteNode?.attrs.code;
176
+ },
177
+ groupRevokeInvite: async (jid) => {
178
+ const result = await groupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
179
+ const inviteNode = getBinaryNodeChild(result, 'invite');
180
+ return inviteNode?.attrs.code;
181
+ },
182
+ groupAcceptInvite: async (code) => {
183
+ const results = await groupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
184
+ const result = getBinaryNodeChild(results, 'group');
185
+ return result?.attrs.jid;
186
+ },
187
+ /**
188
+ * revoke a v4 invite for someone
189
+ * @param groupJid group jid
190
+ * @param invitedJid jid of person you invited
191
+ * @returns true if successful
192
+ */
193
+ groupRevokeInviteV4: async (groupJid, invitedJid) => {
194
+ const result = await groupQuery(groupJid, 'set', [
195
+ { tag: 'revoke', attrs: {}, content: [{ tag: 'participant', attrs: { jid: invitedJid } }] }
196
+ ]);
197
+ return !!result;
198
+ },
199
+ /**
200
+ * accept a GroupInviteMessage
201
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
202
+ * @param inviteMessage the message to accept
203
+ */
204
+ groupAcceptInviteV4: ev.createBufferedFunction(async (key, inviteMessage) => {
205
+ key = typeof key === 'string' ? { remoteJid: key } : key;
206
+ const results = await groupQuery(inviteMessage.groupJid, 'set', [
207
+ {
208
+ tag: 'accept',
209
+ attrs: {
210
+ code: inviteMessage.inviteCode,
211
+ expiration: inviteMessage.inviteExpiration.toString(),
212
+ admin: key.remoteJid
213
+ }
214
+ }
215
+ ]);
216
+ // if we have the full message key
217
+ // update the invite message to be expired
218
+ if (key.id) {
219
+ // create new invite message that is expired
220
+ inviteMessage = proto.Message.GroupInviteMessage.fromObject(inviteMessage);
221
+ inviteMessage.inviteExpiration = 0;
222
+ inviteMessage.inviteCode = '';
223
+ ev.emit('messages.update', [
224
+ {
225
+ key,
226
+ update: {
227
+ message: {
228
+ groupInviteMessage: inviteMessage
229
+ }
230
+ }
231
+ }
232
+ ]);
233
+ }
234
+ // generate the group add message
235
+ await upsertMessage({
236
+ key: {
237
+ remoteJid: inviteMessage.groupJid,
238
+ id: generateMessageIDV2(sock.user?.id),
239
+ fromMe: false,
240
+ participant: key.remoteJid
241
+ },
242
+ messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
243
+ messageStubParameters: [JSON.stringify(authState.creds.me)],
244
+ participant: key.remoteJid,
245
+ messageTimestamp: unixTimestampSeconds()
246
+ }, 'notify');
247
+ return results.attrs.from;
248
+ }),
249
+ groupGetInviteInfo: async (code) => {
250
+ const results = await groupQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
251
+ return extractGroupMetadata(results);
252
+ },
253
+ groupToggleEphemeral: async (jid, ephemeralExpiration) => {
254
+ const content = ephemeralExpiration
255
+ ? { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } }
256
+ : { tag: 'not_ephemeral', attrs: {} };
257
+ await groupQuery(jid, 'set', [content]);
258
+ },
259
+ groupSettingUpdate: async (jid, setting) => {
260
+ await groupQuery(jid, 'set', [{ tag: setting, attrs: {} }]);
261
+ },
262
+ groupMemberAddMode: async (jid, mode) => {
263
+ await groupQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }]);
264
+ },
265
+ groupJoinApprovalMode: async (jid, mode) => {
266
+ await groupQuery(jid, 'set', [
267
+ { tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'group_join', attrs: { state: mode } }] }
268
+ ]);
269
+ },
270
+ groupFetchAllParticipating
271
+ };
272
+ };
273
+ export const extractGroupMetadata = (result) => {
274
+ const group = getBinaryNodeChild(result, 'group');
275
+ if (!group) {
276
+ // Mirror WAWeb: surface server/client errors with their code+text instead of crashing.
277
+ const errorNode = getBinaryNodeChild(result, 'error');
278
+ if (errorNode) {
279
+ const code = errorNode.attrs.code ? +errorNode.attrs.code : 500;
280
+ const text = errorNode.attrs.text || 'group metadata query failed';
281
+ throw new Boom(text, { statusCode: code, data: errorNode });
282
+ }
283
+ throw new Boom('Invalid group metadata response: missing <group> node', { data: result });
284
+ }
285
+ if (!group.attrs.id) {
286
+ throw new Boom('Invalid group metadata response: missing group id', { data: group });
287
+ }
288
+ const descChild = getBinaryNodeChild(group, 'description');
289
+ let desc;
290
+ let descId;
291
+ let descOwner;
292
+ let descOwnerPn;
293
+ let descOwnerUsername;
294
+ let descTime;
295
+ if (descChild) {
296
+ desc = getBinaryNodeChildString(descChild, 'body');
297
+ descOwner = descChild.attrs.participant ? jidNormalizedUser(descChild.attrs.participant) : undefined;
298
+ descOwnerPn = descChild.attrs.participant_pn ? jidNormalizedUser(descChild.attrs.participant_pn) : undefined;
299
+ descOwnerUsername = descChild.attrs.participant_username || undefined;
300
+ descTime = +descChild.attrs.t;
301
+ descId = descChild.attrs.id;
302
+ }
303
+ const groupId = group.attrs.id.includes('@') ? group.attrs.id : jidEncode(group.attrs.id, 'g.us');
304
+ const eph = getBinaryNodeChild(group, 'ephemeral')?.attrs.expiration;
305
+ const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') === 'all_member_add';
306
+ const metadata = {
307
+ id: groupId,
308
+ notify: group.attrs.notify,
309
+ addressingMode: group.attrs.addressing_mode === 'lid' ? WAMessageAddressingMode.LID : WAMessageAddressingMode.PN,
310
+ subject: group.attrs.subject,
311
+ subjectOwner: group.attrs.s_o,
312
+ subjectOwnerPn: group.attrs.s_o_pn,
313
+ subjectOwnerUsername: group.attrs.s_o_username,
314
+ subjectTime: +group.attrs.s_t,
315
+ size: group.attrs.size ? +group.attrs.size : getBinaryNodeChildren(group, 'participant').length,
316
+ creation: +group.attrs.creation,
317
+ owner: group.attrs.creator ? jidNormalizedUser(group.attrs.creator) : undefined,
318
+ ownerPn: group.attrs.creator_pn ? jidNormalizedUser(group.attrs.creator_pn) : undefined,
319
+ ownerUsername: group.attrs.creator_username || undefined,
320
+ owner_country_code: group.attrs.creator_country_code,
321
+ desc,
322
+ descId,
323
+ descOwner,
324
+ descOwnerPn,
325
+ descOwnerUsername,
326
+ descTime,
327
+ linkedParent: getBinaryNodeChild(group, 'linked_parent')?.attrs.jid || undefined,
328
+ restrict: !!getBinaryNodeChild(group, 'locked'),
329
+ announce: !!getBinaryNodeChild(group, 'announcement'),
330
+ isCommunity: !!getBinaryNodeChild(group, 'parent'),
331
+ isCommunityAnnounce: !!getBinaryNodeChild(group, 'default_sub_group'),
332
+ joinApprovalMode: !!getBinaryNodeChild(group, 'membership_approval_mode'),
333
+ memberAddMode,
334
+ participants: getBinaryNodeChildren(group, 'participant').map(({ attrs }) => {
335
+ // TODO: Store LID MAPPINGS
336
+ return {
337
+ id: attrs.jid,
338
+ phoneNumber: isLidUser(attrs.jid) && isPnUser(attrs.phone_number) ? attrs.phone_number : undefined,
339
+ lid: isPnUser(attrs.jid) && isLidUser(attrs.lid) ? attrs.lid : undefined,
340
+ username: attrs.participant_username || attrs.username || undefined,
341
+ admin: (attrs.type || null)
342
+ };
343
+ }),
344
+ ephemeralDuration: eph ? +eph : undefined
345
+ };
346
+ return metadata;
347
+ };
348
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/Socket/groups.js"],"names":[],"mappings":"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"}