@neelegirl/baileys 1.5.2 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/README.md +26 -18
  2. package/WAProto/GenerateStatics.sh +3 -0
  3. package/WAProto/WAProto.proto +291 -665
  4. package/WAProto/fix-imports.js +29 -0
  5. package/WAProto/index.d.ts +2297 -48040
  6. package/WAProto/index.js +45500 -140101
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/index.d.ts +58 -64
  9. package/lib/Defaults/index.d.ts.map +1 -0
  10. package/lib/Defaults/index.js +74 -96
  11. package/lib/Defaults/index.js.map +1 -0
  12. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  13. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  14. package/lib/Signal/Group/ciphertext-message.js +12 -0
  15. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  16. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  17. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  18. package/lib/Signal/Group/group-session-builder.js +30 -0
  19. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  20. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  21. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  22. package/lib/Signal/Group/group_cipher.js +82 -0
  23. package/lib/Signal/Group/group_cipher.js.map +1 -0
  24. package/lib/Signal/Group/index.d.ts +12 -0
  25. package/lib/Signal/Group/index.d.ts.map +1 -0
  26. package/lib/Signal/Group/index.js +12 -0
  27. package/lib/Signal/Group/index.js.map +1 -0
  28. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  29. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  30. package/lib/Signal/Group/keyhelper.js +18 -0
  31. package/lib/Signal/Group/keyhelper.js.map +1 -0
  32. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  33. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  34. package/lib/Signal/Group/sender-chain-key.js +26 -0
  35. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  36. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  38. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  40. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  42. package/lib/Signal/Group/sender-key-message.js +66 -0
  43. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  44. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  46. package/lib/Signal/Group/sender-key-name.js +48 -0
  47. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  48. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  49. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  50. package/lib/Signal/Group/sender-key-record.js +41 -0
  51. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  52. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  53. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  54. package/lib/Signal/Group/sender-key-state.js +84 -0
  55. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  56. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  57. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  58. package/lib/Signal/{WASignalGroup/sender_message_key.js → Group/sender-message-key.js} +3 -16
  59. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  60. package/lib/Signal/libsignal.d.ts +5 -4
  61. package/lib/Signal/libsignal.d.ts.map +1 -0
  62. package/lib/Signal/libsignal.js +292 -112
  63. package/lib/Signal/libsignal.js.map +1 -0
  64. package/lib/Signal/lid-mapping.d.ts +23 -0
  65. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  66. package/lib/Signal/lid-mapping.js +171 -0
  67. package/lib/Signal/lid-mapping.js.map +1 -0
  68. package/lib/Socket/Client/index.d.ts +3 -2
  69. package/lib/Socket/Client/index.d.ts.map +1 -0
  70. package/lib/Socket/Client/index.js +3 -22
  71. package/lib/Socket/Client/index.js.map +1 -0
  72. package/lib/Socket/Client/types.d.ts +15 -15
  73. package/lib/Socket/Client/types.d.ts.map +1 -0
  74. package/lib/Socket/Client/types.js +8 -15
  75. package/lib/Socket/Client/types.js.map +1 -0
  76. package/lib/Socket/Client/websocket.d.ts +12 -12
  77. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  78. package/lib/Socket/Client/websocket.js +24 -36
  79. package/lib/Socket/Client/websocket.js.map +1 -0
  80. package/lib/Socket/business.d.ts +178 -177
  81. package/lib/Socket/business.d.ts.map +1 -0
  82. package/lib/Socket/business.js +179 -71
  83. package/lib/Socket/business.js.map +1 -0
  84. package/lib/Socket/chats.d.ts +93 -93
  85. package/lib/Socket/chats.d.ts.map +1 -0
  86. package/lib/Socket/chats.js +474 -625
  87. package/lib/Socket/chats.js.map +1 -0
  88. package/lib/Socket/communities.d.ts +83 -62
  89. package/lib/Socket/communities.d.ts.map +1 -0
  90. package/lib/Socket/communities.js +412 -414
  91. package/lib/Socket/communities.js.map +1 -0
  92. package/lib/Socket/groups.d.ts +118 -112
  93. package/lib/Socket/groups.d.ts.map +1 -0
  94. package/lib/Socket/groups.js +146 -171
  95. package/lib/Socket/groups.js.map +1 -0
  96. package/lib/Socket/index.d.ts +222 -182
  97. package/lib/Socket/index.d.ts.map +1 -0
  98. package/lib/Socket/index.js +12 -17
  99. package/lib/Socket/index.js.map +1 -0
  100. package/lib/Socket/messages-recv.d.ts +165 -169
  101. package/lib/Socket/messages-recv.d.ts.map +1 -0
  102. package/lib/Socket/messages-recv.js +1185 -1721
  103. package/lib/Socket/messages-recv.js.map +1 -0
  104. package/lib/Socket/messages-send.d.ts +161 -159
  105. package/lib/Socket/messages-send.d.ts.map +1 -0
  106. package/lib/Socket/messages-send.js +650 -991
  107. package/lib/Socket/messages-send.js.map +1 -0
  108. package/lib/Socket/mex.d.ts +1 -0
  109. package/lib/Socket/mex.d.ts.map +1 -0
  110. package/lib/Socket/mex.js +4 -9
  111. package/lib/Socket/mex.js.map +1 -0
  112. package/lib/Socket/newsletter.d.ts +139 -139
  113. package/lib/Socket/newsletter.d.ts.map +1 -0
  114. package/lib/Socket/newsletter.js +153 -258
  115. package/lib/Socket/newsletter.js.map +1 -0
  116. package/lib/Socket/socket.d.ts +42 -36
  117. package/lib/Socket/socket.d.ts.map +1 -0
  118. package/lib/Socket/socket.js +623 -507
  119. package/lib/Socket/socket.js.map +1 -0
  120. package/lib/Types/Auth.d.ts +87 -96
  121. package/lib/Types/Auth.d.ts.map +1 -0
  122. package/lib/Types/Auth.js +2 -3
  123. package/lib/Types/Auth.js.map +1 -0
  124. package/lib/Types/Bussines.d.ts +25 -0
  125. package/lib/Types/Bussines.d.ts.map +1 -0
  126. package/lib/Types/Bussines.js +2 -0
  127. package/lib/Types/Bussines.js.map +1 -0
  128. package/lib/Types/Call.d.ts +13 -13
  129. package/lib/Types/Call.d.ts.map +1 -0
  130. package/lib/Types/Call.js +2 -3
  131. package/lib/Types/Call.js.map +1 -0
  132. package/lib/Types/Chat.d.ts +79 -94
  133. package/lib/Types/Chat.d.ts.map +1 -0
  134. package/lib/Types/Chat.js +8 -9
  135. package/lib/Types/Chat.js.map +1 -0
  136. package/lib/Types/Contact.d.ts +13 -9
  137. package/lib/Types/Contact.d.ts.map +1 -0
  138. package/lib/Types/Contact.js +2 -3
  139. package/lib/Types/Contact.js.map +1 -0
  140. package/lib/Types/Events.d.ts +152 -179
  141. package/lib/Types/Events.d.ts.map +1 -0
  142. package/lib/Types/Events.js +2 -3
  143. package/lib/Types/Events.js.map +1 -0
  144. package/lib/Types/GroupMetadata.d.ts +49 -48
  145. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  146. package/lib/Types/GroupMetadata.js +2 -3
  147. package/lib/Types/GroupMetadata.js.map +1 -0
  148. package/lib/Types/Label.d.ts +13 -14
  149. package/lib/Types/Label.d.ts.map +1 -0
  150. package/lib/Types/Label.js +24 -30
  151. package/lib/Types/Label.js.map +1 -0
  152. package/lib/Types/LabelAssociation.d.ts +15 -20
  153. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  154. package/lib/Types/LabelAssociation.js +6 -12
  155. package/lib/Types/LabelAssociation.js.map +1 -0
  156. package/lib/Types/Message.d.ts +234 -404
  157. package/lib/Types/Message.d.ts.map +1 -0
  158. package/lib/Types/Message.js +11 -13
  159. package/lib/Types/Message.js.map +1 -0
  160. package/lib/Types/Newsletter.d.ts +130 -104
  161. package/lib/Types/Newsletter.d.ts.map +1 -0
  162. package/lib/Types/Newsletter.js +31 -40
  163. package/lib/Types/Newsletter.js.map +1 -0
  164. package/lib/Types/Product.d.ts +58 -71
  165. package/lib/Types/Product.d.ts.map +1 -0
  166. package/lib/Types/Product.js +2 -3
  167. package/lib/Types/Product.js.map +1 -0
  168. package/lib/Types/Signal.d.ts +63 -55
  169. package/lib/Types/Signal.d.ts.map +1 -0
  170. package/lib/Types/Signal.js +2 -3
  171. package/lib/Types/Signal.js.map +1 -0
  172. package/lib/Types/Socket.d.ts +78 -65
  173. package/lib/Types/Socket.d.ts.map +1 -0
  174. package/lib/Types/Socket.js +3 -3
  175. package/lib/Types/Socket.js.map +1 -0
  176. package/lib/Types/State.d.ts +17 -19
  177. package/lib/Types/State.d.ts.map +1 -0
  178. package/lib/Types/State.js +13 -14
  179. package/lib/Types/State.js.map +1 -0
  180. package/lib/Types/USync.d.ts +8 -8
  181. package/lib/Types/USync.d.ts.map +1 -0
  182. package/lib/Types/USync.js +2 -3
  183. package/lib/Types/USync.js.map +1 -0
  184. package/lib/Types/index.d.ts +47 -61
  185. package/lib/Types/index.d.ts.map +1 -0
  186. package/lib/Types/index.js +26 -48
  187. package/lib/Types/index.js.map +1 -0
  188. package/lib/Utils/auth-utils.d.ts +8 -10
  189. package/lib/Utils/auth-utils.d.ts.map +1 -0
  190. package/lib/Utils/auth-utils.js +206 -154
  191. package/lib/Utils/auth-utils.js.map +1 -0
  192. package/lib/Utils/baileys-event-stream.d.ts +6 -7
  193. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  194. package/lib/Utils/baileys-event-stream.js +29 -43
  195. package/lib/Utils/baileys-event-stream.js.map +1 -0
  196. package/lib/Utils/browser-utils.d.ts +4 -0
  197. package/lib/Utils/browser-utils.d.ts.map +1 -0
  198. package/lib/Utils/browser-utils.js +28 -0
  199. package/lib/Utils/browser-utils.js.map +1 -0
  200. package/lib/Utils/business.d.ts +14 -20
  201. package/lib/Utils/business.d.ts.map +1 -0
  202. package/lib/Utils/business.js +110 -134
  203. package/lib/Utils/business.js.map +1 -0
  204. package/lib/Utils/chat-utils.d.ts +57 -69
  205. package/lib/Utils/chat-utils.d.ts.map +1 -0
  206. package/lib/Utils/chat-utils.js +362 -380
  207. package/lib/Utils/chat-utils.js.map +1 -0
  208. package/lib/Utils/crypto.d.ts +30 -45
  209. package/lib/Utils/crypto.d.ts.map +1 -0
  210. package/lib/Utils/crypto.js +141 -178
  211. package/lib/Utils/crypto.js.map +1 -0
  212. package/lib/Utils/decode-wa-message.d.ts +42 -35
  213. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  214. package/lib/Utils/decode-wa-message.js +176 -150
  215. package/lib/Utils/decode-wa-message.js.map +1 -0
  216. package/lib/Utils/event-buffer.d.ts +12 -17
  217. package/lib/Utils/event-buffer.d.ts.map +1 -0
  218. package/lib/Utils/event-buffer.js +269 -286
  219. package/lib/Utils/event-buffer.js.map +1 -0
  220. package/lib/Utils/generics.d.ts +60 -99
  221. package/lib/Utils/generics.d.ts.map +1 -0
  222. package/lib/Utils/generics.js +244 -487
  223. package/lib/Utils/generics.js.map +1 -0
  224. package/lib/Utils/history.d.ts +18 -22
  225. package/lib/Utils/history.d.ts.map +1 -0
  226. package/lib/Utils/history.js +54 -80
  227. package/lib/Utils/history.js.map +1 -0
  228. package/lib/Utils/index.d.ts +20 -19
  229. package/lib/Utils/index.d.ts.map +1 -0
  230. package/lib/Utils/index.js +19 -39
  231. package/lib/Utils/index.js.map +1 -0
  232. package/lib/Utils/link-preview.d.ts +12 -14
  233. package/lib/Utils/link-preview.d.ts.map +1 -0
  234. package/lib/Utils/link-preview.js +40 -75
  235. package/lib/Utils/link-preview.js.map +1 -0
  236. package/lib/Utils/logger.d.ts +10 -11
  237. package/lib/Utils/logger.d.ts.map +1 -0
  238. package/lib/Utils/logger.js +3 -7
  239. package/lib/Utils/logger.js.map +1 -0
  240. package/lib/Utils/lt-hash.d.ts +12 -13
  241. package/lib/Utils/lt-hash.d.ts.map +1 -0
  242. package/lib/Utils/lt-hash.js +27 -37
  243. package/lib/Utils/lt-hash.js.map +1 -0
  244. package/lib/Utils/make-mutex.d.ts +6 -7
  245. package/lib/Utils/make-mutex.d.ts.map +1 -0
  246. package/lib/Utils/make-mutex.js +20 -29
  247. package/lib/Utils/make-mutex.js.map +1 -0
  248. package/lib/Utils/message-retry-manager.d.ts +82 -0
  249. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  250. package/lib/Utils/message-retry-manager.js +149 -0
  251. package/lib/Utils/message-retry-manager.js.map +1 -0
  252. package/lib/Utils/messages-media.d.ts +87 -102
  253. package/lib/Utils/messages-media.d.ts.map +1 -0
  254. package/lib/Utils/messages-media.js +427 -570
  255. package/lib/Utils/messages-media.js.map +1 -0
  256. package/lib/Utils/messages.d.ts +37 -64
  257. package/lib/Utils/messages.d.ts.map +1 -0
  258. package/lib/Utils/messages.js +511 -1270
  259. package/lib/Utils/messages.js.map +1 -0
  260. package/lib/Utils/noise-handler.d.ts +18 -18
  261. package/lib/Utils/noise-handler.d.ts.map +1 -0
  262. package/lib/Utils/noise-handler.js +101 -109
  263. package/lib/Utils/noise-handler.js.map +1 -0
  264. package/lib/Utils/pre-key-manager.d.ts +28 -0
  265. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  266. package/lib/Utils/pre-key-manager.js +106 -0
  267. package/lib/Utils/pre-key-manager.js.map +1 -0
  268. package/lib/Utils/process-message.d.ts +25 -32
  269. package/lib/Utils/process-message.d.ts.map +1 -0
  270. package/lib/Utils/process-message.js +266 -281
  271. package/lib/Utils/process-message.js.map +1 -0
  272. package/lib/Utils/signal.d.ts +24 -32
  273. package/lib/Utils/signal.d.ts.map +1 -0
  274. package/lib/Utils/signal.js +98 -105
  275. package/lib/Utils/signal.js.map +1 -0
  276. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -10
  277. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  278. package/lib/Utils/use-multi-file-auth-state.js +69 -186
  279. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  280. package/lib/Utils/validate-connection.d.ts +11 -13
  281. package/lib/Utils/validate-connection.d.ts.map +1 -0
  282. package/lib/Utils/validate-connection.js +124 -116
  283. package/lib/Utils/validate-connection.js.map +1 -0
  284. package/lib/WABinary/constants.d.ts +25 -27
  285. package/lib/WABinary/constants.d.ts.map +1 -0
  286. package/lib/WABinary/constants.js +1277 -1292
  287. package/lib/WABinary/constants.js.map +1 -0
  288. package/lib/WABinary/decode.d.ts +7 -9
  289. package/lib/WABinary/decode.d.ts.map +1 -0
  290. package/lib/WABinary/decode.js +139 -189
  291. package/lib/WABinary/decode.js.map +1 -0
  292. package/lib/WABinary/encode.d.ts +3 -3
  293. package/lib/WABinary/encode.d.ts.map +1 -0
  294. package/lib/WABinary/encode.js +105 -154
  295. package/lib/WABinary/encode.js.map +1 -0
  296. package/lib/WABinary/generic-utils.d.ts +14 -27
  297. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  298. package/lib/WABinary/generic-utils.js +62 -102
  299. package/lib/WABinary/generic-utils.js.map +1 -0
  300. package/lib/WABinary/index.d.ts +6 -5
  301. package/lib/WABinary/index.d.ts.map +1 -0
  302. package/lib/WABinary/index.js +6 -25
  303. package/lib/WABinary/index.js.map +1 -0
  304. package/lib/WABinary/jid-utils.d.ts +41 -46
  305. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  306. package/lib/WABinary/jid-utils.js +84 -80
  307. package/lib/WABinary/jid-utils.js.map +1 -0
  308. package/lib/WABinary/types.d.ts +10 -13
  309. package/lib/WABinary/types.d.ts.map +1 -0
  310. package/lib/WABinary/types.js +2 -3
  311. package/lib/WABinary/types.js.map +1 -0
  312. package/lib/WAM/BinaryInfo.d.ts +8 -15
  313. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  314. package/lib/WAM/BinaryInfo.js +7 -14
  315. package/lib/WAM/BinaryInfo.js.map +1 -0
  316. package/lib/WAM/constants.d.ts +30 -37
  317. package/lib/WAM/constants.d.ts.map +1 -0
  318. package/lib/WAM/constants.js +19193 -11711
  319. package/lib/WAM/constants.js.map +1 -0
  320. package/lib/WAM/encode.d.ts +3 -3
  321. package/lib/WAM/encode.d.ts.map +1 -0
  322. package/lib/WAM/encode.js +95 -110
  323. package/lib/WAM/encode.js.map +1 -0
  324. package/lib/WAM/index.d.ts +4 -3
  325. package/lib/WAM/index.d.ts.map +1 -0
  326. package/lib/WAM/index.js +4 -23
  327. package/lib/WAM/index.js.map +1 -0
  328. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  329. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  330. package/lib/WAUSync/Protocols/USyncContactProtocol.js +12 -19
  331. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  332. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +19 -22
  333. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  334. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +18 -26
  335. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  336. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +11 -12
  337. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  338. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -20
  339. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  340. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +11 -12
  341. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  342. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +16 -24
  343. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  344. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  345. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  346. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  347. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  348. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  349. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  350. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  351. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  352. package/lib/WAUSync/Protocols/index.d.ts +5 -6
  353. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  354. package/lib/WAUSync/Protocols/index.js +5 -26
  355. package/lib/WAUSync/Protocols/index.js.map +1 -0
  356. package/lib/WAUSync/USyncQuery.d.ts +26 -28
  357. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  358. package/lib/WAUSync/USyncQuery.js +64 -62
  359. package/lib/WAUSync/USyncQuery.js.map +1 -0
  360. package/lib/WAUSync/USyncUser.d.ts +11 -10
  361. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  362. package/lib/WAUSync/USyncUser.js +12 -19
  363. package/lib/WAUSync/USyncUser.js.map +1 -0
  364. package/lib/WAUSync/index.d.ts +4 -3
  365. package/lib/WAUSync/index.d.ts.map +1 -0
  366. package/lib/WAUSync/index.js +4 -23
  367. package/lib/WAUSync/index.js.map +1 -0
  368. package/lib/index.d.ts +10 -11
  369. package/lib/index.d.ts.map +1 -0
  370. package/lib/index.js +11 -33
  371. package/lib/index.js.map +1 -0
  372. package/package.json +48 -43
  373. package/lib/Defaults/baileys-version.json +0 -3
  374. package/lib/Defaults/phonenumber-mcc.json +0 -223
  375. package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
  376. package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
  377. package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
  378. package/lib/Signal/WASignalGroup/group.proto +0 -42
  379. package/lib/Signal/WASignalGroup/group_cipher.js +0 -120
  380. package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
  381. package/lib/Signal/WASignalGroup/index.js +0 -6
  382. package/lib/Signal/WASignalGroup/keyhelper.js +0 -21
  383. package/lib/Signal/WASignalGroup/protobufs.js +0 -3
  384. package/lib/Signal/WASignalGroup/queue_job.js +0 -69
  385. package/lib/Signal/WASignalGroup/readme.md +0 -6
  386. package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
  387. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
  388. package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
  389. package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
  390. package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
  391. package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
  392. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  393. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  394. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  395. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  396. package/lib/Socket/registration.d.ts +0 -266
  397. package/lib/Socket/registration.js +0 -166
  398. package/lib/Socket/usync.d.ts +0 -37
  399. package/lib/Socket/usync.js +0 -83
  400. package/lib/Store/index.d.ts +0 -4
  401. package/lib/Store/index.js +0 -24
  402. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  403. package/lib/Store/make-cache-manager-store.js +0 -90
  404. package/lib/Store/make-in-memory-store.d.ts +0 -123
  405. package/lib/Store/make-in-memory-store.js +0 -429
  406. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  407. package/lib/Store/make-ordered-dictionary.js +0 -86
  408. package/lib/Store/object-repository.d.ts +0 -10
  409. package/lib/Store/object-repository.js +0 -31
  410. package/lib/Types/MexUpdates.d.ts +0 -9
  411. package/lib/Types/MexUpdates.js +0 -18
  412. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  413. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  414. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  415. package/lib/Utils/use-single-file-auth-state.js +0 -80
  416. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  417. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
  418. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -9
  419. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -30
