@queenanya/baileys 7.4.13 → 7.5.1
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.
- package/README.md +26 -26
- package/lib/Defaults/baileys-version.json +1 -1
- package/lib/Defaults/index.d.ts +1 -231
- package/lib/Defaults/index.js +11 -23
- package/lib/Socket/Client/index.d.ts +2 -3
- package/lib/Socket/Client/index.js +2 -3
- package/lib/Socket/Client/{web-socket-client.d.ts → websocket.d.ts} +1 -1
- package/lib/Socket/Client/{web-socket-client.js → websocket.js} +2 -2
- package/lib/Socket/business.d.ts +31 -28
- package/lib/Socket/chats.d.ts +17 -9
- package/lib/Socket/chats.js +115 -116
- package/lib/Socket/{registration.d.ts → communities.d.ts} +94 -145
- package/lib/Socket/communities.js +354 -0
- package/lib/Socket/groups.d.ts +23 -10
- package/lib/Socket/groups.js +12 -1
- package/lib/Socket/index.d.ts +69 -38
- package/lib/Socket/index.js +2 -2
- package/lib/Socket/messages-recv.d.ts +30 -28
- package/lib/Socket/messages-recv.js +291 -180
- package/lib/Socket/messages-send.d.ts +25 -19
- package/lib/Socket/messages-send.js +110 -76
- package/lib/Socket/newsletter.d.ts +19 -13
- package/lib/Socket/newsletter.js +67 -54
- package/lib/Socket/socket.d.ts +3 -1
- package/lib/Socket/socket.js +15 -17
- package/lib/Socket/usync.d.ts +38 -0
- package/lib/Socket/usync.js +70 -0
- package/lib/Store/make-cache-manager-store.d.ts +2 -1
- package/lib/Store/make-in-memory-store.js +13 -11
- package/lib/Store/make-ordered-dictionary.js +2 -2
- package/lib/Types/Auth.d.ts +1 -6
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +15 -7
- package/lib/Types/Contact.d.ts +6 -1
- package/lib/Types/Events.d.ts +44 -2
- package/lib/Types/GroupMetadata.d.ts +3 -1
- package/lib/Types/Label.d.ts +11 -0
- package/lib/Types/Message.d.ts +37 -30
- package/lib/Types/Newsletter.d.ts +0 -13
- package/lib/Types/Newsletter.js +1 -15
- package/lib/Types/Socket.d.ts +10 -3
- package/lib/Types/USync.d.ts +25 -0
- package/lib/Types/USync.js +2 -0
- package/lib/Types/index.d.ts +8 -0
- package/lib/Utils/auth-utils.js +1 -7
- package/lib/Utils/chat-utils.d.ts +5 -4
- package/lib/Utils/chat-utils.js +52 -20
- package/lib/Utils/crypto.d.ts +2 -1
- package/lib/Utils/crypto.js +4 -2
- package/lib/Utils/decode-wa-message.d.ts +1 -0
- package/lib/Utils/decode-wa-message.js +34 -14
- package/lib/Utils/event-buffer.js +14 -8
- package/lib/Utils/generics.d.ts +37 -13
- package/lib/Utils/generics.js +103 -18
- package/lib/Utils/history.d.ts +6 -2
- package/lib/Utils/history.js +3 -0
- package/lib/Utils/index.d.ts +1 -0
- package/lib/Utils/index.js +1 -0
- package/lib/Utils/link-preview.js +24 -1
- package/lib/Utils/logger.d.ts +1 -3
- package/lib/Utils/make-mutex.js +1 -0
- package/lib/Utils/messages-media.d.ts +3 -2
- package/lib/Utils/messages-media.js +17 -32
- package/lib/Utils/messages.d.ts +1 -0
- package/lib/Utils/messages.js +67 -72
- package/lib/Utils/noise-handler.d.ts +3 -3
- package/lib/Utils/noise-handler.js +7 -12
- package/lib/Utils/process-message.d.ts +3 -2
- package/lib/Utils/process-message.js +55 -21
- package/lib/Utils/signal.js +23 -16
- package/lib/Utils/use-multi-file-auth-state.js +17 -3
- package/lib/Utils/validate-connection.d.ts +0 -1
- package/lib/Utils/validate-connection.js +10 -44
- package/lib/WABinary/constants.js +5 -5
- package/lib/WABinary/decode.d.ts +3 -2
- package/lib/WABinary/decode.js +6 -4
- package/lib/WABinary/encode.d.ts +1 -2
- package/lib/WABinary/encode.js +8 -6
- package/lib/WABinary/generic-utils.d.ts +1 -0
- package/lib/WABinary/jid-utils.d.ts +3 -3
- package/lib/WABinary/jid-utils.js +5 -5
- package/lib/WAM/BinaryInfo.d.ts +3 -2
- package/lib/WAM/constants.d.ts +3 -2
- package/lib/WAM/encode.d.ts +1 -0
- package/lib/WAM/encode.js +2 -2
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
- package/lib/WAUSync/Protocols/index.d.ts +4 -0
- package/lib/WAUSync/Protocols/index.js +20 -0
- package/lib/WAUSync/USyncQuery.d.ts +26 -0
- package/lib/WAUSync/USyncQuery.js +79 -0
- package/lib/WAUSync/USyncUser.d.ts +10 -0
- package/lib/WAUSync/USyncUser.js +22 -0
- package/lib/WAUSync/index.d.ts +3 -0
- package/lib/WAUSync/index.js +19 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/package.json +37 -35
- package/lib/Defaults/phonenumber-mcc.json +0 -223
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
- package/lib/Socket/Client/mobile-socket-client.js +0 -65
- package/lib/Socket/registration.js +0 -166
- /package/lib/Socket/Client/{abstract-socket-client.d.ts → types.d.ts} +0 -0
- /package/lib/Socket/Client/{abstract-socket-client.js → types.js} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { Boom } from '@hapi/boom';
|
|
3
4
|
import { proto } from '../../WAProto';
|
|
4
5
|
import { AnyMessageContent, MediaConnInfo, MessageReceiptType, MessageRelayOptions, MiscMessageGenerationOptions, SocketConfig, WAMessageKey } from '../Types';
|
|
@@ -6,21 +7,21 @@ import { BinaryNode, JidWithDevice } from '../WABinary';
|
|
|
6
7
|
export declare const makeMessagesSocket: (config: SocketConfig) => {
|
|
7
8
|
getPrivacyTokens: (jids: string[]) => Promise<BinaryNode>;
|
|
8
9
|
assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
|
|
9
|
-
relayMessage: (jid: string, message: proto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache,
|
|
10
|
+
relayMessage: (jid: string, message: proto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, useCachedGroupMetadata, statusJidList }: MessageRelayOptions) => Promise<string>;
|
|
10
11
|
sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: MessageReceiptType) => Promise<void>;
|
|
11
12
|
sendReceipts: (keys: WAMessageKey[], type: MessageReceiptType) => Promise<void>;
|
|
12
|
-
getButtonArgs: (message: proto.IMessage) => BinaryNode['attrs'];
|
|
13
13
|
readMessages: (keys: WAMessageKey[]) => Promise<void>;
|
|
14
14
|
refreshMediaConn: (forceGet?: boolean) => Promise<MediaConnInfo>;
|
|
15
|
-
getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<JidWithDevice[]>;
|
|
16
|
-
createParticipantNodes: (jids: string[], message: proto.IMessage, extraAttrs?: BinaryNode['attrs']) => Promise<{
|
|
17
|
-
nodes: BinaryNode[];
|
|
18
|
-
shouldIncludeDeviceIdentity: boolean;
|
|
19
|
-
}>;
|
|
20
15
|
waUploadToServer: import("../Types").WAMediaUploadFunction;
|
|
21
16
|
fetchPrivacySettings: (force?: boolean) => Promise<{
|
|
22
17
|
[_: string]: string;
|
|
23
18
|
}>;
|
|
19
|
+
sendPeerDataOperationMessage: (pdoMessage: proto.Message.IPeerDataOperationRequestMessage) => Promise<string>;
|
|
20
|
+
createParticipantNodes: (jids: string[], message: proto.IMessage, extraAttrs?: BinaryNode['attrs']) => Promise<{
|
|
21
|
+
nodes: BinaryNode[];
|
|
22
|
+
shouldIncludeDeviceIdentity: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<JidWithDevice[]>;
|
|
24
25
|
updateMediaMessage: (message: proto.IWebMessageInfo) => Promise<proto.IWebMessageInfo>;
|
|
25
26
|
sendMessage: (jid: string, content: AnyMessageContent, options?: MiscMessageGenerationOptions) => Promise<proto.WebMessageInfo | undefined>;
|
|
26
27
|
subscribeNewsletterUpdates: (jid: string) => Promise<{
|
|
@@ -35,14 +36,13 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
|
|
|
35
36
|
newsletterFollow: (jid: string) => Promise<void>;
|
|
36
37
|
newsletterUnmute: (jid: string) => Promise<void>;
|
|
37
38
|
newsletterMute: (jid: string) => Promise<void>;
|
|
38
|
-
|
|
39
|
-
newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<import("../Types").NewsletterMetadata>;
|
|
39
|
+
newsletterCreate: (name: string, description: string) => Promise<import("../Types").NewsletterMetadata>;
|
|
40
40
|
newsletterMetadata: (type: "invite" | "jid", key: string, role?: import("../Types").NewsletterViewRole | undefined) => Promise<import("../Types").NewsletterMetadata>;
|
|
41
41
|
newsletterAdminCount: (jid: string) => Promise<number>;
|
|
42
42
|
newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
|
|
43
43
|
newsletterDemote: (jid: string, user: string) => Promise<void>;
|
|
44
44
|
newsletterDelete: (jid: string) => Promise<void>;
|
|
45
|
-
newsletterReactMessage: (jid: string,
|
|
45
|
+
newsletterReactMessage: (jid: string, server_id: string, code?: string | undefined) => Promise<void>;
|
|
46
46
|
newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
|
|
47
47
|
newsletterFetchUpdates: (jid: string, count: number, after?: number | undefined, since?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
|
|
48
48
|
groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
|
|
@@ -65,7 +65,8 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
|
|
|
65
65
|
groupInviteCode: (jid: string) => Promise<string | undefined>;
|
|
66
66
|
groupRevokeInvite: (jid: string) => Promise<string | undefined>;
|
|
67
67
|
groupAcceptInvite: (code: string) => Promise<string | undefined>;
|
|
68
|
-
|
|
68
|
+
groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise<boolean>;
|
|
69
|
+
groupAcceptInviteV4: (key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<string>;
|
|
69
70
|
groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
|
|
70
71
|
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
|
|
71
72
|
groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
|
|
@@ -83,30 +84,34 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
|
|
|
83
84
|
presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
|
|
84
85
|
profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
|
|
85
86
|
onWhatsApp: (...jids: string[]) => Promise<{
|
|
86
|
-
exists: boolean;
|
|
87
87
|
jid: string;
|
|
88
|
-
|
|
88
|
+
exists: unknown;
|
|
89
|
+
}[] | undefined>;
|
|
89
90
|
fetchBlocklist: () => Promise<string[]>;
|
|
90
|
-
fetchStatus: (
|
|
91
|
-
|
|
92
|
-
setAt: Date;
|
|
93
|
-
} | undefined>;
|
|
91
|
+
fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
|
|
92
|
+
fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
|
|
94
93
|
updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
|
|
94
|
+
updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
|
|
95
|
+
updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
|
|
95
96
|
removeProfilePicture: (jid: string) => Promise<void>;
|
|
96
97
|
updateProfileStatus: (status: string) => Promise<void>;
|
|
97
98
|
updateProfileName: (name: string) => Promise<void>;
|
|
98
99
|
updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
|
|
100
|
+
updateCallPrivacy: (value: import("../Types").WAPrivacyCallValue) => Promise<void>;
|
|
99
101
|
updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
100
102
|
updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
|
|
101
103
|
updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
102
104
|
updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
103
105
|
updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
|
|
104
|
-
updateGroupsAddPrivacy: (value: import("../Types").
|
|
106
|
+
updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
|
|
105
107
|
updateDefaultDisappearingMode: (duration: number) => Promise<void>;
|
|
106
108
|
getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
|
|
107
109
|
resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
|
|
108
110
|
chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
|
|
109
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>;
|
|
114
|
+
addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
|
|
110
115
|
addChatLabel: (jid: string, labelId: string) => Promise<void>;
|
|
111
116
|
removeChatLabel: (jid: string, labelId: string) => Promise<void>;
|
|
112
117
|
addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
|
|
@@ -115,8 +120,9 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
|
|
|
115
120
|
id: string;
|
|
116
121
|
fromMe?: boolean | undefined;
|
|
117
122
|
}[], star: boolean) => Promise<void>;
|
|
123
|
+
executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
|
|
118
124
|
type: "md";
|
|
119
|
-
ws:
|
|
125
|
+
ws: import("./Client").WebSocketClient;
|
|
120
126
|
ev: import("../Types").BaileysEventEmitter & {
|
|
121
127
|
process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
|
|
122
128
|
buffer(): void;
|
|
@@ -14,9 +14,9 @@ const WABinary_1 = require("../WABinary");
|
|
|
14
14
|
const newsletter_1 = require("./newsletter");
|
|
15
15
|
var ListType = WAProto_1.proto.Message.ListMessage.ListType;
|
|
16
16
|
const makeMessagesSocket = (config) => {
|
|
17
|
-
const { logger, linkPreviewImageThumbnailWidth, generateHighQualityLinkPreview, options: axiosOptions, patchMessageBeforeSending, } = config;
|
|
17
|
+
const { logger, linkPreviewImageThumbnailWidth, generateHighQualityLinkPreview, options: axiosOptions, patchMessageBeforeSending, cachedGroupMetadata, } = config;
|
|
18
18
|
const sock = (0, newsletter_1.makeNewsletterSocket)(config);
|
|
19
|
-
const { ev, authState, processingMutex, signalRepository, upsertMessage, query, fetchPrivacySettings, generateMessageTag, sendNode, groupMetadata, groupToggleEphemeral } = sock;
|
|
19
|
+
const { ev, authState, processingMutex, signalRepository, upsertMessage, query, fetchPrivacySettings, generateMessageTag, sendNode, groupMetadata, groupToggleEphemeral, } = sock;
|
|
20
20
|
const userDevicesCache = config.userDevicesCache || new node_cache_1.default({
|
|
21
21
|
stdTTL: Defaults_1.DEFAULT_CACHE_TTLS.USER_DEVICES,
|
|
22
22
|
useClones: false
|
|
@@ -77,7 +77,7 @@ const makeMessagesSocket = (config) => {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
if (type) {
|
|
80
|
-
node.attrs.type = (0, WABinary_1.
|
|
80
|
+
node.attrs.type = (0, WABinary_1.isJidNewsletter)(jid) ? 'read-self' : type;
|
|
81
81
|
}
|
|
82
82
|
const remainingMessageIds = messageIds.slice(1);
|
|
83
83
|
if (remainingMessageIds.length) {
|
|
@@ -222,6 +222,28 @@ const makeMessagesSocket = (config) => {
|
|
|
222
222
|
}
|
|
223
223
|
return didFetchNewSession;
|
|
224
224
|
};
|
|
225
|
+
const sendPeerDataOperationMessage = async (pdoMessage) => {
|
|
226
|
+
var _a;
|
|
227
|
+
//TODO: for later, abstract the logic to send a Peer Message instead of just PDO - useful for App State Key Resync with phone
|
|
228
|
+
if (!((_a = authState.creds.me) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
229
|
+
throw new boom_1.Boom('Not authenticated');
|
|
230
|
+
}
|
|
231
|
+
const protocolMessage = {
|
|
232
|
+
protocolMessage: {
|
|
233
|
+
peerDataOperationRequestMessage: pdoMessage,
|
|
234
|
+
type: WAProto_1.proto.Message.ProtocolMessage.Type.PEER_DATA_OPERATION_REQUEST_MESSAGE
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
const meJid = (0, WABinary_1.jidNormalizedUser)(authState.creds.me.id);
|
|
238
|
+
const msgId = await relayMessage(meJid, protocolMessage, {
|
|
239
|
+
additionalAttributes: {
|
|
240
|
+
category: 'peer',
|
|
241
|
+
// eslint-disable-next-line camelcase
|
|
242
|
+
push_priority: 'high_force',
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
return msgId;
|
|
246
|
+
};
|
|
225
247
|
const createParticipantNodes = async (jids, message, extraAttrs) => {
|
|
226
248
|
const patched = await patchMessageBeforeSending(message, jids);
|
|
227
249
|
const bytes = (0, Utils_1.encodeWAMessage)(patched);
|
|
@@ -248,18 +270,20 @@ const makeMessagesSocket = (config) => {
|
|
|
248
270
|
return node;
|
|
249
271
|
}));
|
|
250
272
|
return { nodes, shouldIncludeDeviceIdentity };
|
|
251
|
-
};
|
|
252
|
-
const relayMessage = async (jid, message, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache,
|
|
273
|
+
};
|
|
274
|
+
const relayMessage = async (jid, message, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, useCachedGroupMetadata, statusJidList }) => {
|
|
275
|
+
var _a;
|
|
253
276
|
const meId = authState.creds.me.id;
|
|
254
277
|
let shouldIncludeDeviceIdentity = false;
|
|
255
278
|
const { user, server } = (0, WABinary_1.jidDecode)(jid);
|
|
256
279
|
const statusJid = 'status@broadcast';
|
|
257
280
|
const isGroup = server === 'g.us';
|
|
281
|
+
const isNewsletter = server == 'newsletter';
|
|
258
282
|
const isStatus = jid === statusJid;
|
|
259
283
|
const isLid = server === 'lid';
|
|
260
|
-
|
|
261
|
-
msgId = msgId || (0, Utils_1.generateMessageID)();
|
|
284
|
+
msgId = msgId || (0, Utils_1.generateMessageIDV3)((_a = sock.user) === null || _a === void 0 ? void 0 : _a.id);
|
|
262
285
|
useUserDevicesCache = useUserDevicesCache !== false;
|
|
286
|
+
useCachedGroupMetadata = useCachedGroupMetadata !== false && !isStatus;
|
|
263
287
|
const participants = [];
|
|
264
288
|
const destinationJid = (!isStatus) ? (0, WABinary_1.jidEncode)(user, isLid ? 'lid' : isGroup ? 'g.us' : isNewsletter ? 'newsletter' : 's.whatsapp.net') : statusJid;
|
|
265
289
|
const binaryNodeContent = [];
|
|
@@ -270,6 +294,7 @@ const makeMessagesSocket = (config) => {
|
|
|
270
294
|
message
|
|
271
295
|
}
|
|
272
296
|
};
|
|
297
|
+
const extraAttrs = {};
|
|
273
298
|
if (participant) {
|
|
274
299
|
// when the retry request is not for a group
|
|
275
300
|
// only send to the specific device that asked for a retry
|
|
@@ -281,16 +306,22 @@ const makeMessagesSocket = (config) => {
|
|
|
281
306
|
devices.push({ user, device });
|
|
282
307
|
}
|
|
283
308
|
await authState.keys.transaction(async () => {
|
|
284
|
-
var _a, _b, _c, _d, _e
|
|
309
|
+
var _a, _b, _c, _d, _e;
|
|
285
310
|
const mediaType = getMediaType(message);
|
|
311
|
+
if (mediaType) {
|
|
312
|
+
extraAttrs['mediatype'] = mediaType;
|
|
313
|
+
}
|
|
314
|
+
if ((_a = (0, Utils_1.normalizeMessageContent)(message)) === null || _a === void 0 ? void 0 : _a.pinInChatMessage) {
|
|
315
|
+
extraAttrs['decrypt-fail'] = 'hide';
|
|
316
|
+
}
|
|
286
317
|
if (isGroup || isStatus) {
|
|
287
318
|
const [groupData, senderKeyMap] = await Promise.all([
|
|
288
319
|
(async () => {
|
|
289
|
-
let groupData = cachedGroupMetadata ? await cachedGroupMetadata(jid) : undefined;
|
|
290
|
-
if (groupData) {
|
|
320
|
+
let groupData = useCachedGroupMetadata && cachedGroupMetadata ? await cachedGroupMetadata(jid) : undefined;
|
|
321
|
+
if (groupData && Array.isArray(groupData === null || groupData === void 0 ? void 0 : groupData.participants)) {
|
|
291
322
|
logger.trace({ jid, participants: groupData.participants.length }, 'using cached group metadata');
|
|
292
323
|
}
|
|
293
|
-
if (!
|
|
324
|
+
else if (!isStatus) {
|
|
294
325
|
groupData = await groupMetadata(jid);
|
|
295
326
|
}
|
|
296
327
|
return groupData;
|
|
@@ -339,7 +370,7 @@ const makeMessagesSocket = (config) => {
|
|
|
339
370
|
}
|
|
340
371
|
};
|
|
341
372
|
await assertSessions(senderKeyJids, false);
|
|
342
|
-
const result = await createParticipantNodes(senderKeyJids, senderKeyMsg,
|
|
373
|
+
const result = await createParticipantNodes(senderKeyJids, senderKeyMsg, extraAttrs);
|
|
343
374
|
shouldIncludeDeviceIdentity = shouldIncludeDeviceIdentity || result.shouldIncludeDeviceIdentity;
|
|
344
375
|
participants.push(...result.nodes);
|
|
345
376
|
}
|
|
@@ -351,41 +382,32 @@ const makeMessagesSocket = (config) => {
|
|
|
351
382
|
await authState.keys.set({ 'sender-key-memory': { [jid]: senderKeyMap } });
|
|
352
383
|
}
|
|
353
384
|
else if (isNewsletter) {
|
|
354
|
-
// Message edit
|
|
355
|
-
if ((_a = message.protocolMessage) === null || _a === void 0 ? void 0 : _a.editedMessage) {
|
|
356
|
-
msgId = (_b = message.protocolMessage.key) === null || _b === void 0 ? void 0 : _b.id;
|
|
357
|
-
message = message.protocolMessage.editedMessage;
|
|
358
|
-
}
|
|
359
|
-
// Message delete
|
|
360
|
-
if (((_c = message.protocolMessage) === null || _c === void 0 ? void 0 : _c.type) === WAProto_1.proto.Message.ProtocolMessage.Type.REVOKE) {
|
|
361
|
-
msgId = (_d = message.protocolMessage.key) === null || _d === void 0 ? void 0 : _d.id;
|
|
362
|
-
message = {};
|
|
363
|
-
}
|
|
364
385
|
const patched = await patchMessageBeforeSending(message, []);
|
|
365
|
-
const bytes =
|
|
386
|
+
const bytes = (0, Utils_1.encodeNewsletterMessage)(patched);
|
|
366
387
|
binaryNodeContent.push({
|
|
367
388
|
tag: 'plaintext',
|
|
368
|
-
attrs:
|
|
389
|
+
attrs: {},
|
|
369
390
|
content: bytes
|
|
370
391
|
});
|
|
371
392
|
}
|
|
372
393
|
else {
|
|
373
|
-
const { user: meUser
|
|
394
|
+
const { user: meUser } = (0, WABinary_1.jidDecode)(meId);
|
|
374
395
|
if (!participant) {
|
|
375
396
|
devices.push({ user });
|
|
376
|
-
|
|
377
|
-
if (meDevice !== undefined && meDevice !== 0) {
|
|
397
|
+
if (user !== meUser) {
|
|
378
398
|
devices.push({ user: meUser });
|
|
379
399
|
}
|
|
380
|
-
|
|
381
|
-
|
|
400
|
+
if ((additionalAttributes === null || additionalAttributes === void 0 ? void 0 : additionalAttributes['category']) !== 'peer') {
|
|
401
|
+
const additionalDevices = await getUSyncDevices([meId, jid], !!useUserDevicesCache, true);
|
|
402
|
+
devices.push(...additionalDevices);
|
|
403
|
+
}
|
|
382
404
|
}
|
|
383
405
|
const allJids = [];
|
|
384
406
|
const meJids = [];
|
|
385
407
|
const otherJids = [];
|
|
386
408
|
for (const { user, device } of devices) {
|
|
387
409
|
const isMe = user === meUser;
|
|
388
|
-
const jid = (0, WABinary_1.jidEncode)(isMe && isLid ? ((
|
|
410
|
+
const jid = (0, WABinary_1.jidEncode)(isMe && isLid ? ((_c = (_b = authState.creds) === null || _b === void 0 ? void 0 : _b.me) === null || _c === void 0 ? void 0 : _c.lid.split(':')[0]) || user : user, isLid ? 'lid' : 's.whatsapp.net', device);
|
|
389
411
|
if (isMe) {
|
|
390
412
|
meJids.push(jid);
|
|
391
413
|
}
|
|
@@ -396,25 +418,33 @@ const makeMessagesSocket = (config) => {
|
|
|
396
418
|
}
|
|
397
419
|
await assertSessions(allJids, false);
|
|
398
420
|
const [{ nodes: meNodes, shouldIncludeDeviceIdentity: s1 }, { nodes: otherNodes, shouldIncludeDeviceIdentity: s2 }] = await Promise.all([
|
|
399
|
-
createParticipantNodes(meJids, meMsg,
|
|
400
|
-
createParticipantNodes(otherJids, message,
|
|
421
|
+
createParticipantNodes(meJids, meMsg, extraAttrs),
|
|
422
|
+
createParticipantNodes(otherJids, message, extraAttrs)
|
|
401
423
|
]);
|
|
402
424
|
participants.push(...meNodes);
|
|
403
425
|
participants.push(...otherNodes);
|
|
404
426
|
shouldIncludeDeviceIdentity = shouldIncludeDeviceIdentity || s1 || s2;
|
|
405
427
|
}
|
|
406
428
|
if (participants.length) {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
429
|
+
if ((additionalAttributes === null || additionalAttributes === void 0 ? void 0 : additionalAttributes['category']) === 'peer') {
|
|
430
|
+
const peerNode = (_e = (_d = participants[0]) === null || _d === void 0 ? void 0 : _d.content) === null || _e === void 0 ? void 0 : _e[0];
|
|
431
|
+
if (peerNode) {
|
|
432
|
+
binaryNodeContent.push(peerNode); // push only enc
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
binaryNodeContent.push({
|
|
437
|
+
tag: 'participants',
|
|
438
|
+
attrs: {},
|
|
439
|
+
content: participants
|
|
440
|
+
});
|
|
441
|
+
}
|
|
412
442
|
}
|
|
413
443
|
const stanza = {
|
|
414
444
|
tag: 'message',
|
|
415
445
|
attrs: {
|
|
416
446
|
id: msgId,
|
|
417
|
-
type:
|
|
447
|
+
type: getMessageType(message),
|
|
418
448
|
...(additionalAttributes || {})
|
|
419
449
|
},
|
|
420
450
|
content: binaryNodeContent
|
|
@@ -449,39 +479,23 @@ const makeMessagesSocket = (config) => {
|
|
|
449
479
|
if (additionalNodes && additionalNodes.length > 0) {
|
|
450
480
|
stanza.content.push(...additionalNodes);
|
|
451
481
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
attrs: {},
|
|
457
|
-
content: [{
|
|
458
|
-
tag: 'interactive',
|
|
459
|
-
attrs: {
|
|
460
|
-
type: 'native_flow',
|
|
461
|
-
v: '1'
|
|
462
|
-
},
|
|
463
|
-
content: [{
|
|
464
|
-
tag: 'native_flow',
|
|
465
|
-
attrs: { name: 'quick_reply' }
|
|
466
|
-
}]
|
|
467
|
-
}]
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
const buttonType = getButtonType(message);
|
|
472
|
-
if (buttonType) {
|
|
473
|
-
stanza.content.push({
|
|
482
|
+
/**
|
|
483
|
+
const buttonType = getButtonType(message)
|
|
484
|
+
if(buttonType) {
|
|
485
|
+
(stanza.content as BinaryNode[]).push({
|
|
474
486
|
tag: 'biz',
|
|
475
|
-
attrs: {},
|
|
487
|
+
attrs: { },
|
|
476
488
|
content: [
|
|
477
489
|
{
|
|
478
490
|
tag: buttonType,
|
|
479
491
|
attrs: getButtonArgs(message),
|
|
480
492
|
}
|
|
481
493
|
]
|
|
482
|
-
})
|
|
483
|
-
|
|
484
|
-
|
|
494
|
+
})
|
|
495
|
+
|
|
496
|
+
logger.debug({ jid }, 'adding business node')
|
|
497
|
+
}
|
|
498
|
+
*/
|
|
485
499
|
logger.debug({ msgId }, `sending message to ${participants.length} devices`);
|
|
486
500
|
await sendNode(stanza);
|
|
487
501
|
});
|
|
@@ -516,6 +530,12 @@ const makeMessagesSocket = (config) => {
|
|
|
516
530
|
return 'text';
|
|
517
531
|
}
|
|
518
532
|
};
|
|
533
|
+
const getMessageType = (message) => {
|
|
534
|
+
if (message.pollCreationMessage || message.pollCreationMessageV2 || message.pollCreationMessageV3) {
|
|
535
|
+
return 'poll';
|
|
536
|
+
}
|
|
537
|
+
return 'text';
|
|
538
|
+
};
|
|
519
539
|
const getMediaType = (message) => {
|
|
520
540
|
if (message.imageMessage) {
|
|
521
541
|
return 'image';
|
|
@@ -559,6 +579,9 @@ const makeMessagesSocket = (config) => {
|
|
|
559
579
|
else if (message.interactiveResponseMessage) {
|
|
560
580
|
return 'native_flow_response';
|
|
561
581
|
}
|
|
582
|
+
else if (message.groupInviteMessage) {
|
|
583
|
+
return 'url';
|
|
584
|
+
}
|
|
562
585
|
};
|
|
563
586
|
const getButtonType = (message) => {
|
|
564
587
|
if (message.buttonsMessage) {
|
|
@@ -628,13 +651,14 @@ const makeMessagesSocket = (config) => {
|
|
|
628
651
|
relayMessage,
|
|
629
652
|
sendReceipt,
|
|
630
653
|
sendReceipts,
|
|
631
|
-
getButtonArgs,
|
|
654
|
+
// getButtonArgs,
|
|
632
655
|
readMessages,
|
|
633
656
|
refreshMediaConn,
|
|
634
|
-
getUSyncDevices,
|
|
635
|
-
createParticipantNodes,
|
|
636
657
|
waUploadToServer,
|
|
637
658
|
fetchPrivacySettings,
|
|
659
|
+
sendPeerDataOperationMessage,
|
|
660
|
+
createParticipantNodes,
|
|
661
|
+
getUSyncDevices,
|
|
638
662
|
updateMediaMessage: async (message) => {
|
|
639
663
|
const content = (0, Utils_1.assertMediaContent)(message.message);
|
|
640
664
|
const mediaKey = content.mediaKey;
|
|
@@ -677,7 +701,7 @@ const makeMessagesSocket = (config) => {
|
|
|
677
701
|
return message;
|
|
678
702
|
},
|
|
679
703
|
sendMessage: async (jid, content, options = {}) => {
|
|
680
|
-
var _a, _b;
|
|
704
|
+
var _a, _b, _c;
|
|
681
705
|
const userJid = authState.creds.me.id;
|
|
682
706
|
if (typeof content === 'object' &&
|
|
683
707
|
'disappearingMessagesInChat' in content &&
|
|
@@ -705,24 +729,31 @@ const makeMessagesSocket = (config) => {
|
|
|
705
729
|
? waUploadToServer
|
|
706
730
|
: undefined
|
|
707
731
|
}),
|
|
732
|
+
//TODO: CACHE
|
|
733
|
+
getProfilePicUrl: sock.profilePictureUrl,
|
|
708
734
|
upload: async (readStream, opts) => {
|
|
709
|
-
const up = await waUploadToServer(readStream, { ...opts, newsletter: (0, WABinary_1.
|
|
735
|
+
const up = await waUploadToServer(readStream, { ...opts, newsletter: (0, WABinary_1.isJidNewsletter)(jid) });
|
|
710
736
|
mediaHandle = up.handle;
|
|
711
737
|
return up;
|
|
712
738
|
},
|
|
739
|
+
/**
|
|
740
|
+
upload: waUploadToServer,
|
|
741
|
+
*/
|
|
713
742
|
mediaCache: config.mediaCache,
|
|
714
743
|
options: config.options,
|
|
744
|
+
messageId: (0, Utils_1.generateMessageIDV3)((_a = sock.user) === null || _a === void 0 ? void 0 : _a.id),
|
|
715
745
|
...options,
|
|
716
746
|
});
|
|
717
747
|
const isDeleteMsg = 'delete' in content && !!content.delete;
|
|
718
748
|
const isEditMsg = 'edit' in content && !!content.edit;
|
|
719
|
-
const
|
|
749
|
+
const isPinMsg = 'pin' in content && !!content.pin;
|
|
750
|
+
const isPollMessage = 'poll' in content && !!content.poll;
|
|
720
751
|
const additionalAttributes = {};
|
|
721
752
|
const additionalNodes = [];
|
|
722
753
|
// required for delete
|
|
723
754
|
if (isDeleteMsg) {
|
|
724
755
|
// if the chat is a group, and I am not the author, then delete the message as an admin
|
|
725
|
-
if (((0, WABinary_1.isJidGroup)((
|
|
756
|
+
if (((0, WABinary_1.isJidGroup)((_b = content.delete) === null || _b === void 0 ? void 0 : _b.remoteJid) && !((_c = content.delete) === null || _c === void 0 ? void 0 : _c.fromMe)) || (0, WABinary_1.isJidNewsletter)(jid)) {
|
|
726
757
|
additionalAttributes.edit = '8';
|
|
727
758
|
}
|
|
728
759
|
else {
|
|
@@ -730,14 +761,17 @@ const makeMessagesSocket = (config) => {
|
|
|
730
761
|
}
|
|
731
762
|
}
|
|
732
763
|
else if (isEditMsg) {
|
|
733
|
-
additionalAttributes.edit = (0, WABinary_1.
|
|
764
|
+
additionalAttributes.edit = (0, WABinary_1.isJidNewsletter)(jid) ? '3' : '1';
|
|
765
|
+
}
|
|
766
|
+
else if (isPinMsg) {
|
|
767
|
+
additionalAttributes.edit = '2';
|
|
734
768
|
}
|
|
735
|
-
else if (
|
|
769
|
+
else if (isPollMessage) {
|
|
736
770
|
additionalNodes.push({
|
|
771
|
+
tag: 'meta',
|
|
737
772
|
attrs: {
|
|
738
|
-
|
|
773
|
+
polltype: 'creation'
|
|
739
774
|
},
|
|
740
|
-
tag: "bot"
|
|
741
775
|
});
|
|
742
776
|
}
|
|
743
777
|
if (mediaHandle) {
|
|
@@ -746,7 +780,7 @@ const makeMessagesSocket = (config) => {
|
|
|
746
780
|
if ('cachedGroupMetadata' in options) {
|
|
747
781
|
console.warn('cachedGroupMetadata in sendMessage are deprecated, now cachedGroupMetadata is part of the socket config.');
|
|
748
782
|
}
|
|
749
|
-
await relayMessage(jid, fullMsg.message, { messageId: fullMsg.key.id,
|
|
783
|
+
await relayMessage(jid, fullMsg.message, { messageId: fullMsg.key.id, useCachedGroupMetadata: options.useCachedGroupMetadata, additionalAttributes, statusJidList: options.statusJidList, additionalNodes });
|
|
750
784
|
if (config.emitOwnEvents) {
|
|
751
785
|
process.nextTick(() => {
|
|
752
786
|
processingMutex.mutex(() => (upsertMessage(fullMsg, 'append')));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { SocketConfig, WAMediaUpload, NewsletterMetadata, NewsletterReactionMode, NewsletterViewRole, NewsletterFetchedUpdate } from '../Types';
|
|
3
4
|
import { BinaryNode } from '../WABinary';
|
|
4
5
|
export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
5
6
|
subscribeNewsletterUpdates: (jid: string) => Promise<{
|
|
@@ -14,8 +15,7 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
14
15
|
newsletterFollow: (jid: string) => Promise<void>;
|
|
15
16
|
newsletterUnmute: (jid: string) => Promise<void>;
|
|
16
17
|
newsletterMute: (jid: string) => Promise<void>;
|
|
17
|
-
|
|
18
|
-
newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<NewsletterMetadata>;
|
|
18
|
+
newsletterCreate: (name: string, description: string) => Promise<NewsletterMetadata>;
|
|
19
19
|
newsletterMetadata: (type: 'invite' | 'jid', key: string, role?: NewsletterViewRole) => Promise<NewsletterMetadata>;
|
|
20
20
|
newsletterAdminCount: (jid: string) => Promise<number>;
|
|
21
21
|
/**user is Lid, not Jid */
|
|
@@ -24,7 +24,7 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
24
24
|
newsletterDemote: (jid: string, user: string) => Promise<void>;
|
|
25
25
|
newsletterDelete: (jid: string) => Promise<void>;
|
|
26
26
|
/**if code wasn't passed, the reaction will be removed (if is reacted) */
|
|
27
|
-
newsletterReactMessage: (jid: string,
|
|
27
|
+
newsletterReactMessage: (jid: string, server_id: string, code?: string) => Promise<void>;
|
|
28
28
|
newsletterFetchMessages: (type: 'invite' | 'jid', key: string, count: number, after?: number) => Promise<NewsletterFetchedUpdate[]>;
|
|
29
29
|
newsletterFetchUpdates: (jid: string, count: number, after?: number, since?: number) => Promise<NewsletterFetchedUpdate[]>;
|
|
30
30
|
groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
|
|
@@ -47,7 +47,8 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
47
47
|
groupInviteCode: (jid: string) => Promise<string | undefined>;
|
|
48
48
|
groupRevokeInvite: (jid: string) => Promise<string | undefined>;
|
|
49
49
|
groupAcceptInvite: (code: string) => Promise<string | undefined>;
|
|
50
|
-
|
|
50
|
+
groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise<boolean>;
|
|
51
|
+
groupAcceptInviteV4: (key: string | import("../Types").WAMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
|
|
51
52
|
groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
|
|
52
53
|
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
|
|
53
54
|
groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
|
|
@@ -68,30 +69,34 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
68
69
|
presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
|
|
69
70
|
profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
|
|
70
71
|
onWhatsApp: (...jids: string[]) => Promise<{
|
|
71
|
-
exists: boolean;
|
|
72
72
|
jid: string;
|
|
73
|
-
|
|
73
|
+
exists: unknown;
|
|
74
|
+
}[] | undefined>;
|
|
74
75
|
fetchBlocklist: () => Promise<string[]>;
|
|
75
|
-
fetchStatus: (
|
|
76
|
-
|
|
77
|
-
setAt: Date;
|
|
78
|
-
} | undefined>;
|
|
76
|
+
fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
|
|
77
|
+
fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
|
|
79
78
|
updateProfilePicture: (jid: string, content: WAMediaUpload) => Promise<void>;
|
|
79
|
+
updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
|
|
80
|
+
updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
|
|
80
81
|
removeProfilePicture: (jid: string) => Promise<void>;
|
|
81
82
|
updateProfileStatus: (status: string) => Promise<void>;
|
|
82
83
|
updateProfileName: (name: string) => Promise<void>;
|
|
83
84
|
updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
|
|
85
|
+
updateCallPrivacy: (value: import("../Types").WAPrivacyCallValue) => Promise<void>;
|
|
84
86
|
updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
85
87
|
updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
|
|
86
88
|
updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
87
89
|
updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
88
90
|
updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
|
|
89
|
-
updateGroupsAddPrivacy: (value: import("../Types").
|
|
91
|
+
updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
|
|
90
92
|
updateDefaultDisappearingMode: (duration: number) => Promise<void>;
|
|
91
93
|
getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
|
|
92
94
|
resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
|
|
93
95
|
chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
|
|
94
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>;
|
|
99
|
+
addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
|
|
95
100
|
addChatLabel: (jid: string, labelId: string) => Promise<void>;
|
|
96
101
|
removeChatLabel: (jid: string, labelId: string) => Promise<void>;
|
|
97
102
|
addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
|
|
@@ -100,8 +105,9 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
100
105
|
id: string;
|
|
101
106
|
fromMe?: boolean | undefined;
|
|
102
107
|
}[], star: boolean) => Promise<void>;
|
|
108
|
+
executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
|
|
103
109
|
type: "md";
|
|
104
|
-
ws:
|
|
110
|
+
ws: import("./Client").WebSocketClient;
|
|
105
111
|
ev: import("../Types").BaileysEventEmitter & {
|
|
106
112
|
process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
|
|
107
113
|
buffer(): void;
|