@badzz88/baileys 8.5.6 → 8.5.8

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 (225) hide show
  1. package/README.md +337 -1055
  2. package/WAProto/WAProto.proto +28 -1189
  3. package/WAProto/fix-imports.js +79 -69
  4. package/WAProto/index.d.ts +71491 -15254
  5. package/WAProto/index.js +126436 -19814
  6. package/engine-requirements.js +8 -15
  7. package/lib/Defaults/index.js +130 -0
  8. package/{src → lib}/Signal/Group/ciphertext-message.js +2 -5
  9. package/lib/Signal/Group/group-session-builder.js +30 -0
  10. package/{src → lib}/Signal/Group/group_cipher.js +11 -11
  11. package/lib/Signal/Group/index.js +12 -0
  12. package/lib/Signal/Group/keyhelper.js +18 -0
  13. package/{src → lib}/Signal/Group/sender-chain-key.js +6 -9
  14. package/{src → lib}/Signal/Group/sender-key-distribution-message.js +6 -9
  15. package/{src → lib}/Signal/Group/sender-key-message.js +9 -12
  16. package/{src → lib}/Signal/Group/sender-key-name.js +2 -5
  17. package/{src → lib}/Signal/Group/sender-key-record.js +8 -11
  18. package/{src → lib}/Signal/Group/sender-key-state.js +6 -9
  19. package/lib/Signal/Group/sender-message-key.js +26 -0
  20. package/{src → lib}/Signal/libsignal.js +131 -155
  21. package/{src → lib}/Signal/lid-mapping.js +27 -23
  22. package/lib/Socket/Client/index.js +3 -0
  23. package/lib/Socket/Client/types.js +11 -0
  24. package/{src → lib}/Socket/Client/websocket.js +11 -18
  25. package/{src → lib}/Socket/business.js +35 -67
  26. package/{src → lib}/Socket/chats.js +294 -550
  27. package/{src → lib}/Socket/communities.js +82 -114
  28. package/lib/Socket/graphql.js +716 -0
  29. package/lib/Socket/groups.js +374 -0
  30. package/lib/Socket/index.js +18 -0
  31. package/lib/Socket/interop.js +463 -0
  32. package/{src → lib}/Socket/luxu.js +120 -82
  33. package/lib/Socket/messages-recv.js +1916 -0
  34. package/lib/Socket/messages-send.js +1436 -0
  35. package/lib/Socket/mex.js +54 -0
  36. package/lib/Socket/newsletter.js +757 -0
  37. package/lib/Socket/privacy.js +318 -0
  38. package/{src → lib}/Socket/socket.js +356 -244
  39. package/lib/Socket/username.js +236 -0
  40. package/lib/Store/index.js +10 -0
  41. package/{src → lib}/Store/keyed-db.js +11 -21
  42. package/lib/Store/make-cache-manager-store.js +85 -0
  43. package/lib/Store/make-in-memory-store.js +244 -0
  44. package/{src → lib}/Store/make-ordered-dictionary.js +19 -25
  45. package/{src → lib}/Store/object-repository.js +11 -5
  46. package/lib/Types/Auth.js +2 -0
  47. package/lib/Types/Bussines.js +2 -0
  48. package/lib/Types/Call.js +2 -0
  49. package/lib/Types/Chat.js +8 -0
  50. package/lib/Types/Contact.js +2 -0
  51. package/lib/Types/Events.js +2 -0
  52. package/lib/Types/GroupMetadata.js +2 -0
  53. package/lib/Types/Label.js +25 -0
  54. package/lib/Types/LabelAssociation.js +7 -0
  55. package/lib/Types/Message.js +11 -0
  56. package/lib/Types/Mex.js +111 -0
  57. package/lib/Types/Product.js +2 -0
  58. package/lib/Types/Signal.js +2 -0
  59. package/lib/Types/Socket.js +3 -0
  60. package/lib/Types/State.js +56 -0
  61. package/lib/Types/USync.js +2 -0
  62. package/lib/Types/index.js +26 -0
  63. package/{src → lib}/Utils/auth-utils.js +91 -43
  64. package/lib/Utils/browser-utils.js +48 -0
  65. package/lib/Utils/business.js +231 -0
  66. package/lib/Utils/chat-utils.js +872 -0
  67. package/lib/Utils/companion-reg-client-utils.js +35 -0
  68. package/lib/Utils/crypto.js +118 -0
  69. package/lib/Utils/decode-wa-message.js +350 -0
  70. package/{src → lib}/Utils/event-buffer.js +81 -39
  71. package/lib/Utils/generics.js +403 -0
  72. package/lib/Utils/history.js +134 -0
  73. package/{src → lib}/Utils/identity-change-handler.js +9 -11
  74. package/lib/Utils/index.js +23 -0
  75. package/lib/Utils/link-preview.js +85 -0
  76. package/lib/Utils/logger.js +3 -0
  77. package/lib/Utils/lt-hash.js +8 -0
  78. package/{src → lib}/Utils/make-mutex.js +7 -10
  79. package/lib/Utils/message-composer.js +273 -0
  80. package/{src → lib}/Utils/message-retry-manager.js +76 -28
  81. package/lib/Utils/messages-media.js +870 -0
  82. package/lib/Utils/messages.js +1337 -0
  83. package/lib/Utils/noise-handler.js +201 -0
  84. package/{src → lib}/Utils/offline-node-processor.js +10 -4
  85. package/{src → lib}/Utils/pre-key-manager.js +27 -11
  86. package/lib/Utils/process-message.js +630 -0
  87. package/{src → lib}/Utils/reporting-utils.js +12 -15
  88. package/lib/Utils/signal.js +201 -0
  89. package/{src → lib}/Utils/stanza-ack.js +12 -4
  90. package/lib/Utils/sticker.js +110 -0
  91. package/{src → lib}/Utils/sync-action-utils.js +14 -10
  92. package/{src → lib}/Utils/tc-token-utils.js +48 -43
  93. package/{src → lib}/Utils/use-multi-file-auth-state.js +35 -25
  94. package/lib/Utils/validate-connection.js +203 -0
  95. package/{src → lib}/WABinary/constants.js +9 -12
  96. package/{src → lib}/WABinary/decode.js +38 -118
  97. package/{src → lib}/WABinary/encode.js +6 -11
  98. package/lib/WABinary/generic-utils.js +204 -0
  99. package/lib/WABinary/index.js +6 -0
  100. package/lib/WABinary/jid-utils.js +98 -0
  101. package/lib/WABinary/types.js +2 -0
  102. package/{src → lib}/WAM/BinaryInfo.js +2 -5
  103. package/{src → lib}/WAM/constants.js +4 -16635
  104. package/{src → lib}/WAM/encode.js +18 -17
  105. package/lib/WAM/index.js +4 -0
  106. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  107. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  108. package/lib/WAUSync/Protocols/USyncContactProtocol.js +54 -0
  109. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  110. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  111. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +58 -0
  112. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +30 -0
  113. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  114. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +28 -0
  115. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +39 -0
  116. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  117. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +27 -0
  118. package/lib/WAUSync/Protocols/index.js +12 -0
  119. package/lib/WAUSync/USyncQuery.js +151 -0
  120. package/lib/WAUSync/USyncUser.js +56 -0
  121. package/lib/WAUSync/index.js +3 -0
  122. package/{src → lib}/index.js +16 -51
  123. package/package.json +129 -99
  124. package/LICENSE +0 -21
  125. package/src/Defaults/index.js +0 -186
  126. package/src/Defaults/phonenumber-mcc.json +0 -223
  127. package/src/Signal/Group/group-session-builder.js +0 -86
  128. package/src/Signal/Group/index.js +0 -140
  129. package/src/Signal/Group/keyhelper.js +0 -77
  130. package/src/Signal/Group/sender-message-key.js +0 -29
  131. package/src/Socket/Client/index.js +0 -31
  132. package/src/Socket/Client/types.js +0 -13
  133. package/src/Socket/aigroups.js +0 -221
  134. package/src/Socket/graphql.js +0 -523
  135. package/src/Socket/groups.js +0 -516
  136. package/src/Socket/index.js +0 -31
  137. package/src/Socket/interactive-handler.js +0 -527
  138. package/src/Socket/interop.js +0 -339
  139. package/src/Socket/managed-account.js +0 -98
  140. package/src/Socket/messages-recv.js +0 -2685
  141. package/src/Socket/messages-send.js +0 -2047
  142. package/src/Socket/mex.js +0 -57
  143. package/src/Socket/newsletter.js +0 -455
  144. package/src/Socket/privacy.js +0 -125
  145. package/src/Socket/registration.js +0 -236
  146. package/src/Socket/text-router.js +0 -65
  147. package/src/Socket/username.js +0 -130
  148. package/src/Store/index.js +0 -33
  149. package/src/Store/make-cache-manager-store.js +0 -84
  150. package/src/Store/make-in-memory-store.js +0 -551
  151. package/src/Types/Auth.js +0 -31
  152. package/src/Types/Bussines.js +0 -2
  153. package/src/Types/Call.js +0 -2
  154. package/src/Types/Chat.js +0 -4
  155. package/src/Types/Contact.js +0 -2
  156. package/src/Types/Events.js +0 -2
  157. package/src/Types/GroupMetadata.js +0 -2
  158. package/src/Types/Label.js +0 -26
  159. package/src/Types/LabelAssociation.js +0 -8
  160. package/src/Types/Message.js +0 -93
  161. package/src/Types/Mex.js +0 -112
  162. package/src/Types/Newsletter.js +0 -109
  163. package/src/Types/Product.js +0 -2
  164. package/src/Types/Signal.js +0 -2
  165. package/src/Types/Socket.js +0 -2
  166. package/src/Types/State.js +0 -62
  167. package/src/Types/USync.js +0 -2
  168. package/src/Types/index.js +0 -56
  169. package/src/Utils/browser-utils.js +0 -112
  170. package/src/Utils/business.js +0 -240
  171. package/src/Utils/chat-utils.js +0 -1230
  172. package/src/Utils/command-loader.d.ts +0 -27
  173. package/src/Utils/command-loader.js +0 -89
  174. package/src/Utils/companion-reg-client-utils.js +0 -40
  175. package/src/Utils/consumer-application.js +0 -105
  176. package/src/Utils/crypto.js +0 -118
  177. package/src/Utils/curve25519-js.js +0 -242
  178. package/src/Utils/decode-wa-message.js +0 -529
  179. package/src/Utils/generics.js +0 -483
  180. package/src/Utils/group-history.js +0 -44
  181. package/src/Utils/history.js +0 -232
  182. package/src/Utils/index.js +0 -58
  183. package/src/Utils/jid-display-normalization.js +0 -195
  184. package/src/Utils/link-preview.js +0 -135
  185. package/src/Utils/logger.js +0 -8
  186. package/src/Utils/lt-hash.js +0 -25
  187. package/src/Utils/message-composer.js +0 -471
  188. package/src/Utils/messages-media.js +0 -843
  189. package/src/Utils/messages.js +0 -2817
  190. package/src/Utils/meta-ai-msmsg.js +0 -222
  191. package/src/Utils/native-bridge.js +0 -68
  192. package/src/Utils/noise-handler.js +0 -169
  193. package/src/Utils/process-message.js +0 -950
  194. package/src/Utils/session-pool.d.ts +0 -14
  195. package/src/Utils/session-pool.js +0 -70
  196. package/src/Utils/signal.js +0 -217
  197. package/src/Utils/sticker.d.ts +0 -13
  198. package/src/Utils/sticker.js +0 -123
  199. package/src/Utils/validate-connection.js +0 -209
  200. package/src/Utils/view-once-cache.d.ts +0 -12
  201. package/src/Utils/view-once-cache.js +0 -63
  202. package/src/Utils/voip-rekey.js +0 -22
  203. package/src/WABinary/generic-utils.js +0 -238
  204. package/src/WABinary/index.js +0 -34
  205. package/src/WABinary/jid-utils.js +0 -351
  206. package/src/WABinary/types.js +0 -2
  207. package/src/WAM/index.js +0 -32
  208. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -53
  209. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +0 -44
  210. package/src/WAUSync/Protocols/USyncContactProtocol.js +0 -55
  211. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +0 -55
  212. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -31
  213. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +0 -54
  214. package/src/WAUSync/Protocols/USyncLIDProtocol.js +0 -32
  215. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -473
  216. package/src/WAUSync/Protocols/USyncPictureProtocol.js +0 -34
  217. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +0 -29
  218. package/src/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  219. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
  220. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +0 -28
  221. package/src/WAUSync/Protocols/index.js +0 -40
  222. package/src/WAUSync/USyncQuery.js +0 -126
  223. package/src/WAUSync/USyncUser.js +0 -50
  224. package/src/WAUSync/index.js +0 -32
  225. package/src/antiban.js +0 -4152
