alipclutch-baileys 8.5.2 → 8.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -5
- package/WAProto/index.js +77698 -117050
- package/engine-requirements.js +10 -0
- package/lib/Defaults/baileys-version.json +2 -2
- package/lib/Defaults/index.d.ts +7 -16
- package/lib/Defaults/index.js +119 -90
- package/lib/Defaults/phonenumber-mcc.json +223 -0
- package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
- package/lib/Socket/Client/abstract-socket-client.js +13 -0
- package/lib/Socket/Client/index.d.ts +3 -2
- package/lib/Socket/Client/index.js +3 -2
- package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
- package/lib/Socket/Client/mobile-socket-client.js +65 -0
- package/lib/Socket/Client/web-socket-client.d.ts +12 -0
- package/lib/Socket/Client/web-socket-client.js +62 -0
- package/lib/Socket/business.d.ts +58 -59
- package/lib/Socket/chats.d.ts +230 -45
- package/lib/Socket/chats.js +238 -139
- package/lib/Socket/groups.d.ts +32 -41
- package/lib/Socket/groups.js +23 -38
- package/lib/Socket/index.d.ts +64 -63
- package/lib/Socket/index.js +3 -2
- package/lib/Socket/messages-recv.js +65 -9
- package/lib/Socket/messages-send.d.ts +47 -49
- package/lib/Socket/messages-send.js +395 -543
- package/lib/Socket/newsletter.d.ts +37 -39
- package/lib/Socket/newsletter.js +123 -88
- package/lib/Socket/registration.d.ts +267 -0
- package/lib/Socket/registration.js +166 -0
- package/lib/Socket/setup.d.ts +253 -0
- package/lib/Socket/setup.js +4 -5
- package/lib/Socket/socket.d.ts +43 -270
- package/lib/Socket/socket.js +38 -62
- package/lib/Socket/usync.d.ts +3 -3
- package/lib/Store/index.d.ts +2 -1
- package/lib/Store/index.js +3 -1
- package/lib/Store/make-cache-manager-store.d.ts +13 -0
- package/lib/Store/make-cache-manager-store.js +83 -0
- package/lib/Store/make-in-memory-store.d.ts +24 -24
- package/lib/Store/make-in-memory-store.js +14 -26
- package/lib/Store/make-ordered-dictionary.d.ts +1 -1
- package/lib/Store/make-ordered-dictionary.js +2 -2
- package/lib/Types/Auth.d.ts +7 -0
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +7 -14
- package/lib/Types/Contact.d.ts +1 -5
- package/lib/Types/Events.d.ts +2 -44
- package/lib/Types/GroupMetadata.d.ts +2 -11
- package/lib/Types/Label.js +1 -1
- package/lib/Types/LabelAssociation.js +1 -1
- package/lib/Types/Message.d.ts +21 -148
- package/lib/Types/Message.js +2 -0
- package/lib/Types/Newsletter.d.ts +97 -73
- package/lib/Types/Newsletter.js +38 -18
- package/lib/Types/Socket.d.ts +9 -17
- package/lib/Types/index.d.ts +1 -8
- package/lib/Types/index.js +2 -2
- package/lib/Utils/auth-utils.d.ts +3 -3
- package/lib/Utils/auth-utils.js +13 -6
- package/lib/Utils/business.js +2 -2
- package/lib/Utils/chat-utils.d.ts +16 -15
- package/lib/Utils/chat-utils.js +35 -36
- package/lib/Utils/crypto.d.ts +16 -15
- package/lib/Utils/crypto.js +29 -71
- package/lib/Utils/decode-wa-message.d.ts +6 -22
- package/lib/Utils/decode-wa-message.js +56 -65
- package/lib/Utils/event-buffer.d.ts +2 -2
- package/lib/Utils/event-buffer.js +7 -11
- package/lib/Utils/generics.d.ts +20 -17
- package/lib/Utils/generics.js +75 -95
- package/lib/Utils/history.d.ts +0 -4
- package/lib/Utils/history.js +6 -4
- package/lib/Utils/link-preview.d.ts +2 -2
- package/lib/Utils/link-preview.js +1 -34
- package/lib/Utils/logger.d.ts +3 -10
- package/lib/Utils/lt-hash.d.ts +2 -2
- package/lib/Utils/lt-hash.js +6 -6
- package/lib/Utils/make-mutex.d.ts +2 -2
- package/lib/Utils/messages-media.d.ts +24 -28
- package/lib/Utils/messages-media.js +111 -272
- package/lib/Utils/messages.d.ts +10 -13
- package/lib/Utils/messages.js +50 -323
- package/lib/Utils/noise-handler.d.ts +12 -10
- package/lib/Utils/noise-handler.js +23 -18
- package/lib/Utils/process-message.d.ts +4 -5
- package/lib/Utils/process-message.js +25 -108
- package/lib/Utils/signal.d.ts +1 -2
- package/lib/Utils/signal.js +26 -26
- package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +6 -51
- package/lib/Utils/validate-connection.d.ts +4 -3
- package/lib/Utils/validate-connection.js +1 -1
- package/lib/WABinary/constants.d.ts +27 -24
- package/lib/WABinary/constants.js +13 -1276
- package/lib/WABinary/decode.d.ts +4 -3
- package/lib/WABinary/decode.js +13 -26
- package/lib/WABinary/encode.d.ts +2 -1
- package/lib/WABinary/encode.js +152 -137
- package/lib/WABinary/generic-utils.d.ts +4 -1
- package/lib/WABinary/generic-utils.js +125 -37
- package/lib/WABinary/jid-utils.d.ts +5 -11
- package/lib/WABinary/jid-utils.js +5 -28
- package/lib/WAM/BinaryInfo.d.ts +11 -2
- package/lib/WAM/encode.d.ts +2 -1
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +15 -27
- package/package.json +31 -18
- package/WAProto/GenerateStatics.sh +0 -4
- package/WAProto/WAProto.proto +0 -4775
- package/WAProto/index.d.ts +0 -55057
- package/WAProto/index.ts.ts +0 -53473
- package/lib/Socket/setup.ts +0 -623
- package/lib/WABinary/jid-utils.js.bak +0 -83
package/lib/Utils/messages.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { Logger } from 'pino';
|
|
1
4
|
import { type Transform } from 'stream';
|
|
2
5
|
import { proto } from '../../WAProto';
|
|
3
|
-
import { ILogger } from './logger';
|
|
4
6
|
import { AnyMediaMessageContent, AnyMessageContent, MediaGenerationOptions, MessageContentGenerationOptions, MessageGenerationOptions, MessageGenerationOptionsFromContent, MessageUserReceipt, WAMessage, WAMessageContent, WAProto } from '../Types';
|
|
5
7
|
import { MediaDownloadOptions } from './messages-media';
|
|
6
8
|
/**
|
|
@@ -9,7 +11,7 @@ import { MediaDownloadOptions } from './messages-media';
|
|
|
9
11
|
* @returns the URL, eg. https://google.com
|
|
10
12
|
*/
|
|
11
13
|
export declare const extractUrlFromText: (text: string) => string | undefined;
|
|
12
|
-
export declare const generateLinkPreviewIfRequired: (text: string, getUrlInfo: MessageGenerationOptions[
|
|
14
|
+
export declare const generateLinkPreviewIfRequired: (text: string, getUrlInfo: MessageGenerationOptions['getUrlInfo'], logger: MessageGenerationOptions['logger']) => Promise<import("../Types").WAUrlInfo | undefined>;
|
|
13
15
|
export declare const prepareWAMessageMedia: (message: AnyMediaMessageContent, options: MediaGenerationOptions) => Promise<proto.Message>;
|
|
14
16
|
export declare const prepareDisappearingMessageSettingContent: (ephemeralExpiration?: number) => proto.Message;
|
|
15
17
|
/**
|
|
@@ -38,13 +40,13 @@ export declare const extractMessageContent: (content: WAMessageContent | undefin
|
|
|
38
40
|
/**
|
|
39
41
|
* Returns the device predicted by message ID
|
|
40
42
|
*/
|
|
41
|
-
export declare const getDevice: (id: string) => "
|
|
43
|
+
export declare const getDevice: (id: string) => "android" | "unknown" | "web" | "ios" | "desktop";
|
|
42
44
|
/** Upserts a receipt in the message */
|
|
43
|
-
export declare const updateMessageWithReceipt: (msg: Pick<WAMessage,
|
|
45
|
+
export declare const updateMessageWithReceipt: (msg: Pick<WAMessage, 'userReceipt'>, receipt: MessageUserReceipt) => void;
|
|
44
46
|
/** Update the message with a new reaction */
|
|
45
|
-
export declare const updateMessageWithReaction: (msg: Pick<WAMessage,
|
|
47
|
+
export declare const updateMessageWithReaction: (msg: Pick<WAMessage, 'reactions'>, reaction: proto.IReaction) => void;
|
|
46
48
|
/** Update the message with a new poll update */
|
|
47
|
-
export declare const updateMessageWithPollUpdate: (msg: Pick<WAMessage,
|
|
49
|
+
export declare const updateMessageWithPollUpdate: (msg: Pick<WAMessage, 'pollUpdates'>, update: proto.IPollUpdate) => void;
|
|
48
50
|
type VoteAggregation = {
|
|
49
51
|
name: string;
|
|
50
52
|
voters: string[];
|
|
@@ -64,17 +66,12 @@ export declare const aggregateMessageKeysNotFromMe: (keys: proto.IMessageKey[])
|
|
|
64
66
|
}[];
|
|
65
67
|
type DownloadMediaMessageContext = {
|
|
66
68
|
reuploadRequest: (msg: WAMessage) => Promise<WAMessage>;
|
|
67
|
-
logger:
|
|
69
|
+
logger: Logger;
|
|
68
70
|
};
|
|
69
71
|
/**
|
|
70
72
|
* Downloads the given message. Throws an error if it's not a media message
|
|
71
73
|
*/
|
|
72
|
-
export declare const downloadMediaMessage: <Type extends "
|
|
74
|
+
export declare const downloadMediaMessage: <Type extends "stream" | "buffer">(message: WAMessage, type: Type, options: MediaDownloadOptions, ctx?: DownloadMediaMessageContext) => Promise<Type extends "buffer" ? Buffer : Transform>;
|
|
73
75
|
/** Checks whether the given message is a media message; if it is returns the inner content */
|
|
74
76
|
export declare const assertMediaContent: (content: proto.IMessage | null | undefined) => proto.Message.IVideoMessage | proto.Message.IImageMessage | proto.Message.IAudioMessage | proto.Message.IDocumentMessage | proto.Message.IStickerMessage;
|
|
75
|
-
export declare const toJid: (id: string) => string;
|
|
76
|
-
export declare const getSenderLid: (msg: WAMessage) => {
|
|
77
|
-
jid: string;
|
|
78
|
-
lid: string;
|
|
79
|
-
};
|
|
80
77
|
export {};
|
package/lib/Utils/messages.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.assertMediaContent = exports.downloadMediaMessage = exports.aggregateMessageKeysNotFromMe = exports.updateMessageWithPollUpdate = exports.updateMessageWithReaction = exports.updateMessageWithReceipt = exports.getDevice = exports.extractMessageContent = exports.normalizeMessageContent = exports.getContentType = exports.generateWAMessage = exports.generateWAMessageFromContent = exports.generateWAMessageContent = exports.generateForwardMessageContent = exports.prepareDisappearingMessageSettingContent = exports.prepareWAMessageMedia = exports.generateLinkPreviewIfRequired = exports.extractUrlFromText = void 0;
|
|
7
|
-
exports.getAggregateVotesInPollMessage = getAggregateVotesInPollMessage;
|
|
6
|
+
exports.assertMediaContent = exports.downloadMediaMessage = exports.aggregateMessageKeysNotFromMe = exports.getAggregateVotesInPollMessage = exports.updateMessageWithPollUpdate = exports.updateMessageWithReaction = exports.updateMessageWithReceipt = exports.getDevice = exports.extractMessageContent = exports.normalizeMessageContent = exports.getContentType = exports.generateWAMessage = exports.generateWAMessageFromContent = exports.generateWAMessageContent = exports.generateForwardMessageContent = exports.prepareDisappearingMessageSettingContent = exports.prepareWAMessageMedia = exports.generateLinkPreviewIfRequired = exports.extractUrlFromText = void 0;
|
|
8
7
|
const boom_1 = require("@hapi/boom");
|
|
9
8
|
const axios_1 = __importDefault(require("axios"));
|
|
10
9
|
const crypto_1 = require("crypto");
|
|
@@ -75,8 +74,11 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
if (!mediaType) {
|
|
78
|
-
throw new boom_1.Boom('Invalid media type', {
|
|
77
|
+
throw new boom_1.Boom('Invalid media type', {
|
|
78
|
+
statusCode: 400
|
|
79
|
+
});
|
|
79
80
|
}
|
|
81
|
+
|
|
80
82
|
const uploadData = {
|
|
81
83
|
...message,
|
|
82
84
|
...(message.annotations ? {
|
|
@@ -114,20 +116,20 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
114
116
|
media: message[mediaType]
|
|
115
117
|
};
|
|
116
118
|
delete uploadData[mediaType];
|
|
117
|
-
// check if cacheable + generate cache key
|
|
118
119
|
const cacheableKey = typeof uploadData.media === 'object' &&
|
|
119
120
|
('url' in uploadData.media) &&
|
|
120
121
|
!!uploadData.media.url &&
|
|
121
122
|
!!options.mediaCache && (
|
|
122
|
-
// generate the key
|
|
123
123
|
mediaType + ':' + uploadData.media.url.toString());
|
|
124
|
+
|
|
124
125
|
if (mediaType === 'document' && !uploadData.fileName) {
|
|
125
126
|
uploadData.fileName = 'file';
|
|
126
127
|
}
|
|
128
|
+
|
|
127
129
|
if (!uploadData.mimetype) {
|
|
128
130
|
uploadData.mimetype = MIMETYPE_MAP[mediaType];
|
|
129
131
|
}
|
|
130
|
-
|
|
132
|
+
|
|
131
133
|
if (cacheableKey) {
|
|
132
134
|
const mediaBuff = options.mediaCache.get(cacheableKey);
|
|
133
135
|
if (mediaBuff) {
|
|
@@ -138,7 +140,8 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
138
140
|
return obj;
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
|
-
|
|
143
|
+
|
|
144
|
+
const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined';
|
|
142
145
|
const requiresThumbnailComputation = (mediaType === 'image' || mediaType === 'video') &&
|
|
143
146
|
(typeof uploadData['jpegThumbnail'] === 'undefined');
|
|
144
147
|
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true;
|
|
@@ -199,18 +202,13 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
199
202
|
if (!Buffer.isBuffer(encWriteStream)) {
|
|
200
203
|
encWriteStream.destroy();
|
|
201
204
|
}
|
|
202
|
-
|
|
205
|
+
|
|
203
206
|
if (didSaveToTmpPath && bodyPath) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
await fs_1.promises.unlink(bodyPath);
|
|
207
|
-
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp file');
|
|
208
|
-
}
|
|
209
|
-
catch (error) {
|
|
210
|
-
logger === null || logger === void 0 ? void 0 : logger.warn('failed to remove tmp file');
|
|
211
|
-
}
|
|
207
|
+
await fs_1.promises.unlink(bodyPath);
|
|
208
|
+
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp files');
|
|
212
209
|
}
|
|
213
210
|
});
|
|
211
|
+
|
|
214
212
|
const obj = Types_1.WAProto.Message.fromObject({
|
|
215
213
|
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
216
214
|
url: handle ? undefined : mediaUrl,
|
|
@@ -224,14 +222,17 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
224
222
|
media: undefined
|
|
225
223
|
})
|
|
226
224
|
});
|
|
225
|
+
|
|
227
226
|
if (uploadData.ptv) {
|
|
228
227
|
obj.ptvMessage = obj.videoMessage;
|
|
229
228
|
delete obj.videoMessage;
|
|
230
229
|
}
|
|
230
|
+
|
|
231
231
|
if (cacheableKey) {
|
|
232
232
|
logger === null || logger === void 0 ? void 0 : logger.debug({ cacheableKey }, 'set cache');
|
|
233
233
|
options.mediaCache.set(cacheableKey, Types_1.WAProto.Message.encode(obj).finish());
|
|
234
234
|
}
|
|
235
|
+
|
|
235
236
|
return obj;
|
|
236
237
|
};
|
|
237
238
|
exports.prepareWAMessageMedia = prepareWAMessageMedia;
|
|
@@ -282,8 +283,8 @@ const generateForwardMessageContent = (message, forceForward) => {
|
|
|
282
283
|
};
|
|
283
284
|
exports.generateForwardMessageContent = generateForwardMessageContent;
|
|
284
285
|
const generateWAMessageContent = async (message, options) => {
|
|
285
|
-
var _a
|
|
286
|
-
var
|
|
286
|
+
var _a;
|
|
287
|
+
var _b;
|
|
287
288
|
let m = {};
|
|
288
289
|
if ('text' in message) {
|
|
289
290
|
const extContent = { text: message.text };
|
|
@@ -292,6 +293,7 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
292
293
|
urlInfo = await (0, exports.generateLinkPreviewIfRequired)(message.text, options.getUrlInfo, options.logger);
|
|
293
294
|
}
|
|
294
295
|
if (urlInfo) {
|
|
296
|
+
extContent.canonicalUrl = urlInfo['canonical-url'];
|
|
295
297
|
extContent.matchedText = urlInfo['matched-text'];
|
|
296
298
|
extContent.jpegThumbnail = urlInfo.jpegThumbnail;
|
|
297
299
|
extContent.description = urlInfo.description;
|
|
@@ -352,54 +354,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
352
354
|
message.disappearingMessagesInChat;
|
|
353
355
|
m = (0, exports.prepareDisappearingMessageSettingContent)(exp);
|
|
354
356
|
}
|
|
355
|
-
else if ('groupInvite' in message) {
|
|
356
|
-
m.groupInviteMessage = {};
|
|
357
|
-
m.groupInviteMessage.inviteCode = message.groupInvite.inviteCode;
|
|
358
|
-
m.groupInviteMessage.inviteExpiration = message.groupInvite.inviteExpiration;
|
|
359
|
-
m.groupInviteMessage.caption = message.groupInvite.text;
|
|
360
|
-
m.groupInviteMessage.groupJid = message.groupInvite.jid;
|
|
361
|
-
m.groupInviteMessage.groupName = message.groupInvite.subject;
|
|
362
|
-
//TODO: use built-in interface and get disappearing mode info etc.
|
|
363
|
-
//TODO: cache / use store!?
|
|
364
|
-
if (options.getProfilePicUrl) {
|
|
365
|
-
const pfpUrl = await options.getProfilePicUrl(message.groupInvite.jid, 'preview');
|
|
366
|
-
if (pfpUrl) {
|
|
367
|
-
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
368
|
-
if (resp.status === 200) {
|
|
369
|
-
m.groupInviteMessage.jpegThumbnail = resp.data;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
else if ('pin' in message) {
|
|
375
|
-
m.pinInChatMessage = {};
|
|
376
|
-
m.messageContextInfo = {};
|
|
377
|
-
m.pinInChatMessage.key = message.pin;
|
|
378
|
-
m.pinInChatMessage.type = message.type;
|
|
379
|
-
m.pinInChatMessage.senderTimestampMs = Date.now();
|
|
380
|
-
m.messageContextInfo.messageAddOnDurationInSecs = message.type === 1 ? message.time || 86400 : 0;
|
|
381
|
-
}
|
|
382
|
-
else if ('keep' in message) {
|
|
383
|
-
m.keepInChatMessage = {};
|
|
384
|
-
m.keepInChatMessage.key = message.keep;
|
|
385
|
-
m.keepInChatMessage.keepType = message.type;
|
|
386
|
-
m.keepInChatMessage.timestampMs = Date.now();
|
|
387
|
-
}
|
|
388
|
-
else if ('call' in message) {
|
|
389
|
-
m = {
|
|
390
|
-
scheduledCallCreationMessage: {
|
|
391
|
-
scheduledTimestampMs: (_a = message.call.time) !== null && _a !== void 0 ? _a : Date.now(),
|
|
392
|
-
callType: (_b = message.call.type) !== null && _b !== void 0 ? _b : 1,
|
|
393
|
-
title: message.call.title
|
|
394
|
-
}
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
else if ('paymentInvite' in message) {
|
|
398
|
-
m.paymentInviteMessage = {
|
|
399
|
-
serviceType: message.paymentInvite.type,
|
|
400
|
-
expiryTimestamp: message.paymentInvite.expiry
|
|
401
|
-
};
|
|
402
|
-
}
|
|
403
357
|
else if ('buttonReply' in message) {
|
|
404
358
|
switch (message.type) {
|
|
405
359
|
case 'template':
|
|
@@ -418,10 +372,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
418
372
|
break;
|
|
419
373
|
}
|
|
420
374
|
}
|
|
421
|
-
else if ('ptv' in message && message.ptv) {
|
|
422
|
-
const { videoMessage } = await (0, exports.prepareWAMessageMedia)({ video: message.video }, options);
|
|
423
|
-
m.ptvMessage = videoMessage;
|
|
424
|
-
}
|
|
425
375
|
else if ('product' in message) {
|
|
426
376
|
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: message.product.productImage }, options);
|
|
427
377
|
m.productMessage = Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
@@ -432,27 +382,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
432
382
|
}
|
|
433
383
|
});
|
|
434
384
|
}
|
|
435
|
-
else if ('order' in message) {
|
|
436
|
-
m.orderMessage = Types_1.WAProto.Message.OrderMessage.fromObject({
|
|
437
|
-
orderId: message.order.id,
|
|
438
|
-
thumbnail: message.order.thumbnail,
|
|
439
|
-
itemCount: message.order.itemCount,
|
|
440
|
-
status: message.order.status,
|
|
441
|
-
surface: message.order.surface,
|
|
442
|
-
orderTitle: message.order.title,
|
|
443
|
-
message: message.order.text,
|
|
444
|
-
sellerJid: message.order.seller,
|
|
445
|
-
token: message.order.token,
|
|
446
|
-
totalAmount1000: message.order.amount,
|
|
447
|
-
totalCurrencyCode: message.order.currency
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
385
|
else if ('listReply' in message) {
|
|
451
386
|
m.listResponseMessage = { ...message.listReply };
|
|
452
387
|
}
|
|
453
388
|
else if ('poll' in message) {
|
|
454
|
-
(
|
|
455
|
-
(_q = message.poll).toAnnouncementGroup || (_q.toAnnouncementGroup = false);
|
|
389
|
+
(_b = message.poll).selectableCount || (_b.selectableCount = 0);
|
|
456
390
|
if (!Array.isArray(message.poll.values)) {
|
|
457
391
|
throw new boom_1.Boom('Invalid poll values', { statusCode: 400 });
|
|
458
392
|
}
|
|
@@ -464,72 +398,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
464
398
|
// encKey
|
|
465
399
|
messageSecret: message.poll.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
466
400
|
};
|
|
467
|
-
|
|
401
|
+
m.pollCreationMessage = {
|
|
468
402
|
name: message.poll.name,
|
|
469
403
|
selectableOptionsCount: message.poll.selectableCount,
|
|
470
404
|
options: message.poll.values.map(optionName => ({ optionName })),
|
|
471
405
|
};
|
|
472
|
-
if (message.poll.toAnnouncementGroup) {
|
|
473
|
-
// poll v2 is for community announcement groups (single select and multiple)
|
|
474
|
-
m.pollCreationMessageV2 = pollCreationMessage;
|
|
475
|
-
}
|
|
476
|
-
else {
|
|
477
|
-
if (message.poll.selectableCount === 1) {
|
|
478
|
-
// poll v3 is for single select polls
|
|
479
|
-
m.pollCreationMessageV3 = pollCreationMessage;
|
|
480
|
-
}
|
|
481
|
-
else {
|
|
482
|
-
// poll for multiple choice polls
|
|
483
|
-
m.pollCreationMessage = pollCreationMessage;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
else if ('event' in message) {
|
|
488
|
-
m.messageContextInfo = {
|
|
489
|
-
messageSecret: message.event.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
490
|
-
};
|
|
491
|
-
m.eventMessage = { ...message.event };
|
|
492
|
-
}
|
|
493
|
-
else if ('inviteAdmin' in message) {
|
|
494
|
-
m.newsletterAdminInviteMessage = {};
|
|
495
|
-
m.newsletterAdminInviteMessage.inviteExpiration = message.inviteAdmin.inviteExpiration;
|
|
496
|
-
m.newsletterAdminInviteMessage.caption = message.inviteAdmin.text;
|
|
497
|
-
m.newsletterAdminInviteMessage.newsletterJid = message.inviteAdmin.jid;
|
|
498
|
-
m.newsletterAdminInviteMessage.newsletterName = message.inviteAdmin.subject;
|
|
499
|
-
m.newsletterAdminInviteMessage.jpegThumbnail = message.inviteAdmin.thumbnail;
|
|
500
|
-
}
|
|
501
|
-
else if ('requestPayment' in message) {
|
|
502
|
-
const sticker = ((_c = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _c === void 0 ? void 0 : _c.sticker) ?
|
|
503
|
-
await (0, exports.prepareWAMessageMedia)({ sticker: (_d = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _d === void 0 ? void 0 : _d.sticker, ...options }, options)
|
|
504
|
-
: null;
|
|
505
|
-
let notes = {};
|
|
506
|
-
if ((_e = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _e === void 0 ? void 0 : _e.sticker) {
|
|
507
|
-
notes = {
|
|
508
|
-
stickerMessage: {
|
|
509
|
-
...sticker === null || sticker === void 0 ? void 0 : sticker.stickerMessage,
|
|
510
|
-
contextInfo: (_f = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _f === void 0 ? void 0 : _f.contextInfo
|
|
511
|
-
}
|
|
512
|
-
};
|
|
513
|
-
}
|
|
514
|
-
else if (message.requestPayment.note) {
|
|
515
|
-
notes = {
|
|
516
|
-
extendedTextMessage: {
|
|
517
|
-
text: message.requestPayment.note,
|
|
518
|
-
contextInfo: (_g = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _g === void 0 ? void 0 : _g.contextInfo,
|
|
519
|
-
}
|
|
520
|
-
};
|
|
521
|
-
}
|
|
522
|
-
else {
|
|
523
|
-
throw new boom_1.Boom('Invalid media type', { statusCode: 400 });
|
|
524
|
-
}
|
|
525
|
-
m.requestPaymentMessage = Types_1.WAProto.Message.RequestPaymentMessage.fromObject({
|
|
526
|
-
expiryTimestamp: message.requestPayment.expiry,
|
|
527
|
-
amount1000: message.requestPayment.amount,
|
|
528
|
-
currencyCodeIso4217: message.requestPayment.currency,
|
|
529
|
-
requestFrom: message.requestPayment.from,
|
|
530
|
-
noteMessage: { ...notes },
|
|
531
|
-
background: (_h = message.requestPayment.background) !== null && _h !== void 0 ? _h : null,
|
|
532
|
-
});
|
|
533
406
|
}
|
|
534
407
|
else if ('sharePhoneNumber' in message) {
|
|
535
408
|
m.protocolMessage = {
|
|
@@ -539,14 +412,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
539
412
|
else if ('requestPhoneNumber' in message) {
|
|
540
413
|
m.requestPhoneNumberMessage = {};
|
|
541
414
|
}
|
|
542
|
-
else if ('album' in message) {
|
|
543
|
-
const imageMessages = message.album.filter(item => 'image' in item);
|
|
544
|
-
const videoMessages = message.album.filter(item => 'video' in item);
|
|
545
|
-
m.albumMessage = WAProto_1.proto.Message.AlbumMessage.fromObject({
|
|
546
|
-
expectedImageCount: imageMessages.length,
|
|
547
|
-
expectedVideoCount: videoMessages.length,
|
|
548
|
-
});
|
|
549
|
-
}
|
|
550
415
|
else {
|
|
551
416
|
m = await (0, exports.prepareWAMessageMedia)(message, options);
|
|
552
417
|
}
|
|
@@ -566,24 +431,14 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
566
431
|
buttonsMessage.headerType = ButtonType[type];
|
|
567
432
|
Object.assign(buttonsMessage, m);
|
|
568
433
|
}
|
|
569
|
-
if ('title' in message && !!message.title) {
|
|
570
|
-
buttonsMessage.text = message.title,
|
|
571
|
-
buttonsMessage.headerType = ButtonType.TEXT;
|
|
572
|
-
}
|
|
573
434
|
if ('footer' in message && !!message.footer) {
|
|
574
435
|
buttonsMessage.footerText = message.footer;
|
|
575
436
|
}
|
|
576
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
577
|
-
buttonsMessage.contextInfo = message.contextInfo;
|
|
578
|
-
}
|
|
579
|
-
if ('mentions' in message && !!message.mentions) {
|
|
580
|
-
buttonsMessage.contextInfo = { mentionedJid: message.mentions };
|
|
581
|
-
}
|
|
582
437
|
m = { buttonsMessage };
|
|
583
438
|
}
|
|
584
439
|
else if ('templateButtons' in message && !!message.templateButtons) {
|
|
585
440
|
const msg = {
|
|
586
|
-
hydratedButtons: message.
|
|
441
|
+
hydratedButtons: message.templateButtons
|
|
587
442
|
};
|
|
588
443
|
if ('text' in message) {
|
|
589
444
|
msg.hydratedContentText = message.text;
|
|
@@ -615,97 +470,10 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
615
470
|
};
|
|
616
471
|
m = { listMessage };
|
|
617
472
|
}
|
|
618
|
-
if ('interactiveButtons' in message && !!message.interactiveButtons) {
|
|
619
|
-
const interactiveMessage = {
|
|
620
|
-
nativeFlowMessage: Types_1.WAProto.Message.InteractiveMessage.NativeFlowMessage.fromObject({
|
|
621
|
-
buttons: message.interactiveButtons,
|
|
622
|
-
})
|
|
623
|
-
};
|
|
624
|
-
if ('text' in message) {
|
|
625
|
-
interactiveMessage.body = {
|
|
626
|
-
text: message.text
|
|
627
|
-
};
|
|
628
|
-
}
|
|
629
|
-
else if ('caption' in message) {
|
|
630
|
-
interactiveMessage.body = {
|
|
631
|
-
text: message.caption
|
|
632
|
-
};
|
|
633
|
-
interactiveMessage.header = {
|
|
634
|
-
title: message.title,
|
|
635
|
-
subtitle: message.subtitle,
|
|
636
|
-
hasMediaAttachment: (_j = message === null || message === void 0 ? void 0 : message.media) !== null && _j !== void 0 ? _j : false,
|
|
637
|
-
};
|
|
638
|
-
Object.assign(interactiveMessage.header, m);
|
|
639
|
-
}
|
|
640
|
-
if ('footer' in message && !!message.footer) {
|
|
641
|
-
interactiveMessage.footer = {
|
|
642
|
-
text: message.footer
|
|
643
|
-
};
|
|
644
|
-
}
|
|
645
|
-
if ('title' in message && !!message.title) {
|
|
646
|
-
interactiveMessage.header = {
|
|
647
|
-
title: message.title,
|
|
648
|
-
subtitle: message.subtitle,
|
|
649
|
-
hasMediaAttachment: (_k = message === null || message === void 0 ? void 0 : message.media) !== null && _k !== void 0 ? _k : false,
|
|
650
|
-
};
|
|
651
|
-
Object.assign(interactiveMessage.header, m);
|
|
652
|
-
}
|
|
653
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
654
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
655
|
-
}
|
|
656
|
-
if ('mentions' in message && !!message.mentions) {
|
|
657
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
658
|
-
}
|
|
659
|
-
m = { interactiveMessage };
|
|
660
|
-
}
|
|
661
|
-
if ('shop' in message && !!message.shop) {
|
|
662
|
-
const interactiveMessage = {
|
|
663
|
-
shopStorefrontMessage: Types_1.WAProto.Message.InteractiveMessage.ShopMessage.fromObject({
|
|
664
|
-
surface: message.shop,
|
|
665
|
-
id: message.id
|
|
666
|
-
})
|
|
667
|
-
};
|
|
668
|
-
if ('text' in message) {
|
|
669
|
-
interactiveMessage.body = {
|
|
670
|
-
text: message.text
|
|
671
|
-
};
|
|
672
|
-
}
|
|
673
|
-
else if ('caption' in message) {
|
|
674
|
-
interactiveMessage.body = {
|
|
675
|
-
text: message.caption
|
|
676
|
-
};
|
|
677
|
-
interactiveMessage.header = {
|
|
678
|
-
title: message.title,
|
|
679
|
-
subtitle: message.subtitle,
|
|
680
|
-
hasMediaAttachment: (_l = message === null || message === void 0 ? void 0 : message.media) !== null && _l !== void 0 ? _l : false,
|
|
681
|
-
};
|
|
682
|
-
Object.assign(interactiveMessage.header, m);
|
|
683
|
-
}
|
|
684
|
-
if ('footer' in message && !!message.footer) {
|
|
685
|
-
interactiveMessage.footer = {
|
|
686
|
-
text: message.footer
|
|
687
|
-
};
|
|
688
|
-
}
|
|
689
|
-
if ('title' in message && !!message.title) {
|
|
690
|
-
interactiveMessage.header = {
|
|
691
|
-
title: message.title,
|
|
692
|
-
subtitle: message.subtitle,
|
|
693
|
-
hasMediaAttachment: (_m = message === null || message === void 0 ? void 0 : message.media) !== null && _m !== void 0 ? _m : false,
|
|
694
|
-
};
|
|
695
|
-
Object.assign(interactiveMessage.header, m);
|
|
696
|
-
}
|
|
697
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
698
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
699
|
-
}
|
|
700
|
-
if ('mentions' in message && !!message.mentions) {
|
|
701
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
702
|
-
}
|
|
703
|
-
m = { interactiveMessage };
|
|
704
|
-
}
|
|
705
473
|
if ('viewOnce' in message && !!message.viewOnce) {
|
|
706
474
|
m = { viewOnceMessage: { message: m } };
|
|
707
475
|
}
|
|
708
|
-
if ('mentions' in message && ((
|
|
476
|
+
if ('mentions' in message && ((_a = message.mentions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
709
477
|
const [messageType] = Object.keys(m);
|
|
710
478
|
m[messageType].contextInfo = m[messageType] || {};
|
|
711
479
|
m[messageType].contextInfo.mentionedJid = message.mentions;
|
|
@@ -738,29 +506,26 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
738
506
|
const key = (0, exports.getContentType)(innerMessage);
|
|
739
507
|
const timestamp = (0, generics_1.unixTimestampSeconds)(options.timestamp);
|
|
740
508
|
const { quoted, userJid } = options;
|
|
741
|
-
|
|
742
|
-
if (quoted && !(0, WABinary_1.isJidNewsletter)(jid)) {
|
|
509
|
+
if (quoted && !(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
743
510
|
const participant = quoted.key.fromMe ? userJid : (quoted.participant || quoted.key.participant || quoted.key.remoteJid);
|
|
744
511
|
let quotedMsg = (0, exports.normalizeMessageContent)(quoted.message);
|
|
745
512
|
const msgType = (0, exports.getContentType)(quotedMsg);
|
|
746
513
|
// strip any redundant properties
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
innerMessage[key].contextInfo = contextInfo;
|
|
763
|
-
}
|
|
514
|
+
quotedMsg = WAProto_1.proto.Message.fromObject({ [msgType]: quotedMsg[msgType] });
|
|
515
|
+
const quotedContent = quotedMsg[msgType];
|
|
516
|
+
if (typeof quotedContent === 'object' && quotedContent && 'contextInfo' in quotedContent) {
|
|
517
|
+
delete quotedContent.contextInfo;
|
|
518
|
+
}
|
|
519
|
+
const contextInfo = innerMessage[key].contextInfo || {};
|
|
520
|
+
contextInfo.participant = (0, WABinary_1.jidNormalizedUser)(participant);
|
|
521
|
+
contextInfo.stanzaId = quoted.key.id;
|
|
522
|
+
contextInfo.quotedMessage = quotedMsg;
|
|
523
|
+
// if a participant is quoted, then it must be a group
|
|
524
|
+
// hence, remoteJid of group must also be entered
|
|
525
|
+
if (jid !== quoted.key.remoteJid) {
|
|
526
|
+
contextInfo.remoteJid = quoted.key.remoteJid;
|
|
527
|
+
}
|
|
528
|
+
innerMessage[key].contextInfo = contextInfo;
|
|
764
529
|
}
|
|
765
530
|
if (
|
|
766
531
|
// if we want to send a disappearing message
|
|
@@ -770,7 +535,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
770
535
|
// already not converted to disappearing message
|
|
771
536
|
key !== 'ephemeralMessage' &&
|
|
772
537
|
// newsletter not accept disappearing messages
|
|
773
|
-
!(0, WABinary_1.
|
|
538
|
+
!(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
774
539
|
innerMessage[key].contextInfo = {
|
|
775
540
|
...(innerMessage[key].contextInfo || {}),
|
|
776
541
|
expiration: options.ephemeralExpiration || Defaults_1.WA_DEFAULT_EPHEMERAL,
|
|
@@ -782,7 +547,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
782
547
|
key: {
|
|
783
548
|
remoteJid: jid,
|
|
784
549
|
fromMe: true,
|
|
785
|
-
id: (options === null || options === void 0 ? void 0 : options.messageId) || (0, generics_1.
|
|
550
|
+
id: (options === null || options === void 0 ? void 0 : options.messageId) || (0, generics_1.generateMessageID)(),
|
|
786
551
|
},
|
|
787
552
|
message: message,
|
|
788
553
|
messageTimestamp: timestamp,
|
|
@@ -797,7 +562,7 @@ const generateWAMessage = async (jid, content, options) => {
|
|
|
797
562
|
var _a;
|
|
798
563
|
// ensure msg ID is with every log
|
|
799
564
|
options.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.child({ msgId: options.messageId });
|
|
800
|
-
return (0, exports.generateWAMessageFromContent)(jid, await (0, exports.generateWAMessageContent)(content, { newsletter: (0, WABinary_1.
|
|
565
|
+
return (0, exports.generateWAMessageFromContent)(jid, await (0, exports.generateWAMessageContent)(content, { newsletter: (0, WABinary_1.isJidNewsLetter)(jid), ...options }), options);
|
|
801
566
|
};
|
|
802
567
|
exports.generateWAMessage = generateWAMessage;
|
|
803
568
|
/** Get the key to access the true type of content */
|
|
@@ -834,24 +599,7 @@ const normalizeMessageContent = (content) => {
|
|
|
834
599
|
|| (message === null || message === void 0 ? void 0 : message.documentWithCaptionMessage)
|
|
835
600
|
|| (message === null || message === void 0 ? void 0 : message.viewOnceMessageV2)
|
|
836
601
|
|| (message === null || message === void 0 ? void 0 : message.viewOnceMessageV2Extension)
|
|
837
|
-
|| (message === null || message === void 0 ? void 0 : message.editedMessage)
|
|
838
|
-
|| (message === null || message === void 0 ? void 0 : message.groupMentionedMessage)
|
|
839
|
-
|| (message === null || message === void 0 ? void 0 : message.botInvokeMessage)
|
|
840
|
-
|| (message === null || message === void 0 ? void 0 : message.lottieStickerMessage)
|
|
841
|
-
|| (message === null || message === void 0 ? void 0 : message.eventCoverImage)
|
|
842
|
-
|| (message === null || message === void 0 ? void 0 : message.statusMentionMessage)
|
|
843
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationOptionImageMessage)
|
|
844
|
-
|| (message === null || message === void 0 ? void 0 : message.associatedChildMessage)
|
|
845
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMentionMessage)
|
|
846
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationMessageV4)
|
|
847
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationMessageV5)
|
|
848
|
-
|| (message === null || message === void 0 ? void 0 : message.statusAddYours)
|
|
849
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMessage)
|
|
850
|
-
|| (message === null || message === void 0 ? void 0 : message.limitSharingMessage)
|
|
851
|
-
|| (message === null || message === void 0 ? void 0 : message.botTaskMessage)
|
|
852
|
-
|| (message === null || message === void 0 ? void 0 : message.questionMessage)
|
|
853
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMessageV2)
|
|
854
|
-
|| (message === null || message === void 0 ? void 0 : message.botForwardedMessage));
|
|
602
|
+
|| (message === null || message === void 0 ? void 0 : message.editedMessage));
|
|
855
603
|
}
|
|
856
604
|
};
|
|
857
605
|
exports.normalizeMessageContent = normalizeMessageContent;
|
|
@@ -901,11 +649,7 @@ exports.extractMessageContent = extractMessageContent;
|
|
|
901
649
|
/**
|
|
902
650
|
* Returns the device predicted by message ID
|
|
903
651
|
*/
|
|
904
|
-
const getDevice = (id) => /^3A.{18}$/.test(id) ? 'ios' :
|
|
905
|
-
/^3E.{20}$/.test(id) ? 'web' :
|
|
906
|
-
/^(.{21}|.{32})$/.test(id) ? 'android' :
|
|
907
|
-
/^(3F|.{18}$)/.test(id) ? 'desktop' :
|
|
908
|
-
'unknown';
|
|
652
|
+
const getDevice = (id) => /^3A.{18}$/.test(id) ? 'ios' : /^3E.{20}$/.test(id) ? 'web' : /^(.{21}|.{32})$/.test(id) ? 'android' : /^.{18}$/.test(id) ? 'desktop' : 'unknown';
|
|
909
653
|
exports.getDevice = getDevice;
|
|
910
654
|
/** Upserts a receipt in the message */
|
|
911
655
|
const updateMessageWithReceipt = (msg, receipt) => {
|
|
@@ -924,8 +668,9 @@ const updateMessageWithReaction = (msg, reaction) => {
|
|
|
924
668
|
const authorID = (0, generics_1.getKeyAuthor)(reaction.key);
|
|
925
669
|
const reactions = (msg.reactions || [])
|
|
926
670
|
.filter(r => (0, generics_1.getKeyAuthor)(r.key) !== authorID);
|
|
927
|
-
|
|
928
|
-
|
|
671
|
+
if (reaction.text) {
|
|
672
|
+
reactions.push(reaction);
|
|
673
|
+
}
|
|
929
674
|
msg.reactions = reactions;
|
|
930
675
|
};
|
|
931
676
|
exports.updateMessageWithReaction = updateMessageWithReaction;
|
|
@@ -978,6 +723,7 @@ function getAggregateVotesInPollMessage({ message, pollUpdates }, meId) {
|
|
|
978
723
|
}
|
|
979
724
|
return Object.values(voteHashMap);
|
|
980
725
|
}
|
|
726
|
+
exports.getAggregateVotesInPollMessage = getAggregateVotesInPollMessage;
|
|
981
727
|
/** Given a list of message keys, aggregates them by chat & sender. Useful for sending read receipts in bulk */
|
|
982
728
|
const aggregateMessageKeysNotFromMe = (keys) => {
|
|
983
729
|
const keyMap = {};
|
|
@@ -1068,22 +814,3 @@ const assertMediaContent = (content) => {
|
|
|
1068
814
|
return mediaContent;
|
|
1069
815
|
};
|
|
1070
816
|
exports.assertMediaContent = assertMediaContent;
|
|
1071
|
-
|
|
1072
|
-
const toJid = (id) => {
|
|
1073
|
-
if (!id)
|
|
1074
|
-
return '';
|
|
1075
|
-
if (id.endsWith('@lid'))
|
|
1076
|
-
return id.replace('@lid', '@s.whatsapp.net');
|
|
1077
|
-
if (id.includes('@'))
|
|
1078
|
-
return id;
|
|
1079
|
-
return `${id}@s.whatsapp.net`;
|
|
1080
|
-
};
|
|
1081
|
-
exports.toJid = toJid;
|
|
1082
|
-
const getSenderLid = (message) => {
|
|
1083
|
-
const sender = message.key.participant || message.key.remoteJid;
|
|
1084
|
-
const user = (0, WABinary_1.jidDecode)(sender)?.user || '';
|
|
1085
|
-
const lid = (0, WABinary_1.jidEncode)(user, 'lid');
|
|
1086
|
-
console.log('sender lid:', lid);
|
|
1087
|
-
return { jid: sender, lid };
|
|
1088
|
-
};
|
|
1089
|
-
exports.getSenderLid = getSenderLid;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Logger } from 'pino';
|
|
2
3
|
import { proto } from '../../WAProto';
|
|
3
4
|
import { KeyPair } from '../Types';
|
|
4
5
|
import { BinaryNode } from '../WABinary';
|
|
5
|
-
export declare const makeNoiseHandler: ({ keyPair: { private: privateKey, public: publicKey }, NOISE_HEADER, logger, routingInfo }: {
|
|
6
|
+
export declare const makeNoiseHandler: ({ keyPair: { private: privateKey, public: publicKey }, NOISE_HEADER, mobile, logger, routingInfo }: {
|
|
6
7
|
keyPair: KeyPair;
|
|
7
8
|
NOISE_HEADER: Uint8Array;
|
|
8
|
-
|
|
9
|
+
mobile: boolean;
|
|
10
|
+
logger: Logger;
|
|
9
11
|
routingInfo?: Buffer | undefined;
|
|
10
12
|
}) => {
|
|
11
|
-
encrypt: (plaintext: Uint8Array) => Buffer
|
|
12
|
-
decrypt: (ciphertext: Uint8Array) => Buffer
|
|
13
|
+
encrypt: (plaintext: Uint8Array) => Buffer;
|
|
14
|
+
decrypt: (ciphertext: Uint8Array) => Buffer;
|
|
13
15
|
authenticate: (data: Uint8Array) => void;
|
|
14
|
-
mixIntoKey: (data: Uint8Array) =>
|
|
15
|
-
finishInit: () =>
|
|
16
|
-
processHandshake: ({ serverHello }: proto.HandshakeMessage, noiseKey: KeyPair) =>
|
|
17
|
-
encodeFrame: (data: Buffer | Uint8Array) => Buffer
|
|
18
|
-
decodeFrame: (newData: Buffer | Uint8Array, onFrame: (buff: Uint8Array | BinaryNode) => void) =>
|
|
16
|
+
mixIntoKey: (data: Uint8Array) => void;
|
|
17
|
+
finishInit: () => void;
|
|
18
|
+
processHandshake: ({ serverHello }: proto.HandshakeMessage, noiseKey: KeyPair) => Buffer;
|
|
19
|
+
encodeFrame: (data: Buffer | Uint8Array) => Buffer;
|
|
20
|
+
decodeFrame: (newData: Buffer | Uint8Array, onFrame: (buff: Uint8Array | BinaryNode) => void) => void;
|
|
19
21
|
};
|