@periskope/baileys 7.0.0-alpha-5 → 7.0.0-beta-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/README.md +0 -6
- package/lib/Defaults/index.d.ts +1 -7
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +4 -11
- 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/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 +19 -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 +41 -224
- 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 +14 -26
- package/lib/Socket/business.d.ts.map +1 -1
- package/lib/Socket/business.js +1 -122
- package/lib/Socket/business.js.map +1 -1
- package/lib/Socket/chats.d.ts +9 -15
- package/lib/Socket/chats.d.ts.map +1 -1
- package/lib/Socket/chats.js +20 -53
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +11 -25
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/communities.js +0 -44
- package/lib/Socket/communities.js.map +1 -1
- package/lib/Socket/groups.d.ts +9 -14
- 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 +11 -25
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/messages-recv.d.ts +11 -19
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +230 -396
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts +11 -20
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +71 -443
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +12 -16
- 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 +3 -10
- package/lib/Socket/socket.d.ts.map +1 -1
- package/lib/Socket/socket.js +69 -264
- package/lib/Socket/socket.js.map +1 -1
- package/lib/Types/Auth.d.ts +1 -2
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Chat.d.ts +0 -5
- package/lib/Types/Chat.d.ts.map +1 -1
- package/lib/Types/Chat.js.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 +7 -28
- 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 +0 -28
- 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 -19
- 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 -13
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +13 -84
- 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 +1 -4
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +4 -24
- 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 -12
package/lib/Signal/libsignal.js
CHANGED
|
@@ -1,31 +1,17 @@
|
|
|
1
1
|
/* @ts-ignore */
|
|
2
2
|
import * as libsignal from 'libsignal';
|
|
3
3
|
import { generateSignalPubKey } from '../Utils/index.js';
|
|
4
|
-
import { jidDecode
|
|
4
|
+
import { jidDecode } from '../WABinary/index.js';
|
|
5
5
|
import { SenderKeyName } from './Group/sender-key-name.js';
|
|
6
6
|
import { SenderKeyRecord } from './Group/sender-key-record.js';
|
|
7
7
|
import { GroupCipher, GroupSessionBuilder, SenderKeyDistributionMessage } from './Group/index.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const storage = signalStorage(auth, lidMapping);
|
|
12
|
-
const parsedKeys = auth.keys;
|
|
13
|
-
function isLikelySyncMessage(addr) {
|
|
14
|
-
const key = addr.toString();
|
|
15
|
-
// Only bypass for WhatsApp system addresses, not regular user contacts
|
|
16
|
-
// Be very specific about sync service patterns
|
|
17
|
-
return (key.includes('@lid.whatsapp.net') || // WhatsApp system messages
|
|
18
|
-
key.includes('@broadcast') || // Broadcast messages
|
|
19
|
-
key.includes('@newsletter'));
|
|
20
|
-
}
|
|
21
|
-
const repository = {
|
|
8
|
+
export function makeLibSignalRepository(auth) {
|
|
9
|
+
const storage = signalStorage(auth);
|
|
10
|
+
return {
|
|
22
11
|
decryptGroupMessage({ group, authorJid, msg }) {
|
|
23
12
|
const senderName = jidToSignalSenderKeyName(group, authorJid);
|
|
24
13
|
const cipher = new GroupCipher(storage, senderName);
|
|
25
|
-
|
|
26
|
-
return parsedKeys.transaction(async () => {
|
|
27
|
-
return cipher.decrypt(msg);
|
|
28
|
-
}, group);
|
|
14
|
+
return cipher.decrypt(msg);
|
|
29
15
|
},
|
|
30
16
|
async processSenderKeyDistributionMessage({ item, authorJid }) {
|
|
31
17
|
const builder = new GroupSessionBuilder(storage);
|
|
@@ -39,241 +25,72 @@ export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
|
39
25
|
if (!senderKey) {
|
|
40
26
|
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
41
27
|
}
|
|
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);
|
|
28
|
+
await builder.process(senderName, senderMsg);
|
|
49
29
|
},
|
|
50
30
|
async decryptMessage({ jid, type, ciphertext }) {
|
|
51
31
|
const addr = jidToSignalProtocolAddress(jid);
|
|
52
32
|
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();
|
|
33
|
+
let result;
|
|
34
|
+
switch (type) {
|
|
35
|
+
case 'pkmsg':
|
|
36
|
+
result = await session.decryptPreKeyWhisperMessage(ciphertext);
|
|
37
|
+
break;
|
|
38
|
+
case 'msg':
|
|
39
|
+
result = await session.decryptWhisperMessage(ciphertext);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
throw new Error(`Unknown message type: ${type}`);
|
|
69
43
|
}
|
|
70
|
-
|
|
71
|
-
// For regular messages, we use a transaction to ensure atomicity
|
|
72
|
-
return parsedKeys.transaction(async () => {
|
|
73
|
-
return await doDecrypt();
|
|
74
|
-
}, jid);
|
|
44
|
+
return result;
|
|
75
45
|
},
|
|
76
46
|
async encryptMessage({ jid, data }) {
|
|
77
|
-
|
|
78
|
-
let encryptionJid = jid;
|
|
79
|
-
// Check for LID mapping and use it if session exists
|
|
80
|
-
if (jid.includes('@s.whatsapp.net')) {
|
|
81
|
-
const lidForPN = await lidMapping.getLIDForPN(jid);
|
|
82
|
-
if (lidForPN?.includes('@lid')) {
|
|
83
|
-
const lidAddr = jidToSignalProtocolAddress(lidForPN);
|
|
84
|
-
const { [lidAddr.toString()]: lidSession } = await auth.keys.get('session', [lidAddr.toString()]);
|
|
85
|
-
if (lidSession) {
|
|
86
|
-
// LID session exists, use it
|
|
87
|
-
encryptionJid = lidForPN;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
// Try to migrate if PN session exists
|
|
91
|
-
const pnAddr = jidToSignalProtocolAddress(jid);
|
|
92
|
-
const { [pnAddr.toString()]: pnSession } = await auth.keys.get('session', [pnAddr.toString()]);
|
|
93
|
-
if (pnSession) {
|
|
94
|
-
// Migrate PN to LID
|
|
95
|
-
await repository.migrateSession([jid], lidForPN);
|
|
96
|
-
encryptionJid = lidForPN;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
const addr = jidToSignalProtocolAddress(encryptionJid);
|
|
47
|
+
const addr = jidToSignalProtocolAddress(jid);
|
|
102
48
|
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);
|
|
49
|
+
const { type: sigType, body } = await cipher.encrypt(data);
|
|
50
|
+
const type = sigType === 3 ? 'pkmsg' : 'msg';
|
|
51
|
+
return { type, ciphertext: Buffer.from(body, 'binary') };
|
|
109
52
|
},
|
|
110
53
|
async encryptGroupMessage({ group, meId, data }) {
|
|
111
54
|
const senderName = jidToSignalSenderKeyName(group, meId);
|
|
112
55
|
const builder = new GroupSessionBuilder(storage);
|
|
113
56
|
const senderNameStr = senderName.toString();
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
};
|
|
126
|
-
}, group);
|
|
57
|
+
const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
|
|
58
|
+
if (!senderKey) {
|
|
59
|
+
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
60
|
+
}
|
|
61
|
+
const senderKeyDistributionMessage = await builder.create(senderName);
|
|
62
|
+
const session = new GroupCipher(storage, senderName);
|
|
63
|
+
const ciphertext = await session.encrypt(data);
|
|
64
|
+
return {
|
|
65
|
+
ciphertext,
|
|
66
|
+
senderKeyDistributionMessage: senderKeyDistributionMessage.serialize()
|
|
67
|
+
};
|
|
127
68
|
},
|
|
128
69
|
async injectE2ESession({ jid, session }) {
|
|
129
70
|
const cipher = new libsignal.SessionBuilder(storage, jidToSignalProtocolAddress(jid));
|
|
130
|
-
|
|
131
|
-
await cipher.initOutgoing(session);
|
|
132
|
-
}, jid);
|
|
71
|
+
await cipher.initOutgoing(session);
|
|
133
72
|
},
|
|
134
73
|
jidToSignalProtocolAddress(jid) {
|
|
135
74
|
return jidToSignalProtocolAddress(jid).toString();
|
|
136
|
-
},
|
|
137
|
-
// Optimized direct access to LID mapping store
|
|
138
|
-
lidMapping,
|
|
139
|
-
async validateSession(jid) {
|
|
140
|
-
try {
|
|
141
|
-
const addr = jidToSignalProtocolAddress(jid);
|
|
142
|
-
const session = await storage.loadSession(addr.toString());
|
|
143
|
-
if (!session) {
|
|
144
|
-
return { exists: false, reason: 'no session' };
|
|
145
|
-
}
|
|
146
|
-
if (!session.haveOpenSession()) {
|
|
147
|
-
return { exists: false, reason: 'no open session' };
|
|
148
|
-
}
|
|
149
|
-
return { exists: true };
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
return { exists: false, reason: 'validation error' };
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
async deleteSession(jids) {
|
|
156
|
-
if (!jids.length)
|
|
157
|
-
return;
|
|
158
|
-
// Convert JIDs to signal addresses and prepare for bulk deletion
|
|
159
|
-
const sessionUpdates = {};
|
|
160
|
-
jids.forEach(jid => {
|
|
161
|
-
const addr = jidToSignalProtocolAddress(jid);
|
|
162
|
-
sessionUpdates[addr.toString()] = null;
|
|
163
|
-
});
|
|
164
|
-
// Single transaction for all deletions
|
|
165
|
-
return parsedKeys.transaction(async () => {
|
|
166
|
-
await auth.keys.set({ session: sessionUpdates });
|
|
167
|
-
}, `delete-${jids.length}-sessions`);
|
|
168
|
-
},
|
|
169
|
-
async migrateSession(fromJids, toJid) {
|
|
170
|
-
if (!fromJids.length || !toJid.includes('@lid'))
|
|
171
|
-
return { migrated: 0, skipped: 0, total: 0 };
|
|
172
|
-
// Filter valid PN JIDs
|
|
173
|
-
const validJids = fromJids.filter(jid => jid.includes('@s.whatsapp.net'));
|
|
174
|
-
if (!validJids.length)
|
|
175
|
-
return { migrated: 0, skipped: 0, total: fromJids.length };
|
|
176
|
-
// Single optimized transaction for all migrations
|
|
177
|
-
return parsedKeys.transaction(async () => {
|
|
178
|
-
// 1. Batch store all LID mappings
|
|
179
|
-
const mappings = validJids.map(jid => ({
|
|
180
|
-
lid: transferDevice(jid, toJid),
|
|
181
|
-
pn: jid
|
|
182
|
-
}));
|
|
183
|
-
await lidMapping.storeLIDPNMappings(mappings);
|
|
184
|
-
// 2. Prepare migration operations
|
|
185
|
-
const migrationOps = validJids.map(jid => {
|
|
186
|
-
const lidWithDevice = transferDevice(jid, toJid);
|
|
187
|
-
const fromDecoded = jidDecode(jid);
|
|
188
|
-
const toDecoded = jidDecode(lidWithDevice);
|
|
189
|
-
return {
|
|
190
|
-
fromJid: jid,
|
|
191
|
-
toJid: lidWithDevice,
|
|
192
|
-
pnUser: fromDecoded.user,
|
|
193
|
-
lidUser: toDecoded.user,
|
|
194
|
-
deviceId: fromDecoded.device || 0,
|
|
195
|
-
fromAddr: jidToSignalProtocolAddress(jid),
|
|
196
|
-
toAddr: jidToSignalProtocolAddress(lidWithDevice)
|
|
197
|
-
};
|
|
198
|
-
});
|
|
199
|
-
// 3. Batch check which LID sessions already exist
|
|
200
|
-
const lidAddrs = migrationOps.map(op => op.toAddr.toString());
|
|
201
|
-
const existingSessions = await auth.keys.get('session', lidAddrs);
|
|
202
|
-
// 4. Filter out sessions that already have LID sessions
|
|
203
|
-
const opsToMigrate = migrationOps.filter(op => !existingSessions[op.toAddr.toString()]);
|
|
204
|
-
const skippedCount = migrationOps.length - opsToMigrate.length;
|
|
205
|
-
if (!opsToMigrate.length) {
|
|
206
|
-
return { migrated: 0, skipped: skippedCount, total: validJids.length };
|
|
207
|
-
}
|
|
208
|
-
// 5. Execute all migrations in parallel
|
|
209
|
-
await Promise.all(opsToMigrate.map(async (op) => {
|
|
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}`);
|
|
222
|
-
},
|
|
223
|
-
async encryptMessageWithWire({ encryptionJid, wireJid, data }) {
|
|
224
|
-
const result = await repository.encryptMessage({ jid: encryptionJid, data });
|
|
225
|
-
return { ...result, wireJid };
|
|
226
75
|
}
|
|
227
76
|
};
|
|
228
|
-
return repository;
|
|
229
77
|
}
|
|
230
78
|
const jidToSignalProtocolAddress = (jid) => {
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
if (!user) {
|
|
234
|
-
throw new Error(`JID decoded but user is empty: "${jid}" -> user: "${user}", server: "${server}", device: ${device}`);
|
|
235
|
-
}
|
|
236
|
-
// LID addresses get _1 suffix for Signal protocol
|
|
237
|
-
const signalUser = server === 'lid' ? `${user}_1` : user;
|
|
238
|
-
const finalDevice = device || 0;
|
|
239
|
-
return new libsignal.ProtocolAddress(signalUser, finalDevice);
|
|
79
|
+
const { user, device } = jidDecode(jid);
|
|
80
|
+
return new libsignal.ProtocolAddress(user, device || 0);
|
|
240
81
|
};
|
|
241
82
|
const jidToSignalSenderKeyName = (group, user) => {
|
|
242
83
|
return new SenderKeyName(group, jidToSignalProtocolAddress(user));
|
|
243
84
|
};
|
|
244
|
-
function signalStorage({ creds, keys }
|
|
85
|
+
function signalStorage({ creds, keys }) {
|
|
245
86
|
return {
|
|
246
87
|
loadSession: async (id) => {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
if (id.includes('.') && !id.includes('_1')) {
|
|
251
|
-
// This is a PN signal address format (e.g., "1234567890.0")
|
|
252
|
-
// Convert back to JID to check for LID mapping
|
|
253
|
-
const parts = id.split('.');
|
|
254
|
-
const device = parts[1] || '0';
|
|
255
|
-
const pnJid = device === '0' ? `${parts[0]}@s.whatsapp.net` : `${parts[0]}:${device}@s.whatsapp.net`;
|
|
256
|
-
const lidForPN = await lidMapping.getLIDForPN(pnJid);
|
|
257
|
-
if (lidForPN?.includes('@lid')) {
|
|
258
|
-
const lidAddr = jidToSignalProtocolAddress(lidForPN);
|
|
259
|
-
const lidId = lidAddr.toString();
|
|
260
|
-
// Check if LID session exists
|
|
261
|
-
const { [lidId]: lidSession } = await keys.get('session', [lidId]);
|
|
262
|
-
if (lidSession) {
|
|
263
|
-
actualId = lidId;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
const { [actualId]: sess } = await keys.get('session', [actualId]);
|
|
268
|
-
if (sess) {
|
|
269
|
-
return libsignal.SessionRecord.deserialize(sess);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
catch (e) {
|
|
273
|
-
return null;
|
|
88
|
+
const { [id]: sess } = await keys.get('session', [id]);
|
|
89
|
+
if (sess) {
|
|
90
|
+
return libsignal.SessionRecord.deserialize(sess);
|
|
274
91
|
}
|
|
275
|
-
return null;
|
|
276
92
|
},
|
|
93
|
+
// TODO: Replace with libsignal.SessionRecord when type exports are added to libsignal
|
|
277
94
|
storeSession: async (id, session) => {
|
|
278
95
|
await keys.set({ session: { [id]: session.serialize() } });
|
|
279
96
|
},
|
|
@@ -316,7 +133,7 @@ function signalStorage({ creds, keys }, lidMapping) {
|
|
|
316
133
|
const { signedIdentityKey } = creds;
|
|
317
134
|
return {
|
|
318
135
|
privKey: Buffer.from(signedIdentityKey.private),
|
|
319
|
-
pubKey:
|
|
136
|
+
pubKey: generateSignalPubKey(signedIdentityKey.public)
|
|
320
137
|
};
|
|
321
138
|
}
|
|
322
139
|
};
|
|
@@ -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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"}
|