@@ -1,77 +0,0 @@
1
- 'use strict';
2
- var __createBinding = (this && this.__createBinding) ||
3
- (Object.create
4
- ? function (o, m, k, k2) {
5
- if (k2 === undefined)
6
- k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k];
13
- }
14
- };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined)
20
- k2 = k;
21
- o[k2] = m[k];
22
- });
23
- var __setModuleDefault = (this && this.__setModuleDefault) ||
24
- (Object.create
25
- ? function (o, v) {
26
- Object.defineProperty(o, 'default', { enumerable: true, value: v });
27
- }
28
- : function (o, v) {
29
- o['default'] = v;
30
- });
31
- var __importStar = (this && this.__importStar) ||
32
- (function () {
33
- var ownKeys = function (o) {
34
- ownKeys =
35
- Object.getOwnPropertyNames ||
36
- function (o) {
37
- var ar = [];
38
- for (var k in o)
39
- if (Object.prototype.hasOwnProperty.call(o, k))
40
- ar[ar.length] = k;
41
- return ar;
42
- };
43
- return ownKeys(o);
44
- };
45
- return function (mod) {
46
- if (mod && mod.__esModule)
47
- return mod;
48
- var result = {};
49
- if (mod != null)
50
- for (var k = ownKeys(mod), i = 0; i < k.length; i++)
51
- if (k[i] !== 'default')
52
- __createBinding(result, mod, k[i]);
53
- __setModuleDefault(result, mod);
54
- return result;
55
- };
56
- })();
57
- Object.defineProperty(exports, '__esModule', { value: true });
58
- exports.generateSenderKey = generateSenderKey;
59
- exports.generateSenderKeyId = generateSenderKeyId;
60
- exports.generateSenderSigningKey = generateSenderSigningKey;
61
- const nodeCrypto = __importStar(require('crypto'));
62
- const Crypto_1 = require('../../Utils/crypto');
63
- function generateSenderKey() {
64
- return nodeCrypto.randomBytes(32);
65
- }
66
- function generateSenderKeyId() {
67
- return nodeCrypto.randomInt(2147483647);
68
- }
69
- function generateSenderSigningKey(key) {
70
- if (!key) {
71
- key = Crypto_1.Curve.generateKeyPair();
72
- }
73
- return {
74
- public: Crypto_1.generateSignalPubKey(key.public),
75
- private: Buffer.from(key.private)
76
- };
77
- }
@@ -1,29 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.SenderMessageKey = void 0;
4
- const Crypto_1 = require('../../Utils/crypto');
5
- class SenderMessageKey {
6
- constructor(iteration, seed) {
7
- const derived = Buffer.from(Crypto_1.hkdf(seed, 96, { salt: Buffer.alloc(32), info: 'WhisperGroup' }));
8
- const keys = new Uint8Array(32);
9
- keys.set(new Uint8Array(derived.slice(16, 32)));
10
- keys.set(new Uint8Array(derived.slice(32, 48)), 16);
11
- this.iv = Buffer.from(derived.slice(0, 16));
12
- this.cipherKey = Buffer.from(keys.buffer);
13
- this.iteration = iteration;
14
- this.seed = seed;
15
- }
16
- getIteration() {
17
- return this.iteration;
18
- }
19
- getIv() {
20
- return this.iv;
21
- }
22
- getCipherKey() {
23
- return this.cipherKey;
24
- }
25
- getSeed() {
26
- return this.seed;
27
- }
28
- }
29
- exports.SenderMessageKey = SenderMessageKey;
@@ -1,31 +0,0 @@
1
- 'use strict';
2
- var __createBinding = (this && this.__createBinding) ||
3
- (Object.create
4
- ? function (o, m, k, k2) {
5
- if (k2 === undefined)
6
- k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k];
13
- }
14
- };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined)
20
- k2 = k;
21
- o[k2] = m[k];
22
- });
23
- var __exportStar = (this && this.__exportStar) ||
24
- function (m, exports) {
25
- for (var p in m)
26
- if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p))
27
- __createBinding(exports, m, p);
28
- };
29
- Object.defineProperty(exports, '__esModule', { value: true });
30
- __exportStar(require('./types'), exports);
31
- __exportStar(require('./websocket'), exports);
@@ -1,13 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.AbstractSocketClient = void 0;
4
- const events_1 = require('events');
5
- class AbstractSocketClient extends events_1.EventEmitter {
6
- constructor(url, config) {
7
- super();
8
- this.url = url;
9
- this.config = config;
10
- this.setMaxListeners(0);
11
- }
12
- }
13
- exports.AbstractSocketClient = AbstractSocketClient;
@@ -1,221 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.extractAIGroupMetadata = exports.makeAIGroupsSocket = void 0;
4
- const Types_1 = require('../Types');
5
- const Utils_1 = require('../Utils');
6
- const WABinary_1 = require('../WABinary');
7
- const groups_1 = require('./groups');
8
- const makeAIGroupsSocket = config => {
9
- const sock = (0, groups_1.makeGroupsSocket)(config);
10
- const { ev, query } = sock;
11
- const aiGroupQuery = async (jid, type, content) => query({
12
- tag: 'iq',
13
- attrs: {
14
- type,
15
- xmlns: 'w:g2',
16
- to: jid
17
- },
18
- content
19
- });
20
- const aiGroupMetadata = async (jid) => {
21
- const result = await aiGroupQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
22
- return (0, exports.extractAIGroupMetadata)(result);
23
- };
24
- sock.ws.on('CB:notification,w:gp2', async (node) => {
25
- const { attrs, content } = node;
26
- if (!Array.isArray(content) || content.length === 0)
27
- return;
28
- const inner = content[0];
29
- const tag = inner.tag;
30
- const groupId = typeof attrs.from === 'string'
31
- ? attrs.from
32
- : attrs.from?.$1?.user
33
- ? (0, WABinary_1.jidEncode)(attrs.from.$1.user, 'g.us')
34
- : undefined;
35
- if (!groupId)
36
- return;
37
- if (tag === 'create') {
38
- try {
39
- const meta = await aiGroupMetadata(groupId);
40
- ev.emit('groups.upsert', [meta]);
41
- }
42
- catch {
43
- ev.emit('groups.upsert', [{ id: groupId }]);
44
- }
45
- }
46
- else if (tag === 'promote' || tag === 'demote' || tag === 'remove' || tag === 'add') {
47
- const participants = (0, WABinary_1.getBinaryNodeChildren)(inner, 'participant')
48
- .map(p => {
49
- const jid = p.attrs.jid;
50
- if (typeof jid === 'string')
51
- return jid;
52
- if (jid?.$1) {
53
- return (0, WABinary_1.jidEncode)(jid.$1.user, jid.$1.server || 's.whatsapp.net');
54
- }
55
- return undefined;
56
- })
57
- .filter(Boolean);
58
- ev.emit('group-participants.update', {
59
- id: groupId,
60
- participants,
61
- action: tag
62
- });
63
- }
64
- else if (tag === 'subject') {
65
- ev.emit('groups.update', [{ id: groupId, subject: inner.attrs?.subject }]);
66
- }
67
- await sock.sendMessageAck(node);
68
- });
69
- return {
70
- ...sock,
71
- aiGroupMetadata,
72
- aiGroupCreate: async (subject, participants = [], options = {}) => {
73
- if (!Array.isArray(participants))
74
- participants = [];
75
- const key = (0, Utils_1.generateMessageIDV2)();
76
- const { ephemeralExpiration = 86400, memberAddMode = 'all_member_add', memberShareGroupHistoryMode = 'all_member_share', memberLinkMode = 'all_member_link' } = options;
77
- const result = await aiGroupQuery('@g.us', 'set', [
78
- {
79
- tag: 'create',
80
- attrs: {
81
- subject,
82
- key
83
- },
84
- content: participants.map(jid => ({
85
- tag: 'participant',
86
- attrs: { jid }
87
- }))
88
- }
89
- ]);
90
- return (0, exports.extractAIGroupMetadata)(result);
91
- },
92
- aiGroupAddBot: async (jid, botUser = '867051314767696') => {
93
- const result = await aiGroupQuery(jid, 'set', [
94
- {
95
- tag: 'add',
96
- attrs: {},
97
- content: [
98
- {
99
- tag: 'participant',
100
- attrs: { jid: `${botUser}@bot` }
101
- }
102
- ]
103
- }
104
- ]);
105
- const node = (0, WABinary_1.getBinaryNodeChild)(result, 'add');
106
- const participantsAffected = (0, WABinary_1.getBinaryNodeChildren)(node, 'participant');
107
- return participantsAffected.map(p => ({
108
- status: p.attrs.error || '200',
109
- jid: p.attrs.jid
110
- }));
111
- },
112
- aiGroupLeave: async (id) => {
113
- await aiGroupQuery('@g.us', 'set', [
114
- {
115
- tag: 'leave',
116
- attrs: {},
117
- content: [{ tag: 'group', attrs: { id } }]
118
- }
119
- ]);
120
- },
121
- aiGroupParticipantsUpdate: async (jid, participants, action) => {
122
- const result = await aiGroupQuery(jid, 'set', [
123
- {
124
- tag: action,
125
- attrs: {},
126
- content: participants.map(jid => ({
127
- tag: 'participant',
128
- attrs: { jid }
129
- }))
130
- }
131
- ]);
132
- const node = (0, WABinary_1.getBinaryNodeChild)(result, action);
133
- const participantsAffected = (0, WABinary_1.getBinaryNodeChildren)(node, 'participant');
134
- return participantsAffected.map(p => ({
135
- status: p.attrs.error || '200',
136
- jid: p.attrs.jid,
137
- content: p
138
- }));
139
- },
140
- aiGroupUpdateSubject: async (jid, subject) => {
141
- await aiGroupQuery(jid, 'set', [
142
- {
143
- tag: 'subject',
144
- attrs: {},
145
- content: Buffer.from(subject, 'utf-8')
146
- }
147
- ]);
148
- },
149
- aiGroupInviteCode: async (jid) => {
150
- const result = await aiGroupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
151
- const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
152
- return inviteNode?.attrs.code;
153
- },
154
- aiGroupRevokeInvite: async (jid) => {
155
- const result = await aiGroupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
156
- const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
157
- return inviteNode?.attrs.code;
158
- },
159
- aiGroupAcceptInvite: async (code) => {
160
- const results = await aiGroupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
161
- const result = (0, WABinary_1.getBinaryNodeChild)(results, 'group');
162
- return result?.attrs.jid;
163
- },
164
- aiGroupSettingUpdate: async (jid, setting) => {
165
- await aiGroupQuery(jid, 'set', [{ tag: setting, attrs: {} }]);
166
- },
167
- aiGroupToggleEphemeral: async (jid, ephemeralExpiration) => {
168
- const content = ephemeralExpiration
169
- ? { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } }
170
- : { tag: 'not_ephemeral', attrs: {} };
171
- await aiGroupQuery(jid, 'set', [content]);
172
- }
173
- };
174
- };
175
- exports.makeAIGroupsSocket = makeAIGroupsSocket;
176
- const extractAIGroupMetadata = result => {
177
- const createNode = (0, WABinary_1.getBinaryNodeChild)(result, 'create');
178
- const group = (0, WABinary_1.getBinaryNodeChild)(createNode || result, 'group') ||
179
- (0, WABinary_1.getBinaryNodeChild)(result, 'group');
180
- const descChild = (0, WABinary_1.getBinaryNodeChild)(group, 'description');
181
- let desc, descId, descOwner, descOwnerPn, descTime;
182
- if (descChild) {
183
- desc = (0, WABinary_1.getBinaryNodeChildString)(descChild, 'body');
184
- descOwner = descChild.attrs.participant ? (0, WABinary_1.jidNormalizedUser)(descChild.attrs.participant) : undefined;
185
- descOwnerPn = descChild.attrs.participant_pn
186
- ? (0, WABinary_1.jidNormalizedUser)(descChild.attrs.participant_pn)
187
- : undefined;
188
- descTime = +descChild.attrs.t;
189
- descId = descChild.attrs.id;
190
- }
191
- const groupId = group.attrs.id.includes('@') ? group.attrs.id : (0, WABinary_1.jidEncode)(group.attrs.id, 'g.us');
192
- const eph = (0, WABinary_1.getBinaryNodeChild)(group, 'ephemeral')?.attrs.expiration;
193
- const metadata = {
194
- id: groupId,
195
- subject: group.attrs.subject,
196
- subjectTime: +group.attrs.s_t,
197
- creation: +group.attrs.creation,
198
- owner: group.attrs.creator ? (0, WABinary_1.jidNormalizedUser)(group.attrs.creator) : undefined,
199
- ownerPn: group.attrs.creator_pn ? (0, WABinary_1.jidNormalizedUser)(group.attrs.creator_pn) : undefined,
200
- owner_country_code: group.attrs.creator_country_code,
201
- size: group.attrs.size ? +group.attrs.size : (0, WABinary_1.getBinaryNodeChildren)(group, 'participant').length,
202
- desc,
203
- descId,
204
- descOwner,
205
- descOwnerPn,
206
- descTime,
207
- isAIGroup: true,
208
- addressingMode: group.attrs.addressing_mode === 'lid' ? Types_1.WAMessageAddressingMode.LID : Types_1.WAMessageAddressingMode.PN,
209
- participants: (0, WABinary_1.getBinaryNodeChildren)(group, 'participant').map(({ attrs }) => ({
210
- id: attrs.jid,
211
- phoneNumber: (0, WABinary_1.isLidUser)(attrs.jid) && (0, WABinary_1.isPnUser)(attrs.phone_number)
212
- ? attrs.phone_number
213
- : undefined,
214
- lid: (0, WABinary_1.isPnUser)(attrs.jid) && (0, WABinary_1.isLidUser)(attrs.lid) ? attrs.lid : undefined,
215
- admin: attrs.type || null
216
- })),
217
- ephemeralDuration: eph ? +eph : undefined
218
- };
219
- return metadata;
220
- };
221
- exports.extractAIGroupMetadata = extractAIGroupMetadata;