@queenanya/baileys 7.4.6 → 7.4.10

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 (44) hide show
  1. package/lib/Defaults/baileys-version.json +1 -1
  2. package/lib/Socket/business.d.ts +7 -11
  3. package/lib/Socket/chats.d.ts +9 -12
  4. package/lib/Socket/chats.js +50 -79
  5. package/lib/Socket/communities.d.ts +216 -0
  6. package/lib/Socket/communities.js +354 -0
  7. package/lib/Socket/groups.d.ts +7 -11
  8. package/lib/Socket/index.d.ts +37 -11
  9. package/lib/Socket/index.js +2 -2
  10. package/lib/Socket/messages-recv.d.ts +7 -11
  11. package/lib/Socket/messages-send.d.ts +7 -11
  12. package/lib/Socket/newsletter.d.ts +7 -11
  13. package/lib/Socket/socket.js +1 -0
  14. package/lib/Socket/usync.d.ts +38 -0
  15. package/lib/Socket/usync.js +70 -0
  16. package/lib/Types/Chat.d.ts +3 -0
  17. package/lib/Types/Contact.d.ts +5 -0
  18. package/lib/Types/USync.d.ts +25 -0
  19. package/lib/Types/USync.js +2 -0
  20. package/lib/Utils/chat-utils.js +11 -0
  21. package/lib/Utils/generics.js +3 -2
  22. package/lib/Utils/index.d.ts +1 -0
  23. package/lib/Utils/index.js +1 -0
  24. package/lib/Utils/use-single-file-auth-state.d.ts +5 -0
  25. package/lib/Utils/use-single-file-auth-state.js +66 -0
  26. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  27. package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
  28. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  29. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  30. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  31. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  32. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  33. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  34. package/lib/WAUSync/Protocols/index.d.ts +4 -0
  35. package/lib/WAUSync/Protocols/index.js +20 -0
  36. package/lib/WAUSync/USyncQuery.d.ts +26 -0
  37. package/lib/WAUSync/USyncQuery.js +79 -0
  38. package/lib/WAUSync/USyncUser.d.ts +10 -0
  39. package/lib/WAUSync/USyncUser.js +22 -0
  40. package/lib/WAUSync/index.d.ts +3 -0
  41. package/lib/WAUSync/index.js +19 -0
  42. package/lib/index.d.ts +1 -0
  43. package/lib/index.js +1 -0
  44. package/package.json +4 -4
