@periskope/baileys 6.7.17-alpha.4 → 6.7.18-13

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 (301) hide show
  1. package/README.md +1263 -4
  2. package/WAProto/GenerateStatics.sh +2 -0
  3. package/WAProto/WAProto.proto +4633 -0
  4. package/WAProto/index.d.ts +3212 -122
  5. package/WAProto/index.js +9635 -299
  6. package/lib/Defaults/baileys-version.json +1 -1
  7. package/lib/Defaults/index.d.ts +1 -1
  8. package/lib/Defaults/index.d.ts.map +1 -0
  9. package/lib/Defaults/index.js +16 -16
  10. package/lib/Defaults/index.js.map +1 -0
  11. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  12. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  13. package/lib/Signal/Group/ciphertext-message.js +15 -0
  14. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  15. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  16. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  17. package/lib/Signal/Group/group-session-builder.js +64 -0
  18. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  19. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  20. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  21. package/lib/Signal/Group/group_cipher.js +96 -0
  22. package/lib/Signal/Group/group_cipher.js.map +1 -0
  23. package/lib/Signal/Group/index.d.ts +11 -0
  24. package/lib/Signal/Group/index.d.ts.map +1 -0
  25. package/lib/Signal/Group/index.js +57 -0
  26. package/lib/Signal/Group/index.js.map +1 -0
  27. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  28. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  29. package/lib/Signal/Group/keyhelper.js +55 -0
  30. package/lib/Signal/Group/keyhelper.js.map +1 -0
  31. package/lib/Signal/Group/queue-job.d.ts +1 -0
  32. package/lib/Signal/Group/queue-job.d.ts.map +1 -0
  33. package/lib/Signal/Group/queue-job.js +57 -0
  34. package/lib/Signal/Group/queue-job.js.map +1 -0
  35. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  36. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  37. package/lib/Signal/Group/sender-chain-key.js +34 -0
  38. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  40. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  41. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  42. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  43. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  44. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  45. package/lib/Signal/Group/sender-key-message.js +69 -0
  46. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  47. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  48. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  49. package/lib/Signal/Group/sender-key-name.js +51 -0
  50. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  51. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  52. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  53. package/lib/Signal/Group/sender-key-record.js +53 -0
  54. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  55. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  56. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  57. package/lib/Signal/Group/sender-key-state.js +99 -0
  58. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  59. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  60. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  61. package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +29 -39
  62. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  63. package/lib/Signal/libsignal.d.ts.map +1 -0
  64. package/lib/Signal/libsignal.js +33 -20
  65. package/lib/Signal/libsignal.js.map +1 -0
  66. package/lib/Socket/Client/index.d.ts.map +1 -0
  67. package/lib/Socket/Client/index.js.map +1 -0
  68. package/lib/Socket/Client/types.d.ts.map +1 -0
  69. package/lib/Socket/Client/types.js.map +1 -0
  70. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  71. package/lib/Socket/Client/websocket.js +1 -1
  72. package/lib/Socket/Client/websocket.js.map +1 -0
  73. package/lib/Socket/business.d.ts +36 -8
  74. package/lib/Socket/business.d.ts.map +1 -0
  75. package/lib/Socket/business.js +5 -5
  76. package/lib/Socket/business.js.map +1 -0
  77. package/lib/Socket/chats.d.ts +12 -7
  78. package/lib/Socket/chats.d.ts.map +1 -0
  79. package/lib/Socket/chats.js +90 -72
  80. package/lib/Socket/chats.js.map +1 -0
  81. package/lib/Socket/communities.d.ts +218 -0
  82. package/lib/Socket/communities.d.ts.map +1 -0
  83. package/lib/Socket/communities.js +351 -0
  84. package/lib/Socket/communities.js.map +1 -0
  85. package/lib/Socket/groups.d.ts +14 -8
  86. package/lib/Socket/groups.d.ts.map +1 -0
  87. package/lib/Socket/groups.js +39 -23
  88. package/lib/Socket/groups.js.map +1 -0
  89. package/lib/Socket/index.d.ts +36 -8
  90. package/lib/Socket/index.d.ts.map +1 -0
  91. package/lib/Socket/index.js +2 -2
  92. package/lib/Socket/index.js.map +1 -0
  93. package/lib/Socket/messages-recv.d.ts +35 -7
  94. package/lib/Socket/messages-recv.d.ts.map +1 -0
  95. package/lib/Socket/messages-recv.js +228 -58
  96. package/lib/Socket/messages-recv.js.map +1 -0
  97. package/lib/Socket/messages-send.d.ts +35 -7
  98. package/lib/Socket/messages-send.d.ts.map +1 -0
  99. package/lib/Socket/messages-send.js +81 -48
  100. package/lib/Socket/messages-send.js.map +1 -0
  101. package/lib/Socket/mex.d.ts +2 -0
  102. package/lib/Socket/mex.d.ts.map +1 -0
  103. package/lib/Socket/mex.js +46 -0
  104. package/lib/Socket/mex.js.map +1 -0
  105. package/lib/Socket/newsletter.d.ts +141 -0
  106. package/lib/Socket/newsletter.d.ts.map +1 -0
  107. package/lib/Socket/newsletter.js +183 -0
  108. package/lib/Socket/newsletter.js.map +1 -0
  109. package/lib/Socket/socket.d.ts +3 -3
  110. package/lib/Socket/socket.d.ts.map +1 -0
  111. package/lib/Socket/socket.js +22 -30
  112. package/lib/Socket/socket.js.map +1 -0
  113. package/lib/Socket/usync.d.ts +3 -3
  114. package/lib/Socket/usync.d.ts.map +1 -0
  115. package/lib/Socket/usync.js +10 -15
  116. package/lib/Socket/usync.js.map +1 -0
  117. package/lib/Types/Auth.d.ts +1 -1
  118. package/lib/Types/Auth.d.ts.map +1 -0
  119. package/lib/Types/Auth.js.map +1 -0
  120. package/lib/Types/Call.d.ts.map +1 -0
  121. package/lib/Types/Call.js.map +1 -0
  122. package/lib/Types/Chat.d.ts +4 -1
  123. package/lib/Types/Chat.d.ts.map +1 -0
  124. package/lib/Types/Chat.js +7 -1
  125. package/lib/Types/Chat.js.map +1 -0
  126. package/lib/Types/Contact.d.ts +4 -0
  127. package/lib/Types/Contact.d.ts.map +1 -0
  128. package/lib/Types/Contact.js.map +1 -0
  129. package/lib/Types/Events.d.ts +34 -1
  130. package/lib/Types/Events.d.ts.map +1 -0
  131. package/lib/Types/Events.js.map +1 -0
  132. package/lib/Types/GroupMetadata.d.ts +10 -3
  133. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  134. package/lib/Types/GroupMetadata.js.map +1 -0
  135. package/lib/Types/Label.d.ts.map +1 -0
  136. package/lib/Types/Label.js.map +1 -0
  137. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  138. package/lib/Types/LabelAssociation.js.map +1 -0
  139. package/lib/Types/Message.d.ts +12 -2
  140. package/lib/Types/Message.d.ts.map +1 -0
  141. package/lib/Types/Message.js.map +1 -0
  142. package/lib/Types/Newsletter.d.ts +134 -0
  143. package/lib/Types/Newsletter.d.ts.map +1 -0
  144. package/lib/Types/Newsletter.js +33 -0
  145. package/lib/Types/Newsletter.js.map +1 -0
  146. package/lib/Types/Product.d.ts.map +1 -0
  147. package/lib/Types/Product.js.map +1 -0
  148. package/lib/Types/Signal.d.ts.map +1 -0
  149. package/lib/Types/Signal.js.map +1 -0
  150. package/lib/Types/Socket.d.ts +3 -3
  151. package/lib/Types/Socket.d.ts.map +1 -0
  152. package/lib/Types/Socket.js.map +1 -0
  153. package/lib/Types/State.d.ts.map +1 -0
  154. package/lib/Types/State.js.map +1 -0
  155. package/lib/Types/USync.d.ts.map +1 -0
  156. package/lib/Types/USync.js.map +1 -0
  157. package/lib/Types/index.d.ts +1 -0
  158. package/lib/Types/index.d.ts.map +1 -0
  159. package/lib/Types/index.js +1 -0
  160. package/lib/Types/index.js.map +1 -0
  161. package/lib/Utils/auth-utils.d.ts.map +1 -0
  162. package/lib/Utils/auth-utils.js +8 -9
  163. package/lib/Utils/auth-utils.js.map +1 -0
  164. package/lib/Utils/baileys-event-stream.d.ts.map +1 -0
  165. package/lib/Utils/baileys-event-stream.js +1 -1
  166. package/lib/Utils/baileys-event-stream.js.map +1 -0
  167. package/lib/Utils/business.d.ts.map +1 -0
  168. package/lib/Utils/business.js +9 -11
  169. package/lib/Utils/business.js.map +1 -0
  170. package/lib/Utils/chat-utils.d.ts +4 -4
  171. package/lib/Utils/chat-utils.d.ts.map +1 -0
  172. package/lib/Utils/chat-utils.js +78 -70
  173. package/lib/Utils/chat-utils.js.map +1 -0
  174. package/lib/Utils/crypto.d.ts.map +1 -0
  175. package/lib/Utils/crypto.js +4 -10
  176. package/lib/Utils/crypto.js.map +1 -0
  177. package/lib/Utils/decode-wa-message.d.ts +3 -4
  178. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  179. package/lib/Utils/decode-wa-message.js +11 -2
  180. package/lib/Utils/decode-wa-message.js.map +1 -0
  181. package/lib/Utils/event-buffer.d.ts +2 -2
  182. package/lib/Utils/event-buffer.d.ts.map +1 -0
  183. package/lib/Utils/event-buffer.js +9 -13
  184. package/lib/Utils/event-buffer.js.map +1 -0
  185. package/lib/Utils/generics.d.ts +2 -1
  186. package/lib/Utils/generics.d.ts.map +1 -0
  187. package/lib/Utils/generics.js +32 -30
  188. package/lib/Utils/generics.js.map +1 -0
  189. package/lib/Utils/history.d.ts.map +1 -0
  190. package/lib/Utils/history.js +10 -11
  191. package/lib/Utils/history.js.map +1 -0
  192. package/lib/Utils/index.d.ts.map +1 -0
  193. package/lib/Utils/index.js.map +1 -0
  194. package/lib/Utils/link-preview.d.ts.map +1 -0
  195. package/lib/Utils/link-preview.js +9 -10
  196. package/lib/Utils/link-preview.js.map +1 -0
  197. package/lib/Utils/logger.d.ts.map +1 -0
  198. package/lib/Utils/logger.js.map +1 -0
  199. package/lib/Utils/lt-hash.d.ts.map +1 -0
  200. package/lib/Utils/lt-hash.js +2 -2
  201. package/lib/Utils/lt-hash.js.map +1 -0
  202. package/lib/Utils/make-mutex.d.ts.map +1 -0
  203. package/lib/Utils/make-mutex.js +1 -1
  204. package/lib/Utils/make-mutex.js.map +1 -0
  205. package/lib/Utils/messages-media.d.ts +11 -3
  206. package/lib/Utils/messages-media.d.ts.map +1 -0
  207. package/lib/Utils/messages-media.js +108 -90
  208. package/lib/Utils/messages-media.js.map +1 -0
  209. package/lib/Utils/messages.d.ts +3 -3
  210. package/lib/Utils/messages.d.ts.map +1 -0
  211. package/lib/Utils/messages.js +109 -69
  212. package/lib/Utils/messages.js.map +1 -0
  213. package/lib/Utils/noise-handler.d.ts.map +1 -0
  214. package/lib/Utils/noise-handler.js.map +1 -0
  215. package/lib/Utils/process-message.d.ts +1 -1
  216. package/lib/Utils/process-message.d.ts.map +1 -0
  217. package/lib/Utils/process-message.js +62 -65
  218. package/lib/Utils/process-message.js.map +1 -0
  219. package/lib/Utils/signal.d.ts.map +1 -0
  220. package/lib/Utils/signal.js +9 -7
  221. package/lib/Utils/signal.js.map +1 -0
  222. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  223. package/lib/Utils/use-multi-file-auth-state.js +2 -3
  224. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  225. package/lib/Utils/validate-connection.d.ts.map +1 -0
  226. package/lib/Utils/validate-connection.js +17 -22
  227. package/lib/Utils/validate-connection.js.map +1 -0
  228. package/lib/WABinary/constants.d.ts +4 -4
  229. package/lib/WABinary/constants.d.ts.map +1 -0
  230. package/lib/WABinary/constants.js +1271 -8
  231. package/lib/WABinary/constants.js.map +1 -0
  232. package/lib/WABinary/decode.d.ts.map +1 -0
  233. package/lib/WABinary/decode.js +2 -1
  234. package/lib/WABinary/decode.js.map +1 -0
  235. package/lib/WABinary/encode.d.ts.map +1 -0
  236. package/lib/WABinary/encode.js +2 -2
  237. package/lib/WABinary/encode.js.map +1 -0
  238. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  239. package/lib/WABinary/generic-utils.js +1 -1
  240. package/lib/WABinary/generic-utils.js.map +1 -0
  241. package/lib/WABinary/index.d.ts.map +1 -0
  242. package/lib/WABinary/index.js.map +1 -0
  243. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  244. package/lib/WABinary/jid-utils.js +8 -11
  245. package/lib/WABinary/jid-utils.js.map +1 -0
  246. package/lib/WABinary/types.d.ts.map +1 -0
  247. package/lib/WABinary/types.js.map +1 -0
  248. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  249. package/lib/WAM/BinaryInfo.js.map +1 -0
  250. package/lib/WAM/constants.d.ts.map +1 -0
  251. package/lib/WAM/constants.js +2252 -2359
  252. package/lib/WAM/constants.js.map +1 -0
  253. package/lib/WAM/encode.d.ts.map +1 -0
  254. package/lib/WAM/encode.js +5 -7
  255. package/lib/WAM/encode.js.map +1 -0
  256. package/lib/WAM/index.d.ts.map +1 -0
  257. package/lib/WAM/index.js.map +1 -0
  258. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  259. package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
  260. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  261. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  262. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +2 -2
  263. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  264. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  265. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +3 -3
  266. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  267. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  268. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +5 -5
  269. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  270. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  271. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +1 -1
  272. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  273. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  274. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +1 -1
  275. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  276. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  277. package/lib/WAUSync/Protocols/index.js.map +1 -0
  278. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  279. package/lib/WAUSync/USyncQuery.js +17 -13
  280. package/lib/WAUSync/USyncQuery.js.map +1 -0
  281. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  282. package/lib/WAUSync/USyncUser.js.map +1 -0
  283. package/lib/WAUSync/index.d.ts.map +1 -0
  284. package/lib/WAUSync/index.js.map +1 -0
  285. package/lib/index.d.ts.map +1 -0
  286. package/lib/index.js.map +1 -0
  287. package/package.json +25 -17
  288. package/WASignalGroup/GroupProtocol.js +0 -1697
  289. package/WASignalGroup/ciphertext_message.js +0 -16
  290. package/WASignalGroup/group_cipher.js +0 -120
  291. package/WASignalGroup/group_session_builder.js +0 -46
  292. package/WASignalGroup/index.js +0 -5
  293. package/WASignalGroup/keyhelper.js +0 -21
  294. package/WASignalGroup/protobufs.js +0 -3
  295. package/WASignalGroup/queue_job.js +0 -69
  296. package/WASignalGroup/sender_chain_key.js +0 -50
  297. package/WASignalGroup/sender_key_distribution_message.js +0 -78
  298. package/WASignalGroup/sender_key_message.js +0 -92
  299. package/WASignalGroup/sender_key_name.js +0 -70
  300. package/WASignalGroup/sender_key_record.js +0 -56
  301. package/WASignalGroup/sender_key_state.js +0 -129
