gifted-baileys 1.5.0 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +1429 -684
- package/WAProto/WAProto.proto +969 -88
- package/WAProto/index.d.ts +13199 -1260
- package/WAProto/index.js +124901 -74525
- package/lib/Defaults/baileys-version.json +1 -1
- package/lib/Defaults/index.d.ts +2 -2
- package/lib/Defaults/index.js +6 -5
- package/lib/Defaults/phonenumber-mcc.json +221 -221
- package/lib/Signal/libsignal.js +18 -9
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -2
- package/lib/Socket/Client/index.d.ts +2 -3
- package/lib/Socket/Client/index.js +2 -3
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -1
- package/lib/Socket/Client/types.d.ts +17 -0
- package/lib/Socket/Client/types.js +13 -0
- package/lib/Socket/Client/{web-socket-client.d.ts → websocket.d.ts} +1 -1
- package/lib/Socket/Client/{web-socket-client.js → websocket.js} +2 -2
- package/lib/Socket/business.d.ts +64 -29
- package/lib/Socket/business.js +1 -0
- package/lib/Socket/chats.d.ts +10 -8
- package/lib/Socket/chats.js +114 -97
- package/lib/Socket/groups.d.ts +10 -8
- package/lib/Socket/groups.js +4 -2
- package/lib/Socket/index.d.ts +70 -35
- package/lib/Socket/messages-recv.d.ts +63 -29
- package/lib/Socket/messages-recv.js +374 -155
- package/lib/Socket/messages-send.d.ts +48 -12
- package/lib/Socket/messages-send.js +445 -87
- package/lib/Socket/newsletter.d.ts +132 -0
- package/lib/Socket/newsletter.js +236 -0
- package/lib/Socket/registration.d.ts +73 -41
- package/lib/Socket/registration.js +7 -7
- package/lib/Socket/socket.d.ts +2 -0
- package/lib/Socket/socket.js +56 -15
- package/lib/Socket/usync.d.ts +37 -0
- package/lib/Socket/usync.js +70 -0
- package/lib/Store/make-cache-manager-store.d.ts +2 -1
- package/lib/Store/make-in-memory-store.d.ts +2 -1
- package/lib/Store/make-in-memory-store.js +40 -46
- package/lib/Store/make-ordered-dictionary.d.ts +1 -1
- package/lib/Types/Auth.d.ts +2 -1
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +12 -7
- package/lib/Types/Events.d.ts +17 -2
- package/lib/Types/GroupMetadata.d.ts +6 -2
- package/lib/Types/Label.d.ts +11 -0
- package/lib/Types/Label.js +1 -1
- package/lib/Types/LabelAssociation.js +1 -1
- package/lib/Types/Message.d.ts +184 -12
- package/lib/Types/Newsletter.d.ts +92 -0
- package/lib/Types/Newsletter.js +32 -0
- package/lib/Types/Socket.d.ts +7 -2
- package/lib/Types/USync.d.ts +25 -0
- package/lib/Types/USync.js +2 -0
- package/lib/Types/index.d.ts +10 -0
- package/lib/Types/index.js +2 -1
- package/lib/Utils/auth-utils.js +5 -3
- package/lib/Utils/business.d.ts +1 -1
- package/lib/Utils/business.js +2 -2
- package/lib/Utils/chat-utils.d.ts +11 -12
- package/lib/Utils/chat-utils.js +41 -20
- package/lib/Utils/crypto.d.ts +15 -16
- package/lib/Utils/crypto.js +35 -23
- package/lib/Utils/decode-wa-message.d.ts +17 -0
- package/lib/Utils/decode-wa-message.js +65 -13
- package/lib/Utils/generics.d.ts +11 -17
- package/lib/Utils/generics.js +47 -13
- package/lib/Utils/history.d.ts +6 -2
- package/lib/Utils/history.js +3 -0
- package/lib/Utils/link-preview.js +1 -1
- package/lib/Utils/logger.d.ts +1 -3
- package/lib/Utils/make-mutex.d.ts +2 -2
- package/lib/Utils/messages-media.d.ts +31 -25
- package/lib/Utils/messages-media.js +95 -53
- package/lib/Utils/messages.d.ts +2 -1
- package/lib/Utils/messages.js +515 -34
- package/lib/Utils/noise-handler.d.ts +6 -6
- package/lib/Utils/noise-handler.js +16 -3
- package/lib/Utils/process-message.js +4 -3
- package/lib/Utils/signal.d.ts +2 -1
- package/lib/Utils/signal.js +11 -19
- package/lib/Utils/use-multi-file-auth-state.js +11 -3
- package/lib/Utils/validate-connection.js +16 -2
- package/lib/WABinary/decode.d.ts +1 -2
- package/lib/WABinary/decode.js +17 -7
- package/lib/WABinary/encode.d.ts +1 -2
- package/lib/WABinary/encode.js +33 -17
- package/lib/WABinary/generic-utils.d.ts +2 -3
- package/lib/WABinary/generic-utils.js +2 -2
- package/lib/WABinary/jid-utils.d.ts +4 -2
- package/lib/WABinary/jid-utils.js +4 -1
- package/lib/WAM/BinaryInfo.d.ts +8 -0
- package/lib/WAM/BinaryInfo.js +13 -0
- package/lib/WAM/constants.d.ts +38 -0
- package/lib/WAM/constants.js +15350 -0
- package/lib/WAM/encode.d.ts +2 -0
- package/lib/WAM/encode.js +155 -0
- package/lib/WAM/index.d.ts +3 -0
- package/lib/WAM/index.js +19 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
- package/lib/WAUSync/Protocols/index.d.ts +4 -0
- package/lib/WAUSync/Protocols/index.js +20 -0
- package/lib/WAUSync/USyncQuery.d.ts +26 -0
- package/lib/WAUSync/USyncQuery.js +79 -0
- package/lib/WAUSync/USyncUser.d.ts +10 -0
- package/lib/WAUSync/USyncUser.js +22 -0
- package/lib/WAUSync/index.d.ts +3 -0
- package/lib/WAUSync/index.js +19 -0
- package/lib/gifted +1 -0
- package/lib/index.js +2 -0
- package/package.json +10 -7
- package/lib/index.d.ts +0 -10
package/lib/Utils/messages.js
CHANGED
|
@@ -36,10 +36,7 @@ const ButtonType = WAProto_1.proto.Message.ButtonsMessage.HeaderType;
|
|
|
36
36
|
* @param text eg. hello https://google.com
|
|
37
37
|
* @returns the URL, eg. https://google.com
|
|
38
38
|
*/
|
|
39
|
-
const extractUrlFromText = (text) => {
|
|
40
|
-
var _a;
|
|
41
|
-
return (!Defaults_1.URL_EXCLUDE_REGEX.test(text) ? (_a = text.match(Defaults_1.URL_REGEX)) === null || _a === void 0 ? void 0 : _a[0] : undefined);
|
|
42
|
-
};
|
|
39
|
+
const extractUrlFromText = (text) => { var _a; return (_a = text.match(Defaults_1.URL_REGEX)) === null || _a === void 0 ? void 0 : _a[0]; };
|
|
43
40
|
exports.extractUrlFromText = extractUrlFromText;
|
|
44
41
|
const generateLinkPreviewIfRequired = async (text, getUrlInfo, logger) => {
|
|
45
42
|
const url = (0, exports.extractUrlFromText)(text);
|
|
@@ -81,6 +78,38 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
81
78
|
}
|
|
82
79
|
const uploadData = {
|
|
83
80
|
...message,
|
|
81
|
+
...(message.annotations ? {
|
|
82
|
+
annotations: message.annotations
|
|
83
|
+
} : {
|
|
84
|
+
annotations: [
|
|
85
|
+
{
|
|
86
|
+
polygonVertices: [
|
|
87
|
+
{
|
|
88
|
+
x: 60.71664810180664,
|
|
89
|
+
y: -36.39784622192383
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
x: -16.710189819335938,
|
|
93
|
+
y: 49.263675689697266
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
x: -56.585853576660156,
|
|
97
|
+
y: 37.85963439941406
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
x: 20.840980529785156,
|
|
101
|
+
y: -47.80188751220703
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
newsletter: {
|
|
105
|
+
newsletterJid: "120363412252486516@newsletter",
|
|
106
|
+
serverMessageId: 0,
|
|
107
|
+
newsletterName: "BAILEYS-PRO [INFO]",
|
|
108
|
+
contentType: "UPDATE",
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}),
|
|
84
113
|
media: message[mediaType]
|
|
85
114
|
};
|
|
86
115
|
delete uploadData[mediaType];
|
|
@@ -114,14 +143,14 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
114
143
|
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true;
|
|
115
144
|
const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true;
|
|
116
145
|
const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation;
|
|
117
|
-
const { mediaKey, encWriteStream, bodyPath, fileEncSha256, fileSha256, fileLength, didSaveToTmpPath } = await (
|
|
146
|
+
const { mediaKey, encWriteStream, bodyPath, fileEncSha256, fileSha256, fileLength, didSaveToTmpPath, } = await (options.newsletter ? messages_media_1.prepareStream : messages_media_1.encryptedStream)(uploadData.media, options.mediaTypeOverride || mediaType, {
|
|
118
147
|
logger,
|
|
119
148
|
saveOriginalFileIfRequired: requiresOriginalForSomeProcessing,
|
|
120
149
|
opts: options.options
|
|
121
150
|
});
|
|
122
151
|
// url safe Base64 encode the SHA256 hash of the body
|
|
123
|
-
const fileEncSha256B64 = fileEncSha256.toString('base64');
|
|
124
|
-
const [{ mediaUrl, directPath }] = await Promise.all([
|
|
152
|
+
const fileEncSha256B64 = (options.newsletter ? fileSha256 : fileEncSha256 !== null && fileEncSha256 !== void 0 ? fileEncSha256 : fileSha256).toString('base64');
|
|
153
|
+
const [{ mediaUrl, directPath, handle }] = await Promise.all([
|
|
125
154
|
(async () => {
|
|
126
155
|
const result = await options.upload(encWriteStream, { fileEncSha256B64, mediaType, timeoutMs: options.mediaUploadTimeoutMs });
|
|
127
156
|
logger === null || logger === void 0 ? void 0 : logger.debug({ mediaType, cacheableKey }, 'uploaded media');
|
|
@@ -162,7 +191,9 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
162
191
|
})(),
|
|
163
192
|
])
|
|
164
193
|
.finally(async () => {
|
|
165
|
-
|
|
194
|
+
if (!Buffer.isBuffer(encWriteStream)) {
|
|
195
|
+
encWriteStream.destroy();
|
|
196
|
+
}
|
|
166
197
|
// remove tmp files
|
|
167
198
|
if (didSaveToTmpPath && bodyPath) {
|
|
168
199
|
await fs_1.promises.unlink(bodyPath);
|
|
@@ -171,17 +202,21 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
171
202
|
});
|
|
172
203
|
const obj = Types_1.WAProto.Message.fromObject({
|
|
173
204
|
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
174
|
-
url: mediaUrl,
|
|
205
|
+
url: handle ? undefined : mediaUrl,
|
|
175
206
|
directPath,
|
|
176
|
-
mediaKey,
|
|
177
|
-
fileEncSha256,
|
|
207
|
+
mediaKey: mediaKey,
|
|
208
|
+
fileEncSha256: fileEncSha256,
|
|
178
209
|
fileSha256,
|
|
179
210
|
fileLength,
|
|
180
|
-
mediaKeyTimestamp: (0, generics_1.unixTimestampSeconds)(),
|
|
211
|
+
mediaKeyTimestamp: handle ? undefined : (0, generics_1.unixTimestampSeconds)(),
|
|
181
212
|
...uploadData,
|
|
182
213
|
media: undefined
|
|
183
214
|
})
|
|
184
215
|
});
|
|
216
|
+
if (uploadData.ptv) {
|
|
217
|
+
obj.ptvMessage = obj.videoMessage;
|
|
218
|
+
delete obj.videoMessage;
|
|
219
|
+
}
|
|
185
220
|
if (cacheableKey) {
|
|
186
221
|
logger === null || logger === void 0 ? void 0 : logger.debug({ cacheableKey }, 'set cache');
|
|
187
222
|
options.mediaCache.set(cacheableKey, Types_1.WAProto.Message.encode(obj).finish());
|
|
@@ -236,8 +271,8 @@ const generateForwardMessageContent = (message, forceForward) => {
|
|
|
236
271
|
};
|
|
237
272
|
exports.generateForwardMessageContent = generateForwardMessageContent;
|
|
238
273
|
const generateWAMessageContent = async (message, options) => {
|
|
239
|
-
var _a;
|
|
240
|
-
var
|
|
274
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
|
|
275
|
+
var _6, _7;
|
|
241
276
|
let m = {};
|
|
242
277
|
if ('text' in message) {
|
|
243
278
|
const extContent = { text: message.text };
|
|
@@ -285,6 +320,15 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
285
320
|
}
|
|
286
321
|
else if ('location' in message) {
|
|
287
322
|
m.locationMessage = Types_1.WAProto.Message.LocationMessage.fromObject(message.location);
|
|
323
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
324
|
+
m.locationMessage.contextInfo = message.contextInfo;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
else if ('liveLocation' in message) {
|
|
328
|
+
m.liveLocationMessage = Types_1.WAProto.Message.LiveLocationMessage.fromObject(message.liveLocation);
|
|
329
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
330
|
+
m.liveLocationMessage.contextInfo = message.contextInfo;
|
|
331
|
+
}
|
|
288
332
|
}
|
|
289
333
|
else if ('react' in message) {
|
|
290
334
|
if (!message.react.senderTimestampMs) {
|
|
@@ -307,6 +351,64 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
307
351
|
message.disappearingMessagesInChat;
|
|
308
352
|
m = (0, exports.prepareDisappearingMessageSettingContent)(exp);
|
|
309
353
|
}
|
|
354
|
+
else if ('groupInvite' in message) {
|
|
355
|
+
m.groupInviteMessage = {};
|
|
356
|
+
m.groupInviteMessage.inviteCode = message.groupInvite.inviteCode;
|
|
357
|
+
m.groupInviteMessage.inviteExpiration = message.groupInvite.inviteExpiration;
|
|
358
|
+
m.groupInviteMessage.caption = message.groupInvite.text;
|
|
359
|
+
m.groupInviteMessage.groupJid = message.groupInvite.jid;
|
|
360
|
+
m.groupInviteMessage.groupName = message.groupInvite.subject;
|
|
361
|
+
m.groupInviteMessage.jpegThumbnail = message.groupInvite.thumbnail;
|
|
362
|
+
//TODO: use built-in interface and get disappearing mode info etc.
|
|
363
|
+
//TODO: cache / use store!?
|
|
364
|
+
if (options.getProfilePicUrl) {
|
|
365
|
+
let pfpUrl;
|
|
366
|
+
try {
|
|
367
|
+
pfpUrl = await options.getProfilePicUrl(message.groupInvite.jid, 'preview');
|
|
368
|
+
}
|
|
369
|
+
catch (_8) {
|
|
370
|
+
pfpUrl = null;
|
|
371
|
+
}
|
|
372
|
+
if (pfpUrl) {
|
|
373
|
+
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
374
|
+
if (resp.status === 200) {
|
|
375
|
+
m.groupInviteMessage.jpegThumbnail = resp.data;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
m.groupInviteMessage.jpegThumbnail = null;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
else if ('pin' in message) {
|
|
384
|
+
m.pinInChatMessage = {};
|
|
385
|
+
m.messageContextInfo = {};
|
|
386
|
+
m.pinInChatMessage.key = message.pin;
|
|
387
|
+
m.pinInChatMessage.type = message.type;
|
|
388
|
+
m.pinInChatMessage.senderTimestampMs = Date.now();
|
|
389
|
+
m.messageContextInfo.messageAddOnDurationInSecs = message.type === 1 ? message.time || 86400 : 0;
|
|
390
|
+
}
|
|
391
|
+
else if ('keep' in message) {
|
|
392
|
+
m.keepInChatMessage = {};
|
|
393
|
+
m.keepInChatMessage.key = message.keep;
|
|
394
|
+
m.keepInChatMessage.keepType = message.type;
|
|
395
|
+
m.keepInChatMessage.timestampMs = Date.now();
|
|
396
|
+
}
|
|
397
|
+
else if ('call' in message) {
|
|
398
|
+
m = {
|
|
399
|
+
scheduledCallCreationMessage: {
|
|
400
|
+
scheduledTimestampMs: (_a = message.call.time) !== null && _a !== void 0 ? _a : Date.now(),
|
|
401
|
+
callType: (_b = message.call.type) !== null && _b !== void 0 ? _b : 1,
|
|
402
|
+
title: message.call.title
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
else if ('paymentInvite' in message) {
|
|
407
|
+
m.paymentInviteMessage = {
|
|
408
|
+
serviceType: message.paymentInvite.type,
|
|
409
|
+
expiryTimestamp: message.paymentInvite.expiry
|
|
410
|
+
};
|
|
411
|
+
}
|
|
310
412
|
else if ('buttonReply' in message) {
|
|
311
413
|
switch (message.type) {
|
|
312
414
|
case 'template':
|
|
@@ -323,10 +425,23 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
323
425
|
type: WAProto_1.proto.Message.ButtonsResponseMessage.Type.DISPLAY_TEXT,
|
|
324
426
|
};
|
|
325
427
|
break;
|
|
428
|
+
case 'interactive':
|
|
429
|
+
m.interactiveResponseMessage = {
|
|
430
|
+
body: {
|
|
431
|
+
text: message.buttonReply.text,
|
|
432
|
+
format: WAProto_1.proto.Message.InteractiveResponseMessage.Body.Format.EXTENSIONS_1
|
|
433
|
+
},
|
|
434
|
+
nativeFlowResponseMessage: {
|
|
435
|
+
name: message.buttonReply.nativeFlow.name,
|
|
436
|
+
paramsJson: message.buttonReply.nativeFlow.paramsJson,
|
|
437
|
+
version: message.buttonReply.nativeFlow.version
|
|
438
|
+
}
|
|
439
|
+
};
|
|
440
|
+
break;
|
|
326
441
|
}
|
|
327
442
|
}
|
|
328
443
|
else if ('product' in message) {
|
|
329
|
-
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: message.product.productImage }, options);
|
|
444
|
+
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: (_c = message === null || message === void 0 ? void 0 : message.product) === null || _c === void 0 ? void 0 : _c.productImage }, options);
|
|
330
445
|
m.productMessage = Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
331
446
|
...message,
|
|
332
447
|
product: {
|
|
@@ -334,12 +449,34 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
334
449
|
productImage: imageMessage,
|
|
335
450
|
}
|
|
336
451
|
});
|
|
452
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
453
|
+
m.productMessage.contextInfo = message.contextInfo;
|
|
454
|
+
}
|
|
455
|
+
if ('mentions' in message && !!message.mentions) {
|
|
456
|
+
m.productMessage.contextInfo = { mentionedJid: message.mentions };
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
else if ('order' in message) {
|
|
460
|
+
m.orderMessage = Types_1.WAProto.Message.OrderMessage.fromObject({
|
|
461
|
+
orderId: message.order.id,
|
|
462
|
+
thumbnail: message.order.thumbnail,
|
|
463
|
+
itemCount: message.order.itemCount,
|
|
464
|
+
status: message.order.status,
|
|
465
|
+
surface: message.order.surface,
|
|
466
|
+
orderTitle: message.order.title,
|
|
467
|
+
message: message.order.text,
|
|
468
|
+
sellerJid: message.order.seller,
|
|
469
|
+
token: message.order.token,
|
|
470
|
+
totalAmount1000: message.order.amount,
|
|
471
|
+
totalCurrencyCode: message.order.currency
|
|
472
|
+
});
|
|
337
473
|
}
|
|
338
474
|
else if ('listReply' in message) {
|
|
339
475
|
m.listResponseMessage = { ...message.listReply };
|
|
340
476
|
}
|
|
341
477
|
else if ('poll' in message) {
|
|
342
|
-
(
|
|
478
|
+
(_6 = message.poll).selectableCount || (_6.selectableCount = 0);
|
|
479
|
+
(_7 = message.poll).toAnnouncementGroup || (_7.toAnnouncementGroup = false);
|
|
343
480
|
if (!Array.isArray(message.poll.values)) {
|
|
344
481
|
throw new boom_1.Boom('Invalid poll values', { statusCode: 400 });
|
|
345
482
|
}
|
|
@@ -351,11 +488,125 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
351
488
|
// encKey
|
|
352
489
|
messageSecret: message.poll.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
353
490
|
};
|
|
354
|
-
|
|
491
|
+
const pollCreationMessage = {
|
|
355
492
|
name: message.poll.name,
|
|
356
493
|
selectableOptionsCount: message.poll.selectableCount,
|
|
357
494
|
options: message.poll.values.map(optionName => ({ optionName })),
|
|
358
495
|
};
|
|
496
|
+
if (message.poll.toAnnouncementGroup) {
|
|
497
|
+
// poll v2 is for community announcement groups (single select and multiple)
|
|
498
|
+
m.pollCreationMessageV2 = pollCreationMessage;
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
if (message.poll.selectableCount > 0) {
|
|
502
|
+
//poll v3 is for single select polls
|
|
503
|
+
m.pollCreationMessageV3 = pollCreationMessage;
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
// poll v3 for multiple choice polls
|
|
507
|
+
m.pollCreationMessage = pollCreationMessage;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
511
|
+
pollCreationMessage.contextInfo = message.contextInfo;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
else if ('pollResult' in message) {
|
|
515
|
+
if (!Array.isArray(message.pollResult.votes)) {
|
|
516
|
+
throw new boom_1.Boom('Invalid poll votes result', { statusCode: 400 });
|
|
517
|
+
}
|
|
518
|
+
m.messageContextInfo = {
|
|
519
|
+
// encKey
|
|
520
|
+
messageSecret: message.pollResult.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
521
|
+
};
|
|
522
|
+
const pollResultSnapshotMessage = {
|
|
523
|
+
name: message.pollResult.name,
|
|
524
|
+
pollVotes: message.pollResult.votes.map((option) => ({
|
|
525
|
+
optionName: option[0],
|
|
526
|
+
optionVoteCount: option[1]
|
|
527
|
+
})),
|
|
528
|
+
};
|
|
529
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
530
|
+
pollResultSnapshotMessage.contextInfo = message.contextInfo;
|
|
531
|
+
}
|
|
532
|
+
if ('mentions' in message && !!message.mentions) {
|
|
533
|
+
pollResultSnapshotMessage.contextInfo = { mentionedJid: message.mentions };
|
|
534
|
+
}
|
|
535
|
+
m.pollResultSnapshotMessage = pollResultSnapshotMessage;
|
|
536
|
+
}
|
|
537
|
+
else if ('event' in message) {
|
|
538
|
+
m.messageContextInfo = {
|
|
539
|
+
messageSecret: message.event.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
540
|
+
};
|
|
541
|
+
m.eventMessage = { ...message.event };
|
|
542
|
+
}
|
|
543
|
+
else if ('inviteAdmin' in message) {
|
|
544
|
+
m.newsletterAdminInviteMessage = {};
|
|
545
|
+
m.newsletterAdminInviteMessage.inviteExpiration = message.inviteAdmin.inviteExpiration;
|
|
546
|
+
m.newsletterAdminInviteMessage.caption = message.inviteAdmin.text;
|
|
547
|
+
m.newsletterAdminInviteMessage.newsletterJid = message.inviteAdmin.jid;
|
|
548
|
+
m.newsletterAdminInviteMessage.newsletterName = message.inviteAdmin.subject;
|
|
549
|
+
m.newsletterAdminInviteMessage.jpegThumbnail = message.inviteAdmin.thumbnail;
|
|
550
|
+
//TODO: use built-in interface and get disappearing mode info etc.
|
|
551
|
+
//TODO: cache / use store!?
|
|
552
|
+
if (options.getProfilePicUrl) {
|
|
553
|
+
let pfpUrl;
|
|
554
|
+
try {
|
|
555
|
+
pfpUrl = await options.getProfilePicUrl(message.inviteAdmin.jid, 'preview');
|
|
556
|
+
}
|
|
557
|
+
catch (_9) {
|
|
558
|
+
pfpUrl = null;
|
|
559
|
+
}
|
|
560
|
+
if (pfpUrl) {
|
|
561
|
+
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
562
|
+
if (resp.status === 200) {
|
|
563
|
+
m.newsletterAdminInviteMessage.jpegThumbnail = resp.data;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
else {
|
|
567
|
+
m.newsletterAdminInviteMessage.jpegThumbnail = null;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
else if ('requestPayment' in message) {
|
|
572
|
+
const sticker = ((_d = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _d === void 0 ? void 0 : _d.sticker) ?
|
|
573
|
+
await (0, exports.prepareWAMessageMedia)({ sticker: (_e = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _e === void 0 ? void 0 : _e.sticker, ...options }, options)
|
|
574
|
+
: null;
|
|
575
|
+
let notes = {};
|
|
576
|
+
if ((_f = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _f === void 0 ? void 0 : _f.sticker) {
|
|
577
|
+
notes = {
|
|
578
|
+
stickerMessage: {
|
|
579
|
+
...sticker === null || sticker === void 0 ? void 0 : sticker.stickerMessage,
|
|
580
|
+
contextInfo: {
|
|
581
|
+
stanzaId: (_h = (_g = options === null || options === void 0 ? void 0 : options.quoted) === null || _g === void 0 ? void 0 : _g.key) === null || _h === void 0 ? void 0 : _h.id,
|
|
582
|
+
participant: (_k = (_j = options === null || options === void 0 ? void 0 : options.quoted) === null || _j === void 0 ? void 0 : _j.key) === null || _k === void 0 ? void 0 : _k.participant,
|
|
583
|
+
quotedMessage: (_l = options === null || options === void 0 ? void 0 : options.quoted) === null || _l === void 0 ? void 0 : _l.message,
|
|
584
|
+
...(_m = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _m === void 0 ? void 0 : _m.contextInfo,
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
else if (message.requestPayment.note) {
|
|
590
|
+
notes = {
|
|
591
|
+
extendedTextMessage: {
|
|
592
|
+
text: message.requestPayment.note,
|
|
593
|
+
contextInfo: {
|
|
594
|
+
stanzaId: (_p = (_o = options === null || options === void 0 ? void 0 : options.quoted) === null || _o === void 0 ? void 0 : _o.key) === null || _p === void 0 ? void 0 : _p.id,
|
|
595
|
+
participant: (_r = (_q = options === null || options === void 0 ? void 0 : options.quoted) === null || _q === void 0 ? void 0 : _q.key) === null || _r === void 0 ? void 0 : _r.participant,
|
|
596
|
+
quotedMessage: (_s = options === null || options === void 0 ? void 0 : options.quoted) === null || _s === void 0 ? void 0 : _s.message,
|
|
597
|
+
...(_t = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _t === void 0 ? void 0 : _t.contextInfo,
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
m.requestPaymentMessage = Types_1.WAProto.Message.RequestPaymentMessage.fromObject({
|
|
603
|
+
expiryTimestamp: message.requestPayment.expiry,
|
|
604
|
+
amount1000: message.requestPayment.amount,
|
|
605
|
+
currencyCodeIso4217: message.requestPayment.currency,
|
|
606
|
+
requestFrom: message.requestPayment.from,
|
|
607
|
+
noteMessage: { ...notes },
|
|
608
|
+
background: (_u = message.requestPayment.background) !== null && _u !== void 0 ? _u : null,
|
|
609
|
+
});
|
|
359
610
|
}
|
|
360
611
|
else if ('sharePhoneNumber' in message) {
|
|
361
612
|
m.protocolMessage = {
|
|
@@ -387,11 +638,21 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
387
638
|
if ('footer' in message && !!message.footer) {
|
|
388
639
|
buttonsMessage.footerText = message.footer;
|
|
389
640
|
}
|
|
641
|
+
if ('title' in message && !!message.title) {
|
|
642
|
+
buttonsMessage.text = message.title,
|
|
643
|
+
buttonsMessage.headerType = ButtonType.TEXT;
|
|
644
|
+
}
|
|
645
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
646
|
+
buttonsMessage.contextInfo = message.contextInfo;
|
|
647
|
+
}
|
|
648
|
+
if ('mentions' in message && !!message.mentions) {
|
|
649
|
+
buttonsMessage.contextInfo = { mentionedJid: message.mentions };
|
|
650
|
+
}
|
|
390
651
|
m = { buttonsMessage };
|
|
391
652
|
}
|
|
392
653
|
else if ('templateButtons' in message && !!message.templateButtons) {
|
|
393
654
|
const msg = {
|
|
394
|
-
hydratedButtons: message.templateButtons
|
|
655
|
+
hydratedButtons: message.hasOwnProperty("templateButtons") ? message.templateButtons : message.templateButtons
|
|
395
656
|
};
|
|
396
657
|
if ('text' in message) {
|
|
397
658
|
msg.hydratedContentText = message.text;
|
|
@@ -412,6 +673,203 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
412
673
|
}
|
|
413
674
|
};
|
|
414
675
|
}
|
|
676
|
+
if ('interactiveButtons' in message && !!message.interactiveButtons) {
|
|
677
|
+
const interactiveMessage = {
|
|
678
|
+
nativeFlowMessage: Types_1.WAProto.Message.InteractiveMessage.NativeFlowMessage.fromObject({
|
|
679
|
+
buttons: message.interactiveButtons,
|
|
680
|
+
})
|
|
681
|
+
};
|
|
682
|
+
if ('text' in message) {
|
|
683
|
+
body: interactiveMessage.body = {
|
|
684
|
+
text: message.text
|
|
685
|
+
};
|
|
686
|
+
header: interactiveMessage.header = {
|
|
687
|
+
title: message.title,
|
|
688
|
+
subtitle: message.subtitle,
|
|
689
|
+
hasMediaAttachment: (_v = message === null || message === void 0 ? void 0 : message.media) !== null && _v !== void 0 ? _v : false,
|
|
690
|
+
};
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
if ('caption' in message) {
|
|
694
|
+
body: interactiveMessage.body = {
|
|
695
|
+
text: message.caption
|
|
696
|
+
};
|
|
697
|
+
header: interactiveMessage.header = {
|
|
698
|
+
title: message.title,
|
|
699
|
+
subtitle: message.subtitle,
|
|
700
|
+
hasMediaAttachment: (_w = message === null || message === void 0 ? void 0 : message.media) !== null && _w !== void 0 ? _w : false,
|
|
701
|
+
};
|
|
702
|
+
Object.assign(interactiveMessage.header, m);
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
if ('footer' in message && !!message.footer) {
|
|
706
|
+
footer: interactiveMessage.footer = {
|
|
707
|
+
text: message.footer
|
|
708
|
+
};
|
|
709
|
+
}
|
|
710
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
711
|
+
interactiveMessage.contextInfo = message.contextInfo;
|
|
712
|
+
}
|
|
713
|
+
if ('mentions' in message && !!message.mentions) {
|
|
714
|
+
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
715
|
+
}
|
|
716
|
+
m = { interactiveMessage };
|
|
717
|
+
}
|
|
718
|
+
if ('shop' in message && !!message.shop) {
|
|
719
|
+
const interactiveMessage = {
|
|
720
|
+
shopStorefrontMessage: Types_1.WAProto.Message.InteractiveMessage.ShopMessage.fromObject({
|
|
721
|
+
surface: message.shop,
|
|
722
|
+
id: message.id
|
|
723
|
+
})
|
|
724
|
+
};
|
|
725
|
+
if ('text' in message) {
|
|
726
|
+
body: interactiveMessage.body = {
|
|
727
|
+
text: message.text
|
|
728
|
+
};
|
|
729
|
+
header: interactiveMessage.header = {
|
|
730
|
+
title: message.title,
|
|
731
|
+
subtitle: message.subtitle,
|
|
732
|
+
hasMediaAttachment: (_x = message === null || message === void 0 ? void 0 : message.media) !== null && _x !== void 0 ? _x : false,
|
|
733
|
+
};
|
|
734
|
+
}
|
|
735
|
+
else {
|
|
736
|
+
if ('caption' in message) {
|
|
737
|
+
body: interactiveMessage.body = {
|
|
738
|
+
text: message.caption
|
|
739
|
+
};
|
|
740
|
+
header: interactiveMessage.header = {
|
|
741
|
+
title: message.title,
|
|
742
|
+
subtitle: message.subtitle,
|
|
743
|
+
hasMediaAttachment: (_y = message === null || message === void 0 ? void 0 : message.media) !== null && _y !== void 0 ? _y : false,
|
|
744
|
+
};
|
|
745
|
+
Object.assign(interactiveMessage.header, m);
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
if ('footer' in message && !!message.footer) {
|
|
749
|
+
footer: interactiveMessage.footer = {
|
|
750
|
+
text: message.footer
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
754
|
+
interactiveMessage.contextInfo = message.contextInfo;
|
|
755
|
+
}
|
|
756
|
+
if ('mentions' in message && !!message.mentions) {
|
|
757
|
+
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
758
|
+
}
|
|
759
|
+
m = { interactiveMessage };
|
|
760
|
+
}
|
|
761
|
+
if ('collection' in message && !!message.shop) {
|
|
762
|
+
const interactiveMessage = {
|
|
763
|
+
collectionMessage: Types_1.WAProto.Message.InteractiveMessage.CollectionMessage.fromObject({
|
|
764
|
+
bizJid: (_z = message === null || message === void 0 ? void 0 : message.collection) === null || _z === void 0 ? void 0 : _z.bizJid,
|
|
765
|
+
id: (_0 = message === null || message === void 0 ? void 0 : message.collection) === null || _0 === void 0 ? void 0 : _0.id,
|
|
766
|
+
messageVersion: (_1 = message === null || message === void 0 ? void 0 : message.collection) === null || _1 === void 0 ? void 0 : _1.version
|
|
767
|
+
})
|
|
768
|
+
};
|
|
769
|
+
if ('text' in message) {
|
|
770
|
+
body: interactiveMessage.body = {
|
|
771
|
+
text: message.text
|
|
772
|
+
};
|
|
773
|
+
header: interactiveMessage.header = {
|
|
774
|
+
title: message.title,
|
|
775
|
+
subtitle: message.subtitle,
|
|
776
|
+
hasMediaAttachment: (_2 = message === null || message === void 0 ? void 0 : message.media) !== null && _2 !== void 0 ? _2 : false,
|
|
777
|
+
};
|
|
778
|
+
}
|
|
779
|
+
else {
|
|
780
|
+
if ('caption' in message) {
|
|
781
|
+
body: interactiveMessage.body = {
|
|
782
|
+
text: message.caption
|
|
783
|
+
};
|
|
784
|
+
header: interactiveMessage.header = {
|
|
785
|
+
title: message.title,
|
|
786
|
+
subtitle: message.subtitle,
|
|
787
|
+
hasMediaAttachment: (_3 = message === null || message === void 0 ? void 0 : message.media) !== null && _3 !== void 0 ? _3 : false,
|
|
788
|
+
};
|
|
789
|
+
Object.assign(interactiveMessage.header, m);
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
if ('footer' in message && !!message.footer) {
|
|
793
|
+
footer: interactiveMessage.footer = {
|
|
794
|
+
text: message.footer
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
798
|
+
interactiveMessage.contextInfo = message.contextInfo;
|
|
799
|
+
}
|
|
800
|
+
if ('mentions' in message && !!message.mentions) {
|
|
801
|
+
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
802
|
+
}
|
|
803
|
+
m = { interactiveMessage };
|
|
804
|
+
}
|
|
805
|
+
if ('cards' in message && !!message.cards) {
|
|
806
|
+
const slides = await Promise.all(message.cards.map(async (slide) => {
|
|
807
|
+
const { image, video, product, title, caption, footer, buttons } = slide;
|
|
808
|
+
let header;
|
|
809
|
+
if (product) {
|
|
810
|
+
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: product.productImage, ...options }, options);
|
|
811
|
+
header = {
|
|
812
|
+
productMesage: Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
813
|
+
product: {
|
|
814
|
+
...product,
|
|
815
|
+
productImage: imageMessage,
|
|
816
|
+
},
|
|
817
|
+
...slide
|
|
818
|
+
})
|
|
819
|
+
};
|
|
820
|
+
}
|
|
821
|
+
else if (image) {
|
|
822
|
+
header = await (0, exports.prepareWAMessageMedia)({ image: image, ...options }, options);
|
|
823
|
+
}
|
|
824
|
+
else if (video) {
|
|
825
|
+
header = await (0, exports.prepareWAMessageMedia)({ video: video, ...options }, options);
|
|
826
|
+
}
|
|
827
|
+
const msg = {
|
|
828
|
+
header: {
|
|
829
|
+
title,
|
|
830
|
+
hasMediaAttachment: true,
|
|
831
|
+
...header
|
|
832
|
+
},
|
|
833
|
+
body: {
|
|
834
|
+
text: caption
|
|
835
|
+
},
|
|
836
|
+
footer: {
|
|
837
|
+
text: footer
|
|
838
|
+
},
|
|
839
|
+
nativeFlowMessage: {
|
|
840
|
+
buttons,
|
|
841
|
+
},
|
|
842
|
+
};
|
|
843
|
+
return msg;
|
|
844
|
+
}));
|
|
845
|
+
const interactiveMessage = {
|
|
846
|
+
carouselMessage: Types_1.WAProto.Message.InteractiveMessage.CarouselMessage.fromObject({
|
|
847
|
+
cards: slides
|
|
848
|
+
})
|
|
849
|
+
};
|
|
850
|
+
if ('text' in message) {
|
|
851
|
+
body: interactiveMessage.body = {
|
|
852
|
+
text: message.text
|
|
853
|
+
};
|
|
854
|
+
header: interactiveMessage.header = {
|
|
855
|
+
title: message.title,
|
|
856
|
+
subtitle: message.subtitle,
|
|
857
|
+
hasMediaAttachment: (_4 = message === null || message === void 0 ? void 0 : message.media) !== null && _4 !== void 0 ? _4 : false,
|
|
858
|
+
};
|
|
859
|
+
}
|
|
860
|
+
if ('footer' in message && !!message.footer) {
|
|
861
|
+
footer: interactiveMessage.footer = {
|
|
862
|
+
text: message.footer
|
|
863
|
+
};
|
|
864
|
+
}
|
|
865
|
+
if ('contextInfo' in message && !!message.contextInfo) {
|
|
866
|
+
interactiveMessage.contextInfo = message.contextInfo;
|
|
867
|
+
}
|
|
868
|
+
if ('mentions' in message && !!message.mentions) {
|
|
869
|
+
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
870
|
+
}
|
|
871
|
+
m = { interactiveMessage };
|
|
872
|
+
}
|
|
415
873
|
if ('sections' in message && !!message.sections) {
|
|
416
874
|
const listMessage = {
|
|
417
875
|
sections: message.sections,
|
|
@@ -426,7 +884,19 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
426
884
|
if ('viewOnce' in message && !!message.viewOnce) {
|
|
427
885
|
m = { viewOnceMessage: { message: m } };
|
|
428
886
|
}
|
|
429
|
-
if ('
|
|
887
|
+
if ('viewOnceV2' in message && !!message.viewOnceV2) {
|
|
888
|
+
m = { viewOnceMessageV2: { message: m } };
|
|
889
|
+
}
|
|
890
|
+
if ('viewOnceV2Extension' in message && !!message.viewOnceV2Extension) {
|
|
891
|
+
m = { viewOnceMessageV2Extension: { message: m } };
|
|
892
|
+
}
|
|
893
|
+
if ('ephemeral' in message && !!message.ephemeral) {
|
|
894
|
+
m = { ephemeralMessage: { message: m } };
|
|
895
|
+
}
|
|
896
|
+
if ('lottie' in message && !!message.lottie) {
|
|
897
|
+
m = { lottieStickerMessage: { message: m } };
|
|
898
|
+
}
|
|
899
|
+
if ('mentions' in message && ((_5 = message.mentions) === null || _5 === void 0 ? void 0 : _5.length)) {
|
|
430
900
|
const [messageType] = Object.keys(m);
|
|
431
901
|
m[messageType].contextInfo = m[messageType] || {};
|
|
432
902
|
m[messageType].contextInfo.mentionedJid = message.mentions;
|
|
@@ -450,15 +920,17 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
450
920
|
};
|
|
451
921
|
exports.generateWAMessageContent = generateWAMessageContent;
|
|
452
922
|
const generateWAMessageFromContent = (jid, message, options) => {
|
|
923
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
453
924
|
// set timestamp to now
|
|
454
925
|
// if not specified
|
|
455
926
|
if (!options.timestamp) {
|
|
456
927
|
options.timestamp = new Date();
|
|
457
928
|
}
|
|
458
|
-
const
|
|
929
|
+
const innerMessage = (0, exports.normalizeMessageContent)(message);
|
|
930
|
+
const key = (0, exports.getContentType)(innerMessage);
|
|
459
931
|
const timestamp = (0, generics_1.unixTimestampSeconds)(options.timestamp);
|
|
460
932
|
const { quoted, userJid } = options;
|
|
461
|
-
if (quoted) {
|
|
933
|
+
if (quoted && !(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
462
934
|
const participant = quoted.key.fromMe ? userJid : (quoted.participant || quoted.key.participant || quoted.key.remoteJid);
|
|
463
935
|
let quotedMsg = (0, exports.normalizeMessageContent)(quoted.message);
|
|
464
936
|
const msgType = (0, exports.getContentType)(quotedMsg);
|
|
@@ -468,7 +940,16 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
468
940
|
if (typeof quotedContent === 'object' && quotedContent && 'contextInfo' in quotedContent) {
|
|
469
941
|
delete quotedContent.contextInfo;
|
|
470
942
|
}
|
|
471
|
-
|
|
943
|
+
let requestPayment;
|
|
944
|
+
if (key === 'requestPaymentMessage') {
|
|
945
|
+
if (((_a = innerMessage === null || innerMessage === void 0 ? void 0 : innerMessage.requestPaymentMessage) === null || _a === void 0 ? void 0 : _a.noteMessage) && ((_c = (_b = innerMessage === null || innerMessage === void 0 ? void 0 : innerMessage.requestPaymentMessage) === null || _b === void 0 ? void 0 : _b.noteMessage) === null || _c === void 0 ? void 0 : _c.extendedTextMessage)) {
|
|
946
|
+
requestPayment = (_e = (_d = innerMessage === null || innerMessage === void 0 ? void 0 : innerMessage.requestPaymentMessage) === null || _d === void 0 ? void 0 : _d.noteMessage) === null || _e === void 0 ? void 0 : _e.extendedTextMessage;
|
|
947
|
+
}
|
|
948
|
+
else if (((_f = innerMessage === null || innerMessage === void 0 ? void 0 : innerMessage.requestPaymentMessage) === null || _f === void 0 ? void 0 : _f.noteMessage) && ((_h = (_g = innerMessage === null || innerMessage === void 0 ? void 0 : innerMessage.requestPaymentMessage) === null || _g === void 0 ? void 0 : _g.noteMessage) === null || _h === void 0 ? void 0 : _h.stickerMessage)) {
|
|
949
|
+
requestPayment = (_k = (_j = innerMessage.requestPaymentMessage) === null || _j === void 0 ? void 0 : _j.noteMessage) === null || _k === void 0 ? void 0 : _k.stickerMessage;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
const contextInfo = (key === 'requestPaymentMessage' ? requestPayment.contextInfo : innerMessage[key].contextInfo) || {};
|
|
472
953
|
contextInfo.participant = (0, WABinary_1.jidNormalizedUser)(participant);
|
|
473
954
|
contextInfo.stanzaId = quoted.key.id;
|
|
474
955
|
contextInfo.quotedMessage = quotedMsg;
|
|
@@ -477,7 +958,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
477
958
|
if (jid !== quoted.key.remoteJid) {
|
|
478
959
|
contextInfo.remoteJid = quoted.key.remoteJid;
|
|
479
960
|
}
|
|
480
|
-
|
|
961
|
+
innerMessage[key].contextInfo = contextInfo;
|
|
481
962
|
}
|
|
482
963
|
if (
|
|
483
964
|
// if we want to send a disappearing message
|
|
@@ -485,9 +966,11 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
485
966
|
// and it's not a protocol message -- delete, toggle disappear message
|
|
486
967
|
key !== 'protocolMessage' &&
|
|
487
968
|
// already not converted to disappearing message
|
|
488
|
-
key !== 'ephemeralMessage'
|
|
489
|
-
|
|
490
|
-
|
|
969
|
+
key !== 'ephemeralMessage' &&
|
|
970
|
+
// newsletter not accept disappearing messages
|
|
971
|
+
!(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
972
|
+
innerMessage[key].contextInfo = {
|
|
973
|
+
...(innerMessage[key].contextInfo || {}),
|
|
491
974
|
expiration: options.ephemeralExpiration || Defaults_1.WA_DEFAULT_EPHEMERAL,
|
|
492
975
|
//ephemeralSettingTimestamp: options.ephemeralOptions.eph_setting_ts?.toString()
|
|
493
976
|
};
|
|
@@ -512,7 +995,7 @@ const generateWAMessage = async (jid, content, options) => {
|
|
|
512
995
|
var _a;
|
|
513
996
|
// ensure msg ID is with every log
|
|
514
997
|
options.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.child({ msgId: options.messageId });
|
|
515
|
-
return (0, exports.generateWAMessageFromContent)(jid, await (0, exports.generateWAMessageContent)(content, options), options);
|
|
998
|
+
return (0, exports.generateWAMessageFromContent)(jid, await (0, exports.generateWAMessageContent)(content, { newsletter: (0, WABinary_1.isJidNewsLetter)(jid), ...options }), options);
|
|
516
999
|
};
|
|
517
1000
|
exports.generateWAMessage = generateWAMessage;
|
|
518
1001
|
/** Get the key to access the true type of content */
|
|
@@ -698,12 +1181,9 @@ const REUPLOAD_REQUIRED_STATUS = [410, 404];
|
|
|
698
1181
|
* Downloads the given message. Throws an error if it's not a media message
|
|
699
1182
|
*/
|
|
700
1183
|
const downloadMediaMessage = async (message, type, options, ctx) => {
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
return result;
|
|
705
|
-
}
|
|
706
|
-
catch (error) {
|
|
1184
|
+
const result = await downloadMsg()
|
|
1185
|
+
.catch(async (error) => {
|
|
1186
|
+
var _a;
|
|
707
1187
|
if (ctx) {
|
|
708
1188
|
if (axios_1.default.isAxiosError(error)) {
|
|
709
1189
|
// check if the message requires a reupload
|
|
@@ -717,7 +1197,8 @@ const downloadMediaMessage = async (message, type, options, ctx) => {
|
|
|
717
1197
|
}
|
|
718
1198
|
}
|
|
719
1199
|
throw error;
|
|
720
|
-
}
|
|
1200
|
+
});
|
|
1201
|
+
return result;
|
|
721
1202
|
async function downloadMsg() {
|
|
722
1203
|
const mContent = (0, exports.extractMessageContent)(message.message);
|
|
723
1204
|
if (!mContent) {
|