@heavstaltech/baileys 2.3.4 → 3.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -53
- package/WAProto/index.js +14270 -302
- package/engine-requirements.js +10 -0
- package/lib/Defaults/baileys-version.json +1 -1
- package/lib/Defaults/index.js +118 -79
- package/lib/Defaults/phonenumber-mcc.json +223 -0
- package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
- package/lib/Signal/Group/ciphertext-message.js +15 -0
- package/lib/Signal/Group/group-session-builder.d.ts +14 -0
- package/lib/Signal/Group/group-session-builder.js +64 -0
- package/lib/Signal/Group/group_cipher.d.ts +17 -0
- package/lib/Signal/Group/group_cipher.js +96 -0
- package/lib/Signal/Group/index.d.ts +11 -0
- package/lib/Signal/Group/index.js +57 -0
- package/lib/Signal/Group/keyhelper.d.ts +10 -0
- package/lib/Signal/Group/keyhelper.js +55 -0
- package/lib/Signal/Group/queue-job.d.ts +1 -0
- package/lib/Signal/Group/queue-job.js +57 -0
- package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
- package/lib/Signal/Group/sender-chain-key.js +34 -0
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
- package/lib/Signal/Group/sender-key-message.d.ts +18 -0
- package/lib/Signal/Group/sender-key-message.js +69 -0
- package/lib/Signal/Group/sender-key-name.d.ts +17 -0
- package/lib/Signal/Group/sender-key-name.js +51 -0
- package/lib/Signal/Group/sender-key-record.d.ts +30 -0
- package/lib/Signal/Group/sender-key-record.js +53 -0
- package/lib/Signal/Group/sender-key-state.d.ts +38 -0
- package/lib/Signal/Group/sender-key-state.js +99 -0
- package/lib/Signal/Group/sender-message-key.d.ts +11 -0
- package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +6 -16
- package/lib/Signal/libsignal.js +51 -29
- package/lib/Socket/business.d.ts +43 -42
- package/lib/Socket/chats.d.ts +222 -36
- package/lib/Socket/chats.js +186 -153
- package/lib/Socket/dugong.d.ts +254 -0
- package/lib/Socket/dugong.js +484 -0
- package/lib/Socket/groups.d.ts +7 -7
- package/lib/Socket/groups.js +37 -35
- package/lib/Socket/index.d.ts +52 -51
- package/lib/Socket/index.js +1 -0
- package/lib/Socket/messages-recv.d.ts +37 -34
- package/lib/Socket/messages-recv.js +175 -37
- package/lib/Socket/messages-send.d.ts +12 -18
- package/lib/Socket/messages-send.js +396 -574
- package/lib/Socket/newsletter.d.ts +28 -26
- package/lib/Socket/newsletter.js +140 -25
- package/lib/Socket/registration.d.ts +52 -49
- package/lib/Socket/registration.js +7 -7
- package/lib/Socket/socket.d.ts +0 -1
- package/lib/Socket/socket.js +47 -198
- package/lib/Socket/usync.d.ts +10 -11
- package/lib/Store/make-cache-manager-store.d.ts +1 -2
- package/lib/Store/make-in-memory-store.d.ts +2 -2
- package/lib/Store/make-in-memory-store.js +1 -5
- package/lib/Store/make-ordered-dictionary.js +2 -2
- package/lib/Types/Auth.d.ts +1 -0
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +7 -12
- package/lib/Types/Events.d.ts +2 -17
- package/lib/Types/GroupMetadata.d.ts +2 -3
- package/lib/Types/Label.d.ts +0 -11
- package/lib/Types/Label.js +1 -1
- package/lib/Types/LabelAssociation.js +1 -1
- package/lib/Types/Message.d.ts +10 -170
- package/lib/Types/Newsletter.d.ts +97 -86
- package/lib/Types/Newsletter.js +38 -32
- package/lib/Types/Socket.d.ts +2 -7
- package/lib/Types/index.d.ts +0 -9
- package/lib/Types/index.js +1 -1
- package/lib/Utils/auth-utils.js +14 -35
- package/lib/Utils/business.d.ts +1 -1
- package/lib/Utils/business.js +2 -2
- package/lib/Utils/chat-utils.d.ts +12 -11
- package/lib/Utils/chat-utils.js +36 -52
- package/lib/Utils/crypto.d.ts +16 -15
- package/lib/Utils/crypto.js +26 -74
- package/lib/Utils/decode-wa-message.d.ts +0 -17
- package/lib/Utils/decode-wa-message.js +17 -53
- package/lib/Utils/event-buffer.js +7 -10
- package/lib/Utils/generics.d.ts +17 -13
- package/lib/Utils/generics.js +79 -58
- package/lib/Utils/history.d.ts +2 -6
- package/lib/Utils/history.js +6 -4
- package/lib/Utils/logger.d.ts +3 -1
- package/lib/Utils/lt-hash.js +12 -12
- package/lib/Utils/make-mutex.d.ts +2 -2
- package/lib/Utils/messages-media.d.ts +28 -25
- package/lib/Utils/messages-media.js +201 -103
- package/lib/Utils/messages.js +36 -473
- package/lib/Utils/noise-handler.d.ts +5 -4
- package/lib/Utils/noise-handler.js +14 -19
- package/lib/Utils/process-message.d.ts +5 -5
- package/lib/Utils/process-message.js +23 -75
- package/lib/Utils/signal.d.ts +1 -2
- package/lib/Utils/signal.js +26 -32
- package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +66 -242
- package/lib/Utils/validate-connection.d.ts +1 -1
- package/lib/Utils/validate-connection.js +88 -64
- package/lib/WABinary/constants.d.ts +27 -24
- package/lib/WABinary/decode.d.ts +2 -1
- package/lib/WABinary/decode.js +11 -23
- package/lib/WABinary/encode.d.ts +2 -1
- package/lib/WABinary/encode.js +147 -134
- package/lib/WABinary/generic-utils.d.ts +5 -2
- package/lib/WABinary/generic-utils.js +125 -37
- package/lib/WABinary/jid-utils.d.ts +1 -1
- package/lib/WAM/BinaryInfo.d.ts +11 -2
- package/lib/WAM/encode.d.ts +2 -1
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +3 -3
- package/lib/WAUSync/USyncUser.d.ts +2 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +12 -0
- package/package.json +102 -98
- package/WAProto/index.d.ts +0 -50383
- package/WASignalGroup/GroupProtocol.js +0 -1697
- package/WASignalGroup/ciphertext_message.js +0 -16
- package/WASignalGroup/group_cipher.js +0 -120
- package/WASignalGroup/group_session_builder.js +0 -46
- package/WASignalGroup/index.js +0 -5
- package/WASignalGroup/keyhelper.js +0 -21
- package/WASignalGroup/protobufs.js +0 -3
- package/WASignalGroup/queue_job.js +0 -69
- package/WASignalGroup/sender_chain_key.js +0 -50
- package/WASignalGroup/sender_key_distribution_message.js +0 -78
- package/WASignalGroup/sender_key_message.js +0 -92
- package/WASignalGroup/sender_key_name.js +0 -70
- package/WASignalGroup/sender_key_record.js +0 -56
- package/WASignalGroup/sender_key_state.js +0 -129
- package/lib/Utils/use-single-file-auth-state.d.ts +0 -12
- package/lib/Utils/use-single-file-auth-state.js +0 -75
package/lib/Utils/messages.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -74,27 +74,30 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
if (!mediaType) {
|
|
77
|
-
throw new boom_1.Boom('Invalid media type', {
|
|
77
|
+
throw new boom_1.Boom('Invalid media type', {
|
|
78
|
+
statusCode: 400
|
|
79
|
+
});
|
|
78
80
|
}
|
|
81
|
+
|
|
79
82
|
const uploadData = {
|
|
80
83
|
...message,
|
|
81
84
|
media: message[mediaType]
|
|
82
85
|
};
|
|
83
86
|
delete uploadData[mediaType];
|
|
84
|
-
// check if cacheable + generate cache key
|
|
85
87
|
const cacheableKey = typeof uploadData.media === 'object' &&
|
|
86
88
|
('url' in uploadData.media) &&
|
|
87
89
|
!!uploadData.media.url &&
|
|
88
90
|
!!options.mediaCache && (
|
|
89
|
-
// generate the key
|
|
90
91
|
mediaType + ':' + uploadData.media.url.toString());
|
|
92
|
+
|
|
91
93
|
if (mediaType === 'document' && !uploadData.fileName) {
|
|
92
94
|
uploadData.fileName = 'file';
|
|
93
95
|
}
|
|
96
|
+
|
|
94
97
|
if (!uploadData.mimetype) {
|
|
95
98
|
uploadData.mimetype = MIMETYPE_MAP[mediaType];
|
|
96
99
|
}
|
|
97
|
-
|
|
100
|
+
|
|
98
101
|
if (cacheableKey) {
|
|
99
102
|
const mediaBuff = options.mediaCache.get(cacheableKey);
|
|
100
103
|
if (mediaBuff) {
|
|
@@ -105,19 +108,28 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
105
108
|
return obj;
|
|
106
109
|
}
|
|
107
110
|
}
|
|
111
|
+
|
|
108
112
|
const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined';
|
|
109
113
|
const requiresThumbnailComputation = (mediaType === 'image' || mediaType === 'video') &&
|
|
110
114
|
(typeof uploadData['jpegThumbnail'] === 'undefined');
|
|
111
115
|
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true;
|
|
112
116
|
const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true;
|
|
113
117
|
const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation;
|
|
114
|
-
|
|
118
|
+
|
|
119
|
+
const { mediaKey, encWriteStream, bodyPath, fileEncSha256, fileSha256, fileLength, didSaveToTmpPath, opusConverted } = await (options.newsletter ? messages_media_1.prepareStream : messages_media_1.encryptedStream)(uploadData.media, options.mediaTypeOverride || mediaType, {
|
|
115
120
|
logger,
|
|
116
121
|
saveOriginalFileIfRequired: requiresOriginalForSomeProcessing,
|
|
117
|
-
opts: options.options
|
|
122
|
+
opts: options.options,
|
|
123
|
+
isPtt: uploadData.ptt,
|
|
124
|
+
forceOpus: (mediaType === "audio" && uploadData.mimetype && uploadData.mimetype.includes('opus'))
|
|
118
125
|
});
|
|
119
|
-
|
|
126
|
+
|
|
127
|
+
if (mediaType === 'audio' && opusConverted) {
|
|
128
|
+
uploadData.mimetype = 'audio/ogg; codecs=opus';
|
|
129
|
+
}
|
|
130
|
+
|
|
120
131
|
const fileEncSha256B64 = (options.newsletter ? fileSha256 : fileEncSha256 !== null && fileEncSha256 !== void 0 ? fileEncSha256 : fileSha256).toString('base64');
|
|
132
|
+
|
|
121
133
|
const [{ mediaUrl, directPath, handle }] = await Promise.all([
|
|
122
134
|
(async () => {
|
|
123
135
|
const result = await options.upload(encWriteStream, { fileEncSha256B64, mediaType, timeoutMs: options.mediaUploadTimeoutMs });
|
|
@@ -144,10 +156,6 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
144
156
|
uploadData.waveform = await (0, messages_media_1.getAudioWaveform)(bodyPath, logger);
|
|
145
157
|
logger === null || logger === void 0 ? void 0 : logger.debug('processed waveform');
|
|
146
158
|
}
|
|
147
|
-
if (requiresWaveformProcessing) {
|
|
148
|
-
uploadData.waveform = await (0, messages_media_1.getAudioWaveform)(bodyPath, logger);
|
|
149
|
-
logger === null || logger === void 0 ? void 0 : logger.debug('processed waveform');
|
|
150
|
-
}
|
|
151
159
|
if (requiresAudioBackground) {
|
|
152
160
|
uploadData.backgroundArgb = await assertColor(options.backgroundColor);
|
|
153
161
|
logger === null || logger === void 0 ? void 0 : logger.debug('computed backgroundColor audio status');
|
|
@@ -162,12 +170,13 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
162
170
|
if (!Buffer.isBuffer(encWriteStream)) {
|
|
163
171
|
encWriteStream.destroy();
|
|
164
172
|
}
|
|
165
|
-
|
|
173
|
+
|
|
166
174
|
if (didSaveToTmpPath && bodyPath) {
|
|
167
175
|
await fs_1.promises.unlink(bodyPath);
|
|
168
176
|
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp files');
|
|
169
177
|
}
|
|
170
178
|
});
|
|
179
|
+
|
|
171
180
|
const obj = Types_1.WAProto.Message.fromObject({
|
|
172
181
|
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
173
182
|
url: handle ? undefined : mediaUrl,
|
|
@@ -181,14 +190,17 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
181
190
|
media: undefined
|
|
182
191
|
})
|
|
183
192
|
});
|
|
193
|
+
|
|
184
194
|
if (uploadData.ptv) {
|
|
185
195
|
obj.ptvMessage = obj.videoMessage;
|
|
186
196
|
delete obj.videoMessage;
|
|
187
197
|
}
|
|
198
|
+
|
|
188
199
|
if (cacheableKey) {
|
|
189
200
|
logger === null || logger === void 0 ? void 0 : logger.debug({ cacheableKey }, 'set cache');
|
|
190
201
|
options.mediaCache.set(cacheableKey, Types_1.WAProto.Message.encode(obj).finish());
|
|
191
202
|
}
|
|
203
|
+
|
|
192
204
|
return obj;
|
|
193
205
|
};
|
|
194
206
|
exports.prepareWAMessageMedia = prepareWAMessageMedia;
|
|
@@ -239,8 +251,8 @@ const generateForwardMessageContent = (message, forceForward) => {
|
|
|
239
251
|
};
|
|
240
252
|
exports.generateForwardMessageContent = generateForwardMessageContent;
|
|
241
253
|
const generateWAMessageContent = async (message, options) => {
|
|
242
|
-
var _a
|
|
243
|
-
var
|
|
254
|
+
var _a;
|
|
255
|
+
var _b;
|
|
244
256
|
let m = {};
|
|
245
257
|
if ('text' in message) {
|
|
246
258
|
const extContent = { text: message.text };
|
|
@@ -288,15 +300,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
288
300
|
}
|
|
289
301
|
else if ('location' in message) {
|
|
290
302
|
m.locationMessage = Types_1.WAProto.Message.LocationMessage.fromObject(message.location);
|
|
291
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
292
|
-
m.locationMessage.contextInfo = message.contextInfo;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else if ('liveLocation' in message) {
|
|
296
|
-
m.liveLocationMessage = Types_1.WAProto.Message.LiveLocationMessage.fromObject(message.liveLocation);
|
|
297
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
298
|
-
m.liveLocationMessage.contextInfo = message.contextInfo;
|
|
299
|
-
}
|
|
300
303
|
}
|
|
301
304
|
else if ('react' in message) {
|
|
302
305
|
if (!message.react.senderTimestampMs) {
|
|
@@ -319,64 +322,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
319
322
|
message.disappearingMessagesInChat;
|
|
320
323
|
m = (0, exports.prepareDisappearingMessageSettingContent)(exp);
|
|
321
324
|
}
|
|
322
|
-
else if ('groupInvite' in message) {
|
|
323
|
-
m.groupInviteMessage = {};
|
|
324
|
-
m.groupInviteMessage.inviteCode = message.groupInvite.inviteCode;
|
|
325
|
-
m.groupInviteMessage.inviteExpiration = message.groupInvite.inviteExpiration;
|
|
326
|
-
m.groupInviteMessage.caption = message.groupInvite.text;
|
|
327
|
-
m.groupInviteMessage.groupJid = message.groupInvite.jid;
|
|
328
|
-
m.groupInviteMessage.groupName = message.groupInvite.subject;
|
|
329
|
-
m.groupInviteMessage.jpegThumbnail = message.groupInvite.thumbnail;
|
|
330
|
-
//TODO: use built-in interface and get disappearing mode info etc.
|
|
331
|
-
//TODO: cache / use store!?
|
|
332
|
-
if (options.getProfilePicUrl) {
|
|
333
|
-
let pfpUrl;
|
|
334
|
-
try {
|
|
335
|
-
pfpUrl = await options.getProfilePicUrl(message.groupInvite.jid, 'preview');
|
|
336
|
-
}
|
|
337
|
-
catch (_8) {
|
|
338
|
-
pfpUrl = null;
|
|
339
|
-
}
|
|
340
|
-
if (pfpUrl) {
|
|
341
|
-
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
342
|
-
if (resp.status === 200) {
|
|
343
|
-
m.groupInviteMessage.jpegThumbnail = resp.data;
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
m.groupInviteMessage.jpegThumbnail = null;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
else if ('pin' in message) {
|
|
352
|
-
m.pinInChatMessage = {};
|
|
353
|
-
m.messageContextInfo = {};
|
|
354
|
-
m.pinInChatMessage.key = message.pin;
|
|
355
|
-
m.pinInChatMessage.type = message.type;
|
|
356
|
-
m.pinInChatMessage.senderTimestampMs = Date.now();
|
|
357
|
-
m.messageContextInfo.messageAddOnDurationInSecs = message.type === 1 ? message.time || 86400 : 0;
|
|
358
|
-
}
|
|
359
|
-
else if ('keep' in message) {
|
|
360
|
-
m.keepInChatMessage = {};
|
|
361
|
-
m.keepInChatMessage.key = message.keep;
|
|
362
|
-
m.keepInChatMessage.keepType = message.type;
|
|
363
|
-
m.keepInChatMessage.timestampMs = Date.now();
|
|
364
|
-
}
|
|
365
|
-
else if ('call' in message) {
|
|
366
|
-
m = {
|
|
367
|
-
scheduledCallCreationMessage: {
|
|
368
|
-
scheduledTimestampMs: (_a = message.call.time) !== null && _a !== void 0 ? _a : Date.now(),
|
|
369
|
-
callType: (_b = message.call.type) !== null && _b !== void 0 ? _b : 1,
|
|
370
|
-
title: message.call.title
|
|
371
|
-
}
|
|
372
|
-
};
|
|
373
|
-
}
|
|
374
|
-
else if ('paymentInvite' in message) {
|
|
375
|
-
m.paymentInviteMessage = {
|
|
376
|
-
serviceType: message.paymentInvite.type,
|
|
377
|
-
expiryTimestamp: message.paymentInvite.expiry
|
|
378
|
-
};
|
|
379
|
-
}
|
|
380
325
|
else if ('buttonReply' in message) {
|
|
381
326
|
switch (message.type) {
|
|
382
327
|
case 'template':
|
|
@@ -393,27 +338,10 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
393
338
|
type: WAProto_1.proto.Message.ButtonsResponseMessage.Type.DISPLAY_TEXT,
|
|
394
339
|
};
|
|
395
340
|
break;
|
|
396
|
-
case 'interactive':
|
|
397
|
-
m.interactiveResponseMessage = {
|
|
398
|
-
body: {
|
|
399
|
-
text: message.buttonReply.text,
|
|
400
|
-
format: WAProto_1.proto.Message.InteractiveResponseMessage.Body.Format.EXTENSIONS_1
|
|
401
|
-
},
|
|
402
|
-
nativeFlowResponseMessage: {
|
|
403
|
-
name: message.buttonReply.nativeFlow.name,
|
|
404
|
-
paramsJson: message.buttonReply.nativeFlow.paramsJson,
|
|
405
|
-
version: message.buttonReply.nativeFlow.version
|
|
406
|
-
}
|
|
407
|
-
};
|
|
408
|
-
break;
|
|
409
341
|
}
|
|
410
342
|
}
|
|
411
|
-
else if ('ptv' in message && message.ptv) {
|
|
412
|
-
const { videoMessage } = await (0, exports.prepareWAMessageMedia)({ video: message.video }, options);
|
|
413
|
-
m.ptvMessage = videoMessage;
|
|
414
|
-
}
|
|
415
343
|
else if ('product' in message) {
|
|
416
|
-
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image:
|
|
344
|
+
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: message.product.productImage }, options);
|
|
417
345
|
m.productMessage = Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
418
346
|
...message,
|
|
419
347
|
product: {
|
|
@@ -421,34 +349,12 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
421
349
|
productImage: imageMessage,
|
|
422
350
|
}
|
|
423
351
|
});
|
|
424
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
425
|
-
m.productMessage.contextInfo = message.contextInfo;
|
|
426
|
-
}
|
|
427
|
-
if ('mentions' in message && !!message.mentions) {
|
|
428
|
-
m.productMessage.contextInfo = { mentionedJid: message.mentions };
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
else if ('order' in message) {
|
|
432
|
-
m.orderMessage = Types_1.WAProto.Message.OrderMessage.fromObject({
|
|
433
|
-
orderId: message.order.id,
|
|
434
|
-
thumbnail: message.order.thumbnail,
|
|
435
|
-
itemCount: message.order.itemCount,
|
|
436
|
-
status: message.order.status,
|
|
437
|
-
surface: message.order.surface,
|
|
438
|
-
orderTitle: message.order.title,
|
|
439
|
-
message: message.order.text,
|
|
440
|
-
sellerJid: message.order.seller,
|
|
441
|
-
token: message.order.token,
|
|
442
|
-
totalAmount1000: message.order.amount,
|
|
443
|
-
totalCurrencyCode: message.order.currency
|
|
444
|
-
});
|
|
445
352
|
}
|
|
446
353
|
else if ('listReply' in message) {
|
|
447
354
|
m.listResponseMessage = { ...message.listReply };
|
|
448
355
|
}
|
|
449
356
|
else if ('poll' in message) {
|
|
450
|
-
(
|
|
451
|
-
(_7 = message.poll).toAnnouncementGroup || (_7.toAnnouncementGroup = false);
|
|
357
|
+
(_b = message.poll).selectableCount || (_b.selectableCount = 0);
|
|
452
358
|
if (!Array.isArray(message.poll.values)) {
|
|
453
359
|
throw new boom_1.Boom('Invalid poll values', { statusCode: 400 });
|
|
454
360
|
}
|
|
@@ -460,125 +366,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
460
366
|
// encKey
|
|
461
367
|
messageSecret: message.poll.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
462
368
|
};
|
|
463
|
-
|
|
369
|
+
m.pollCreationMessage = {
|
|
464
370
|
name: message.poll.name,
|
|
465
371
|
selectableOptionsCount: message.poll.selectableCount,
|
|
466
372
|
options: message.poll.values.map(optionName => ({ optionName })),
|
|
467
373
|
};
|
|
468
|
-
if (message.poll.toAnnouncementGroup) {
|
|
469
|
-
// poll v2 is for community announcement groups (single select and multiple)
|
|
470
|
-
m.pollCreationMessageV2 = pollCreationMessage;
|
|
471
|
-
}
|
|
472
|
-
else {
|
|
473
|
-
if (message.poll.selectableCount > 0) {
|
|
474
|
-
//poll v3 is for single select polls
|
|
475
|
-
m.pollCreationMessageV3 = pollCreationMessage;
|
|
476
|
-
}
|
|
477
|
-
else {
|
|
478
|
-
// poll v3 for multiple choice polls
|
|
479
|
-
m.pollCreationMessage = pollCreationMessage;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
483
|
-
pollCreationMessage.contextInfo = message.contextInfo;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
else if ('pollResult' in message) {
|
|
487
|
-
if (!Array.isArray(message.pollResult.votes)) {
|
|
488
|
-
throw new boom_1.Boom('Invalid poll votes result', { statusCode: 400 });
|
|
489
|
-
}
|
|
490
|
-
m.messageContextInfo = {
|
|
491
|
-
// encKey
|
|
492
|
-
messageSecret: message.pollResult.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
493
|
-
};
|
|
494
|
-
const pollResultSnapshotMessage = {
|
|
495
|
-
name: message.pollResult.name,
|
|
496
|
-
pollVotes: message.pollResult.votes.map((option) => ({
|
|
497
|
-
optionName: option[0],
|
|
498
|
-
optionVoteCount: option[1]
|
|
499
|
-
})),
|
|
500
|
-
};
|
|
501
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
502
|
-
pollResultSnapshotMessage.contextInfo = message.contextInfo;
|
|
503
|
-
}
|
|
504
|
-
if ('mentions' in message && !!message.mentions) {
|
|
505
|
-
pollResultSnapshotMessage.contextInfo = { mentionedJid: message.mentions };
|
|
506
|
-
}
|
|
507
|
-
m.pollResultSnapshotMessage = pollResultSnapshotMessage;
|
|
508
|
-
}
|
|
509
|
-
else if ('event' in message) {
|
|
510
|
-
m.messageContextInfo = {
|
|
511
|
-
messageSecret: message.event.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
512
|
-
};
|
|
513
|
-
m.eventMessage = { ...message.event };
|
|
514
|
-
}
|
|
515
|
-
else if ('inviteAdmin' in message) {
|
|
516
|
-
m.newsletterAdminInviteMessage = {};
|
|
517
|
-
m.newsletterAdminInviteMessage.inviteExpiration = message.inviteAdmin.inviteExpiration;
|
|
518
|
-
m.newsletterAdminInviteMessage.caption = message.inviteAdmin.text;
|
|
519
|
-
m.newsletterAdminInviteMessage.newsletterJid = message.inviteAdmin.jid;
|
|
520
|
-
m.newsletterAdminInviteMessage.newsletterName = message.inviteAdmin.subject;
|
|
521
|
-
m.newsletterAdminInviteMessage.jpegThumbnail = message.inviteAdmin.thumbnail;
|
|
522
|
-
//TODO: use built-in interface and get disappearing mode info etc.
|
|
523
|
-
//TODO: cache / use store!?
|
|
524
|
-
if (options.getProfilePicUrl) {
|
|
525
|
-
let pfpUrl;
|
|
526
|
-
try {
|
|
527
|
-
pfpUrl = await options.getProfilePicUrl(message.inviteAdmin.jid, 'preview');
|
|
528
|
-
}
|
|
529
|
-
catch (_9) {
|
|
530
|
-
pfpUrl = null;
|
|
531
|
-
}
|
|
532
|
-
if (pfpUrl) {
|
|
533
|
-
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
534
|
-
if (resp.status === 200) {
|
|
535
|
-
m.newsletterAdminInviteMessage.jpegThumbnail = resp.data;
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
else {
|
|
539
|
-
m.newsletterAdminInviteMessage.jpegThumbnail = null;
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
else if ('requestPayment' in message) {
|
|
544
|
-
const sticker = ((_d = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _d === void 0 ? void 0 : _d.sticker) ?
|
|
545
|
-
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)
|
|
546
|
-
: null;
|
|
547
|
-
let notes = {};
|
|
548
|
-
if ((_f = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _f === void 0 ? void 0 : _f.sticker) {
|
|
549
|
-
notes = {
|
|
550
|
-
stickerMessage: {
|
|
551
|
-
...sticker === null || sticker === void 0 ? void 0 : sticker.stickerMessage,
|
|
552
|
-
contextInfo: {
|
|
553
|
-
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,
|
|
554
|
-
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,
|
|
555
|
-
quotedMessage: (_l = options === null || options === void 0 ? void 0 : options.quoted) === null || _l === void 0 ? void 0 : _l.message,
|
|
556
|
-
...(_m = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _m === void 0 ? void 0 : _m.contextInfo,
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
};
|
|
560
|
-
}
|
|
561
|
-
else if (message.requestPayment.note) {
|
|
562
|
-
notes = {
|
|
563
|
-
extendedTextMessage: {
|
|
564
|
-
text: message.requestPayment.note,
|
|
565
|
-
contextInfo: {
|
|
566
|
-
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,
|
|
567
|
-
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,
|
|
568
|
-
quotedMessage: (_s = options === null || options === void 0 ? void 0 : options.quoted) === null || _s === void 0 ? void 0 : _s.message,
|
|
569
|
-
...(_t = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _t === void 0 ? void 0 : _t.contextInfo,
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
};
|
|
573
|
-
}
|
|
574
|
-
m.requestPaymentMessage = Types_1.WAProto.Message.RequestPaymentMessage.fromObject({
|
|
575
|
-
expiryTimestamp: message.requestPayment.expiry,
|
|
576
|
-
amount1000: message.requestPayment.amount,
|
|
577
|
-
currencyCodeIso4217: message.requestPayment.currency,
|
|
578
|
-
requestFrom: message.requestPayment.from,
|
|
579
|
-
noteMessage: { ...notes },
|
|
580
|
-
background: (_u = message.requestPayment.background) !== null && _u !== void 0 ? _u : null,
|
|
581
|
-
});
|
|
582
374
|
}
|
|
583
375
|
else if ('sharePhoneNumber' in message) {
|
|
584
376
|
m.protocolMessage = {
|
|
@@ -610,21 +402,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
610
402
|
if ('footer' in message && !!message.footer) {
|
|
611
403
|
buttonsMessage.footerText = message.footer;
|
|
612
404
|
}
|
|
613
|
-
if ('title' in message && !!message.title) {
|
|
614
|
-
buttonsMessage.text = message.title,
|
|
615
|
-
buttonsMessage.headerType = ButtonType.TEXT;
|
|
616
|
-
}
|
|
617
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
618
|
-
buttonsMessage.contextInfo = message.contextInfo;
|
|
619
|
-
}
|
|
620
|
-
if ('mentions' in message && !!message.mentions) {
|
|
621
|
-
buttonsMessage.contextInfo = { mentionedJid: message.mentions };
|
|
622
|
-
}
|
|
623
405
|
m = { buttonsMessage };
|
|
624
406
|
}
|
|
625
407
|
else if ('templateButtons' in message && !!message.templateButtons) {
|
|
626
408
|
const msg = {
|
|
627
|
-
hydratedButtons: message.
|
|
409
|
+
hydratedButtons: message.templateButtons
|
|
628
410
|
};
|
|
629
411
|
if ('text' in message) {
|
|
630
412
|
msg.hydratedContentText = message.text;
|
|
@@ -645,230 +427,21 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
645
427
|
}
|
|
646
428
|
};
|
|
647
429
|
}
|
|
648
|
-
if ('interactiveButtons' in message && !!message.interactiveButtons) {
|
|
649
|
-
const interactiveMessage = {
|
|
650
|
-
nativeFlowMessage: Types_1.WAProto.Message.InteractiveMessage.NativeFlowMessage.fromObject({
|
|
651
|
-
buttons: message.interactiveButtons,
|
|
652
|
-
})
|
|
653
|
-
};
|
|
654
|
-
if ('text' in message) {
|
|
655
|
-
body: interactiveMessage.body = {
|
|
656
|
-
text: message.text
|
|
657
|
-
};
|
|
658
|
-
header: interactiveMessage.header = {
|
|
659
|
-
title: message.title,
|
|
660
|
-
subtitle: message.subtitle,
|
|
661
|
-
hasMediaAttachment: (_v = message === null || message === void 0 ? void 0 : message.media) !== null && _v !== void 0 ? _v : false,
|
|
662
|
-
};
|
|
663
|
-
}
|
|
664
|
-
else {
|
|
665
|
-
if ('caption' in message) {
|
|
666
|
-
body: interactiveMessage.body = {
|
|
667
|
-
text: message.caption
|
|
668
|
-
};
|
|
669
|
-
header: interactiveMessage.header = {
|
|
670
|
-
title: message.title,
|
|
671
|
-
subtitle: message.subtitle,
|
|
672
|
-
hasMediaAttachment: (_w = message === null || message === void 0 ? void 0 : message.media) !== null && _w !== void 0 ? _w : false,
|
|
673
|
-
};
|
|
674
|
-
Object.assign(interactiveMessage.header, m);
|
|
675
|
-
}
|
|
676
|
-
}
|
|
677
|
-
if ('footer' in message && !!message.footer) {
|
|
678
|
-
footer: interactiveMessage.footer = {
|
|
679
|
-
text: message.footer
|
|
680
|
-
};
|
|
681
|
-
}
|
|
682
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
683
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
684
|
-
}
|
|
685
|
-
if ('mentions' in message && !!message.mentions) {
|
|
686
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
687
|
-
}
|
|
688
|
-
m = { interactiveMessage };
|
|
689
|
-
}
|
|
690
|
-
if ('shop' in message && !!message.shop) {
|
|
691
|
-
const interactiveMessage = {
|
|
692
|
-
shopStorefrontMessage: Types_1.WAProto.Message.InteractiveMessage.ShopMessage.fromObject({
|
|
693
|
-
surface: message.shop,
|
|
694
|
-
id: message.id
|
|
695
|
-
})
|
|
696
|
-
};
|
|
697
|
-
if ('text' in message) {
|
|
698
|
-
body: interactiveMessage.body = {
|
|
699
|
-
text: message.text
|
|
700
|
-
};
|
|
701
|
-
header: interactiveMessage.header = {
|
|
702
|
-
title: message.title,
|
|
703
|
-
subtitle: message.subtitle,
|
|
704
|
-
hasMediaAttachment: (_x = message === null || message === void 0 ? void 0 : message.media) !== null && _x !== void 0 ? _x : false,
|
|
705
|
-
};
|
|
706
|
-
}
|
|
707
|
-
else {
|
|
708
|
-
if ('caption' in message) {
|
|
709
|
-
body: interactiveMessage.body = {
|
|
710
|
-
text: message.caption
|
|
711
|
-
};
|
|
712
|
-
header: interactiveMessage.header = {
|
|
713
|
-
title: message.title,
|
|
714
|
-
subtitle: message.subtitle,
|
|
715
|
-
hasMediaAttachment: (_y = message === null || message === void 0 ? void 0 : message.media) !== null && _y !== void 0 ? _y : false,
|
|
716
|
-
};
|
|
717
|
-
Object.assign(interactiveMessage.header, m);
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
|
-
if ('footer' in message && !!message.footer) {
|
|
721
|
-
footer: interactiveMessage.footer = {
|
|
722
|
-
text: message.footer
|
|
723
|
-
};
|
|
724
|
-
}
|
|
725
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
726
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
727
|
-
}
|
|
728
|
-
if ('mentions' in message && !!message.mentions) {
|
|
729
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
730
|
-
}
|
|
731
|
-
m = { interactiveMessage };
|
|
732
|
-
}
|
|
733
|
-
if ('collection' in message && !!message.shop) {
|
|
734
|
-
const interactiveMessage = {
|
|
735
|
-
collectionMessage: Types_1.WAProto.Message.InteractiveMessage.CollectionMessage.fromObject({
|
|
736
|
-
bizJid: (_z = message === null || message === void 0 ? void 0 : message.collection) === null || _z === void 0 ? void 0 : _z.bizJid,
|
|
737
|
-
id: (_0 = message === null || message === void 0 ? void 0 : message.collection) === null || _0 === void 0 ? void 0 : _0.id,
|
|
738
|
-
messageVersion: (_1 = message === null || message === void 0 ? void 0 : message.collection) === null || _1 === void 0 ? void 0 : _1.version
|
|
739
|
-
})
|
|
740
|
-
};
|
|
741
|
-
if ('text' in message) {
|
|
742
|
-
body: interactiveMessage.body = {
|
|
743
|
-
text: message.text
|
|
744
|
-
};
|
|
745
|
-
header: interactiveMessage.header = {
|
|
746
|
-
title: message.title,
|
|
747
|
-
subtitle: message.subtitle,
|
|
748
|
-
hasMediaAttachment: (_2 = message === null || message === void 0 ? void 0 : message.media) !== null && _2 !== void 0 ? _2 : false,
|
|
749
|
-
};
|
|
750
|
-
}
|
|
751
|
-
else {
|
|
752
|
-
if ('caption' in message) {
|
|
753
|
-
body: interactiveMessage.body = {
|
|
754
|
-
text: message.caption
|
|
755
|
-
};
|
|
756
|
-
header: interactiveMessage.header = {
|
|
757
|
-
title: message.title,
|
|
758
|
-
subtitle: message.subtitle,
|
|
759
|
-
hasMediaAttachment: (_3 = message === null || message === void 0 ? void 0 : message.media) !== null && _3 !== void 0 ? _3 : false,
|
|
760
|
-
};
|
|
761
|
-
Object.assign(interactiveMessage.header, m);
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
if ('footer' in message && !!message.footer) {
|
|
765
|
-
footer: interactiveMessage.footer = {
|
|
766
|
-
text: message.footer
|
|
767
|
-
};
|
|
768
|
-
}
|
|
769
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
770
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
771
|
-
}
|
|
772
|
-
if ('mentions' in message && !!message.mentions) {
|
|
773
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
774
|
-
}
|
|
775
|
-
m = { interactiveMessage };
|
|
776
|
-
}
|
|
777
|
-
if ('cards' in message && !!message.cards) {
|
|
778
|
-
const slides = await Promise.all(message.cards.map(async (slide) => {
|
|
779
|
-
const { image, video, product, title, caption, footer, buttons } = slide;
|
|
780
|
-
let header;
|
|
781
|
-
if (product) {
|
|
782
|
-
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: product.productImage, ...options }, options);
|
|
783
|
-
header = {
|
|
784
|
-
productMesage: Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
785
|
-
product: {
|
|
786
|
-
...product,
|
|
787
|
-
productImage: imageMessage,
|
|
788
|
-
},
|
|
789
|
-
...slide
|
|
790
|
-
})
|
|
791
|
-
};
|
|
792
|
-
}
|
|
793
|
-
else if (image) {
|
|
794
|
-
header = await (0, exports.prepareWAMessageMedia)({ image: image, ...options }, options);
|
|
795
|
-
}
|
|
796
|
-
else if (video) {
|
|
797
|
-
header = await (0, exports.prepareWAMessageMedia)({ video: video, ...options }, options);
|
|
798
|
-
}
|
|
799
|
-
const msg = {
|
|
800
|
-
header: Types_1.WAProto.Message.InteractiveMessage.Header.fromObject({
|
|
801
|
-
title,
|
|
802
|
-
hasMediaAttachment: true,
|
|
803
|
-
...header
|
|
804
|
-
}),
|
|
805
|
-
body: Types_1.WAProto.Message.InteractiveMessage.Body.fromObject({
|
|
806
|
-
text: caption
|
|
807
|
-
}),
|
|
808
|
-
footer: Types_1.WAProto.Message.InteractiveMessage.Footer.fromObject({
|
|
809
|
-
text: footer
|
|
810
|
-
}),
|
|
811
|
-
nativeFlowMessage: Types_1.WAProto.Message.InteractiveMessage.NativeFlowMessage.fromObject({
|
|
812
|
-
buttons,
|
|
813
|
-
}),
|
|
814
|
-
};
|
|
815
|
-
return msg;
|
|
816
|
-
}));
|
|
817
|
-
const interactiveMessage = {
|
|
818
|
-
carouselMessage: Types_1.WAProto.Message.InteractiveMessage.CarouselMessage.fromObject({
|
|
819
|
-
cards: slides
|
|
820
|
-
})
|
|
821
|
-
};
|
|
822
|
-
if ('text' in message) {
|
|
823
|
-
interactiveMessage.body = Types_1.WAProto.Message.InteractiveMessage.Body.fromObject({
|
|
824
|
-
text: message.text
|
|
825
|
-
});
|
|
826
|
-
interactiveMessage.header = Types_1.WAProto.Message.InteractiveMessage.Header.fromObject({
|
|
827
|
-
title: message.title,
|
|
828
|
-
subtitle: message.subtitle,
|
|
829
|
-
hasMediaAttachment: (_4 = message === null || message === void 0 ? void 0 : message.media) !== null && _4 !== void 0 ? _4 : false,
|
|
830
|
-
});
|
|
831
|
-
}
|
|
832
|
-
if ('footer' in message && !!message.footer) {
|
|
833
|
-
interactiveMessage.footer = Types_1.WAProto.Message.InteractiveMessage.Footer.fromObject({
|
|
834
|
-
text: message.footer
|
|
835
|
-
});
|
|
836
|
-
}
|
|
837
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
838
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
839
|
-
}
|
|
840
|
-
if ('mentions' in message && !!message.mentions) {
|
|
841
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
842
|
-
}
|
|
843
|
-
m = { interactiveMessage };
|
|
844
|
-
}
|
|
845
430
|
if ('sections' in message && !!message.sections) {
|
|
846
|
-
const listMessage =
|
|
431
|
+
const listMessage = {
|
|
847
432
|
sections: message.sections,
|
|
848
433
|
buttonText: message.buttonText,
|
|
849
434
|
title: message.title,
|
|
850
435
|
footerText: message.footer,
|
|
851
436
|
description: message.text,
|
|
852
|
-
listType: WAProto_1.proto.Message.ListMessage.ListType.
|
|
853
|
-
}
|
|
437
|
+
listType: WAProto_1.proto.Message.ListMessage.ListType.SINGLE_SELECT
|
|
438
|
+
};
|
|
854
439
|
m = { listMessage };
|
|
855
440
|
}
|
|
856
441
|
if ('viewOnce' in message && !!message.viewOnce) {
|
|
857
442
|
m = { viewOnceMessage: { message: m } };
|
|
858
443
|
}
|
|
859
|
-
if ('
|
|
860
|
-
m = { viewOnceMessageV2: { message: m } };
|
|
861
|
-
}
|
|
862
|
-
if ('viewOnceV2Extension' in message && !!message.viewOnceV2Extension) {
|
|
863
|
-
m = { viewOnceMessageV2Extension: { message: m } };
|
|
864
|
-
}
|
|
865
|
-
if ('ephemeral' in message && !!message.ephemeral) {
|
|
866
|
-
m = { ephemeralMessage: { message: m } };
|
|
867
|
-
}
|
|
868
|
-
if ('lottie' in message && !!message.lottie) {
|
|
869
|
-
m = { lottieStickerMessage: { message: m } };
|
|
870
|
-
}
|
|
871
|
-
if ('mentions' in message && ((_5 = message.mentions) === null || _5 === void 0 ? void 0 : _5.length)) {
|
|
444
|
+
if ('mentions' in message && ((_a = message.mentions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
872
445
|
const [messageType] = Object.keys(m);
|
|
873
446
|
m[messageType].contextInfo = m[messageType] || {};
|
|
874
447
|
m[messageType].contextInfo.mentionedJid = message.mentions;
|
|
@@ -892,7 +465,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
892
465
|
};
|
|
893
466
|
exports.generateWAMessageContent = generateWAMessageContent;
|
|
894
467
|
const generateWAMessageFromContent = (jid, message, options) => {
|
|
895
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
896
468
|
// set timestamp to now
|
|
897
469
|
// if not specified
|
|
898
470
|
if (!options.timestamp) {
|
|
@@ -912,16 +484,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
912
484
|
if (typeof quotedContent === 'object' && quotedContent && 'contextInfo' in quotedContent) {
|
|
913
485
|
delete quotedContent.contextInfo;
|
|
914
486
|
}
|
|
915
|
-
|
|
916
|
-
if (key === 'requestPaymentMessage') {
|
|
917
|
-
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)) {
|
|
918
|
-
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;
|
|
919
|
-
}
|
|
920
|
-
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)) {
|
|
921
|
-
requestPayment = (_k = (_j = innerMessage.requestPaymentMessage) === null || _j === void 0 ? void 0 : _j.noteMessage) === null || _k === void 0 ? void 0 : _k.stickerMessage;
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
const contextInfo = (key === 'requestPaymentMessage' ? requestPayment.contextInfo : innerMessage[key].contextInfo) || {};
|
|
487
|
+
const contextInfo = innerMessage[key].contextInfo || {};
|
|
925
488
|
contextInfo.participant = (0, WABinary_1.jidNormalizedUser)(participant);
|
|
926
489
|
contextInfo.stanzaId = quoted.key.id;
|
|
927
490
|
contextInfo.quotedMessage = quotedMsg;
|