@@ -0,0 +1,354 @@
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
+ exports.extractCommunityMetadata = exports.makeCommunitiesSocket = void 0;
7
+ const WAProto_1 = require("../../WAProto");
8
+ const Types_1 = require("../Types");
9
+ const Utils_1 = require("../Utils");
10
+ const logger_1 = __importDefault(require("../Utils/logger"));
11
+ const WABinary_1 = require("../WABinary");
12
+ const business_1 = require("./business");
13
+ const makeCommunitiesSocket = (config) => {
14
+ const sock = (0, business_1.makeBusinessSocket)(config);
15
+ const { authState, ev, query, upsertMessage } = sock;
16
+ const communityQuery = async (jid, type, content) => (query({
17
+ tag: 'iq',
18
+ attrs: {
19
+ type,
20
+ xmlns: 'w:g2',
21
+ to: jid,
22
+ },
23
+ content
24
+ }));
25
+ const communityMetadata = async (jid) => {
26
+ const result = await communityQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
27
+ return (0, exports.extractCommunityMetadata)(result);
28
+ };
29
+ const communityFetchAllParticipating = async () => {
30
+ const result = await query({
31
+ tag: 'iq',
32
+ attrs: {
33
+ to: '@g.us',
34
+ xmlns: 'w:g2',
35
+ type: 'get',
36
+ },
37
+ content: [
38
+ {
39
+ tag: 'participating',
40
+ attrs: {},
41
+ content: [
42
+ { tag: 'participants', attrs: {} },
43
+ { tag: 'description', attrs: {} }
44
+ ]
45
+ }
46
+ ]
47
+ });
48
+ const data = {};
49
+ const communitiesChild = (0, WABinary_1.getBinaryNodeChild)(result, 'communities');
50
+ if (communitiesChild) {
51
+ const communities = (0, WABinary_1.getBinaryNodeChildren)(communitiesChild, 'community');
52
+ for (const communityNode of communities) {
53
+ const meta = (0, exports.extractCommunityMetadata)({
54
+ tag: 'result',
55
+ attrs: {},
56
+ content: [communityNode]
57
+ });
58
+ data[meta.id] = meta;
59
+ }
60
+ }
61
+ sock.ev.emit('groups.update', Object.values(data));
62
+ return data;
63
+ };
64
+ async function parseGroupResult(node) {
65
+ logger_1.default.info({ node }, 'parseGroupResult');
66
+ const groupNode = (0, WABinary_1.getBinaryNodeChild)(node, 'group');
67
+ if (groupNode) {
68
+ try {
69
+ logger_1.default.info({ groupNode }, 'groupNode');
70
+ const metadata = await sock.groupMetadata(`${groupNode.attrs.id}@g.us`);
71
+ return metadata ? metadata : Optional.empty();
72
+ }
73
+ catch (error) {
74
+ console.error('Error parsing group metadata:', error);
75
+ return Optional.empty();
76
+ }
77
+ }
78
+ return Optional.empty();
79
+ }
80
+ const Optional = {
81
+ empty: () => null,
82
+ of: (value) => value !== null ? { value } : null
83
+ };
84
+ sock.ws.on('CB:ib,,dirty', async (node) => {
85
+ const { attrs } = (0, WABinary_1.getBinaryNodeChild)(node, 'dirty');
86
+ if (attrs.type !== 'communities') {
87
+ return;
88
+ }
89
+ await communityFetchAllParticipating();
90
+ await sock.cleanDirtyBits('groups');
91
+ });
92
+ return {
93
+ ...sock,
94
+ communityMetadata,
95
+ communityCreate: async (subject, body) => {
96
+ const descriptionId = (0, Utils_1.generateMessageID)().substring(0, 12); // Simulando um "HexFormat.of().formatHex(Bytes.random(12))"
97
+ const result = await communityQuery('@g.us', 'set', [
98
+ {
99
+ tag: 'create',
100
+ attrs: { subject },
101
+ content: [
102
+ {
103
+ tag: 'description',
104
+ attrs: { id: descriptionId },
105
+ content: [{
106
+ tag: 'body',
107
+ attrs: {},
108
+ content: Buffer.from(body || '', 'utf-8')
109
+ }]
110
+ },
111
+ {
112
+ tag: 'parent',
113
+ attrs: { 'default_membership_approval_mode': 'request_required' }
114
+ },
115
+ {
116
+ tag: 'allow_non_admin_sub_group_creation',
117
+ attrs: {}
118
+ },
119
+ {
120
+ tag: 'create_general_chat',
121
+ attrs: {}
122
+ }
123
+ ]
124
+ }
125
+ ]);
126
+ return await parseGroupResult(result);
127
+ },
128
+ communityLeave: async (id) => {
129
+ await communityQuery('@g.us', 'set', [
130
+ {
131
+ tag: 'leave',
132
+ attrs: {},
133
+ content: [
134
+ { tag: 'community', attrs: { id } }
135
+ ]
136
+ }
137
+ ]);
138
+ },
139
+ communityUpdateSubject: async (jid, subject) => {
140
+ await communityQuery(jid, 'set', [
141
+ {
142
+ tag: 'subject',
143
+ attrs: {},
144
+ content: Buffer.from(subject, 'utf-8')
145
+ }
146
+ ]);
147
+ },
148
+ communityRequestParticipantsList: async (jid) => {
149
+ const result = await communityQuery(jid, 'get', [
150
+ {
151
+ tag: 'membership_approval_requests',
152
+ attrs: {}
153
+ }
154
+ ]);
155
+ const node = (0, WABinary_1.getBinaryNodeChild)(result, 'membership_approval_requests');
156
+ const participants = (0, WABinary_1.getBinaryNodeChildren)(node, 'membership_approval_request');
157
+ return participants.map(v => v.attrs);
158
+ },
159
+ communityRequestParticipantsUpdate: async (jid, participants, action) => {
160
+ const result = await communityQuery(jid, 'set', [{
161
+ tag: 'membership_requests_action',
162
+ attrs: {},
163
+ content: [
164
+ {
165
+ tag: action,
166
+ attrs: {},
167
+ content: participants.map(jid => ({
168
+ tag: 'participant',
169
+ attrs: { jid }
170
+ }))
171
+ }
172
+ ]
173
+ }]);
174
+ const node = (0, WABinary_1.getBinaryNodeChild)(result, 'membership_requests_action');
175
+ const nodeAction = (0, WABinary_1.getBinaryNodeChild)(node, action);
176
+ const participantsAffected = (0, WABinary_1.getBinaryNodeChildren)(nodeAction, 'participant');
177
+ return participantsAffected.map(p => {
178
+ return { status: p.attrs.error || '200', jid: p.attrs.jid };
179
+ });
180
+ },
181
+ communityParticipantsUpdate: async (jid, participants, action) => {
182
+ const result = await communityQuery(jid, 'set', [
183
+ {
184
+ tag: action,
185
+ attrs: {},
186
+ content: participants.map(jid => ({
187
+ tag: 'participant',
188
+ attrs: { jid }
189
+ }))
190
+ }
191
+ ]);
192
+ const node = (0, WABinary_1.getBinaryNodeChild)(result, action);
193
+ const participantsAffected = (0, WABinary_1.getBinaryNodeChildren)(node, 'participant');
194
+ return participantsAffected.map(p => {
195
+ return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p };
196
+ });
197
+ },
198
+ communityUpdateDescription: async (jid, description) => {
199
+ var _a;
200
+ const metadata = await communityMetadata(jid);
201
+ const prev = (_a = metadata.descId) !== null && _a !== void 0 ? _a : null;
202
+ await communityQuery(jid, 'set', [
203
+ {
204
+ tag: 'description',
205
+ attrs: {
206
+ ...(description ? { id: (0, Utils_1.generateMessageID)() } : { delete: 'true' }),
207
+ ...(prev ? { prev } : {})
208
+ },
209
+ content: description ? [
210
+ { tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }
211
+ ] : undefined
212
+ }
213
+ ]);
214
+ },
215
+ communityInviteCode: async (jid) => {
216
+ const result = await communityQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
217
+ const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
218
+ return inviteNode === null || inviteNode === void 0 ? void 0 : inviteNode.attrs.code;
219
+ },
220
+ communityRevokeInvite: async (jid) => {
221
+ const result = await communityQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
222
+ const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
223
+ return inviteNode === null || inviteNode === void 0 ? void 0 : inviteNode.attrs.code;
224
+ },
225
+ communityAcceptInvite: async (code) => {
226
+ const results = await communityQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
227
+ const result = (0, WABinary_1.getBinaryNodeChild)(results, 'community');
228
+ return result === null || result === void 0 ? void 0 : result.attrs.jid;
229
+ },
230
+ /**
231
+ * revoke a v4 invite for someone
232
+ * @param communityJid community jid
233
+ * @param invitedJid jid of person you invited
234
+ * @returns true if successful
235
+ */
236
+ communityRevokeInviteV4: async (communityJid, invitedJid) => {
237
+ const result = await communityQuery(communityJid, 'set', [{ tag: 'revoke', attrs: {}, content: [{ tag: 'participant', attrs: { jid: invitedJid } }] }]);
238
+ return !!result;
239
+ },
240
+ /**
241
+ * accept a CommunityInviteMessage
242
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
243
+ * @param inviteMessage the message to accept
244
+ */
245
+ communityAcceptInviteV4: ev.createBufferedFunction(async (key, inviteMessage) => {
246
+ var _a;
247
+ key = typeof key === 'string' ? { remoteJid: key } : key;
248
+ const results = await communityQuery(inviteMessage.groupJid, 'set', [{
249
+ tag: 'accept',
250
+ attrs: {
251
+ code: inviteMessage.inviteCode,
252
+ expiration: inviteMessage.inviteExpiration.toString(),
253
+ admin: key.remoteJid
254
+ }
255
+ }]);
256
+ // if we have the full message key
257
+ // update the invite message to be expired
258
+ if (key.id) {
259
+ // create new invite message that is expired
260
+ inviteMessage = WAProto_1.proto.Message.GroupInviteMessage.fromObject(inviteMessage);
261
+ inviteMessage.inviteExpiration = 0;
262
+ inviteMessage.inviteCode = '';
263
+ ev.emit('messages.update', [
264
+ {
265
+ key,
266
+ update: {
267
+ message: {
268
+ groupInviteMessage: inviteMessage
269
+ }
270
+ }
271
+ }
272
+ ]);
273
+ }
274
+ // generate the community add message
275
+ await upsertMessage({
276
+ key: {
277
+ remoteJid: inviteMessage.groupJid,
278
+ id: (0, Utils_1.generateMessageIDV2)((_a = sock.user) === null || _a === void 0 ? void 0 : _a.id),
279
+ fromMe: false,
280
+ participant: key.remoteJid,
281
+ },
282
+ messageStubType: Types_1.WAMessageStubType.GROUP_PARTICIPANT_ADD,
283
+ messageStubParameters: [
284
+ authState.creds.me.id
285
+ ],
286
+ participant: key.remoteJid,
287
+ messageTimestamp: (0, Utils_1.unixTimestampSeconds)()
288
+ }, 'notify');
289
+ return results.attrs.from;
290
+ }),
291
+ communityGetInviteInfo: async (code) => {
292
+ const results = await communityQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
293
+ return (0, exports.extractCommunityMetadata)(results);
294
+ },
295
+ communityToggleEphemeral: async (jid, ephemeralExpiration) => {
296
+ const content = ephemeralExpiration ?
297
+ { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } } :
298
+ { tag: 'not_ephemeral', attrs: {} };
299
+ await communityQuery(jid, 'set', [content]);
300
+ },
301
+ communitySettingUpdate: async (jid, setting) => {
302
+ await communityQuery(jid, 'set', [{ tag: setting, attrs: {} }]);
303
+ },
304
+ communityMemberAddMode: async (jid, mode) => {
305
+ await communityQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }]);
306
+ },
307
+ communityJoinApprovalMode: async (jid, mode) => {
308
+ await communityQuery(jid, 'set', [{ tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'community_join', attrs: { state: mode } }] }]);
309
+ },
310
+ communityFetchAllParticipating
311
+ };
312
+ };
313
+ exports.makeCommunitiesSocket = makeCommunitiesSocket;
314
+ const extractCommunityMetadata = (result) => {
315
+ var _a, _b;
316
+ const community = (0, WABinary_1.getBinaryNodeChild)(result, 'community');
317
+ const descChild = (0, WABinary_1.getBinaryNodeChild)(community, 'description');
318
+ let desc;
319
+ let descId;
320
+ if (descChild) {
321
+ desc = (0, WABinary_1.getBinaryNodeChildString)(descChild, 'body');
322
+ descId = descChild.attrs.id;
323
+ }
324
+ const communityId = community.attrs.id.includes('@') ? community.attrs.id : (0, WABinary_1.jidEncode)(community.attrs.id, 'g.us');
325
+ const eph = (_a = (0, WABinary_1.getBinaryNodeChild)(community, 'ephemeral')) === null || _a === void 0 ? void 0 : _a.attrs.expiration;
326
+ const memberAddMode = (0, WABinary_1.getBinaryNodeChildString)(community, 'member_add_mode') === 'all_member_add';
327
+ const metadata = {
328
+ id: communityId,
329
+ subject: community.attrs.subject,
330
+ subjectOwner: community.attrs.s_o,
331
+ subjectTime: +community.attrs.s_t,
332
+ size: (0, WABinary_1.getBinaryNodeChildren)(community, 'participant').length,
333
+ creation: +community.attrs.creation,
334
+ owner: community.attrs.creator ? (0, WABinary_1.jidNormalizedUser)(community.attrs.creator) : undefined,
335
+ desc,
336
+ descId,
337
+ linkedParent: ((_b = (0, WABinary_1.getBinaryNodeChild)(community, 'linked_parent')) === null || _b === void 0 ? void 0 : _b.attrs.jid) || undefined,
338
+ restrict: !!(0, WABinary_1.getBinaryNodeChild)(community, 'locked'),
339
+ announce: !!(0, WABinary_1.getBinaryNodeChild)(community, 'announcement'),
340
+ isCommunity: !!(0, WABinary_1.getBinaryNodeChild)(community, 'parent'),
341
+ isCommunityAnnounce: !!(0, WABinary_1.getBinaryNodeChild)(community, 'default_sub_community'),
342
+ joinApprovalMode: !!(0, WABinary_1.getBinaryNodeChild)(community, 'membership_approval_mode'),
343
+ memberAddMode,
344
+ participants: (0, WABinary_1.getBinaryNodeChildren)(community, 'participant').map(({ attrs }) => {
345
+ return {
346
+ id: attrs.jid,
347
+ admin: (attrs.type || null),
348
+ };
349
+ }),
350
+ ephemeralDuration: eph ? +eph : undefined
351
+ };
352
+ return metadata;
353
+ };
354
+ exports.extractCommunityMetadata = extractCommunityMetadata;
@@ -57,19 +57,12 @@ export declare const makeGroupsSocket: (config: SocketConfig) => {
57
57
  presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
58
58
  profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
59
59
  onWhatsApp: (...jids: string[]) => Promise<{
60
- exists: boolean;
61
60
  jid: string;
62
- }[]>;
61
+ exists: unknown;
62
+ }[] | undefined>;
63
63
  fetchBlocklist: () => Promise<string[]>;
