@periskope/baileys 7.0.0-alpha-5 → 7.0.0-beta-1
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 +0 -6
- package/lib/Defaults/index.d.ts +1 -2
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +2 -3
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/Group/group_cipher.d.ts +1 -0
- package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
- package/lib/Signal/Group/group_cipher.js +37 -28
- package/lib/Signal/Group/group_cipher.js.map +1 -1
- package/lib/Signal/Group/keyhelper.d.ts.map +1 -1
- package/lib/Signal/Group/keyhelper.js +1 -0
- package/lib/Signal/Group/keyhelper.js.map +1 -1
- package/lib/Signal/Group/queue-job.d.ts +1 -0
- package/lib/Signal/Group/queue-job.d.ts.map +1 -1
- package/lib/Signal/Group/queue-job.js +3 -0
- package/lib/Signal/Group/queue-job.js.map +1 -1
- package/lib/Signal/Group/sender-chain-key.d.ts +1 -1
- package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -1
- package/lib/Signal/Group/sender-chain-key.js +3 -9
- package/lib/Signal/Group/sender-chain-key.js.map +1 -1
- package/lib/Signal/Group/sender-key-message.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-message.js +1 -0
- package/lib/Signal/Group/sender-key-message.js.map +1 -1
- package/lib/Signal/Group/sender-key-state.d.ts +4 -4
- package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-state.js +24 -47
- package/lib/Signal/Group/sender-key-state.js.map +1 -1
- package/lib/Signal/Group/sender-message-key.d.ts.map +1 -1
- package/lib/Signal/Group/sender-message-key.js +1 -0
- package/lib/Signal/Group/sender-message-key.js.map +1 -1
- package/lib/Signal/libsignal.d.ts +2 -6
- package/lib/Signal/libsignal.d.ts.map +1 -1
- package/lib/Signal/libsignal.js +92 -137
- package/lib/Signal/libsignal.js.map +1 -1
- package/lib/Signal/lid-mapping.d.ts +2 -11
- package/lib/Signal/lid-mapping.d.ts.map +1 -1
- package/lib/Signal/lid-mapping.js +34 -91
- package/lib/Signal/lid-mapping.js.map +1 -1
- package/lib/Socket/business.d.ts +7 -8
- package/lib/Socket/business.d.ts.map +1 -1
- package/lib/Socket/chats.d.ts +7 -7
- package/lib/Socket/chats.d.ts.map +1 -1
- package/lib/Socket/chats.js +19 -15
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +7 -8
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/groups.d.ts +7 -7
- package/lib/Socket/groups.d.ts.map +1 -1
- package/lib/Socket/groups.js +10 -12
- package/lib/Socket/groups.js.map +1 -1
- package/lib/Socket/index.d.ts +7 -8
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/messages-recv.d.ts +7 -8
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +254 -357
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts +7 -9
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +110 -94
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +10 -9
- package/lib/Socket/newsletter.d.ts.map +1 -1
- package/lib/Socket/newsletter.js +1 -3
- package/lib/Socket/newsletter.js.map +1 -1
- package/lib/Socket/socket.d.ts +1 -8
- package/lib/Socket/socket.d.ts.map +1 -1
- package/lib/Socket/socket.js +52 -125
- package/lib/Socket/socket.js.map +1 -1
- package/lib/Socket/usync.d.ts +2 -2
- package/lib/Types/Auth.d.ts +1 -1
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Chat.d.ts +0 -2
- package/lib/Types/Chat.d.ts.map +1 -1
- package/lib/Types/Contact.d.ts +4 -4
- package/lib/Types/Contact.d.ts.map +1 -1
- package/lib/Types/Events.d.ts +2 -2
- package/lib/Types/Events.d.ts.map +1 -1
- package/lib/Types/GroupMetadata.d.ts +4 -6
- package/lib/Types/GroupMetadata.d.ts.map +1 -1
- package/lib/Types/Message.d.ts +6 -7
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Types/Message.js +1 -5
- package/lib/Types/Message.js.map +1 -1
- package/lib/Types/Signal.d.ts +5 -13
- package/lib/Types/Signal.d.ts.map +1 -1
- package/lib/Types/Socket.d.ts +7 -23
- package/lib/Types/Socket.d.ts.map +1 -1
- package/lib/Utils/auth-utils.d.ts.map +1 -1
- package/lib/Utils/auth-utils.js +79 -363
- package/lib/Utils/auth-utils.js.map +1 -1
- package/lib/Utils/chat-utils.d.ts +2 -2
- package/lib/Utils/chat-utils.d.ts.map +1 -1
- package/lib/Utils/chat-utils.js +2 -2
- package/lib/Utils/chat-utils.js.map +1 -1
- package/lib/Utils/crypto.d.ts +3 -3
- package/lib/Utils/crypto.d.ts.map +1 -1
- package/lib/Utils/crypto.js +12 -16
- package/lib/Utils/crypto.js.map +1 -1
- package/lib/Utils/decode-wa-message.d.ts +2 -8
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +28 -51
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.d.ts +1 -0
- package/lib/Utils/event-buffer.d.ts.map +1 -1
- package/lib/Utils/event-buffer.js +4 -48
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/generics.d.ts +0 -1
- package/lib/Utils/generics.d.ts.map +1 -1
- package/lib/Utils/generics.js +8 -24
- package/lib/Utils/generics.js.map +1 -1
- package/lib/Utils/history.d.ts.map +1 -1
- package/lib/Utils/history.js +2 -1
- package/lib/Utils/history.js.map +1 -1
- package/lib/Utils/index.d.ts +0 -1
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +0 -1
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/messages-media.d.ts +2 -3
- package/lib/Utils/messages-media.d.ts.map +1 -1
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +3 -3
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/process-message.d.ts +2 -3
- package/lib/Utils/process-message.d.ts.map +1 -1
- package/lib/Utils/process-message.js +3 -13
- package/lib/Utils/process-message.js.map +1 -1
- package/lib/Utils/signal.d.ts +2 -2
- package/lib/Utils/signal.d.ts.map +1 -1
- package/lib/Utils/signal.js.map +1 -1
- package/lib/Utils/validate-connection.d.ts.map +1 -1
- package/lib/Utils/validate-connection.js +2 -3
- package/lib/Utils/validate-connection.js.map +1 -1
- package/lib/WABinary/jid-utils.d.ts +5 -6
- package/lib/WABinary/jid-utils.d.ts.map +1 -1
- package/lib/WABinary/jid-utils.js +5 -11
- package/lib/WABinary/jid-utils.js.map +1 -1
- package/lib/WAM/encode.d.ts.map +1 -1
- package/lib/WAM/encode.js +1 -0
- package/lib/WAM/encode.js.map +1 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +1 -2
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +2 -10
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -1
- package/package.json +8 -10
package/lib/Signal/libsignal.js
CHANGED
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
/* @ts-ignore */
|
|
2
2
|
import * as libsignal from 'libsignal';
|
|
3
|
+
/* @ts-ignore */
|
|
4
|
+
import { LRUCache } from 'lru-cache';
|
|
3
5
|
import { generateSignalPubKey } from '../Utils/index.js';
|
|
4
|
-
import { jidDecode
|
|
6
|
+
import { jidDecode } from '../WABinary/index.js';
|
|
5
7
|
import { SenderKeyName } from './Group/sender-key-name.js';
|
|
6
8
|
import { SenderKeyRecord } from './Group/sender-key-record.js';
|
|
7
9
|
import { GroupCipher, GroupSessionBuilder, SenderKeyDistributionMessage } from './Group/index.js';
|
|
8
10
|
import { LIDMappingStore } from './lid-mapping.js';
|
|
9
|
-
export function makeLibSignalRepository(auth
|
|
10
|
-
const lidMapping = new LIDMappingStore(auth.keys
|
|
11
|
+
export function makeLibSignalRepository(auth) {
|
|
12
|
+
const lidMapping = new LIDMappingStore(auth.keys);
|
|
11
13
|
const storage = signalStorage(auth, lidMapping);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return (key.includes('@lid.whatsapp.net') || // WhatsApp system messages
|
|
18
|
-
key.includes('@broadcast') || // Broadcast messages
|
|
19
|
-
key.includes('@newsletter'));
|
|
20
|
-
}
|
|
14
|
+
// Simple operation-level deduplication (5 minutes)
|
|
15
|
+
const recentMigrations = new LRUCache({
|
|
16
|
+
max: 500,
|
|
17
|
+
ttl: 5 * 60 * 1000
|
|
18
|
+
});
|
|
21
19
|
const repository = {
|
|
22
20
|
decryptGroupMessage({ group, authorJid, msg }) {
|
|
23
21
|
const senderName = jidToSignalSenderKeyName(group, authorJid);
|
|
24
22
|
const cipher = new GroupCipher(storage, senderName);
|
|
25
|
-
|
|
26
|
-
return parsedKeys.transaction(async () => {
|
|
27
|
-
return cipher.decrypt(msg);
|
|
28
|
-
}, group);
|
|
23
|
+
return cipher.decrypt(msg);
|
|
29
24
|
},
|
|
30
25
|
async processSenderKeyDistributionMessage({ item, authorJid }) {
|
|
31
26
|
const builder = new GroupSessionBuilder(storage);
|
|
@@ -39,39 +34,23 @@ export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
|
39
34
|
if (!senderKey) {
|
|
40
35
|
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
41
36
|
}
|
|
42
|
-
|
|
43
|
-
const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
|
|
44
|
-
if (!senderKey) {
|
|
45
|
-
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
46
|
-
}
|
|
47
|
-
await builder.process(senderName, senderMsg);
|
|
48
|
-
}, item.groupId);
|
|
37
|
+
await builder.process(senderName, senderMsg);
|
|
49
38
|
},
|
|
50
39
|
async decryptMessage({ jid, type, ciphertext }) {
|
|
51
40
|
const addr = jidToSignalProtocolAddress(jid);
|
|
52
41
|
const session = new libsignal.SessionCipher(storage, addr);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
if (isLikelySyncMessage(addr)) {
|
|
66
|
-
// If it's a sync message, we can skip the transaction
|
|
67
|
-
// as it is likely to be a system message that doesn't require strict atomicity
|
|
68
|
-
return await doDecrypt();
|
|
42
|
+
let result;
|
|
43
|
+
switch (type) {
|
|
44
|
+
case 'pkmsg':
|
|
45
|
+
result = await session.decryptPreKeyWhisperMessage(ciphertext);
|
|
46
|
+
break;
|
|
47
|
+
case 'msg':
|
|
48
|
+
result = await session.decryptWhisperMessage(ciphertext);
|
|
49
|
+
break;
|
|
50
|
+
default:
|
|
51
|
+
throw new Error(`Unknown message type: ${type}`);
|
|
69
52
|
}
|
|
70
|
-
|
|
71
|
-
// For regular messages, we use a transaction to ensure atomicity
|
|
72
|
-
return parsedKeys.transaction(async () => {
|
|
73
|
-
return await doDecrypt();
|
|
74
|
-
}, jid);
|
|
53
|
+
return result;
|
|
75
54
|
},
|
|
76
55
|
async encryptMessage({ jid, data }) {
|
|
77
56
|
// LID SINGLE SOURCE OF TRUTH: Always prefer LID when available
|
|
@@ -92,7 +71,7 @@ export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
|
92
71
|
const { [pnAddr.toString()]: pnSession } = await auth.keys.get('session', [pnAddr.toString()]);
|
|
93
72
|
if (pnSession) {
|
|
94
73
|
// Migrate PN to LID
|
|
95
|
-
await repository.migrateSession(
|
|
74
|
+
await repository.migrateSession(jid, lidForPN);
|
|
96
75
|
encryptionJid = lidForPN;
|
|
97
76
|
}
|
|
98
77
|
}
|
|
@@ -100,42 +79,39 @@ export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
|
100
79
|
}
|
|
101
80
|
const addr = jidToSignalProtocolAddress(encryptionJid);
|
|
102
81
|
const cipher = new libsignal.SessionCipher(storage, addr);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const type = sigType === 3 ? 'pkmsg' : 'msg';
|
|
107
|
-
return { type, ciphertext: Buffer.from(body, 'binary') };
|
|
108
|
-
}, jid);
|
|
82
|
+
const { type: sigType, body } = await cipher.encrypt(data);
|
|
83
|
+
const type = sigType === 3 ? 'pkmsg' : 'msg';
|
|
84
|
+
return { type, ciphertext: Buffer.from(body, 'binary') };
|
|
109
85
|
},
|
|
110
86
|
async encryptGroupMessage({ group, meId, data }) {
|
|
111
87
|
const senderName = jidToSignalSenderKeyName(group, meId);
|
|
112
88
|
const builder = new GroupSessionBuilder(storage);
|
|
113
89
|
const senderNameStr = senderName.toString();
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
};
|
|
126
|
-
}, group);
|
|
90
|
+
const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
|
|
91
|
+
if (!senderKey) {
|
|
92
|
+
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
93
|
+
}
|
|
94
|
+
const senderKeyDistributionMessage = await builder.create(senderName);
|
|
95
|
+
const session = new GroupCipher(storage, senderName);
|
|
96
|
+
const ciphertext = await session.encrypt(data);
|
|
97
|
+
return {
|
|
98
|
+
ciphertext,
|
|
99
|
+
senderKeyDistributionMessage: senderKeyDistributionMessage.serialize()
|
|
100
|
+
};
|
|
127
101
|
},
|
|
128
102
|
async injectE2ESession({ jid, session }) {
|
|
129
103
|
const cipher = new libsignal.SessionBuilder(storage, jidToSignalProtocolAddress(jid));
|
|
130
|
-
|
|
131
|
-
await cipher.initOutgoing(session);
|
|
132
|
-
}, jid);
|
|
104
|
+
await cipher.initOutgoing(session);
|
|
133
105
|
},
|
|
134
106
|
jidToSignalProtocolAddress(jid) {
|
|
135
107
|
return jidToSignalProtocolAddress(jid).toString();
|
|
136
108
|
},
|
|
137
|
-
|
|
138
|
-
|
|
109
|
+
async storeLIDPNMapping(lid, pn) {
|
|
110
|
+
await lidMapping.storeLIDPNMapping(lid, pn);
|
|
111
|
+
},
|
|
112
|
+
getLIDMappingStore() {
|
|
113
|
+
return lidMapping;
|
|
114
|
+
},
|
|
139
115
|
async validateSession(jid) {
|
|
140
116
|
try {
|
|
141
117
|
const addr = jidToSignalProtocolAddress(jid);
|
|
@@ -152,77 +128,58 @@ export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
|
152
128
|
return { exists: false, reason: 'validation error' };
|
|
153
129
|
}
|
|
154
130
|
},
|
|
155
|
-
async deleteSession(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const sessionUpdates = {};
|
|
160
|
-
jids.forEach(jid => {
|
|
161
|
-
const addr = jidToSignalProtocolAddress(jid);
|
|
162
|
-
sessionUpdates[addr.toString()] = null;
|
|
131
|
+
async deleteSession(jid) {
|
|
132
|
+
const addr = jidToSignalProtocolAddress(jid);
|
|
133
|
+
return auth.keys.transaction(async () => {
|
|
134
|
+
await auth.keys.set({ session: { [addr.toString()]: null } });
|
|
163
135
|
});
|
|
164
|
-
// Single transaction for all deletions
|
|
165
|
-
return parsedKeys.transaction(async () => {
|
|
166
|
-
await auth.keys.set({ session: sessionUpdates });
|
|
167
|
-
}, `delete-${jids.length}-sessions`);
|
|
168
136
|
},
|
|
169
|
-
async migrateSession(
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (!opsToMigrate.length) {
|
|
206
|
-
return { migrated: 0, skipped: skippedCount, total: validJids.length };
|
|
137
|
+
async migrateSession(fromJid, toJid) {
|
|
138
|
+
// Only migrate PN → LID
|
|
139
|
+
if (!fromJid.includes('@s.whatsapp.net') || !toJid.includes('@lid')) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const fromDecoded = jidDecode(fromJid);
|
|
143
|
+
const toDecoded = jidDecode(toJid);
|
|
144
|
+
if (!fromDecoded || !toDecoded)
|
|
145
|
+
return;
|
|
146
|
+
const deviceId = fromDecoded.device || 0;
|
|
147
|
+
const migrationKey = `${fromDecoded.user}.${deviceId}→${toDecoded.user}.${deviceId}`;
|
|
148
|
+
// Check if recently migrated (5 min window)
|
|
149
|
+
if (recentMigrations.has(migrationKey)) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
// Check if LID session already exists
|
|
153
|
+
const lidAddr = jidToSignalProtocolAddress(toJid);
|
|
154
|
+
const { [lidAddr.toString()]: lidExists } = await auth.keys.get('session', [lidAddr.toString()]);
|
|
155
|
+
if (lidExists) {
|
|
156
|
+
recentMigrations.set(migrationKey, true);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
return auth.keys.transaction(async () => {
|
|
160
|
+
// Store mapping
|
|
161
|
+
await lidMapping.storeLIDPNMapping(toJid, fromJid);
|
|
162
|
+
// Load and copy session
|
|
163
|
+
const fromAddr = jidToSignalProtocolAddress(fromJid);
|
|
164
|
+
const fromSession = await storage.loadSession(fromAddr.toString());
|
|
165
|
+
if (fromSession?.haveOpenSession()) {
|
|
166
|
+
// Deep copy session to prevent reference issues
|
|
167
|
+
const sessionBytes = fromSession.serialize();
|
|
168
|
+
const copiedSession = libsignal.SessionRecord.deserialize(sessionBytes);
|
|
169
|
+
// Store at LID address
|
|
170
|
+
await storage.storeSession(lidAddr.toString(), copiedSession);
|
|
171
|
+
// Delete PN session - maintain single encryption layer
|
|
172
|
+
await auth.keys.set({ session: { [fromAddr.toString()]: null } });
|
|
207
173
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const fromSession = await storage.loadSession(op.fromAddr.toString());
|
|
211
|
-
if (fromSession?.haveOpenSession()) {
|
|
212
|
-
// Copy session to LID address
|
|
213
|
-
const sessionBytes = fromSession.serialize();
|
|
214
|
-
const copiedSession = libsignal.SessionRecord.deserialize(sessionBytes);
|
|
215
|
-
await storage.storeSession(op.toAddr.toString(), copiedSession);
|
|
216
|
-
// Delete PN session
|
|
217
|
-
await auth.keys.set({ session: { [op.fromAddr.toString()]: null } });
|
|
218
|
-
}
|
|
219
|
-
}));
|
|
220
|
-
return { migrated: opsToMigrate.length, skipped: skippedCount, total: validJids.length };
|
|
221
|
-
}, `migrate-${validJids.length}-sessions-${jidDecode(toJid)?.user}`);
|
|
174
|
+
recentMigrations.set(migrationKey, true);
|
|
175
|
+
});
|
|
222
176
|
},
|
|
223
177
|
async encryptMessageWithWire({ encryptionJid, wireJid, data }) {
|
|
224
178
|
const result = await repository.encryptMessage({ jid: encryptionJid, data });
|
|
225
179
|
return { ...result, wireJid };
|
|
180
|
+
},
|
|
181
|
+
destroy() {
|
|
182
|
+
recentMigrations.clear();
|
|
226
183
|
}
|
|
227
184
|
};
|
|
228
185
|
return repository;
|
|
@@ -230,9 +187,6 @@ export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
|
230
187
|
const jidToSignalProtocolAddress = (jid) => {
|
|
231
188
|
const decoded = jidDecode(jid);
|
|
232
189
|
const { user, device, server } = decoded;
|
|
233
|
-
if (!user) {
|
|
234
|
-
throw new Error(`JID decoded but user is empty: "${jid}" -> user: "${user}", server: "${server}", device: ${device}`);
|
|
235
|
-
}
|
|
236
190
|
// LID addresses get _1 suffix for Signal protocol
|
|
237
191
|
const signalUser = server === 'lid' ? `${user}_1` : user;
|
|
238
192
|
const finalDevice = device || 0;
|
|
@@ -274,6 +228,7 @@ function signalStorage({ creds, keys }, lidMapping) {
|
|
|
274
228
|
}
|
|
275
229
|
return null;
|
|
276
230
|
},
|
|
231
|
+
// TODO: Replace with libsignal.SessionRecord when type exports are added to libsignal
|
|
277
232
|
storeSession: async (id, session) => {
|
|
278
233
|
await keys.set({ session: { [id]: session.serialize() } });
|
|
279
234
|
},
|
|
@@ -316,7 +271,7 @@ function signalStorage({ creds, keys }, lidMapping) {
|
|
|
316
271
|
const { signedIdentityKey } = creds;
|
|
317
272
|
return {
|
|
318
273
|
privKey: Buffer.from(signedIdentityKey.private),
|
|
319
|
-
pubKey:
|
|
274
|
+
pubKey: generateSignalPubKey(signedIdentityKey.public)
|
|
320
275
|
};
|
|
321
276
|
}
|
|
322
277
|
};
|
|
@@ -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,20 +1,11 @@
|
|
|
1
1
|
import type { SignalKeyStoreWithTransaction } from '../Types/index.js';
|
|
2
2
|
export declare class LIDMappingStore {
|
|
3
|
-
private readonly mappingCache;
|
|
4
3
|
private readonly keys;
|
|
5
|
-
|
|
6
|
-
constructor(keys: SignalKeyStoreWithTransaction, onWhatsAppFunc?: (...jids: string[]) => Promise<{
|
|
7
|
-
jid: string;
|
|
8
|
-
exists: boolean;
|
|
9
|
-
lid: string;
|
|
10
|
-
}[] | undefined>);
|
|
4
|
+
constructor(keys: SignalKeyStoreWithTransaction);
|
|
11
5
|
/**
|
|
12
6
|
* Store LID-PN mapping - USER LEVEL
|
|
13
7
|
*/
|
|
14
|
-
|
|
15
|
-
lid: string;
|
|
16
|
-
pn: string;
|
|
17
|
-
}[]): Promise<void>;
|
|
8
|
+
storeLIDPNMapping(lid: string, pn: string): Promise<void>;
|
|
18
9
|
/**
|
|
19
10
|
* Get LID for PN - Returns device-specific LID based on user mapping
|
|
20
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lid-mapping.d.ts","sourceRoot":"","sources":["../../src/Signal/lid-mapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lid-mapping.d.ts","sourceRoot":"","sources":["../../src/Signal/lid-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAI7D,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;gBAExC,IAAI,EAAE,6BAA6B;IAI/C;;OAEG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B/D;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0BrD;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAuBtD"}
|
|
@@ -1,107 +1,55 @@
|
|
|
1
|
-
import { LRUCache } from 'lru-cache';
|
|
2
1
|
import logger from '../Utils/logger.js';
|
|
3
|
-
import {
|
|
2
|
+
import { isJidUser, isLidUser, jidDecode } from '../WABinary/index.js';
|
|
4
3
|
export class LIDMappingStore {
|
|
5
|
-
constructor(keys
|
|
6
|
-
this.mappingCache = new LRUCache({
|
|
7
|
-
ttl: 7 * 24 * 60 * 60 * 1000, // 7 days
|
|
8
|
-
ttlAutopurge: true,
|
|
9
|
-
updateAgeOnGet: true
|
|
10
|
-
});
|
|
4
|
+
constructor(keys) {
|
|
11
5
|
this.keys = keys;
|
|
12
|
-
this.onWhatsAppFunc = onWhatsAppFunc; // needed to get LID from PN if not found
|
|
13
6
|
}
|
|
14
7
|
/**
|
|
15
8
|
* Store LID-PN mapping - USER LEVEL
|
|
16
9
|
*/
|
|
17
|
-
async
|
|
10
|
+
async storeLIDPNMapping(lid, pn) {
|
|
18
11
|
// Validate inputs
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
logger.warn(`Invalid LID-PN mapping: ${lid}, ${pn}`);
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
const [lidJid, pnJid] = isLidUser(lid) ? [lid, pn] : [pn, lid];
|
|
26
|
-
const lidDecoded = jidDecode(lidJid);
|
|
27
|
-
const pnDecoded = jidDecode(pnJid);
|
|
28
|
-
if (!lidDecoded || !pnDecoded)
|
|
29
|
-
return;
|
|
30
|
-
const pnUser = pnDecoded.user;
|
|
31
|
-
const lidUser = lidDecoded.user;
|
|
32
|
-
// Check if mapping already exists (cache first, then database)
|
|
33
|
-
let existingLidUser = this.mappingCache.get(`pn:${pnUser}`);
|
|
34
|
-
if (!existingLidUser) {
|
|
35
|
-
// Cache miss - check database
|
|
36
|
-
const stored = await this.keys.get('lid-mapping', [pnUser]);
|
|
37
|
-
existingLidUser = stored[pnUser];
|
|
38
|
-
if (existingLidUser) {
|
|
39
|
-
// Update cache with database value
|
|
40
|
-
this.mappingCache.set(`pn:${pnUser}`, existingLidUser);
|
|
41
|
-
this.mappingCache.set(`lid:${existingLidUser}`, pnUser);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (existingLidUser === lidUser) {
|
|
45
|
-
logger.debug({ pnUser, lidUser }, 'LID mapping already exists, skipping');
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
pairMap[pnUser] = lidUser;
|
|
12
|
+
if (!((isLidUser(lid) && isJidUser(pn)) || (isJidUser(lid) && isLidUser(pn)))) {
|
|
13
|
+
logger.warn(`Invalid LID-PN mapping: ${lid}, ${pn}`);
|
|
14
|
+
return;
|
|
49
15
|
}
|
|
50
|
-
|
|
16
|
+
const [lidJid, pnJid] = isLidUser(lid) ? [lid, pn] : [pn, lid];
|
|
17
|
+
const lidDecoded = jidDecode(lidJid);
|
|
18
|
+
const pnDecoded = jidDecode(pnJid);
|
|
19
|
+
if (!lidDecoded || !pnDecoded)
|
|
20
|
+
return;
|
|
21
|
+
const pnUser = pnDecoded.user;
|
|
22
|
+
const lidUser = lidDecoded.user;
|
|
23
|
+
logger.trace(`Storing USER LID mapping: PN ${pnUser} → LID ${lidUser}`);
|
|
51
24
|
await this.keys.transaction(async () => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
this.mappingCache.set(`pn:${pnUser}`, lidUser);
|
|
61
|
-
this.mappingCache.set(`lid:${lidUser}`, pnUser);
|
|
62
|
-
}
|
|
63
|
-
}, 'lid-mapping');
|
|
25
|
+
await this.keys.set({
|
|
26
|
+
'lid-mapping': {
|
|
27
|
+
[pnUser]: lidUser, // "554396160286" -> "102765716062358"
|
|
28
|
+
[`${lidUser}_reverse`]: pnUser // "102765716062358_reverse" -> "554396160286"
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
logger.trace(`USER LID mapping stored: PN ${pnUser} → LID ${lidUser}`);
|
|
64
33
|
}
|
|
65
34
|
/**
|
|
66
35
|
* Get LID for PN - Returns device-specific LID based on user mapping
|
|
67
36
|
*/
|
|
68
37
|
async getLIDForPN(pn) {
|
|
69
|
-
if (!
|
|
38
|
+
if (!isJidUser(pn))
|
|
70
39
|
return null;
|
|
71
40
|
const decoded = jidDecode(pn);
|
|
72
41
|
if (!decoded)
|
|
73
42
|
return null;
|
|
74
|
-
//
|
|
43
|
+
// Look up user-level mapping (whatsmeow approach)
|
|
75
44
|
const pnUser = decoded.user;
|
|
76
|
-
|
|
45
|
+
const stored = await this.keys.get('lid-mapping', [pnUser]);
|
|
46
|
+
const lidUser = stored[pnUser];
|
|
77
47
|
if (!lidUser) {
|
|
78
|
-
|
|
79
|
-
const stored = await this.keys.get('lid-mapping', [pnUser]);
|
|
80
|
-
lidUser = stored[pnUser];
|
|
81
|
-
if (lidUser) {
|
|
82
|
-
// Cache the database result
|
|
83
|
-
this.mappingCache.set(`pn:${pnUser}`, lidUser);
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
// Not in database - try USync
|
|
87
|
-
logger.trace(`No LID mapping found for PN user ${pnUser}; getting from USync`);
|
|
88
|
-
const { exists, lid } = (await this.onWhatsAppFunc?.(pn))?.[0]; // this function already adds LIDs to mapping
|
|
89
|
-
if (exists && lid) {
|
|
90
|
-
lidUser = jidDecode(lid)?.user;
|
|
91
|
-
if (lidUser) {
|
|
92
|
-
// Cache the USync result
|
|
93
|
-
this.mappingCache.set(`pn:${pnUser}`, lidUser);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (typeof lidUser !== 'string' || !lidUser) {
|
|
102
|
-
logger.warn(`Invalid or empty LID user for PN ${pn}: lidUser = "${lidUser}"`);
|
|
48
|
+
logger.trace(`No LID mapping found for PN user ${pnUser}`);
|
|
103
49
|
return null;
|
|
104
50
|
}
|
|
51
|
+
if (typeof lidUser !== 'string')
|
|
52
|
+
return null;
|
|
105
53
|
// Push the PN device ID to the LID to maintain device separation
|
|
106
54
|
const pnDevice = decoded.device !== undefined ? decoded.device : 0;
|
|
107
55
|
const deviceSpecificLid = `${lidUser}:${pnDevice}@lid`;
|
|
@@ -117,18 +65,13 @@ export class LIDMappingStore {
|
|
|
117
65
|
const decoded = jidDecode(lid);
|
|
118
66
|
if (!decoded)
|
|
119
67
|
return null;
|
|
120
|
-
//
|
|
68
|
+
// Look up reverse user mapping
|
|
121
69
|
const lidUser = decoded.user;
|
|
122
|
-
|
|
70
|
+
const stored = await this.keys.get('lid-mapping', [`${lidUser}_reverse`]);
|
|
71
|
+
const pnUser = stored[`${lidUser}_reverse`];
|
|
123
72
|
if (!pnUser || typeof pnUser !== 'string') {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
pnUser = stored[`${lidUser}_reverse`];
|
|
127
|
-
if (!pnUser || typeof pnUser !== 'string') {
|
|
128
|
-
logger.trace(`No reverse mapping found for LID user: ${lidUser}`);
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
this.mappingCache.set(`lid:${lidUser}`, pnUser);
|
|
73
|
+
logger.trace(`No reverse mapping found for LID user: ${lidUser}`);
|
|
74
|
+
return null;
|
|
132
75
|
}
|
|
133
76
|
// Construct device-specific PN JID
|
|
134
77
|
const lidDevice = decoded.device !== undefined ? decoded.device : 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lid-mapping.js","sourceRoot":"","sources":["../../src/Signal/lid-mapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lid-mapping.js","sourceRoot":"","sources":["../../src/Signal/lid-mapping.ts"],"names":[],"mappings":"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"}
|