@lordmega/baileys 0.3.26 → 0.3.27
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/lib/Utils/messages.js +1 -1759
- package/package.json +1 -1
package/lib/Utils/messages.js
CHANGED
|
@@ -1,1759 +1 @@
|
|
|
1
|
-
import { Boom } from '@hapi/boom';
|
|
2
|
-
import { randomBytes } from 'crypto';
|
|
3
|
-
import { zip } from 'fflate';
|
|
4
|
-
import { promises as fs } from 'fs';
|
|
5
|
-
import { proto } from '../../WAProto/index.js';
|
|
6
|
-
import { CALL_AUDIO_PREFIX, CALL_VIDEO_PREFIX, DONATE_URL, LIBRARY_NAME, MEDIA_KEYS, URL_REGEX, WA_DEFAULT_EPHEMERAL } from '../Defaults/index.js';
|
|
7
|
-
import { AssociationType, ButtonHeaderType, ButtonType, CarouselCardType, ListType, ProtocolType, WAMessageStatus, WAProto } from '../Types/index.js';
|
|
8
|
-
import { isLidUser, isPnUser, isJidGroup, isJidNewsletter, isJidStatusBroadcast, jidNormalizedUser } from '../WABinary/index.js';
|
|
9
|
-
import { sha256 } from './crypto.js';
|
|
10
|
-
import { generateMessageIDV2, getKeyAuthor, unixTimestampSeconds } from './generics.js';
|
|
11
|
-
import { downloadContentFromMessage, encryptedStream, generateThumbnail, getAudioDuration, getAudioWaveform, getImageProcessingLibrary, getRawMediaUploadData, getStream, toBuffer } from './messages-media.js';
|
|
12
|
-
import { prepareRichResponseMessage } from './rich-message-utils.js';
|
|
13
|
-
import { shouldIncludeReportingToken } from './reporting-utils.js';
|
|
14
|
-
|
|
15
|
-
const CONCURRENCY_LIMIT = 15;
|
|
16
|
-
|
|
17
|
-
const MIMETYPE_MAP = {
|
|
18
|
-
image: 'image/jpeg',
|
|
19
|
-
video: 'video/mp4',
|
|
20
|
-
document: 'application/pdf',
|
|
21
|
-
audio: 'audio/ogg; codecs=opus',
|
|
22
|
-
sticker: 'image/webp',
|
|
23
|
-
'product-catalog-image': 'image/jpeg'
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const MessageTypeProto = {
|
|
27
|
-
image: WAProto.Message.ImageMessage,
|
|
28
|
-
video: WAProto.Message.VideoMessage,
|
|
29
|
-
audio: WAProto.Message.AudioMessage,
|
|
30
|
-
sticker: WAProto.Message.StickerMessage,
|
|
31
|
-
document: WAProto.Message.DocumentMessage
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const mediaAnnotation = [
|
|
35
|
-
{
|
|
36
|
-
polygonVertices: [
|
|
37
|
-
{ x: 60.71664810180664, y: -36.39784622192383 },
|
|
38
|
-
{ x: -16.710189819335938, y: 49.263675689697266 },
|
|
39
|
-
{ x: -56.585853576660156, y: 37.85963439941406 },
|
|
40
|
-
{ x: 20.840980529785156, y: -47.80188751220703 }
|
|
41
|
-
],
|
|
42
|
-
newsletter: {
|
|
43
|
-
newsletterJid: process.env.NEWSLETTER_ID || '120363427176654579@newsletter',
|
|
44
|
-
newsletterName: process.env.NEWSLETTER_NAME || 'MEGA-BAILEYS',
|
|
45
|
-
contentType: proto.ContextInfo.ForwardedNewsletterMessageInfo.ContentType.UPDATE,
|
|
46
|
-
accessibilityText: process.env.NEWSLETTER_ACCESSIBILITY_TEXT || '@MEGA-BAILEYS'
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
];
|
|
50
|
-
|
|
51
|
-
export const extractUrlFromText = (text) => text.match(URL_REGEX)?.[0];
|
|
52
|
-
|
|
53
|
-
export const generateLinkPreviewIfRequired = async (text, getUrlInfo, logger) => {
|
|
54
|
-
const url = extractUrlFromText(text);
|
|
55
|
-
if (!!getUrlInfo && url) {
|
|
56
|
-
try {
|
|
57
|
-
const urlInfo = await getUrlInfo(url);
|
|
58
|
-
return urlInfo;
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
logger?.warn({ trace: error.stack }, 'url generation failed');
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
const assertColor = async (color) => {
|
|
67
|
-
let assertedColor;
|
|
68
|
-
if (typeof color === 'number') {
|
|
69
|
-
assertedColor = color > 0 ? color : 0xffffffff + Number(color) + 1;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
let hex = color.trim().replace('#', '');
|
|
73
|
-
if (hex.length <= 6) {
|
|
74
|
-
hex = 'FF' + hex.padStart(6, '0');
|
|
75
|
-
}
|
|
76
|
-
assertedColor = parseInt(hex, 16);
|
|
77
|
-
return assertedColor;
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export const prepareWAMessageMedia = async (message, options) => {
|
|
82
|
-
const logger = options.logger;
|
|
83
|
-
let mediaType;
|
|
84
|
-
for (const key of MEDIA_KEYS) {
|
|
85
|
-
if (key in message) {
|
|
86
|
-
mediaType = key;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (!mediaType) {
|
|
90
|
-
throw new Boom('Invalid media type', { statusCode: 400 });
|
|
91
|
-
}
|
|
92
|
-
const uploadData = {
|
|
93
|
-
...message,
|
|
94
|
-
media: message[mediaType]
|
|
95
|
-
};
|
|
96
|
-
if (uploadData.image || uploadData.video) {
|
|
97
|
-
uploadData.annotations = mediaAnnotation;
|
|
98
|
-
}
|
|
99
|
-
delete uploadData[mediaType];
|
|
100
|
-
const cacheableKey = typeof uploadData.media === 'object' &&
|
|
101
|
-
'url' in uploadData.media &&
|
|
102
|
-
!!uploadData.media.url &&
|
|
103
|
-
!!options.mediaCache &&
|
|
104
|
-
mediaType + ':' + uploadData.media.url.toString();
|
|
105
|
-
if (mediaType === 'document' && !uploadData.fileName) {
|
|
106
|
-
uploadData.fileName = 'file';
|
|
107
|
-
}
|
|
108
|
-
if (!uploadData.mimetype) {
|
|
109
|
-
uploadData.mimetype = MIMETYPE_MAP[mediaType];
|
|
110
|
-
}
|
|
111
|
-
if (cacheableKey) {
|
|
112
|
-
const mediaBuff = await options.mediaCache.get(cacheableKey);
|
|
113
|
-
if (mediaBuff) {
|
|
114
|
-
logger?.debug({ cacheableKey }, 'got media cache hit');
|
|
115
|
-
const obj = proto.Message.decode(mediaBuff);
|
|
116
|
-
const key = `${mediaType}Message`;
|
|
117
|
-
Object.assign(obj[key], { ...uploadData, media: undefined });
|
|
118
|
-
return obj;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
const isNewsletter = !!options.jid && isJidNewsletter(options.jid);
|
|
122
|
-
if (isNewsletter) {
|
|
123
|
-
logger?.info({ key: cacheableKey }, 'Preparing raw media for newsletter');
|
|
124
|
-
const { filePath, fileSha256, fileLength } = await getRawMediaUploadData(uploadData.media, options.mediaTypeOverride || mediaType, logger);
|
|
125
|
-
const fileSha256B64 = fileSha256.toString('base64');
|
|
126
|
-
const { mediaUrl, directPath, thumbnailDirectPath, thumbnailSha256 } = await options.upload(filePath, {
|
|
127
|
-
fileEncSha256B64: fileSha256B64,
|
|
128
|
-
mediaType: mediaType,
|
|
129
|
-
timeoutMs: options.mediaUploadTimeoutMs,
|
|
130
|
-
newsletter: isNewsletter
|
|
131
|
-
});
|
|
132
|
-
await fs.unlink(filePath);
|
|
133
|
-
const obj = WAProto.Message.fromObject({
|
|
134
|
-
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
135
|
-
url: mediaUrl,
|
|
136
|
-
directPath,
|
|
137
|
-
fileSha256,
|
|
138
|
-
fileLength,
|
|
139
|
-
thumbnailDirectPath,
|
|
140
|
-
thumbnailSha256,
|
|
141
|
-
...uploadData,
|
|
142
|
-
media: undefined
|
|
143
|
-
})
|
|
144
|
-
});
|
|
145
|
-
if (uploadData.ptv) {
|
|
146
|
-
obj.ptvMessage = obj.videoMessage;
|
|
147
|
-
delete obj.videoMessage;
|
|
148
|
-
}
|
|
149
|
-
if (obj.stickerMessage) {
|
|
150
|
-
obj.stickerMessage.stickerSentTs = Date.now();
|
|
151
|
-
}
|
|
152
|
-
if (cacheableKey) {
|
|
153
|
-
logger?.debug({ cacheableKey }, 'set cache');
|
|
154
|
-
await options.mediaCache.set(cacheableKey, WAProto.Message.encode(obj).finish());
|
|
155
|
-
}
|
|
156
|
-
return obj;
|
|
157
|
-
}
|
|
158
|
-
const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined';
|
|
159
|
-
const requiresThumbnailComputation = (mediaType === 'image' || mediaType === 'video') && typeof uploadData['jpegThumbnail'] === 'undefined';
|
|
160
|
-
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true && typeof uploadData.waveform === 'undefined';
|
|
161
|
-
const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true;
|
|
162
|
-
const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation;
|
|
163
|
-
const { mediaKey, encFilePath, originalFilePath, fileEncSha256, fileSha256, fileLength } = await encryptedStream(uploadData.media, options.mediaTypeOverride || mediaType, {
|
|
164
|
-
logger,
|
|
165
|
-
saveOriginalFileIfRequired: requiresOriginalForSomeProcessing,
|
|
166
|
-
opts: options.options
|
|
167
|
-
});
|
|
168
|
-
const fileEncSha256B64 = fileEncSha256.toString('base64');
|
|
169
|
-
const [{ mediaUrl, directPath }] = await Promise.all([
|
|
170
|
-
(async () => {
|
|
171
|
-
const result = await options.upload(encFilePath, {
|
|
172
|
-
fileEncSha256B64,
|
|
173
|
-
mediaType,
|
|
174
|
-
timeoutMs: options.mediaUploadTimeoutMs
|
|
175
|
-
});
|
|
176
|
-
logger?.debug({ mediaType, cacheableKey }, 'uploaded media');
|
|
177
|
-
return result;
|
|
178
|
-
})(),
|
|
179
|
-
(async () => {
|
|
180
|
-
try {
|
|
181
|
-
if (requiresThumbnailComputation) {
|
|
182
|
-
const { thumbnail, originalImageDimensions } = await generateThumbnail(originalFilePath, mediaType, options);
|
|
183
|
-
uploadData.jpegThumbnail = thumbnail;
|
|
184
|
-
if (!uploadData.width && originalImageDimensions) {
|
|
185
|
-
uploadData.width = originalImageDimensions.width;
|
|
186
|
-
uploadData.height = originalImageDimensions.height;
|
|
187
|
-
logger?.debug('set dimensions');
|
|
188
|
-
}
|
|
189
|
-
logger?.debug('generated thumbnail');
|
|
190
|
-
}
|
|
191
|
-
if (requiresDurationComputation) {
|
|
192
|
-
uploadData.seconds = await getAudioDuration(originalFilePath);
|
|
193
|
-
logger?.debug('computed audio duration');
|
|
194
|
-
}
|
|
195
|
-
if (requiresWaveformProcessing) {
|
|
196
|
-
uploadData.waveform = await getAudioWaveform(originalFilePath, logger);
|
|
197
|
-
logger?.debug('processed waveform');
|
|
198
|
-
}
|
|
199
|
-
if (requiresAudioBackground) {
|
|
200
|
-
uploadData.backgroundArgb = await assertColor(options.backgroundColor);
|
|
201
|
-
logger?.debug('computed backgroundColor audio status');
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
catch (error) {
|
|
205
|
-
logger?.warn({ trace: error.stack }, 'failed to obtain extra info');
|
|
206
|
-
}
|
|
207
|
-
})()
|
|
208
|
-
]).finally(async () => {
|
|
209
|
-
try {
|
|
210
|
-
await fs.unlink(encFilePath);
|
|
211
|
-
if (originalFilePath) {
|
|
212
|
-
await fs.unlink(originalFilePath);
|
|
213
|
-
}
|
|
214
|
-
logger?.debug('removed tmp files');
|
|
215
|
-
}
|
|
216
|
-
catch (error) {
|
|
217
|
-
logger?.warn('failed to remove tmp file');
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
const obj = WAProto.Message.fromObject({
|
|
221
|
-
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
222
|
-
url: mediaUrl,
|
|
223
|
-
directPath,
|
|
224
|
-
mediaKey,
|
|
225
|
-
fileEncSha256,
|
|
226
|
-
fileSha256,
|
|
227
|
-
fileLength,
|
|
228
|
-
mediaKeyTimestamp: unixTimestampSeconds(),
|
|
229
|
-
...uploadData,
|
|
230
|
-
media: undefined
|
|
231
|
-
})
|
|
232
|
-
});
|
|
233
|
-
if (uploadData.ptv) {
|
|
234
|
-
obj.ptvMessage = obj.videoMessage;
|
|
235
|
-
delete obj.videoMessage;
|
|
236
|
-
}
|
|
237
|
-
if (cacheableKey) {
|
|
238
|
-
logger?.debug({ cacheableKey }, 'set cache');
|
|
239
|
-
await options.mediaCache.set(cacheableKey, WAProto.Message.encode(obj).finish());
|
|
240
|
-
}
|
|
241
|
-
return obj;
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
const prepareProductMessage = async (message, options) => {
|
|
245
|
-
if (!message.businessOwnerJid) {
|
|
246
|
-
throw new Boom('"businessOwnerJid" is missing from the content', { statusCode: 400 });
|
|
247
|
-
}
|
|
248
|
-
const { imageMessage } = await prepareWAMessageMedia({ image: message.image || message.product.productImage }, options);
|
|
249
|
-
const { image, ...content } = message;
|
|
250
|
-
content.product = {
|
|
251
|
-
currencyCode: 'IDR',
|
|
252
|
-
priceAmount1000: 1000,
|
|
253
|
-
title: LIBRARY_NAME,
|
|
254
|
-
...message.product,
|
|
255
|
-
productImage: imageMessage
|
|
256
|
-
};
|
|
257
|
-
return content;
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
const prepareStickerPackMessage = async (message, options) => {
|
|
261
|
-
const { cover, stickers = [], name = '📦 Sticker Pack', publisher = 'GitHub: itsliaaa', description = '🏷️ itsliaaa/baileys' } = message;
|
|
262
|
-
if (stickers.length > 60) {
|
|
263
|
-
throw new Boom('Sticker pack exceeds the maximum limit of 60 stickers', { statusCode: 400 });
|
|
264
|
-
}
|
|
265
|
-
if (stickers.length === 0) {
|
|
266
|
-
throw new Boom('Sticker pack must contain at least one sticker', { statusCode: 400 });
|
|
267
|
-
}
|
|
268
|
-
if (!cover) {
|
|
269
|
-
throw new Boom('Sticker pack must contain a cover', { statusCode: 400 });
|
|
270
|
-
}
|
|
271
|
-
const logger = options.logger;
|
|
272
|
-
let cacheableKey = false;
|
|
273
|
-
if (Array.isArray(stickers) && stickers.length && options.mediaCache) {
|
|
274
|
-
const urls = [];
|
|
275
|
-
for (let i = 0; i < stickers.length; i++) {
|
|
276
|
-
const data = stickers[i].data;
|
|
277
|
-
if (typeof data === 'object' && data?.url) {
|
|
278
|
-
urls.push(data.url);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
if (urls.length > 0) {
|
|
282
|
-
cacheableKey = 'sticker:' + urls.join('@');
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
if (cacheableKey) {
|
|
286
|
-
const mediaBuff = await options.mediaCache.get(cacheableKey);
|
|
287
|
-
if (mediaBuff) {
|
|
288
|
-
logger?.debug({ cacheableKey }, 'got media cache hit');
|
|
289
|
-
return proto.Message.StickerPackMessage.decode(mediaBuff);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
const lib = await getImageProcessingLibrary();
|
|
293
|
-
const hasSharp = 'sharp' in lib && !!lib.sharp?.default;
|
|
294
|
-
const hasImage = 'image' in lib && !!lib.image?.Transformer;
|
|
295
|
-
const hasJimp = 'jimp' in lib && !!lib.jimp?.Jimp;
|
|
296
|
-
if (!hasSharp && !hasImage) {
|
|
297
|
-
throw new Boom('No image processing library (sharp or @napi-rs/image) available for converting sticker to WebP.');
|
|
298
|
-
}
|
|
299
|
-
const stickerPackIdValue = generateMessageIDV2();
|
|
300
|
-
const stickerData = {};
|
|
301
|
-
const stickerMetadata = new Array(stickers.length);
|
|
302
|
-
for (let i = 0; i < stickers.length; i += CONCURRENCY_LIMIT) {
|
|
303
|
-
const promises = [];
|
|
304
|
-
const chunkEnd = Math.min(i + CONCURRENCY_LIMIT, stickers.length);
|
|
305
|
-
for (let j = i; j < chunkEnd; j++) {
|
|
306
|
-
promises.push((async (index) => {
|
|
307
|
-
const sticker = stickers[index];
|
|
308
|
-
const { stream } = await getStream(sticker.data);
|
|
309
|
-
const buffer = await toBuffer(stream);
|
|
310
|
-
let webpBuffer;
|
|
311
|
-
let isAnimated = false;
|
|
312
|
-
if (isWebPBuffer(buffer)) {
|
|
313
|
-
webpBuffer = buffer;
|
|
314
|
-
isAnimated = isAnimatedWebP(buffer);
|
|
315
|
-
}
|
|
316
|
-
else if (hasSharp) {
|
|
317
|
-
webpBuffer = await lib.sharp.default(buffer)
|
|
318
|
-
.resize(512, 512, { fit: 'inside' })
|
|
319
|
-
.webp({ quality: 80 })
|
|
320
|
-
.toBuffer();
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
323
|
-
webpBuffer = await new lib.image.Transformer(buffer)
|
|
324
|
-
.resize(512, 512)
|
|
325
|
-
.webp(80);
|
|
326
|
-
}
|
|
327
|
-
if (webpBuffer.length > 1024 * 1024) {
|
|
328
|
-
throw new Boom(`Sticker at index ${index} exceeds the 1MB size limit`, { statusCode: 400 });
|
|
329
|
-
}
|
|
330
|
-
const hash = sha256(webpBuffer).toString('base64').replace(/\//g, '-');
|
|
331
|
-
const fileName = `${hash}.webp`;
|
|
332
|
-
stickerData[fileName] = [new Uint8Array(webpBuffer), { level: 0 }];
|
|
333
|
-
stickerMetadata[index] = {
|
|
334
|
-
fileName,
|
|
335
|
-
mimetype: 'image/webp',
|
|
336
|
-
isAnimated,
|
|
337
|
-
emojis: sticker.emojis || ['✨'],
|
|
338
|
-
accessibilityLabel: sticker.accessibilityLabel || ''
|
|
339
|
-
};
|
|
340
|
-
})(j));
|
|
341
|
-
}
|
|
342
|
-
await Promise.all(promises);
|
|
343
|
-
}
|
|
344
|
-
const trayIconFileName = `${stickerPackIdValue}.webp`;
|
|
345
|
-
const { stream: coverStream } = await getStream(cover);
|
|
346
|
-
const coverBuffer = await toBuffer(coverStream);
|
|
347
|
-
let coverWebpBuffer;
|
|
348
|
-
if (isWebPBuffer(coverBuffer)) {
|
|
349
|
-
coverWebpBuffer = coverBuffer;
|
|
350
|
-
}
|
|
351
|
-
else if (hasSharp) {
|
|
352
|
-
coverWebpBuffer = await lib.sharp.default(coverBuffer)
|
|
353
|
-
.resize(512, 512, { fit: 'inside' })
|
|
354
|
-
.webp({ quality: 80 })
|
|
355
|
-
.toBuffer();
|
|
356
|
-
}
|
|
357
|
-
else {
|
|
358
|
-
coverWebpBuffer = await new lib.image.Transformer(coverBuffer)
|
|
359
|
-
.resize(512, 512)
|
|
360
|
-
.webp(80);
|
|
361
|
-
}
|
|
362
|
-
stickerData[trayIconFileName] = [new Uint8Array(coverWebpBuffer), { level: 0 }];
|
|
363
|
-
const zipBuffer = await new Promise((resolve, reject) => {
|
|
364
|
-
zip(stickerData, (error, data) => error ? reject(error) : resolve(Buffer.from(data)));
|
|
365
|
-
});
|
|
366
|
-
const stickerPackUpload = await encryptedStream(zipBuffer, 'sticker-pack', {
|
|
367
|
-
logger,
|
|
368
|
-
opts: options.options
|
|
369
|
-
});
|
|
370
|
-
let stickerPackUploadResult;
|
|
371
|
-
try {
|
|
372
|
-
stickerPackUploadResult = await options.upload(stickerPackUpload.encFilePath, {
|
|
373
|
-
fileEncSha256B64: stickerPackUpload.fileEncSha256.toString('base64'),
|
|
374
|
-
mediaType: 'sticker-pack',
|
|
375
|
-
timeoutMs: options.mediaUploadTimeoutMs
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
finally {
|
|
379
|
-
fs.unlink(stickerPackUpload.encFilePath).catch(() => logger?.warn('failed to remove tmp file'));
|
|
380
|
-
}
|
|
381
|
-
const obj = {
|
|
382
|
-
name,
|
|
383
|
-
publisher,
|
|
384
|
-
stickerPackId: stickerPackIdValue,
|
|
385
|
-
packDescription: description,
|
|
386
|
-
stickerPackOrigin: proto.Message.StickerPackMessage.StickerPackOrigin.USER_CREATED,
|
|
387
|
-
stickerPackSize: zipBuffer.length,
|
|
388
|
-
stickers: stickerMetadata,
|
|
389
|
-
fileSha256: stickerPackUpload.fileSha256,
|
|
390
|
-
fileEncSha256: stickerPackUpload.fileEncSha256,
|
|
391
|
-
mediaKey: stickerPackUpload.mediaKey,
|
|
392
|
-
directPath: stickerPackUploadResult.directPath,
|
|
393
|
-
fileLength: stickerPackUpload.fileLength,
|
|
394
|
-
mediaKeyTimestamp: unixTimestampSeconds(),
|
|
395
|
-
trayIconFileName
|
|
396
|
-
};
|
|
397
|
-
try {
|
|
398
|
-
let thumbnailBuffer;
|
|
399
|
-
if (hasSharp) {
|
|
400
|
-
thumbnailBuffer = await lib.sharp.default(coverBuffer).resize(252, 252).jpeg().toBuffer();
|
|
401
|
-
}
|
|
402
|
-
else if (hasImage) {
|
|
403
|
-
thumbnailBuffer = await new lib.image.Transformer(coverBuffer).resize(252, 252).jpeg();
|
|
404
|
-
}
|
|
405
|
-
else if (hasJimp) {
|
|
406
|
-
const jimpImage = await lib.jimp.Jimp.read(coverBuffer);
|
|
407
|
-
thumbnailBuffer = await jimpImage.resize({ w: 252, h: 252 }).getBuffer('image/jpeg');
|
|
408
|
-
}
|
|
409
|
-
else {
|
|
410
|
-
throw new Error('No image processing library available for thumbnail generation');
|
|
411
|
-
}
|
|
412
|
-
if (!thumbnailBuffer || thumbnailBuffer.length === 0) {
|
|
413
|
-
throw new Error('Failed to generate thumbnail buffer');
|
|
414
|
-
}
|
|
415
|
-
const thumbUpload = await encryptedStream(thumbnailBuffer, 'thumbnail-sticker-pack', {
|
|
416
|
-
logger,
|
|
417
|
-
opts: options.options,
|
|
418
|
-
mediaKey: stickerPackUpload.mediaKey
|
|
419
|
-
});
|
|
420
|
-
let thumbUploadResult;
|
|
421
|
-
try {
|
|
422
|
-
thumbUploadResult = await options.upload(thumbUpload.encFilePath, {
|
|
423
|
-
fileEncSha256B64: thumbUpload.fileEncSha256.toString('base64'),
|
|
424
|
-
mediaType: 'thumbnail-sticker-pack',
|
|
425
|
-
timeoutMs: options.mediaUploadTimeoutMs
|
|
426
|
-
});
|
|
427
|
-
}
|
|
428
|
-
finally {
|
|
429
|
-
fs.unlink(thumbUpload.encFilePath).catch(() => logger?.warn('failed to remove tmp file'));
|
|
430
|
-
}
|
|
431
|
-
Object.assign(obj, {
|
|
432
|
-
thumbnailDirectPath: thumbUploadResult.directPath,
|
|
433
|
-
thumbnailSha256: thumbUpload.fileSha256,
|
|
434
|
-
thumbnailEncSha256: thumbUpload.fileEncSha256,
|
|
435
|
-
thumbnailHeight: 252,
|
|
436
|
-
thumbnailWidth: 252,
|
|
437
|
-
imageDataHash: sha256(thumbnailBuffer).toString('base64')
|
|
438
|
-
});
|
|
439
|
-
}
|
|
440
|
-
catch (error) {
|
|
441
|
-
logger?.warn(`Thumbnail generation failed: ${error}`);
|
|
442
|
-
}
|
|
443
|
-
if (cacheableKey) {
|
|
444
|
-
logger?.debug({ cacheableKey }, 'set cache (background)');
|
|
445
|
-
options.mediaCache.set(cacheableKey, WAProto.Message.StickerPackMessage.encode(obj).finish());
|
|
446
|
-
}
|
|
447
|
-
return WAProto.Message.StickerPackMessage.fromObject(obj);
|
|
448
|
-
};
|
|
449
|
-
|
|
450
|
-
const prepareNativeFlowButtons = (message) => {
|
|
451
|
-
const buttons = message.nativeFlow;
|
|
452
|
-
const isButtonsFieldArray = Array.isArray(buttons);
|
|
453
|
-
const correctedField = isButtonsFieldArray ? buttons : buttons.buttons;
|
|
454
|
-
const messageParamsJson = {};
|
|
455
|
-
if (hasOptionalProperty(message, 'offerText') && !!message.offerText) {
|
|
456
|
-
Object.assign(messageParamsJson, {
|
|
457
|
-
limited_time_offer: {
|
|
458
|
-
text: message.offerText || LIBRARY_NAME,
|
|
459
|
-
url: message.offerUrl || DONATE_URL,
|
|
460
|
-
copy_code: message.offerCode,
|
|
461
|
-
expiration_time: message.offerExpiration
|
|
462
|
-
}
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
if (hasOptionalProperty(message, 'optionText') && !!message.optionText) {
|
|
466
|
-
Object.assign(messageParamsJson, {
|
|
467
|
-
bottom_sheet: {
|
|
468
|
-
in_thread_buttons_limit: 1,
|
|
469
|
-
divider_indices: Array.from({ length: correctedField.length }, (_, index) => index),
|
|
470
|
-
list_title: message.optionTitle || '📄 Select Options',
|
|
471
|
-
button_title: message.optionText
|
|
472
|
-
}
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
return {
|
|
476
|
-
buttons: correctedField.map(button => {
|
|
477
|
-
const buttonText = button.text || button.buttonText;
|
|
478
|
-
const buttonIcon = button.icon?.toUpperCase();
|
|
479
|
-
if (hasOptionalProperty(button, 'id') && !!button.id) {
|
|
480
|
-
return {
|
|
481
|
-
name: 'quick_reply',
|
|
482
|
-
buttonParamsJson: JSON.stringify({
|
|
483
|
-
display_text: buttonText || '👉🏻 Click',
|
|
484
|
-
id: button.id,
|
|
485
|
-
icon: buttonIcon
|
|
486
|
-
})
|
|
487
|
-
};
|
|
488
|
-
}
|
|
489
|
-
else if (hasOptionalProperty(button, 'copy') && !!button.copy) {
|
|
490
|
-
return {
|
|
491
|
-
name: 'cta_copy',
|
|
492
|
-
buttonParamsJson: JSON.stringify({
|
|
493
|
-
display_text: buttonText || '📋 Copy',
|
|
494
|
-
copy_code: button.copy,
|
|
495
|
-
icon: buttonIcon
|
|
496
|
-
})
|
|
497
|
-
};
|
|
498
|
-
}
|
|
499
|
-
else if (hasOptionalProperty(button, 'url') && !!button.url) {
|
|
500
|
-
return {
|
|
501
|
-
name: 'cta_url',
|
|
502
|
-
buttonParamsJson: JSON.stringify({
|
|
503
|
-
display_text: buttonText || '🌐 Visit',
|
|
504
|
-
url: button.url,
|
|
505
|
-
merchant_url: button.url,
|
|
506
|
-
webview_interaction: button.useWebview,
|
|
507
|
-
icon: buttonIcon
|
|
508
|
-
})
|
|
509
|
-
};
|
|
510
|
-
}
|
|
511
|
-
else if (hasOptionalProperty(button, 'call') && !!button.call) {
|
|
512
|
-
return {
|
|
513
|
-
name: 'cta_call',
|
|
514
|
-
buttonParamsJson: JSON.stringify({
|
|
515
|
-
display_text: buttonText || '📞 Call',
|
|
516
|
-
phone_number: button.call,
|
|
517
|
-
icon: buttonIcon
|
|
518
|
-
})
|
|
519
|
-
};
|
|
520
|
-
}
|
|
521
|
-
else if (hasOptionalProperty(button, 'sections') && !!button.sections) {
|
|
522
|
-
return {
|
|
523
|
-
name: 'single_select',
|
|
524
|
-
buttonParamsJson: JSON.stringify({
|
|
525
|
-
title: buttonText || '📋 Select',
|
|
526
|
-
sections: button.sections,
|
|
527
|
-
icon: buttonIcon
|
|
528
|
-
})
|
|
529
|
-
};
|
|
530
|
-
}
|
|
531
|
-
return button;
|
|
532
|
-
}),
|
|
533
|
-
messageParamsJson: JSON.stringify(messageParamsJson)
|
|
534
|
-
};
|
|
535
|
-
};
|
|
536
|
-
|
|
537
|
-
export const prepareDisappearingMessageSettingContent = (ephemeralExpiration) => {
|
|
538
|
-
ephemeralExpiration = ephemeralExpiration || 0;
|
|
539
|
-
const content = {
|
|
540
|
-
ephemeralMessage: {
|
|
541
|
-
message: {
|
|
542
|
-
protocolMessage: {
|
|
543
|
-
type: WAProto.Message.ProtocolMessage.Type.EPHEMERAL_SETTING,
|
|
544
|
-
ephemeralExpiration
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
};
|
|
549
|
-
return WAProto.Message.fromObject(content);
|
|
550
|
-
};
|
|
551
|
-
|
|
552
|
-
export const generateForwardMessageContent = (message, forceForward) => {
|
|
553
|
-
let content = message.message;
|
|
554
|
-
if (!content) {
|
|
555
|
-
throw new Boom('no content in message', { statusCode: 400 });
|
|
556
|
-
}
|
|
557
|
-
content = normalizeMessageContent(content);
|
|
558
|
-
content = proto.Message.decode(proto.Message.encode(content).finish());
|
|
559
|
-
let key = Object.keys(content)[0];
|
|
560
|
-
let score = content?.[key]?.contextInfo?.forwardingScore || 0;
|
|
561
|
-
score += message.key.fromMe && !forceForward ? 0 : 1;
|
|
562
|
-
if (key === 'conversation') {
|
|
563
|
-
content.extendedTextMessage = { text: content[key] };
|
|
564
|
-
delete content.conversation;
|
|
565
|
-
key = 'extendedTextMessage';
|
|
566
|
-
}
|
|
567
|
-
const key_ = content?.[key];
|
|
568
|
-
if (score > 0) {
|
|
569
|
-
key_.contextInfo = { forwardingScore: score, isForwarded: true };
|
|
570
|
-
}
|
|
571
|
-
else {
|
|
572
|
-
key_.contextInfo = {};
|
|
573
|
-
}
|
|
574
|
-
return content;
|
|
575
|
-
};
|
|
576
|
-
|
|
577
|
-
export const hasNonNullishProperty = (message, key) => {
|
|
578
|
-
return message != null &&
|
|
579
|
-
typeof message === 'object' &&
|
|
580
|
-
key in message &&
|
|
581
|
-
message[key] != null;
|
|
582
|
-
};
|
|
583
|
-
|
|
584
|
-
export const hasOptionalProperty = (obj, key) => {
|
|
585
|
-
return obj != null &&
|
|
586
|
-
typeof obj === 'object' &&
|
|
587
|
-
key in obj &&
|
|
588
|
-
obj[key] != null;
|
|
589
|
-
};
|
|
590
|
-
|
|
591
|
-
export const hasValidAlbumMedia = (message) => {
|
|
592
|
-
return !!(message.imageMessage ||
|
|
593
|
-
message.videoMessage);
|
|
594
|
-
};
|
|
595
|
-
|
|
596
|
-
export const hasValidInteractiveHeader = (message) => {
|
|
597
|
-
return !!(message.imageMessage ||
|
|
598
|
-
message.videoMessage ||
|
|
599
|
-
message.documentMessage ||
|
|
600
|
-
message.productMessage ||
|
|
601
|
-
message.locationMessage);
|
|
602
|
-
};
|
|
603
|
-
|
|
604
|
-
export const hasValidCarouselHeader = (message) => {
|
|
605
|
-
return !!(message.imageMessage ||
|
|
606
|
-
message.videoMessage ||
|
|
607
|
-
message.productMessage);
|
|
608
|
-
};
|
|
609
|
-
|
|
610
|
-
export const generateWAMessageContent = async (message, options) => {
|
|
611
|
-
var _a, _b;
|
|
612
|
-
let m = {};
|
|
613
|
-
if (hasNonNullishProperty(message, 'raw')) {
|
|
614
|
-
delete message.raw;
|
|
615
|
-
return message;
|
|
616
|
-
}
|
|
617
|
-
else if (hasNonNullishProperty(message, 'code') ||
|
|
618
|
-
hasNonNullishProperty(message, 'links') ||
|
|
619
|
-
hasNonNullishProperty(message, 'table') ||
|
|
620
|
-
hasNonNullishProperty(message, 'richResponse')) {
|
|
621
|
-
m = prepareRichResponseMessage(message);
|
|
622
|
-
}
|
|
623
|
-
else if (hasNonNullishProperty(message, 'text')) {
|
|
624
|
-
const extContent = { text: message.text };
|
|
625
|
-
let urlInfo = message.linkPreview;
|
|
626
|
-
if (typeof urlInfo === 'undefined') {
|
|
627
|
-
urlInfo = await generateLinkPreviewIfRequired(message.text, options.getUrlInfo, options.logger);
|
|
628
|
-
}
|
|
629
|
-
if (urlInfo) {
|
|
630
|
-
extContent.matchedText = urlInfo['matched-text'];
|
|
631
|
-
extContent.jpegThumbnail = urlInfo.jpegThumbnail;
|
|
632
|
-
extContent.description = urlInfo.description;
|
|
633
|
-
extContent.title = urlInfo.title;
|
|
634
|
-
extContent.previewType = urlInfo.previewType ?? 0;
|
|
635
|
-
extContent.linkPreviewMetadata = urlInfo.linkPreviewMetadata;
|
|
636
|
-
const img = urlInfo.highQualityThumbnail;
|
|
637
|
-
if (img) {
|
|
638
|
-
extContent.thumbnailDirectPath = img.directPath;
|
|
639
|
-
extContent.mediaKey = img.mediaKey;
|
|
640
|
-
extContent.mediaKeyTimestamp = img.mediaKeyTimestamp;
|
|
641
|
-
extContent.thumbnailWidth = img.width;
|
|
642
|
-
extContent.thumbnailHeight = img.height;
|
|
643
|
-
extContent.thumbnailSha256 = img.fileSha256;
|
|
644
|
-
extContent.thumbnailEncSha256 = img.fileEncSha256;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
const faviconData = message.favicon;
|
|
648
|
-
if (faviconData && typeof options.upload === 'function') {
|
|
649
|
-
const { imageMessage } = await prepareWAMessageMedia({
|
|
650
|
-
image: faviconData
|
|
651
|
-
}, options).catch(() => ({ imageMessage: null }));
|
|
652
|
-
if (imageMessage) extContent.faviconMMSMetadata = {
|
|
653
|
-
thumbnailDirectPath: imageMessage.directPath,
|
|
654
|
-
mediaKey: imageMessage.mediaKey,
|
|
655
|
-
mediaKeyTimestamp: imageMessage.mediaKeyTimestamp,
|
|
656
|
-
thumbnailWidth: 32,
|
|
657
|
-
thumbnailHeight: 32,
|
|
658
|
-
thumbnailSha256: imageMessage.fileSha256,
|
|
659
|
-
thumbnailEncSha256: imageMessage.fileEncSha256
|
|
660
|
-
};
|
|
661
|
-
}
|
|
662
|
-
if (options.backgroundColor) {
|
|
663
|
-
extContent.backgroundArgb = await assertColor(options.backgroundColor);
|
|
664
|
-
}
|
|
665
|
-
if (options.font) {
|
|
666
|
-
extContent.font = options.font;
|
|
667
|
-
}
|
|
668
|
-
m.extendedTextMessage = extContent;
|
|
669
|
-
}
|
|
670
|
-
else if (hasNonNullishProperty(message, 'contacts')) {
|
|
671
|
-
const contactLen = message.contacts.contacts.length;
|
|
672
|
-
if (!contactLen) {
|
|
673
|
-
throw new Boom('require atleast 1 contact', { statusCode: 400 });
|
|
674
|
-
}
|
|
675
|
-
if (contactLen === 1) {
|
|
676
|
-
m.contactMessage = WAProto.Message.ContactMessage.create(message.contacts.contacts[0]);
|
|
677
|
-
}
|
|
678
|
-
else {
|
|
679
|
-
m.contactsArrayMessage = WAProto.Message.ContactsArrayMessage.create(message.contacts);
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
else if (hasNonNullishProperty(message, 'location')) {
|
|
683
|
-
m.locationMessage = WAProto.Message.LocationMessage.create(message.location);
|
|
684
|
-
}
|
|
685
|
-
else if (hasNonNullishProperty(message, 'react')) {
|
|
686
|
-
if (!message.react.senderTimestampMs) {
|
|
687
|
-
message.react.senderTimestampMs = Date.now();
|
|
688
|
-
}
|
|
689
|
-
m.reactionMessage = WAProto.Message.ReactionMessage.create(message.react);
|
|
690
|
-
}
|
|
691
|
-
else if (hasNonNullishProperty(message, 'delete')) {
|
|
692
|
-
m.protocolMessage = {
|
|
693
|
-
key: message.delete,
|
|
694
|
-
type: WAProto.Message.ProtocolMessage.Type.REVOKE
|
|
695
|
-
};
|
|
696
|
-
}
|
|
697
|
-
else if (hasNonNullishProperty(message, 'forward')) {
|
|
698
|
-
m = generateForwardMessageContent(message.forward, message.force);
|
|
699
|
-
}
|
|
700
|
-
else if (hasNonNullishProperty(message, 'disappearingMessagesInChat')) {
|
|
701
|
-
const exp = typeof message.disappearingMessagesInChat === 'boolean'
|
|
702
|
-
? message.disappearingMessagesInChat
|
|
703
|
-
? WA_DEFAULT_EPHEMERAL
|
|
704
|
-
: 0
|
|
705
|
-
: message.disappearingMessagesInChat;
|
|
706
|
-
m = prepareDisappearingMessageSettingContent(exp);
|
|
707
|
-
}
|
|
708
|
-
else if (hasNonNullishProperty(message, 'groupInvite')) {
|
|
709
|
-
m.groupInviteMessage = {};
|
|
710
|
-
m.groupInviteMessage.inviteCode = message.groupInvite.inviteCode;
|
|
711
|
-
m.groupInviteMessage.inviteExpiration = message.groupInvite.inviteExpiration;
|
|
712
|
-
m.groupInviteMessage.caption = message.groupInvite.text;
|
|
713
|
-
m.groupInviteMessage.groupJid = message.groupInvite.jid;
|
|
714
|
-
m.groupInviteMessage.groupName = message.groupInvite.subject;
|
|
715
|
-
if (options.getProfilePicUrl) {
|
|
716
|
-
const pfpUrl = await options.getProfilePicUrl(message.groupInvite.jid, 'preview');
|
|
717
|
-
if (pfpUrl) {
|
|
718
|
-
const resp = await fetch(pfpUrl, { method: 'GET', dispatcher: options?.options?.dispatcher });
|
|
719
|
-
if (resp.ok) {
|
|
720
|
-
const buf = Buffer.from(await resp.arrayBuffer());
|
|
721
|
-
m.groupInviteMessage.jpegThumbnail = buf;
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
else if (hasNonNullishProperty(message, 'stickers')) {
|
|
727
|
-
m.stickerPackMessage = await prepareStickerPackMessage(message, options);
|
|
728
|
-
}
|
|
729
|
-
else if (hasNonNullishProperty(message, 'pin')) {
|
|
730
|
-
m.pinInChatMessage = {};
|
|
731
|
-
m.messageContextInfo = {};
|
|
732
|
-
m.pinInChatMessage.key = message.pin;
|
|
733
|
-
m.pinInChatMessage.type = message.type;
|
|
734
|
-
m.pinInChatMessage.senderTimestampMs = Date.now();
|
|
735
|
-
m.messageContextInfo.messageAddOnDurationInSecs = message.type === 1 ? message.time || 86400 : 0;
|
|
736
|
-
}
|
|
737
|
-
else if (hasNonNullishProperty(message, 'keep')) {
|
|
738
|
-
m.keepInChatMessage = {};
|
|
739
|
-
m.keepInChatMessage.key = message.keep;
|
|
740
|
-
m.keepInChatMessage.keepType = message.type;
|
|
741
|
-
m.keepInChatMessage.timestampMs = Date.now();
|
|
742
|
-
}
|
|
743
|
-
else if (hasNonNullishProperty(message, 'flowReply')) {
|
|
744
|
-
m.interactiveResponseMessage = {
|
|
745
|
-
body: {
|
|
746
|
-
format: message.flowReply.format || proto.Message.InteractiveResponseMessage.Body.Format.DEFAULT,
|
|
747
|
-
text: message.flowReply.text
|
|
748
|
-
},
|
|
749
|
-
nativeFlowResponseMessage: {
|
|
750
|
-
name: message.flowReply.name,
|
|
751
|
-
paramsJson: message.flowReply.paramsJson || '{}',
|
|
752
|
-
version: message.flowReply.version || 1
|
|
753
|
-
}
|
|
754
|
-
};
|
|
755
|
-
}
|
|
756
|
-
else if (hasNonNullishProperty(message, 'buttonReply')) {
|
|
757
|
-
switch (message.type) {
|
|
758
|
-
case 'template':
|
|
759
|
-
m.templateButtonReplyMessage = {
|
|
760
|
-
selectedDisplayText: message.buttonReply.displayText,
|
|
761
|
-
selectedId: message.buttonReply.id,
|
|
762
|
-
selectedIndex: message.buttonReply.index
|
|
763
|
-
};
|
|
764
|
-
break;
|
|
765
|
-
case 'plain':
|
|
766
|
-
m.buttonsResponseMessage = {
|
|
767
|
-
selectedButtonId: message.buttonReply.id,
|
|
768
|
-
selectedDisplayText: message.buttonReply.displayText,
|
|
769
|
-
type: proto.Message.ButtonsResponseMessage.Type.DISPLAY_TEXT
|
|
770
|
-
};
|
|
771
|
-
break;
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
else if (hasNonNullishProperty(message, 'listReply')) {
|
|
775
|
-
m.listResponseMessage = {
|
|
776
|
-
description: message.listReply.description,
|
|
777
|
-
listType: proto.Message.ListResponseMessage.ListType.SINGLE_SELECT,
|
|
778
|
-
singleSelectReply: {
|
|
779
|
-
selectedRowId: message.listReply.id
|
|
780
|
-
},
|
|
781
|
-
title: message.listReply.title
|
|
782
|
-
};
|
|
783
|
-
}
|
|
784
|
-
else if (hasOptionalProperty(message, 'ptv') && message.ptv) {
|
|
785
|
-
const { videoMessage } = await prepareWAMessageMedia({ video: message.video }, options);
|
|
786
|
-
m.ptvMessage = videoMessage;
|
|
787
|
-
}
|
|
788
|
-
else if (hasNonNullishProperty(message, 'product')) {
|
|
789
|
-
m.productMessage = await prepareProductMessage(message, options);
|
|
790
|
-
}
|
|
791
|
-
else if (hasNonNullishProperty(message, 'event')) {
|
|
792
|
-
m.eventMessage = {};
|
|
793
|
-
const startTime = Math.floor(message.event.startDate.getTime() / 1000);
|
|
794
|
-
if (message.event.call && options.getCallLink) {
|
|
795
|
-
const token = await options.getCallLink(message.event.call, { startTime });
|
|
796
|
-
m.eventMessage.joinLink = (message.event.call === 'audio' ? CALL_AUDIO_PREFIX : CALL_VIDEO_PREFIX) + token;
|
|
797
|
-
}
|
|
798
|
-
m.messageContextInfo = {
|
|
799
|
-
messageSecret: message.event.messageSecret || randomBytes(32)
|
|
800
|
-
};
|
|
801
|
-
m.eventMessage.name = message.event.name;
|
|
802
|
-
m.eventMessage.description = message.event.description;
|
|
803
|
-
m.eventMessage.startTime = startTime;
|
|
804
|
-
m.eventMessage.endTime = message.event.endDate ? message.event.endDate.getTime() / 1000 : undefined;
|
|
805
|
-
m.eventMessage.isCanceled = message.event.isCancelled ?? false;
|
|
806
|
-
m.eventMessage.extraGuestsAllowed = message.event.extraGuestsAllowed;
|
|
807
|
-
m.eventMessage.isScheduleCall = message.event.isScheduleCall ?? false;
|
|
808
|
-
m.eventMessage.location = message.event.location;
|
|
809
|
-
}
|
|
810
|
-
else if (hasNonNullishProperty(message, 'poll')) {
|
|
811
|
-
(_a = message.poll).selectableCount || (_a.selectableCount = 0);
|
|
812
|
-
(_b = message.poll).toAnnouncementGroup || (_b.toAnnouncementGroup = false);
|
|
813
|
-
if (!Array.isArray(message.poll.values)) {
|
|
814
|
-
throw new Boom('Invalid poll values', { statusCode: 400 });
|
|
815
|
-
}
|
|
816
|
-
if (message.poll.selectableCount < 0 || message.poll.selectableCount > message.poll.values.length) {
|
|
817
|
-
throw new Boom(`poll.selectableCount in poll should be >= 0 and <= ${message.poll.values.length}`, {
|
|
818
|
-
statusCode: 400
|
|
819
|
-
});
|
|
820
|
-
}
|
|
821
|
-
const pollCreationMessage = {
|
|
822
|
-
name: message.poll.name,
|
|
823
|
-
selectableOptionsCount: message.poll.selectableCount,
|
|
824
|
-
options: message.poll.values.map(optionName => ({ optionName })),
|
|
825
|
-
endTime: message.poll.endDate ? message.poll.endDate.getTime() : undefined,
|
|
826
|
-
hideParticipantName: message.poll.hideVoter ?? false,
|
|
827
|
-
allowAddOption: message.poll.canAddOption ?? false
|
|
828
|
-
};
|
|
829
|
-
if (message.poll.toAnnouncementGroup) {
|
|
830
|
-
m.pollCreationMessageV2 = pollCreationMessage;
|
|
831
|
-
}
|
|
832
|
-
else {
|
|
833
|
-
if (message.poll.pollType === 1) {
|
|
834
|
-
if (!message.poll.correctAnswer) {
|
|
835
|
-
throw new Boom('No "correctAnswer" provided for quiz', { statusCode: 400 });
|
|
836
|
-
}
|
|
837
|
-
m.pollCreationMessageV5 = {
|
|
838
|
-
...pollCreationMessage,
|
|
839
|
-
correctAnswer: {
|
|
840
|
-
optionName: message.poll.correctAnswer.toString()
|
|
841
|
-
},
|
|
842
|
-
pollType: 1,
|
|
843
|
-
selectableOptionsCount: 1
|
|
844
|
-
};
|
|
845
|
-
}
|
|
846
|
-
else if (message.poll.selectableCount === 1) {
|
|
847
|
-
m.pollCreationMessageV3 = pollCreationMessage;
|
|
848
|
-
}
|
|
849
|
-
else {
|
|
850
|
-
m.pollCreationMessage = pollCreationMessage;
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
m.messageContextInfo = {
|
|
854
|
-
messageSecret: message.poll.messageSecret || randomBytes(32)
|
|
855
|
-
};
|
|
856
|
-
}
|
|
857
|
-
else if (hasNonNullishProperty(message, 'pollResult')) {
|
|
858
|
-
const pollResultSnapshotMessage = {
|
|
859
|
-
name: message.pollResult.name,
|
|
860
|
-
pollVotes: message.pollResult.votes.map(vote => ({
|
|
861
|
-
optionName: vote.name,
|
|
862
|
-
optionVoteCount: parseInt(vote.voteCount)
|
|
863
|
-
}))
|
|
864
|
-
};
|
|
865
|
-
if (message.pollResult.pollType === 1) {
|
|
866
|
-
pollResultSnapshotMessage.pollType = proto.Message.PollType.QUIZ;
|
|
867
|
-
m.pollResultSnapshotMessageV3 = pollResultSnapshotMessage;
|
|
868
|
-
}
|
|
869
|
-
else {
|
|
870
|
-
pollResultSnapshotMessage.pollType = proto.Message.PollType.POLL;
|
|
871
|
-
m.pollResultSnapshotMessage = pollResultSnapshotMessage;
|
|
872
|
-
}
|
|
873
|
-
}
|
|
874
|
-
else if (hasNonNullishProperty(message, 'pollUpdate')) {
|
|
875
|
-
if (!message.pollUpdate.key) {
|
|
876
|
-
throw new Boom('Message key is required', { statusCode: 400 });
|
|
877
|
-
}
|
|
878
|
-
if (!message.pollUpdate.vote) {
|
|
879
|
-
throw new Boom('Encrypted vote payload is required', { statusCode: 400 });
|
|
880
|
-
}
|
|
881
|
-
m.pollUpdateMessage = {
|
|
882
|
-
metadata: message.pollUpdate.metadata,
|
|
883
|
-
pollCreationMessageKey: message.pollUpdate.key,
|
|
884
|
-
senderTimestampMs: Date.now(),
|
|
885
|
-
vote: message.pollUpdate.vote
|
|
886
|
-
};
|
|
887
|
-
}
|
|
888
|
-
else if (hasNonNullishProperty(message, 'paymentInviteServiceType')) {
|
|
889
|
-
m.paymentInviteMessage = {
|
|
890
|
-
expiryTimestamp: Date.now(),
|
|
891
|
-
serviceType: message.paymentInviteServiceType
|
|
892
|
-
};
|
|
893
|
-
}
|
|
894
|
-
else if (hasNonNullishProperty(message, 'orderText')) {
|
|
895
|
-
if (!Buffer.isBuffer(message.thumbnail)) {
|
|
896
|
-
throw new Boom('Must provide thumbnail buffer in order message', { statusCode: 400 });
|
|
897
|
-
}
|
|
898
|
-
m.orderMessage = {
|
|
899
|
-
itemCount: 1,
|
|
900
|
-
messageVersion: 1,
|
|
901
|
-
orderTitle: LIBRARY_NAME,
|
|
902
|
-
status: proto.Message.OrderMessage.OrderStatus.INQUIRY,
|
|
903
|
-
surface: proto.Message.OrderMessage.OrderSurface.CATALOG,
|
|
904
|
-
token: generateMessageIDV2(),
|
|
905
|
-
totalAmount1000: 1000,
|
|
906
|
-
totalCurrencyCode: 'IDR',
|
|
907
|
-
...message,
|
|
908
|
-
message: message.orderText
|
|
909
|
-
};
|
|
910
|
-
delete m.orderMessage.orderText;
|
|
911
|
-
}
|
|
912
|
-
else if (hasNonNullishProperty(message, 'album')) {
|
|
913
|
-
if (!Array.isArray(message.album)) {
|
|
914
|
-
throw new Boom('Invalid album type. Expected an array.', { statusCode: 400 });
|
|
915
|
-
}
|
|
916
|
-
let videoCount = 0;
|
|
917
|
-
for (let i = 0; i < message.album.length; i++) {
|
|
918
|
-
if (message.album[i].video) videoCount++;
|
|
919
|
-
}
|
|
920
|
-
let imageCount = 0;
|
|
921
|
-
for (let i = 0; i < message.album.length; i++) {
|
|
922
|
-
if (message.album[i].image) imageCount++;
|
|
923
|
-
}
|
|
924
|
-
if ((videoCount + imageCount) < 2) {
|
|
925
|
-
throw new Boom('Minimum provide 2 media to upload album message', { statusCode: 400 });
|
|
926
|
-
}
|
|
927
|
-
m.albumMessage = {
|
|
928
|
-
expectedImageCount: imageCount,
|
|
929
|
-
expectedVideoCount: videoCount
|
|
930
|
-
};
|
|
931
|
-
}
|
|
932
|
-
else if (hasNonNullishProperty(message, 'sharePhoneNumber')) {
|
|
933
|
-
m.protocolMessage = {
|
|
934
|
-
type: proto.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER
|
|
935
|
-
};
|
|
936
|
-
}
|
|
937
|
-
else if (hasNonNullishProperty(message, 'requestPhoneNumber')) {
|
|
938
|
-
m.requestPhoneNumberMessage = {};
|
|
939
|
-
}
|
|
940
|
-
else if (hasNonNullishProperty(message, 'limitSharing')) {
|
|
941
|
-
m.protocolMessage = {
|
|
942
|
-
type: proto.Message.ProtocolMessage.Type.LIMIT_SHARING,
|
|
943
|
-
limitSharing: {
|
|
944
|
-
sharingLimited: message.limitSharing === true,
|
|
945
|
-
trigger: 1,
|
|
946
|
-
limitSharingSettingTimestamp: Date.now(),
|
|
947
|
-
initiatedByMe: true
|
|
948
|
-
}
|
|
949
|
-
};
|
|
950
|
-
}
|
|
951
|
-
else {
|
|
952
|
-
m = await prepareWAMessageMedia(message, options);
|
|
953
|
-
}
|
|
954
|
-
if (hasNonNullishProperty(message, 'buttons')) {
|
|
955
|
-
const buttonsMessage = {
|
|
956
|
-
buttons: message.buttons.map(button => {
|
|
957
|
-
const buttonText = button.text || button.buttonText;
|
|
958
|
-
if (hasOptionalProperty(button, 'sections')) {
|
|
959
|
-
return {
|
|
960
|
-
nativeFlowInfo: {
|
|
961
|
-
name: 'single_select',
|
|
962
|
-
paramsJson: JSON.stringify({
|
|
963
|
-
title: buttonText,
|
|
964
|
-
sections: button.sections
|
|
965
|
-
})
|
|
966
|
-
},
|
|
967
|
-
type: ButtonType.NATIVE_FLOW
|
|
968
|
-
};
|
|
969
|
-
}
|
|
970
|
-
else if (hasOptionalProperty(button, 'name')) {
|
|
971
|
-
return {
|
|
972
|
-
nativeFlowInfo: {
|
|
973
|
-
name: button.name,
|
|
974
|
-
paramsJson: button.paramsJson
|
|
975
|
-
},
|
|
976
|
-
type: ButtonType.NATIVE_FLOW
|
|
977
|
-
};
|
|
978
|
-
}
|
|
979
|
-
return {
|
|
980
|
-
buttonId: button.id || button.buttonId,
|
|
981
|
-
buttonText: typeof buttonText === 'string' ? { displayText: buttonText } : buttonText,
|
|
982
|
-
type: button.type || ButtonType.RESPONSE
|
|
983
|
-
};
|
|
984
|
-
})
|
|
985
|
-
};
|
|
986
|
-
if (hasOptionalProperty(message, 'text')) {
|
|
987
|
-
buttonsMessage.contentText = message.text;
|
|
988
|
-
buttonsMessage.headerType = ButtonHeaderType.EMPTY;
|
|
989
|
-
}
|
|
990
|
-
else {
|
|
991
|
-
if (hasOptionalProperty(message, 'caption')) {
|
|
992
|
-
buttonsMessage.contentText = message.caption;
|
|
993
|
-
}
|
|
994
|
-
const type = Object.keys(m)[0].replace('Message', '').toUpperCase();
|
|
995
|
-
buttonsMessage.headerType = ButtonHeaderType[type];
|
|
996
|
-
Object.assign(buttonsMessage, m);
|
|
997
|
-
}
|
|
998
|
-
if (hasOptionalProperty(message, 'footer')) {
|
|
999
|
-
buttonsMessage.footerText = message.footer;
|
|
1000
|
-
}
|
|
1001
|
-
m = { buttonsMessage };
|
|
1002
|
-
}
|
|
1003
|
-
else if (hasNonNullishProperty(message, 'sections')) {
|
|
1004
|
-
const listMessage = {
|
|
1005
|
-
sections: message.sections,
|
|
1006
|
-
buttonText: message.buttonText,
|
|
1007
|
-
title: message.title,
|
|
1008
|
-
footerText: message.footer,
|
|
1009
|
-
description: message.text,
|
|
1010
|
-
listType: ListType.SINGLE_SELECT
|
|
1011
|
-
};
|
|
1012
|
-
m = { listMessage };
|
|
1013
|
-
}
|
|
1014
|
-
else if (hasNonNullishProperty(message, 'templateButtons')) {
|
|
1015
|
-
const hydratedTemplate = {
|
|
1016
|
-
hydratedButtons: message.templateButtons.map((button, i) => {
|
|
1017
|
-
const buttonText = button.text || button.buttonText;
|
|
1018
|
-
if (hasOptionalProperty(button, 'id')) {
|
|
1019
|
-
return {
|
|
1020
|
-
index: i,
|
|
1021
|
-
quickReplyButton: {
|
|
1022
|
-
displayText: buttonText || '👉🏻 Click',
|
|
1023
|
-
id: button.id
|
|
1024
|
-
}
|
|
1025
|
-
};
|
|
1026
|
-
}
|
|
1027
|
-
else if (hasOptionalProperty(button, 'url')) {
|
|
1028
|
-
return {
|
|
1029
|
-
index: i,
|
|
1030
|
-
urlButton: {
|
|
1031
|
-
displayText: buttonText || '🌐 Visit',
|
|
1032
|
-
url: button.url
|
|
1033
|
-
}
|
|
1034
|
-
};
|
|
1035
|
-
}
|
|
1036
|
-
else if (hasOptionalProperty(button, 'call')) {
|
|
1037
|
-
return {
|
|
1038
|
-
index: i,
|
|
1039
|
-
callButton: {
|
|
1040
|
-
displayText: buttonText || '📞 Call',
|
|
1041
|
-
phoneNumber: button.call
|
|
1042
|
-
}
|
|
1043
|
-
};
|
|
1044
|
-
}
|
|
1045
|
-
button.index = button.index || i;
|
|
1046
|
-
return button;
|
|
1047
|
-
})
|
|
1048
|
-
};
|
|
1049
|
-
if (hasOptionalProperty(message, 'text')) {
|
|
1050
|
-
hydratedTemplate.hydratedContentText = message.text;
|
|
1051
|
-
}
|
|
1052
|
-
else {
|
|
1053
|
-
if (hasOptionalProperty(message, 'caption')) {
|
|
1054
|
-
hydratedTemplate.hydratedTitleText = message.title;
|
|
1055
|
-
hydratedTemplate.hydratedContentText = message.caption;
|
|
1056
|
-
}
|
|
1057
|
-
Object.assign(hydratedTemplate, m);
|
|
1058
|
-
}
|
|
1059
|
-
if (hasOptionalProperty(message, 'footer')) {
|
|
1060
|
-
hydratedTemplate.hydratedFooterText = message.footer;
|
|
1061
|
-
}
|
|
1062
|
-
hydratedTemplate.templateId = message.id || 'template-' + Date.now();
|
|
1063
|
-
m = {
|
|
1064
|
-
templateMessage: {
|
|
1065
|
-
hydratedFourRowTemplate: hydratedTemplate,
|
|
1066
|
-
hydratedTemplate: hydratedTemplate
|
|
1067
|
-
}
|
|
1068
|
-
};
|
|
1069
|
-
}
|
|
1070
|
-
else if (hasNonNullishProperty(message, 'nativeFlow')) {
|
|
1071
|
-
const interactiveMessage = {
|
|
1072
|
-
nativeFlowMessage: prepareNativeFlowButtons(message)
|
|
1073
|
-
};
|
|
1074
|
-
if (hasOptionalProperty(message, 'bizJid')) {
|
|
1075
|
-
interactiveMessage.collectionMessage = {
|
|
1076
|
-
bizJid: message.bizJid,
|
|
1077
|
-
id: message.id,
|
|
1078
|
-
messageVersion: 1
|
|
1079
|
-
};
|
|
1080
|
-
}
|
|
1081
|
-
else if (hasOptionalProperty(message, 'shopSurface')) {
|
|
1082
|
-
interactiveMessage.shopStorefrontMessage = {
|
|
1083
|
-
surface: message.shopSurface,
|
|
1084
|
-
id: message.id,
|
|
1085
|
-
messageVersion: 1
|
|
1086
|
-
};
|
|
1087
|
-
}
|
|
1088
|
-
if (hasOptionalProperty(message, 'text')) {
|
|
1089
|
-
interactiveMessage.body = { text: message.text };
|
|
1090
|
-
}
|
|
1091
|
-
else {
|
|
1092
|
-
if (hasOptionalProperty(message, 'caption')) {
|
|
1093
|
-
const isValidHeader = hasValidInteractiveHeader(m);
|
|
1094
|
-
if (!isValidHeader) {
|
|
1095
|
-
throw new Boom('Invalid media type for interactive message header', { statusCode: 400 });
|
|
1096
|
-
}
|
|
1097
|
-
interactiveMessage.header = {
|
|
1098
|
-
title: message.title || '',
|
|
1099
|
-
subtitle: message.subtitle || '',
|
|
1100
|
-
hasMediaAttachment: isValidHeader
|
|
1101
|
-
};
|
|
1102
|
-
interactiveMessage.body = { text: message.caption };
|
|
1103
|
-
}
|
|
1104
|
-
if (hasOptionalProperty(message, 'thumbnail') && !!message.thumbnail) {
|
|
1105
|
-
interactiveMessage.jpegThumbnail = message.thumbnail;
|
|
1106
|
-
}
|
|
1107
|
-
Object.assign(interactiveMessage.header, m);
|
|
1108
|
-
}
|
|
1109
|
-
if (hasOptionalProperty(message, 'audioFooter')) {
|
|
1110
|
-
const { audioMessage } = await prepareWAMessageMedia({
|
|
1111
|
-
audio: message.audioFooter
|
|
1112
|
-
}, options);
|
|
1113
|
-
interactiveMessage.footer = {
|
|
1114
|
-
audioMessage,
|
|
1115
|
-
hasMediaAttachment: true
|
|
1116
|
-
};
|
|
1117
|
-
}
|
|
1118
|
-
else if (hasOptionalProperty(message, 'footer')) {
|
|
1119
|
-
interactiveMessage.footer = { text: message.footer };
|
|
1120
|
-
}
|
|
1121
|
-
m = { interactiveMessage };
|
|
1122
|
-
}
|
|
1123
|
-
else if (hasNonNullishProperty(message, 'cards')) {
|
|
1124
|
-
const interactiveMessage = {
|
|
1125
|
-
carouselMessage: {
|
|
1126
|
-
cards: await Promise.all(message.cards.map(async (card) => {
|
|
1127
|
-
let carouselHeader = {};
|
|
1128
|
-
if (hasNonNullishProperty(card, 'product')) {
|
|
1129
|
-
carouselHeader.productMessage = await prepareProductMessage(card, options);
|
|
1130
|
-
}
|
|
1131
|
-
else {
|
|
1132
|
-
carouselHeader = await prepareWAMessageMedia(card, options).catch(() => ({}));
|
|
1133
|
-
}
|
|
1134
|
-
const isValidHeader = hasValidCarouselHeader(carouselHeader);
|
|
1135
|
-
if (!isValidHeader) {
|
|
1136
|
-
throw new Boom('Invalid media type for carousel card', { statusCode: 400 });
|
|
1137
|
-
}
|
|
1138
|
-
const carouselCard = {
|
|
1139
|
-
nativeFlowMessage: prepareNativeFlowButtons(card.nativeFlow ? card : [])
|
|
1140
|
-
};
|
|
1141
|
-
if (hasOptionalProperty(card, 'text')) {
|
|
1142
|
-
carouselCard.body = { text: card.text };
|
|
1143
|
-
}
|
|
1144
|
-
else {
|
|
1145
|
-
if (hasOptionalProperty(card, 'caption')) {
|
|
1146
|
-
carouselCard.header = {
|
|
1147
|
-
title: card.title || '',
|
|
1148
|
-
subtitle: card.subtitle || '',
|
|
1149
|
-
hasMediaAttachment: isValidHeader
|
|
1150
|
-
};
|
|
1151
|
-
carouselCard.body = { text: card.caption };
|
|
1152
|
-
}
|
|
1153
|
-
if (hasOptionalProperty(card, 'thumbnail') && !!card.thumbnail) {
|
|
1154
|
-
carouselCard.jpegThumbnail = card.thumbnail;
|
|
1155
|
-
}
|
|
1156
|
-
Object.assign(carouselCard.header, carouselHeader);
|
|
1157
|
-
}
|
|
1158
|
-
if (hasOptionalProperty(card, 'audioFooter')) {
|
|
1159
|
-
const { audioMessage } = await prepareWAMessageMedia({
|
|
1160
|
-
audio: card.audioFooter
|
|
1161
|
-
}, options);
|
|
1162
|
-
carouselCard.footer = {
|
|
1163
|
-
audioMessage,
|
|
1164
|
-
hasMediaAttachment: true
|
|
1165
|
-
};
|
|
1166
|
-
}
|
|
1167
|
-
else if (hasOptionalProperty(card, 'footer')) {
|
|
1168
|
-
carouselCard.footer = { text: card.footer };
|
|
1169
|
-
}
|
|
1170
|
-
return carouselCard;
|
|
1171
|
-
})),
|
|
1172
|
-
carouselCardType: CarouselCardType.UNKNOWN,
|
|
1173
|
-
messageVersion: 1
|
|
1174
|
-
}
|
|
1175
|
-
};
|
|
1176
|
-
if (hasOptionalProperty(message, 'text')) {
|
|
1177
|
-
interactiveMessage.body = { text: message.text };
|
|
1178
|
-
}
|
|
1179
|
-
if (hasOptionalProperty(message, 'footer')) {
|
|
1180
|
-
interactiveMessage.footer = { text: message.footer };
|
|
1181
|
-
}
|
|
1182
|
-
m = { interactiveMessage };
|
|
1183
|
-
}
|
|
1184
|
-
else if (hasNonNullishProperty(message, 'requestPaymentFrom')) {
|
|
1185
|
-
const requestPaymentMessage = {
|
|
1186
|
-
amount: {
|
|
1187
|
-
currencyCode: 'IDR',
|
|
1188
|
-
offset: 1000,
|
|
1189
|
-
value: 1000
|
|
1190
|
-
},
|
|
1191
|
-
amount1000: 1000,
|
|
1192
|
-
currencyCodeIso4217: 'IDR',
|
|
1193
|
-
expiryTimestamp: Date.now(),
|
|
1194
|
-
noteMessage: m,
|
|
1195
|
-
requestFrom: message.requestPaymentFrom,
|
|
1196
|
-
...message
|
|
1197
|
-
};
|
|
1198
|
-
delete requestPaymentMessage.requestPaymentFrom;
|
|
1199
|
-
if (hasNonNullishProperty(m, 'extendedTextMessage') || hasNonNullishProperty(m, 'stickerMessage')) {
|
|
1200
|
-
Object.assign(requestPaymentMessage.noteMessage, m);
|
|
1201
|
-
}
|
|
1202
|
-
else {
|
|
1203
|
-
throw new Boom('Invalid message type for request payment note message', { statusCode: 400 });
|
|
1204
|
-
}
|
|
1205
|
-
m = { requestPaymentMessage };
|
|
1206
|
-
}
|
|
1207
|
-
else if (hasNonNullishProperty(message, 'invoiceNote')) {
|
|
1208
|
-
const attachment = m.imageMessage || m.documentMessage;
|
|
1209
|
-
const type = Object.keys(m)[0].replace('Message', '').toUpperCase();
|
|
1210
|
-
const invoiceMessage = {
|
|
1211
|
-
attachmentType: proto.Message.InvoiceMessage.AttachmentType[type === 'DOCUMENT' ? 'PDF' : 'IMAGE'],
|
|
1212
|
-
note: message.invoiceNote
|
|
1213
|
-
};
|
|
1214
|
-
if (attachment) {
|
|
1215
|
-
const { directPath, fileEncSha256, fileSha256, jpegThumbnail = undefined, mediaKey, mediaKeyTimestamp, mimetype } = attachment;
|
|
1216
|
-
Object.assign(invoiceMessage, {
|
|
1217
|
-
attachmentDirectPath: directPath,
|
|
1218
|
-
attachmentFileEncSha256: fileEncSha256,
|
|
1219
|
-
attachmentFileSha256: fileSha256,
|
|
1220
|
-
attachmentJpegThumbnail: jpegThumbnail,
|
|
1221
|
-
attachmentMediaKey: mediaKey,
|
|
1222
|
-
attachmentMediaKeyTimestamp: mediaKeyTimestamp,
|
|
1223
|
-
attachmentMimetype: mimetype,
|
|
1224
|
-
token: generateMessageIDV2()
|
|
1225
|
-
});
|
|
1226
|
-
}
|
|
1227
|
-
else {
|
|
1228
|
-
throw new Boom('Invalid media type for invoice message', { statusCode: 400 });
|
|
1229
|
-
}
|
|
1230
|
-
m = { invoiceMessage };
|
|
1231
|
-
}
|
|
1232
|
-
if (hasOptionalProperty(message, 'externalAdReply') && !!message.externalAdReply) {
|
|
1233
|
-
const messageType = Object.keys(m)[0];
|
|
1234
|
-
const key = m[messageType];
|
|
1235
|
-
const content = message.externalAdReply;
|
|
1236
|
-
if ('thumbnail' in content && !Buffer.isBuffer(content.thumbnail)) {
|
|
1237
|
-
throw new Boom('Thumbnail must in buffer type', { statusCode: 400 });
|
|
1238
|
-
}
|
|
1239
|
-
if (!content.url || typeof content.url !== 'string') {
|
|
1240
|
-
content.url = DONATE_URL;
|
|
1241
|
-
}
|
|
1242
|
-
const externalAdReply = {
|
|
1243
|
-
...content,
|
|
1244
|
-
body: content.body,
|
|
1245
|
-
mediaType: content.mediaType || 1,
|
|
1246
|
-
mediaUrl: content.url,
|
|
1247
|
-
renderLargerThumbnail: content.largeThumbnail,
|
|
1248
|
-
sourceUrl: content.url,
|
|
1249
|
-
thumbnail: content.thumbnail,
|
|
1250
|
-
thumbnailUrl: content.url + '?update=' + Date.now(),
|
|
1251
|
-
title: content.title || LIBRARY_NAME
|
|
1252
|
-
};
|
|
1253
|
-
delete externalAdReply.subTitle;
|
|
1254
|
-
delete externalAdReply.largeThumbnail;
|
|
1255
|
-
delete externalAdReply.url;
|
|
1256
|
-
if ('contextInfo' in key && !!key.contextInfo) {
|
|
1257
|
-
key.contextInfo.externalAdReply = { ...key.contextInfo.externalAdReply, ...externalAdReply };
|
|
1258
|
-
}
|
|
1259
|
-
else if (key) {
|
|
1260
|
-
key.contextInfo = { externalAdReply };
|
|
1261
|
-
}
|
|
1262
|
-
}
|
|
1263
|
-
if ((hasOptionalProperty(message, 'mentions') && message.mentions?.length) ||
|
|
1264
|
-
(hasOptionalProperty(message, 'mentionAll') && message.mentionAll)) {
|
|
1265
|
-
const messageType = Object.keys(m)[0];
|
|
1266
|
-
const key = m[messageType];
|
|
1267
|
-
if (key && 'contextInfo' in key) {
|
|
1268
|
-
key.contextInfo = key.contextInfo || {};
|
|
1269
|
-
if (message.mentions?.length) {
|
|
1270
|
-
key.contextInfo.mentionedJid = message.mentions;
|
|
1271
|
-
}
|
|
1272
|
-
if (message.mentionAll) {
|
|
1273
|
-
key.contextInfo.nonJidMentions = 1;
|
|
1274
|
-
}
|
|
1275
|
-
}
|
|
1276
|
-
else if (key) {
|
|
1277
|
-
key.contextInfo = {
|
|
1278
|
-
mentionedJid: message.mentions,
|
|
1279
|
-
nonJidMentions: message.mentionAll ? 1 : 0
|
|
1280
|
-
};
|
|
1281
|
-
}
|
|
1282
|
-
}
|
|
1283
|
-
if (hasOptionalProperty(message, 'contextInfo') && !!message.contextInfo) {
|
|
1284
|
-
const messageType = Object.keys(m)[0];
|
|
1285
|
-
const key = m[messageType];
|
|
1286
|
-
if ('contextInfo' in key && !!key.contextInfo) {
|
|
1287
|
-
key.contextInfo = { ...key.contextInfo, ...message.contextInfo };
|
|
1288
|
-
}
|
|
1289
|
-
else if (key) {
|
|
1290
|
-
key.contextInfo = message.contextInfo;
|
|
1291
|
-
}
|
|
1292
|
-
}
|
|
1293
|
-
if (hasOptionalProperty(message, 'groupStatus') && !!message.groupStatus) {
|
|
1294
|
-
const messageType = Object.keys(m)[0];
|
|
1295
|
-
const key = m[messageType];
|
|
1296
|
-
if ('contextInfo' in key && !!key.contextInfo) {
|
|
1297
|
-
key.contextInfo.isGroupStatus = message.groupStatus;
|
|
1298
|
-
}
|
|
1299
|
-
else if (key) {
|
|
1300
|
-
key.contextInfo = {
|
|
1301
|
-
isGroupStatus: message.groupStatus
|
|
1302
|
-
};
|
|
1303
|
-
}
|
|
1304
|
-
m = { groupStatusMessageV2: { message: m } };
|
|
1305
|
-
delete message.groupStatus;
|
|
1306
|
-
}
|
|
1307
|
-
if (hasOptionalProperty(message, 'spoiler') && !!message.spoiler) {
|
|
1308
|
-
const messageType = Object.keys(m)[0];
|
|
1309
|
-
const key = m[messageType];
|
|
1310
|
-
if ('contextInfo' in key && !!key.contextInfo) {
|
|
1311
|
-
key.contextInfo.isSpoiler = message.spoiler;
|
|
1312
|
-
}
|
|
1313
|
-
else if (key) {
|
|
1314
|
-
key.contextInfo = {
|
|
1315
|
-
isSpoiler: message.spoiler
|
|
1316
|
-
};
|
|
1317
|
-
}
|
|
1318
|
-
m = { spoilerMessage: { message: m } };
|
|
1319
|
-
delete message.spoiler;
|
|
1320
|
-
}
|
|
1321
|
-
else if (hasOptionalProperty(message, 'interactiveAsTemplate') && !!message.interactiveAsTemplate) {
|
|
1322
|
-
if (!m.interactiveMessage) {
|
|
1323
|
-
throw new Boom('Invalid message type for template', { statusCode: 400 });
|
|
1324
|
-
}
|
|
1325
|
-
m = {
|
|
1326
|
-
templateMessage: {
|
|
1327
|
-
interactiveMessageTemplate: m.interactiveMessage,
|
|
1328
|
-
templateId: message.id || 'template-' + Date.now()
|
|
1329
|
-
}
|
|
1330
|
-
};
|
|
1331
|
-
delete message.interactiveAsTemplate;
|
|
1332
|
-
}
|
|
1333
|
-
if (hasOptionalProperty(message, 'ephemeral') && !!message.ephemeral) {
|
|
1334
|
-
m = { ephemeralMessage: { message: m } };
|
|
1335
|
-
delete message.ephemeral;
|
|
1336
|
-
}
|
|
1337
|
-
if (hasOptionalProperty(message, 'isLottie') && !!message.isLottie) {
|
|
1338
|
-
m = { lottieStickerMessage: { message: m } };
|
|
1339
|
-
}
|
|
1340
|
-
else if (hasOptionalProperty(message, 'viewOnce') && !!message.viewOnce) {
|
|
1341
|
-
m = { viewOnceMessage: { message: m } };
|
|
1342
|
-
}
|
|
1343
|
-
else if (hasOptionalProperty(message, 'viewOnceV2') && !!message.viewOnceV2) {
|
|
1344
|
-
m = { viewOnceMessageV2: { message: m } };
|
|
1345
|
-
delete message.viewOnceV2;
|
|
1346
|
-
}
|
|
1347
|
-
else if (hasOptionalProperty(message, 'viewOnceV2Extension') && !!message.viewOnceV2Extension) {
|
|
1348
|
-
m = { viewOnceMessageV2Extension: { message: m } };
|
|
1349
|
-
delete message.viewOnceV2Extension;
|
|
1350
|
-
}
|
|
1351
|
-
if (hasOptionalProperty(message, 'edit')) {
|
|
1352
|
-
m = {
|
|
1353
|
-
protocolMessage: {
|
|
1354
|
-
key: message.edit,
|
|
1355
|
-
editedMessage: m,
|
|
1356
|
-
timestampMs: Date.now(),
|
|
1357
|
-
type: WAProto.Message.ProtocolMessage.Type.MESSAGE_EDIT
|
|
1358
|
-
}
|
|
1359
|
-
};
|
|
1360
|
-
}
|
|
1361
|
-
if (options?.messageSecret && !m.messageContextInfo?.messageSecret) {
|
|
1362
|
-
m.messageContextInfo = { ...(m.messageContextInfo ?? {}), messageSecret: options.messageSecret };
|
|
1363
|
-
}
|
|
1364
|
-
if (shouldIncludeReportingToken(m)) {
|
|
1365
|
-
m.messageContextInfo = m.messageContextInfo || {};
|
|
1366
|
-
if (!m.messageContextInfo.messageSecret) {
|
|
1367
|
-
m.messageContextInfo.messageSecret = randomBytes(32);
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
return WAProto.Message.create(m);
|
|
1371
|
-
};
|
|
1372
|
-
|
|
1373
|
-
export const generateWAMessageFromContent = (jid, message, options) => {
|
|
1374
|
-
if (!options.timestamp) {
|
|
1375
|
-
options.timestamp = new Date();
|
|
1376
|
-
}
|
|
1377
|
-
const innerMessage = normalizeMessageContent(message);
|
|
1378
|
-
const messageContextInfo = message.messageContextInfo;
|
|
1379
|
-
const key = getContentType(innerMessage);
|
|
1380
|
-
const timestamp = unixTimestampSeconds(options.timestamp);
|
|
1381
|
-
const isNewsletter = isJidNewsletter(jid);
|
|
1382
|
-
const { quoted, userJid } = options;
|
|
1383
|
-
if (quoted) {
|
|
1384
|
-
const participant = quoted.key.fromMe
|
|
1385
|
-
? userJid
|
|
1386
|
-
: quoted.participant || quoted.key.participant || quoted.key.remoteJid;
|
|
1387
|
-
let quotedMsg = normalizeMessageContent(quoted.message);
|
|
1388
|
-
const msgType = getContentType(quotedMsg);
|
|
1389
|
-
quotedMsg = proto.Message.create({ [msgType]: quotedMsg[msgType] });
|
|
1390
|
-
const quotedContent = quotedMsg[msgType];
|
|
1391
|
-
if (typeof quotedContent === 'object' && quotedContent && 'contextInfo' in quotedContent) {
|
|
1392
|
-
delete quotedContent.contextInfo;
|
|
1393
|
-
}
|
|
1394
|
-
const contextInfo = ('contextInfo' in innerMessage[key] && innerMessage[key]?.contextInfo) || {};
|
|
1395
|
-
contextInfo.participant = jidNormalizedUser(participant);
|
|
1396
|
-
contextInfo.stanzaId = quoted.key.id;
|
|
1397
|
-
contextInfo.quotedMessage = quotedMsg;
|
|
1398
|
-
if (!isNewsletter && jid !== quoted.key.remoteJid) {
|
|
1399
|
-
contextInfo.remoteJid = quoted.key.remoteJid;
|
|
1400
|
-
}
|
|
1401
|
-
if (contextInfo && innerMessage[key]) {
|
|
1402
|
-
innerMessage[key].contextInfo = contextInfo;
|
|
1403
|
-
}
|
|
1404
|
-
}
|
|
1405
|
-
if (!!options?.ephemeralExpiration &&
|
|
1406
|
-
key !== 'protocolMessage' &&
|
|
1407
|
-
key !== 'ephemeralMessage' &&
|
|
1408
|
-
!isNewsletter) {
|
|
1409
|
-
innerMessage[key].contextInfo = {
|
|
1410
|
-
...(innerMessage[key].contextInfo || {}),
|
|
1411
|
-
expiration: options.ephemeralExpiration || WA_DEFAULT_EPHEMERAL
|
|
1412
|
-
};
|
|
1413
|
-
}
|
|
1414
|
-
if (messageContextInfo?.messageSecret && (isPnUser(jid) || isLidUser(jid))) {
|
|
1415
|
-
messageContextInfo.deviceListMetadata = {
|
|
1416
|
-
recipientKeyHash: randomBytes(10),
|
|
1417
|
-
recipientTimestamp: unixTimestampSeconds()
|
|
1418
|
-
};
|
|
1419
|
-
messageContextInfo.deviceListMetadataVersion = 2;
|
|
1420
|
-
}
|
|
1421
|
-
message = WAProto.Message.create(message);
|
|
1422
|
-
const messageJSON = {
|
|
1423
|
-
key: {
|
|
1424
|
-
remoteJid: jid,
|
|
1425
|
-
fromMe: true,
|
|
1426
|
-
id: options?.messageId || generateMessageIDV2()
|
|
1427
|
-
},
|
|
1428
|
-
message: message,
|
|
1429
|
-
messageTimestamp: timestamp,
|
|
1430
|
-
messageStubParameters: [],
|
|
1431
|
-
participant: isJidGroup(jid) || isJidStatusBroadcast(jid) ? userJid : undefined,
|
|
1432
|
-
status: WAMessageStatus.PENDING
|
|
1433
|
-
};
|
|
1434
|
-
return WAProto.WebMessageInfo.fromObject(messageJSON);
|
|
1435
|
-
};
|
|
1436
|
-
|
|
1437
|
-
export const generateWAMessage = async (jid, content, options) => {
|
|
1438
|
-
options.logger = options?.logger?.child({ msgId: options.messageId });
|
|
1439
|
-
if (jid) {
|
|
1440
|
-
options.jid = jid;
|
|
1441
|
-
}
|
|
1442
|
-
return generateWAMessageFromContent(jid, await generateWAMessageContent(content, options), options);
|
|
1443
|
-
};
|
|
1444
|
-
|
|
1445
|
-
export const getContentType = (content) => {
|
|
1446
|
-
if (content) {
|
|
1447
|
-
const keys = Object.keys(content);
|
|
1448
|
-
const key = keys.find(k => (k === 'conversation' || k.includes('Message')) && k !== 'senderKeyDistributionMessage');
|
|
1449
|
-
return key;
|
|
1450
|
-
}
|
|
1451
|
-
};
|
|
1452
|
-
|
|
1453
|
-
export const normalizeMessageContent = (content) => {
|
|
1454
|
-
if (!content) {
|
|
1455
|
-
return undefined;
|
|
1456
|
-
}
|
|
1457
|
-
for (let i = 0; i < 5; i++) {
|
|
1458
|
-
const inner = getFutureProofMessage(content);
|
|
1459
|
-
if (!inner) {
|
|
1460
|
-
break;
|
|
1461
|
-
}
|
|
1462
|
-
content = inner.message;
|
|
1463
|
-
}
|
|
1464
|
-
return content;
|
|
1465
|
-
function getFutureProofMessage(message) {
|
|
1466
|
-
return (message?.associatedChildMessage ||
|
|
1467
|
-
message?.botForwardedMessage ||
|
|
1468
|
-
message?.botInvokeMessage ||
|
|
1469
|
-
message?.botTaskMessage ||
|
|
1470
|
-
message?.documentWithCaptionMessage ||
|
|
1471
|
-
message?.editedMessage ||
|
|
1472
|
-
message?.ephemeralMessage ||
|
|
1473
|
-
message?.eventCoverImage ||
|
|
1474
|
-
message?.groupMentionedMessage ||
|
|
1475
|
-
message?.groupStatusMentionMessage ||
|
|
1476
|
-
message?.groupStatusMessage ||
|
|
1477
|
-
message?.groupStatusMessageV2 ||
|
|
1478
|
-
message?.limitSharingMessage ||
|
|
1479
|
-
message?.lottieStickerMessage ||
|
|
1480
|
-
message?.newsletterAdminProfileMessage ||
|
|
1481
|
-
message?.newsletterAdminProfileMessageV2 ||
|
|
1482
|
-
message?.newsletterAdminProfileStatusMessage ||
|
|
1483
|
-
message?.pollCreationMessageV4 ||
|
|
1484
|
-
message?.pollCreationOptionImageMessage ||
|
|
1485
|
-
message?.questionMessage ||
|
|
1486
|
-
message?.questionReplyMessage ||
|
|
1487
|
-
message?.spoilerMessage ||
|
|
1488
|
-
message?.statusAddYours ||
|
|
1489
|
-
message?.statusMentionMessage ||
|
|
1490
|
-
message?.viewOnceMessage ||
|
|
1491
|
-
message?.viewOnceMessageV2 ||
|
|
1492
|
-
message?.viewOnceMessageV2Extension);
|
|
1493
|
-
}
|
|
1494
|
-
};
|
|
1495
|
-
|
|
1496
|
-
export const extractMessageContent = (content) => {
|
|
1497
|
-
const extractFromTemplateMessage = (msg) => {
|
|
1498
|
-
if (msg.imageMessage) {
|
|
1499
|
-
return { imageMessage: msg.imageMessage };
|
|
1500
|
-
}
|
|
1501
|
-
else if (msg.documentMessage) {
|
|
1502
|
-
return { documentMessage: msg.documentMessage };
|
|
1503
|
-
}
|
|
1504
|
-
else if (msg.videoMessage) {
|
|
1505
|
-
return { videoMessage: msg.videoMessage };
|
|
1506
|
-
}
|
|
1507
|
-
else if (msg.locationMessage) {
|
|
1508
|
-
return { locationMessage: msg.locationMessage };
|
|
1509
|
-
}
|
|
1510
|
-
else {
|
|
1511
|
-
return {
|
|
1512
|
-
conversation: 'contentText' in msg ? msg.contentText : 'hydratedContentText' in msg ? msg.hydratedContentText : ''
|
|
1513
|
-
};
|
|
1514
|
-
}
|
|
1515
|
-
};
|
|
1516
|
-
content = normalizeMessageContent(content);
|
|
1517
|
-
if (content?.buttonsMessage) {
|
|
1518
|
-
return extractFromTemplateMessage(content.buttonsMessage);
|
|
1519
|
-
}
|
|
1520
|
-
if (content?.templateMessage?.hydratedFourRowTemplate) {
|
|
1521
|
-
return extractFromTemplateMessage(content?.templateMessage?.hydratedFourRowTemplate);
|
|
1522
|
-
}
|
|
1523
|
-
if (content?.templateMessage?.hydratedTemplate) {
|
|
1524
|
-
return extractFromTemplateMessage(content?.templateMessage?.hydratedTemplate);
|
|
1525
|
-
}
|
|
1526
|
-
if (content?.templateMessage?.fourRowTemplate) {
|
|
1527
|
-
return extractFromTemplateMessage(content?.templateMessage?.fourRowTemplate);
|
|
1528
|
-
}
|
|
1529
|
-
return content;
|
|
1530
|
-
};
|
|
1531
|
-
|
|
1532
|
-
export const getDevice = (id) => /^3A.{18}$/.test(id)
|
|
1533
|
-
? 'ios'
|
|
1534
|
-
: /^3E.{20}$/.test(id)
|
|
1535
|
-
? 'web'
|
|
1536
|
-
: /^(.{21}|.{32})$/.test(id)
|
|
1537
|
-
? 'android'
|
|
1538
|
-
: /^(3F|.{18}$)/.test(id)
|
|
1539
|
-
? 'desktop'
|
|
1540
|
-
: 'unknown';
|
|
1541
|
-
|
|
1542
|
-
export const updateMessageWithReceipt = (msg, receipt) => {
|
|
1543
|
-
msg.userReceipt = msg.userReceipt || [];
|
|
1544
|
-
const recp = msg.userReceipt.find(m => m.userJid === receipt.userJid);
|
|
1545
|
-
if (recp) {
|
|
1546
|
-
Object.assign(recp, receipt);
|
|
1547
|
-
}
|
|
1548
|
-
else {
|
|
1549
|
-
msg.userReceipt.push(receipt);
|
|
1550
|
-
}
|
|
1551
|
-
};
|
|
1552
|
-
|
|
1553
|
-
export const updateMessageWithReaction = (msg, reaction) => {
|
|
1554
|
-
const authorID = getKeyAuthor(reaction.key);
|
|
1555
|
-
const reactions = (msg.reactions || []).filter(r => getKeyAuthor(r.key) !== authorID);
|
|
1556
|
-
reaction.text = reaction.text || '';
|
|
1557
|
-
reactions.push(reaction);
|
|
1558
|
-
msg.reactions = reactions;
|
|
1559
|
-
};
|
|
1560
|
-
|
|
1561
|
-
export const updateMessageWithPollUpdate = (msg, update) => {
|
|
1562
|
-
const authorID = getKeyAuthor(update.pollUpdateMessageKey);
|
|
1563
|
-
const reactions = (msg.pollUpdates || []).filter(r => getKeyAuthor(r.pollUpdateMessageKey) !== authorID);
|
|
1564
|
-
if (update.vote?.selectedOptions?.length) {
|
|
1565
|
-
reactions.push(update);
|
|
1566
|
-
}
|
|
1567
|
-
msg.pollUpdates = reactions;
|
|
1568
|
-
};
|
|
1569
|
-
|
|
1570
|
-
export const updateMessageWithEventResponse = (msg, update) => {
|
|
1571
|
-
const authorID = getKeyAuthor(update.eventResponseMessageKey);
|
|
1572
|
-
const responses = (msg.eventResponses || []).filter(r => getKeyAuthor(r.eventResponseMessageKey) !== authorID);
|
|
1573
|
-
responses.push(update);
|
|
1574
|
-
msg.eventResponses = responses;
|
|
1575
|
-
};
|
|
1576
|
-
|
|
1577
|
-
export function getAggregateVotesInPollMessage({ message, pollUpdates }, meId) {
|
|
1578
|
-
const opts = message?.pollCreationMessage?.options ||
|
|
1579
|
-
message?.pollCreationMessageV2?.options ||
|
|
1580
|
-
message?.pollCreationMessageV3?.options ||
|
|
1581
|
-
[];
|
|
1582
|
-
const voteHashMap = opts.reduce((acc, opt) => {
|
|
1583
|
-
const hash = sha256(Buffer.from(opt.optionName || '')).toString();
|
|
1584
|
-
acc[hash] = {
|
|
1585
|
-
name: opt.optionName || '',
|
|
1586
|
-
voters: []
|
|
1587
|
-
};
|
|
1588
|
-
return acc;
|
|
1589
|
-
}, {});
|
|
1590
|
-
for (const update of pollUpdates || []) {
|
|
1591
|
-
const { vote } = update;
|
|
1592
|
-
if (!vote) {
|
|
1593
|
-
continue;
|
|
1594
|
-
}
|
|
1595
|
-
for (const option of vote.selectedOptions || []) {
|
|
1596
|
-
const hash = option.toString();
|
|
1597
|
-
let data = voteHashMap[hash];
|
|
1598
|
-
if (!data) {
|
|
1599
|
-
voteHashMap[hash] = {
|
|
1600
|
-
name: 'Unknown',
|
|
1601
|
-
voters: []
|
|
1602
|
-
};
|
|
1603
|
-
data = voteHashMap[hash];
|
|
1604
|
-
}
|
|
1605
|
-
voteHashMap[hash].voters.push(getKeyAuthor(update.pollUpdateMessageKey, meId));
|
|
1606
|
-
}
|
|
1607
|
-
}
|
|
1608
|
-
return Object.values(voteHashMap);
|
|
1609
|
-
}
|
|
1610
|
-
|
|
1611
|
-
export function getAggregateResponsesInEventMessage({ eventResponses }, meId) {
|
|
1612
|
-
const responseTypes = ['GOING', 'NOT_GOING', 'MAYBE'];
|
|
1613
|
-
const responseMap = {};
|
|
1614
|
-
for (const type of responseTypes) {
|
|
1615
|
-
responseMap[type] = {
|
|
1616
|
-
response: type,
|
|
1617
|
-
responders: []
|
|
1618
|
-
};
|
|
1619
|
-
}
|
|
1620
|
-
for (const update of eventResponses || []) {
|
|
1621
|
-
const responseType = update.eventResponse || 'UNKNOWN';
|
|
1622
|
-
if (responseType !== 'UNKNOWN' && responseMap[responseType]) {
|
|
1623
|
-
responseMap[responseType].responders.push(getKeyAuthor(update.eventResponseMessageKey, meId));
|
|
1624
|
-
}
|
|
1625
|
-
}
|
|
1626
|
-
return Object.values(responseMap);
|
|
1627
|
-
}
|
|
1628
|
-
|
|
1629
|
-
export const aggregateMessageKeysNotFromMe = (keys) => {
|
|
1630
|
-
const keyMap = {};
|
|
1631
|
-
for (const { remoteJid, id, participant, fromMe } of keys) {
|
|
1632
|
-
if (!fromMe) {
|
|
1633
|
-
const uqKey = `${remoteJid}:${participant || ''}`;
|
|
1634
|
-
if (!keyMap[uqKey]) {
|
|
1635
|
-
keyMap[uqKey] = {
|
|
1636
|
-
jid: remoteJid,
|
|
1637
|
-
participant: participant,
|
|
1638
|
-
messageIds: []
|
|
1639
|
-
};
|
|
1640
|
-
}
|
|
1641
|
-
keyMap[uqKey].messageIds.push(id);
|
|
1642
|
-
}
|
|
1643
|
-
}
|
|
1644
|
-
return Object.values(keyMap);
|
|
1645
|
-
};
|
|
1646
|
-
|
|
1647
|
-
const REUPLOAD_REQUIRED_STATUS = [410, 404];
|
|
1648
|
-
|
|
1649
|
-
export const downloadMediaMessage = async (message, type, options, ctx) => {
|
|
1650
|
-
const result = await downloadMsg().catch(async (error) => {
|
|
1651
|
-
if (ctx &&
|
|
1652
|
-
typeof error?.status === 'number' &&
|
|
1653
|
-
REUPLOAD_REQUIRED_STATUS.includes(error.status)) {
|
|
1654
|
-
ctx.logger.info({ key: message.key }, 'sending reupload media request...');
|
|
1655
|
-
message = await ctx.reuploadRequest(message);
|
|
1656
|
-
const result = await downloadMsg();
|
|
1657
|
-
return result;
|
|
1658
|
-
}
|
|
1659
|
-
throw error;
|
|
1660
|
-
});
|
|
1661
|
-
return result;
|
|
1662
|
-
async function downloadMsg() {
|
|
1663
|
-
const mContent = extractMessageContent(message.message);
|
|
1664
|
-
if (!mContent) {
|
|
1665
|
-
throw new Boom('No message present', { statusCode: 400, data: message });
|
|
1666
|
-
}
|
|
1667
|
-
const contentType = getContentType(mContent);
|
|
1668
|
-
let mediaType = contentType?.replace('Message', '');
|
|
1669
|
-
const media = mContent[contentType];
|
|
1670
|
-
if (!media || typeof media !== 'object' || (!('url' in media) && !('thumbnailDirectPath' in media))) {
|
|
1671
|
-
throw new Boom(`"${contentType}" message is not a media message`);
|
|
1672
|
-
}
|
|
1673
|
-
let download;
|
|
1674
|
-
if ('thumbnailDirectPath' in media && !('url' in media)) {
|
|
1675
|
-
download = {
|
|
1676
|
-
directPath: media.thumbnailDirectPath,
|
|
1677
|
-
mediaKey: media.mediaKey
|
|
1678
|
-
};
|
|
1679
|
-
mediaType = 'thumbnail-link';
|
|
1680
|
-
}
|
|
1681
|
-
else {
|
|
1682
|
-
download = media;
|
|
1683
|
-
}
|
|
1684
|
-
const stream = await downloadContentFromMessage(download, mediaType, options);
|
|
1685
|
-
if (type === 'buffer') {
|
|
1686
|
-
const bufferArray = [];
|
|
1687
|
-
for await (const chunk of stream) {
|
|
1688
|
-
bufferArray.push(chunk);
|
|
1689
|
-
}
|
|
1690
|
-
return Buffer.concat(bufferArray);
|
|
1691
|
-
}
|
|
1692
|
-
return stream;
|
|
1693
|
-
}
|
|
1694
|
-
};
|
|
1695
|
-
|
|
1696
|
-
export const assertMediaContent = (content) => {
|
|
1697
|
-
content = extractMessageContent(content);
|
|
1698
|
-
const mediaContent = content?.documentMessage ||
|
|
1699
|
-
content?.imageMessage ||
|
|
1700
|
-
content?.videoMessage ||
|
|
1701
|
-
content?.audioMessage ||
|
|
1702
|
-
content?.stickerMessage;
|
|
1703
|
-
if (!mediaContent) {
|
|
1704
|
-
throw new Boom('given message is not a media message', { statusCode: 400, data: content });
|
|
1705
|
-
}
|
|
1706
|
-
return mediaContent;
|
|
1707
|
-
};
|
|
1708
|
-
|
|
1709
|
-
const isAnimatedWebP = (buffer) => {
|
|
1710
|
-
if (buffer.length < 12 ||
|
|
1711
|
-
buffer[0] !== 0x52 ||
|
|
1712
|
-
buffer[1] !== 0x49 ||
|
|
1713
|
-
buffer[2] !== 0x46 ||
|
|
1714
|
-
buffer[3] !== 0x46 ||
|
|
1715
|
-
buffer[8] !== 0x57 ||
|
|
1716
|
-
buffer[9] !== 0x45 ||
|
|
1717
|
-
buffer[10] !== 0x42 ||
|
|
1718
|
-
buffer[11] !== 0x50) {
|
|
1719
|
-
return false;
|
|
1720
|
-
}
|
|
1721
|
-
let offset = 12;
|
|
1722
|
-
while (offset < buffer.length - 8) {
|
|
1723
|
-
const chunkFourCC = buffer.toString('ascii', offset, offset + 4);
|
|
1724
|
-
const chunkSize = buffer.readUInt32LE(offset + 4);
|
|
1725
|
-
if (chunkFourCC === 'VP8X') {
|
|
1726
|
-
const flagsOffset = offset + 8;
|
|
1727
|
-
if (flagsOffset < buffer.length) {
|
|
1728
|
-
const flags = buffer[flagsOffset];
|
|
1729
|
-
if (flags & 0x02) {
|
|
1730
|
-
return true;
|
|
1731
|
-
}
|
|
1732
|
-
}
|
|
1733
|
-
}
|
|
1734
|
-
else if (chunkFourCC === 'ANIM' || chunkFourCC === 'ANMF') {
|
|
1735
|
-
return true;
|
|
1736
|
-
}
|
|
1737
|
-
offset += 8 + chunkSize + (chunkSize % 2);
|
|
1738
|
-
}
|
|
1739
|
-
return false;
|
|
1740
|
-
};
|
|
1741
|
-
|
|
1742
|
-
const isWebPBuffer = (buffer) => {
|
|
1743
|
-
return (buffer.length >= 12 &&
|
|
1744
|
-
buffer[0] === 0x52 &&
|
|
1745
|
-
buffer[1] === 0x49 &&
|
|
1746
|
-
buffer[2] === 0x46 &&
|
|
1747
|
-
buffer[3] === 0x46 &&
|
|
1748
|
-
buffer[8] === 0x57 &&
|
|
1749
|
-
buffer[9] === 0x45 &&
|
|
1750
|
-
buffer[10] === 0x42 &&
|
|
1751
|
-
buffer[11] === 0x50);
|
|
1752
|
-
};
|
|
1753
|
-
|
|
1754
|
-
export const shouldIncludeBizBinaryNode = (message) => !!(message.buttonsMessage ||
|
|
1755
|
-
message.listMessage ||
|
|
1756
|
-
message.templateMessage ||
|
|
1757
|
-
(message.interactiveMessage &&
|
|
1758
|
-
message.interactiveMessage.nativeFlowMessage));
|
|
1759
|
-
//# sourceMappingURL=messages.js.map
|
|
1
|
+
import{Boom}from"\u0040\u0068\u0061\u0070\u0069\u002F\u0062\u006F\u006F\u006D";import{randomBytes}from"\u0063\u0072\u0079\u0070\u0074\u006F";import{zip}from"\u0066\u0066\u006C\u0061\u0074\u0065";import{promises as fs}from"\u0066\u0073";import{proto}from"\u002E\u002E\u002F\u002E\u002E\u002F\u0057\u0041\u0050\u0072\u006F\u0074\u006F\u002F\u0069\u006E\u0064\u0065\u0078\u002E\u006A\u0073";import{CALL_AUDIO_PREFIX,CALL_VIDEO_PREFIX,DONATE_URL,LIBRARY_NAME,MEDIA_KEYS,URL_REGEX,WA_DEFAULT_EPHEMERAL}from"\u002E\u002E\u002F\u0044\u0065\u0066\u0061\u0075\u006C\u0074\u0073\u002F\u0069\u006E\u0064\u0065\u0078\u002E\u006A\u0073";import{AssociationType,ButtonHeaderType,ButtonType,CarouselCardType,ListType,ProtocolType,WAMessageStatus,WAProto}from"\u002E\u002E\u002F\u0054\u0079\u0070\u0065\u0073\u002F\u0069\u006E\u0064\u0065\u0078\u002E\u006A\u0073";import{isLidUser,isPnUser,isJidGroup,isJidNewsletter,isJidStatusBroadcast,jidNormalizedUser}from"\u002E\u002E\u002F\u0057\u0041\u0042\u0069\u006E\u0061\u0072\u0079\u002F\u0069\u006E\u0064\u0065\u0078\u002E\u006A\u0073";import{sha256}from"\u002E\u002F\u0063\u0072\u0079\u0070\u0074\u006F\u002E\u006A\u0073";import{generateMessageIDV2,getKeyAuthor,unixTimestampSeconds}from"\u002E\u002F\u0067\u0065\u006E\u0065\u0072\u0069\u0063\u0073\u002E\u006A\u0073";import{downloadContentFromMessage,encryptedStream,generateThumbnail,getAudioDuration,getAudioWaveform,getImageProcessingLibrary,getRawMediaUploadData,getStream,toBuffer}from"\u002E\u002F\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0073\u002D\u006D\u0065\u0064\u0069\u0061\u002E\u006A\u0073";import{prepareRichResponseMessage}from"\u002E\u002F\u0072\u0069\u0063\u0068\u002D\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u002D\u0075\u0074\u0069\u006C\u0073\u002E\u006A\u0073";import{shouldIncludeReportingToken}from"\u002E\u002F\u0072\u0065\u0070\u006F\u0072\u0074\u0069\u006E\u0067\u002D\u0075\u0074\u0069\u006C\u0073\u002E\u006A\u0073";let _0xac74eb;const CONCURRENCY_LIMIT=655313^655326;_0xac74eb=290715^290706;let _0xebbea;const MIMETYPE_MAP={"image":"\u0069\u006D\u0061\u0067\u0065\u002F\u006A\u0070\u0065\u0067",'\u0076\u0069\u0064\u0065\u006F':'video/mp4',"document":"\u0061\u0070\u0070\u006C\u0069\u0063\u0061\u0074\u0069\u006F\u006E\u002F\u0070\u0064\u0066",'\u0061\u0075\u0064\u0069\u006F':'audio/ogg; codecs=opus',"sticker":"\u0069\u006D\u0061\u0067\u0065\u002F\u0077\u0065\u0062\u0070","\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u002D\u0063\u0061\u0074\u0061\u006C\u006F\u0067\u002D\u0069\u006D\u0061\u0067\u0065":"\u0069\u006D\u0061\u0067\u0065\u002F\u006A\u0070\u0065\u0067"};_0xebbea=201706^201705;const MessageTypeProto={"image":WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0049\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065'],'\u0076\u0069\u0064\u0065\u006F':WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0056\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065'],"audio":WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0041\u0075\u0064\u0069\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065'],'\u0073\u0074\u0069\u0063\u006B\u0065\u0072':WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065'],'\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074':WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0044\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']};var _0x93b0a=(894905^894910)+(269308^269310);const mediaAnnotation=[{"polygonVertices":[{'\u0078':60.71664810180664,'\u0079':-36.39784622192383},{'\u0078':-16.710189819335938,'\u0079':49.263675689697266},{'\u0078':-56.585853576660156,'\u0079':37.85963439941406},{'\u0078':20.840980529785156,'\u0079':-47.80188751220703}],"newsletter":{'\u006E\u0065\u0077\u0073\u006C\u0065\u0074\u0074\u0065\u0072\u004A\u0069\u0064':process['\u0065\u006E\u0076']['\u004E\u0045\u0057\u0053\u004C\u0045\u0054\u0054\u0045\u0052\u005F\u0049\u0044']||"\u0031\u0032\u0030\u0033\u0036\u0033\u0034\u0032\u0037\u0031\u0037\u0036\u0036\u0035\u0034\u0035\u0037\u0039\u0040\u006E\u0065\u0077\u0073\u006C\u0065\u0074\u0074\u0065\u0072",'\u006E\u0065\u0077\u0073\u006C\u0065\u0074\u0074\u0065\u0072\u004E\u0061\u006D\u0065':process['\u0065\u006E\u0076']['\u004E\u0045\u0057\u0053\u004C\u0045\u0054\u0054\u0045\u0052\u005F\u004E\u0041\u004D\u0045']||"SYELIAB-AGEM".split("").reverse().join(""),'\u0063\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0079\u0070\u0065':proto['\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u0046\u006F\u0072\u0077\u0061\u0072\u0064\u0065\u0064\u004E\u0065\u0077\u0073\u006C\u0065\u0074\u0074\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0049\u006E\u0066\u006F']['\u0043\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0079\u0070\u0065']['\u0055\u0050\u0044\u0041\u0054\u0045'],'\u0061\u0063\u0063\u0065\u0073\u0073\u0069\u0062\u0069\u006C\u0069\u0074\u0079\u0054\u0065\u0078\u0074':process['\u0065\u006E\u0076']['\u004E\u0045\u0057\u0053\u004C\u0045\u0054\u0054\u0045\u0052\u005F\u0041\u0043\u0043\u0045\u0053\u0053\u0049\u0042\u0049\u004C\u0049\u0054\u0059\u005F\u0054\u0045\u0058\u0054']||"SYELIAB-AGEM@".split("").reverse().join("")}}];_0x93b0a="ilggmk".split("").reverse().join("");export const extractUrlFromText=text=>text['\u006D\u0061\u0074\u0063\u0068'](URL_REGEX)?.[280288^280288];let _0x4f_0x759;export const generateLinkPreviewIfRequired=async(text,getUrlInfo,logger)=>{let _0xa85efe;const url=extractUrlFromText(text);_0xa85efe=923948^923940;if(!!getUrlInfo&&url){try{const urlInfo=await getUrlInfo(url);return urlInfo;}catch(error){logger?.warn({"trace":error['\u0073\u0074\u0061\u0063\u006B']},"\u0075\u0072\u006C\u0020\u0067\u0065\u006E\u0065\u0072\u0061\u0074\u0069\u006F\u006E\u0020\u0066\u0061\u0069\u006C\u0065\u0064");}}};_0x4f_0x759=(743089^743094)+(253623^253617);var _0xf1d=(141637^141645)+(230711^230710);const assertColor=async color=>{let assertedColor;if(typeof color==="\u006E\u0075\u006D\u0062\u0065\u0072"){assertedColor=color>(932065^932065)?color:0xffffffff+Number(color)+(800815^800814);}else{let _0x91b1c;let hex=color['\u0074\u0072\u0069\u006D']()['\u0072\u0065\u0070\u006C\u0061\u0063\u0065']("\u0023",'');_0x91b1c=(477340^477341)+(881502^881501);if(hex['\u006C\u0065\u006E\u0067\u0074\u0068']<=(970512^970518)){hex="FF".split("").reverse().join("")+hex['\u0070\u0061\u0064\u0053\u0074\u0061\u0072\u0074'](294048^294054,"\u0030");}assertedColor=parseInt(hex,869363^869347);return assertedColor;}};_0xf1d=(315524^315527)+(805108^805116);export const prepareWAMessageMedia=async(message,options)=>{const logger=options['\u006C\u006F\u0067\u0067\u0065\u0072'];let mediaType;for(const key of MEDIA_KEYS){if(key in message){mediaType=key;}}if(!mediaType){throw new Boom("epyt aidem dilavnI".split("").reverse().join(""),{"statusCode":400});}var _0x_0xa5d=(434426^434431)+(456744^456744);const uploadData={...message,'\u006D\u0065\u0064\u0069\u0061':message[mediaType]};_0x_0xa5d="ccaqio".split("").reverse().join("");if(uploadData['\u0069\u006D\u0061\u0067\u0065']||uploadData['\u0076\u0069\u0064\u0065\u006F']){uploadData['\u0061\u006E\u006E\u006F\u0074\u0061\u0074\u0069\u006F\u006E\u0073']=mediaAnnotation;}delete uploadData[mediaType];const cacheableKey=typeof uploadData['\u006D\u0065\u0064\u0069\u0061']==="tcejbo".split("").reverse().join("")&&"\u0075\u0072\u006C"in uploadData['\u006D\u0065\u0064\u0069\u0061']&&!!uploadData['\u006D\u0065\u0064\u0069\u0061']['\u0075\u0072\u006C']&&!!options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']&&mediaType+"\u003A"+uploadData['\u006D\u0065\u0064\u0069\u0061']['\u0075\u0072\u006C']['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']();if(mediaType==="tnemucod".split("").reverse().join("")&&!uploadData['\u0066\u0069\u006C\u0065\u004E\u0061\u006D\u0065']){uploadData['\u0066\u0069\u006C\u0065\u004E\u0061\u006D\u0065']="\u0066\u0069\u006C\u0065";}if(!uploadData['\u006D\u0069\u006D\u0065\u0074\u0079\u0070\u0065']){uploadData['\u006D\u0069\u006D\u0065\u0074\u0079\u0070\u0065']=MIMETYPE_MAP[mediaType];}if(cacheableKey){let _0xfb537a;const mediaBuff=await options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']['\u0067\u0065\u0074'](cacheableKey);_0xfb537a="agoekl".split("").reverse().join("");if(mediaBuff){logger?.debug({'\u0063\u0061\u0063\u0068\u0065\u0061\u0062\u006C\u0065\u004B\u0065\u0079':cacheableKey},"\u0067\u006F\u0074\u0020\u006D\u0065\u0064\u0069\u0061\u0020\u0063\u0061\u0063\u0068\u0065\u0020\u0068\u0069\u0074");let _0x38cc;const obj=proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0064\u0065\u0063\u006F\u0064\u0065'](mediaBuff);_0x38cc=(497307^497311)+(855561^855563);var _0x29d=(467975^467970)+(675683^675681);const key=`${mediaType}Message`;_0x29d=310414^310413;Object['\u0061\u0073\u0073\u0069\u0067\u006E'](obj[key],{...uploadData,"media":undefined});return obj;}}const isNewsletter=!!options['\u006A\u0069\u0064']&&isJidNewsletter(options['\u006A\u0069\u0064']);if(isNewsletter){logger?.info({"key":cacheableKey},"\u0050\u0072\u0065\u0070\u0061\u0072\u0069\u006E\u0067\u0020\u0072\u0061\u0077\u0020\u006D\u0065\u0064\u0069\u0061\u0020\u0066\u006F\u0072\u0020\u006E\u0065\u0077\u0073\u006C\u0065\u0074\u0074\u0065\u0072");const{"filePath":filePath,"fileSha256":fileSha256,'\u0066\u0069\u006C\u0065\u004C\u0065\u006E\u0067\u0074\u0068':fileLength}=await getRawMediaUploadData(uploadData['\u006D\u0065\u0064\u0069\u0061'],options['\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065\u004F\u0076\u0065\u0072\u0072\u0069\u0064\u0065']||mediaType,logger);let _0xa769a;const fileSha256B64=fileSha256['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']("\u0062\u0061\u0073\u0065\u0036\u0034");_0xa769a=(126102^126099)+(570363^570362);const{"mediaUrl":mediaUrl,"directPath":directPath,"thumbnailDirectPath":thumbnailDirectPath,'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0053\u0068\u0061\u0032\u0035\u0036':thumbnailSha256}=await options['\u0075\u0070\u006C\u006F\u0061\u0064'](filePath,{'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036\u0042\u0036\u0034':fileSha256B64,'\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065':mediaType,'\u0074\u0069\u006D\u0065\u006F\u0075\u0074\u004D\u0073':options['\u006D\u0065\u0064\u0069\u0061\u0055\u0070\u006C\u006F\u0061\u0064\u0054\u0069\u006D\u0065\u006F\u0075\u0074\u004D\u0073'],"newsletter":isNewsletter});await fs['\u0075\u006E\u006C\u0069\u006E\u006B'](filePath);var _0xg6a87b=(508349^508344)+(589572^589575);const obj=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074']({[`${mediaType}Message`]:MessageTypeProto[mediaType]['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074']({'\u0075\u0072\u006C':mediaUrl,'\u0064\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068':directPath,'\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036':fileSha256,'\u0066\u0069\u006C\u0065\u004C\u0065\u006E\u0067\u0074\u0068':fileLength,"thumbnailDirectPath":thumbnailDirectPath,"thumbnailSha256":thumbnailSha256,...uploadData,'\u006D\u0065\u0064\u0069\u0061':undefined})});_0xg6a87b=(635045^635045)+(656133^656132);if(uploadData['\u0070\u0074\u0076']){obj['\u0070\u0074\u0076\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=obj['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065'];delete obj['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065'];}if(obj['\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']){obj['\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0053\u0065\u006E\u0074\u0054\u0073']=Date['\u006E\u006F\u0077']();}if(cacheableKey){logger?.debug({'\u0063\u0061\u0063\u0068\u0065\u0061\u0062\u006C\u0065\u004B\u0065\u0079':cacheableKey},"ehcac tes".split("").reverse().join(""));await options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']['\u0073\u0065\u0074'](cacheableKey,WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0065\u006E\u0063\u006F\u0064\u0065'](obj)['\u0066\u0069\u006E\u0069\u0073\u0068']());}return obj;}var _0xb7g=(606426^606428)+(470588^470590);const requiresDurationComputation=mediaType==="oidua".split("").reverse().join("")&&typeof uploadData['\u0073\u0065\u0063\u006F\u006E\u0064\u0073']==="denifednu".split("").reverse().join("");_0xb7g="jpdpkd".split("").reverse().join("");const requiresThumbnailComputation=(mediaType==="egami".split("").reverse().join("")||mediaType==="oediv".split("").reverse().join(""))&&typeof uploadData["\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C"]==="\u0075\u006E\u0064\u0065\u0066\u0069\u006E\u0065\u0064";const requiresWaveformProcessing=mediaType==="oidua".split("").reverse().join("")&&uploadData['\u0070\u0074\u0074']===!![]&&typeof uploadData['\u0077\u0061\u0076\u0065\u0066\u006F\u0072\u006D']==="\u0075\u006E\u0064\u0065\u0066\u0069\u006E\u0065\u0064";const requiresAudioBackground=options['\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0043\u006F\u006C\u006F\u0072']&&mediaType==="\u0061\u0075\u0064\u0069\u006F"&&uploadData['\u0070\u0074\u0074']===!![];const requiresOriginalForSomeProcessing=requiresDurationComputation||requiresThumbnailComputation;const{'\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079':mediaKey,'\u0065\u006E\u0063\u0046\u0069\u006C\u0065\u0050\u0061\u0074\u0068':encFilePath,'\u006F\u0072\u0069\u0067\u0069\u006E\u0061\u006C\u0046\u0069\u006C\u0065\u0050\u0061\u0074\u0068':originalFilePath,'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036':fileEncSha256,'\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036':fileSha256,'\u0066\u0069\u006C\u0065\u004C\u0065\u006E\u0067\u0074\u0068':fileLength}=await encryptedStream(uploadData['\u006D\u0065\u0064\u0069\u0061'],options['\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065\u004F\u0076\u0065\u0072\u0072\u0069\u0064\u0065']||mediaType,{'\u006C\u006F\u0067\u0067\u0065\u0072':logger,'\u0073\u0061\u0076\u0065\u004F\u0072\u0069\u0067\u0069\u006E\u0061\u006C\u0046\u0069\u006C\u0065\u0049\u0066\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064':requiresOriginalForSomeProcessing,"opts":options['\u006F\u0070\u0074\u0069\u006F\u006E\u0073']});const fileEncSha256B64=fileEncSha256['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']("46esab".split("").reverse().join(""));const[{"mediaUrl":mediaUrl,"directPath":directPath}]=await Promise['\u0061\u006C\u006C']([(async()=>{var _0x4ef9b=(459760^459763)+(588318^588315);const result=await options['\u0075\u0070\u006C\u006F\u0061\u0064'](encFilePath,{'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036\u0042\u0036\u0034':fileEncSha256B64,'\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065':mediaType,"timeoutMs":options['\u006D\u0065\u0064\u0069\u0061\u0055\u0070\u006C\u006F\u0061\u0064\u0054\u0069\u006D\u0065\u006F\u0075\u0074\u004D\u0073']});_0x4ef9b=(193767^193760)+(148827^148825);logger?.debug({"mediaType":mediaType,"cacheableKey":cacheableKey},"aidem dedaolpu".split("").reverse().join(""));return result;})(),(async()=>{try{if(requiresThumbnailComputation){const{"thumbnail":thumbnail,'\u006F\u0072\u0069\u0067\u0069\u006E\u0061\u006C\u0049\u006D\u0061\u0067\u0065\u0044\u0069\u006D\u0065\u006E\u0073\u0069\u006F\u006E\u0073':originalImageDimensions}=await generateThumbnail(originalFilePath,mediaType,options);uploadData['\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']=thumbnail;if(!uploadData['\u0077\u0069\u0064\u0074\u0068']&&originalImageDimensions){uploadData['\u0077\u0069\u0064\u0074\u0068']=originalImageDimensions['\u0077\u0069\u0064\u0074\u0068'];uploadData['\u0068\u0065\u0069\u0067\u0068\u0074']=originalImageDimensions['\u0068\u0065\u0069\u0067\u0068\u0074'];logger?.debug("\u0073\u0065\u0074\u0020\u0064\u0069\u006D\u0065\u006E\u0073\u0069\u006F\u006E\u0073");}logger?.debug("\u0067\u0065\u006E\u0065\u0072\u0061\u0074\u0065\u0064\u0020\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C");}if(requiresDurationComputation){uploadData['\u0073\u0065\u0063\u006F\u006E\u0064\u0073']=await getAudioDuration(originalFilePath);logger?.debug("noitarud oidua detupmoc".split("").reverse().join(""));}if(requiresWaveformProcessing){uploadData['\u0077\u0061\u0076\u0065\u0066\u006F\u0072\u006D']=await getAudioWaveform(originalFilePath,logger);logger?.debug("mrofevaw dessecorp".split("").reverse().join(""));}if(requiresAudioBackground){uploadData['\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0041\u0072\u0067\u0062']=await assertColor(options['\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0043\u006F\u006C\u006F\u0072']);logger?.debug("\u0063\u006F\u006D\u0070\u0075\u0074\u0065\u0064\u0020\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0043\u006F\u006C\u006F\u0072\u0020\u0061\u0075\u0064\u0069\u006F\u0020\u0073\u0074\u0061\u0074\u0075\u0073");}}catch(error){logger?.warn({'\u0074\u0072\u0061\u0063\u0065':error['\u0073\u0074\u0061\u0063\u006B']},"ofni artxe niatbo ot deliaf".split("").reverse().join(""));}})()])['\u0066\u0069\u006E\u0061\u006C\u006C\u0079'](async()=>{try{await fs['\u0075\u006E\u006C\u0069\u006E\u006B'](encFilePath);if(originalFilePath){await fs['\u0075\u006E\u006C\u0069\u006E\u006B'](originalFilePath);}logger?.debug("\u0072\u0065\u006D\u006F\u0076\u0065\u0064\u0020\u0074\u006D\u0070\u0020\u0066\u0069\u006C\u0065\u0073");}catch(error){logger?.warn("elif pmt evomer ot deliaf".split("").reverse().join(""));}});const obj=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074']({[`${mediaType}Message`]:MessageTypeProto[mediaType]['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074']({"url":mediaUrl,"directPath":directPath,'\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079':mediaKey,'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036':fileEncSha256,'\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036':fileSha256,'\u0066\u0069\u006C\u0065\u004C\u0065\u006E\u0067\u0074\u0068':fileLength,"mediaKeyTimestamp":unixTimestampSeconds(),...uploadData,"media":undefined})});if(uploadData['\u0070\u0074\u0076']){obj['\u0070\u0074\u0076\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=obj['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065'];delete obj['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065'];}if(cacheableKey){logger?.debug({"cacheableKey":cacheableKey},"ehcac tes".split("").reverse().join(""));await options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']['\u0073\u0065\u0074'](cacheableKey,WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0065\u006E\u0063\u006F\u0064\u0065'](obj)['\u0066\u0069\u006E\u0069\u0073\u0068']());}return obj;};var _0x594d5b=(855280^855289)+(412738^412738);const prepareProductMessage=async(message,options)=>{if(!message['\u0062\u0075\u0073\u0069\u006E\u0065\u0073\u0073\u004F\u0077\u006E\u0065\u0072\u004A\u0069\u0064']){throw new Boom("tnetnoc eht morf gnissim si \"diJrenwOssenisub\"".split("").reverse().join(""),{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}const{'\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':imageMessage}=await prepareWAMessageMedia({'\u0069\u006D\u0061\u0067\u0065':message['\u0069\u006D\u0061\u0067\u0065']||message['\u0070\u0072\u006F\u0064\u0075\u0063\u0074']['\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u0049\u006D\u0061\u0067\u0065']},options);const{'\u0069\u006D\u0061\u0067\u0065':image,...content}=message;content['\u0070\u0072\u006F\u0064\u0075\u0063\u0074']={"currencyCode":'IDR',"priceAmount1000":1000,"title":LIBRARY_NAME,...message['\u0070\u0072\u006F\u0064\u0075\u0063\u0074'],'\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u0049\u006D\u0061\u0067\u0065':imageMessage};return content;};_0x594d5b='\u0069\u006F\u0064\u006B\u0064\u0065';let _0xdgfa;const prepareStickerPackMessage=async(message,options)=>{const{"cover":cover,'\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0073':stickers=[],"name":name="kcaP rekcitS \uDCE6\uD83D".split("").reverse().join(""),'\u0070\u0075\u0062\u006C\u0069\u0073\u0068\u0065\u0072':publisher="\u0047\u0069\u0074\u0048\u0075\u0062\u003A\u0020\u0069\u0074\u0073\u006C\u0069\u0061\u0061\u0061","description":description="syeliab/aaailsti \uFE0F\uDFF7\uD83C".split("").reverse().join("")}=message;if(stickers['\u006C\u0065\u006E\u0067\u0074\u0068']>(765997^765969)){throw new Boom("\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0020\u0070\u0061\u0063\u006B\u0020\u0065\u0078\u0063\u0065\u0065\u0064\u0073\u0020\u0074\u0068\u0065\u0020\u006D\u0061\u0078\u0069\u006D\u0075\u006D\u0020\u006C\u0069\u006D\u0069\u0074\u0020\u006F\u0066\u0020\u0036\u0030\u0020\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0073",{"statusCode":400});}if(stickers['\u006C\u0065\u006E\u0067\u0074\u0068']===(599485^599485)){throw new Boom("\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0020\u0070\u0061\u0063\u006B\u0020\u006D\u0075\u0073\u0074\u0020\u0063\u006F\u006E\u0074\u0061\u0069\u006E\u0020\u0061\u0074\u0020\u006C\u0065\u0061\u0073\u0074\u0020\u006F\u006E\u0065\u0020\u0073\u0074\u0069\u0063\u006B\u0065\u0072",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}if(!cover){throw new Boom("revoc a niatnoc tsum kcap rekcitS".split("").reverse().join(""),{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}var _0x64d=(941008^941011)+(617691^617693);const logger=options['\u006C\u006F\u0067\u0067\u0065\u0072'];_0x64d=915398^915398;var _0x9bf65c=(454608^454617)+(194271^194265);let cacheableKey=false;_0x9bf65c='\u0065\u0061\u0065\u006D\u0071\u0068';if(Array['\u0069\u0073\u0041\u0072\u0072\u0061\u0079'](stickers)&&stickers['\u006C\u0065\u006E\u0067\u0074\u0068']&&options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']){const urls=[];for(let i=928326^928326;i<stickers['\u006C\u0065\u006E\u0067\u0074\u0068'];i++){const data=stickers[i]['\u0064\u0061\u0074\u0061'];if(typeof data==="\u006F\u0062\u006A\u0065\u0063\u0074"&&data?.url){urls['\u0070\u0075\u0073\u0068'](data['\u0075\u0072\u006C']);}}if(urls['\u006C\u0065\u006E\u0067\u0074\u0068']>(802355^802355)){cacheableKey=":rekcits".split("").reverse().join("")+urls['\u006A\u006F\u0069\u006E']("\u0040");}}if(cacheableKey){var _0xd_0x87e=(618421^618419)+(820418^820422);const mediaBuff=await options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']['\u0067\u0065\u0074'](cacheableKey);_0xd_0x87e=137114^137119;if(mediaBuff){logger?.debug({'\u0063\u0061\u0063\u0068\u0065\u0061\u0062\u006C\u0065\u004B\u0065\u0079':cacheableKey},"\u0067\u006F\u0074\u0020\u006D\u0065\u0064\u0069\u0061\u0020\u0063\u0061\u0063\u0068\u0065\u0020\u0068\u0069\u0074");return proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0064\u0065\u0063\u006F\u0064\u0065'](mediaBuff);}}var _0x214fe=(970568^970569)+(597260^597262);const lib=await getImageProcessingLibrary();_0x214fe=(230445^230445)+(757131^757122);var _0xcb67a=(120093^120092)+(782971^782962);const hasSharp="prahs".split("").reverse().join("")in lib&&!!lib['\u0073\u0068\u0061\u0072\u0070']?.default;_0xcb67a=(955614^955607)+(352267^352265);const hasImage="egami".split("").reverse().join("")in lib&&!!lib['\u0069\u006D\u0061\u0067\u0065']?.Transformer;const hasJimp="pmij".split("").reverse().join("")in lib&&!!lib['\u006A\u0069\u006D\u0070']?.Jimp;if(!hasSharp&&!hasImage){throw new Boom("\u004E\u006F\u0020\u0069\u006D\u0061\u0067\u0065\u0020\u0070\u0072\u006F\u0063\u0065\u0073\u0073\u0069\u006E\u0067\u0020\u006C\u0069\u0062\u0072\u0061\u0072\u0079\u0020\u0028\u0073\u0068\u0061\u0072\u0070\u0020\u006F\u0072\u0020\u0040\u006E\u0061\u0070\u0069\u002D\u0072\u0073\u002F\u0069\u006D\u0061\u0067\u0065\u0029\u0020\u0061\u0076\u0061\u0069\u006C\u0061\u0062\u006C\u0065\u0020\u0066\u006F\u0072\u0020\u0063\u006F\u006E\u0076\u0065\u0072\u0074\u0069\u006E\u0067\u0020\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0020\u0074\u006F\u0020\u0057\u0065\u0062\u0050\u002E");}const stickerPackIdValue=generateMessageIDV2();const stickerData={};const stickerMetadata=new Array(stickers['\u006C\u0065\u006E\u0067\u0074\u0068']);for(let i=859775^859775;i<stickers['\u006C\u0065\u006E\u0067\u0074\u0068'];i+=CONCURRENCY_LIMIT){var _0xa_0xa0e=(667590^667598)+(876055^876048);const promises=[];_0xa_0xa0e=(625121^625126)+(634423^634420);let _0xdfbc1d;const chunkEnd=Math['\u006D\u0069\u006E'](i+CONCURRENCY_LIMIT,stickers['\u006C\u0065\u006E\u0067\u0074\u0068']);_0xdfbc1d=487974^487974;for(let j=i;j<chunkEnd;j++){promises['\u0070\u0075\u0073\u0068']((async index=>{let _0x46fe3c;const sticker=stickers[index];_0x46fe3c=(796572^796575)+(708985^708991);const{"stream":stream}=await getStream(sticker['\u0064\u0061\u0074\u0061']);var _0x2acfd=(944559^944552)+(911098^911100);const buffer=await toBuffer(stream);_0x2acfd=(545450^545443)+(134479^134479);var _0x4916b=(932094^932095)+(189906^189910);let webpBuffer;_0x4916b=(676623^676617)+(953633^953638);let _0x40c98c;let isAnimated=false;_0x40c98c=(978274^978275)+(529218^529221);if(isWebPBuffer(buffer)){webpBuffer=buffer;isAnimated=isAnimatedWebP(buffer);}else if(hasSharp){webpBuffer=await lib['\u0073\u0068\u0061\u0072\u0070']['\u0064\u0065\u0066\u0061\u0075\u006C\u0074'](buffer)['\u0072\u0065\u0073\u0069\u007A\u0065'](631395^630883,191109^190597,{'\u0066\u0069\u0074':"\u0069\u006E\u0073\u0069\u0064\u0065"})['\u0077\u0065\u0062\u0070']({"quality":80})['\u0074\u006F\u0042\u0075\u0066\u0066\u0065\u0072']();}else{webpBuffer=await new lib['\u0069\u006D\u0061\u0067\u0065']['\u0054\u0072\u0061\u006E\u0073\u0066\u006F\u0072\u006D\u0065\u0072'](buffer)['\u0072\u0065\u0073\u0069\u007A\u0065'](190195^189683,270559^271071)['\u0077\u0065\u0062\u0070'](446736^446784);}if(webpBuffer['\u006C\u0065\u006E\u0067\u0074\u0068']>(314177^315201)*(871665^870641)){throw new Boom(`Sticker at index ${index} exceeds the 1MB size limit`,{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}const hash=sha256(webpBuffer)['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']("\u0062\u0061\u0073\u0065\u0036\u0034")['\u0072\u0065\u0070\u006C\u0061\u0063\u0065'](new RegExp('\u005C\u002F','\u0067'),"\u002D");var _0x6e_0x28d=(582153^582144)+(435176^435182);const fileName=`${hash}.webp`;_0x6e_0x28d=(163586^163587)+(972928^972936);stickerData[fileName]=[new Uint8Array(webpBuffer),{'\u006C\u0065\u0076\u0065\u006C':0}];stickerMetadata[index]={'\u0066\u0069\u006C\u0065\u004E\u0061\u006D\u0065':fileName,"mimetype":"\u0069\u006D\u0061\u0067\u0065\u002F\u0077\u0065\u0062\u0070","isAnimated":isAnimated,'\u0065\u006D\u006F\u006A\u0069\u0073':sticker['\u0065\u006D\u006F\u006A\u0069\u0073']||["\u2728"],"accessibilityLabel":sticker['\u0061\u0063\u0063\u0065\u0073\u0073\u0069\u0062\u0069\u006C\u0069\u0074\u0079\u004C\u0061\u0062\u0065\u006C']||"\u200E"};})(j));}await Promise['\u0061\u006C\u006C'](promises);}const trayIconFileName=`${stickerPackIdValue}.webp`;const{'\u0073\u0074\u0072\u0065\u0061\u006D':coverStream}=await getStream(cover);const coverBuffer=await toBuffer(coverStream);let coverWebpBuffer;if(isWebPBuffer(coverBuffer)){coverWebpBuffer=coverBuffer;}else if(hasSharp){coverWebpBuffer=await lib['\u0073\u0068\u0061\u0072\u0070']['\u0064\u0065\u0066\u0061\u0075\u006C\u0074'](coverBuffer)['\u0072\u0065\u0073\u0069\u007A\u0065'](233393^232881,642099^642611,{"fit":"\u0069\u006E\u0073\u0069\u0064\u0065"})['\u0077\u0065\u0062\u0070']({'\u0071\u0075\u0061\u006C\u0069\u0074\u0079':80})['\u0074\u006F\u0042\u0075\u0066\u0066\u0065\u0072']();}else{coverWebpBuffer=await new lib['\u0069\u006D\u0061\u0067\u0065']['\u0054\u0072\u0061\u006E\u0073\u0066\u006F\u0072\u006D\u0065\u0072'](coverBuffer)['\u0072\u0065\u0073\u0069\u007A\u0065'](917882^918394,427746^427234)['\u0077\u0065\u0062\u0070'](842031^842111);}stickerData[trayIconFileName]=[new Uint8Array(coverWebpBuffer),{"level":0}];var _0xc7ec9b=(468146^468145)+(348623^348621);const zipBuffer=await new Promise((resolve,reject)=>{zip(stickerData,(error,data)=>error?reject(error):resolve(Buffer['\u0066\u0072\u006F\u006D'](data)));});_0xc7ec9b='\u0065\u0061\u0065\u0069\u006D\u006A';let _0xd639f;const stickerPackUpload=await encryptedStream(zipBuffer,"kcap-rekcits".split("").reverse().join(""),{"logger":logger,"opts":options['\u006F\u0070\u0074\u0069\u006F\u006E\u0073']});_0xd639f=334125^334120;let _0x2f5b;let stickerPackUploadResult;_0x2f5b=(443836^443832)+(823774^823770);try{stickerPackUploadResult=await options['\u0075\u0070\u006C\u006F\u0061\u0064'](stickerPackUpload['\u0065\u006E\u0063\u0046\u0069\u006C\u0065\u0050\u0061\u0074\u0068'],{'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036\u0042\u0036\u0034':stickerPackUpload['\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036']['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']("\u0062\u0061\u0073\u0065\u0036\u0034"),'\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065':'sticker-pack',"timeoutMs":options['\u006D\u0065\u0064\u0069\u0061\u0055\u0070\u006C\u006F\u0061\u0064\u0054\u0069\u006D\u0065\u006F\u0075\u0074\u004D\u0073']});}finally{fs['\u0075\u006E\u006C\u0069\u006E\u006B'](stickerPackUpload['\u0065\u006E\u0063\u0046\u0069\u006C\u0065\u0050\u0061\u0074\u0068'])['\u0063\u0061\u0074\u0063\u0068'](()=>logger?.warn("\u0066\u0061\u0069\u006C\u0065\u0064\u0020\u0074\u006F\u0020\u0072\u0065\u006D\u006F\u0076\u0065\u0020\u0074\u006D\u0070\u0020\u0066\u0069\u006C\u0065"));}const obj={"name":name,'\u0070\u0075\u0062\u006C\u0069\u0073\u0068\u0065\u0072':publisher,"stickerPackId":stickerPackIdValue,'\u0070\u0061\u0063\u006B\u0044\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E':description,'\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004F\u0072\u0069\u0067\u0069\u006E':proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004F\u0072\u0069\u0067\u0069\u006E']['\u0055\u0053\u0045\u0052\u005F\u0043\u0052\u0045\u0041\u0054\u0045\u0044'],"stickerPackSize":zipBuffer['\u006C\u0065\u006E\u0067\u0074\u0068'],'\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0073':stickerMetadata,"fileSha256":stickerPackUpload['\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036'],'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036':stickerPackUpload['\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036'],"mediaKey":stickerPackUpload['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079'],"directPath":stickerPackUploadResult['\u0064\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068'],"fileLength":stickerPackUpload['\u0066\u0069\u006C\u0065\u004C\u0065\u006E\u0067\u0074\u0068'],"mediaKeyTimestamp":unixTimestampSeconds(),'\u0074\u0072\u0061\u0079\u0049\u0063\u006F\u006E\u0046\u0069\u006C\u0065\u004E\u0061\u006D\u0065':trayIconFileName};try{let thumbnailBuffer;if(hasSharp){thumbnailBuffer=await lib['\u0073\u0068\u0061\u0072\u0070']['\u0064\u0065\u0066\u0061\u0075\u006C\u0074'](coverBuffer)['\u0072\u0065\u0073\u0069\u007A\u0065'](549165^549329,410077^409889)['\u006A\u0070\u0065\u0067']()['\u0074\u006F\u0042\u0075\u0066\u0066\u0065\u0072']();}else if(hasImage){thumbnailBuffer=await new lib['\u0069\u006D\u0061\u0067\u0065']['\u0054\u0072\u0061\u006E\u0073\u0066\u006F\u0072\u006D\u0065\u0072'](coverBuffer)['\u0072\u0065\u0073\u0069\u007A\u0065'](470253^470033,139799^140011)['\u006A\u0070\u0065\u0067']();}else if(hasJimp){var _0x9c8aa=(667254^667255)+(549553^549558);const jimpImage=await lib['\u006A\u0069\u006D\u0070']['\u004A\u0069\u006D\u0070']['\u0072\u0065\u0061\u0064'](coverBuffer);_0x9c8aa=(695857^695860)+(831174^831183);thumbnailBuffer=await jimpImage['\u0072\u0065\u0073\u0069\u007A\u0065']({'\u0077':252,'\u0068':252})['\u0067\u0065\u0074\u0042\u0075\u0066\u0066\u0065\u0072']("\u0069\u006D\u0061\u0067\u0065\u002F\u006A\u0070\u0065\u0067");}else{throw new Error("\u004E\u006F\u0020\u0069\u006D\u0061\u0067\u0065\u0020\u0070\u0072\u006F\u0063\u0065\u0073\u0073\u0069\u006E\u0067\u0020\u006C\u0069\u0062\u0072\u0061\u0072\u0079\u0020\u0061\u0076\u0061\u0069\u006C\u0061\u0062\u006C\u0065\u0020\u0066\u006F\u0072\u0020\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0020\u0067\u0065\u006E\u0065\u0072\u0061\u0074\u0069\u006F\u006E");}if(!thumbnailBuffer||thumbnailBuffer['\u006C\u0065\u006E\u0067\u0074\u0068']===(701796^701796)){throw new Error("\u0046\u0061\u0069\u006C\u0065\u0064\u0020\u0074\u006F\u0020\u0067\u0065\u006E\u0065\u0072\u0061\u0074\u0065\u0020\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0020\u0062\u0075\u0066\u0066\u0065\u0072");}let _0x0c58ce;const thumbUpload=await encryptedStream(thumbnailBuffer,"\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u002D\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u002D\u0070\u0061\u0063\u006B",{'\u006C\u006F\u0067\u0067\u0065\u0072':logger,'\u006F\u0070\u0074\u0073':options['\u006F\u0070\u0074\u0069\u006F\u006E\u0073'],'\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079':stickerPackUpload['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079']});_0x0c58ce="lpcmde".split("").reverse().join("");var _0xd55a6e=(625941^625940)+(748153^748145);let thumbUploadResult;_0xd55a6e=419064^419066;try{thumbUploadResult=await options['\u0075\u0070\u006C\u006F\u0061\u0064'](thumbUpload['\u0065\u006E\u0063\u0046\u0069\u006C\u0065\u0050\u0061\u0074\u0068'],{"fileEncSha256B64":thumbUpload['\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036']['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']("\u0062\u0061\u0073\u0065\u0036\u0034"),"mediaType":'thumbnail-sticker-pack',"timeoutMs":options['\u006D\u0065\u0064\u0069\u0061\u0055\u0070\u006C\u006F\u0061\u0064\u0054\u0069\u006D\u0065\u006F\u0075\u0074\u004D\u0073']});}finally{fs['\u0075\u006E\u006C\u0069\u006E\u006B'](thumbUpload['\u0065\u006E\u0063\u0046\u0069\u006C\u0065\u0050\u0061\u0074\u0068'])['\u0063\u0061\u0074\u0063\u0068'](()=>logger?.warn("\u0066\u0061\u0069\u006C\u0065\u0064\u0020\u0074\u006F\u0020\u0072\u0065\u006D\u006F\u0076\u0065\u0020\u0074\u006D\u0070\u0020\u0066\u0069\u006C\u0065"));}Object['\u0061\u0073\u0073\u0069\u0067\u006E'](obj,{"thumbnailDirectPath":thumbUploadResult['\u0064\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068'],'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0053\u0068\u0061\u0032\u0035\u0036':thumbUpload['\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036'],'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036':thumbUpload['\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036'],'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0048\u0065\u0069\u0067\u0068\u0074':252,"thumbnailWidth":252,"imageDataHash":sha256(thumbnailBuffer)['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']("\u0062\u0061\u0073\u0065\u0036\u0034")});}catch(error){logger?.warn(`Thumbnail generation failed: ${error}`);}if(cacheableKey){logger?.debug({'\u0063\u0061\u0063\u0068\u0065\u0061\u0062\u006C\u0065\u004B\u0065\u0079':cacheableKey},")dnuorgkcab( ehcac tes".split("").reverse().join(""));options['\u006D\u0065\u0064\u0069\u0061\u0043\u0061\u0063\u0068\u0065']['\u0073\u0065\u0074'](cacheableKey,WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0065\u006E\u0063\u006F\u0064\u0065'](obj)['\u0066\u0069\u006E\u0069\u0073\u0068']());}return WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0053\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074'](obj);};_0xdgfa='\u0065\u006E\u0065\u0061\u0066\u0070';let _0x6eea;const prepareNativeFlowButtons=message=>{const buttons=message['\u006E\u0061\u0074\u0069\u0076\u0065\u0046\u006C\u006F\u0077'];const isButtonsFieldArray=Array['\u0069\u0073\u0041\u0072\u0072\u0061\u0079'](buttons);var _0x73799b=(713802^713806)+(398516^398524);const correctedField=isButtonsFieldArray?buttons:buttons['\u0062\u0075\u0074\u0074\u006F\u006E\u0073'];_0x73799b='\u006D\u006F\u0071\u0064\u0068\u006C';var _0xe_0x4e8=(175099^175100)+(431467^431466);const messageParamsJson={};_0xe_0x4e8=(542413^542408)+(716444^716441);if(hasOptionalProperty(message,"\u006F\u0066\u0066\u0065\u0072\u0054\u0065\u0078\u0074")&&!!message['\u006F\u0066\u0066\u0065\u0072\u0054\u0065\u0078\u0074']){Object['\u0061\u0073\u0073\u0069\u0067\u006E'](messageParamsJson,{"limited_time_offer":{"text":message['\u006F\u0066\u0066\u0065\u0072\u0054\u0065\u0078\u0074']||LIBRARY_NAME,'\u0075\u0072\u006C':message['\u006F\u0066\u0066\u0065\u0072\u0055\u0072\u006C']||DONATE_URL,'\u0063\u006F\u0070\u0079\u005F\u0063\u006F\u0064\u0065':message['\u006F\u0066\u0066\u0065\u0072\u0043\u006F\u0064\u0065'],"expiration_time":message['\u006F\u0066\u0066\u0065\u0072\u0045\u0078\u0070\u0069\u0072\u0061\u0074\u0069\u006F\u006E']}});}if(hasOptionalProperty(message,"txeTnoitpo".split("").reverse().join(""))&&!!message['\u006F\u0070\u0074\u0069\u006F\u006E\u0054\u0065\u0078\u0074']){Object['\u0061\u0073\u0073\u0069\u0067\u006E'](messageParamsJson,{'\u0062\u006F\u0074\u0074\u006F\u006D\u005F\u0073\u0068\u0065\u0065\u0074':{'\u0069\u006E\u005F\u0074\u0068\u0072\u0065\u0061\u0064\u005F\u0062\u0075\u0074\u0074\u006F\u006E\u0073\u005F\u006C\u0069\u006D\u0069\u0074':1,"divider_indices":Array['\u0066\u0072\u006F\u006D']({'\u006C\u0065\u006E\u0067\u0074\u0068':correctedField['\u006C\u0065\u006E\u0067\u0074\u0068']},(_,index)=>index),'\u006C\u0069\u0073\u0074\u005F\u0074\u0069\u0074\u006C\u0065':message['\u006F\u0070\u0074\u0069\u006F\u006E\u0054\u0069\u0074\u006C\u0065']||"\uD83D\uDCC4\u0020\u0053\u0065\u006C\u0065\u0063\u0074\u0020\u004F\u0070\u0074\u0069\u006F\u006E\u0073","button_title":message['\u006F\u0070\u0074\u0069\u006F\u006E\u0054\u0065\u0078\u0074']}});}return{'\u0062\u0075\u0074\u0074\u006F\u006E\u0073':correctedField['\u006D\u0061\u0070'](button=>{const buttonText=button['\u0074\u0065\u0078\u0074']||button['\u0062\u0075\u0074\u0074\u006F\u006E\u0054\u0065\u0078\u0074'];let _0xc955e;const buttonIcon=button['\u0069\u0063\u006F\u006E']?.toUpperCase();_0xc955e="oiackp".split("").reverse().join("");if(hasOptionalProperty(button,"\u0069\u0064")&&!!button['\u0069\u0064']){return{'\u006E\u0061\u006D\u0065':"\u0071\u0075\u0069\u0063\u006B\u005F\u0072\u0065\u0070\u006C\u0079","buttonParamsJson":JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079']({"display_text":buttonText||"\uD83D\uDC49\uD83C\uDFFB\u0020\u0043\u006C\u0069\u0063\u006B",'\u0069\u0064':button['\u0069\u0064'],"icon":buttonIcon})};}else if(hasOptionalProperty(button,"\u0063\u006F\u0070\u0079")&&!!button['\u0063\u006F\u0070\u0079']){return{'\u006E\u0061\u006D\u0065':"\u0063\u0074\u0061\u005F\u0063\u006F\u0070\u0079",'\u0062\u0075\u0074\u0074\u006F\u006E\u0050\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079']({"display_text":buttonText||"\uD83D\uDCCB\u0020\u0043\u006F\u0070\u0079","copy_code":button['\u0063\u006F\u0070\u0079'],'\u0069\u0063\u006F\u006E':buttonIcon})};}else if(hasOptionalProperty(button,"lru".split("").reverse().join(""))&&!!button['\u0075\u0072\u006C']){return{"name":'cta_url','\u0062\u0075\u0074\u0074\u006F\u006E\u0050\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079']({"display_text":buttonText||"\uD83C\uDF10\u0020\u0056\u0069\u0073\u0069\u0074","url":button['\u0075\u0072\u006C'],'\u006D\u0065\u0072\u0063\u0068\u0061\u006E\u0074\u005F\u0075\u0072\u006C':button['\u0075\u0072\u006C'],'\u0077\u0065\u0062\u0076\u0069\u0065\u0077\u005F\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u006F\u006E':button['\u0075\u0073\u0065\u0057\u0065\u0062\u0076\u0069\u0065\u0077'],'\u0069\u0063\u006F\u006E':buttonIcon})};}else if(hasOptionalProperty(button,"llac".split("").reverse().join(""))&&!!button['\u0063\u0061\u006C\u006C']){return{"name":"\u0063\u0074\u0061\u005F\u0063\u0061\u006C\u006C",'\u0062\u0075\u0074\u0074\u006F\u006E\u0050\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079']({'\u0064\u0069\u0073\u0070\u006C\u0061\u0079\u005F\u0074\u0065\u0078\u0074':buttonText||"\uD83D\uDCDE\u0020\u0043\u0061\u006C\u006C",'\u0070\u0068\u006F\u006E\u0065\u005F\u006E\u0075\u006D\u0062\u0065\u0072':button['\u0063\u0061\u006C\u006C'],'\u0069\u0063\u006F\u006E':buttonIcon})};}else if(hasOptionalProperty(button,"\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073")&&!!button['\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073']){return{'\u006E\u0061\u006D\u0065':"\u0073\u0069\u006E\u0067\u006C\u0065\u005F\u0073\u0065\u006C\u0065\u0063\u0074",'\u0062\u0075\u0074\u0074\u006F\u006E\u0050\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079']({"title":buttonText||"tceleS \uDCCB\uD83D".split("").reverse().join(""),"sections":button['\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073'],"icon":buttonIcon})};}return button;}),'\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0050\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079'](messageParamsJson)};};_0x6eea="kbqmpd".split("").reverse().join("");export const prepareDisappearingMessageSettingContent=ephemeralExpiration=>{ephemeralExpiration=ephemeralExpiration||887512^887512;let _0x5eeeag;const content={'\u0065\u0070\u0068\u0065\u006D\u0065\u0072\u0061\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u0070\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{"type":WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0054\u0079\u0070\u0065']['\u0045\u0050\u0048\u0045\u004D\u0045\u0052\u0041\u004C\u005F\u0053\u0045\u0054\u0054\u0049\u004E\u0047'],"ephemeralExpiration":ephemeralExpiration}}}};_0x5eeeag="kboibm".split("").reverse().join("");return WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074'](content);};var _0xg6bff=(929253^929249)+(207996^207998);export const generateForwardMessageContent=(message,forceForward)=>{var _0xf_0x469=(972931^972934)+(710502^710498);let content=message['\u006D\u0065\u0073\u0073\u0061\u0067\u0065'];_0xf_0x469=(221336^221328)+(701985^701990);if(!content){throw new Boom("\u006E\u006F\u0020\u0063\u006F\u006E\u0074\u0065\u006E\u0074\u0020\u0069\u006E\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}content=normalizeMessageContent(content);content=proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0064\u0065\u0063\u006F\u0064\u0065'](proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0065\u006E\u0063\u006F\u0064\u0065'](content)['\u0066\u0069\u006E\u0069\u0073\u0068']());let _0xa526a;let key=Object['\u006B\u0065\u0079\u0073'](content)[568244^568244];_0xa526a=(154202^154194)+(873181^873173);let _0x3951c;let score=content?.[key]?.contextInfo?.forwardingScore||967215^967215;_0x3951c=(841098^841101)+(390456^390461);score+=message['\u006B\u0065\u0079']['\u0066\u0072\u006F\u006D\u004D\u0065']&&!forceForward?664045^664045:875615^875614;if(key==="noitasrevnoc".split("").reverse().join("")){content['\u0065\u0078\u0074\u0065\u006E\u0064\u0065\u0064\u0054\u0065\u0078\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={"text":content[key]};delete content['\u0063\u006F\u006E\u0076\u0065\u0072\u0073\u0061\u0074\u0069\u006F\u006E'];key="egasseMtxeTdednetxe".split("").reverse().join("");}var _0xa40c7a=(720672^720679)+(694072^694065);const key_=content?.[key];_0xa40c7a=(370871^370871)+(765183^765179);if(score>(605468^605468)){key_['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={'\u0066\u006F\u0072\u0077\u0061\u0072\u0064\u0069\u006E\u0067\u0053\u0063\u006F\u0072\u0065':score,"isForwarded":!![]};}else{key_['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={};}return content;};_0xg6bff=386823^386818;let _0xe12eb;export const hasNonNullishProperty=(message,key)=>{return message!=null&&typeof message==="\u006F\u0062\u006A\u0065\u0063\u0074"&&key in message&&message[key]!=null;};_0xe12eb=111630^111623;var _0x649e=(278252^278248)+(434015^434009);export const hasOptionalProperty=(obj,key)=>{return obj!=null&&typeof obj==="\u006F\u0062\u006A\u0065\u0063\u0074"&&key in obj&&obj[key]!=null;};_0x649e=788987^788988;export const hasValidAlbumMedia=message=>{return!!(message['\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065']);};let _0xgd124d;export const hasValidInteractiveHeader=message=>{return!!(message['\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']);};_0xgd124d=712842^712844;var _0xagc8eb=(538070^538071)+(358263^358271);export const hasValidCarouselHeader=message=>{return!!(message['\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||message['\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']);};_0xagc8eb=(933102^933094)+(968729^968720);var _0xab43b=(408346^408338)+(968276^968284);export const generateWAMessageContent=async(message,options)=>{var _a,_b;var _0x8f8ga=(230794^230794)+(951630^951623);let m={};_0x8f8ga=(332675^332672)+(566522^566514);if(hasNonNullishProperty(message,"war".split("").reverse().join(""))){delete message['\u0072\u0061\u0077'];return message;}else if(hasNonNullishProperty(message,"\u0063\u006F\u0064\u0065")||hasNonNullishProperty(message,"sknil".split("").reverse().join(""))||hasNonNullishProperty(message,"\u0074\u0061\u0062\u006C\u0065")||hasNonNullishProperty(message,"esnopseRhcir".split("").reverse().join(""))){m=prepareRichResponseMessage(message);}else if(hasNonNullishProperty(message,"txet".split("").reverse().join(""))){const extContent={'\u0074\u0065\u0078\u0074':message['\u0074\u0065\u0078\u0074']};let urlInfo=message['\u006C\u0069\u006E\u006B\u0050\u0072\u0065\u0076\u0069\u0065\u0077'];if(typeof urlInfo==="denifednu".split("").reverse().join("")){urlInfo=await generateLinkPreviewIfRequired(message['\u0074\u0065\u0078\u0074'],options['\u0067\u0065\u0074\u0055\u0072\u006C\u0049\u006E\u0066\u006F'],options['\u006C\u006F\u0067\u0067\u0065\u0072']);}if(urlInfo){extContent['\u006D\u0061\u0074\u0063\u0068\u0065\u0064\u0054\u0065\u0078\u0074']=urlInfo['matched-text'];extContent['\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']=urlInfo['\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'];extContent['\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E']=urlInfo['\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E'];extContent['\u0074\u0069\u0074\u006C\u0065']=urlInfo['\u0074\u0069\u0074\u006C\u0065'];extContent['\u0070\u0072\u0065\u0076\u0069\u0065\u0077\u0054\u0079\u0070\u0065']=urlInfo['\u0070\u0072\u0065\u0076\u0069\u0065\u0077\u0054\u0079\u0070\u0065']??172663^172663;extContent['\u006C\u0069\u006E\u006B\u0050\u0072\u0065\u0076\u0069\u0065\u0077\u004D\u0065\u0074\u0061\u0064\u0061\u0074\u0061']=urlInfo['\u006C\u0069\u006E\u006B\u0050\u0072\u0065\u0076\u0069\u0065\u0077\u004D\u0065\u0074\u0061\u0064\u0061\u0074\u0061'];const img=urlInfo['\u0068\u0069\u0067\u0068\u0051\u0075\u0061\u006C\u0069\u0074\u0079\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'];if(img){extContent['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0044\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068']=img['\u0064\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068'];extContent['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079']=img['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079'];extContent['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070']=img['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070'];extContent['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0057\u0069\u0064\u0074\u0068']=img['\u0077\u0069\u0064\u0074\u0068'];extContent['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0048\u0065\u0069\u0067\u0068\u0074']=img['\u0068\u0065\u0069\u0067\u0068\u0074'];extContent['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0053\u0068\u0061\u0032\u0035\u0036']=img['\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036'];extContent['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036']=img['\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036'];}}const faviconData=message['\u0066\u0061\u0076\u0069\u0063\u006F\u006E'];if(faviconData&&typeof options['\u0075\u0070\u006C\u006F\u0061\u0064']==="noitcnuf".split("").reverse().join("")){const{"imageMessage":imageMessage}=await prepareWAMessageMedia({"image":faviconData},options)['\u0063\u0061\u0074\u0063\u0068'](()=>({'\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':null}));if(imageMessage)extContent['\u0066\u0061\u0076\u0069\u0063\u006F\u006E\u004D\u004D\u0053\u004D\u0065\u0074\u0061\u0064\u0061\u0074\u0061']={'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0044\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068':imageMessage['\u0064\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068'],'\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079':imageMessage['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079'],'\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070':imageMessage['\u006D\u0065\u0064\u0069\u0061\u004B\u0065\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070'],'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0057\u0069\u0064\u0074\u0068':32,'\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0048\u0065\u0069\u0067\u0068\u0074':32,"thumbnailSha256":imageMessage['\u0066\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036'],"thumbnailEncSha256":imageMessage['\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036']};}if(options['\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0043\u006F\u006C\u006F\u0072']){extContent['\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0041\u0072\u0067\u0062']=await assertColor(options['\u0062\u0061\u0063\u006B\u0067\u0072\u006F\u0075\u006E\u0064\u0043\u006F\u006C\u006F\u0072']);}if(options['\u0066\u006F\u006E\u0074']){extContent['\u0066\u006F\u006E\u0074']=options['\u0066\u006F\u006E\u0074'];}m['\u0065\u0078\u0074\u0065\u006E\u0064\u0065\u0064\u0054\u0065\u0078\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=extContent;}else if(hasNonNullishProperty(message,"\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073")){var _0x78ga=(138926^138922)+(550927^550921);const contactLen=message['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073']['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073']['\u006C\u0065\u006E\u0067\u0074\u0068'];_0x78ga=(859643^859635)+(115210^115208);if(!contactLen){throw new Boom("\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0020\u0061\u0074\u006C\u0065\u0061\u0073\u0074\u0020\u0031\u0020\u0063\u006F\u006E\u0074\u0061\u0063\u0074",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}if(contactLen===(587892^587893)){m['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0043\u006F\u006E\u0074\u0061\u0063\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065'](message['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073']['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073'][620563^620563]);}else{m['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073\u0041\u0072\u0072\u0061\u0079\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0043\u006F\u006E\u0074\u0061\u0063\u0074\u0073\u0041\u0072\u0072\u0061\u0079\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065'](message['\u0063\u006F\u006E\u0074\u0061\u0063\u0074\u0073']);}}else if(hasNonNullishProperty(message,"noitacol".split("").reverse().join(""))){m['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004C\u006F\u0063\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065'](message['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E']);}else if(hasNonNullishProperty(message,"tcaer".split("").reverse().join(""))){if(!message['\u0072\u0065\u0061\u0063\u0074']['\u0073\u0065\u006E\u0064\u0065\u0072\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070\u004D\u0073']){message['\u0072\u0065\u0061\u0063\u0074']['\u0073\u0065\u006E\u0064\u0065\u0072\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070\u004D\u0073']=Date['\u006E\u006F\u0077']();}m['\u0072\u0065\u0061\u0063\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0052\u0065\u0061\u0063\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065'](message['\u0072\u0065\u0061\u0063\u0074']);}else if(hasNonNullishProperty(message,"eteled".split("").reverse().join(""))){m['\u0070\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={"key":message['\u0064\u0065\u006C\u0065\u0074\u0065'],'\u0074\u0079\u0070\u0065':WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0054\u0079\u0070\u0065']['\u0052\u0045\u0056\u004F\u004B\u0045']};}else if(hasNonNullishProperty(message,"drawrof".split("").reverse().join(""))){m=generateForwardMessageContent(message['\u0066\u006F\u0072\u0077\u0061\u0072\u0064'],message['\u0066\u006F\u0072\u0063\u0065']);}else if(hasNonNullishProperty(message,"\u0064\u0069\u0073\u0061\u0070\u0070\u0065\u0061\u0072\u0069\u006E\u0067\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0073\u0049\u006E\u0043\u0068\u0061\u0074")){var _0xf5e36c=(582933^582941)+(242928^242928);const exp=typeof message['\u0064\u0069\u0073\u0061\u0070\u0070\u0065\u0061\u0072\u0069\u006E\u0067\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0073\u0049\u006E\u0043\u0068\u0061\u0074']==="naeloob".split("").reverse().join("")?message['\u0064\u0069\u0073\u0061\u0070\u0070\u0065\u0061\u0072\u0069\u006E\u0067\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0073\u0049\u006E\u0043\u0068\u0061\u0074']?WA_DEFAULT_EPHEMERAL:796124^796124:message['\u0064\u0069\u0073\u0061\u0070\u0070\u0065\u0061\u0072\u0069\u006E\u0067\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0073\u0049\u006E\u0043\u0068\u0061\u0074'];_0xf5e36c='\u0069\u0062\u006E\u0065\u0065\u006F';m=prepareDisappearingMessageSettingContent(exp);}else if(hasNonNullishProperty(message,"\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065")){m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={};m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0069\u006E\u0076\u0069\u0074\u0065\u0043\u006F\u0064\u0065']=message['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065']['\u0069\u006E\u0076\u0069\u0074\u0065\u0043\u006F\u0064\u0065'];m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0069\u006E\u0076\u0069\u0074\u0065\u0045\u0078\u0070\u0069\u0072\u0061\u0074\u0069\u006F\u006E']=message['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065']['\u0069\u006E\u0076\u0069\u0074\u0065\u0045\u0078\u0070\u0069\u0072\u0061\u0074\u0069\u006F\u006E'];m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0061\u0070\u0074\u0069\u006F\u006E']=message['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065']['\u0074\u0065\u0078\u0074'];m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0067\u0072\u006F\u0075\u0070\u004A\u0069\u0064']=message['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065']['\u006A\u0069\u0064'];m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0067\u0072\u006F\u0075\u0070\u004E\u0061\u006D\u0065']=message['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065']['\u0073\u0075\u0062\u006A\u0065\u0063\u0074'];if(options['\u0067\u0065\u0074\u0050\u0072\u006F\u0066\u0069\u006C\u0065\u0050\u0069\u0063\u0055\u0072\u006C']){var _0xb56ege=(784046^784038)+(844838^844832);const pfpUrl=await options['\u0067\u0065\u0074\u0050\u0072\u006F\u0066\u0069\u006C\u0065\u0050\u0069\u0063\u0055\u0072\u006C'](message['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065']['\u006A\u0069\u0064'],"weiverp".split("").reverse().join(""));_0xb56ege=(939845^939852)+(823637^823633);if(pfpUrl){var _0xf67a5f=(410308^410305)+(453759^453754);const resp=await fetch(pfpUrl,{"method":'GET',"dispatcher":options?.options?.dispatcher});_0xf67a5f=(813715^813717)+(411495^411503);if(resp['\u006F\u006B']){var _0xdc9b4c=(372844^372836)+(788841^788843);const buf=Buffer['\u0066\u0072\u006F\u006D'](await resp['\u0061\u0072\u0072\u0061\u0079\u0042\u0075\u0066\u0066\u0065\u0072']());_0xdc9b4c=103184^103190;m['\u0067\u0072\u006F\u0075\u0070\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']=buf;}}}}else if(hasNonNullishProperty(message,"srekcits".split("").reverse().join(""))){m['\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u0050\u0061\u0063\u006B\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=await prepareStickerPackMessage(message,options);}else if(hasNonNullishProperty(message,"\u0070\u0069\u006E")){m['\u0070\u0069\u006E\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={};m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={};m['\u0070\u0069\u006E\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006B\u0065\u0079']=message['\u0070\u0069\u006E'];m['\u0070\u0069\u006E\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0074\u0079\u0070\u0065']=message['\u0074\u0079\u0070\u0065'];m['\u0070\u0069\u006E\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0073\u0065\u006E\u0064\u0065\u0072\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070\u004D\u0073']=Date['\u006E\u006F\u0077']();m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0041\u0064\u0064\u004F\u006E\u0044\u0075\u0072\u0061\u0074\u0069\u006F\u006E\u0049\u006E\u0053\u0065\u0063\u0073']=message['\u0074\u0079\u0070\u0065']===(575784^575785)?message['\u0074\u0069\u006D\u0065']||86400:572751^572751;}else if(hasNonNullishProperty(message,"\u006B\u0065\u0065\u0070")){m['\u006B\u0065\u0065\u0070\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={};m['\u006B\u0065\u0065\u0070\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006B\u0065\u0079']=message['\u006B\u0065\u0065\u0070'];m['\u006B\u0065\u0065\u0070\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006B\u0065\u0065\u0070\u0054\u0079\u0070\u0065']=message['\u0074\u0079\u0070\u0065'];m['\u006B\u0065\u0065\u0070\u0049\u006E\u0043\u0068\u0061\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0074\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070\u004D\u0073']=Date['\u006E\u006F\u0077']();}else if(hasNonNullishProperty(message,"\u0066\u006C\u006F\u0077\u0052\u0065\u0070\u006C\u0079")){m['\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={"body":{"format":message['\u0066\u006C\u006F\u0077\u0052\u0065\u0070\u006C\u0079']['\u0066\u006F\u0072\u006D\u0061\u0074']||proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0049\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0042\u006F\u0064\u0079']['\u0046\u006F\u0072\u006D\u0061\u0074']['\u0044\u0045\u0046\u0041\u0055\u004C\u0054'],'\u0074\u0065\u0078\u0074':message['\u0066\u006C\u006F\u0077\u0052\u0065\u0070\u006C\u0079']['\u0074\u0065\u0078\u0074']},'\u006E\u0061\u0074\u0069\u0076\u0065\u0046\u006C\u006F\u0077\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u006E\u0061\u006D\u0065':message['\u0066\u006C\u006F\u0077\u0052\u0065\u0070\u006C\u0079']['\u006E\u0061\u006D\u0065'],"paramsJson":message['\u0066\u006C\u006F\u0077\u0052\u0065\u0070\u006C\u0079']['\u0070\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E']||"}{".split("").reverse().join(""),"version":message['\u0066\u006C\u006F\u0077\u0052\u0065\u0070\u006C\u0079']['\u0076\u0065\u0072\u0073\u0069\u006F\u006E']||353755^353754}};}else if(hasNonNullishProperty(message,"ylpeRnottub".split("").reverse().join(""))){switch(message['\u0074\u0079\u0070\u0065']){case"\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065":m['\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065\u0042\u0075\u0074\u0074\u006F\u006E\u0052\u0065\u0070\u006C\u0079\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0073\u0065\u006C\u0065\u0063\u0074\u0065\u0064\u0044\u0069\u0073\u0070\u006C\u0061\u0079\u0054\u0065\u0078\u0074':message['\u0062\u0075\u0074\u0074\u006F\u006E\u0052\u0065\u0070\u006C\u0079']['\u0064\u0069\u0073\u0070\u006C\u0061\u0079\u0054\u0065\u0078\u0074'],"selectedId":message['\u0062\u0075\u0074\u0074\u006F\u006E\u0052\u0065\u0070\u006C\u0079']['\u0069\u0064'],'\u0073\u0065\u006C\u0065\u0063\u0074\u0065\u0064\u0049\u006E\u0064\u0065\u0078':message['\u0062\u0075\u0074\u0074\u006F\u006E\u0052\u0065\u0070\u006C\u0079']['\u0069\u006E\u0064\u0065\u0078']};break;case"\u0070\u006C\u0061\u0069\u006E":m['\u0062\u0075\u0074\u0074\u006F\u006E\u0073\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0073\u0065\u006C\u0065\u0063\u0074\u0065\u0064\u0042\u0075\u0074\u0074\u006F\u006E\u0049\u0064':message['\u0062\u0075\u0074\u0074\u006F\u006E\u0052\u0065\u0070\u006C\u0079']['\u0069\u0064'],"selectedDisplayText":message['\u0062\u0075\u0074\u0074\u006F\u006E\u0052\u0065\u0070\u006C\u0079']['\u0064\u0069\u0073\u0070\u006C\u0061\u0079\u0054\u0065\u0078\u0074'],'\u0074\u0079\u0070\u0065':proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0042\u0075\u0074\u0074\u006F\u006E\u0073\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0054\u0079\u0070\u0065']['\u0044\u0049\u0053\u0050\u004C\u0041\u0059\u005F\u0054\u0045\u0058\u0054']};break;}}else if(hasNonNullishProperty(message,"\u006C\u0069\u0073\u0074\u0052\u0065\u0070\u006C\u0079")){m['\u006C\u0069\u0073\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E':message['\u006C\u0069\u0073\u0074\u0052\u0065\u0070\u006C\u0079']['\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E'],"listType":proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004C\u0069\u0073\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004C\u0069\u0073\u0074\u0054\u0079\u0070\u0065']['\u0053\u0049\u004E\u0047\u004C\u0045\u005F\u0053\u0045\u004C\u0045\u0043\u0054'],'\u0073\u0069\u006E\u0067\u006C\u0065\u0053\u0065\u006C\u0065\u0063\u0074\u0052\u0065\u0070\u006C\u0079':{"selectedRowId":message['\u006C\u0069\u0073\u0074\u0052\u0065\u0070\u006C\u0079']['\u0069\u0064']},"title":message['\u006C\u0069\u0073\u0074\u0052\u0065\u0070\u006C\u0079']['\u0074\u0069\u0074\u006C\u0065']};}else if(hasOptionalProperty(message,"vtp".split("").reverse().join(""))&&message['\u0070\u0074\u0076']){const{'\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065':videoMessage}=await prepareWAMessageMedia({"video":message['\u0076\u0069\u0064\u0065\u006F']},options);m['\u0070\u0074\u0076\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=videoMessage;}else if(hasNonNullishProperty(message,"\u0070\u0072\u006F\u0064\u0075\u0063\u0074")){m['\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=await prepareProductMessage(message,options);}else if(hasNonNullishProperty(message,"\u0065\u0076\u0065\u006E\u0074")){m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={};var _0x31fb=(351486^351487)+(125985^125991);const startTime=Math['\u0066\u006C\u006F\u006F\u0072'](message['\u0065\u0076\u0065\u006E\u0074']['\u0073\u0074\u0061\u0072\u0074\u0044\u0061\u0074\u0065']['\u0067\u0065\u0074\u0054\u0069\u006D\u0065']()/(356129^355529));_0x31fb=(618914^618922)+(494236^494235);if(message['\u0065\u0076\u0065\u006E\u0074']['\u0063\u0061\u006C\u006C']&&options['\u0067\u0065\u0074\u0043\u0061\u006C\u006C\u004C\u0069\u006E\u006B']){var _0xacadd=(600338^600342)+(246009^246011);const token=await options['\u0067\u0065\u0074\u0043\u0061\u006C\u006C\u004C\u0069\u006E\u006B'](message['\u0065\u0076\u0065\u006E\u0074']['\u0063\u0061\u006C\u006C'],{'\u0073\u0074\u0061\u0072\u0074\u0054\u0069\u006D\u0065':startTime});_0xacadd='\u0065\u006C\u0070\u0064\u0065\u006B';m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006A\u006F\u0069\u006E\u004C\u0069\u006E\u006B']=(message['\u0065\u0076\u0065\u006E\u0074']['\u0063\u0061\u006C\u006C']==="oidua".split("").reverse().join("")?CALL_AUDIO_PREFIX:CALL_VIDEO_PREFIX)+token;}m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={"messageSecret":message['\u0065\u0076\u0065\u006E\u0074']['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074']||randomBytes(214713^214681)};m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006E\u0061\u006D\u0065']=message['\u0065\u0076\u0065\u006E\u0074']['\u006E\u0061\u006D\u0065'];m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E']=message['\u0065\u0076\u0065\u006E\u0074']['\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E'];m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0073\u0074\u0061\u0072\u0074\u0054\u0069\u006D\u0065']=startTime;m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0065\u006E\u0064\u0054\u0069\u006D\u0065']=message['\u0065\u0076\u0065\u006E\u0074']['\u0065\u006E\u0064\u0044\u0061\u0074\u0065']?message['\u0065\u0076\u0065\u006E\u0074']['\u0065\u006E\u0064\u0044\u0061\u0074\u0065']['\u0067\u0065\u0074\u0054\u0069\u006D\u0065']()/(777366^778110):undefined;m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0069\u0073\u0043\u0061\u006E\u0063\u0065\u006C\u0065\u0064']=message['\u0065\u0076\u0065\u006E\u0074']['\u0069\u0073\u0043\u0061\u006E\u0063\u0065\u006C\u006C\u0065\u0064']??false;m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0065\u0078\u0074\u0072\u0061\u0047\u0075\u0065\u0073\u0074\u0073\u0041\u006C\u006C\u006F\u0077\u0065\u0064']=message['\u0065\u0076\u0065\u006E\u0074']['\u0065\u0078\u0074\u0072\u0061\u0047\u0075\u0065\u0073\u0074\u0073\u0041\u006C\u006C\u006F\u0077\u0065\u0064'];m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0069\u0073\u0053\u0063\u0068\u0065\u0064\u0075\u006C\u0065\u0043\u0061\u006C\u006C']=message['\u0065\u0076\u0065\u006E\u0074']['\u0069\u0073\u0053\u0063\u0068\u0065\u0064\u0075\u006C\u0065\u0043\u0061\u006C\u006C']??false;m['\u0065\u0076\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E']=message['\u0065\u0076\u0065\u006E\u0074']['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E'];}else if(hasNonNullishProperty(message,"\u0070\u006F\u006C\u006C")){(_a=message['\u0070\u006F\u006C\u006C'])['\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u0043\u006F\u0075\u006E\u0074']||(_a['\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u0043\u006F\u0075\u006E\u0074']=385559^385559);(_b=message['\u0070\u006F\u006C\u006C'])['\u0074\u006F\u0041\u006E\u006E\u006F\u0075\u006E\u0063\u0065\u006D\u0065\u006E\u0074\u0047\u0072\u006F\u0075\u0070']||(_b['\u0074\u006F\u0041\u006E\u006E\u006F\u0075\u006E\u0063\u0065\u006D\u0065\u006E\u0074\u0047\u0072\u006F\u0075\u0070']=false);if(!Array['\u0069\u0073\u0041\u0072\u0072\u0061\u0079'](message['\u0070\u006F\u006C\u006C']['\u0076\u0061\u006C\u0075\u0065\u0073'])){throw new Boom("seulav llop dilavnI".split("").reverse().join(""),{"statusCode":400});}if(message['\u0070\u006F\u006C\u006C']['\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u0043\u006F\u0075\u006E\u0074']<(507382^507382)||message['\u0070\u006F\u006C\u006C']['\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u0043\u006F\u0075\u006E\u0074']>message['\u0070\u006F\u006C\u006C']['\u0076\u0061\u006C\u0075\u0065\u0073']['\u006C\u0065\u006E\u0067\u0074\u0068']){throw new Boom(`poll.selectableCount in poll should be >= 0 and <= ${message['\u0070\u006F\u006C\u006C']['\u0076\u0061\u006C\u0075\u0065\u0073']['\u006C\u0065\u006E\u0067\u0074\u0068']}`,{"statusCode":400});}let _0xe7e;const pollCreationMessage={"name":message['\u0070\u006F\u006C\u006C']['\u006E\u0061\u006D\u0065'],'\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u004F\u0070\u0074\u0069\u006F\u006E\u0073\u0043\u006F\u0075\u006E\u0074':message['\u0070\u006F\u006C\u006C']['\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u0043\u006F\u0075\u006E\u0074'],'\u006F\u0070\u0074\u0069\u006F\u006E\u0073':message['\u0070\u006F\u006C\u006C']['\u0076\u0061\u006C\u0075\u0065\u0073']['\u006D\u0061\u0070'](optionName=>({'\u006F\u0070\u0074\u0069\u006F\u006E\u004E\u0061\u006D\u0065':optionName})),"endTime":message['\u0070\u006F\u006C\u006C']['\u0065\u006E\u0064\u0044\u0061\u0074\u0065']?message['\u0070\u006F\u006C\u006C']['\u0065\u006E\u0064\u0044\u0061\u0074\u0065']['\u0067\u0065\u0074\u0054\u0069\u006D\u0065']():undefined,'\u0068\u0069\u0064\u0065\u0050\u0061\u0072\u0074\u0069\u0063\u0069\u0070\u0061\u006E\u0074\u004E\u0061\u006D\u0065':message['\u0070\u006F\u006C\u006C']['\u0068\u0069\u0064\u0065\u0056\u006F\u0074\u0065\u0072']??false,'\u0061\u006C\u006C\u006F\u0077\u0041\u0064\u0064\u004F\u0070\u0074\u0069\u006F\u006E':message['\u0070\u006F\u006C\u006C']['\u0063\u0061\u006E\u0041\u0064\u0064\u004F\u0070\u0074\u0069\u006F\u006E']??false};_0xe7e=(430684^430677)+(998254^998251);if(message['\u0070\u006F\u006C\u006C']['\u0074\u006F\u0041\u006E\u006E\u006F\u0075\u006E\u0063\u0065\u006D\u0065\u006E\u0074\u0047\u0072\u006F\u0075\u0070']){m['\u0070\u006F\u006C\u006C\u0043\u0072\u0065\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0032']=pollCreationMessage;}else{if(message['\u0070\u006F\u006C\u006C']['\u0070\u006F\u006C\u006C\u0054\u0079\u0070\u0065']===(289811^289810)){if(!message['\u0070\u006F\u006C\u006C']['\u0063\u006F\u0072\u0072\u0065\u0063\u0074\u0041\u006E\u0073\u0077\u0065\u0072']){throw new Boom("ziuq rof dedivorp \"rewsnAtcerroc\" oN".split("").reverse().join(""),{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}m['\u0070\u006F\u006C\u006C\u0043\u0072\u0065\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0035']={...pollCreationMessage,'\u0063\u006F\u0072\u0072\u0065\u0063\u0074\u0041\u006E\u0073\u0077\u0065\u0072':{'\u006F\u0070\u0074\u0069\u006F\u006E\u004E\u0061\u006D\u0065':message['\u0070\u006F\u006C\u006C']['\u0063\u006F\u0072\u0072\u0065\u0063\u0074\u0041\u006E\u0073\u0077\u0065\u0072']['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']()},'\u0070\u006F\u006C\u006C\u0054\u0079\u0070\u0065':1,"selectableOptionsCount":1};}else if(message['\u0070\u006F\u006C\u006C']['\u0073\u0065\u006C\u0065\u0063\u0074\u0061\u0062\u006C\u0065\u0043\u006F\u0075\u006E\u0074']===(899034^899035)){m['\u0070\u006F\u006C\u006C\u0043\u0072\u0065\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0033']=pollCreationMessage;}else{m['\u0070\u006F\u006C\u006C\u0043\u0072\u0065\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=pollCreationMessage;}}m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={'\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074':message['\u0070\u006F\u006C\u006C']['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074']||randomBytes(954719^954751)};}else if(hasNonNullishProperty(message,"\u0070\u006F\u006C\u006C\u0052\u0065\u0073\u0075\u006C\u0074")){var _0x9daa8d=(995072^995074)+(198086^198095);const pollResultSnapshotMessage={'\u006E\u0061\u006D\u0065':message['\u0070\u006F\u006C\u006C\u0052\u0065\u0073\u0075\u006C\u0074']['\u006E\u0061\u006D\u0065'],'\u0070\u006F\u006C\u006C\u0056\u006F\u0074\u0065\u0073':message['\u0070\u006F\u006C\u006C\u0052\u0065\u0073\u0075\u006C\u0074']['\u0076\u006F\u0074\u0065\u0073']['\u006D\u0061\u0070'](vote=>({'\u006F\u0070\u0074\u0069\u006F\u006E\u004E\u0061\u006D\u0065':vote['\u006E\u0061\u006D\u0065'],"optionVoteCount":parseInt(vote['\u0076\u006F\u0074\u0065\u0043\u006F\u0075\u006E\u0074'])}))};_0x9daa8d=(849705^849710)+(497086^497080);if(message['\u0070\u006F\u006C\u006C\u0052\u0065\u0073\u0075\u006C\u0074']['\u0070\u006F\u006C\u006C\u0054\u0079\u0070\u0065']===(340874^340875)){pollResultSnapshotMessage['\u0070\u006F\u006C\u006C\u0054\u0079\u0070\u0065']=proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u006F\u006C\u006C\u0054\u0079\u0070\u0065']['\u0051\u0055\u0049\u005A'];m['\u0070\u006F\u006C\u006C\u0052\u0065\u0073\u0075\u006C\u0074\u0053\u006E\u0061\u0070\u0073\u0068\u006F\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0033']=pollResultSnapshotMessage;}else{pollResultSnapshotMessage['\u0070\u006F\u006C\u006C\u0054\u0079\u0070\u0065']=proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u006F\u006C\u006C\u0054\u0079\u0070\u0065']['\u0050\u004F\u004C\u004C'];m['\u0070\u006F\u006C\u006C\u0052\u0065\u0073\u0075\u006C\u0074\u0053\u006E\u0061\u0070\u0073\u0068\u006F\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=pollResultSnapshotMessage;}}else if(hasNonNullishProperty(message,"etadpUllop".split("").reverse().join(""))){if(!message['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065']['\u006B\u0065\u0079']){throw new Boom("\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0020\u006B\u0065\u0079\u0020\u0069\u0073\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064",{"statusCode":400});}if(!message['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065']['\u0076\u006F\u0074\u0065']){throw new Boom("\u0045\u006E\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0076\u006F\u0074\u0065\u0020\u0070\u0061\u0079\u006C\u006F\u0061\u0064\u0020\u0069\u0073\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064",{"statusCode":400});}m['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={"metadata":message['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065']['\u006D\u0065\u0074\u0061\u0064\u0061\u0074\u0061'],'\u0070\u006F\u006C\u006C\u0043\u0072\u0065\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079':message['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065']['\u006B\u0065\u0079'],"senderTimestampMs":Date['\u006E\u006F\u0077'](),"vote":message['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065']['\u0076\u006F\u0074\u0065']};}else if(hasNonNullishProperty(message,"\u0070\u0061\u0079\u006D\u0065\u006E\u0074\u0049\u006E\u0076\u0069\u0074\u0065\u0053\u0065\u0072\u0076\u0069\u0063\u0065\u0054\u0079\u0070\u0065")){m['\u0070\u0061\u0079\u006D\u0065\u006E\u0074\u0049\u006E\u0076\u0069\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0065\u0078\u0070\u0069\u0072\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070':Date['\u006E\u006F\u0077'](),'\u0073\u0065\u0072\u0076\u0069\u0063\u0065\u0054\u0079\u0070\u0065':message['\u0070\u0061\u0079\u006D\u0065\u006E\u0074\u0049\u006E\u0076\u0069\u0074\u0065\u0053\u0065\u0072\u0076\u0069\u0063\u0065\u0054\u0079\u0070\u0065']};}else if(hasNonNullishProperty(message,"\u006F\u0072\u0064\u0065\u0072\u0054\u0065\u0078\u0074")){if(!Buffer['\u0069\u0073\u0042\u0075\u0066\u0066\u0065\u0072'](message['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'])){throw new Boom("\u004D\u0075\u0073\u0074\u0020\u0070\u0072\u006F\u0076\u0069\u0064\u0065\u0020\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0020\u0062\u0075\u0066\u0066\u0065\u0072\u0020\u0069\u006E\u0020\u006F\u0072\u0064\u0065\u0072\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}m['\u006F\u0072\u0064\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0069\u0074\u0065\u006D\u0043\u006F\u0075\u006E\u0074':1,"messageVersion":1,'\u006F\u0072\u0064\u0065\u0072\u0054\u0069\u0074\u006C\u0065':LIBRARY_NAME,'\u0073\u0074\u0061\u0074\u0075\u0073':proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004F\u0072\u0064\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004F\u0072\u0064\u0065\u0072\u0053\u0074\u0061\u0074\u0075\u0073']['\u0049\u004E\u0051\u0055\u0049\u0052\u0059'],"surface":proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004F\u0072\u0064\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u004F\u0072\u0064\u0065\u0072\u0053\u0075\u0072\u0066\u0061\u0063\u0065']['\u0043\u0041\u0054\u0041\u004C\u004F\u0047'],'\u0074\u006F\u006B\u0065\u006E':generateMessageIDV2(),'\u0074\u006F\u0074\u0061\u006C\u0041\u006D\u006F\u0075\u006E\u0074\u0031\u0030\u0030\u0030':1000,"totalCurrencyCode":"\u0049\u0044\u0052",...message,"message":message['\u006F\u0072\u0064\u0065\u0072\u0054\u0065\u0078\u0074']};delete m['\u006F\u0072\u0064\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u006F\u0072\u0064\u0065\u0072\u0054\u0065\u0078\u0074'];}else if(hasNonNullishProperty(message,"\u0061\u006C\u0062\u0075\u006D")){if(!Array['\u0069\u0073\u0041\u0072\u0072\u0061\u0079'](message['\u0061\u006C\u0062\u0075\u006D'])){throw new Boom("\u0049\u006E\u0076\u0061\u006C\u0069\u0064\u0020\u0061\u006C\u0062\u0075\u006D\u0020\u0074\u0079\u0070\u0065\u002E\u0020\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006E\u0020\u0061\u0072\u0072\u0061\u0079\u002E",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}let videoCount=512280^512280;for(let i=555170^555170;i<message['\u0061\u006C\u0062\u0075\u006D']['\u006C\u0065\u006E\u0067\u0074\u0068'];i++){if(message['\u0061\u006C\u0062\u0075\u006D'][i]['\u0076\u0069\u0064\u0065\u006F'])videoCount++;}let _0xcbg95a;let imageCount=886467^886467;_0xcbg95a=210292^210301;for(let i=627672^627672;i<message['\u0061\u006C\u0062\u0075\u006D']['\u006C\u0065\u006E\u0067\u0074\u0068'];i++){if(message['\u0061\u006C\u0062\u0075\u006D'][i]['\u0069\u006D\u0061\u0067\u0065'])imageCount++;}if(videoCount+imageCount<(511253^511255)){throw new Boom("egassem mubla daolpu ot aidem 2 edivorp muminiM".split("").reverse().join(""),{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}m['\u0061\u006C\u0062\u0075\u006D\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={"expectedImageCount":imageCount,'\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0056\u0069\u0064\u0065\u006F\u0043\u006F\u0075\u006E\u0074':videoCount};}else if(hasNonNullishProperty(message,"\u0073\u0068\u0061\u0072\u0065\u0050\u0068\u006F\u006E\u0065\u004E\u0075\u006D\u0062\u0065\u0072")){m['\u0070\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0074\u0079\u0070\u0065':proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0054\u0079\u0070\u0065']['\u0053\u0048\u0041\u0052\u0045\u005F\u0050\u0048\u004F\u004E\u0045\u005F\u004E\u0055\u004D\u0042\u0045\u0052']};}else if(hasNonNullishProperty(message,"\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u0050\u0068\u006F\u006E\u0065\u004E\u0075\u006D\u0062\u0065\u0072")){m['\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u0050\u0068\u006F\u006E\u0065\u004E\u0075\u006D\u0062\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={};}else if(hasNonNullishProperty(message,"gnirahStimil".split("").reverse().join(""))){m['\u0070\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0074\u0079\u0070\u0065':proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0054\u0079\u0070\u0065']['\u004C\u0049\u004D\u0049\u0054\u005F\u0053\u0048\u0041\u0052\u0049\u004E\u0047'],'\u006C\u0069\u006D\u0069\u0074\u0053\u0068\u0061\u0072\u0069\u006E\u0067':{"sharingLimited":message['\u006C\u0069\u006D\u0069\u0074\u0053\u0068\u0061\u0072\u0069\u006E\u0067']===!![],'\u0074\u0072\u0069\u0067\u0067\u0065\u0072':1,'\u006C\u0069\u006D\u0069\u0074\u0053\u0068\u0061\u0072\u0069\u006E\u0067\u0053\u0065\u0074\u0074\u0069\u006E\u0067\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070':Date['\u006E\u006F\u0077'](),"initiatedByMe":!![]}};}else{m=await prepareWAMessageMedia(message,options);}if(hasNonNullishProperty(message,"\u0062\u0075\u0074\u0074\u006F\u006E\u0073")){let _0xaf_0x206;const buttonsMessage={'\u0062\u0075\u0074\u0074\u006F\u006E\u0073':message['\u0062\u0075\u0074\u0074\u006F\u006E\u0073']['\u006D\u0061\u0070'](button=>{var _0xd13c=(700083^700085)+(206821^206817);const buttonText=button['\u0074\u0065\u0078\u0074']||button['\u0062\u0075\u0074\u0074\u006F\u006E\u0054\u0065\u0078\u0074'];_0xd13c='\u006E\u0067\u0070\u0065\u0063\u006E';if(hasOptionalProperty(button,"\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073")){return{'\u006E\u0061\u0074\u0069\u0076\u0065\u0046\u006C\u006F\u0077\u0049\u006E\u0066\u006F':{'\u006E\u0061\u006D\u0065':'single_select','\u0070\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':JSON['\u0073\u0074\u0072\u0069\u006E\u0067\u0069\u0066\u0079']({'\u0074\u0069\u0074\u006C\u0065':buttonText,'\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073':button['\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073']})},'\u0074\u0079\u0070\u0065':ButtonType['\u004E\u0041\u0054\u0049\u0056\u0045\u005F\u0046\u004C\u004F\u0057']};}else if(hasOptionalProperty(button,"\u006E\u0061\u006D\u0065")){return{'\u006E\u0061\u0074\u0069\u0076\u0065\u0046\u006C\u006F\u0077\u0049\u006E\u0066\u006F':{"name":button['\u006E\u0061\u006D\u0065'],'\u0070\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E':button['\u0070\u0061\u0072\u0061\u006D\u0073\u004A\u0073\u006F\u006E']},'\u0074\u0079\u0070\u0065':ButtonType['\u004E\u0041\u0054\u0049\u0056\u0045\u005F\u0046\u004C\u004F\u0057']};}return{'\u0062\u0075\u0074\u0074\u006F\u006E\u0049\u0064':button['\u0069\u0064']||button['\u0062\u0075\u0074\u0074\u006F\u006E\u0049\u0064'],'\u0062\u0075\u0074\u0074\u006F\u006E\u0054\u0065\u0078\u0074':typeof buttonText==="\u0073\u0074\u0072\u0069\u006E\u0067"?{'\u0064\u0069\u0073\u0070\u006C\u0061\u0079\u0054\u0065\u0078\u0074':buttonText}:buttonText,'\u0074\u0079\u0070\u0065':button['\u0074\u0079\u0070\u0065']||ButtonType['\u0052\u0045\u0053\u0050\u004F\u004E\u0053\u0045']};})};_0xaf_0x206=979469^979469;if(hasOptionalProperty(message,"\u0074\u0065\u0078\u0074")){buttonsMessage['\u0063\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074']=message['\u0074\u0065\u0078\u0074'];buttonsMessage['\u0068\u0065\u0061\u0064\u0065\u0072\u0054\u0079\u0070\u0065']=ButtonHeaderType['\u0045\u004D\u0050\u0054\u0059'];}else{if(hasOptionalProperty(message,"\u0063\u0061\u0070\u0074\u0069\u006F\u006E")){buttonsMessage['\u0063\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074']=message['\u0063\u0061\u0070\u0074\u0069\u006F\u006E'];}const type=Object['\u006B\u0065\u0079\u0073'](m)[323177^323177]['\u0072\u0065\u0070\u006C\u0061\u0063\u0065']("egasseM".split("").reverse().join(""),'')['\u0074\u006F\u0055\u0070\u0070\u0065\u0072\u0043\u0061\u0073\u0065']();buttonsMessage['\u0068\u0065\u0061\u0064\u0065\u0072\u0054\u0079\u0070\u0065']=ButtonHeaderType[type];Object['\u0061\u0073\u0073\u0069\u0067\u006E'](buttonsMessage,m);}if(hasOptionalProperty(message,"retoof".split("").reverse().join(""))){buttonsMessage['\u0066\u006F\u006F\u0074\u0065\u0072\u0054\u0065\u0078\u0074']=message['\u0066\u006F\u006F\u0074\u0065\u0072'];}m={"buttonsMessage":buttonsMessage};}else if(hasNonNullishProperty(message,"snoitces".split("").reverse().join(""))){const listMessage={'\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073':message['\u0073\u0065\u0063\u0074\u0069\u006F\u006E\u0073'],'\u0062\u0075\u0074\u0074\u006F\u006E\u0054\u0065\u0078\u0074':message['\u0062\u0075\u0074\u0074\u006F\u006E\u0054\u0065\u0078\u0074'],"title":message['\u0074\u0069\u0074\u006C\u0065'],"footerText":message['\u0066\u006F\u006F\u0074\u0065\u0072'],'\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u0069\u006F\u006E':message['\u0074\u0065\u0078\u0074'],'\u006C\u0069\u0073\u0074\u0054\u0079\u0070\u0065':ListType['\u0053\u0049\u004E\u0047\u004C\u0045\u005F\u0053\u0045\u004C\u0045\u0043\u0054']};m={'\u006C\u0069\u0073\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065':listMessage};}else if(hasNonNullishProperty(message,"snottuBetalpmet".split("").reverse().join(""))){const hydratedTemplate={'\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0042\u0075\u0074\u0074\u006F\u006E\u0073':message['\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065\u0042\u0075\u0074\u0074\u006F\u006E\u0073']['\u006D\u0061\u0070']((button,i)=>{let _0x2fb7b;const buttonText=button['\u0074\u0065\u0078\u0074']||button['\u0062\u0075\u0074\u0074\u006F\u006E\u0054\u0065\u0078\u0074'];_0x2fb7b=(335540^335538)+(889104^889108);if(hasOptionalProperty(button,"\u0069\u0064")){return{"index":i,'\u0071\u0075\u0069\u0063\u006B\u0052\u0065\u0070\u006C\u0079\u0042\u0075\u0074\u0074\u006F\u006E':{'\u0064\u0069\u0073\u0070\u006C\u0061\u0079\u0054\u0065\u0078\u0074':buttonText||"\uD83D\uDC49\uD83C\uDFFB\u0020\u0043\u006C\u0069\u0063\u006B",'\u0069\u0064':button['\u0069\u0064']}};}else if(hasOptionalProperty(button,"\u0075\u0072\u006C")){return{'\u0069\u006E\u0064\u0065\u0078':i,'\u0075\u0072\u006C\u0042\u0075\u0074\u0074\u006F\u006E':{"displayText":buttonText||"\uD83C\uDF10\u0020\u0056\u0069\u0073\u0069\u0074",'\u0075\u0072\u006C':button['\u0075\u0072\u006C']}};}else if(hasOptionalProperty(button,"\u0063\u0061\u006C\u006C")){return{"index":i,'\u0063\u0061\u006C\u006C\u0042\u0075\u0074\u0074\u006F\u006E':{"displayText":buttonText||"llaC \uDCDE\uD83D".split("").reverse().join(""),'\u0070\u0068\u006F\u006E\u0065\u004E\u0075\u006D\u0062\u0065\u0072':button['\u0063\u0061\u006C\u006C']}};}button['\u0069\u006E\u0064\u0065\u0078']=button['\u0069\u006E\u0064\u0065\u0078']||i;return button;})};if(hasOptionalProperty(message,"txet".split("").reverse().join(""))){hydratedTemplate['\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0043\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074']=message['\u0074\u0065\u0078\u0074'];}else{if(hasOptionalProperty(message,"\u0063\u0061\u0070\u0074\u0069\u006F\u006E")){hydratedTemplate['\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0054\u0069\u0074\u006C\u0065\u0054\u0065\u0078\u0074']=message['\u0074\u0069\u0074\u006C\u0065'];hydratedTemplate['\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0043\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074']=message['\u0063\u0061\u0070\u0074\u0069\u006F\u006E'];}Object['\u0061\u0073\u0073\u0069\u0067\u006E'](hydratedTemplate,m);}if(hasOptionalProperty(message,"\u0066\u006F\u006F\u0074\u0065\u0072")){hydratedTemplate['\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0046\u006F\u006F\u0074\u0065\u0072\u0054\u0065\u0078\u0074']=message['\u0066\u006F\u006F\u0074\u0065\u0072'];}hydratedTemplate['\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065\u0049\u0064']=message['\u0069\u0064']||"-etalpmet".split("").reverse().join("")+Date['\u006E\u006F\u0077']();m={'\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0046\u006F\u0075\u0072\u0052\u006F\u0077\u0054\u0065\u006D\u0070\u006C\u0061\u0074\u0065':hydratedTemplate,'\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0054\u0065\u006D\u0070\u006C\u0061\u0074\u0065':hydratedTemplate}};}else if(hasNonNullishProperty(message,"\u006E\u0061\u0074\u0069\u0076\u0065\u0046\u006C\u006F\u0077")){const interactiveMessage={"nativeFlowMessage":prepareNativeFlowButtons(message)};if(hasOptionalProperty(message,"\u0062\u0069\u007A\u004A\u0069\u0064")){interactiveMessage['\u0063\u006F\u006C\u006C\u0065\u0063\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={"bizJid":message['\u0062\u0069\u007A\u004A\u0069\u0064'],'\u0069\u0064':message['\u0069\u0064'],'\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0065\u0072\u0073\u0069\u006F\u006E':1};}else if(hasOptionalProperty(message,"\u0073\u0068\u006F\u0070\u0053\u0075\u0072\u0066\u0061\u0063\u0065")){interactiveMessage['\u0073\u0068\u006F\u0070\u0053\u0074\u006F\u0072\u0065\u0066\u0072\u006F\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']={'\u0073\u0075\u0072\u0066\u0061\u0063\u0065':message['\u0073\u0068\u006F\u0070\u0053\u0075\u0072\u0066\u0061\u0063\u0065'],'\u0069\u0064':message['\u0069\u0064'],"messageVersion":1};}if(hasOptionalProperty(message,"\u0074\u0065\u0078\u0074")){interactiveMessage['\u0062\u006F\u0064\u0079']={"text":message['\u0074\u0065\u0078\u0074']};}else{if(hasOptionalProperty(message,"noitpac".split("").reverse().join(""))){let _0x92df7c;const isValidHeader=hasValidInteractiveHeader(m);_0x92df7c=(964284^964281)+(805163^805165);if(!isValidHeader){throw new Boom("\u0049\u006E\u0076\u0061\u006C\u0069\u0064\u0020\u006D\u0065\u0064\u0069\u0061\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006F\u0072\u0020\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0020\u0068\u0065\u0061\u0064\u0065\u0072",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}interactiveMessage['\u0068\u0065\u0061\u0064\u0065\u0072']={"title":message['\u0074\u0069\u0074\u006C\u0065']||'',"subtitle":message['\u0073\u0075\u0062\u0074\u0069\u0074\u006C\u0065']||'','\u0068\u0061\u0073\u004D\u0065\u0064\u0069\u0061\u0041\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074':isValidHeader};interactiveMessage['\u0062\u006F\u0064\u0079']={'\u0074\u0065\u0078\u0074':message['\u0063\u0061\u0070\u0074\u0069\u006F\u006E']};}if(hasOptionalProperty(message,"lianbmuht".split("").reverse().join(""))&&!!message['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']){interactiveMessage['\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']=message['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'];}Object['\u0061\u0073\u0073\u0069\u0067\u006E'](interactiveMessage['\u0068\u0065\u0061\u0064\u0065\u0072'],m);}if(hasOptionalProperty(message,"\u0061\u0075\u0064\u0069\u006F\u0046\u006F\u006F\u0074\u0065\u0072")){const{"audioMessage":audioMessage}=await prepareWAMessageMedia({"audio":message['\u0061\u0075\u0064\u0069\u006F\u0046\u006F\u006F\u0074\u0065\u0072']},options);interactiveMessage['\u0066\u006F\u006F\u0074\u0065\u0072']={'\u0061\u0075\u0064\u0069\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065':audioMessage,'\u0068\u0061\u0073\u004D\u0065\u0064\u0069\u0061\u0041\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074':!![]};}else if(hasOptionalProperty(message,"\u0066\u006F\u006F\u0074\u0065\u0072")){interactiveMessage['\u0066\u006F\u006F\u0074\u0065\u0072']={'\u0074\u0065\u0078\u0074':message['\u0066\u006F\u006F\u0074\u0065\u0072']};}m={'\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':interactiveMessage};}else if(hasNonNullishProperty(message,"\u0063\u0061\u0072\u0064\u0073")){let _0x9a72f;const interactiveMessage={'\u0063\u0061\u0072\u006F\u0075\u0073\u0065\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u0063\u0061\u0072\u0064\u0073':await Promise['\u0061\u006C\u006C'](message['\u0063\u0061\u0072\u0064\u0073']['\u006D\u0061\u0070'](async card=>{let _0x3b5fd;let carouselHeader={};_0x3b5fd=655162^655165;if(hasNonNullishProperty(card,"tcudorp".split("").reverse().join(""))){carouselHeader['\u0070\u0072\u006F\u0064\u0075\u0063\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=await prepareProductMessage(card,options);}else{carouselHeader=await prepareWAMessageMedia(card,options)['\u0063\u0061\u0074\u0063\u0068'](()=>({}));}const isValidHeader=hasValidCarouselHeader(carouselHeader);if(!isValidHeader){throw new Boom("\u0049\u006E\u0076\u0061\u006C\u0069\u0064\u0020\u006D\u0065\u0064\u0069\u0061\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006F\u0072\u0020\u0063\u0061\u0072\u006F\u0075\u0073\u0065\u006C\u0020\u0063\u0061\u0072\u0064",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}const carouselCard={"nativeFlowMessage":prepareNativeFlowButtons(card['\u006E\u0061\u0074\u0069\u0076\u0065\u0046\u006C\u006F\u0077']?card:[])};if(hasOptionalProperty(card,"txet".split("").reverse().join(""))){carouselCard['\u0062\u006F\u0064\u0079']={"text":card['\u0074\u0065\u0078\u0074']};}else{if(hasOptionalProperty(card,"\u0063\u0061\u0070\u0074\u0069\u006F\u006E")){carouselCard['\u0068\u0065\u0061\u0064\u0065\u0072']={'\u0074\u0069\u0074\u006C\u0065':card['\u0074\u0069\u0074\u006C\u0065']||'',"subtitle":card['\u0073\u0075\u0062\u0074\u0069\u0074\u006C\u0065']||'',"hasMediaAttachment":isValidHeader};carouselCard['\u0062\u006F\u0064\u0079']={'\u0074\u0065\u0078\u0074':card['\u0063\u0061\u0070\u0074\u0069\u006F\u006E']};}if(hasOptionalProperty(card,"\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C")&&!!card['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']){carouselCard['\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C']=card['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'];}Object['\u0061\u0073\u0073\u0069\u0067\u006E'](carouselCard['\u0068\u0065\u0061\u0064\u0065\u0072'],carouselHeader);}if(hasOptionalProperty(card,"\u0061\u0075\u0064\u0069\u006F\u0046\u006F\u006F\u0074\u0065\u0072")){const{"audioMessage":audioMessage}=await prepareWAMessageMedia({'\u0061\u0075\u0064\u0069\u006F':card['\u0061\u0075\u0064\u0069\u006F\u0046\u006F\u006F\u0074\u0065\u0072']},options);carouselCard['\u0066\u006F\u006F\u0074\u0065\u0072']={'\u0061\u0075\u0064\u0069\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065':audioMessage,'\u0068\u0061\u0073\u004D\u0065\u0064\u0069\u0061\u0041\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074':!![]};}else if(hasOptionalProperty(card,"retoof".split("").reverse().join(""))){carouselCard['\u0066\u006F\u006F\u0074\u0065\u0072']={'\u0074\u0065\u0078\u0074':card['\u0066\u006F\u006F\u0074\u0065\u0072']};}return carouselCard;})),'\u0063\u0061\u0072\u006F\u0075\u0073\u0065\u006C\u0043\u0061\u0072\u0064\u0054\u0079\u0070\u0065':CarouselCardType['\u0055\u004E\u004B\u004E\u004F\u0057\u004E'],'\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0065\u0072\u0073\u0069\u006F\u006E':1}};_0x9a72f=378311^378304;if(hasOptionalProperty(message,"\u0074\u0065\u0078\u0074")){interactiveMessage['\u0062\u006F\u0064\u0079']={'\u0074\u0065\u0078\u0074':message['\u0074\u0065\u0078\u0074']};}if(hasOptionalProperty(message,"retoof".split("").reverse().join(""))){interactiveMessage['\u0066\u006F\u006F\u0074\u0065\u0072']={"text":message['\u0066\u006F\u006F\u0074\u0065\u0072']};}m={'\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':interactiveMessage};}else if(hasNonNullishProperty(message,"morFtnemyaPtseuqer".split("").reverse().join(""))){var _0xdade9b=(900035^900038)+(985122^985123);const requestPaymentMessage={'\u0061\u006D\u006F\u0075\u006E\u0074':{'\u0063\u0075\u0072\u0072\u0065\u006E\u0063\u0079\u0043\u006F\u0064\u0065':'IDR','\u006F\u0066\u0066\u0073\u0065\u0074':1000,"value":1000},"amount1000":1000,'\u0063\u0075\u0072\u0072\u0065\u006E\u0063\u0079\u0043\u006F\u0064\u0065\u0049\u0073\u006F\u0034\u0032\u0031\u0037':"\u0049\u0044\u0052",'\u0065\u0078\u0070\u0069\u0072\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070':Date['\u006E\u006F\u0077'](),"noteMessage":m,"requestFrom":message['\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u0050\u0061\u0079\u006D\u0065\u006E\u0074\u0046\u0072\u006F\u006D'],...message};_0xdade9b=(483993^483994)+(729116^729116);delete requestPaymentMessage['\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u0050\u0061\u0079\u006D\u0065\u006E\u0074\u0046\u0072\u006F\u006D'];if(hasNonNullishProperty(m,"\u0065\u0078\u0074\u0065\u006E\u0064\u0065\u0064\u0054\u0065\u0078\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065")||hasNonNullishProperty(m,"\u0073\u0074\u0069\u0063\u006B\u0065\u0072\u004D\u0065\u0073\u0073\u0061\u0067\u0065")){Object['\u0061\u0073\u0073\u0069\u0067\u006E'](requestPaymentMessage['\u006E\u006F\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065'],m);}else{throw new Boom("\u0049\u006E\u0076\u0061\u006C\u0069\u0064\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006F\u0072\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u0020\u0070\u0061\u0079\u006D\u0065\u006E\u0074\u0020\u006E\u006F\u0074\u0065\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065",{"statusCode":400});}m={"requestPaymentMessage":requestPaymentMessage};}else if(hasNonNullishProperty(message,"\u0069\u006E\u0076\u006F\u0069\u0063\u0065\u004E\u006F\u0074\u0065")){let _0x08053a;const attachment=m['\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']||m['\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065'];_0x08053a=(576205^576201)+(785658^785650);const type=Object['\u006B\u0065\u0079\u0073'](m)[361355^361355]['\u0072\u0065\u0070\u006C\u0061\u0063\u0065']("\u004D\u0065\u0073\u0073\u0061\u0067\u0065",'')['\u0074\u006F\u0055\u0070\u0070\u0065\u0072\u0043\u0061\u0073\u0065']();const invoiceMessage={'\u0061\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074\u0054\u0079\u0070\u0065':proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0049\u006E\u0076\u006F\u0069\u0063\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0041\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074\u0054\u0079\u0070\u0065'][type==="\u0044\u004F\u0043\u0055\u004D\u0045\u004E\u0054"?"\u0050\u0044\u0046":"\u0049\u004D\u0041\u0047\u0045"],'\u006E\u006F\u0074\u0065':message['\u0069\u006E\u0076\u006F\u0069\u0063\u0065\u004E\u006F\u0074\u0065']};if(attachment){const{"directPath":directPath,'\u0066\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036':fileEncSha256,"fileSha256":fileSha256,'\u006A\u0070\u0065\u0067\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C':jpegThumbnail=undefined,"mediaKey":mediaKey,"mediaKeyTimestamp":mediaKeyTimestamp,"mimetype":mimetype}=attachment;Object['\u0061\u0073\u0073\u0069\u0067\u006E'](invoiceMessage,{'\u0061\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074\u0044\u0069\u0072\u0065\u0063\u0074\u0050\u0061\u0074\u0068':directPath,'\u0061\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074\u0046\u0069\u006C\u0065\u0045\u006E\u0063\u0053\u0068\u0061\u0032\u0035\u0036':fileEncSha256,'\u0061\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074\u0046\u0069\u006C\u0065\u0053\u0068\u0061\u0032\u0035\u0036':fileSha256,"attachmentJpegThumbnail":jpegThumbnail,"attachmentMediaKey":mediaKey,'\u0061\u0074\u0074\u0061\u0063\u0068\u006D\u0065\u006E\u0074\u004D\u0065\u0064\u0069\u0061\u004B\u0065\u0079\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070':mediaKeyTimestamp,"attachmentMimetype":mimetype,'\u0074\u006F\u006B\u0065\u006E':generateMessageIDV2()});}else{throw new Boom("\u0049\u006E\u0076\u0061\u006C\u0069\u0064\u0020\u006D\u0065\u0064\u0069\u0061\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006F\u0072\u0020\u0069\u006E\u0076\u006F\u0069\u0063\u0065\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065",{'\u0073\u0074\u0061\u0074\u0075\u0073\u0043\u006F\u0064\u0065':400});}m={'\u0069\u006E\u0076\u006F\u0069\u0063\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':invoiceMessage};}if(hasOptionalProperty(message,"\u0065\u0078\u0074\u0065\u0072\u006E\u0061\u006C\u0041\u0064\u0052\u0065\u0070\u006C\u0079")&&!!message['\u0065\u0078\u0074\u0065\u0072\u006E\u0061\u006C\u0041\u0064\u0052\u0065\u0070\u006C\u0079']){const messageType=Object['\u006B\u0065\u0079\u0073'](m)[122388^122388];const key=m[messageType];const content=message['\u0065\u0078\u0074\u0065\u0072\u006E\u0061\u006C\u0041\u0064\u0052\u0065\u0070\u006C\u0079'];if("lianbmuht".split("").reverse().join("")in content&&!Buffer['\u0069\u0073\u0042\u0075\u0066\u0066\u0065\u0072'](content['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'])){throw new Boom("\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C\u0020\u006D\u0075\u0073\u0074\u0020\u0069\u006E\u0020\u0062\u0075\u0066\u0066\u0065\u0072\u0020\u0074\u0079\u0070\u0065",{"statusCode":400});}if(!content['\u0075\u0072\u006C']||typeof content['\u0075\u0072\u006C']!=="gnirts".split("").reverse().join("")){content['\u0075\u0072\u006C']=DONATE_URL;}const externalAdReply={...content,"body":content['\u0062\u006F\u0064\u0079'],'\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065':content['\u006D\u0065\u0064\u0069\u0061\u0054\u0079\u0070\u0065']||230089^230088,"mediaUrl":content['\u0075\u0072\u006C'],"renderLargerThumbnail":content['\u006C\u0061\u0072\u0067\u0065\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'],"sourceUrl":content['\u0075\u0072\u006C'],"thumbnail":content['\u0074\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'],"thumbnailUrl":content['\u0075\u0072\u006C']+"\u003F\u0075\u0070\u0064\u0061\u0074\u0065\u003D"+Date['\u006E\u006F\u0077'](),"title":content['\u0074\u0069\u0074\u006C\u0065']||LIBRARY_NAME};delete externalAdReply['\u0073\u0075\u0062\u0054\u0069\u0074\u006C\u0065'];delete externalAdReply['\u006C\u0061\u0072\u0067\u0065\u0054\u0068\u0075\u006D\u0062\u006E\u0061\u0069\u006C'];delete externalAdReply['\u0075\u0072\u006C'];if("\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F"in key&&!!key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u0065\u0078\u0074\u0065\u0072\u006E\u0061\u006C\u0041\u0064\u0052\u0065\u0070\u006C\u0079']={...key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u0065\u0078\u0074\u0065\u0072\u006E\u0061\u006C\u0041\u0064\u0052\u0065\u0070\u006C\u0079'],...externalAdReply};}else if(key){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={"externalAdReply":externalAdReply};}}if(hasOptionalProperty(message,"\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0073")&&message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0073']?.length||hasOptionalProperty(message,"\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0041\u006C\u006C")&&message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0041\u006C\u006C']){const messageType=Object['\u006B\u0065\u0079\u0073'](m)[651006^651006];const key=m[messageType];if(key&&"ofnItxetnoc".split("").reverse().join("")in key){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']=key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']||{};if(message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0073']?.length){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0065\u0064\u004A\u0069\u0064']=message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0073'];}if(message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0041\u006C\u006C']){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u006E\u006F\u006E\u004A\u0069\u0064\u004D\u0065\u006E\u0074\u0069\u006F\u006E\u0073']=130717^130716;}}else if(key){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={'\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0065\u0064\u004A\u0069\u0064':message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0073'],'\u006E\u006F\u006E\u004A\u0069\u0064\u004D\u0065\u006E\u0074\u0069\u006F\u006E\u0073':message['\u006D\u0065\u006E\u0074\u0069\u006F\u006E\u0041\u006C\u006C']?738267^738266:171279^171279};}}if(hasOptionalProperty(message,"ofnItxetnoc".split("").reverse().join(""))&&!!message['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']){var _0xge7a0g=(217030^217038)+(594989^594980);const messageType=Object['\u006B\u0065\u0079\u0073'](m)[783321^783321];_0xge7a0g='\u0065\u0062\u0071\u0067\u0067\u006E';const key=m[messageType];if("ofnItxetnoc".split("").reverse().join("")in key&&!!key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={...key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F'],...message['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']};}else if(key){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']=message['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F'];}}if(hasOptionalProperty(message,"\u0067\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073")&&!!message['\u0067\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073']){const messageType=Object['\u006B\u0065\u0079\u0073'](m)[484799^484799];var _0x66a5f=(129002^129005)+(450553^450557);const key=m[messageType];_0x66a5f='\u006C\u0069\u006B\u006E\u0068\u006C';if("ofnItxetnoc".split("").reverse().join("")in key&&!!key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u0069\u0073\u0047\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073']=message['\u0067\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073'];}else if(key){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={'\u0069\u0073\u0047\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073':message['\u0067\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073']};}m={'\u0067\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0032':{'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':m}};delete message['\u0067\u0072\u006F\u0075\u0070\u0053\u0074\u0061\u0074\u0075\u0073'];}if(hasOptionalProperty(message,"reliops".split("").reverse().join(""))&&!!message['\u0073\u0070\u006F\u0069\u006C\u0065\u0072']){let _0xf2fg9d;const messageType=Object['\u006B\u0065\u0079\u0073'](m)[939496^939496];_0xf2fg9d="npheki".split("").reverse().join("");var _0x34b79b=(742561^742567)+(198251^198243);const key=m[messageType];_0x34b79b=(207019^207010)+(655332^655333);if("\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F"in key&&!!key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u0069\u0073\u0053\u0070\u006F\u0069\u006C\u0065\u0072']=message['\u0073\u0070\u006F\u0069\u006C\u0065\u0072'];}else if(key){key['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={"isSpoiler":message['\u0073\u0070\u006F\u0069\u006C\u0065\u0072']};}m={"spoilerMessage":{"message":m}};delete message['\u0073\u0070\u006F\u0069\u006C\u0065\u0072'];}else if(hasOptionalProperty(message,"\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u0041\u0073\u0054\u0065\u006D\u0070\u006C\u0061\u0074\u0065")&&!!message['\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u0041\u0073\u0054\u0065\u006D\u0070\u006C\u0061\u0074\u0065']){if(!m['\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']){throw new Boom("\u0049\u006E\u0076\u0061\u006C\u0069\u0064\u0020\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006F\u0072\u0020\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065",{"statusCode":400});}m={'\u0074\u0065\u006D\u0070\u006C\u0061\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0054\u0065\u006D\u0070\u006C\u0061\u0074\u0065':m['\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065'],"templateId":message['\u0069\u0064']||"-etalpmet".split("").reverse().join("")+Date['\u006E\u006F\u0077']()}};delete message['\u0069\u006E\u0074\u0065\u0072\u0061\u0063\u0074\u0069\u0076\u0065\u0041\u0073\u0054\u0065\u006D\u0070\u006C\u0061\u0074\u0065'];}if(hasOptionalProperty(message,"laremehpe".split("").reverse().join(""))&&!!message['\u0065\u0070\u0068\u0065\u006D\u0065\u0072\u0061\u006C']){m={"ephemeralMessage":{'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':m}};delete message['\u0065\u0070\u0068\u0065\u006D\u0065\u0072\u0061\u006C'];}if(hasOptionalProperty(message,"eittoLsi".split("").reverse().join(""))&&!!message['\u0069\u0073\u004C\u006F\u0074\u0074\u0069\u0065']){m={"lottieStickerMessage":{"message":m}};}else if(hasOptionalProperty(message,"\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065")&&!!message['\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065']){m={'\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{"message":m}};}else if(hasOptionalProperty(message,"2VecnOweiv".split("").reverse().join(""))&&!!message['\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u0056\u0032']){m={'\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0032':{'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':m}};delete message['\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u0056\u0032'];}else if(hasOptionalProperty(message,"\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u0056\u0032\u0045\u0078\u0074\u0065\u006E\u0073\u0069\u006F\u006E")&&!!message['\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u0056\u0032\u0045\u0078\u0074\u0065\u006E\u0073\u0069\u006F\u006E']){m={'\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0056\u0032\u0045\u0078\u0074\u0065\u006E\u0073\u0069\u006F\u006E':{'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':m}};delete message['\u0076\u0069\u0065\u0077\u004F\u006E\u0063\u0065\u0056\u0032\u0045\u0078\u0074\u0065\u006E\u0073\u0069\u006F\u006E'];}if(hasOptionalProperty(message,"tide".split("").reverse().join(""))){m={'\u0070\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065':{'\u006B\u0065\u0079':message['\u0065\u0064\u0069\u0074'],'\u0065\u0064\u0069\u0074\u0065\u0064\u004D\u0065\u0073\u0073\u0061\u0067\u0065':m,'\u0074\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070\u004D\u0073':Date['\u006E\u006F\u0077'](),'\u0074\u0079\u0070\u0065':WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0050\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0054\u0079\u0070\u0065']['\u004D\u0045\u0053\u0053\u0041\u0047\u0045\u005F\u0045\u0044\u0049\u0054']}};}if(options?.messageSecret&&!m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']?.messageSecret){m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={...(m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']??{}),'\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074':options['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074']};}if(shouldIncludeReportingToken(m)){m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']=m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']||{};if(!m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074']){m['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0053\u0065\u0063\u0072\u0065\u0074']=randomBytes(895080^895048);}}return WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065'](m);};_0xab43b=679018^679016;export const generateWAMessageFromContent=(jid,message,options)=>{if(!options['\u0074\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070']){options['\u0074\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070']=new Date();}let _0x2g808f;const innerMessage=normalizeMessageContent(message);_0x2g808f=405239^405233;const messageContextInfo=message['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0043\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F'];const key=getContentType(innerMessage);const timestamp=unixTimestampSeconds(options['\u0074\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070']);var _0xec6b7g=(309305^309308)+(947210^947212);const isNewsletter=isJidNewsletter(jid);_0xec6b7g=(448852^448852)+(753290^753291);const{"quoted":quoted,'\u0075\u0073\u0065\u0072\u004A\u0069\u0064':userJid}=options;if(quoted){const participant=quoted['\u006B\u0065\u0079']['\u0066\u0072\u006F\u006D\u004D\u0065']?userJid:quoted['\u0070\u0061\u0072\u0074\u0069\u0063\u0069\u0070\u0061\u006E\u0074']||quoted['\u006B\u0065\u0079']['\u0070\u0061\u0072\u0074\u0069\u0063\u0069\u0070\u0061\u006E\u0074']||quoted['\u006B\u0065\u0079']['\u0072\u0065\u006D\u006F\u0074\u0065\u004A\u0069\u0064'];let _0x6f_0x6f9;let quotedMsg=normalizeMessageContent(quoted['\u006D\u0065\u0073\u0073\u0061\u0067\u0065']);_0x6f_0x6f9="necoip".split("").reverse().join("");const msgType=getContentType(quotedMsg);quotedMsg=proto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065']({["msgType"]:quotedMsg[msgType]});const quotedContent=quotedMsg[msgType];if(typeof quotedContent==="\u006F\u0062\u006A\u0065\u0063\u0074"&"edContent&&"ofnItxetnoc".split("").reverse().join("")in quotedContent){delete quotedContent['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F'];}const contextInfo="ofnItxetnoc".split("").reverse().join("")in innerMessage[key]&&innerMessage[key]?.contextInfo||{};contextInfo['\u0070\u0061\u0072\u0074\u0069\u0063\u0069\u0070\u0061\u006E\u0074']=jidNormalizedUser(participant);contextInfo['\u0073\u0074\u0061\u006E\u007A\u0061\u0049\u0064']=quoted['\u006B\u0065\u0079']['\u0069\u0064'];contextInfo['\u0071\u0075\u006F\u0074\u0065\u0064\u004D\u0065\u0073\u0073\u0061\u0067\u0065']=quotedMsg;if(!isNewsletter&&jid!==quoted['\u006B\u0065\u0079']['\u0072\u0065\u006D\u006F\u0074\u0065\u004A\u0069\u0064']){contextInfo['\u0072\u0065\u006D\u006F\u0074\u0065\u004A\u0069\u0064']=quoted['\u006B\u0065\u0079']['\u0072\u0065\u006D\u006F\u0074\u0065\u004A\u0069\u0064'];}if(contextInfo&&innerMessage[key]){innerMessage[key]['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']=contextInfo;}}if(!!options?.ephemeralExpiration&&key!=="\u0070\u0072\u006F\u0074\u006F\u0063\u006F\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065"&&key!=="\u0065\u0070\u0068\u0065\u006D\u0065\u0072\u0061\u006C\u004D\u0065\u0073\u0073\u0061\u0067\u0065"&&!isNewsletter){innerMessage[key]['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']={...(innerMessage[key]['\u0063\u006F\u006E\u0074\u0065\u0078\u0074\u0049\u006E\u0066\u006F']||{}),"expiration":options['\u0065\u0070\u0068\u0065\u006D\u0065\u0072\u0061\u006C\u0045\u0078\u0070\u0069\u0072\u0061\u0074\u0069\u006F\u006E']||WA_DEFAULT_EPHEMERAL};}if(messageContextInfo?.messageSecret&&(isPnUser(jid)||isLidUser(jid))){messageContextInfo['\u0064\u0065\u0076\u0069\u0063\u0065\u004C\u0069\u0073\u0074\u004D\u0065\u0074\u0061\u0064\u0061\u0074\u0061']={'\u0072\u0065\u0063\u0069\u0070\u0069\u0065\u006E\u0074\u004B\u0065\u0079\u0048\u0061\u0073\u0068':randomBytes(795271^795277),'\u0072\u0065\u0063\u0069\u0070\u0069\u0065\u006E\u0074\u0054\u0069\u006D\u0065\u0073\u0074\u0061\u006D\u0070':unixTimestampSeconds()};messageContextInfo['\u0064\u0065\u0076\u0069\u0063\u0065\u004C\u0069\u0073\u0074\u004D\u0065\u0074\u0061\u0064\u0061\u0074\u0061\u0056\u0065\u0072\u0073\u0069\u006F\u006E']=904020^904022;}message=WAProto['\u004D\u0065\u0073\u0073\u0061\u0067\u0065']['\u0063\u0072\u0065\u0061\u0074\u0065'](message);const messageJSON={"key":{'\u0072\u0065\u006D\u006F\u0074\u0065\u004A\u0069\u0064':jid,'\u0066\u0072\u006F\u006D\u004D\u0065':!![],"id":options?.messageId||generateMessageIDV2()},'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':message,"messageTimestamp":timestamp,"messageStubParameters":[],"participant":isJidGroup(jid)||isJidStatusBroadcast(jid)?userJid:undefined,'\u0073\u0074\u0061\u0074\u0075\u0073':WAMessageStatus['\u0050\u0045\u004E\u0044\u0049\u004E\u0047']};return WAProto['\u0057\u0065\u0062\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u0049\u006E\u0066\u006F']['\u0066\u0072\u006F\u006D\u004F\u0062\u006A\u0065\u0063\u0074'](messageJSON);};export const generateWAMessage=async(jid,content,options)=>{options['\u006C\u006F\u0067\u0067\u0065\u0072']=options?.logger?.child({'\u006D\u0073\u0067\u0049\u0064':options['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0049\u0064']});if(jid){options['\u006A\u0069\u0064']=jid;}return generateWAMessageFromContent(jid,await generateWAMessageContent(content,options),options);};export const getContentType=content=>{if(content){const keys=Object['\u006B\u0065\u0079\u0073'](content);const key=keys['\u0066\u0069\u006E\u0064'](k=>(k==="noitasrevnoc".split("").reverse().join("")||k['\u0069\u006E\u0063\u006C\u0075\u0064\u0065\u0073']("egasseM".split("").reverse().join("")))&&k!=="\u0073\u0065\u006E\u0064\u0065\u0072\u004B\u0065\u0079\u0044\u0069\u0073\u0074\u0072\u0069\u0062\u0075\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065");return key;}};export const normalizeMessageContent=content=>{if(!content){return undefined;}for(let i=716811^716811;i<(241316^241313);i++){let _0xddef;const inner=_0xc2_0x3ec(content);_0xddef=774006^774015;if(!inner){break;}content=inner['\u006D\u0065\u0073\u0073\u0061\u0067\u0065'];}return content;function _0xc2_0x3ec(message){return message?.associatedChildMessage||message?.botForwardedMessage||message?.botInvokeMessage||message?.botTaskMessage||message?.documentWithCaptionMessage||message?.editedMessage||message?.ephemeralMessage||message?.eventCoverImage||message?.groupMentionedMessage||message?.groupStatusMentionMessage||message?.groupStatusMessage||message?.groupStatusMessageV2||message?.limitSharingMessage||message?.lottieStickerMessage||message?.newsletterAdminProfileMessage||message?.newsletterAdminProfileMessageV2||message?.newsletterAdminProfileStatusMessage||message?.pollCreationMessageV4||message?.pollCreationOptionImageMessage||message?.questionMessage||message?.questionReplyMessage||message?.spoilerMessage||message?.statusAddYours||message?.statusMentionMessage||message?.viewOnceMessage||message?.viewOnceMessageV2||message?.viewOnceMessageV2Extension;}};var _0xd2_0x459=(974492^974490)+(509832^509836);export const extractMessageContent=content=>{var _0x8642b=(692949^692949)+(666904^666904);const extractFromTemplateMessage=msg=>{if(msg['\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']){return{'\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065':msg['\u0069\u006D\u0061\u0067\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065']};}else if(msg['\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']){return{"documentMessage":msg['\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u004D\u0065\u0073\u0073\u0061\u0067\u0065']};}else if(msg['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065']){return{'\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065':msg['\u0076\u0069\u0064\u0065\u006F\u004D\u0065\u0073\u0073\u0061\u0067\u0065']};}else if(msg['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']){return{'\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065':msg['\u006C\u006F\u0063\u0061\u0074\u0069\u006F\u006E\u004D\u0065\u0073\u0073\u0061\u0067\u0065']};}else{return{'\u0063\u006F\u006E\u0076\u0065\u0072\u0073\u0061\u0074\u0069\u006F\u006E':"\u0063\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074"in msg?msg['\u0063\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074']:"txeTtnetnoCdetardyh".split("").reverse().join("")in msg?msg['\u0068\u0079\u0064\u0072\u0061\u0074\u0065\u0064\u0043\u006F\u006E\u0074\u0065\u006E\u0074\u0054\u0065\u0078\u0074']:''};}};_0x8642b=(650375^650373)+(934744^934748);content=normalizeMessageContent(content);if(content?.buttonsMessage){return extractFromTemplateMessage(content['\u0062\u0075\u0074\u0074\u006F\u006E\u0073\u004D\u0065\u0073\u0073\u0061\u0067\u0065']);}if(content?.templateMessage?.hydratedFourRowTemplate){return extractFromTemplateMessage(content?.templateMessage?.hydratedFourRowTemplate);}if(content?.templateMessage?.hydratedTemplate){return extractFromTemplateMessage(content?.templateMessage?.hydratedTemplate);}if(content?.templateMessage?.fourRowTemplate){return extractFromTemplateMessage(content?.templateMessage?.fourRowTemplate);}return content;};_0xd2_0x459=(163263^163258)+(841631^841623);export const getDevice=id=>new RegExp("$}81{.A3^".split("").reverse().join(""),"")['\u0074\u0065\u0073\u0074'](id)?"\u0069\u006F\u0073":new RegExp('\u005E\u0033\u0045\u002E\u007B\u0032\u0030\u007D\u0024',"")['\u0074\u0065\u0073\u0074'](id)?"bew".split("").reverse().join(""):new RegExp('\u005E\u0028\u002E\u007B\u0032\u0031\u007D\u007C\u002E\u007B\u0033\u0032\u007D\u0029\u0024',"")['\u0074\u0065\u0073\u0074'](id)?"\u0061\u006E\u0064\u0072\u006F\u0069\u0064":new RegExp('\u005E\u0028\u0033\u0046\u007C\u002E\u007B\u0031\u0038\u007D\u0024\u0029',"")['\u0074\u0065\u0073\u0074'](id)?"\u0064\u0065\u0073\u006B\u0074\u006F\u0070":"\u0075\u006E\u006B\u006E\u006F\u0077\u006E";export const updateMessageWithReceipt=(msg,receipt)=>{msg['\u0075\u0073\u0065\u0072\u0052\u0065\u0063\u0065\u0069\u0070\u0074']=msg['\u0075\u0073\u0065\u0072\u0052\u0065\u0063\u0065\u0069\u0070\u0074']||[];const recp=msg['\u0075\u0073\u0065\u0072\u0052\u0065\u0063\u0065\u0069\u0070\u0074']['\u0066\u0069\u006E\u0064'](m=>m['\u0075\u0073\u0065\u0072\u004A\u0069\u0064']===receipt['\u0075\u0073\u0065\u0072\u004A\u0069\u0064']);if(recp){Object['\u0061\u0073\u0073\u0069\u0067\u006E'](recp,receipt);}else{msg['\u0075\u0073\u0065\u0072\u0052\u0065\u0063\u0065\u0069\u0070\u0074']['\u0070\u0075\u0073\u0068'](receipt);}};var _0xfe_0xg2d=(258811^258808)+(696363^696365);export const updateMessageWithReaction=(msg,reaction)=>{var _0x7e20gb=(768514^768517)+(576739^576741);const authorID=getKeyAuthor(reaction['\u006B\u0065\u0079']);_0x7e20gb="qjnoji".split("").reverse().join("");const reactions=(msg['\u0072\u0065\u0061\u0063\u0074\u0069\u006F\u006E\u0073']||[])['\u0066\u0069\u006C\u0074\u0065\u0072'](r=>getKeyAuthor(r['\u006B\u0065\u0079'])!==authorID);reaction['\u0074\u0065\u0078\u0074']=reaction['\u0074\u0065\u0078\u0074']||'';reactions['\u0070\u0075\u0073\u0068'](reaction);msg['\u0072\u0065\u0061\u0063\u0074\u0069\u006F\u006E\u0073']=reactions;};_0xfe_0xg2d=(916913^916915)+(864697^864699);var _0xa31b2a=(631418^631416)+(546017^546025);export const updateMessageWithPollUpdate=(msg,update)=>{var _0x816gg=(707450^707443)+(682094^682091);const authorID=getKeyAuthor(update['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079']);_0x816gg=(857410^857418)+(537845^537846);const reactions=(msg['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u0073']||[])['\u0066\u0069\u006C\u0074\u0065\u0072'](r=>getKeyAuthor(r['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079'])!==authorID);if(update['\u0076\u006F\u0074\u0065']?.selectedOptions?.length){reactions['\u0070\u0075\u0073\u0068'](update);}msg['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u0073']=reactions;};_0xa31b2a=(723332^723334)+(555574^555570);export const updateMessageWithEventResponse=(msg,update)=>{let _0x22a4fg;const authorID=getKeyAuthor(update['\u0065\u0076\u0065\u006E\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079']);_0x22a4fg=168940^168936;const responses=(msg['\u0065\u0076\u0065\u006E\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u0073']||[])['\u0066\u0069\u006C\u0074\u0065\u0072'](r=>getKeyAuthor(r['\u0065\u0076\u0065\u006E\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079'])!==authorID);responses['\u0070\u0075\u0073\u0068'](update);msg['\u0065\u0076\u0065\u006E\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u0073']=responses;};function _0xfg_0xe66({'\u006D\u0065\u0073\u0073\u0061\u0067\u0065':message,'\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u0073':pollUpdates},meId,_0xc5b1b){const _0x636f=message?.pollCreationMessage?.options||message?.pollCreationMessageV2?.options||message?.pollCreationMessageV3?.options||[];_0xc5b1b='\u0061\u0068\u0063\u0068\u0064\u006F';const _0x935d=_0x636f['\u0072\u0065\u0064\u0075\u0063\u0065']((acc,opt)=>{const hash=sha256(Buffer['\u0066\u0072\u006F\u006D'](opt['\u006F\u0070\u0074\u0069\u006F\u006E\u004E\u0061\u006D\u0065']||''))['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']();acc[hash]={"name":opt['\u006F\u0070\u0074\u0069\u006F\u006E\u004E\u0061\u006D\u0065']||'','\u0076\u006F\u0074\u0065\u0072\u0073':[]};return acc;},{});for(const _0xfcb87d of pollUpdates||[]){const{"vote":vote}=_0xfcb87d;if(!vote){continue;}for(const _0x3d_0x757 of vote['\u0073\u0065\u006C\u0065\u0063\u0074\u0065\u0064\u004F\u0070\u0074\u0069\u006F\u006E\u0073']||[]){const hash=_0x3d_0x757['\u0074\u006F\u0053\u0074\u0072\u0069\u006E\u0067']();var _0x8450ec=(930449^930455)+(805339^805337);let _0x6g97ag=_0x935d[hash];_0x8450ec=(911417^911416)+(612723^612731);if(!_0x6g97ag){_0x935d[hash]={'\u006E\u0061\u006D\u0065':'Unknown','\u0076\u006F\u0074\u0065\u0072\u0073':[]};_0x6g97ag=_0x935d[hash];}_0x935d[hash]['\u0076\u006F\u0074\u0065\u0072\u0073']['\u0070\u0075\u0073\u0068'](getKeyAuthor(_0xfcb87d['\u0070\u006F\u006C\u006C\u0055\u0070\u0064\u0061\u0074\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079'],meId));}}return Object['\u0076\u0061\u006C\u0075\u0065\u0073'](_0x935d);}export{_0xfg_0xe66 as getAggregateVotesInPollMessage};function _0x535ec({"eventResponses":eventResponses},meId){var _0xadefa=(598953^598944)+(718308^718308);const _0xa730e=["\u0047\u004F\u0049\u004E\u0047","GNIOG_TON".split("").reverse().join(""),"\u004D\u0041\u0059\u0042\u0045"];_0xadefa=(509721^509722)+(259530^259533);const _0xa7e45c={};for(const _0x3d654e of _0xa730e){_0xa7e45c[_0x3d654e]={"response":_0x3d654e,'\u0072\u0065\u0073\u0070\u006F\u006E\u0064\u0065\u0072\u0073':[]};}for(const _0x4af of eventResponses||[]){const _0x3cf=_0x4af['\u0065\u0076\u0065\u006E\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065']||"NWONKNU".split("").reverse().join("");if(_0x3cf!=="\u0055\u004E\u004B\u004E\u004F\u0057\u004E"&&_0xa7e45c[_0x3cf]){_0xa7e45c[_0x3cf]['\u0072\u0065\u0073\u0070\u006F\u006E\u0064\u0065\u0072\u0073']['\u0070\u0075\u0073\u0068'](getKeyAuthor(_0x4af['\u0065\u0076\u0065\u006E\u0074\u0052\u0065\u0073\u0070\u006F\u006E\u0073\u0065\u004D\u0065\u0073\u0073\u0061\u0067\u0065\u004B\u0065\u0079'],meId));}}return Object['\u0076\u0061\u006C\u0075\u0065\u0073'](_0xa7e45c);}export{_0x535ec as getAggregateResponsesInEventMessage};var _0xacg3d=(132259^132262)+(263948^263947);export const aggregateMessageKeysNotFromMe=keys=>{const keyMap={};for(const{'\u0072\u0065\u006D\u006F\u0074\u0065\u004A\u0069\u0064':remoteJid,'\u0069\u0064':id,"participant":participant,'\u0066\u0072\u006F\u006D\u004D\u0065':fromMe}of keys){if(!fromMe){const uqKey=`${remoteJid}:${participant||''}`;if(!keyMap[uqKey]){keyMap[uqKey]={'\u006A\u0069\u0064':remoteJid,'\u0070\u0061\u0072\u0074\u0069\u0063\u0069\u0070\u0061\u006E\u0074':participant,'\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0049\u0064\u0073':[]};}keyMap[uqKey]['\u006D\u0065\u0073\u0073\u0061\u0067\u0065\u0049\u0064\u0073']['\u0070\u0075\u0073\u0068'](id);}}return Object['\u0076\u0061\u006C\u0075\u0065\u0073'](keyMap);};_0xacg3d='\u006D\u0062\u006B\u006C\u0061\u0062';const REUPLOAD_REQUIRED_STATUS=[683996^683590,488997^489393];export const downloadMediaMessage=async(message,type,options,ctx)=>{let _0xbg7c;const result=await _0x1c9dc()['\u0063\u0061\u0074\u0063\u0068'](async error=>{if(ctx&&typeof error?.status==="\u006E\u0075\u006D\u0062\u0065\u0072"&&REUPLOAD_REQUIRED_STATUS['\u0069\u006E\u0063\u006C\u0075\u0064\u0065\u0073'](error['\u0073\u0074\u0061\u0074\u0075\u0073'])){ctx['\u006C\u006F\u0067\u0067\u0065\u0072']['\u0
|