alipclutch-baileys 8.5.3 → 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/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 +51 -336
- 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,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
3
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
4
|
};
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
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;
|
|
8
|
-
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;
|
|
9
7
|
const boom_1 = require("@hapi/boom");
|
|
10
8
|
const axios_1 = __importDefault(require("axios"));
|
|
11
9
|
const crypto_1 = require("crypto");
|
|
@@ -76,8 +74,11 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
if (!mediaType) {
|
|
79
|
-
throw new boom_1.Boom('Invalid media type', {
|
|
77
|
+
throw new boom_1.Boom('Invalid media type', {
|
|
78
|
+
statusCode: 400
|
|
79
|
+
});
|
|
80
80
|
}
|
|
81
|
+
|
|
81
82
|
const uploadData = {
|
|
82
83
|
...message,
|
|
83
84
|
...(message.annotations ? {
|
|
@@ -115,20 +116,20 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
115
116
|
media: message[mediaType]
|
|
116
117
|
};
|
|
117
118
|
delete uploadData[mediaType];
|
|
118
|
-
// check if cacheable + generate cache key
|
|
119
119
|
const cacheableKey = typeof uploadData.media === 'object' &&
|
|
120
120
|
('url' in uploadData.media) &&
|
|
121
121
|
!!uploadData.media.url &&
|
|
122
122
|
!!options.mediaCache && (
|
|
123
|
-
// generate the key
|
|
124
123
|
mediaType + ':' + uploadData.media.url.toString());
|
|
124
|
+
|
|
125
125
|
if (mediaType === 'document' && !uploadData.fileName) {
|
|
126
126
|
uploadData.fileName = 'file';
|
|
127
127
|
}
|
|
128
|
+
|
|
128
129
|
if (!uploadData.mimetype) {
|
|
129
130
|
uploadData.mimetype = MIMETYPE_MAP[mediaType];
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
+
|
|
132
133
|
if (cacheableKey) {
|
|
133
134
|
const mediaBuff = options.mediaCache.get(cacheableKey);
|
|
134
135
|
if (mediaBuff) {
|
|
@@ -139,7 +140,8 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
139
140
|
return obj;
|
|
140
141
|
}
|
|
141
142
|
}
|
|
142
|
-
|
|
143
|
+
|
|
144
|
+
const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined';
|
|
143
145
|
const requiresThumbnailComputation = (mediaType === 'image' || mediaType === 'video') &&
|
|
144
146
|
(typeof uploadData['jpegThumbnail'] === 'undefined');
|
|
145
147
|
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true;
|
|
@@ -200,18 +202,13 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
200
202
|
if (!Buffer.isBuffer(encWriteStream)) {
|
|
201
203
|
encWriteStream.destroy();
|
|
202
204
|
}
|
|
203
|
-
|
|
205
|
+
|
|
204
206
|
if (didSaveToTmpPath && bodyPath) {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
await fs_1.promises.unlink(bodyPath);
|
|
208
|
-
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp file');
|
|
209
|
-
}
|
|
210
|
-
catch (error) {
|
|
211
|
-
logger === null || logger === void 0 ? void 0 : logger.warn('failed to remove tmp file');
|
|
212
|
-
}
|
|
207
|
+
await fs_1.promises.unlink(bodyPath);
|
|
208
|
+
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp files');
|
|
213
209
|
}
|
|
214
210
|
});
|
|
211
|
+
|
|
215
212
|
const obj = Types_1.WAProto.Message.fromObject({
|
|
216
213
|
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
217
214
|
url: handle ? undefined : mediaUrl,
|
|
@@ -225,25 +222,17 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
225
222
|
media: undefined
|
|
226
223
|
})
|
|
227
224
|
});
|
|
228
|
-
|
|
229
|
-
// START PERBAIKAN PTV UNTUK CHANNEL
|
|
225
|
+
|
|
230
226
|
if (uploadData.ptv) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
obj.videoMessage = obj.videoMessage;
|
|
234
|
-
obj.videoMessage.viewOnce = true;
|
|
235
|
-
} else {
|
|
236
|
-
// Untuk chat biasa, gunakan ptvMessage
|
|
237
|
-
obj.ptvMessage = obj.videoMessage;
|
|
238
|
-
delete obj.videoMessage;
|
|
239
|
-
}
|
|
227
|
+
obj.ptvMessage = obj.videoMessage;
|
|
228
|
+
delete obj.videoMessage;
|
|
240
229
|
}
|
|
241
|
-
// END PERBAIKAN PTV UNTUK CHANNEL
|
|
242
230
|
|
|
243
231
|
if (cacheableKey) {
|
|
244
232
|
logger === null || logger === void 0 ? void 0 : logger.debug({ cacheableKey }, 'set cache');
|
|
245
233
|
options.mediaCache.set(cacheableKey, Types_1.WAProto.Message.encode(obj).finish());
|
|
246
234
|
}
|
|
235
|
+
|
|
247
236
|
return obj;
|
|
248
237
|
};
|
|
249
238
|
exports.prepareWAMessageMedia = prepareWAMessageMedia;
|
|
@@ -294,8 +283,8 @@ const generateForwardMessageContent = (message, forceForward) => {
|
|
|
294
283
|
};
|
|
295
284
|
exports.generateForwardMessageContent = generateForwardMessageContent;
|
|
296
285
|
const generateWAMessageContent = async (message, options) => {
|
|
297
|
-
var _a
|
|
298
|
-
var
|
|
286
|
+
var _a;
|
|
287
|
+
var _b;
|
|
299
288
|
let m = {};
|
|
300
289
|
if ('text' in message) {
|
|
301
290
|
const extContent = { text: message.text };
|
|
@@ -304,6 +293,7 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
304
293
|
urlInfo = await (0, exports.generateLinkPreviewIfRequired)(message.text, options.getUrlInfo, options.logger);
|
|
305
294
|
}
|
|
306
295
|
if (urlInfo) {
|
|
296
|
+
extContent.canonicalUrl = urlInfo['canonical-url'];
|
|
307
297
|
extContent.matchedText = urlInfo['matched-text'];
|
|
308
298
|
extContent.jpegThumbnail = urlInfo.jpegThumbnail;
|
|
309
299
|
extContent.description = urlInfo.description;
|
|
@@ -364,54 +354,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
364
354
|
message.disappearingMessagesInChat;
|
|
365
355
|
m = (0, exports.prepareDisappearingMessageSettingContent)(exp);
|
|
366
356
|
}
|
|
367
|
-
else if ('groupInvite' in message) {
|
|
368
|
-
m.groupInviteMessage = {};
|
|
369
|
-
m.groupInviteMessage.inviteCode = message.groupInvite.inviteCode;
|
|
370
|
-
m.groupInviteMessage.inviteExpiration = message.groupInvite.inviteExpiration;
|
|
371
|
-
m.groupInviteMessage.caption = message.groupInvite.text;
|
|
372
|
-
m.groupInviteMessage.groupJid = message.groupInvite.jid;
|
|
373
|
-
m.groupInviteMessage.groupName = message.groupInvite.subject;
|
|
374
|
-
//TODO: use built-in interface and get disappearing mode info etc.
|
|
375
|
-
//TODO: cache / use store!?
|
|
376
|
-
if (options.getProfilePicUrl) {
|
|
377
|
-
const pfpUrl = await options.getProfilePicUrl(message.groupInvite.jid, 'preview');
|
|
378
|
-
if (pfpUrl) {
|
|
379
|
-
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
380
|
-
if (resp.status === 200) {
|
|
381
|
-
m.groupInviteMessage.jpegThumbnail = resp.data;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
else if ('pin' in message) {
|
|
387
|
-
m.pinInChatMessage = {};
|
|
388
|
-
m.messageContextInfo = {};
|
|
389
|
-
m.pinInChatMessage.key = message.pin;
|
|
390
|
-
m.pinInChatMessage.type = message.type;
|
|
391
|
-
m.pinInChatMessage.senderTimestampMs = Date.now();
|
|
392
|
-
m.messageContextInfo.messageAddOnDurationInSecs = message.type === 1 ? message.time || 86400 : 0;
|
|
393
|
-
}
|
|
394
|
-
else if ('keep' in message) {
|
|
395
|
-
m.keepInChatMessage = {};
|
|
396
|
-
m.keepInChatMessage.key = message.keep;
|
|
397
|
-
m.keepInChatMessage.keepType = message.type;
|
|
398
|
-
m.keepInChatMessage.timestampMs = Date.now();
|
|
399
|
-
}
|
|
400
|
-
else if ('call' in message) {
|
|
401
|
-
m = {
|
|
402
|
-
scheduledCallCreationMessage: {
|
|
403
|
-
scheduledTimestampMs: (_a = message.call.time) !== null && _a !== void 0 ? _a : Date.now(),
|
|
404
|
-
callType: (_b = message.call.type) !== null && _b !== void 0 ? _b : 1,
|
|
405
|
-
title: message.call.title
|
|
406
|
-
}
|
|
407
|
-
};
|
|
408
|
-
}
|
|
409
|
-
else if ('paymentInvite' in message) {
|
|
410
|
-
m.paymentInviteMessage = {
|
|
411
|
-
serviceType: message.paymentInvite.type,
|
|
412
|
-
expiryTimestamp: message.paymentInvite.expiry
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
357
|
else if ('buttonReply' in message) {
|
|
416
358
|
switch (message.type) {
|
|
417
359
|
case 'template':
|
|
@@ -430,10 +372,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
430
372
|
break;
|
|
431
373
|
}
|
|
432
374
|
}
|
|
433
|
-
else if ('ptv' in message && message.ptv) {
|
|
434
|
-
const { videoMessage } = await (0, exports.prepareWAMessageMedia)({ video: message.video, ptv: true }, options); // <-- Perbaikan ptv: true
|
|
435
|
-
m.ptvMessage = videoMessage;
|
|
436
|
-
}
|
|
437
375
|
else if ('product' in message) {
|
|
438
376
|
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: message.product.productImage }, options);
|
|
439
377
|
m.productMessage = Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
@@ -444,27 +382,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
444
382
|
}
|
|
445
383
|
});
|
|
446
384
|
}
|
|
447
|
-
else if ('order' in message) {
|
|
448
|
-
m.orderMessage = Types_1.WAProto.Message.OrderMessage.fromObject({
|
|
449
|
-
orderId: message.order.id,
|
|
450
|
-
thumbnail: message.order.thumbnail,
|
|
451
|
-
itemCount: message.order.itemCount,
|
|
452
|
-
status: message.order.status,
|
|
453
|
-
surface: message.order.surface,
|
|
454
|
-
orderTitle: message.order.title,
|
|
455
|
-
message: message.order.text,
|
|
456
|
-
sellerJid: message.order.seller,
|
|
457
|
-
token: message.order.token,
|
|
458
|
-
totalAmount1000: message.order.amount,
|
|
459
|
-
totalCurrencyCode: message.order.currency
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
385
|
else if ('listReply' in message) {
|
|
463
386
|
m.listResponseMessage = { ...message.listReply };
|
|
464
387
|
}
|
|
465
388
|
else if ('poll' in message) {
|
|
466
|
-
(
|
|
467
|
-
(_q = message.poll).toAnnouncementGroup || (_q.toAnnouncementGroup = false);
|
|
389
|
+
(_b = message.poll).selectableCount || (_b.selectableCount = 0);
|
|
468
390
|
if (!Array.isArray(message.poll.values)) {
|
|
469
391
|
throw new boom_1.Boom('Invalid poll values', { statusCode: 400 });
|
|
470
392
|
}
|
|
@@ -476,72 +398,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
476
398
|
// encKey
|
|
477
399
|
messageSecret: message.poll.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
478
400
|
};
|
|
479
|
-
|
|
401
|
+
m.pollCreationMessage = {
|
|
480
402
|
name: message.poll.name,
|
|
481
403
|
selectableOptionsCount: message.poll.selectableCount,
|
|
482
404
|
options: message.poll.values.map(optionName => ({ optionName })),
|
|
483
405
|
};
|
|
484
|
-
if (message.poll.toAnnouncementGroup) {
|
|
485
|
-
// poll v2 is for community announcement groups (single select and multiple)
|
|
486
|
-
m.pollCreationMessageV2 = pollCreationMessage;
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
if (message.poll.selectableCount === 1) {
|
|
490
|
-
// poll v3 is for single select polls
|
|
491
|
-
m.pollCreationMessageV3 = pollCreationMessage;
|
|
492
|
-
}
|
|
493
|
-
else {
|
|
494
|
-
// poll for multiple choice polls
|
|
495
|
-
m.pollCreationMessage = pollCreationMessage;
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
else if ('event' in message) {
|
|
500
|
-
m.messageContextInfo = {
|
|
501
|
-
messageSecret: message.event.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
502
|
-
};
|
|
503
|
-
m.eventMessage = { ...message.event };
|
|
504
|
-
}
|
|
505
|
-
else if ('inviteAdmin' in message) {
|
|
506
|
-
m.newsletterAdminInviteMessage = {};
|
|
507
|
-
m.newsletterAdminInviteMessage.inviteExpiration = message.inviteAdmin.inviteExpiration;
|
|
508
|
-
m.newsletterAdminInviteMessage.caption = message.inviteAdmin.text;
|
|
509
|
-
m.newsletterAdminInviteMessage.newsletterJid = message.inviteAdmin.jid;
|
|
510
|
-
m.newsletterAdminInviteMessage.newsletterName = message.inviteAdmin.subject;
|
|
511
|
-
m.newsletterAdminInviteMessage.jpegThumbnail = message.inviteAdmin.thumbnail;
|
|
512
|
-
}
|
|
513
|
-
else if ('requestPayment' in message) {
|
|
514
|
-
const sticker = ((_c = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _c === void 0 ? void 0 : _c.sticker) ?
|
|
515
|
-
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)
|
|
516
|
-
: null;
|
|
517
|
-
let notes = {};
|
|
518
|
-
if ((_e = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _e === void 0 ? void 0 : _e.sticker) {
|
|
519
|
-
notes = {
|
|
520
|
-
stickerMessage: {
|
|
521
|
-
...sticker === null || sticker === void 0 ? void 0 : sticker.stickerMessage,
|
|
522
|
-
contextInfo: (_f = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _f === void 0 ? void 0 : _f.contextInfo
|
|
523
|
-
}
|
|
524
|
-
};
|
|
525
|
-
}
|
|
526
|
-
else if (message.requestPayment.note) {
|
|
527
|
-
notes = {
|
|
528
|
-
extendedTextMessage: {
|
|
529
|
-
text: message.requestPayment.note,
|
|
530
|
-
contextInfo: (_g = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _g === void 0 ? void 0 : _g.contextInfo,
|
|
531
|
-
}
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
else {
|
|
535
|
-
throw new boom_1.Boom('Invalid media type', { statusCode: 400 });
|
|
536
|
-
}
|
|
537
|
-
m.requestPaymentMessage = Types_1.WAProto.Message.RequestPaymentMessage.fromObject({
|
|
538
|
-
expiryTimestamp: message.requestPayment.expiry,
|
|
539
|
-
amount1000: message.requestPayment.amount,
|
|
540
|
-
currencyCodeIso4217: message.requestPayment.currency,
|
|
541
|
-
requestFrom: message.requestPayment.from,
|
|
542
|
-
noteMessage: { ...notes },
|
|
543
|
-
background: (_h = message.requestPayment.background) !== null && _h !== void 0 ? _h : null,
|
|
544
|
-
});
|
|
545
406
|
}
|
|
546
407
|
else if ('sharePhoneNumber' in message) {
|
|
547
408
|
m.protocolMessage = {
|
|
@@ -551,14 +412,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
551
412
|
else if ('requestPhoneNumber' in message) {
|
|
552
413
|
m.requestPhoneNumberMessage = {};
|
|
553
414
|
}
|
|
554
|
-
else if ('album' in message) {
|
|
555
|
-
const imageMessages = message.album.filter(item => 'image' in item);
|
|
556
|
-
const videoMessages = message.album.filter(item => 'video' in item);
|
|
557
|
-
m.albumMessage = WAProto_1.proto.Message.AlbumMessage.fromObject({
|
|
558
|
-
expectedImageCount: imageMessages.length,
|
|
559
|
-
expectedVideoCount: videoMessages.length,
|
|
560
|
-
});
|
|
561
|
-
}
|
|
562
415
|
else {
|
|
563
416
|
m = await (0, exports.prepareWAMessageMedia)(message, options);
|
|
564
417
|
}
|
|
@@ -578,24 +431,14 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
578
431
|
buttonsMessage.headerType = ButtonType[type];
|
|
579
432
|
Object.assign(buttonsMessage, m);
|
|
580
433
|
}
|
|
581
|
-
if ('title' in message && !!message.title) {
|
|
582
|
-
buttonsMessage.text = message.title,
|
|
583
|
-
buttonsMessage.headerType = ButtonType.TEXT;
|
|
584
|
-
}
|
|
585
434
|
if ('footer' in message && !!message.footer) {
|
|
586
435
|
buttonsMessage.footerText = message.footer;
|
|
587
436
|
}
|
|
588
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
589
|
-
buttonsMessage.contextInfo = message.contextInfo;
|
|
590
|
-
}
|
|
591
|
-
if ('mentions' in message && !!message.mentions) {
|
|
592
|
-
buttonsMessage.contextInfo = { mentionedJid: message.mentions };
|
|
593
|
-
}
|
|
594
437
|
m = { buttonsMessage };
|
|
595
438
|
}
|
|
596
439
|
else if ('templateButtons' in message && !!message.templateButtons) {
|
|
597
440
|
const msg = {
|
|
598
|
-
hydratedButtons: message.
|
|
441
|
+
hydratedButtons: message.templateButtons
|
|
599
442
|
};
|
|
600
443
|
if ('text' in message) {
|
|
601
444
|
msg.hydratedContentText = message.text;
|
|
@@ -627,97 +470,10 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
627
470
|
};
|
|
628
471
|
m = { listMessage };
|
|
629
472
|
}
|
|
630
|
-
if ('interactiveButtons' in message && !!message.interactiveButtons) {
|
|
631
|
-
const interactiveMessage = {
|
|
632
|
-
nativeFlowMessage: Types_1.WAProto.Message.InteractiveMessage.NativeFlowMessage.fromObject({
|
|
633
|
-
buttons: message.interactiveButtons,
|
|
634
|
-
})
|
|
635
|
-
};
|
|
636
|
-
if ('text' in message) {
|
|
637
|
-
interactiveMessage.body = {
|
|
638
|
-
text: message.text
|
|
639
|
-
};
|
|
640
|
-
}
|
|
641
|
-
else if ('caption' in message) {
|
|
642
|
-
interactiveMessage.body = {
|
|
643
|
-
text: message.caption
|
|
644
|
-
};
|
|
645
|
-
interactiveMessage.header = {
|
|
646
|
-
title: message.title,
|
|
647
|
-
subtitle: message.subtitle,
|
|
648
|
-
hasMediaAttachment: (_j = message === null || message === void 0 ? void 0 : message.media) !== null && _j !== void 0 ? _j : false,
|
|
649
|
-
};
|
|
650
|
-
Object.assign(interactiveMessage.header, m);
|
|
651
|
-
}
|
|
652
|
-
if ('footer' in message && !!message.footer) {
|
|
653
|
-
interactiveMessage.footer = {
|
|
654
|
-
text: message.footer
|
|
655
|
-
};
|
|
656
|
-
}
|
|
657
|
-
if ('title' in message && !!message.title) {
|
|
658
|
-
interactiveMessage.header = {
|
|
659
|
-
title: message.title,
|
|
660
|
-
subtitle: message.subtitle,
|
|
661
|
-
hasMediaAttachment: (_k = message === null || message === void 0 ? void 0 : message.media) !== null && _k !== void 0 ? _k : false,
|
|
662
|
-
};
|
|
663
|
-
Object.assign(interactiveMessage.header, m);
|
|
664
|
-
}
|
|
665
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
666
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
667
|
-
}
|
|
668
|
-
if ('mentions' in message && !!message.mentions) {
|
|
669
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
670
|
-
}
|
|
671
|
-
m = { interactiveMessage };
|
|
672
|
-
}
|
|
673
|
-
if ('shop' in message && !!message.shop) {
|
|
674
|
-
const interactiveMessage = {
|
|
675
|
-
shopStorefrontMessage: Types_1.WAProto.Message.InteractiveMessage.ShopMessage.fromObject({
|
|
676
|
-
surface: message.shop,
|
|
677
|
-
id: message.id
|
|
678
|
-
})
|
|
679
|
-
};
|
|
680
|
-
if ('text' in message) {
|
|
681
|
-
interactiveMessage.body = {
|
|
682
|
-
text: message.text
|
|
683
|
-
};
|
|
684
|
-
}
|
|
685
|
-
else if ('caption' in message) {
|
|
686
|
-
interactiveMessage.body = {
|
|
687
|
-
text: message.caption
|
|
688
|
-
};
|
|
689
|
-
interactiveMessage.header = {
|
|
690
|
-
title: message.title,
|
|
691
|
-
subtitle: message.subtitle,
|
|
692
|
-
hasMediaAttachment: (_l = message === null || message === void 0 ? void 0 : message.media) !== null && _l !== void 0 ? _l : false,
|
|
693
|
-
};
|
|
694
|
-
Object.assign(interactiveMessage.header, m);
|
|
695
|
-
}
|
|
696
|
-
if ('footer' in message && !!message.footer) {
|
|
697
|
-
interactiveMessage.footer = {
|
|
698
|
-
text: message.footer
|
|
699
|
-
};
|
|
700
|
-
}
|
|
701
|
-
if ('title' in message && !!message.title) {
|
|
702
|
-
interactiveMessage.header = {
|
|
703
|
-
title: message.title,
|
|
704
|
-
subtitle: message.subtitle,
|
|
705
|
-
hasMediaAttachment: (_m = message === null || message === void 0 ? void 0 : message.media) !== null && _m !== void 0 ? _m : false,
|
|
706
|
-
};
|
|
707
|
-
Object.assign(interactiveMessage.header, m);
|
|
708
|
-
}
|
|
709
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
710
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
711
|
-
}
|
|
712
|
-
if ('mentions' in message && !!message.mentions) {
|
|
713
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
714
|
-
}
|
|
715
|
-
m = { interactiveMessage };
|
|
716
|
-
}
|
|
717
473
|
if ('viewOnce' in message && !!message.viewOnce) {
|
|
718
474
|
m = { viewOnceMessage: { message: m } };
|
|
719
475
|
}
|
|
720
|
-
if ('mentions' in message && ((
|
|
476
|
+
if ('mentions' in message && ((_a = message.mentions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
721
477
|
const [messageType] = Object.keys(m);
|
|
722
478
|
m[messageType].contextInfo = m[messageType] || {};
|
|
723
479
|
m[messageType].contextInfo.mentionedJid = message.mentions;
|
|
@@ -750,29 +506,26 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
750
506
|
const key = (0, exports.getContentType)(innerMessage);
|
|
751
507
|
const timestamp = (0, generics_1.unixTimestampSeconds)(options.timestamp);
|
|
752
508
|
const { quoted, userJid } = options;
|
|
753
|
-
|
|
754
|
-
if (quoted && !(0, WABinary_1.isJidNewsletter)(jid)) {
|
|
509
|
+
if (quoted && !(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
755
510
|
const participant = quoted.key.fromMe ? userJid : (quoted.participant || quoted.key.participant || quoted.key.remoteJid);
|
|
756
511
|
let quotedMsg = (0, exports.normalizeMessageContent)(quoted.message);
|
|
757
512
|
const msgType = (0, exports.getContentType)(quotedMsg);
|
|
758
513
|
// strip any redundant properties
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
innerMessage[key].contextInfo = contextInfo;
|
|
775
|
-
}
|
|
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;
|
|
776
529
|
}
|
|
777
530
|
if (
|
|
778
531
|
// if we want to send a disappearing message
|
|
@@ -782,7 +535,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
782
535
|
// already not converted to disappearing message
|
|
783
536
|
key !== 'ephemeralMessage' &&
|
|
784
537
|
// newsletter not accept disappearing messages
|
|
785
|
-
!(0, WABinary_1.
|
|
538
|
+
!(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
786
539
|
innerMessage[key].contextInfo = {
|
|
787
540
|
...(innerMessage[key].contextInfo || {}),
|
|
788
541
|
expiration: options.ephemeralExpiration || Defaults_1.WA_DEFAULT_EPHEMERAL,
|
|
@@ -794,7 +547,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
794
547
|
key: {
|
|
795
548
|
remoteJid: jid,
|
|
796
549
|
fromMe: true,
|
|
797
|
-
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)(),
|
|
798
551
|
},
|
|
799
552
|
message: message,
|
|
800
553
|
messageTimestamp: timestamp,
|
|
@@ -809,7 +562,7 @@ const generateWAMessage = async (jid, content, options) => {
|
|
|
809
562
|
var _a;
|
|
810
563
|
// ensure msg ID is with every log
|
|
811
564
|
options.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.child({ msgId: options.messageId });
|
|
812
|
-
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);
|
|
813
566
|
};
|
|
814
567
|
exports.generateWAMessage = generateWAMessage;
|
|
815
568
|
/** Get the key to access the true type of content */
|
|
@@ -846,24 +599,7 @@ const normalizeMessageContent = (content) => {
|
|
|
846
599
|
|| (message === null || message === void 0 ? void 0 : message.documentWithCaptionMessage)
|
|
847
600
|
|| (message === null || message === void 0 ? void 0 : message.viewOnceMessageV2)
|
|
848
601
|
|| (message === null || message === void 0 ? void 0 : message.viewOnceMessageV2Extension)
|
|
849
|
-
|| (message === null || message === void 0 ? void 0 : message.editedMessage)
|
|
850
|
-
|| (message === null || message === void 0 ? void 0 : message.groupMentionedMessage)
|
|
851
|
-
|| (message === null || message === void 0 ? void 0 : message.botInvokeMessage)
|
|
852
|
-
|| (message === null || message === void 0 ? void 0 : message.lottieStickerMessage)
|
|
853
|
-
|| (message === null || message === void 0 ? void 0 : message.eventCoverImage)
|
|
854
|
-
|| (message === null || message === void 0 ? void 0 : message.statusMentionMessage)
|
|
855
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationOptionImageMessage)
|
|
856
|
-
|| (message === null || message === void 0 ? void 0 : message.associatedChildMessage)
|
|
857
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMentionMessage)
|
|
858
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationMessageV4)
|
|
859
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationMessageV5)
|
|
860
|
-
|| (message === null || message === void 0 ? void 0 : message.statusAddYours)
|
|
861
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMessage)
|
|
862
|
-
|| (message === null || message === void 0 ? void 0 : message.limitSharingMessage)
|
|
863
|
-
|| (message === null || message === void 0 ? void 0 : message.botTaskMessage)
|
|
864
|
-
|| (message === null || message === void 0 ? void 0 : message.questionMessage)
|
|
865
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMessageV2)
|
|
866
|
-
|| (message === null || message === void 0 ? void 0 : message.botForwardedMessage));
|
|
602
|
+
|| (message === null || message === void 0 ? void 0 : message.editedMessage));
|
|
867
603
|
}
|
|
868
604
|
};
|
|
869
605
|
exports.normalizeMessageContent = normalizeMessageContent;
|
|
@@ -913,11 +649,7 @@ exports.extractMessageContent = extractMessageContent;
|
|
|
913
649
|
/**
|
|
914
650
|
* Returns the device predicted by message ID
|
|
915
651
|
*/
|
|
916
|
-
const getDevice = (id) => /^3A.{18}$/.test(id) ? 'ios' :
|
|
917
|
-
/^3E.{20}$/.test(id) ? 'web' :
|
|
918
|
-
/^(.{21}|.{32})$/.test(id) ? 'android' :
|
|
919
|
-
/^(3F|.{18}$)/.test(id) ? 'desktop' :
|
|
920
|
-
'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';
|
|
921
653
|
exports.getDevice = getDevice;
|
|
922
654
|
/** Upserts a receipt in the message */
|
|
923
655
|
const updateMessageWithReceipt = (msg, receipt) => {
|
|
@@ -936,8 +668,9 @@ const updateMessageWithReaction = (msg, reaction) => {
|
|
|
936
668
|
const authorID = (0, generics_1.getKeyAuthor)(reaction.key);
|
|
937
669
|
const reactions = (msg.reactions || [])
|
|
938
670
|
.filter(r => (0, generics_1.getKeyAuthor)(r.key) !== authorID);
|
|
939
|
-
|
|
940
|
-
|
|
671
|
+
if (reaction.text) {
|
|
672
|
+
reactions.push(reaction);
|
|
673
|
+
}
|
|
941
674
|
msg.reactions = reactions;
|
|
942
675
|
};
|
|
943
676
|
exports.updateMessageWithReaction = updateMessageWithReaction;
|
|
@@ -990,6 +723,7 @@ function getAggregateVotesInPollMessage({ message, pollUpdates }, meId) {
|
|
|
990
723
|
}
|
|
991
724
|
return Object.values(voteHashMap);
|
|
992
725
|
}
|
|
726
|
+
exports.getAggregateVotesInPollMessage = getAggregateVotesInPollMessage;
|
|
993
727
|
/** Given a list of message keys, aggregates them by chat & sender. Useful for sending read receipts in bulk */
|
|
994
728
|
const aggregateMessageKeysNotFromMe = (keys) => {
|
|
995
729
|
const keyMap = {};
|
|
@@ -1080,22 +814,3 @@ const assertMediaContent = (content) => {
|
|
|
1080
814
|
return mediaContent;
|
|
1081
815
|
};
|
|
1082
816
|
exports.assertMediaContent = assertMediaContent;
|
|
1083
|
-
|
|
1084
|
-
const toJid = (id) => {
|
|
1085
|
-
if (!id)
|
|
1086
|
-
return '';
|
|
1087
|
-
if (id.endsWith('@lid'))
|
|
1088
|
-
return id.replace('@lid', '@s.whatsapp.net');
|
|
1089
|
-
if (id.includes('@'))
|
|
1090
|
-
return id;
|
|
1091
|
-
return `${id}@s.whatsapp.net`;
|
|
1092
|
-
};
|
|
1093
|
-
exports.toJid = toJid;
|
|
1094
|
-
const getSenderLid = (message) => {
|
|
1095
|
-
const sender = message.key.participant || message.key.remoteJid;
|
|
1096
|
-
const user = (0, WABinary_1.jidDecode)(sender)?.user || '';
|
|
1097
|
-
const lid = (0, WABinary_1.jidEncode)(user, 'lid');
|
|
1098
|
-
console.log('sender lid:', lid);
|
|
1099
|
-
return { jid: sender, lid };
|
|
1100
|
-
};
|
|
1101
|
-
exports.getSenderLid = getSenderLid;
|