@boruto_vk7/baileys 1.0.0 → 1.0.2
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 +3 -3
- package/README.md +23 -1373
- package/lib/Defaults/index.js +2 -2
- package/lib/Defaults/index.js.bak +148 -0
- package/lib/Socket/chats.js +6 -6
- package/lib/Socket/groups.js.bak +329 -0
- package/lib/Socket/messages-recv.js +1 -1
- package/lib/Socket/messages-send.js +13 -13
- package/lib/Socket/newsletter.js +1 -1
- package/lib/Store/make-in-memory-store.js +2 -2
- package/lib/Types/Message.js +1 -1
- package/lib/Utils/messages-media.js +2 -2
- package/lib/Utils/messages.js +38 -38
- package/lib/Utils/messages.js.bak +1879 -0
- package/lib/Utils/rich-message-utils.js +6 -6
- package/lib/Utils/rich-message-utils.js.bak +387 -0
- package/lib/Utils/use-single-file-auth-state.js +1 -1
- package/lib/WABinary/generic-utils.js +1 -1
- package/lib/index.js.bak +13 -0
- package/package.json +2 -2
package/lib/Socket/newsletter.js
CHANGED
|
@@ -68,7 +68,7 @@ export const makeNewsletterSocket = (config) => {
|
|
|
68
68
|
newsletterSubscribers: async (jid) => {
|
|
69
69
|
return executeWMexQuery({ newsletter_id: jid }, QueryIds.SUBSCRIBERS, XWAPaths.xwa2_newsletter_subscribers);
|
|
70
70
|
},
|
|
71
|
-
//
|
|
71
|
+
// Boruto@Changes 29-01-26 --- Add newsletterSubscribed to fetch all subscribed newsletters (similar to groupFetchAllParticipating ( ╹▽╹ ))
|
|
72
72
|
newsletterSubscribed: async () => {
|
|
73
73
|
return executeWMexQuery({}, QueryIds.SUBSCRIBED, XWAPaths.xwa2_newsletter_subscribed);
|
|
74
74
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Boruto@Note 03-02-26 [WIP]
|
|
3
3
|
* Manually converted to ESM and modified by me
|
|
4
4
|
* Originally based on @whiskeysockets/baileys v6.7.16
|
|
5
5
|
* Minor adjustments for compatibility with baileys v7 (つ≧▽≦)つ
|
|
@@ -28,7 +28,7 @@ export const makeInMemoryStore = (config = {}) => {
|
|
|
28
28
|
const chatKey = config.chatKey || waChatKey(true);
|
|
29
29
|
const labelAssociationKey = config.labelAssociationKey || waLabelAssociationKey;
|
|
30
30
|
const logger = config.logger || DEFAULT_CONNECTION_CONFIG.logger.child({ stream: 'in-mem-store' });
|
|
31
|
-
const KeyedDB = keyedDB?.default ?? keyedDB; //
|
|
31
|
+
const KeyedDB = keyedDB?.default ?? keyedDB; // Boruto@Note 03-02-26 --- Handle CJS ↔ ESM default export differences ⊂(・ω・*⊂)
|
|
32
32
|
const chats = new KeyedDB(chatKey, c => c.id);
|
|
33
33
|
const messages = {};
|
|
34
34
|
const contacts = {};
|
package/lib/Types/Message.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { proto } from '../../WAProto/index.js';
|
|
2
2
|
// export the WAMessage Prototypes
|
|
3
3
|
export { proto as WAProto };
|
|
4
|
-
//
|
|
4
|
+
// Boruto@Changes 03-02-26 --- Add exported message-related enum types from proto.Message
|
|
5
5
|
export const AssociationType = proto.MessageAssociation.AssociationType;
|
|
6
6
|
export const ButtonHeaderType = proto.Message.ButtonsMessage.HeaderType;
|
|
7
7
|
export const ButtonType = proto.Message.ButtonsMessage.Button.Type;
|
|
@@ -699,9 +699,9 @@ export const getWAUploadToServer = ({ customUploadHosts, fetchAgent, logger, opt
|
|
|
699
699
|
for (const { hostname } of hosts) {
|
|
700
700
|
logger.debug(`uploading to "${hostname}"`);
|
|
701
701
|
const auth = encodeURIComponent(uploadInfo.auth);
|
|
702
|
-
//
|
|
702
|
+
// Boruto@Changes 06-02-26 --- Switch media path map for newsletter uploads
|
|
703
703
|
const mediaPathMap = newsletter ? NEWSLETTER_MEDIA_PATH_MAP : MEDIA_PATH_MAP
|
|
704
|
-
//
|
|
704
|
+
// Boruto@Changes 20-03-26 --- Add server thumb for newsletter media
|
|
705
705
|
const serverThumb = newsletter ? '&server_thumb_gen=1' : ''
|
|
706
706
|
const url = `https://${hostname}${mediaPathMap[mediaType]}/${fileEncSha256B64}?auth=${auth}&token=${fileEncSha256B64}${serverThumb}`;
|
|
707
707
|
let result;
|
package/lib/Utils/messages.js
CHANGED
|
@@ -117,7 +117,7 @@ export const prepareWAMessageMedia = async (message, options) => {
|
|
|
117
117
|
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true && typeof uploadData.waveform === 'undefined';
|
|
118
118
|
const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true;
|
|
119
119
|
const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation || requiresWaveformProcessing;
|
|
120
|
-
//
|
|
120
|
+
// Boruto@Changes 06-02-26 --- Add few support for sending media to newsletter (≧▽≦)
|
|
121
121
|
if (isNewsletter) {
|
|
122
122
|
logger?.info({ key: cacheableKey }, 'Preparing raw media for newsletter');
|
|
123
123
|
const { filePath, fileSha256, fileLength } = await getRawMediaUploadData(uploadData.media, options.mediaTypeOverride || mediaType, logger);
|
|
@@ -281,13 +281,13 @@ export const prepareDisappearingMessageSettingContent = (ephemeralExpiration) =>
|
|
|
281
281
|
};
|
|
282
282
|
return content;
|
|
283
283
|
};
|
|
284
|
-
//
|
|
284
|
+
// Boruto@Changes 31-01-26 --- Extract product message into a standalone function so it can also be reused as the header for interactive messages
|
|
285
285
|
const prepareProductMessage = async (message, options) => {
|
|
286
286
|
if (!message.businessOwnerJid) {
|
|
287
287
|
throw new Boom('"businessOwnerJid" is missing from the content', { statusCode: 400 });
|
|
288
288
|
}
|
|
289
289
|
const { imageMessage } = await prepareWAMessageMedia({ image: message.image || message.product.productImage }, options);
|
|
290
|
-
//
|
|
290
|
+
// Boruto@Changes 01-02-26 --- Add product message default value
|
|
291
291
|
const content = {
|
|
292
292
|
...message,
|
|
293
293
|
product: {
|
|
@@ -302,7 +302,7 @@ const prepareProductMessage = async (message, options) => {
|
|
|
302
302
|
return content;
|
|
303
303
|
};
|
|
304
304
|
/**
|
|
305
|
-
*
|
|
305
|
+
* Boruto@Note 30-01-26
|
|
306
306
|
* ---
|
|
307
307
|
* Credits: Work on ensuring stickerPackMessage fields are valid by @jlucaso1 (https://github.com/jlucaso1).
|
|
308
308
|
* based on https://github.com/WhiskeySockets/Baileys/pull/1561
|
|
@@ -318,7 +318,7 @@ const prepareStickerPackMessage = async (message, options) => {
|
|
|
318
318
|
if (!cover) {
|
|
319
319
|
throw new Boom('Sticker pack must contain a cover', { statusCode: 400 });
|
|
320
320
|
}
|
|
321
|
-
//
|
|
321
|
+
// Boruto@Changes 01-02-26 --- Add caching for sticker pack (simiBorutor to prepareWAMessageMedia)
|
|
322
322
|
const cacheableKey = Array.isArray(stickers) &&
|
|
323
323
|
stickers.length &&
|
|
324
324
|
!!options.mediaCache &&
|
|
@@ -517,18 +517,18 @@ const prepareStickerPackMessage = async (message, options) => {
|
|
|
517
517
|
}
|
|
518
518
|
return WAProto.Message.StickerPackMessage.fromObject(content);
|
|
519
519
|
};
|
|
520
|
-
//
|
|
520
|
+
// Boruto@Changes 30-01-26 --- Add native flow button helper for interactive message
|
|
521
521
|
const prepareNativeFlowButtons = (message) => {
|
|
522
522
|
const buttons = message.nativeFlow
|
|
523
523
|
const isButtonsFieldArray = Array.isArray(buttons);
|
|
524
524
|
const correctedField = isButtonsFieldArray ? buttons : buttons.buttons;
|
|
525
525
|
const messageParamsJson = {};
|
|
526
|
-
//
|
|
526
|
+
// Boruto@Changes 31-01-26 --- Add offer and options inside interactive message
|
|
527
527
|
if (hasOptionalProperty(message, 'offerText') && !!message.offerText) {
|
|
528
528
|
Object.assign(messageParamsJson, {
|
|
529
529
|
limited_time_offer: {
|
|
530
530
|
text: message.offerText || LIBRARY_NAME,
|
|
531
|
-
url: message.offerUrl || DONATE_URL, //
|
|
531
|
+
url: message.offerUrl || DONATE_URL, // Boruto@Note 02-02-26 --- Apologies if this feels cheeky, just a fallback
|
|
532
532
|
copy_code: message.offerCode,
|
|
533
533
|
expiration_time: message.offerExpiration
|
|
534
534
|
}
|
|
@@ -592,7 +592,7 @@ const prepareNativeFlowButtons = (message) => {
|
|
|
592
592
|
})
|
|
593
593
|
};
|
|
594
594
|
}
|
|
595
|
-
//
|
|
595
|
+
// Boruto@Changes 12-03-26 --- Add "single_select" shortcut \(°o°)/
|
|
596
596
|
else if (hasOptionalProperty(button, 'sections') && !!button.sections) {
|
|
597
597
|
return {
|
|
598
598
|
name: 'single_select',
|
|
@@ -663,7 +663,7 @@ export const hasOptionalProperty = (obj, key) => {
|
|
|
663
663
|
key in obj &&
|
|
664
664
|
obj[key] != null;
|
|
665
665
|
};
|
|
666
|
-
//
|
|
666
|
+
// Boruto@Changes 06-02-26 --- Validate album message media to avoid bug 👀
|
|
667
667
|
export const hasValidAlbumMedia = (message) => {
|
|
668
668
|
return message.imageMessage ||
|
|
669
669
|
message.videoMessage;
|
|
@@ -675,7 +675,7 @@ export const hasValidInteractiveHeader = (message) => {
|
|
|
675
675
|
message.productMessage ||
|
|
676
676
|
message.locationMessage;
|
|
677
677
|
};
|
|
678
|
-
//
|
|
678
|
+
// Boruto@Changes 30-01-26 --- Validate carousel cards header to avoid bug 👀
|
|
679
679
|
export const hasValidCarouselHeader = (message) => {
|
|
680
680
|
return message.imageMessage ||
|
|
681
681
|
message.videoMessage ||
|
|
@@ -684,12 +684,12 @@ export const hasValidCarouselHeader = (message) => {
|
|
|
684
684
|
export const generateWAMessageContent = async (message, options) => {
|
|
685
685
|
var _a, _b;
|
|
686
686
|
let m = {};
|
|
687
|
-
//
|
|
687
|
+
// Boruto@Changes 30-01-26 --- Add "raw" boolean to send raw messages directly via generateWAMessage()
|
|
688
688
|
if (hasNonNullishProperty(message, 'raw')) {
|
|
689
689
|
delete message.raw;
|
|
690
690
|
return message;
|
|
691
691
|
}
|
|
692
|
-
//
|
|
692
|
+
// Boruto@Changes 09-04-26 --- Add support for code block, latex, reels carousel, table with richResponseMessage
|
|
693
693
|
else if (hasNonNullishProperty(message, 'code') ||
|
|
694
694
|
hasNonNullishProperty(message, 'expressions') ||
|
|
695
695
|
hasNonNullishProperty(message, 'items') ||
|
|
@@ -896,13 +896,13 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
896
896
|
m.pollCreationMessageV2 = pollCreationMessage;
|
|
897
897
|
}
|
|
898
898
|
else {
|
|
899
|
-
//
|
|
899
|
+
// Boruto@Changes 08-02-26 --- Add quiz message support
|
|
900
900
|
if (message.poll.pollType == 1) {
|
|
901
901
|
if (!message.poll.correctAnswer) {
|
|
902
902
|
throw new Boom('No "correctAnswer" provided for quiz', { statusCode: 400 });
|
|
903
903
|
}
|
|
904
904
|
m.pollCreationMessageV5 = {
|
|
905
|
-
//
|
|
905
|
+
// Boruto@Note 08-02-26 --- quiz for newsletter only
|
|
906
906
|
...pollCreationMessage,
|
|
907
907
|
correctAnswer: {
|
|
908
908
|
optionName: message.poll.correctAnswer.toString()
|
|
@@ -921,7 +921,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
921
921
|
}
|
|
922
922
|
}
|
|
923
923
|
}
|
|
924
|
-
//
|
|
924
|
+
// Boruto@Changes 08-02-26 --- Add poll result snapshot message
|
|
925
925
|
else if (hasNonNullishProperty(message, 'pollResult')) {
|
|
926
926
|
const pollResultSnapshotMessage = {
|
|
927
927
|
name: message.pollResult.name,
|
|
@@ -939,7 +939,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
939
939
|
m.pollResultSnapshotMessage = pollResultSnapshotMessage;
|
|
940
940
|
}
|
|
941
941
|
}
|
|
942
|
-
//
|
|
942
|
+
// Boruto@Changes 08-02-26 --- Add poll update message
|
|
943
943
|
else if (hasNonNullishProperty(message, 'pollUpdate')) {
|
|
944
944
|
if (!message.pollUpdate.key) {
|
|
945
945
|
throw new Boom('Message key is required', { statusCode: 400 });
|
|
@@ -973,14 +973,14 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
973
973
|
}
|
|
974
974
|
};
|
|
975
975
|
}
|
|
976
|
-
//
|
|
976
|
+
// Boruto@Changes 01-02-26 --- Add payment invite message
|
|
977
977
|
else if (hasNonNullishProperty(message, 'paymentInviteServiceType')) {
|
|
978
978
|
m.paymentInviteMessage = {
|
|
979
979
|
expiryTimestamp: Date.now(),
|
|
980
980
|
serviceType: message.paymentInviteServiceType
|
|
981
981
|
};
|
|
982
982
|
}
|
|
983
|
-
//
|
|
983
|
+
// Boruto@Changes 01-02-26 --- Add order message
|
|
984
984
|
else if (hasNonNullishProperty(message, 'orderText')) {
|
|
985
985
|
if (!Buffer.isBuffer(message.thumbnail)) {
|
|
986
986
|
throw new Boom('Must provide thumbnail buffer in order message', { statusCode: 400 });
|
|
@@ -999,7 +999,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
999
999
|
};
|
|
1000
1000
|
delete m.orderMessage.orderText;
|
|
1001
1001
|
}
|
|
1002
|
-
//
|
|
1002
|
+
// Boruto@Changes 31-01-26 --- Add support for album messages
|
|
1003
1003
|
else if (hasNonNullishProperty(message, 'album')) {
|
|
1004
1004
|
if (!Array.isArray(message.album)) {
|
|
1005
1005
|
throw new Boom('Invalid album type. Expected an array.', { statusCode: 400 });
|
|
@@ -1023,11 +1023,11 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1023
1023
|
else {
|
|
1024
1024
|
m = await prepareWAMessageMedia(message, options);
|
|
1025
1025
|
}
|
|
1026
|
-
//
|
|
1026
|
+
// Boruto@Changes 30-01-26 --- Add interactive messages (buttonsMessage, listMessage, interactiveMessage, templateMessage, and carouselMessage)
|
|
1027
1027
|
if (hasNonNullishProperty(message, 'buttons')) {
|
|
1028
1028
|
const buttonsMessage = {
|
|
1029
1029
|
buttons: message.buttons.map(button => {
|
|
1030
|
-
//
|
|
1030
|
+
// Boruto@Changes 12-03-26 --- Add "single_select" shortcut!
|
|
1031
1031
|
const buttonText = button.text || button.buttonText;
|
|
1032
1032
|
if (hasOptionalProperty(button, 'sections')) {
|
|
1033
1033
|
return {
|
|
@@ -1085,7 +1085,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1085
1085
|
};
|
|
1086
1086
|
m = { listMessage };
|
|
1087
1087
|
}
|
|
1088
|
-
//
|
|
1088
|
+
// Boruto@Note 03-02-26 --- This message type is shown on WhatsApp Web/Desktop and iOS (I guess 。◕‿◕。). On Android, it only appears in newsletter (so far ಥ‿ಥ)
|
|
1089
1089
|
else if (hasNonNullishProperty(message, 'templateButtons')) {
|
|
1090
1090
|
const hydratedTemplate = {
|
|
1091
1091
|
hydratedButtons: message.templateButtons.map((button, i) => {
|
|
@@ -1134,7 +1134,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1134
1134
|
if (hasOptionalProperty(message, 'footer')) {
|
|
1135
1135
|
hydratedTemplate.hydratedFooterText = message.footer;
|
|
1136
1136
|
}
|
|
1137
|
-
hydratedTemplate.templateId = message.id || 'template-' + Date.now(); //
|
|
1137
|
+
hydratedTemplate.templateId = message.id || 'template-' + Date.now(); // Boruto@Note 04-02-26 --- Minimal templateId to satisfy WhatsApp ( ꈍᴗꈍ)
|
|
1138
1138
|
m = {
|
|
1139
1139
|
templateMessage: {
|
|
1140
1140
|
hydratedFourRowTemplate: hydratedTemplate,
|
|
@@ -1256,7 +1256,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1256
1256
|
}
|
|
1257
1257
|
m = { interactiveMessage };
|
|
1258
1258
|
}
|
|
1259
|
-
//
|
|
1259
|
+
// Boruto@Changes 01-02-26 --- Add request payment message
|
|
1260
1260
|
else if (hasNonNullishProperty(message, 'requestPaymentFrom')) {
|
|
1261
1261
|
const requestPaymentMessage = {
|
|
1262
1262
|
amount: {
|
|
@@ -1280,7 +1280,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1280
1280
|
}
|
|
1281
1281
|
m = { requestPaymentMessage };
|
|
1282
1282
|
}
|
|
1283
|
-
//
|
|
1283
|
+
// Boruto@Changes 01-02-26 --- Add invoice message
|
|
1284
1284
|
else if (hasNonNullishProperty(message, 'invoiceNote')) {
|
|
1285
1285
|
const attachment = m.imageMessage || m.documentMessage;
|
|
1286
1286
|
const type = Object.keys(m)[0].replace('Message', '').toUpperCase();
|
|
@@ -1306,7 +1306,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1306
1306
|
}
|
|
1307
1307
|
m = { invoiceMessage };
|
|
1308
1308
|
}
|
|
1309
|
-
//
|
|
1309
|
+
// Boruto@Changes 31-01-26 --- Add direct externalAdReply access (no need to create contextInfo first)
|
|
1310
1310
|
if (hasOptionalProperty(message, 'externalAdReply') && !!message.externalAdReply) {
|
|
1311
1311
|
const messageType = Object.keys(m)[0];
|
|
1312
1312
|
const key = m[messageType];
|
|
@@ -1315,7 +1315,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1315
1315
|
throw new Boom('Thumbnail must in buffer type', { statusCode: 400 });
|
|
1316
1316
|
}
|
|
1317
1317
|
if (!content.url || typeof content.url !== 'string') {
|
|
1318
|
-
content.url = DONATE_URL; //
|
|
1318
|
+
content.url = DONATE_URL; // Boruto@Note 02-02-26 --- Apologies if this feels cheeky, just a fallback
|
|
1319
1319
|
}
|
|
1320
1320
|
const externalAdReply = {
|
|
1321
1321
|
...content,
|
|
@@ -1365,7 +1365,7 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1365
1365
|
key.contextInfo = message.contextInfo;
|
|
1366
1366
|
}
|
|
1367
1367
|
}
|
|
1368
|
-
//
|
|
1368
|
+
// Boruto@Changes 31-01-26 --- Add "groupStatus" boolean to set contextInfo.isGroupStatus and wrap message into groupStatusMessageV2
|
|
1369
1369
|
if (hasOptionalProperty(message, 'groupStatus') && !!message.groupStatus) {
|
|
1370
1370
|
const messageType = Object.keys(m)[0];
|
|
1371
1371
|
const key = m[messageType];
|
|
@@ -1380,20 +1380,20 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1380
1380
|
m = { groupStatusMessageV2: { message: m } };
|
|
1381
1381
|
delete message.groupStatus;
|
|
1382
1382
|
}
|
|
1383
|
-
//
|
|
1383
|
+
// Boruto@Changes 02-02-26 --- Add "interactiveAsTemplate" boolean to wrap interactiveMessage into templateMessage
|
|
1384
1384
|
else if (hasOptionalProperty(message, 'interactiveAsTemplate') && !!message.interactiveAsTemplate) {
|
|
1385
1385
|
if (!m.interactiveMessage) {
|
|
1386
|
-
throw new Boom('Invalid message type for template', { statusCode: 400 }); //
|
|
1386
|
+
throw new Boom('Invalid message type for template', { statusCode: 400 }); // Boruto@Note 02-02-26 --- To avoid bug 👀
|
|
1387
1387
|
}
|
|
1388
1388
|
m = {
|
|
1389
1389
|
templateMessage: {
|
|
1390
1390
|
interactiveMessageTemplate: m.interactiveMessage,
|
|
1391
|
-
templateId: message.id || 'template-' + Date.now() //
|
|
1391
|
+
templateId: message.id || 'template-' + Date.now() // Boruto@Note 04-02-26 --- Minimal templateId to satisfy WhatsApp ( ꈍᴗꈍ)
|
|
1392
1392
|
}
|
|
1393
1393
|
};
|
|
1394
1394
|
delete message.interactiveAsTemplate;
|
|
1395
1395
|
}
|
|
1396
|
-
//
|
|
1396
|
+
// Boruto@Changes 30-01-26 --- Add "ephemeral" boolean to wrap message into ephemeralMessage like "viewOnce"
|
|
1397
1397
|
if (hasOptionalProperty(message, 'ephemeral') && !!message.ephemeral) {
|
|
1398
1398
|
m = { ephemeralMessage: { message: m } };
|
|
1399
1399
|
delete message.ephemeral;
|
|
@@ -1401,12 +1401,12 @@ export const generateWAMessageContent = async (message, options) => {
|
|
|
1401
1401
|
else if (hasOptionalProperty(message, 'viewOnce') && !!message.viewOnce) {
|
|
1402
1402
|
m = { viewOnceMessage: { message: m } };
|
|
1403
1403
|
}
|
|
1404
|
-
//
|
|
1404
|
+
// Boruto@Changes 03-02-26 --- Add "viewOnceV2" boolean to wrap message into viewOnceMessageV2 like "viewOnce"
|
|
1405
1405
|
else if (hasOptionalProperty(message, 'viewOnceV2') && !!message.viewOnceV2) {
|
|
1406
1406
|
m = { viewOnceMessageV2: { message: m } };
|
|
1407
1407
|
delete message.viewOnceV2;
|
|
1408
1408
|
}
|
|
1409
|
-
//
|
|
1409
|
+
// Boruto@Changes 03-02-26 --- Add "viewOnceV2Extension" boolean to wrap message into viewOnceMessageV2Extension like "viewOnce"
|
|
1410
1410
|
else if (hasOptionalProperty(message, 'viewOnceV2Extension') && !!message.viewOnceV2Extension) {
|
|
1411
1411
|
m = { viewOnceMessageV2Extension: { message: m } };
|
|
1412
1412
|
delete message.viewOnceV2Extension;
|
|
@@ -1483,7 +1483,7 @@ export const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
1483
1483
|
//ephemeralSettingTimestamp: options.ephemeralOptions.eph_setting_ts?.toString()
|
|
1484
1484
|
};
|
|
1485
1485
|
}
|
|
1486
|
-
//
|
|
1486
|
+
// Boruto@Changes 30-01-26 --- Add deviceListMetadata inside messageContextInfo for private chat
|
|
1487
1487
|
if (messageContextInfo?.messageSecret && (isPnUser(jid) || isLidUser(jid))) {
|
|
1488
1488
|
messageContextInfo.deviceListMetadata = {
|
|
1489
1489
|
recipientKeyHash: randomBytes(10),
|
|
@@ -1542,7 +1542,7 @@ export const normalizeMessageContent = (content) => {
|
|
|
1542
1542
|
content = inner.message;
|
|
1543
1543
|
}
|
|
1544
1544
|
return content;
|
|
1545
|
-
//
|
|
1545
|
+
// Boruto@Changes 03-02-26 --- Add all futureProofMessage into getFutureProofMessage()
|
|
1546
1546
|
function getFutureProofMessage(message) {
|
|
1547
1547
|
return (
|
|
1548
1548
|
message?.associatedChildMessage ||
|
|
@@ -1860,7 +1860,7 @@ const isWebPBuffer = (buffer) => {
|
|
|
1860
1860
|
);
|
|
1861
1861
|
};
|
|
1862
1862
|
/**
|
|
1863
|
-
*
|
|
1863
|
+
* Boruto@Changes 30-01-26
|
|
1864
1864
|
* ---
|
|
1865
1865
|
* Determines whether a message should include a Biz Binary Node.
|
|
1866
1866
|
* A Biz Binary Node is added only for interactive messages
|