@@ -1,433 +1,431 @@
1
- "use strict"
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- }
5
- Object.defineProperty(exports, "__esModule", { value: true })
6
-
7
- const WAProto_1 = require("../../WAProto")
8
-
9
- const business_1 = require("./business.js")
10
- const { WAMessageStubType } = require("../Types/index.js")
11
- const {
12
- generateMessageID,
13
- generateMessageIDV2,
14
- unixTimestampSeconds,
15
- } = require("../Utils/index.js");
16
- const logger_1 = __importDefault(require("../Utils/logger"));
17
- const {
18
- getBinaryNodeChild,
19
- getBinaryNodeChildren,
20
- getBinaryNodeChildString,
21
- jidEncode,
22
- jidNormalizedUser,
23
- } = require("../WABinary/index.js")
24
-
25
-
26
- const makeCommunitiesSocket = (config) => {
27
- const Neele = business_1.makeBusinessSocket(config);
28
- const { authState, ev, query, upsertMessage } = Neele;
29
- const communityQuery = async (jid, type, content) =>
30
- query({
31
- tag: "iq",
32
- attrs: {
33
- type,
34
- xmlns: "w:g2",
35
- to: jid,
36
- },
37
- content,
38
- });
39
- const communityMetadata = async (jid) => {
40
- const result = await communityQuery(jid, "get", [
41
- { tag: "query", attrs: { request: "interactive" } },
42
- ]);
43
- return extractCommunityMetadata(result);
44
- };
45
- const communityFetchAllParticipating = async () => {
46
- const result = await query({
47
- tag: "iq",
48
- attrs: {
49
- to: "@g.us",
50
- xmlns: "w:g2",
51
- type: "get",
52
- },
53
- content: [
54
- {
55
- tag: "participating",
56
- attrs: {},
57
- content: [
58
- { tag: "participants", attrs: {} },
59
- { tag: "description", attrs: {} },
60
- ],
1
+ import { proto } from '../../WAProto/index.js';
2
+ import { WAMessageStubType } from '../Types/index.js';
3
+ import { generateMessageID, generateMessageIDV2, unixTimestampSeconds } from '../Utils/index.js';
4
+ import logger from '../Utils/logger.js';
5
+ import { getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString, jidEncode, jidNormalizedUser } from '../WABinary/index.js';
6
+ import { makeBusinessSocket } from './business.js';
7
+ export const makeCommunitiesSocket = (config) => {
8
+ const sock = makeBusinessSocket(config);
9
+ const { authState, ev, query, upsertMessage } = sock;
10
+ const communityQuery = async (jid, type, content) => query({
11
+ tag: 'iq',
12
+ attrs: {
13
+ type,
14
+ xmlns: 'w:g2',
15
+ to: jid
61
16
  },
62
- ],
17
+ content
63
18
  });
64
- const data = {};
65
- const communitiesChild = getBinaryNodeChild(result, "communities");
66
- if (communitiesChild) {
67
- const communities = getBinaryNodeChildren(communitiesChild, "community");
68
- for (const communityNode of communities) {
69
- const meta = extractCommunityMetadata({
70
- tag: "result",
71
- attrs: {},
72
- content: [communityNode],
19
+ const communityMetadata = async (jid) => {
20
+ const result = await communityQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
21
+ return extractCommunityMetadata(result);
22
+ };
23
+ const communityFetchAllParticipating = 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
+ ]
73
41
  });
74
- data[meta.id] = meta;
75
- }
76
- }
77
- Neele.ev.emit("groups.update", Object.values(data));
78
- return data;
79
- };
80
- async function parseGroupResult(node) {
81
- logger_1.default.info({ node }, "parseGroupResult");
82
- const groupNode = getBinaryNodeChild(node, "group");
83
- if (groupNode) {
84
- try {
85
- logger_1.default.info({ groupNode }, "groupNode");
86
- const metadata = await Neele.groupMetadata(
87
- `${groupNode.attrs.id}@g.us`
88
- );
89
- return metadata ? metadata : Optional.empty();
90
- } catch (error) {
91
- console.error("Error parsing group metadata:", error);
42
+ const data = {};
43
+ const communitiesChild = getBinaryNodeChild(result, 'communities');
44
+ if (communitiesChild) {
45
+ const communities = getBinaryNodeChildren(communitiesChild, 'community');
46
+ for (const communityNode of communities) {
47
+ const meta = extractCommunityMetadata({
48
+ tag: 'result',
49
+ attrs: {},
50
+ content: [communityNode]
51
+ });
52
+ data[meta.id] = meta;
53
+ }
54
+ }
55
+ sock.ev.emit('groups.update', Object.values(data));
56
+ return data;
57
+ };
58
+ async function parseGroupResult(node) {
59
+ logger.info({ node }, 'parseGroupResult');
60
+ const groupNode = getBinaryNodeChild(node, 'group');
61
+ if (groupNode) {
62
+ try {
63
+ logger.info({ groupNode }, 'groupNode');
64
+ const metadata = await sock.groupMetadata(`${groupNode.attrs.id}@g.us`);
65
+ return metadata ? metadata : Optional.empty();
66
+ }
67
+ catch (error) {
68
+ console.error('Error parsing group metadata:', error);
69
+ return Optional.empty();
70
+ }
71
+ }
92
72
  return Optional.empty();
93
- }
94
- }
95
- return Optional.empty();
96
- }
97
- const Optional = {
98
- empty: () => null,
99
- of: (value) => (value !== null ? { value } : null),
100
- };
101
- Neele.ws.on("CB:ib,,dirty", async (node) => {
102
- const { attrs } = getBinaryNodeChild(node, "dirty");
103
- if (attrs.type !== "communities") {
104
- return;
105
73
  }
106
- await communityFetchAllParticipating();
107
- await Neele.cleanDirtyBits("groups");
108
- });
109
- return {
110
- ...Neele,
111
- communityMetadata,
112
- communityCreate: async (subject, body) => {
113
- const descriptionId = generateMessageID().substring(0, 12);
114
- const result = await communityQuery("@g.us", "set", [
115
- {
116
- tag: "create",
117
- attrs: { subject },
118
- content: [
119
- {
120
- tag: "description",
121
- attrs: { id: descriptionId },
122
- content: [
74
+ const Optional = {
75
+ empty: () => null,
76
+ of: (value) => (value !== null ? { value } : null)
77
+ };
78
+ sock.ws.on('CB:ib,,dirty', async (node) => {
79
+ const { attrs } = getBinaryNodeChild(node, 'dirty');
80
+ if (attrs.type !== 'communities') {
81
+ return;
82
+ }
83
+ await communityFetchAllParticipating();
84
+ await sock.cleanDirtyBits('groups');
85
+ });
86
+ return {
87
+ ...sock,
88
+ communityMetadata,
89
+ communityCreate: async (subject, body) => {
90
+ const descriptionId = generateMessageID().substring(0, 12);
91
+ const result = await communityQuery('@g.us', 'set', [
123
92
  {
124
- tag: "body",
125
- attrs: {},
126
- content: Buffer.from(body || "", "utf-8"),
127
- },
128
- ],
129
- },
130
- {
131
- tag: "parent",
132
- attrs: { default_membership_approval_mode: "request_required" },
133
- },
134
- {
135
- tag: "allow_non_admin_sub_group_creation",
136
- attrs: {},
137
- },
138
- {
139
- tag: "create_general_chat",
140
- attrs: {},
141
- },
142
- ],
93
+ tag: 'create',
94
+ attrs: { subject },
95
+ content: [
96
+ {
97
+ tag: 'description',
98
+ attrs: { id: descriptionId },
99
+ content: [
100
+ {
101
+ tag: 'body',
102
+ attrs: {},
103
+ content: Buffer.from(body || '', 'utf-8')
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ tag: 'parent',
109
+ attrs: { default_membership_approval_mode: 'request_required' }
110
+ },
111
+ {
112
+ tag: 'allow_non_admin_sub_group_creation',
113
+ attrs: {}
114
+ },
115
+ {
116
+ tag: 'create_general_chat',
117
+ attrs: {}
118
+ }
119
+ ]
120
+ }
121
+ ]);
122
+ return await parseGroupResult(result);
143
123
  },
144
- ]);
145
- return await parseGroupResult(result);
146
- },
147
- communityLeave: async (id) => {
148
- await communityQuery("@g.us", "set", [
149
- {
150
- tag: "leave",
151
- attrs: {},
152
- content: [{ tag: "community", attrs: { id } }],
124
+ communityCreateGroup: async (subject, participants, parentCommunityJid) => {
125
+ const key = generateMessageIDV2();
126
+ const result = await communityQuery('@g.us', 'set', [
127
+ {
128
+ tag: 'create',
129
+ attrs: {
130
+ subject,
131
+ key
132
+ },
133
+ content: [
134
+ ...participants.map(jid => ({
135
+ tag: 'participant',
136
+ attrs: { jid }
137
+ })),
138
+ { tag: 'linked_parent', attrs: { jid: parentCommunityJid } }
139
+ ]
140
+ }
141
+ ]);
142
+ return await parseGroupResult(result);
153
143
  },
154
- ]);
155
- },
156
- communityUpdateSubject: async (jid, subject) => {
157
- await communityQuery(jid, "set", [
158
- {
159
- tag: "subject",
160
- attrs: {},
161
- content: Buffer.from(subject, "utf-8"),
144
+ communityLeave: async (id) => {
145
+ await communityQuery('@g.us', 'set', [
146
+ {
147
+ tag: 'leave',
148
+ attrs: {},
149
+ content: [{ tag: 'community', attrs: { id } }]
150
+ }
151
+ ]);
162
152
  },
163
- ]);
164
- },
165
- communityRequestParticipantsList: async (jid) => {
166
- const result = await communityQuery(jid, "get", [
167
- {
168
- tag: "membership_approval_requests",
169
- attrs: {},
153
+ communityUpdateSubject: async (jid, subject) => {
154
+ await communityQuery(jid, 'set', [
155
+ {
156
+ tag: 'subject',
157
+ attrs: {},
158
+ content: Buffer.from(subject, 'utf-8')
159
+ }
160
+ ]);
170
161
  },
171
- ]);
172
- const node = getBinaryNodeChild(result, "membership_approval_requests");
173
- const participants = getBinaryNodeChildren(
174
- node,
175
- "membership_approval_request"
176
- );
177
- return participants.map((v) => v.attrs);
178
- },
179
- communityRequestParticipantsUpdate: async (jid, participants, action) => {
180
- const result = await communityQuery(jid, "set", [
181
- {
182
- tag: "membership_requests_action",
183
- attrs: {},
184
- content: [
185
- {
186
- tag: action,
187
- attrs: {},
188
- content: participants.map((jid) => ({
189
- tag: "participant",
190
- attrs: { jid },
191
- })),
192
- },
193
- ],
162
+ communityLinkGroup: async (groupJid, parentCommunityJid) => {
163
+ await communityQuery(parentCommunityJid, 'set', [
164
+ {
165
+ tag: 'links',
166
+ attrs: {},
167
+ content: [
168
+ {
169
+ tag: 'link',
170
+ attrs: { link_type: 'sub_group' },
171
+ content: [{ tag: 'group', attrs: { jid: groupJid } }]
172
+ }
173
+ ]
174
+ }
175
+ ]);
176
+ },
177
+ communityUnlinkGroup: async (groupJid, parentCommunityJid) => {
178
+ await communityQuery(parentCommunityJid, 'set', [
179
+ {
180
+ tag: 'unlink',
181
+ attrs: { unlink_type: 'sub_group' },
182
+ content: [{ tag: 'group', attrs: { jid: groupJid } }]
183
+ }
184
+ ]);
194
185
  },
195
- ]);
196
- const node = getBinaryNodeChild(result, "membership_requests_action");
197
- const nodeAction = getBinaryNodeChild(node, action);
198
- const participantsAffected = getBinaryNodeChildren(
199
- nodeAction,
200
- "participant"
201
- );
202
- return participantsAffected.map((p) => {
203
- return { status: p.attrs.error || "200", jid: p.attrs.jid };
204
- });
205
- },
206
- communityParticipantsUpdate: async (jid, participants, action) => {
207
- const result = await communityQuery(jid, "set", [
208
- {
209
- tag: action,
210
- attrs: {},
211
- content: participants.map((jid) => ({
212
- tag: "participant",
213
- attrs: { jid },
214
- })),
186
+ communityFetchLinkedGroups: async (jid) => {
187
+ let communityJid = jid;
188
+ let isCommunity = false;
189
+ // Try to determine if it is a subgroup or a community
190
+ const metadata = await sock.groupMetadata(jid);
191
+ if (metadata.linkedParent) {
192
+ // It is a subgroup, get the community jid
193
+ communityJid = metadata.linkedParent;
194
+ }
195
+ else {
196
+ // It is a community
197
+ isCommunity = true;
198
+ }
199
+ // Fetch all subgroups of the community
200
+ const result = await communityQuery(communityJid, 'get', [{ tag: 'sub_groups', attrs: {} }]);
201
+ const linkedGroupsData = [];
202
+ const subGroupsNode = getBinaryNodeChild(result, 'sub_groups');
203
+ if (subGroupsNode) {
204
+ const groupNodes = getBinaryNodeChildren(subGroupsNode, 'group');
205
+ for (const groupNode of groupNodes) {
206
+ linkedGroupsData.push({
207
+ id: groupNode.attrs.id ? jidEncode(groupNode.attrs.id, 'g.us') : undefined,
208
+ subject: groupNode.attrs.subject || '',
209
+ creation: groupNode.attrs.creation ? Number(groupNode.attrs.creation) : undefined,
210
+ owner: groupNode.attrs.creator ? jidNormalizedUser(groupNode.attrs.creator) : undefined,
211
+ size: groupNode.attrs.size ? Number(groupNode.attrs.size) : undefined
212
+ });
213
+ }
214
+ }
215
+ return {
216
+ communityJid,
217
+ isCommunity,
218
+ linkedGroups: linkedGroupsData
219
+ };
215
220
  },
216
- ]);
217
- const node = getBinaryNodeChild(result, action);
218
- const participantsAffected = getBinaryNodeChildren(node, "participant");
219
- return participantsAffected.map((p) => {
220
- return { status: p.attrs.error || "200", jid: p.attrs.jid, content: p };
221
- });
222
- },
223
- communityUpdateDescription: async (jid, description) => {
224
- const metadata = await communityMetadata(jid);
225
- const prev = metadata.descId ?? null;
226
- await communityQuery(jid, "set", [
227
- {
228
- tag: "description",
229
- attrs: {
230
- ...(description ? { id: generateMessageID() } : { delete: "true" }),
231
- ...(prev ? { prev } : {}),
232
- },
233
- content: description
234
- ? [
221
+ communityRequestParticipantsList: async (jid) => {
222
+ const result = await communityQuery(jid, 'get', [
235
223
  {
236
- tag: "body",
237
- attrs: {},
238
- content: Buffer.from(description, "utf-8"),
239
- },
240
- ]
241
- : undefined,
224
+ tag: 'membership_approval_requests',
225
+ attrs: {}
226
+ }
227
+ ]);
228
+ const node = getBinaryNodeChild(result, 'membership_approval_requests');
229
+ const participants = getBinaryNodeChildren(node, 'membership_approval_request');
230
+ return participants.map(v => v.attrs);
242
231
  },
243
- ]);
244
-
245
- },
246
- communityInviteCode: async (jid) => {
247
- const result = await communityQuery(jid, "get", [
248
- { tag: "invite", attrs: {} },
249
- ]);
250
- const inviteNode = getBinaryNodeChild(result, "invite");
251
- return inviteNode?.attrs.code;
252
- },
253
- communityRevokeInvite: async (jid) => {
254
- const result = await communityQuery(jid, "set", [
255
- { tag: "invite", attrs: {} },
256
- ]);
257
- const inviteNode = getBinaryNodeChild(result, "invite");
258
- return inviteNode?.attrs.code;
259
- },
260
- communityAcceptInvite: async (code) => {
261
- const results = await communityQuery("@g.us", "set", [
262
- { tag: "invite", attrs: { code } },
263
- ]);
264
- const result = getBinaryNodeChild(results, "community");
265
- return result?.attrs.jid;
266
- },
267
- /**
268
- * revoke a v4 invite for someone
269
- * @param communityJid community jid
270
- * @param invitedJid jid of person you invited
271
- * @returns true if successful
272
- */
273
- communityRevokeInviteV4: async (communityJid, invitedJid) => {
274
- const result = await communityQuery(communityJid, "set", [
275
- {
276
- tag: "revoke",
277
- attrs: {},
278
- content: [{ tag: "participant", attrs: { jid: invitedJid } }],
232
+ communityRequestParticipantsUpdate: async (jid, participants, action) => {
233
+ const result = await communityQuery(jid, 'set', [
234
+ {
235
+ tag: 'membership_requests_action',
236
+ attrs: {},
237
+ content: [
238
+ {
239
+ tag: action,
240
+ attrs: {},
241
+ content: participants.map(jid => ({
242
+ tag: 'participant',
243
+ attrs: { jid }
244
+ }))
245
+ }
246
+ ]
247
+ }
248
+ ]);
249
+ const node = getBinaryNodeChild(result, 'membership_requests_action');
250
+ const nodeAction = getBinaryNodeChild(node, action);
251
+ const participantsAffected = getBinaryNodeChildren(nodeAction, 'participant');
252
+ return participantsAffected.map(p => {
253
+ return { status: p.attrs.error || '200', jid: p.attrs.jid };
254
+ });
279
255
  },
280
- ]);
281
- return !!result;
282
- },
283
- /**
284
- * accept a CommunityInviteMessage
285
- * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
286
- * @param inviteMessage the message to accept
287
- */
288
- communityAcceptInviteV4: ev.createBufferedFunction(
289
- async (key, inviteMessage) => {
290
- key = typeof key === "string" ? { remoteJid: key } : key;
291
- const results = await communityQuery(inviteMessage.groupJid, "set", [
292
- {
293
- tag: "accept",
294
- attrs: {
295
- code: inviteMessage.inviteCode,
296
- expiration: inviteMessage.inviteExpiration.toString(),
297
- admin: key.remoteJid,
298
- },
299
- },
300
- ]);
301
- // if we have the full message key
302
- // update the invite message to be expired
303
- if (key.id) {
304
- // create new invite message that is expired
305
- inviteMessage =
306
- WAProto_1.proto.Message.GroupInviteMessage.fromObject(inviteMessage);
307
- inviteMessage.inviteExpiration = 0;
308
- inviteMessage.inviteCode = "";
309
- ev.emit("messages.update", [
310
- {
311
- key,
312
- update: {
313
- message: {
314
- groupInviteMessage: inviteMessage,
256
+ communityParticipantsUpdate: async (jid, participants, action) => {
257
+ const result = await communityQuery(jid, 'set', [
258
+ {
259
+ tag: action,
260
+ attrs: {},
261
+ content: participants.map(jid => ({
262
+ tag: 'participant',
263
+ attrs: { jid }
264
+ }))
265
+ }
266
+ ]);
267
+ const node = getBinaryNodeChild(result, action);
268
+ const participantsAffected = getBinaryNodeChildren(node, 'participant');
269
+ return participantsAffected.map(p => {
270
+ return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p };
271
+ });
272
+ },
273
+ communityUpdateDescription: async (jid, description) => {
274
+ const metadata = await communityMetadata(jid);
275
+ const prev = metadata.descId ?? null;
276
+ await communityQuery(jid, 'set', [
277
+ {
278
+ tag: 'description',
279
+ attrs: {
280
+ ...(description ? { id: generateMessageID() } : { delete: 'true' }),
281
+ ...(prev ? { prev } : {})
282
+ },
283
+ content: description ? [{ tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }] : undefined
284
+ }
285
+ ]);
286
+ },
287
+ communityInviteCode: async (jid) => {
288
+ const result = await communityQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
289
+ const inviteNode = getBinaryNodeChild(result, 'invite');
290
+ return inviteNode?.attrs.code;
291
+ },
292
+ communityRevokeInvite: async (jid) => {
293
+ const result = await communityQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
294
+ const inviteNode = getBinaryNodeChild(result, 'invite');
295
+ return inviteNode?.attrs.code;
296
+ },
297
+ communityAcceptInvite: async (code) => {
298
+ const results = await communityQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
299
+ const result = getBinaryNodeChild(results, 'community');
300
+ return result?.attrs.jid;
301
+ },
302
+ /**
303
+ * revoke a v4 invite for someone
304
+ * @param communityJid community jid
305
+ * @param invitedJid jid of person you invited
306
+ * @returns true if successful
307
+ */
308
+ communityRevokeInviteV4: async (communityJid, invitedJid) => {
309
+ const result = await communityQuery(communityJid, 'set', [
310
+ { tag: 'revoke', attrs: {}, content: [{ tag: 'participant', attrs: { jid: invitedJid } }] }
311
+ ]);
312
+ return !!result;
313
+ },
314
+ /**
315
+ * accept a CommunityInviteMessage
316
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
317
+ * @param inviteMessage the message to accept
318
+ */
319
+ communityAcceptInviteV4: ev.createBufferedFunction(async (key, inviteMessage) => {
320
+ key = typeof key === 'string' ? { remoteJid: key } : key;
321
+ const results = await communityQuery(inviteMessage.groupJid, 'set', [
322
+ {
323
+ tag: 'accept',
324
+ attrs: {
325
+ code: inviteMessage.inviteCode,
326
+ expiration: inviteMessage.inviteExpiration.toString(),
327
+ admin: key.remoteJid
328
+ }
329
+ }
330
+ ]);
331
+ // if we have the full message key
332
+ // update the invite message to be expired
333
+ if (key.id) {
334
+ // create new invite message that is expired
335
+ inviteMessage = proto.Message.GroupInviteMessage.fromObject(inviteMessage);
336
+ inviteMessage.inviteExpiration = 0;
337
+ inviteMessage.inviteCode = '';
338
+ ev.emit('messages.update', [
339
+ {
340
+ key,
341
+ update: {
342
+ message: {
343
+ groupInviteMessage: inviteMessage
344
+ }
345
+ }
346
+ }
347
+ ]);
348
+ }
349
+ // generate the community add message
350
+ await upsertMessage({
351
+ key: {
352
+ remoteJid: inviteMessage.groupJid,
353
+ id: generateMessageIDV2(sock.user?.id),
354
+ fromMe: false,
355
+ participant: key.remoteJid // TODO: investigate if this makes any sense at all
315
356
  },
316
- },
317
- },
318
- ]);
319
- }
320
- // generate the community add message
321
- await upsertMessage(
322
- {
323
- key: {
324
- remoteJid: inviteMessage.groupJid,
325
- id: generateMessageIDV2(sock.user?.id),
326
- fromMe: false,
327
- participant: key.remoteJid,
328
- },
329
- messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
330
- messageStubParameters: [authState.creds.me.id],
331
- participant: key.remoteJid,
332
- messageTimestamp: unixTimestampSeconds(),
333
- },
334
- "notify"
335
- );
336
- return results.attrs.from;
337
- }
338
- ),
339
- communityGetInviteInfo: async (code) => {
340
- const results = await communityQuery("@g.us", "get", [
341
- { tag: "invite", attrs: { code } },
342
- ]);
343
- return extractCommunityMetadata(results);
344
- },
345
- communityToggleEphemeral: async (jid, ephemeralExpiration) => {
346
- const content = ephemeralExpiration
347
- ? {
348
- tag: "ephemeral",
349
- attrs: { expiration: ephemeralExpiration.toString() },
350
- }
351
- : { tag: "not_ephemeral", attrs: {} };
352
- await communityQuery(jid, "set", [content]);
353
- },
354
- communitySettingUpdate: async (jid, setting) => {
355
- await communityQuery(jid, "set", [{ tag: setting, attrs: {} }]);
356
- },
357
- communityMemberAddMode: async (jid, mode) => {
358
- await communityQuery(jid, "set", [
359
- { tag: "member_add_mode", attrs: {}, content: mode },
360
- ]);
361
- },
362
- communityJoinApprovalMode: async (jid, mode) => {
363
- await communityQuery(jid, "set", [
364
- {
365
- tag: "membership_approval_mode",
366
- attrs: {},
367
- content: [{ tag: "community_join", attrs: { state: mode } }],
357
+ messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
358
+ messageStubParameters: [JSON.stringify(authState.creds.me)],
359
+ participant: key.remoteJid,
360
+ messageTimestamp: unixTimestampSeconds()
361
+ }, 'notify');
362
+ return results.attrs.from;
363
+ }),
364
+ communityGetInviteInfo: async (code) => {
365
+ const results = await communityQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
366
+ return extractCommunityMetadata(results);
368
367
  },
369
- ]);
370
- },
371
- communityFetchAllParticipating,
372
- };
368
+ communityToggleEphemeral: async (jid, ephemeralExpiration) => {
369
+ const content = ephemeralExpiration
370
+ ? { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } }
371
+ : { tag: 'not_ephemeral', attrs: {} };
372
+ await communityQuery(jid, 'set', [content]);
373
+ },
374
+ communitySettingUpdate: async (jid, setting) => {
375
+ await communityQuery(jid, 'set', [{ tag: setting, attrs: {} }]);
376
+ },
377
+ communityMemberAddMode: async (jid, mode) => {
378
+ await communityQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }]);
379
+ },
380
+ communityJoinApprovalMode: async (jid, mode) => {
381
+ await communityQuery(jid, 'set', [
382
+ { tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'community_join', attrs: { state: mode } }] }
383
+ ]);
384
+ },
385
+ communityFetchAllParticipating
386
+ };
373
387
  };
374
- const extractCommunityMetadata = (result) => {
375
-
376
- const community = getBinaryNodeChild(result, "community") || getBinaryNodeChild(result, "group");
377
-
378
- const descChild = getBinaryNodeChild(community, "description");
379
- let desc;
380
- let descId;
381
- if (descChild) {
382
- desc = getBinaryNodeChildString(descChild, "body");
383
- descId = descChild.attrs.id;
384
- }
385
- const communityId = community.attrs.id?.includes("@")
386
- ? community.attrs.id
387
- : jidEncode(community.attrs.id || "", "g.us");
388
- const eph = getBinaryNodeChild(community, "ephemeral")?.attrs.expiration;
389
- const memberAddMode =
390
- getBinaryNodeChildString(community, "member_add_mode") === "all_member_add";
391
- const metadata = {
392
- id: communityId,
393
- subject: community.attrs.subject || "",
394
- subjectOwner: community.attrs.s_o,
395
- subjectTime: Number(community.attrs.s_t || 0),
396
- size: getBinaryNodeChildren(community, "participant").length,
397
- creation: Number(community.attrs.creation || 0),
398
- owner: community.attrs.creator
399
- ? jidNormalizedUser(community.attrs.creator)
400
- : undefined,
401
- desc,
402
- descId,
403
- linkedParent:
404
- getBinaryNodeChild(community, "linked_parent")?.attrs.jid || undefined,
405
- restrict: !!getBinaryNodeChild(community, "locked"),
406
- announce: !!getBinaryNodeChild(community, "announcement"),
407
- isCommunity: !!getBinaryNodeChild(community, "parent"),
408
- isCommunityAnnounce: !!getBinaryNodeChild(
409
- community,
410
- "default_sub_community"
411
- ),
412
- joinApprovalMode: !!getBinaryNodeChild(
413
- community,
414
- "membership_approval_mode"
415
- ),
416
- memberAddMode,
417
- participants: getBinaryNodeChildren(community, "participant").map(
418
- ({ attrs }) => {
419
- return {
420
- id: attrs.jid,
421
- admin: attrs.type || null,
422
- };
423
- }
424
- ),
425
- ephemeralDuration: eph ? +eph : undefined,
426
- addressingMode: getBinaryNodeChildString(community, "addressing_mode"),
427
- };
428
- return metadata;
388
+ export const extractCommunityMetadata = (result) => {
389
+ const community = getBinaryNodeChild(result, 'community');
390
+ const descChild = getBinaryNodeChild(community, 'description');
391
+ let desc;
392
+ let descId;
393
+ if (descChild) {
394
+ desc = getBinaryNodeChildString(descChild, 'body');
395
+ descId = descChild.attrs.id;
396
+ }
397
+ const communityId = community.attrs.id?.includes('@')
398
+ ? community.attrs.id
399
+ : jidEncode(community.attrs.id || '', 'g.us');
400
+ const eph = getBinaryNodeChild(community, 'ephemeral')?.attrs.expiration;
401
+ const memberAddMode = getBinaryNodeChildString(community, 'member_add_mode') === 'all_member_add';
402
+ const metadata = {
403
+ id: communityId,
404
+ subject: community.attrs.subject || '',
405
+ subjectOwner: community.attrs.s_o,
406
+ subjectTime: Number(community.attrs.s_t || 0),
407
+ size: getBinaryNodeChildren(community, 'participant').length,
408
+ creation: Number(community.attrs.creation || 0),
409
+ owner: community.attrs.creator ? jidNormalizedUser(community.attrs.creator) : undefined,
410
+ desc,
411
+ descId,
412
+ linkedParent: getBinaryNodeChild(community, 'linked_parent')?.attrs.jid || undefined,
413
+ restrict: !!getBinaryNodeChild(community, 'locked'),
414
+ announce: !!getBinaryNodeChild(community, 'announcement'),
415
+ isCommunity: !!getBinaryNodeChild(community, 'parent'),
416
+ isCommunityAnnounce: !!getBinaryNodeChild(community, 'default_sub_community'),
417
+ joinApprovalMode: !!getBinaryNodeChild(community, 'membership_approval_mode'),
418
+ memberAddMode,
419
+ participants: getBinaryNodeChildren(community, 'participant').map(({ attrs }) => {
420
+ return {
421
+ // TODO: IMPLEMENT THE PN/LID FIELDS HERE!!
422
+ id: attrs.jid,
423
+ admin: (attrs.type || null)
424
+ };
425
+ }),
426
+ ephemeralDuration: eph ? +eph : undefined,
427
+ addressingMode: getBinaryNodeChildString(community, 'addressing_mode')
428
+ };
429
+ return metadata;
429
430
  };
430
- module.exports = {
431
- makeCommunitiesSocket,
432
- extractCommunityMetadata,
433
- }
431
+ //# sourceMappingURL=communities.js.map