@periskope/baileys 6.7.19-1 → 6.7.19-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/lib/Signal/libsignal.d.ts.map +1 -1
- package/lib/Signal/libsignal.js +25 -2
- package/lib/Signal/libsignal.js.map +1 -1
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +297 -58
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +10 -21
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Types/Chat.d.ts +2 -0
- package/lib/Types/Chat.d.ts.map +1 -1
- package/lib/Types/Signal.d.ts +2 -0
- package/lib/Types/Signal.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.d.ts +57 -2
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +406 -28
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.d.ts +1 -1
- package/lib/Utils/event-buffer.d.ts.map +1 -1
- package/lib/Utils/event-buffer.js +76 -5
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/signal.d.ts +13 -0
- package/lib/Utils/signal.d.ts.map +1 -1
- package/lib/Utils/signal.js +47 -0
- package/lib/Utils/signal.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libsignal.d.ts","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASvD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"libsignal.d.ts","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASvD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CA+O/E"}
|
package/lib/Signal/libsignal.js
CHANGED
|
@@ -17,10 +17,28 @@ export function makeLibSignalRepository(auth) {
|
|
|
17
17
|
ttl: 5 * 60 * 1000
|
|
18
18
|
});
|
|
19
19
|
const repository = {
|
|
20
|
-
decryptGroupMessage({ group, authorJid, msg }) {
|
|
20
|
+
async decryptGroupMessage({ group, authorJid, authorLid, msg }) {
|
|
21
21
|
const senderName = jidToSignalSenderKeyName(group, authorJid);
|
|
22
22
|
const cipher = new GroupCipher(storage, senderName);
|
|
23
|
-
|
|
23
|
+
try {
|
|
24
|
+
return await cipher.decrypt(msg);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
// If authorLid is available and authorJid failed, try with authorLid as fallback
|
|
28
|
+
if (authorLid && authorLid !== authorJid) {
|
|
29
|
+
try {
|
|
30
|
+
const senderNameLid = jidToSignalSenderKeyName(group, authorLid);
|
|
31
|
+
const cipherLid = new GroupCipher(storage, senderNameLid);
|
|
32
|
+
return await cipherLid.decrypt(msg);
|
|
33
|
+
}
|
|
34
|
+
catch (lidError) {
|
|
35
|
+
// If both fail, throw the original error
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// No authorLid available or it's the same as authorJid, throw original error
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
24
42
|
},
|
|
25
43
|
async processSenderKeyDistributionMessage({ item, authorJid }) {
|
|
26
44
|
const builder = new GroupSessionBuilder(storage);
|
|
@@ -174,6 +192,11 @@ export function makeLibSignalRepository(auth) {
|
|
|
174
192
|
recentMigrations.set(migrationKey, true);
|
|
175
193
|
});
|
|
176
194
|
},
|
|
195
|
+
async hasSession(jid) {
|
|
196
|
+
const addr = jidToSignalProtocolAddress(jid);
|
|
197
|
+
const session = await auth.keys.get('session', [addr.toString()]);
|
|
198
|
+
return !!session?.[addr.toString()];
|
|
199
|
+
},
|
|
177
200
|
async encryptMessageWithWire({ encryptionJid, wireJid, data }) {
|
|
178
201
|
const result = await repository.encryptMessage({ jid: encryptionJid, data });
|
|
179
202
|
return { ...result, wireJid };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libsignal.js","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libsignal.js","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../src/Socket/communities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EACN,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,KAAK,UAAU,EAMf,MAAM,aAAa,CAAA;AAGpB,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY;6BAenB,MAAM;+BA8EV,MAAM,QAAQ,MAAM;yBAqC1B,MAAM;kCASG,MAAM,WAAW,MAAM;4CASb,MAAM;;;8CAWJ,MAAM,gBAAgB,MAAM,EAAE,UAAU,SAAS,GAAG,QAAQ;;;;uCAwBnE,MAAM,gBAAgB,MAAM,EAAE,UAAU,iBAAiB;;;;;sCAiB1D,MAAM,gBAAgB,MAAM;+BAenC,MAAM;iCAKJ,MAAM;kCAKL,MAAM;IAM1C;;;;;OAKG;4CAC2C,MAAM,cAAc,MAAM;IAOxE;;;;OAIG;;mCAsDkC,MAAM;oCAIL,MAAM,uBAAuB,MAAM;kCAOnE,MAAM,WACF,cAAc,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU;kCAIjC,MAAM,QAAQ,WAAW,GAAG,gBAAgB;qCAGzC,MAAM,QAAQ,IAAI,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../src/Socket/communities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EACN,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,KAAK,UAAU,EAMf,MAAM,aAAa,CAAA;AAGpB,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY;6BAenB,MAAM;+BA8EV,MAAM,QAAQ,MAAM;yBAqC1B,MAAM;kCASG,MAAM,WAAW,MAAM;4CASb,MAAM;;;8CAWJ,MAAM,gBAAgB,MAAM,EAAE,UAAU,SAAS,GAAG,QAAQ;;;;uCAwBnE,MAAM,gBAAgB,MAAM,EAAE,UAAU,iBAAiB;;;;;sCAiB1D,MAAM,gBAAgB,MAAM;+BAenC,MAAM;iCAKJ,MAAM;kCAKL,MAAM;IAM1C;;;;;OAKG;4CAC2C,MAAM,cAAc,MAAM;IAOxE;;;;OAIG;;mCAsDkC,MAAM;oCAIL,MAAM,uBAAuB,MAAM;kCAOnE,MAAM,WACF,cAAc,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU;kCAIjC,MAAM,QAAQ,WAAW,GAAG,gBAAgB;qCAGzC,MAAM,QAAQ,IAAI,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;yCAoDu5U,MAAO,QAAQ;;;;;;;;;+CAApoM,MAAO,OAAO,CAAC,gCAAgC;sDAA6vB,MAAO,QAAQ,iDAAsD,MAAO,QAAQ;;;;;;;kCAAm+lB,MAAO,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAArub,MAAO,eAAe,CAAC,cAAc;;;;;;;;;cAApQ,CAAC;;;;;;;;0DA3UttU,GAAG,0BACnD,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA6RvB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,QAAQ,UAAU,kBA0C1D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages-recv.d.ts","sourceRoot":"","sources":["../../src/Socket/messages-recv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EACX,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EAGZ,YAAY,EAEZ,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"messages-recv.d.ts","sourceRoot":"","sources":["../../src/Socket/messages-recv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EACX,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EAGZ,YAAY,EAEZ,MAAM,UAAU,CAAA;AAoCjB,OAAO,EAEN,KAAK,UAAU,EAaf,MAAM,aAAa,CAAA;AAIpB,eAAO,MAAM,sBAAsB,GAAI,QAAQ,YAAY;8CAyDH,UAAU,cAAc,MAAM;6BAmF/C,UAAU;yBAtBd,MAAM,YAAY,MAAM;iCAwkClD,MAAM,gBACC,YAAY,sBACN,MAAM,GAAG,IAAI,KAC/B,OAAO,CAAC,MAAM,CAAC;2CAmBkC,YAAY,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;yCAzhB3F,MAAO,QAAQ;;;;;;;;;+CA3KiB,MAAO,OAAO,CAAC,gCAEhC;sDAiBT,MAAO,QAAQ,iDAAsD,MAAO,QAAQ;;;;;;;kCA2lB7E,MAAO,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAncJ,MAAO,eACxC,CAAE,cAAa;;;;;;;;;cARd,CAAA;;;;;;;;0DAprBqB,GAAG,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA0pDvD,CAAA"}
|
|
@@ -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 } from '../Defaults/index.js';
|
|
7
7
|
import { WAMessageStatus, WAMessageStubType } from '../Types/index.js';
|
|
8
|
-
import { aesDecryptCTR, aesEncryptGCM, cleanMessage, Curve, decodeMediaRetryNode, decodeMessageNode, decryptMessageNode, delay, derivePairingCodeKey, encodeBigEndian, encodeSignedDeviceIdentity, getCallStatusFromNode, getHistoryMsg, getNextPreKeys, getStatusFromReceiptType, hkdf, MISSING_KEYS_ERROR_TEXT, NACK_REASONS, NO_MESSAGE_FOUND_ERROR_TEXT, unixTimestampSeconds, xmppPreKey, xmppSignedPreKey } from '../Utils/index.js';
|
|
8
|
+
import { addRecentMessage, aesDecryptCTR, aesEncryptGCM, cleanMessage, cleanupOldRetryStates, Curve, decodeMediaRetryNode, decodeMessageNode, decryptMessageNode, delay, derivePairingCodeKey, encodeBigEndian, encodeSignedDeviceIdentity, getCallStatusFromNode, getHistoryMsg, getMessageForRetry, getNextPreKeys, getRecentMessage, getStatusFromReceiptType, hkdf, incrementIncomingRetryCounter, MISSING_KEYS_ERROR_TEXT, NACK_REASONS, NO_MESSAGE_FOUND_ERROR_TEXT, shouldDropRetryRequest, shouldRecreateSession, executeSessionRecreation, unixTimestampSeconds, xmppPreKey, xmppSignedPreKey } from '../Utils/index.js';
|
|
9
9
|
import { makeMutex } from '../Utils/make-mutex.js';
|
|
10
10
|
import { areJidsSameUser, getAllBinaryNodeChildren, getBinaryNodeChild, getBinaryNodeChildBuffer, getBinaryNodeChildren, getBinaryNodeChildString, isJidGroup, isJidStatusBroadcast, isJidUser, isLidUser, jidDecode, jidNormalizedUser, S_WHATSAPP_NET } from '../WABinary/index.js';
|
|
11
11
|
import { extractGroupMetadata } from './groups.js';
|
|
@@ -14,6 +14,9 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
14
14
|
const { logger, retryRequestDelayMs, maxMsgRetryCount, getMessage, shouldIgnoreJid } = config;
|
|
15
15
|
const sock = makeMessagesSocket(config);
|
|
16
16
|
const { ev, authState, ws, processingMutex, signalRepository, query, upsertMessage, resyncAppState, onUnexpectedError, assertSessions, sendNode, relayMessage, sendReceipt, uploadPreKeys, sendPeerDataOperationMessage } = sock;
|
|
17
|
+
const PENDING_MESSAGE_DECRYPTIONS = new Map();
|
|
18
|
+
const MAX_DECRYPT_RETRY_COUNT = 3;
|
|
19
|
+
const DECRYPT_RETRY_DELAY = 2000;
|
|
17
20
|
/** this mutex ensures that each retryRequest will wait for the previous one to finish */
|
|
18
21
|
const retryMutex = makeMutex();
|
|
19
22
|
const msgRetryCache = config.msgRetryCounterCache ||
|
|
@@ -107,20 +110,55 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
107
110
|
const { fullMessage } = decodeMessageNode(node, authState.creds.me.id, authState.creds.me.lid || '');
|
|
108
111
|
const { key: msgKey } = fullMessage;
|
|
109
112
|
const msgId = msgKey.id;
|
|
113
|
+
// const senderJid = node.attrs.from || ''
|
|
114
|
+
// // Check internal retry counter (whatsmeow pattern - max 10 per sender/message)
|
|
115
|
+
// const internalRetryCount = incrementIncomingRetryCounter(senderJid, msgId)
|
|
116
|
+
// if (shouldDropRetryRequest(senderJid, msgId)) {
|
|
117
|
+
// logger.warn(
|
|
118
|
+
// {
|
|
119
|
+
// senderJid,
|
|
120
|
+
// msgId,
|
|
121
|
+
// internalRetryCount
|
|
122
|
+
// },
|
|
123
|
+
// 'Dropping retry request: internal retry counter exceeded limit (10)'
|
|
124
|
+
// )
|
|
125
|
+
// return
|
|
126
|
+
// }
|
|
110
127
|
const key = `${msgId}:${msgKey?.participant}`;
|
|
111
128
|
let retryCount = msgRetryCache.get(key) || 0;
|
|
129
|
+
// Enhanced retry limit check (whatsmeow uses 5 max retries)
|
|
112
130
|
if (retryCount >= maxMsgRetryCount) {
|
|
113
|
-
logger.
|
|
131
|
+
logger.warn({ retryCount, msgId }, 'reached maximum retry limit (5), not sending more retry receipts');
|
|
114
132
|
msgRetryCache.del(key);
|
|
115
133
|
return;
|
|
116
134
|
}
|
|
117
135
|
retryCount += 1;
|
|
118
136
|
msgRetryCache.set(key, retryCount);
|
|
119
137
|
const { account, signedPreKey, signedIdentityKey: identityKey } = authState.creds;
|
|
138
|
+
// Enhanced retry logic inspired by whatsmeow
|
|
120
139
|
if (retryCount === 1) {
|
|
121
|
-
//request
|
|
122
|
-
|
|
123
|
-
|
|
140
|
+
// First retry - request resend via phone (whatsmeow pattern)
|
|
141
|
+
try {
|
|
142
|
+
const msgId = await requestPlaceholderResend(msgKey);
|
|
143
|
+
logger.debug({
|
|
144
|
+
retryCount,
|
|
145
|
+
msgId
|
|
146
|
+
// internalRetryCount
|
|
147
|
+
}, 'sendRetryRequest: requested placeholder resend for message (first retry)');
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
logger.warn({
|
|
151
|
+
msgId,
|
|
152
|
+
error: error.message
|
|
153
|
+
}, 'Failed to request placeholder resend');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
logger.debug({
|
|
158
|
+
retryCount,
|
|
159
|
+
msgId
|
|
160
|
+
// internalRetryCount
|
|
161
|
+
}, 'sendRetryRequest: retry count > 1, skipping placeholder resend');
|
|
124
162
|
}
|
|
125
163
|
const deviceIdentity = encodeSignedDeviceIdentity(account, true);
|
|
126
164
|
await authState.keys.transaction(async () => {
|
|
@@ -154,7 +192,12 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
154
192
|
if (node.attrs.participant) {
|
|
155
193
|
receipt.attrs.participant = node.attrs.participant;
|
|
156
194
|
}
|
|
157
|
-
|
|
195
|
+
// Include keys based on whatsmeow logic:
|
|
196
|
+
// - Always include on first retry (retryCount === 1)
|
|
197
|
+
// - Include when forced (MAC errors, session errors)
|
|
198
|
+
// - Include when retry count > 1 (session recreation scenarios)
|
|
199
|
+
const shouldIncludeKeys = retryCount === 1 || forceIncludeKeys || retryCount > 1;
|
|
200
|
+
if (shouldIncludeKeys) {
|
|
158
201
|
const { update, preKeys } = await getNextPreKeys(authState, 1);
|
|
159
202
|
const [keyId] = Object.keys(preKeys);
|
|
160
203
|
const key = preKeys[+keyId];
|
|
@@ -171,6 +214,20 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
171
214
|
]
|
|
172
215
|
});
|
|
173
216
|
ev.emit('creds.update', update);
|
|
217
|
+
logger.debug({
|
|
218
|
+
retryCount,
|
|
219
|
+
forceIncludeKeys,
|
|
220
|
+
shouldIncludeKeys
|
|
221
|
+
// internalRetryCount
|
|
222
|
+
}, 'Including keys and device identity in retry receipt');
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
logger.debug({
|
|
226
|
+
retryCount,
|
|
227
|
+
forceIncludeKeys,
|
|
228
|
+
shouldIncludeKeys
|
|
229
|
+
// internalRetryCount
|
|
230
|
+
}, 'Not including keys in retry receipt');
|
|
174
231
|
}
|
|
175
232
|
await sendNode(receipt);
|
|
176
233
|
logger.info({ msgAttrs: node.attrs, retryCount }, 'sent retry receipt');
|
|
@@ -486,19 +543,51 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
486
543
|
msgRetryCache.set(key, newValue);
|
|
487
544
|
};
|
|
488
545
|
const sendMessagesAgain = async (key, ids, retryNode) => {
|
|
489
|
-
//
|
|
490
|
-
const msgs = await Promise.all(ids.map(id =>
|
|
546
|
+
// Use WhatsmeOW-compatible message retrieval (cache first, then callback)
|
|
547
|
+
const msgs = await Promise.all(ids.map(id => getMessageForRetry(key.remoteJid, id, getMessage)));
|
|
491
548
|
const remoteJid = key.remoteJid;
|
|
492
549
|
const participant = key.participant || remoteJid;
|
|
493
550
|
// if it's the primary jid sending the request
|
|
494
551
|
// just re-send the message to everyone
|
|
495
552
|
// prevents the first message decryption failure
|
|
496
553
|
const sendToAll = !jidDecode(participant)?.device;
|
|
497
|
-
|
|
498
|
-
|
|
554
|
+
const retryCount = +(retryNode.attrs.count || '1');
|
|
555
|
+
// Create session recreation context (same approach as decode-wa-message.ts)
|
|
556
|
+
const sessionContext = {
|
|
557
|
+
authState,
|
|
558
|
+
logger,
|
|
559
|
+
signalRepository,
|
|
560
|
+
query
|
|
561
|
+
};
|
|
562
|
+
// Use the sophisticated session recreation logic from decode-wa-message.ts
|
|
563
|
+
const sessionResult = await shouldRecreateSession(participant, retryCount, sessionContext);
|
|
564
|
+
if (sessionResult.recreate && sessionResult.shouldFetchPreKeys) {
|
|
565
|
+
logger.warn({
|
|
566
|
+
participant,
|
|
567
|
+
retryCount,
|
|
568
|
+
reason: sessionResult.reason
|
|
569
|
+
}, 'Session recreation recommended for retry');
|
|
570
|
+
// Execute session recreation with prekey fetching (includes LID support)
|
|
571
|
+
const success = await executeSessionRecreation(participant, sessionContext);
|
|
572
|
+
if (!success) {
|
|
573
|
+
logger.warn({ participant }, 'Session recreation failed, proceeding with existing session');
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
// Ensure we have sessions (use force=false to allow LID migration logic)
|
|
577
|
+
await assertSessions([participant], false);
|
|
578
|
+
// Only clear sender key memory if session recreation was recommended and it's a group
|
|
579
|
+
// This prevents unnecessary decryption failures for other group members
|
|
580
|
+
if (isJidGroup(remoteJid) && sessionResult.recreate) {
|
|
499
581
|
await authState.keys.set({ 'sender-key-memory': { [remoteJid]: null } });
|
|
582
|
+
logger.debug({ participant, retryCount, reason: sessionResult.reason }, 'cleared sender key memory due to session recreation');
|
|
500
583
|
}
|
|
501
|
-
logger.debug({
|
|
584
|
+
logger.debug({
|
|
585
|
+
participant,
|
|
586
|
+
sendToAll,
|
|
587
|
+
retryCount,
|
|
588
|
+
sessionRecreated: sessionResult.recreate,
|
|
589
|
+
reason: sessionResult.reason
|
|
590
|
+
}, 'handling retry receipt');
|
|
502
591
|
for (const [i, msg] of msgs.entries()) {
|
|
503
592
|
if (msg) {
|
|
504
593
|
updateSendMessageAgainCount(ids[i], participant);
|
|
@@ -548,7 +637,7 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
548
637
|
if (typeof status !== 'undefined' &&
|
|
549
638
|
// basically, we only want to know when a message from us has been delivered to/read by the other person
|
|
550
639
|
// or another device of ours has read some messages
|
|
551
|
-
|
|
640
|
+
status >= proto.WebMessageInfo.Status.SERVER_ACK) {
|
|
552
641
|
if (isJidGroup(remoteJid) || isJidStatusBroadcast(remoteJid)) {
|
|
553
642
|
const updateKey = status === proto.WebMessageInfo.Status.DELIVERY_ACK ? 'receiptTimestamp' : 'readTimestamp';
|
|
554
643
|
if (attrs.participant) {
|
|
@@ -590,10 +679,39 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
590
679
|
// correctly set who is asking for the retry
|
|
591
680
|
key.participant = key.participant || attrs.from;
|
|
592
681
|
const retryNode = getBinaryNodeChild(node, 'retry');
|
|
682
|
+
// // Check internal retry counter (whatsmeow pattern)
|
|
683
|
+
// const senderJid = attrs.from || ''
|
|
684
|
+
const messageId = ids[0] || '';
|
|
685
|
+
// if (shouldDropRetryRequest(senderJid, messageId)) {
|
|
686
|
+
// logger.warn(
|
|
687
|
+
// {
|
|
688
|
+
// senderJid,
|
|
689
|
+
// messageId,
|
|
690
|
+
// attrs
|
|
691
|
+
// },
|
|
692
|
+
// 'Dropping retry receipt: internal retry counter exceeded limit (10)'
|
|
693
|
+
// )
|
|
694
|
+
// return
|
|
695
|
+
// }
|
|
696
|
+
// // Increment internal retry counter
|
|
697
|
+
// const internalRetryCount = incrementIncomingRetryCounter(senderJid, messageId)
|
|
593
698
|
if (willSendMessageAgain(ids[0], key.participant)) {
|
|
594
699
|
if (key.fromMe) {
|
|
595
700
|
try {
|
|
596
|
-
logger.debug({
|
|
701
|
+
logger.debug({
|
|
702
|
+
attrs,
|
|
703
|
+
key
|
|
704
|
+
// internalRetryCount
|
|
705
|
+
}, 'recv retry request');
|
|
706
|
+
// Check if we have the message in recent cache (whatsmeow pattern)
|
|
707
|
+
const recentMessage = getRecentMessage(key.remoteJid || '', messageId);
|
|
708
|
+
//eslint-disable-next-line max-depth
|
|
709
|
+
if (recentMessage) {
|
|
710
|
+
logger.debug({
|
|
711
|
+
jid: key.remoteJid,
|
|
712
|
+
id: messageId
|
|
713
|
+
}, 'Found message in recent cache for retry');
|
|
714
|
+
}
|
|
597
715
|
await sendMessagesAgain(key, ids, retryNode);
|
|
598
716
|
ev.emit('messages.retry', { key, ids, retryNode });
|
|
599
717
|
}
|
|
@@ -602,11 +720,19 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
602
720
|
}
|
|
603
721
|
}
|
|
604
722
|
else {
|
|
605
|
-
logger.info({
|
|
723
|
+
logger.info({
|
|
724
|
+
attrs,
|
|
725
|
+
key
|
|
726
|
+
// internalRetryCount
|
|
727
|
+
}, 'recv retry for not fromMe message');
|
|
606
728
|
}
|
|
607
729
|
}
|
|
608
730
|
else {
|
|
609
|
-
logger.info({
|
|
731
|
+
logger.info({
|
|
732
|
+
attrs,
|
|
733
|
+
key
|
|
734
|
+
// internalRetryCount
|
|
735
|
+
}, 'will not send message again, as sent too many times');
|
|
610
736
|
}
|
|
611
737
|
}
|
|
612
738
|
})
|
|
@@ -676,7 +802,15 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
676
802
|
placeholderResendCache.del(node.attrs.id);
|
|
677
803
|
}
|
|
678
804
|
}
|
|
679
|
-
const
|
|
805
|
+
const messageKey = `${node.attrs.from}_${node.attrs.id}_${node.attrs.participant || ''}`;
|
|
806
|
+
// Create session recreation context (whatsmeow-inspired)
|
|
807
|
+
const sessionContext = {
|
|
808
|
+
authState,
|
|
809
|
+
logger,
|
|
810
|
+
signalRepository,
|
|
811
|
+
query
|
|
812
|
+
};
|
|
813
|
+
const { fullMessage: msg, category, author, decrypt } = decryptMessageNode(node, authState.creds.me.id, authState.creds.me.lid || '', signalRepository, logger, sendRetryRequest, sessionContext);
|
|
680
814
|
if (response && msg?.messageStubParameters?.[0] === NO_MESSAGE_FOUND_ERROR_TEXT) {
|
|
681
815
|
msg.messageStubParameters = [NO_MESSAGE_FOUND_ERROR_TEXT, response];
|
|
682
816
|
}
|
|
@@ -717,65 +851,155 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
717
851
|
try {
|
|
718
852
|
await Promise.all([
|
|
719
853
|
processingMutex.mutex(async () => {
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
if (
|
|
724
|
-
|
|
854
|
+
try {
|
|
855
|
+
await decrypt();
|
|
856
|
+
// Remove from retry queue if the decrypt was succeed
|
|
857
|
+
if (PENDING_MESSAGE_DECRYPTIONS.has(messageKey)) {
|
|
858
|
+
PENDING_MESSAGE_DECRYPTIONS.delete(messageKey);
|
|
859
|
+
console.warn({ messageKey }, 'Message decrypted successfully after retry');
|
|
860
|
+
}
|
|
861
|
+
if (msg.key?.remoteJid && msg.key?.id) {
|
|
862
|
+
addRecentMessage(msg.key.remoteJid, msg.key.id, msg.message);
|
|
863
|
+
logger.debug({
|
|
864
|
+
jid: msg.key.remoteJid,
|
|
865
|
+
id: msg.key.id
|
|
866
|
+
}, 'Added message to recent cache for retry receipts');
|
|
725
867
|
}
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
868
|
+
// message failed to decrypt
|
|
869
|
+
if (msg.messageStubType === proto.WebMessageInfo.StubType.CIPHERTEXT) {
|
|
870
|
+
if (msg?.messageStubParameters?.[0] === MISSING_KEYS_ERROR_TEXT) {
|
|
871
|
+
return sendMessageAck(node, NACK_REASONS.ParsingError);
|
|
872
|
+
}
|
|
873
|
+
return retryMutex.mutex(async () => {
|
|
874
|
+
if (ws.isOpen) {
|
|
875
|
+
if (getBinaryNodeChild(node, 'unavailable')) {
|
|
876
|
+
return;
|
|
877
|
+
}
|
|
878
|
+
const encNode = getBinaryNodeChild(node, 'enc');
|
|
879
|
+
console.warn({ messageKey, node }, 'Message decryption failed, sending retry request');
|
|
880
|
+
await sendRetryRequest(node, !encNode);
|
|
881
|
+
if (retryRequestDelayMs) {
|
|
882
|
+
await delay(retryRequestDelayMs);
|
|
883
|
+
}
|
|
730
884
|
}
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
if (retryRequestDelayMs) {
|
|
734
|
-
await delay(retryRequestDelayMs);
|
|
885
|
+
else {
|
|
886
|
+
logger.debug({ node }, 'connection closed, ignoring retry req');
|
|
735
887
|
}
|
|
888
|
+
});
|
|
889
|
+
}
|
|
890
|
+
else {
|
|
891
|
+
let type = undefined;
|
|
892
|
+
let participant = msg.key.participant;
|
|
893
|
+
if (category === 'peer') {
|
|
894
|
+
type = 'peer_msg';
|
|
736
895
|
}
|
|
737
|
-
else {
|
|
738
|
-
|
|
896
|
+
else if (msg.key.fromMe) {
|
|
897
|
+
type = 'sender';
|
|
898
|
+
if (isJidUser(msg.key.remoteJid)) {
|
|
899
|
+
participant = author;
|
|
900
|
+
}
|
|
739
901
|
}
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
type = 'peer_msg';
|
|
749
|
-
}
|
|
750
|
-
else if (msg.key.fromMe) {
|
|
751
|
-
// message was sent by us from a different device
|
|
752
|
-
type = 'sender';
|
|
753
|
-
// need to specially handle this case
|
|
754
|
-
if (isJidUser(msg.key.remoteJid)) {
|
|
755
|
-
participant = author;
|
|
902
|
+
else if (!sendActiveReceipts) {
|
|
903
|
+
type = 'inactive';
|
|
904
|
+
}
|
|
905
|
+
await sendReceipt(msg.key.remoteJid, participant, [msg.key.id], type);
|
|
906
|
+
const isAnyHistoryMsg = getHistoryMsg(msg.message);
|
|
907
|
+
if (isAnyHistoryMsg) {
|
|
908
|
+
const jid = jidNormalizedUser(msg.key.remoteJid);
|
|
909
|
+
await sendReceipt(jid, undefined, [msg.key.id], 'hist_sync');
|
|
756
910
|
}
|
|
757
911
|
}
|
|
758
|
-
|
|
759
|
-
|
|
912
|
+
cleanMessage(msg, authState.creds.me.id);
|
|
913
|
+
await sendMessageAck(node);
|
|
914
|
+
await upsertMessage(msg, node.attrs.offline ? 'append' : 'notify');
|
|
915
|
+
}
|
|
916
|
+
catch (decryptError) {
|
|
917
|
+
console.error({ error: decryptError, messageKey }, 'Decryption failed');
|
|
918
|
+
if (decryptError.message.includes('No session') ||
|
|
919
|
+
decryptError.message.includes('Bad MAC') ||
|
|
920
|
+
decryptError.message.includes('MAC verification') ||
|
|
921
|
+
decryptError.message.includes('No matching sessions')) {
|
|
922
|
+
console.warn('trying to handle session error in message decryption');
|
|
923
|
+
const pendingDecryption = PENDING_MESSAGE_DECRYPTIONS.get(messageKey);
|
|
924
|
+
if (!pendingDecryption) {
|
|
925
|
+
// Primeira falha - adiciona à queue
|
|
926
|
+
PENDING_MESSAGE_DECRYPTIONS.set(messageKey, {
|
|
927
|
+
node,
|
|
928
|
+
retryCount: 1,
|
|
929
|
+
timestamp: Date.now()
|
|
930
|
+
});
|
|
931
|
+
console.warn({ messageKey, error: decryptError.message }, 'Session not found, scheduling retry');
|
|
932
|
+
// Agenda retry
|
|
933
|
+
setTimeout(() => {
|
|
934
|
+
retryMessageDecryption(messageKey).catch(err => logger.error({ err, messageKey }, 'Error in retry decryption'));
|
|
935
|
+
}, DECRYPT_RETRY_DELAY);
|
|
936
|
+
// try to process the message as a ciphertext
|
|
937
|
+
msg.messageStubType = proto.WebMessageInfo.StubType.CIPHERTEXT;
|
|
938
|
+
msg.messageStubParameters = ['Session not ready, retrying...'];
|
|
939
|
+
cleanMessage(msg, authState.creds.me.id);
|
|
940
|
+
await sendMessageAck(node);
|
|
941
|
+
await upsertMessage(msg, node.attrs.offline ? 'append' : 'notify');
|
|
942
|
+
}
|
|
943
|
+
else if (pendingDecryption.retryCount < MAX_DECRYPT_RETRY_COUNT) {
|
|
944
|
+
// Retry
|
|
945
|
+
pendingDecryption.retryCount++;
|
|
946
|
+
console.warn({ messageKey, retryCount: pendingDecryption.retryCount }, 'Retrying message decryption');
|
|
947
|
+
setTimeout(() => {
|
|
948
|
+
retryMessageDecryption(messageKey).catch(err => console.error({ err, messageKey }, 'Error in retry decryption'));
|
|
949
|
+
}, DECRYPT_RETRY_DELAY * pendingDecryption.retryCount);
|
|
950
|
+
}
|
|
951
|
+
else {
|
|
952
|
+
// max retry count reached
|
|
953
|
+
PENDING_MESSAGE_DECRYPTIONS.delete(messageKey);
|
|
954
|
+
console.error({ messageKey }, 'Max retry count reached for message decryption');
|
|
955
|
+
msg.messageStubType = proto.WebMessageInfo.StubType.CIPHERTEXT;
|
|
956
|
+
msg.messageStubParameters = ['Decryption failed after retries'];
|
|
957
|
+
cleanMessage(msg, authState.creds.me.id);
|
|
958
|
+
await sendMessageAck(node);
|
|
959
|
+
await upsertMessage(msg, node.attrs.offline ? 'append' : 'notify');
|
|
960
|
+
}
|
|
760
961
|
}
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
const jid = jidNormalizedUser(msg.key.remoteJid);
|
|
766
|
-
await sendReceipt(jid, undefined, [msg.key.id], 'hist_sync');
|
|
962
|
+
else {
|
|
963
|
+
// other error, log and throw
|
|
964
|
+
logger.error({ error: decryptError, messageKey }, 'Decryption failed with non-session error');
|
|
965
|
+
throw decryptError;
|
|
767
966
|
}
|
|
768
967
|
}
|
|
769
|
-
cleanMessage(msg, authState.creds.me.id);
|
|
770
|
-
await sendMessageAck(node);
|
|
771
|
-
await upsertMessage(msg, node.attrs.offline ? 'append' : 'notify');
|
|
772
968
|
})
|
|
773
969
|
]);
|
|
774
970
|
}
|
|
775
971
|
catch (error) {
|
|
776
972
|
logger.error({ error, node }, 'error in handling message');
|
|
973
|
+
await sendMessageAck(node); // Ainda assim envia ack para evitar loops
|
|
974
|
+
}
|
|
975
|
+
};
|
|
976
|
+
const retryMessageDecryption = async (messageKey) => {
|
|
977
|
+
const pendingDecryption = PENDING_MESSAGE_DECRYPTIONS.get(messageKey);
|
|
978
|
+
if (!pendingDecryption) {
|
|
979
|
+
return;
|
|
980
|
+
}
|
|
981
|
+
const { node } = pendingDecryption;
|
|
982
|
+
try {
|
|
983
|
+
// try to decrypt the message again
|
|
984
|
+
await handleMessage(node);
|
|
985
|
+
}
|
|
986
|
+
catch (error) {
|
|
987
|
+
logger.error({ error, messageKey }, 'Retry decryption failed');
|
|
988
|
+
if (pendingDecryption.retryCount >= MAX_DECRYPT_RETRY_COUNT) {
|
|
989
|
+
PENDING_MESSAGE_DECRYPTIONS.delete(messageKey);
|
|
990
|
+
}
|
|
777
991
|
}
|
|
778
992
|
};
|
|
993
|
+
setInterval(() => {
|
|
994
|
+
const now = Date.now();
|
|
995
|
+
const maxAge = 5 * 60 * 1000; // 5 minutes
|
|
996
|
+
for (const [key, pending] of PENDING_MESSAGE_DECRYPTIONS.entries()) {
|
|
997
|
+
if (now - pending.timestamp > maxAge) {
|
|
998
|
+
PENDING_MESSAGE_DECRYPTIONS.delete(key);
|
|
999
|
+
logger.debug({ key }, 'Removed old pending decryption from queue');
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
}, 60000);
|
|
779
1003
|
const fetchMessageHistory = async (count, oldestMsgKey, oldestMsgTimestamp) => {
|
|
780
1004
|
if (!authState.creds.me?.id) {
|
|
781
1005
|
throw new Boom('Not authenticated');
|
|
@@ -1143,6 +1367,21 @@ export const makeMessagesRecvSocket = (config) => {
|
|
|
1143
1367
|
logger.trace(`sendActiveReceipts set to "${sendActiveReceipts}"`);
|
|
1144
1368
|
}
|
|
1145
1369
|
});
|
|
1370
|
+
// Setup automatic cleanup of old retry states (inspired by whatsmeow)
|
|
1371
|
+
const cleanupInterval = setInterval(() => {
|
|
1372
|
+
try {
|
|
1373
|
+
cleanupOldRetryStates();
|
|
1374
|
+
}
|
|
1375
|
+
catch (error) {
|
|
1376
|
+
logger.warn({ error: error.message }, 'Failed to cleanup old retry states');
|
|
1377
|
+
}
|
|
1378
|
+
}, 60 * 60 * 1000); // Run every hour
|
|
1379
|
+
// Cleanup on socket close
|
|
1380
|
+
sock.ev.on('connection.update', ({ connection }) => {
|
|
1381
|
+
if (connection === 'close') {
|
|
1382
|
+
clearInterval(cleanupInterval);
|
|
1383
|
+
}
|
|
1384
|
+
});
|
|
1146
1385
|
return {
|
|
1147
1386
|
...sock,
|
|
1148
1387
|
sendMessageAck,
|