64
- fetchDisappearingDuration: (...jids: string[]) => Promise<{
65
- user: string;
66
- duration: number;
67
- setAt: Date;
68
- }[]>;
69
- fetchStatus: (jid: string) => Promise<{
70
- status: string | undefined;
71
- setAt: Date;
72
- } | undefined>;
64
+ fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
65
+ fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
73
66
  updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
74
67
  updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
75
68
  updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
@@ -89,6 +82,8 @@ export declare const makeGroupsSocket: (config: SocketConfig) => {
89
82
  resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
90
83
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
91
84
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
85
+ addOrEditContact: (jid: string, contact: import("../Types").ContactAction) => Promise<void>;
86
+ removeContact: (jid: string) => Promise<void>;
92
87
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
93
88
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
94
89
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
@@ -98,6 +93,7 @@ export declare const makeGroupsSocket: (config: SocketConfig) => {
98
93
  id: string;
99
94
  fromMe?: boolean | undefined;
100
95
  }[], star: boolean) => Promise<void>;
96
+ executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
101
97
  type: "md";
102
98
  ws: import("./Client").WebSocketClient;
103
99
  ev: import("../Types").BaileysEventEmitter & {
@@ -3,6 +3,36 @@
3
3
  /// <reference types="node" />
4
4
  import { UserFacingSocketConfig } from '../Types';
5
5
  declare const makeWASocket: (config: UserFacingSocketConfig) => {
6
+ communityMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
7
+ communityCreate: (subject: any, body: any) => Promise<import("../Types").GroupMetadata | null>;
8
+ communityLeave: (id: string) => Promise<void>;
9
+ communityUpdateSubject: (jid: string, subject: string) => Promise<void>;
10
+ communityRequestParticipantsList: (jid: string) => Promise<{
11
+ [key: string]: string;
12
+ }[]>;
13
+ communityRequestParticipantsUpdate: (jid: string, participants: string[], action: "reject" | "approve") => Promise<{
14
+ status: string;
15
+ jid: string;
16
+ }[]>;
17
+ communityParticipantsUpdate: (jid: string, participants: string[], action: import("../Types").ParticipantAction) => Promise<{
18
+ status: string;
19
+ jid: string;
20
+ content: import("..").BinaryNode;
21
+ }[]>;
22
+ communityUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
23
+ communityInviteCode: (jid: string) => Promise<string | undefined>;
24
+ communityRevokeInvite: (jid: string) => Promise<string | undefined>;
25
+ communityAcceptInvite: (code: string) => Promise<string | undefined>;
26
+ communityRevokeInviteV4: (communityJid: string, invitedJid: string) => Promise<boolean>;
27
+ communityAcceptInviteV4: (key: string | import("../Types").WAMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
28
+ communityGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
29
+ communityToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
30
+ communitySettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
31
+ communityMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
32
+ communityJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
33
+ communityFetchAllParticipating: () => Promise<{
34
+ [_: string]: import("../Types").GroupMetadata;
35
+ }>;
6
36
  logger: import("pino").Logger<never, boolean>;
7
37
  getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("../Types").OrderDetails>;
8
38
  getCatalog: ({ jid, limit, cursor }: import("../Types").GetCatalogOptions) => Promise<{
@@ -103,19 +133,12 @@ declare const makeWASocket: (config: UserFacingSocketConfig) => {
103
133
  presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
104
134
  profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
105
135
  onWhatsApp: (...jids: string[]) => Promise<{
106
- exists: boolean;
107
136
  jid: string;
108
- }[]>;
137
+ exists: unknown;
138
+ }[] | undefined>;
109
139
  fetchBlocklist: () => Promise<string[]>;
110
- fetchDisappearingDuration: (...jids: string[]) => Promise<{
111
- user: string;
112
- duration: number;
113
- setAt: Date;
114
- }[]>;
115
- fetchStatus: (jid: string) => Promise<{
116
- status: string | undefined;
117
- setAt: Date;
118
- } | undefined>;
140
+ fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
141
+ fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
119
142
  updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
120
143
  updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
121
144
  updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
@@ -135,6 +158,8 @@ declare const makeWASocket: (config: UserFacingSocketConfig) => {
135
158
  resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
136
159
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
137
160
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
161
+ addOrEditContact: (jid: string, contact: import("../Types").ContactAction) => Promise<void>;
162
+ removeContact: (jid: string) => Promise<void>;
138
163
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
139
164
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
140
165
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
@@ -144,6 +169,7 @@ declare const makeWASocket: (config: UserFacingSocketConfig) => {
144
169
  id: string;
145
170
  fromMe?: boolean | undefined;
146
171
  }[], star: boolean) => Promise<void>;
172
+ executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
147
173
  type: "md";
148
174
  ws: import("./Client").WebSocketClient;
149
175
  ev: import("../Types").BaileysEventEmitter & {
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const Defaults_1 = require("../Defaults");
4
- const business_1 = require("./business");
4
+ const communities_1 = require("./communities");
5
5
  // export the last socket layer
6
- const makeWASocket = (config) => ((0, business_1.makeBusinessSocket)({
6
+ const makeWASocket = (config) => ((0, communities_1.makeCommunitiesSocket)({
7
7
  ...Defaults_1.DEFAULT_CONNECTION_CONFIG,
8
8
  ...config
9
9
  }));
@@ -91,19 +91,12 @@ export declare const makeMessagesRecvSocket: (config: SocketConfig) => {
91
91
  presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
92
92
  profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
93
93
  onWhatsApp: (...jids: string[]) => Promise<{
94
- exists: boolean;
95
94
  jid: string;
96
- }[]>;
95
+ exists: unknown;
96
+ }[] | undefined>;
97
97
  fetchBlocklist: () => Promise<string[]>;
98
- fetchDisappearingDuration: (...jids: string[]) => Promise<{
99
- user: string;
100
- duration: number;
101
- setAt: Date;
102
- }[]>;
103
- fetchStatus: (jid: string) => Promise<{
104
- status: string | undefined;
105
- setAt: Date;
106
- } | undefined>;
98
+ fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
99
+ fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
107
100
  updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
108
101
  updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
109
102
  updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
@@ -123,6 +116,8 @@ export declare const makeMessagesRecvSocket: (config: SocketConfig) => {
123
116
  resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
124
117
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
125
118
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
119
+ addOrEditContact: (jid: string, contact: import("../Types").ContactAction) => Promise<void>;
120
+ removeContact: (jid: string) => Promise<void>;
126
121
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
127
122
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
128
123
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
@@ -132,6 +127,7 @@ export declare const makeMessagesRecvSocket: (config: SocketConfig) => {
132
127
  id: string;
133
128
  fromMe?: boolean | undefined;
134
129
  }[], star: boolean) => Promise<void>;
130
+ executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
135
131
  type: "md";
136
132
  ws: import("./Client").WebSocketClient;
137
133
  ev: import("../Types").BaileysEventEmitter & {
@@ -84,19 +84,12 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
84
84
  presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
85
85
  profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
86
86
  onWhatsApp: (...jids: string[]) => Promise<{
87
- exists: boolean;
88
87
  jid: string;
89
- }[]>;
88
+ exists: unknown;
89
+ }[] | undefined>;
90
90
  fetchBlocklist: () => Promise<string[]>;
91
- fetchDisappearingDuration: (...jids: string[]) => Promise<{
92
- user: string;
93
- duration: number;
94
- setAt: Date;
95
- }[]>;
96
- fetchStatus: (jid: string) => Promise<{
97
- status: string | undefined;
98
- setAt: Date;
99
- } | undefined>;
91
+ fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
92
+ fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
100
93
  updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
101
94
  updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
102
95
  updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
@@ -116,6 +109,8 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
116
109
  resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
117
110
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
118
111
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
112
+ addOrEditContact: (jid: string, contact: import("../Types").ContactAction) => Promise<void>;
113
+ removeContact: (jid: string) => Promise<void>;
119
114
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
120
115
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
121
116
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
@@ -125,6 +120,7 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
125
120
  id: string;
126
121
  fromMe?: boolean | undefined;
127
122
  }[], star: boolean) => Promise<void>;
123
+ executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
128
124
  type: "md";
129
125
  ws: import("./Client").WebSocketClient;
130
126
  ev: import("../Types").BaileysEventEmitter & {
@@ -69,19 +69,12 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
69
69
  presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
70
70
  profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
71
71
  onWhatsApp: (...jids: string[]) => Promise<{
72
- exists: boolean;
73
72
  jid: string;
74
- }[]>;
73
+ exists: unknown;
74
+ }[] | undefined>;
75
75
  fetchBlocklist: () => Promise<string[]>;
76
- fetchDisappearingDuration: (...jids: string[]) => Promise<{
77
- user: string;
78
- duration: number;
79
- setAt: Date;
80
- }[]>;
81
- fetchStatus: (jid: string) => Promise<{
82
- status: string | undefined;
83
- setAt: Date;
84
- } | undefined>;
76
+ fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
77
+ fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
85
78
  updateProfilePicture: (jid: string, content: WAMediaUpload) => Promise<void>;
86
79
  updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
87
80
  updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
@@ -101,6 +94,8 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
101
94
  resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
102
95
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
103
96
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
97
+ addOrEditContact: (jid: string, contact: import("../Types").ContactAction) => Promise<void>;
98
+ removeContact: (jid: string) => Promise<void>;
104
99
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
105
100
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
106
101
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
@@ -110,6 +105,7 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
110
105
  id: string;
111
106
  fromMe?: boolean | undefined;
112
107
  }[], star: boolean) => Promise<void>;
108
+ executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
113
109
  type: "md";
114
110
  ws: import("./Client").WebSocketClient;
115
111
  ev: import("../Types").BaileysEventEmitter & {
@@ -362,6 +362,7 @@ const makeSocket = (config) => {
362
362
  end(new boom_1.Boom(msg || 'Intentional Logout', { statusCode: Types_1.DisconnectReason.loggedOut }));
363
363
  };
364
364
  const requestPairingCode = async (phoneNumber) => {
365
+ await waitForSocketOpen();
365
366
  authState.creds.pairingCode = (0, Utils_1.bytesToCrockford)((0, crypto_1.randomBytes)(5));
366
367
  authState.creds.me = {
367
368
  id: (0, WABinary_1.jidEncode)(phoneNumber, 's.whatsapp.net'),
@@ -0,0 +1,38 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { Boom } from '@hapi/boom';
4
+ import { SocketConfig } from '../Types';
5
+ import { BinaryNode } from '../WABinary';
6
+ import { USyncQuery } from '../WAUSync';
7
+ export declare const makeUSyncSocket: (config: SocketConfig) => {
8
+ executeUSyncQuery: (usyncQuery: USyncQuery) => Promise<import("../WAUSync").USyncQueryResult | undefined>;
9
+ type: "md";
10
+ ws: import("./Client").WebSocketClient;
11
+ ev: import("../Types").BaileysEventEmitter & {
12
+ process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
13
+ buffer(): void;
14
+ createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): (...args: A) => Promise<T>;
15
+ flush(force?: boolean | undefined): boolean;
16
+ isBuffering(): boolean;
17
+ };
18
+ authState: {
19
+ creds: import("../Types").AuthenticationCreds;
20
+ keys: import("../Types").SignalKeyStoreWithTransaction;
21
+ };
22
+ signalRepository: import("../Types").SignalRepository;
23
+ user: import("../Types").Contact | undefined;
24
+ generateMessageTag: () => string;
25
+ query: (node: BinaryNode, timeoutMs?: number | undefined) => Promise<BinaryNode>;
26
+ waitForMessage: <T_1>(msgId: string, timeoutMs?: number | undefined) => Promise<T_1>;
27
+ waitForSocketOpen: () => Promise<void>;
28
+ sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
29
+ sendNode: (frame: BinaryNode) => Promise<void>;
30
+ logout: (msg?: string | undefined) => Promise<void>;
31
+ end: (error: Error | undefined) => void;
32
+ onUnexpectedError: (err: Error | Boom<any>, msg: string) => void;
33
+ uploadPreKeys: (count?: number) => Promise<void>;
34
+ uploadPreKeysToServerIfRequired: () => Promise<void>;
35
+ requestPairingCode: (phoneNumber: string) => Promise<string>;
36
+ waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
37
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<BinaryNode>;
38
+ };