@@ -0,0 +1,218 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import { type GroupMetadata, type ParticipantAction, type SocketConfig, type WAMessageKey } from '../Types/index.js';
3
+ import { type BinaryNode } from '../WABinary/index.js';
4
+ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
5
+ communityMetadata: (jid: string) => Promise<GroupMetadata>;
6
+ communityCreate: (subject: string, body: string) => Promise<GroupMetadata | null>;
7
+ communityLeave: (id: string) => Promise<void>;
8
+ communityUpdateSubject: (jid: string, subject: string) => Promise<void>;
9
+ communityRequestParticipantsList: (jid: string) => Promise<{
10
+ [key: string]: string;
11
+ }[]>;
12
+ communityRequestParticipantsUpdate: (jid: string, participants: string[], action: "approve" | "reject") => Promise<{
13
+ status: string;
14
+ jid: string | undefined;
15
+ }[]>;
16
+ communityParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{
17
+ status: string;
18
+ jid: string | undefined;
19
+ content: BinaryNode;
20
+ }[]>;
21
+ communityUpdateDescription: (jid: string, description?: string) => Promise<void>;
22
+ communityInviteCode: (jid: string) => Promise<string | undefined>;
23
+ communityRevokeInvite: (jid: string) => Promise<string | undefined>;
24
+ communityAcceptInvite: (code: string) => Promise<string | undefined>;
25
+ /**
26
+ * revoke a v4 invite for someone
27
+ * @param communityJid community jid
28
+ * @param invitedJid jid of person you invited
29
+ * @returns true if successful
30
+ */
31
+ communityRevokeInviteV4: (communityJid: string, invitedJid: string) => Promise<boolean>;
32
+ /**
33
+ * accept a CommunityInviteMessage
34
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
35
+ * @param inviteMessage the message to accept
36
+ */
37
+ communityAcceptInviteV4: (key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<any>;
38
+ communityGetInviteInfo: (code: string) => Promise<GroupMetadata>;
39
+ communityToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
40
+ communitySettingUpdate: (jid: string, setting: "announcement" | "not_announcement" | "locked" | "unlocked") => Promise<void>;
41
+ communityMemberAddMode: (jid: string, mode: "admin_add" | "all_member_add") => Promise<void>;
42
+ communityJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
43
+ communityFetchAllParticipating: () => Promise<{
44
+ [_: string]: GroupMetadata;
45
+ }>;
46
+ logger: import("../Utils/logger.js").ILogger;
47
+ getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("../Types/index.js").OrderDetails>;
48
+ getCatalog: ({ jid, limit, cursor }: import("../Types/index.js").GetCatalogOptions) => Promise<{
49
+ products: import("../Types/index.js").Product[];
50
+ nextPageCursor: string | undefined;
51
+ }>;
52
+ getCollections: (jid?: string, limit?: number) => Promise<{
53
+ collections: import("../Types/index.js").CatalogCollection[];
54
+ }>;
55
+ productCreate: (create: import("../Types/index.js").ProductCreate) => Promise<import("../Types/index.js").Product>;
56
+ productDelete: (productIds: string[]) => Promise<{
57
+ deleted: number;
58
+ }>;
59
+ productUpdate: (productId: string, update: import("../Types/index.js").ProductUpdate) => Promise<import("../Types/index.js").Product>;
60
+ sendMessageAck: ({ tag, attrs, content }: BinaryNode, errorCode?: number) => Promise<void>;
61
+ sendRetryRequest: (node: BinaryNode, forceIncludeKeys?: boolean) => Promise<void>;
62
+ rejectCall: (callId: string, callFrom: string) => Promise<void>;
63
+ fetchMessageHistory: (count: number, oldestMsgKey: WAMessageKey, oldestMsgTimestamp: number | Long) => Promise<string>;
64
+ requestPlaceholderResend: (messageKey: WAMessageKey) => Promise<string | undefined>;
65
+ getPrivacyTokens: (jids: string[]) => Promise<any>;
66
+ assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
67
+ relayMessage: (jid: string, message: proto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, useCachedGroupMetadata, statusJidList }: import("../Types/index.js").MessageRelayOptions) => Promise<string>;
68
+ sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("../Types/index.js").MessageReceiptType) => Promise<void>;
69
+ sendReceipts: (keys: WAMessageKey[], type: import("../Types/index.js").MessageReceiptType) => Promise<void>;
70
+ readMessages: (keys: WAMessageKey[]) => Promise<void>;
71
+ refreshMediaConn: (forceGet?: boolean) => Promise<import("../Types/index.js").MediaConnInfo>;
72
+ waUploadToServer: import("../Types/index.js").WAMediaUploadFunction;
73
+ fetchPrivacySettings: (force?: boolean) => Promise<{
74
+ [_: string]: string;
75
+ }>;
76
+ sendPeerDataOperationMessage: (pdoMessage: proto.Message.IPeerDataOperationRequestMessage) => Promise<string>;
77
+ createParticipantNodes: (jids: string[], message: proto.IMessage, extraAttrs?: BinaryNode["attrs"]) => Promise<{
78
+ nodes: BinaryNode[];
79
+ shouldIncludeDeviceIdentity: boolean;
80
+ }>;
81
+ getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<import("../WABinary/index.js").JidWithDevice[]>;
82
+ updateMediaMessage: (message: proto.IWebMessageInfo) => Promise<proto.IWebMessageInfo>;
83
+ sendMessage: (jid: string, content: import("../Types/index.js").AnyMessageContent, options?: import("../Types/index.js").MiscMessageGenerationOptions) => Promise<proto.WebMessageInfo | undefined>;
84
+ newsletterCreate: (name: string, description?: string) => Promise<import("../Types/index.js").NewsletterMetadata>;
85
+ newsletterUpdate: (jid: string, updates: import("../Types/index.js").NewsletterUpdate) => Promise<unknown>;
86
+ newsletterSubscribers: (jid: string) => Promise<{
87
+ subscribers: number;
88
+ }>;
89
+ newsletterMetadata: (type: "invite" | "jid", key: string) => Promise<import("../Types/index.js").NewsletterMetadata | null>;
90
+ newsletterFollow: (jid: string) => Promise<unknown>;
91
+ newsletterUnfollow: (jid: string) => Promise<unknown>;
92
+ newsletterMute: (jid: string) => Promise<unknown>;
93
+ newsletterUnmute: (jid: string) => Promise<unknown>;
94
+ newsletterUpdateName: (jid: string, name: string) => Promise<unknown>;
95
+ newsletterUpdateDescription: (jid: string, description: string) => Promise<unknown>;
96
+ newsletterUpdatePicture: (jid: string, content: import("../Types/index.js").WAMediaUpload) => Promise<unknown>;
97
+ newsletterRemovePicture: (jid: string) => Promise<unknown>;
98
+ newsletterReactMessage: (jid: string, serverId: string, reaction?: string) => Promise<void>;
99
+ newsletterFetchMessages: (jid: string, count: number, since: number, after: number) => Promise<any>;
100
+ subscribeNewsletterUpdates: (jid: string) => Promise<{
101
+ duration: string;
102
+ } | null>;
103
+ newsletterAdminCount: (jid: string) => Promise<number>;
104
+ newsletterChangeOwner: (jid: string, newOwnerJid: string) => Promise<void>;
105
+ newsletterDemote: (jid: string, userJid: string) => Promise<void>;
106
+ newsletterDelete: (jid: string) => Promise<void>;
107
+ groupMetadata: (jid: string) => Promise<GroupMetadata>;
108
+ groupCreate: (subject: string, participants: string[]) => Promise<GroupMetadata>;
109
+ groupLeave: (id: string) => Promise<void>;
110
+ groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
111
+ groupRequestParticipantsList: (jid: string) => Promise<{
112
+ [key: string]: string;
113
+ }[]>;
114
+ groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "approve" | "reject") => Promise<{
115
+ status: string;
116
+ jid: string | undefined;
117
+ }[]>;
118
+ groupParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{
119
+ status: string;
120
+ jid: string | undefined;
121
+ content: BinaryNode;
122
+ }[]>;
123
+ groupUpdateDescription: (jid: string, description?: string) => Promise<void>;
124
+ groupInviteCode: (jid: string) => Promise<string | undefined>;
125
+ groupRevokeInvite: (jid: string) => Promise<string | undefined>;
126
+ groupAcceptInvite: (code: string) => Promise<string | undefined>;
127
+ groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise<boolean>;
128
+ groupAcceptInviteV4: (key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<any>;
129
+ groupGetInviteInfo: (code: string) => Promise<GroupMetadata>;
130
+ groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
131
+ groupSettingUpdate: (jid: string, setting: "announcement" | "not_announcement" | "locked" | "unlocked") => Promise<void>;
132
+ groupMemberAddMode: (jid: string, mode: "admin_add" | "all_member_add") => Promise<void>;
133
+ groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
134
+ groupFetchAllParticipating: () => Promise<{
135
+ [_: string]: GroupMetadata;
136
+ }>;
137
+ getBotListV2: () => Promise<import("../Types/index.js").BotListInfo[]>;
138
+ processingMutex: {
139
+ mutex<T>(code: () => Promise<T> | T): Promise<T>;
140
+ };
141
+ upsertMessage: (msg: import("../Types/index.js").WAMessage, type: import("../Types/index.js").MessageUpsertType) => Promise<void>;
142
+ appPatch: (patchCreate: import("../Types/index.js").WAPatchCreate) => Promise<void>;
143
+ sendPresenceUpdate: (type: import("../Types/index.js").WAPresence, toJid?: string) => Promise<void>;
144
+ presenceSubscribe: (toJid: string, tcToken?: Buffer) => Promise<void>;
145
+ profilePictureUrl: (jid: string, type?: "preview" | "image", timeoutMs?: number) => Promise<string | undefined>;
146
+ onWhatsApp: (...jids: string[]) => Promise<{
147
+ jid: string;
148
+ exists: unknown;
149
+ lid: unknown;
150
+ }[] | undefined>;
151
+ fetchBlocklist: () => Promise<(string | undefined)[]>;
152
+ fetchStatus: (...jids: string[]) => Promise<import("../index.js").USyncQueryResultList[] | undefined>;
153
+ fetchDisappearingDuration: (...jids: string[]) => Promise<import("../index.js").USyncQueryResultList[] | undefined>;
154
+ updateProfilePicture: (jid: string, content: import("../Types/index.js").WAMediaUpload, dimensions?: {
155
+ width: number;
156
+ height: number;
157
+ }) => Promise<void>;
158
+ removeProfilePicture: (jid: string) => Promise<void>;
159
+ updateProfileStatus: (status: string) => Promise<void>;
160
+ updateProfileName: (name: string) => Promise<void>;
161
+ updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
162
+ updateCallPrivacy: (value: import("../Types/index.js").WAPrivacyCallValue) => Promise<void>;
163
+ updateMessagesPrivacy: (value: import("../Types/index.js").WAPrivacyMessagesValue) => Promise<void>;
164
+ updateLastSeenPrivacy: (value: import("../Types/index.js").WAPrivacyValue) => Promise<void>;
165
+ updateOnlinePrivacy: (value: import("../Types/index.js").WAPrivacyOnlineValue) => Promise<void>;
166
+ updateProfilePicturePrivacy: (value: import("../Types/index.js").WAPrivacyValue) => Promise<void>;
167
+ updateStatusPrivacy: (value: import("../Types/index.js").WAPrivacyValue) => Promise<void>;
168
+ updateReadReceiptsPrivacy: (value: import("../Types/index.js").WAReadReceiptsValue) => Promise<void>;
169
+ updateGroupsAddPrivacy: (value: import("../Types/index.js").WAPrivacyGroupAddValue) => Promise<void>;
170
+ updateDefaultDisappearingMode: (duration: number) => Promise<void>;
171
+ getBusinessProfile: (jid: string) => Promise<import("../Types/index.js").WABusinessProfile | void>;
172
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
173
+ chatModify: (mod: import("../Types/index.js").ChatModification, jid: string) => Promise<void>;
174
+ cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
175
+ addOrEditContact: (jid: string, contact: proto.SyncActionValue.IContactAction) => Promise<void>;
176
+ removeContact: (jid: string) => Promise<void>;
177
+ addLabel: (jid: string, labels: import("../Types/Label.js").LabelActionBody) => Promise<void>;
178
+ addChatLabel: (jid: string, labelId: string) => Promise<void>;
179
+ removeChatLabel: (jid: string, labelId: string) => Promise<void>;
180
+ addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
181
+ removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
182
+ star: (jid: string, messages: {
183
+ id: string;
184
+ fromMe?: boolean;
185
+ }[], star: boolean) => Promise<void>;
186
+ executeUSyncQuery: (usyncQuery: import("../index.js").USyncQuery) => Promise<import("../index.js").USyncQueryResult | undefined>;
187
+ type: "md";
188
+ ws: import("./Client/websocket.js").WebSocketClient;
189
+ ev: import("../Types/index.js").BaileysEventEmitter & {
190
+ process(handler: (events: Partial<import("../Types/index.js").BaileysEventMap>) => void | Promise<void>): () => void;
191
+ buffer(): void;
192
+ createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): (...args: A) => Promise<T>;
193
+ flush(force?: boolean): boolean;
194
+ isBuffering(): boolean;
195
+ };
196
+ authState: {
197
+ creds: import("../Types/index.js").AuthenticationCreds;
198
+ keys: import("../Types/index.js").SignalKeyStoreWithTransaction;
199
+ };
200
+ signalRepository: import("../Types/index.js").SignalRepository;
201
+ user: import("../Types/index.js").Contact | undefined;
202
+ generateMessageTag: () => string;
203
+ query: (node: BinaryNode, timeoutMs?: number) => Promise<any>;
204
+ waitForMessage: <T>(msgId: string, timeoutMs?: number | undefined) => Promise<any>;
205
+ waitForSocketOpen: () => Promise<void>;
206
+ sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
207
+ sendNode: (frame: BinaryNode) => Promise<void>;
208
+ logout: (msg?: string) => Promise<void>;
209
+ end: (error: Error | undefined) => void;
210
+ onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
211
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
212
+ uploadPreKeysToServerIfRequired: () => Promise<void>;
213
+ requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
214
+ waitForConnectionUpdate: (check: (u: Partial<import("../Types/index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
215
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<any>;
216
+ };
217
+ export declare const extractCommunityMetadata: (result: BinaryNode) => GroupMetadata;
218
+ //# sourceMappingURL=communities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../src/Socket/communities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EACN,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,KAAK,UAAU,EAMf,MAAM,aAAa,CAAA;AAGpB,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY;6BAenB,MAAM;+BA8EV,MAAM,QAAQ,MAAM;yBAqC1B,MAAM;kCASG,MAAM,WAAW,MAAM;4CASb,MAAM;;;8CAWJ,MAAM,gBAAgB,MAAM,EAAE,UAAU,SAAS,GAAG,QAAQ;;;;uCAwBnE,MAAM,gBAAgB,MAAM,EAAE,UAAU,iBAAiB;;;;;sCAiB1D,MAAM,gBAAgB,MAAM;+BAenC,MAAM;iCAKJ,MAAM;kCAKL,MAAM;IAM1C;;;;;OAKG;4CAC2C,MAAM,cAAc,MAAM;IAOxE;;;;OAIG;;mCAsDkC,MAAM;oCAIL,MAAM,uBAAuB,MAAM;kCAOnE,MAAM,WACF,cAAc,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU;kCAIjC,MAAM,QAAQ,WAAW,GAAG,gBAAgB;qCAGzC,MAAM,QAAQ,IAAI,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoD+zT,CAAC;;;;;;;;0DA3U9zT,GAAG,0BACnD,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA6RvB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,QAAQ,UAAU,kBA0C1D,CAAA"}
@@ -0,0 +1,351 @@
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
16
+ },
17
+ content
18
+ });
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
+ ]
41
+ });
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
+ }
72
+ return Optional.empty();
73
+ }
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', [
92
+ {
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);
123
+ },
124
+ communityLeave: async (id) => {
125
+ await communityQuery('@g.us', 'set', [
126
+ {
127
+ tag: 'leave',
128
+ attrs: {},
129
+ content: [{ tag: 'community', attrs: { id } }]
130
+ }
131
+ ]);
132
+ },
133
+ communityUpdateSubject: async (jid, subject) => {
134
+ await communityQuery(jid, 'set', [
135
+ {
136
+ tag: 'subject',
137
+ attrs: {},
138
+ content: Buffer.from(subject, 'utf-8')
139
+ }
140
+ ]);
141
+ },
142
+ communityRequestParticipantsList: async (jid) => {
143
+ const result = await communityQuery(jid, 'get', [
144
+ {
145
+ tag: 'membership_approval_requests',
146
+ attrs: {}
147
+ }
148
+ ]);
149
+ const node = getBinaryNodeChild(result, 'membership_approval_requests');
150
+ const participants = getBinaryNodeChildren(node, 'membership_approval_request');
151
+ return participants.map(v => v.attrs);
152
+ },
153
+ communityRequestParticipantsUpdate: async (jid, participants, action) => {
154
+ const result = await communityQuery(jid, 'set', [
155
+ {
156
+ tag: 'membership_requests_action',
157
+ attrs: {},
158
+ content: [
159
+ {
160
+ tag: action,
161
+ attrs: {},
162
+ content: participants.map(jid => ({
163
+ tag: 'participant',
164
+ attrs: { jid }
165
+ }))
166
+ }
167
+ ]
168
+ }
169
+ ]);
170
+ const node = getBinaryNodeChild(result, 'membership_requests_action');
171
+ const nodeAction = getBinaryNodeChild(node, action);
172
+ const participantsAffected = getBinaryNodeChildren(nodeAction, 'participant');
173
+ return participantsAffected.map(p => {
174
+ return { status: p.attrs.error || '200', jid: p.attrs.jid };
175
+ });
176
+ },
177
+ communityParticipantsUpdate: async (jid, participants, action) => {
178
+ const result = await communityQuery(jid, 'set', [
179
+ {
180
+ tag: action,
181
+ attrs: {},
182
+ content: participants.map(jid => ({
183
+ tag: 'participant',
184
+ attrs: { jid }
185
+ }))
186
+ }
187
+ ]);
188
+ const node = getBinaryNodeChild(result, action);
189
+ const participantsAffected = getBinaryNodeChildren(node, 'participant');
190
+ return participantsAffected.map(p => {
191
+ return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p };
192
+ });
193
+ },
194
+ communityUpdateDescription: async (jid, description) => {
195
+ const metadata = await communityMetadata(jid);
196
+ const prev = metadata.descId ?? null;
197
+ await communityQuery(jid, 'set', [
198
+ {
199
+ tag: 'description',
200
+ attrs: {
201
+ ...(description ? { id: generateMessageID() } : { delete: 'true' }),
202
+ ...(prev ? { prev } : {})
203
+ },
204
+ content: description ? [{ tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }] : undefined
205
+ }
206
+ ]);
207
+ },
208
+ communityInviteCode: async (jid) => {
209
+ const result = await communityQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
210
+ const inviteNode = getBinaryNodeChild(result, 'invite');
211
+ return inviteNode?.attrs.code;
212
+ },
213
+ communityRevokeInvite: async (jid) => {
214
+ const result = await communityQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
215
+ const inviteNode = getBinaryNodeChild(result, 'invite');
216
+ return inviteNode?.attrs.code;
217
+ },
218
+ communityAcceptInvite: async (code) => {
219
+ const results = await communityQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
220
+ const result = getBinaryNodeChild(results, 'community');
221
+ return result?.attrs.jid;
222
+ },
223
+ /**
224
+ * revoke a v4 invite for someone
225
+ * @param communityJid community jid
226
+ * @param invitedJid jid of person you invited
227
+ * @returns true if successful
228
+ */
229
+ communityRevokeInviteV4: async (communityJid, invitedJid) => {
230
+ const result = await communityQuery(communityJid, 'set', [
231
+ { tag: 'revoke', attrs: {}, content: [{ tag: 'participant', attrs: { jid: invitedJid } }] }
232
+ ]);
233
+ return !!result;
234
+ },
235
+ /**
236
+ * accept a CommunityInviteMessage
237
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
238
+ * @param inviteMessage the message to accept
239
+ */
240
+ communityAcceptInviteV4: ev.createBufferedFunction(async (key, inviteMessage) => {
241
+ key = typeof key === 'string' ? { remoteJid: key } : key;
242
+ const results = await communityQuery(inviteMessage.groupJid, 'set', [
243
+ {
244
+ tag: 'accept',
245
+ attrs: {
246
+ code: inviteMessage.inviteCode,
247
+ expiration: inviteMessage.inviteExpiration.toString(),
248
+ admin: key.remoteJid
249
+ }
250
+ }
251
+ ]);
252
+ // if we have the full message key
253
+ // update the invite message to be expired
254
+ if (key.id) {
255
+ // create new invite message that is expired
256
+ inviteMessage = proto.Message.GroupInviteMessage.fromObject(inviteMessage);
257
+ inviteMessage.inviteExpiration = 0;
258
+ inviteMessage.inviteCode = '';
259
+ ev.emit('messages.update', [
260
+ {
261
+ key,
262
+ update: {
263
+ message: {
264
+ groupInviteMessage: inviteMessage
265
+ }
266
+ }
267
+ }
268
+ ]);
269
+ }
270
+ // generate the community add message
271
+ await upsertMessage({
272
+ key: {
273
+ remoteJid: inviteMessage.groupJid,
274
+ id: generateMessageIDV2(sock.user?.id),
275
+ fromMe: false,
276
+ participant: key.remoteJid
277
+ },
278
+ messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
279
+ messageStubParameters: [authState.creds.me.id],
280
+ participant: key.remoteJid,
281
+ messageTimestamp: unixTimestampSeconds()
282
+ }, 'notify');
283
+ return results.attrs.from;
284
+ }),
285
+ communityGetInviteInfo: async (code) => {
286
+ const results = await communityQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
287
+ return extractCommunityMetadata(results);
288
+ },
289
+ communityToggleEphemeral: async (jid, ephemeralExpiration) => {
290
+ const content = ephemeralExpiration
291
+ ? { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } }
292
+ : { tag: 'not_ephemeral', attrs: {} };
293
+ await communityQuery(jid, 'set', [content]);
294
+ },
295
+ communitySettingUpdate: async (jid, setting) => {
296
+ await communityQuery(jid, 'set', [{ tag: setting, attrs: {} }]);
297
+ },
298
+ communityMemberAddMode: async (jid, mode) => {
299
+ await communityQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }]);
300
+ },
301
+ communityJoinApprovalMode: async (jid, mode) => {
302
+ await communityQuery(jid, 'set', [
303
+ { tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'community_join', attrs: { state: mode } }] }
304
+ ]);
305
+ },
306
+ communityFetchAllParticipating
307
+ };
308
+ };
309
+ export const extractCommunityMetadata = (result) => {
310
+ const community = getBinaryNodeChild(result, 'community');
311
+ const descChild = getBinaryNodeChild(community, 'description');
312
+ let desc;
313
+ let descId;
314
+ if (descChild) {
315
+ desc = getBinaryNodeChildString(descChild, 'body');
316
+ descId = descChild.attrs.id;
317
+ }
318
+ const communityId = community.attrs.id?.includes('@')
319
+ ? community.attrs.id
320
+ : jidEncode(community.attrs.id || '', 'g.us');
321
+ const eph = getBinaryNodeChild(community, 'ephemeral')?.attrs.expiration;
322
+ const memberAddMode = getBinaryNodeChildString(community, 'member_add_mode') === 'all_member_add';
323
+ const metadata = {
324
+ id: communityId,
325
+ subject: community.attrs.subject || '',
326
+ subjectOwner: community.attrs.s_o,
327
+ subjectTime: Number(community.attrs.s_t || 0),
328
+ size: getBinaryNodeChildren(community, 'participant').length,
329
+ creation: Number(community.attrs.creation || 0),
330
+ owner: community.attrs.creator ? jidNormalizedUser(community.attrs.creator) : undefined,
331
+ desc,
332
+ descId,
333
+ linkedParent: getBinaryNodeChild(community, 'linked_parent')?.attrs.jid || undefined,
334
+ restrict: !!getBinaryNodeChild(community, 'locked'),
335
+ announce: !!getBinaryNodeChild(community, 'announcement'),
336
+ isCommunity: !!getBinaryNodeChild(community, 'parent'),
337
+ isCommunityAnnounce: !!getBinaryNodeChild(community, 'default_sub_community'),
338
+ joinApprovalMode: !!getBinaryNodeChild(community, 'membership_approval_mode'),
339
+ memberAddMode,
340
+ participants: getBinaryNodeChildren(community, 'participant').map(({ attrs }) => {
341
+ return {
342
+ id: attrs.jid,
343
+ admin: (attrs.type || null)
344
+ };
345
+ }),
346
+ ephemeralDuration: eph ? +eph : undefined,
347
+ addressingMode: getBinaryNodeChildString(community, 'addressing_mode')
348
+ };
349
+ return metadata;
350
+ };
351
+ //# sourceMappingURL=communities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communities.js","sourceRoot":"","sources":["../../src/Socket/communities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAMN,iBAAiB,EACjB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACvF,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAEN,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,SAAS,EACT,iBAAiB,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAoB,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IAEpD,MAAM,cAAc,GAAG,KAAK,EAAE,GAAW,EAAE,IAAmB,EAAE,OAAqB,EAAE,EAAE,CACxF,KAAK,CAAC;QACL,GAAG,EAAE,IAAI;QACT,KAAK,EAAE;YACN,IAAI;YACJ,KAAK,EAAE,MAAM;YACb,EAAE,EAAE,GAAG;SACP;QACD,OAAO;KACP,CAAC,CAAA;IAEH,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;QACtG,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,MAAM,8BAA8B,GAAG,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;YAC1B,GAAG,EAAE,IAAI;YACT,KAAK,EAAE;gBACN,EAAE,EAAE,OAAO;gBACX,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,KAAK;aACX;YACD,OAAO,EAAE;gBACR;oBACC,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE;wBACR,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;wBAClC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;qBACjC;iBACD;aACD;SACD,CAAC,CAAA;QACF,MAAM,IAAI,GAAmC,EAAE,CAAA;QAC/C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAClE,IAAI,gBAAgB,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;YACxE,KAAK,MAAM,aAAa,IAAI,WAAW,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,wBAAwB,CAAC;oBACrC,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC,aAAa,CAAC;iBACxB,CAAC,CAAA;gBACF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;YACrB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAElD,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IAED,KAAK,UAAU,gBAAgB,CAAC,IAAgB;QAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACnD,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,WAAW,CAAC,CAAA;gBACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;gBACvE,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;gBACrD,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG;QAChB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;QACjB,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACxD,CAAA;IAED,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;QACrD,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAE,CAAA;QACpD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,OAAM;QACP,CAAC;QAED,MAAM,8BAA8B,EAAE,CAAA;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,OAAO;QACN,GAAG,IAAI;QACP,iBAAiB;QACjB,eAAe,EAAE,KAAK,EAAE,OAAe,EAAE,IAAY,EAAE,EAAE;YACxD,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAE1D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;gBACnD;oBACC,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE,EAAE,OAAO,EAAE;oBAClB,OAAO,EAAE;wBACR;4BACC,GAAG,EAAE,aAAa;4BAClB,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;4BAC5B,OAAO,EAAE;gCACR;oCACC,GAAG,EAAE,MAAM;oCACX,KAAK,EAAE,EAAE;oCACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC;iCACzC;6BACD;yBACD;wBACD;4BACC,GAAG,EAAE,QAAQ;4BACb,KAAK,EAAE,EAAE,gCAAgC,EAAE,kBAAkB,EAAE;yBAC/D;wBACD;4BACC,GAAG,EAAE,oCAAoC;4BACzC,KAAK,EAAE,EAAE;yBACT;wBACD;4BACC,GAAG,EAAE,qBAAqB;4BAC1B,KAAK,EAAE,EAAE;yBACT;qBACD;iBACD;aACD,CAAC,CAAA;YAEF,OAAO,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YACpC,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;gBACpC;oBACC,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;iBAC9C;aACD,CAAC,CAAA;QACH,CAAC;QACD,sBAAsB,EAAE,KAAK,EAAE,GAAW,EAAE,OAAe,EAAE,EAAE;YAC9D,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;gBAChC;oBACC,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;iBACtC;aACD,CAAC,CAAA;QACH,CAAC;QACD,gCAAgC,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;gBAC/C;oBACC,GAAG,EAAE,8BAA8B;oBACnC,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;YACvE,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAA;YAC/E,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC;QACD,kCAAkC,EAAE,KAAK,EAAE,GAAW,EAAE,YAAsB,EAAE,MAA4B,EAAE,EAAE;YAC/G,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;gBAC/C;oBACC,GAAG,EAAE,4BAA4B;oBACjC,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE;wBACR;4BACC,GAAG,EAAE,MAAM;4BACX,KAAK,EAAE,EAAE;4BACT,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACjC,GAAG,EAAE,aAAa;gCAClB,KAAK,EAAE,EAAE,GAAG,EAAE;6BACd,CAAC,CAAC;yBACH;qBACD;iBACD;aACD,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;YACrE,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACnD,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;YAC7E,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACnC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YAC5D,CAAC,CAAC,CAAA;QACH,CAAC;QACD,2BAA2B,EAAE,KAAK,EAAE,GAAW,EAAE,YAAsB,EAAE,MAAyB,EAAE,EAAE;YACrG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;gBAC/C;oBACC,GAAG,EAAE,MAAM;oBACX,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACjC,GAAG,EAAE,aAAa;wBAClB,KAAK,EAAE,EAAE,GAAG,EAAE;qBACd,CAAC,CAAC;iBACH;aACD,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC/C,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YACvE,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACnC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;YACxE,CAAC,CAAC,CAAA;QACH,CAAC;QACD,0BAA0B,EAAE,KAAK,EAAE,GAAW,EAAE,WAAoB,EAAE,EAAE;YACvE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAA;YAEpC,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;gBAChC;oBACC,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE;wBACN,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;wBACnE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzB;oBACD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC3G;aACD,CAAC,CAAA;QACH,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAC/E,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACvD,OAAO,UAAU,EAAE,KAAK,CAAC,IAAI,CAAA;QAC9B,CAAC;QACD,qBAAqB,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAC/E,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACvD,OAAO,UAAU,EAAE,KAAK,CAAC,IAAI,CAAA;QAC9B,CAAC;QACD,qBAAqB,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YAC1F,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YACvD,OAAO,MAAM,EAAE,KAAK,CAAC,GAAG,CAAA;QACzB,CAAC;QAED;;;;;WAKG;QACH,uBAAuB,EAAE,KAAK,EAAE,YAAoB,EAAE,UAAkB,EAAE,EAAE;YAC3E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE;gBACxD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE;aAC3F,CAAC,CAAA;YACF,OAAO,CAAC,CAAC,MAAM,CAAA;QAChB,CAAC;QAED;;;;WAIG;QACH,uBAAuB,EAAE,EAAE,CAAC,sBAAsB,CACjD,KAAK,EAAE,GAA0B,EAAE,aAAgD,EAAE,EAAE;YACtF,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;YACxD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,QAAS,EAAE,KAAK,EAAE;gBACpE;oBACC,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACN,IAAI,EAAE,aAAa,CAAC,UAAW;wBAC/B,UAAU,EAAE,aAAa,CAAC,gBAAiB,CAAC,QAAQ,EAAE;wBACtD,KAAK,EAAE,GAAG,CAAC,SAAU;qBACrB;iBACD;aACD,CAAC,CAAA;YAEF,kCAAkC;YAClC,0CAA0C;YAC1C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,4CAA4C;gBAC5C,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;gBAC1E,aAAa,CAAC,gBAAgB,GAAG,CAAC,CAAA;gBAClC,aAAa,CAAC,UAAU,GAAG,EAAE,CAAA;gBAC7B,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC1B;wBACC,GAAG;wBACH,MAAM,EAAE;4BACP,OAAO,EAAE;gCACR,kBAAkB,EAAE,aAAa;6BACjC;yBACD;qBACD;iBACD,CAAC,CAAA;YACH,CAAC;YAED,qCAAqC;YACrC,MAAM,aAAa,CAClB;gBACC,GAAG,EAAE;oBACJ,SAAS,EAAE,aAAa,CAAC,QAAQ;oBACjC,EAAE,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBACtC,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,GAAG,CAAC,SAAS;iBAC1B;gBACD,eAAe,EAAE,iBAAiB,CAAC,qBAAqB;gBACxD,qBAAqB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAG,CAAC,EAAE,CAAC;gBAC/C,WAAW,EAAE,GAAG,CAAC,SAAS;gBAC1B,gBAAgB,EAAE,oBAAoB,EAAE;aACxC,EACD,QAAQ,CACR,CAAA;YAED,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;QAC1B,CAAC,CACD;QACD,sBAAsB,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YAC9C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YAC1F,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACzC,CAAC;QACD,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,mBAA2B,EAAE,EAAE;YAC5E,MAAM,OAAO,GAAe,mBAAmB;gBAC9C,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE,EAAE,EAAE;gBAC7E,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACtC,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,sBAAsB,EAAE,KAAK,EAC5B,GAAW,EACX,OAAoE,EACnE,EAAE;YACH,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,sBAAsB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAoC,EAAE,EAAE;YACnF,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACzF,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkB,EAAE,EAAE;YACpE,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;gBAChC,EAAE,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;aAC5G,CAAC,CAAA;QACH,CAAC;QACD,8BAA8B;KAC9B,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAkB,EAAE,EAAE;IAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAE,CAAA;IAC1D,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAC9D,IAAI,IAAwB,CAAA;IAC5B,IAAI,MAA0B,CAAA;IAC9B,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,GAAG,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACpB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAA;IACxE,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,iBAAiB,CAAC,KAAK,gBAAgB,CAAA;IACjG,MAAM,QAAQ,GAAkB;QAC/B,EAAE,EAAE,WAAW;QACf,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE;QACtC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG;QACjC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7C,IAAI,EAAE,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,MAAM;QAC5D,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC/C,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QACvF,IAAI;QACJ,MAAM;QACN,YAAY,EAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,SAAS;QACpF,QAAQ,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACnD,QAAQ,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC;QACzD,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACtD,mBAAmB,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,uBAAuB,CAAC;QAC7E,gBAAgB,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,0BAA0B,CAAC;QAC7E,aAAa;QACb,YAAY,EAAE,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/E,OAAO;gBACN,EAAE,EAAE,KAAK,CAAC,GAAI;gBACd,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAA8B;aACxD,CAAA;QACF,CAAC,CAAC;QACF,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACzC,cAAc,EAAE,wBAAwB,CAAC,SAAS,EAAE,iBAAiB,CAAqC;KAC1G,CAAA;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC,CAAA"}