@lordmega/baileys 0.3.23 → 0.3.24
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 +116 -5
- package/WAProto/index.d.ts +26 -0
- package/WAProto/index.js +203 -0
- package/lib/Defaults/index.d.ts +1 -0
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +1 -0
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/libsignal.js +4 -4
- package/lib/Socket/Client/websocket.js +10 -5
- package/lib/Socket/business.d.ts +1 -1
- package/lib/Socket/chats.d.ts +1 -1
- package/lib/Socket/chats.js +8 -6
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +1 -1
- package/lib/Socket/communities.js +3 -2
- package/lib/Socket/groups.d.ts +1 -1
- package/lib/Socket/groups.js +24 -8
- package/lib/Socket/index.d.ts +1 -1
- package/lib/Socket/messages-recv.d.ts +1 -1
- package/lib/Socket/messages-recv.js +92 -24
- package/lib/Socket/messages-send.d.ts +2 -1
- package/lib/Socket/messages-send.js +68 -8
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +1 -1
- package/lib/Socket/newsletter.js +28 -1
- package/lib/Socket/socket.js +41 -13
- package/lib/Store/make-in-memory-store.js +7 -2
- package/lib/Utils/browser-utils.d.ts +1 -0
- package/lib/Utils/browser-utils.js +1 -0
- package/lib/Utils/crypto.js +34 -1
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.js +19 -2
- package/lib/Utils/generics.js +3 -6
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/message-retry-manager.d.ts +1 -0
- package/lib/Utils/message-retry-manager.js +7 -0
- package/lib/Utils/messages-media.js +108 -41
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +49 -140
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/process-message.d.ts +1 -0
- package/lib/Utils/process-message.d.ts.map +1 -1
- package/lib/Utils/process-message.js +154 -78
- package/lib/Utils/process-message.js.map +1 -1
- package/lib/Utils/reporting-utils.d.ts +1 -0
- package/lib/Utils/reporting-utils.js +1 -1
- package/lib/Utils/rich-message-utils.d.ts.map +1 -1
- package/lib/Utils/rich-message-utils.js.map +1 -1
- package/lib/Utils/tc-token-utils.js +9 -11
- package/lib/Utils/use-multi-file-auth-state.js +10 -11
- package/lib/Utils/use-single-file-auth-state.js +8 -2
- package/lib/Utils/validate-connection.js +10 -4
- package/lib/WABinary/constants.d.ts.map +1 -1
- package/lib/WABinary/constants.js.map +1 -1
- package/lib/WAUSync/USyncQuery.js +24 -2
- package/package.json +10 -7
- package/lib/Utils/use-sqlite-auth-state.d.ts.map +0 -1
- package/lib/Utils/use-sqlite-auth-state.js.map +0 -1
package/lib/Socket/chats.js
CHANGED
|
@@ -566,7 +566,6 @@ export const makeChatsSocket = (config) => {
|
|
|
566
566
|
* type = "image for the high res picture"
|
|
567
567
|
*/
|
|
568
568
|
const profilePictureUrl = async (jid, type = 'image', timeoutMs = 5000, shouldIncludeTcToken = false) => {
|
|
569
|
-
const baseContent = [{ tag: 'picture', attrs: { type, query: 'url' } }];
|
|
570
569
|
// WA Web only includes tctoken for user JIDs (not groups/newsletters)
|
|
571
570
|
// and never for own profile pic (Chat model for self has no tcToken).
|
|
572
571
|
// Including tctoken for own JID causes the server to never respond.
|
|
@@ -574,15 +573,18 @@ export const makeChatsSocket = (config) => {
|
|
|
574
573
|
const isUserJid = isPnUser(normalizedJid) || isLidUser(normalizedJid);
|
|
575
574
|
const me = authState.creds.me;
|
|
576
575
|
const isSelf = me && (normalizedJid === jidNormalizedUser(me.id) || (me.lid && normalizedJid === jidNormalizedUser(me.lid)));
|
|
577
|
-
|
|
576
|
+
// tctoken must be nested inside <picture>, not a sibling (#2589)
|
|
577
|
+
// gated behind shouldIncludeTcToken — off by default avoids 408 timeouts
|
|
578
|
+
let pictureChildren = undefined;
|
|
578
579
|
if (shouldIncludeTcToken && serverProps.profilePicPrivacyToken && isUserJid && !isSelf) {
|
|
579
|
-
|
|
580
|
+
const tcTokenNode = await buildTcTokenFromJid({
|
|
580
581
|
authState,
|
|
581
582
|
jid: normalizedJid,
|
|
582
|
-
baseContent,
|
|
583
583
|
getLIDForPN
|
|
584
584
|
});
|
|
585
|
+
if (tcTokenNode) pictureChildren = [tcTokenNode];
|
|
585
586
|
}
|
|
587
|
+
const content = [{ tag: 'picture', attrs: { type, query: 'url' }, content: pictureChildren }];
|
|
586
588
|
jid = jidNormalizedUser(jid);
|
|
587
589
|
const result = await query({
|
|
588
590
|
tag: 'iq',
|
|
@@ -661,7 +663,7 @@ export const makeChatsSocket = (config) => {
|
|
|
661
663
|
// Only include tctoken for user JIDs — groups/newsletters don't use tctokens
|
|
662
664
|
const normalizedToJid = jidNormalizedUser(toJid);
|
|
663
665
|
const isUserJid = isPnUser(normalizedToJid) || isLidUser(normalizedToJid);
|
|
664
|
-
const
|
|
666
|
+
const tcTokenNode = isUserJid
|
|
665
667
|
? await buildTcTokenFromJid({ authState, jid: normalizedToJid, getLIDForPN })
|
|
666
668
|
: undefined;
|
|
667
669
|
return sendNode({
|
|
@@ -671,7 +673,7 @@ export const makeChatsSocket = (config) => {
|
|
|
671
673
|
id: generateMessageTag(),
|
|
672
674
|
type: 'subscribe'
|
|
673
675
|
},
|
|
674
|
-
content:
|
|
676
|
+
content: tcTokenNode ? [tcTokenNode] : undefined
|
|
675
677
|
});
|
|
676
678
|
};
|
|
677
679
|
const handlePresenceUpdate = ({ tag, attrs, content }) => {
|
package/lib/Socket/chats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/Socket/chats.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/Socket/chats.js"],"names":[],"mappings":"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"}
|
|
@@ -436,7 +436,7 @@ export function makeCommunitiesSocket(config: any): {
|
|
|
436
436
|
appPatch: (patchCreate: any) => Promise<void>;
|
|
437
437
|
sendPresenceUpdate: (type: any, toJid: any) => Promise<void>;
|
|
438
438
|
presenceSubscribe: (toJid: any) => Promise<void>;
|
|
439
|
-
profilePictureUrl: (jid: any, type
|
|
439
|
+
profilePictureUrl: (jid: any, type: string | undefined, timeoutMs: any) => Promise<any>;
|
|
440
440
|
fetchBlocklist: () => Promise<any>;
|
|
441
441
|
fetchStatus: (...jids: any[]) => Promise<any>;
|
|
442
442
|
fetchDisappearingDuration: (...jids: any[]) => Promise<any>;
|
|
@@ -353,7 +353,7 @@ export const makeCommunitiesSocket = (config) => {
|
|
|
353
353
|
remoteJid: inviteMessage.groupJid,
|
|
354
354
|
id: generateMessageIDV2(sock.user?.id),
|
|
355
355
|
fromMe: false,
|
|
356
|
-
participant: key.remoteJid
|
|
356
|
+
participant: key.remoteJid
|
|
357
357
|
},
|
|
358
358
|
messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
|
|
359
359
|
messageStubParameters: [JSON.stringify(authState.creds.me)],
|
|
@@ -419,8 +419,9 @@ export const extractCommunityMetadata = (result) => {
|
|
|
419
419
|
memberAddMode,
|
|
420
420
|
participants: getBinaryNodeChildren(community, 'participant').map(({ attrs }) => {
|
|
421
421
|
return {
|
|
422
|
-
// TODO: IMPLEMENT THE PN/LID FIELDS HERE!!
|
|
423
422
|
id: attrs.jid,
|
|
423
|
+
lid: attrs.lid || undefined,
|
|
424
|
+
phoneNumber: attrs.phone_number || undefined,
|
|
424
425
|
admin: (attrs.type || null)
|
|
425
426
|
};
|
|
426
427
|
}),
|
package/lib/Socket/groups.d.ts
CHANGED
|
@@ -151,7 +151,7 @@ export function makeGroupsSocket(config: any): {
|
|
|
151
151
|
appPatch: (patchCreate: any) => Promise<void>;
|
|
152
152
|
sendPresenceUpdate: (type: any, toJid: any) => Promise<void>;
|
|
153
153
|
presenceSubscribe: (toJid: any) => Promise<void>;
|
|
154
|
-
profilePictureUrl: (jid: any, type
|
|
154
|
+
profilePictureUrl: (jid: any, type: string | undefined, timeoutMs: any) => Promise<any>;
|
|
155
155
|
fetchBlocklist: () => Promise<any>;
|
|
156
156
|
fetchStatus: (...jids: any[]) => Promise<any>;
|
|
157
157
|
fetchDisappearingDuration: (...jids: any[]) => Promise<any>;
|
package/lib/Socket/groups.js
CHANGED
|
@@ -6,7 +6,7 @@ import { getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString, is
|
|
|
6
6
|
import { makeChatsSocket } from './chats.js';
|
|
7
7
|
export const makeGroupsSocket = (config) => {
|
|
8
8
|
const sock = makeChatsSocket(config);
|
|
9
|
-
const { authState, ev, query, upsertMessage } = sock;
|
|
9
|
+
const { authState, ev, query, upsertMessage, signalRepository } = sock;
|
|
10
10
|
const groupQuery = async (jid, type, content) => query({
|
|
11
11
|
tag: 'iq',
|
|
12
12
|
attrs: {
|
|
@@ -16,9 +16,20 @@ export const makeGroupsSocket = (config) => {
|
|
|
16
16
|
},
|
|
17
17
|
content
|
|
18
18
|
});
|
|
19
|
+
const storeGroupLIDMappings = async (participants) => {
|
|
20
|
+
if (!signalRepository?.lidMapping)
|
|
21
|
+
return;
|
|
22
|
+
const pairs = participants
|
|
23
|
+
.filter(p => p.lid && p.phoneNumber)
|
|
24
|
+
.map(p => ({ lid: p.lid, pn: p.phoneNumber }));
|
|
25
|
+
if (pairs.length)
|
|
26
|
+
await signalRepository.lidMapping.storeLIDPNMappings(pairs).catch(() => { });
|
|
27
|
+
};
|
|
19
28
|
const groupMetadata = async (jid) => {
|
|
20
29
|
const result = await groupQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
|
|
21
|
-
|
|
30
|
+
const meta = extractGroupMetadata(result);
|
|
31
|
+
storeGroupLIDMappings(meta.participants).catch(() => { });
|
|
32
|
+
return meta;
|
|
22
33
|
};
|
|
23
34
|
const groupFetchAllParticipating = async () => {
|
|
24
35
|
const result = await query({
|
|
@@ -44,12 +55,17 @@ export const makeGroupsSocket = (config) => {
|
|
|
44
55
|
if (groupsChild) {
|
|
45
56
|
const groups = getBinaryNodeChildren(groupsChild, 'group');
|
|
46
57
|
for (const groupNode of groups) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
try {
|
|
59
|
+
const meta = extractGroupMetadata({
|
|
60
|
+
tag: 'result',
|
|
61
|
+
attrs: {},
|
|
62
|
+
content: [groupNode]
|
|
63
|
+
});
|
|
64
|
+
data[meta.id] = meta;
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
sock.logger.warn({ err, groupNode: groupNode?.attrs }, 'failed to parse group in groupFetchAllParticipating, skipping');
|
|
68
|
+
}
|
|
53
69
|
}
|
|
54
70
|
}
|
|
55
71
|
// TODO: properly parse LID / PN DATA
|
package/lib/Socket/index.d.ts
CHANGED
|
@@ -426,7 +426,7 @@ declare function makeWASocket(config: any): {
|
|
|
426
426
|
appPatch: (patchCreate: any) => Promise<void>;
|
|
427
427
|
sendPresenceUpdate: (type: any, toJid: any) => Promise<void>;
|
|
428
428
|
presenceSubscribe: (toJid: any) => Promise<void>;
|
|
429
|
-
profilePictureUrl: (jid: any, type
|
|
429
|
+
profilePictureUrl: (jid: any, type: string | undefined, timeoutMs: any) => Promise<any>;
|
|
430
430
|
fetchBlocklist: () => Promise<any>;
|
|
431
431
|
fetchStatus: (...jids: any[]) => Promise<any>;
|
|
432
432
|
fetchDisappearingDuration: (...jids: any[]) => Promise<any>;
|
|
@@ -229,7 +229,7 @@ export function makeMessagesRecvSocket(config: any): {
|
|
|
229
229
|
appPatch: (patchCreate: any) => Promise<void>;
|
|
230
230
|
sendPresenceUpdate: (type: any, toJid: any) => Promise<void>;
|
|
231
231
|
presenceSubscribe: (toJid: any) => Promise<void>;
|
|
232
|
-
profilePictureUrl: (jid: any, type
|
|
232
|
+
profilePictureUrl: (jid: any, type: string | undefined, timeoutMs: any) => Promise<any>;
|
|
233
233
|
fetchBlocklist: () => Promise<any>;
|
|
234
234
|
fetchStatus: (...jids: any[]) => Promise<any>;
|
|
235
235
|
fetchDisappearingDuration: (...jids: any[]) => Promise<any>;
|
|
@@ -5,7 +5,7 @@ import Long from 'long';
|
|
|
5
5
|
import { proto } from '../../WAProto/index.js';
|
|
6
6
|
import { DEFAULT_CACHE_TTLS, KEY_BUNDLE_TYPE, MIN_PREKEY_COUNT, PLACEHOLDER_MAX_AGE_SECONDS, STATUS_EXPIRY_SECONDS } from '../Defaults/index.js';
|
|
7
7
|
import { ReachoutTimelockEnforcementType, WAMessageStatus, WAMessageStubType } from '../Types/index.js';
|
|
8
|
-
import { ACCOUNT_RESTRICTED_TEXT, aesDecryptCTR, aesEncryptGCM, cleanMessage, Curve, decodeMediaRetryNode, decodeMessageNode, decryptMessageNode, delay, derivePairingCodeKey, encodeBigEndian, encodeSignedDeviceIdentity, extractAddressingContext, extractE2ESessionFromRetryReceipt, getCallStatusFromNode, getHistoryMsg, getNextPreKeys, getStatusFromReceiptType, handleIdentityChange, hkdf, MISSING_KEYS_ERROR_TEXT, NACK_REASONS, NO_MESSAGE_FOUND_ERROR_TEXT, SERVER_ERROR_CODES, toNumber, unixTimestampSeconds, xmppPreKey, xmppSignedPreKey } from '../Utils/index.js';
|
|
8
|
+
import { ACCOUNT_RESTRICTED_TEXT, aesDecryptCTR, aesEncryptGCM, cleanMessage, Curve, decodeMediaRetryNode, decodeMessageNode, decryptMessageNode, decryptSecretEncryptedMessage, delay, derivePairingCodeKey, encodeBigEndian, encodeSignedDeviceIdentity, extractAddressingContext, extractE2ESessionFromRetryReceipt, getCallStatusFromNode, getHistoryMsg, getNextPreKeys, getStatusFromReceiptType, handleIdentityChange, hkdf, MISSING_KEYS_ERROR_TEXT, NACK_REASONS, NO_MESSAGE_FOUND_ERROR_TEXT, normalizeMessageContent, SERVER_ERROR_CODES, toNumber, unixTimestampSeconds, xmppPreKey, xmppSignedPreKey } from '../Utils/index.js';
|
|
9
9
|
import { makeMutex } from '../Utils/make-mutex.js';
|
|
10
10
|
import { makeOfflineNodeProcessor } from '../Utils/offline-node-processor.js';
|
|
11
11
|
import { buildAckStanza } from '../Utils/stanza-ack.js';
|
|
@@ -384,7 +384,23 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
384
384
|
};
|
|
385
385
|
await query(stanza);
|
|
386
386
|
};
|
|
387
|
-
const
|
|
387
|
+
const mapDecryptErrorToRetryReason = (errMsg) => {
|
|
388
|
+
if (!errMsg)
|
|
389
|
+
return '0';
|
|
390
|
+
const m = errMsg.toLowerCase();
|
|
391
|
+
if (m.includes('no session'))
|
|
392
|
+
return '1';
|
|
393
|
+
if (m.includes('invalid key id') || m.includes('unknown keyid'))
|
|
394
|
+
return '3';
|
|
395
|
+
if (m.includes('bad mac') || m.includes('badmac'))
|
|
396
|
+
return '7';
|
|
397
|
+
if (m.includes('invalid message') || m.includes('badmessage'))
|
|
398
|
+
return '4';
|
|
399
|
+
if (m.includes('invalid signature'))
|
|
400
|
+
return '5';
|
|
401
|
+
return '0';
|
|
402
|
+
};
|
|
403
|
+
const sendRetryRequest = async (node, forceIncludeKeys = false, decryptErrorMsg) => {
|
|
388
404
|
const { fullMessage } = decodeMessageNode(node, authState.creds.me.id, authState.creds.me.lid || '');
|
|
389
405
|
const { key: msgKey } = fullMessage;
|
|
390
406
|
const msgId = msgKey.id;
|
|
@@ -476,8 +492,7 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
476
492
|
id: node.attrs.id,
|
|
477
493
|
t: node.attrs.t,
|
|
478
494
|
v: '1',
|
|
479
|
-
|
|
480
|
-
error: '0'
|
|
495
|
+
error: mapDecryptErrorToRetryReason(decryptErrorMsg)
|
|
481
496
|
}
|
|
482
497
|
},
|
|
483
498
|
{
|
|
@@ -635,7 +650,6 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
635
650
|
const stubType = `GROUP_PARTICIPANT_${child.tag.toUpperCase()}`;
|
|
636
651
|
msg.messageStubType = WAMessageStubType[stubType];
|
|
637
652
|
const participants = getBinaryNodeChildren(child, 'participant').map(({ attrs }) => {
|
|
638
|
-
// TODO: Store LID MAPPINGS
|
|
639
653
|
return {
|
|
640
654
|
id: attrs.jid,
|
|
641
655
|
phoneNumber: isLidUser(attrs.jid) && isPnUser(attrs.phone_number) ? attrs.phone_number : undefined,
|
|
@@ -644,6 +658,15 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
644
658
|
admin: (attrs.type || null)
|
|
645
659
|
};
|
|
646
660
|
});
|
|
661
|
+
// store LID-PN mappings from participant notification
|
|
662
|
+
{
|
|
663
|
+
const pairs = participants
|
|
664
|
+
.filter(p => p.lid && p.phoneNumber)
|
|
665
|
+
.map(p => ({ lid: p.lid, pn: p.phoneNumber }));
|
|
666
|
+
if (pairs.length) {
|
|
667
|
+
signalRepository.lidMapping.storeLIDPNMappings(pairs).catch(err => logger.warn({ err }, 'failed to store group participant LID mappings'));
|
|
668
|
+
}
|
|
669
|
+
}
|
|
647
670
|
if (participants.length === 1 &&
|
|
648
671
|
// if recv. "remove" message and sender removed themselves
|
|
649
672
|
// mark as left
|
|
@@ -701,7 +724,10 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
701
724
|
break;
|
|
702
725
|
case 'revoked_membership_requests':
|
|
703
726
|
const isDenied = areJidsSameUser(affectedParticipantLid, actingParticipantLid);
|
|
704
|
-
|
|
727
|
+
if (affectedParticipantLid && affectedParticipantPn) {
|
|
728
|
+
signalRepository.lidMapping.storeLIDPNMappings([{ lid: affectedParticipantLid, pn: affectedParticipantPn }])
|
|
729
|
+
.catch(err => logger.warn({ err }, 'failed to store membership request LID mapping'));
|
|
730
|
+
}
|
|
705
731
|
msg.messageStubType = WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD;
|
|
706
732
|
msg.messageStubParameters = [
|
|
707
733
|
JSON.stringify({ lid: affectedParticipantLid, pn: affectedParticipantPn }),
|
|
@@ -828,19 +854,24 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
828
854
|
const update = getBinaryNodeChild(node, 'collection');
|
|
829
855
|
if (update) {
|
|
830
856
|
const name = update.attrs.name;
|
|
831
|
-
|
|
857
|
+
// guard: resyncAppState failure must not block the notification mutex (#2453)
|
|
858
|
+
await resyncAppState([name], false).catch(err => logger.warn({ err, name }, 'server_sync resyncAppState failed, skipping'));
|
|
832
859
|
}
|
|
833
860
|
break;
|
|
834
861
|
case 'picture':
|
|
835
862
|
const setPicture = getBinaryNodeChild(node, 'set');
|
|
836
863
|
const delPicture = getBinaryNodeChild(node, 'delete');
|
|
837
|
-
//
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
864
|
+
// use node.attrs.from as the contact JID; attrs.hash is a server-side
|
|
865
|
+
// obfuscated reference not suitable as a contact identifier
|
|
866
|
+
const picContactJid = jidNormalizedUser(node?.attrs?.from);
|
|
867
|
+
if (picContactJid) {
|
|
868
|
+
ev.emit('contacts.update', [
|
|
869
|
+
{
|
|
870
|
+
id: picContactJid,
|
|
871
|
+
imgUrl: setPicture ? 'changed' : 'removed'
|
|
872
|
+
}
|
|
873
|
+
]);
|
|
874
|
+
}
|
|
844
875
|
if (isJidGroup(from)) {
|
|
845
876
|
const node = setPicture || delPicture;
|
|
846
877
|
result.messageStubType = WAMessageStubType.GROUP_CHANGE_ICON;
|
|
@@ -1198,7 +1229,7 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1198
1229
|
else {
|
|
1199
1230
|
ev.emit('messages.update', ids.map(id => ({
|
|
1200
1231
|
key: { ...key, id },
|
|
1201
|
-
update: { status, messageTimestamp: toNumber(+
|
|
1232
|
+
update: { status, ...(attrs.t ? { messageTimestamp: toNumber(+attrs.t) } : {}) }
|
|
1202
1233
|
})));
|
|
1203
1234
|
}
|
|
1204
1235
|
}
|
|
@@ -1265,13 +1296,19 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1265
1296
|
};
|
|
1266
1297
|
const handleMessage = async (node) => {
|
|
1267
1298
|
const encNode = getBinaryNodeChild(node, 'enc');
|
|
1268
|
-
//
|
|
1299
|
+
// msmsg = multi-signal business message; requires MESSAGE_SECRET from phone
|
|
1300
|
+
// that companions don't have. NACK with MissingMessageSecret so the server
|
|
1301
|
+
// knows to request the key from the primary device.
|
|
1269
1302
|
if (encNode?.attrs.type === 'msmsg') {
|
|
1270
|
-
logger.debug({ key: node.attrs.key }, '
|
|
1303
|
+
logger.debug({ key: node.attrs.key }, 'recv msmsg: requesting key from phone');
|
|
1271
1304
|
await sendMessageAck(node, NACK_REASONS.MissingMessageSecret);
|
|
1272
1305
|
return;
|
|
1273
1306
|
}
|
|
1274
1307
|
let acked = false;
|
|
1308
|
+
// Send provisional ACK before entering messageMutex so WA server doesn't
|
|
1309
|
+
// stop delivery when mutex is contended (slow DB, high load).
|
|
1310
|
+
// Matches WA Web behaviour: transport ACK is sent immediately on receipt.
|
|
1311
|
+
sendMessageAck(node).then(() => { acked = true; }).catch(err => logger.warn({ err }, 'provisional ack failed'));
|
|
1275
1312
|
try {
|
|
1276
1313
|
const { fullMessage: msg, category, author, decrypt } = decryptMessageNode(node, authState.creds.me.id, authState.creds.me.lid || '', signalRepository, logger);
|
|
1277
1314
|
const alt = msg.key.participantAlt || msg.key.remoteJidAlt;
|
|
@@ -1376,7 +1413,8 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1376
1413
|
return;
|
|
1377
1414
|
}
|
|
1378
1415
|
const encNode = getBinaryNodeChild(node, 'enc');
|
|
1379
|
-
|
|
1416
|
+
const decryptErrMsg = msg.messageStubParameters?.[0];
|
|
1417
|
+
await sendRetryRequest(node, !encNode, decryptErrMsg);
|
|
1380
1418
|
if (retryRequestDelayMs) {
|
|
1381
1419
|
await delay(retryRequestDelayMs);
|
|
1382
1420
|
}
|
|
@@ -1405,9 +1443,15 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1405
1443
|
else if (msg.key.fromMe) {
|
|
1406
1444
|
// message was sent by us from a different device
|
|
1407
1445
|
type = 'sender';
|
|
1408
|
-
//
|
|
1446
|
+
// for LID-addressed conversations, resolve participant to PN for receipt
|
|
1409
1447
|
if (isLidUser(msg.key.remoteJid) || isLidUser(msg.key.remoteJidAlt)) {
|
|
1410
|
-
|
|
1448
|
+
if (author && isLidUser(author)) {
|
|
1449
|
+
const pn = await signalRepository.lidMapping.getPNForLID(author).catch(() => null);
|
|
1450
|
+
participant = pn || author;
|
|
1451
|
+
}
|
|
1452
|
+
else {
|
|
1453
|
+
participant = author;
|
|
1454
|
+
}
|
|
1411
1455
|
}
|
|
1412
1456
|
}
|
|
1413
1457
|
else if (!sendActiveReceipts) {
|
|
@@ -1415,11 +1459,11 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1415
1459
|
}
|
|
1416
1460
|
acked = true;
|
|
1417
1461
|
await sendReceipt(msg.key.remoteJid, participant, [msg.key.id], type);
|
|
1418
|
-
//
|
|
1462
|
+
// acknowledge receipt of history sync message to the sender
|
|
1419
1463
|
const isAnyHistoryMsg = getHistoryMsg(msg.message);
|
|
1420
1464
|
if (isAnyHistoryMsg) {
|
|
1421
1465
|
const jid = jidNormalizedUser(msg.key.remoteJid);
|
|
1422
|
-
await sendReceipt(jid, undefined, [msg.key.id], 'hist_sync');
|
|
1466
|
+
await sendReceipt(jid, undefined, [msg.key.id], 'hist_sync');
|
|
1423
1467
|
}
|
|
1424
1468
|
}
|
|
1425
1469
|
else {
|
|
@@ -1429,6 +1473,26 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1429
1473
|
}
|
|
1430
1474
|
}
|
|
1431
1475
|
cleanMessage(msg, authState.creds.me.id, authState.creds.me.lid);
|
|
1476
|
+
// Lia@Note --- decrypt secret encrypted message edits (#2554)
|
|
1477
|
+
const secretContent = normalizeMessageContent(msg.message);
|
|
1478
|
+
const secretEncryptedMessage = secretContent?.secretEncryptedMessage;
|
|
1479
|
+
if (secretEncryptedMessage) {
|
|
1480
|
+
const targetMessageKey = secretEncryptedMessage.targetMessageKey;
|
|
1481
|
+
const originalMessage = targetMessageKey?.id
|
|
1482
|
+
? (messageRetryManager?.getRecentMessageById(targetMessageKey.id)?.message ??
|
|
1483
|
+
(await getMessage(targetMessageKey).catch(err => {
|
|
1484
|
+
logger.warn({ err, targetMessageKey }, 'failed to load original message for secret encrypted message');
|
|
1485
|
+
return undefined;
|
|
1486
|
+
})))
|
|
1487
|
+
: undefined;
|
|
1488
|
+
const messageSecret = normalizeMessageContent(originalMessage)?.messageContextInfo?.messageSecret;
|
|
1489
|
+
if (messageSecret?.length) {
|
|
1490
|
+
await decryptSecretEncryptedMessage(msg, messageSecret, authState.creds.me.id, authState.creds.me.lid, logger);
|
|
1491
|
+
}
|
|
1492
|
+
else {
|
|
1493
|
+
logger.warn({ secretEncType: secretEncryptedMessage.secretEncType, targetMessageKey }, 'missing original message secret for secret encrypted message');
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1432
1496
|
await upsertMessage(msg, node.attrs.offline ? 'append' : 'notify');
|
|
1433
1497
|
});
|
|
1434
1498
|
}
|
|
@@ -1585,7 +1649,7 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1585
1649
|
isWsOpen: () => ws.isOpen,
|
|
1586
1650
|
onUnexpectedError,
|
|
1587
1651
|
yieldToEventLoop: () => new Promise(resolve => setImmediate(resolve))
|
|
1588
|
-
});
|
|
1652
|
+
}, config.offlineNodeBatchSize ?? 50);
|
|
1589
1653
|
const processNode = async (type, node, identifier, exec) => {
|
|
1590
1654
|
// Fast path: ack and drop ignored JIDs before entering the buffer/queue
|
|
1591
1655
|
const from = node.attrs.from;
|
|
@@ -1596,7 +1660,11 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1596
1660
|
const isNodeFromMe = areJidsSameUser(attrs.participant || attrs.from, isLid ? authState.creds.me?.lid : authState.creds.me?.id);
|
|
1597
1661
|
ignoreJid = !isNodeFromMe || isJidGroup(attrs.from) ? attrs.from : attrs.recipient;
|
|
1598
1662
|
}
|
|
1599
|
-
|
|
1663
|
+
// never ignore pkmsg (pre-key messages) — they establish Signal sessions;
|
|
1664
|
+
// and never ignore retry receipts — they request message re-encryption (#2509)
|
|
1665
|
+
const encType = getBinaryNodeChild(node, 'enc')?.attrs?.type;
|
|
1666
|
+
const isProtocolCritical = encType === 'pkmsg' || node.attrs.type === 'retry';
|
|
1667
|
+
if (!isProtocolCritical && ignoreJid && ignoreJid !== S_WHATSAPP_NET && shouldIgnoreJid(ignoreJid)) {
|
|
1600
1668
|
await sendMessageAck(node, type === 'message' ? NACK_REASONS.UnhandledError : undefined);
|
|
1601
1669
|
return;
|
|
1602
1670
|
}
|
|
@@ -44,6 +44,7 @@ export function makeMessagesSocket(config: any): {
|
|
|
44
44
|
messageRetryManager: MessageRetryManager | null;
|
|
45
45
|
updateMemberLabel: (jid: any, memberLabel: any) => Promise<any>;
|
|
46
46
|
updateMediaMessage: (message: any) => Promise<any>;
|
|
47
|
+
rvo: (message: any, jid?: any, options?: {}) => Promise<proto.WebMessageInfo>;
|
|
47
48
|
sendMessage: (jid: any, content: any, options?: {}) => Promise<proto.WebMessageInfo | undefined>;
|
|
48
49
|
executeWMexQuery: (variables: any, queryId: any, dataPath: any) => Promise<any>;
|
|
49
50
|
newsletterCreate: (name: any, description: any) => Promise<{
|
|
@@ -224,7 +225,7 @@ export function makeMessagesSocket(config: any): {
|
|
|
224
225
|
appPatch: (patchCreate: any) => Promise<void>;
|
|
225
226
|
sendPresenceUpdate: (type: any, toJid: any) => Promise<void>;
|
|
226
227
|
presenceSubscribe: (toJid: any) => Promise<void>;
|
|
227
|
-
profilePictureUrl: (jid: any, type
|
|
228
|
+
profilePictureUrl: (jid: any, type: string | undefined, timeoutMs: any) => Promise<any>;
|
|
228
229
|
fetchBlocklist: () => Promise<any>;
|
|
229
230
|
fetchStatus: (...jids: any[]) => Promise<any>;
|
|
230
231
|
fetchDisappearingDuration: (...jids: any[]) => Promise<any>;
|