@periskope/baileys 6.7.19 → 7.0.0-alpha-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 +6 -0
- package/WAProto/GenerateStatics.sh +2 -2
- package/WAProto/index.d.ts +2793 -45578
- package/WAProto/index.js +19344 -147065
- package/lib/Defaults/index.d.ts +7 -1
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +11 -4
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/Group/group_cipher.d.ts +0 -1
- package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
- package/lib/Signal/Group/group_cipher.js +28 -36
- package/lib/Signal/Group/group_cipher.js.map +1 -1
- package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-distribution-message.js +1 -1
- package/lib/Signal/Group/sender-key-distribution-message.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 -1
- package/lib/Signal/Group/sender-key-message.js.map +1 -1
- package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-state.js +6 -1
- package/lib/Signal/Group/sender-key-state.js.map +1 -1
- package/lib/Signal/libsignal.d.ts +5 -1
- package/lib/Signal/libsignal.d.ts.map +1 -1
- package/lib/Signal/libsignal.js +211 -38
- package/lib/Signal/libsignal.js.map +1 -1
- package/lib/Signal/lid-mapping.d.ts +14 -3
- package/lib/Signal/lid-mapping.d.ts.map +1 -0
- package/lib/Signal/lid-mapping.js +53 -65
- package/lib/Signal/lid-mapping.js.map +1 -0
- package/lib/Socket/business.d.ts +25 -13
- package/lib/Socket/business.d.ts.map +1 -1
- package/lib/Socket/business.js +122 -1
- package/lib/Socket/business.js.map +1 -1
- package/lib/Socket/chats.d.ts +14 -8
- package/lib/Socket/chats.d.ts.map +1 -1
- package/lib/Socket/chats.js +54 -21
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +24 -10
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/communities.js +45 -1
- package/lib/Socket/communities.js.map +1 -1
- package/lib/Socket/groups.d.ts +13 -8
- package/lib/Socket/groups.d.ts.map +1 -1
- package/lib/Socket/groups.js +12 -11
- package/lib/Socket/groups.js.map +1 -1
- package/lib/Socket/index.d.ts +24 -10
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/messages-recv.d.ts +18 -10
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +383 -220
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts +19 -10
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +454 -62
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +15 -11
- package/lib/Socket/newsletter.d.ts.map +1 -1
- package/lib/Socket/newsletter.js +3 -1
- package/lib/Socket/newsletter.js.map +1 -1
- package/lib/Socket/socket.d.ts +9 -2
- package/lib/Socket/socket.d.ts.map +1 -1
- package/lib/Socket/socket.js +266 -70
- package/lib/Socket/socket.js.map +1 -1
- package/lib/Types/Auth.d.ts +2 -1
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Bussines.d.ts +25 -0
- package/lib/Types/Bussines.d.ts.map +1 -0
- package/lib/Types/Bussines.js +2 -0
- package/lib/Types/Bussines.js.map +1 -0
- package/lib/Types/Chat.d.ts +5 -0
- 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 +6 -4
- package/lib/Types/GroupMetadata.d.ts.map +1 -1
- package/lib/Types/Message.d.ts +28 -7
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Types/Message.js +5 -1
- package/lib/Types/Message.js.map +1 -1
- package/lib/Types/Signal.d.ts +24 -0
- package/lib/Types/Signal.d.ts.map +1 -1
- package/lib/Types/Socket.d.ts +9 -1
- 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 +362 -78
- 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 +20 -3
- package/lib/Utils/chat-utils.js.map +1 -1
- package/lib/Utils/decode-wa-message.d.ts +10 -0
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +84 -13
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.d.ts +0 -1
- package/lib/Utils/event-buffer.d.ts.map +1 -1
- package/lib/Utils/event-buffer.js +48 -4
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/generics.d.ts.map +1 -1
- package/lib/Utils/generics.js +17 -8
- package/lib/Utils/generics.js.map +1 -1
- package/lib/Utils/history.d.ts.map +1 -1
- package/lib/Utils/history.js +1 -2
- package/lib/Utils/history.js.map +1 -1
- package/lib/Utils/index.d.ts +1 -0
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +1 -0
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/message-retry-manager.d.ts +82 -0
- package/lib/Utils/message-retry-manager.d.ts.map +1 -0
- package/lib/Utils/message-retry-manager.js +149 -0
- package/lib/Utils/message-retry-manager.js.map +1 -0
- package/lib/Utils/messages-media.d.ts +3 -2
- package/lib/Utils/messages-media.d.ts.map +1 -1
- package/lib/Utils/messages-media.js +4 -1
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +35 -15
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/process-message.d.ts +3 -2
- package/lib/Utils/process-message.d.ts.map +1 -1
- package/lib/Utils/process-message.js +13 -2
- package/lib/Utils/process-message.js.map +1 -1
- package/lib/Utils/use-multi-file-auth-state.js +1 -1
- package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
- package/lib/Utils/validate-connection.d.ts.map +1 -1
- package/lib/Utils/validate-connection.js +5 -4
- package/lib/Utils/validate-connection.js.map +1 -1
- package/lib/WABinary/jid-utils.d.ts +6 -5
- package/lib/WABinary/jid-utils.d.ts.map +1 -1
- package/lib/WABinary/jid-utils.js +11 -5
- package/lib/WABinary/jid-utils.js.map +1 -1
- package/lib/WAM/encode.d.ts.map +1 -1
- package/lib/WAM/encode.js +0 -1
- package/lib/WAM/encode.js.map +1 -1
- package/package.json +12 -8
package/lib/Signal/libsignal.js
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
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
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
import { LIDMappingStore } from './lid-mapping.js';
|
|
11
|
+
export function makeLibSignalRepository(auth, onWhatsAppFunc) {
|
|
12
|
+
const lidMapping = new LIDMappingStore(auth.keys, onWhatsAppFunc);
|
|
13
|
+
const storage = signalStorage(auth, lidMapping);
|
|
14
|
+
const parsedKeys = auth.keys;
|
|
15
|
+
function isLikelySyncMessage(addr) {
|
|
16
|
+
const key = addr.toString();
|
|
17
|
+
// Only bypass for WhatsApp system addresses, not regular user contacts
|
|
18
|
+
// Be very specific about sync service patterns
|
|
19
|
+
return (key.includes('@lid.whatsapp.net') || // WhatsApp system messages
|
|
20
|
+
key.includes('@broadcast') || // Broadcast messages
|
|
21
|
+
key.includes('@newsletter'));
|
|
22
|
+
}
|
|
23
|
+
// Simple operation-level deduplication (5 minutes)
|
|
24
|
+
const recentMigrations = new LRUCache({
|
|
25
|
+
max: 500,
|
|
26
|
+
ttl: 5 * 60 * 1000
|
|
27
|
+
});
|
|
28
|
+
const repository = {
|
|
11
29
|
decryptGroupMessage({ group, authorJid, msg }) {
|
|
12
30
|
const senderName = jidToSignalSenderKeyName(group, authorJid);
|
|
13
31
|
const cipher = new GroupCipher(storage, senderName);
|
|
14
|
-
|
|
32
|
+
// Use transaction to ensure atomicity
|
|
33
|
+
return parsedKeys.transaction(async () => {
|
|
34
|
+
return cipher.decrypt(msg);
|
|
35
|
+
}, group);
|
|
15
36
|
},
|
|
16
37
|
async processSenderKeyDistributionMessage({ item, authorJid }) {
|
|
17
38
|
const builder = new GroupSessionBuilder(storage);
|
|
@@ -25,70 +46,222 @@ export function makeLibSignalRepository(auth) {
|
|
|
25
46
|
if (!senderKey) {
|
|
26
47
|
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
27
48
|
}
|
|
28
|
-
|
|
49
|
+
return parsedKeys.transaction(async () => {
|
|
50
|
+
const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
|
|
51
|
+
if (!senderKey) {
|
|
52
|
+
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
53
|
+
}
|
|
54
|
+
await builder.process(senderName, senderMsg);
|
|
55
|
+
}, item.groupId);
|
|
29
56
|
},
|
|
30
57
|
async decryptMessage({ jid, type, ciphertext }) {
|
|
31
58
|
const addr = jidToSignalProtocolAddress(jid);
|
|
32
59
|
const session = new libsignal.SessionCipher(storage, addr);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
async function doDecrypt() {
|
|
61
|
+
let result;
|
|
62
|
+
switch (type) {
|
|
63
|
+
case 'pkmsg':
|
|
64
|
+
result = await session.decryptPreKeyWhisperMessage(ciphertext);
|
|
65
|
+
break;
|
|
66
|
+
case 'msg':
|
|
67
|
+
result = await session.decryptWhisperMessage(ciphertext);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
43
71
|
}
|
|
44
|
-
|
|
72
|
+
if (isLikelySyncMessage(addr)) {
|
|
73
|
+
// If it's a sync message, we can skip the transaction
|
|
74
|
+
// as it is likely to be a system message that doesn't require strict atomicity
|
|
75
|
+
return await doDecrypt();
|
|
76
|
+
}
|
|
77
|
+
// If it's not a sync message, we need to ensure atomicity
|
|
78
|
+
// For regular messages, we use a transaction to ensure atomicity
|
|
79
|
+
return parsedKeys.transaction(async () => {
|
|
80
|
+
return await doDecrypt();
|
|
81
|
+
}, jid);
|
|
45
82
|
},
|
|
46
83
|
async encryptMessage({ jid, data }) {
|
|
47
|
-
|
|
84
|
+
// LID SINGLE SOURCE OF TRUTH: Always prefer LID when available
|
|
85
|
+
let encryptionJid = jid;
|
|
86
|
+
// Check for LID mapping and use it if session exists
|
|
87
|
+
if (jid.includes('@s.whatsapp.net')) {
|
|
88
|
+
const lidForPN = await lidMapping.getLIDForPN(jid);
|
|
89
|
+
if (lidForPN?.includes('@lid')) {
|
|
90
|
+
const lidAddr = jidToSignalProtocolAddress(lidForPN);
|
|
91
|
+
const { [lidAddr.toString()]: lidSession } = await auth.keys.get('session', [lidAddr.toString()]);
|
|
92
|
+
if (lidSession) {
|
|
93
|
+
// LID session exists, use it
|
|
94
|
+
encryptionJid = lidForPN;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Try to migrate if PN session exists
|
|
98
|
+
const pnAddr = jidToSignalProtocolAddress(jid);
|
|
99
|
+
const { [pnAddr.toString()]: pnSession } = await auth.keys.get('session', [pnAddr.toString()]);
|
|
100
|
+
if (pnSession) {
|
|
101
|
+
// Migrate PN to LID
|
|
102
|
+
await repository.migrateSession(jid, lidForPN);
|
|
103
|
+
encryptionJid = lidForPN;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const addr = jidToSignalProtocolAddress(encryptionJid);
|
|
48
109
|
const cipher = new libsignal.SessionCipher(storage, addr);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
110
|
+
// Use transaction to ensure atomicity
|
|
111
|
+
return parsedKeys.transaction(async () => {
|
|
112
|
+
const { type: sigType, body } = await cipher.encrypt(data);
|
|
113
|
+
const type = sigType === 3 ? 'pkmsg' : 'msg';
|
|
114
|
+
return { type, ciphertext: Buffer.from(body, 'binary') };
|
|
115
|
+
}, jid);
|
|
52
116
|
},
|
|
53
117
|
async encryptGroupMessage({ group, meId, data }) {
|
|
54
118
|
const senderName = jidToSignalSenderKeyName(group, meId);
|
|
55
119
|
const builder = new GroupSessionBuilder(storage);
|
|
56
120
|
const senderNameStr = senderName.toString();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
121
|
+
return parsedKeys.transaction(async () => {
|
|
122
|
+
const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
|
|
123
|
+
if (!senderKey) {
|
|
124
|
+
await storage.storeSenderKey(senderName, new SenderKeyRecord());
|
|
125
|
+
}
|
|
126
|
+
const senderKeyDistributionMessage = await builder.create(senderName);
|
|
127
|
+
const session = new GroupCipher(storage, senderName);
|
|
128
|
+
const ciphertext = await session.encrypt(data);
|
|
129
|
+
return {
|
|
130
|
+
ciphertext,
|
|
131
|
+
senderKeyDistributionMessage: senderKeyDistributionMessage.serialize()
|
|
132
|
+
};
|
|
133
|
+
}, group);
|
|
68
134
|
},
|
|
69
135
|
async injectE2ESession({ jid, session }) {
|
|
70
136
|
const cipher = new libsignal.SessionBuilder(storage, jidToSignalProtocolAddress(jid));
|
|
71
|
-
|
|
137
|
+
return parsedKeys.transaction(async () => {
|
|
138
|
+
await cipher.initOutgoing(session);
|
|
139
|
+
}, jid);
|
|
72
140
|
},
|
|
73
141
|
jidToSignalProtocolAddress(jid) {
|
|
74
142
|
return jidToSignalProtocolAddress(jid).toString();
|
|
143
|
+
},
|
|
144
|
+
async storeLIDPNMapping(lid, pn) {
|
|
145
|
+
await lidMapping.storeLIDPNMapping(lid, pn);
|
|
146
|
+
},
|
|
147
|
+
getLIDMappingStore() {
|
|
148
|
+
return lidMapping;
|
|
149
|
+
},
|
|
150
|
+
async validateSession(jid) {
|
|
151
|
+
try {
|
|
152
|
+
const addr = jidToSignalProtocolAddress(jid);
|
|
153
|
+
const session = await storage.loadSession(addr.toString());
|
|
154
|
+
if (!session) {
|
|
155
|
+
return { exists: false, reason: 'no session' };
|
|
156
|
+
}
|
|
157
|
+
if (!session.haveOpenSession()) {
|
|
158
|
+
return { exists: false, reason: 'no open session' };
|
|
159
|
+
}
|
|
160
|
+
return { exists: true };
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
return { exists: false, reason: 'validation error' };
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
async deleteSession(jid) {
|
|
167
|
+
const addr = jidToSignalProtocolAddress(jid);
|
|
168
|
+
return parsedKeys.transaction(async () => {
|
|
169
|
+
await auth.keys.set({ session: { [addr.toString()]: null } });
|
|
170
|
+
}, jid);
|
|
171
|
+
},
|
|
172
|
+
async migrateSession(fromJid, toJid) {
|
|
173
|
+
// Only migrate PN → LID
|
|
174
|
+
if (!fromJid.includes('@s.whatsapp.net') || !toJid.includes('@lid')) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const fromDecoded = jidDecode(fromJid);
|
|
178
|
+
const toDecoded = jidDecode(toJid);
|
|
179
|
+
if (!fromDecoded || !toDecoded)
|
|
180
|
+
return;
|
|
181
|
+
const deviceId = fromDecoded.device || 0;
|
|
182
|
+
const migrationKey = `${fromDecoded.user}.${deviceId}→${toDecoded.user}.${deviceId}`;
|
|
183
|
+
// Check if recently migrated (5 min window)
|
|
184
|
+
if (recentMigrations.has(migrationKey)) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
// Check if LID session already exists
|
|
188
|
+
const lidAddr = jidToSignalProtocolAddress(toJid);
|
|
189
|
+
const { [lidAddr.toString()]: lidExists } = await auth.keys.get('session', [lidAddr.toString()]);
|
|
190
|
+
if (lidExists) {
|
|
191
|
+
recentMigrations.set(migrationKey, true);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
return parsedKeys.transaction(async () => {
|
|
195
|
+
// Store mapping
|
|
196
|
+
await lidMapping.storeLIDPNMapping(toJid, fromJid);
|
|
197
|
+
// Load and copy session
|
|
198
|
+
const fromAddr = jidToSignalProtocolAddress(fromJid);
|
|
199
|
+
const fromSession = await storage.loadSession(fromAddr.toString());
|
|
200
|
+
if (fromSession?.haveOpenSession()) {
|
|
201
|
+
// Deep copy session to prevent reference issues
|
|
202
|
+
const sessionBytes = fromSession.serialize();
|
|
203
|
+
const copiedSession = libsignal.SessionRecord.deserialize(sessionBytes);
|
|
204
|
+
// Store at LID address
|
|
205
|
+
await storage.storeSession(lidAddr.toString(), copiedSession);
|
|
206
|
+
// Delete PN session - maintain single encryption layer
|
|
207
|
+
await auth.keys.set({ session: { [fromAddr.toString()]: null } });
|
|
208
|
+
}
|
|
209
|
+
recentMigrations.set(migrationKey, true);
|
|
210
|
+
}, fromJid);
|
|
211
|
+
},
|
|
212
|
+
async encryptMessageWithWire({ encryptionJid, wireJid, data }) {
|
|
213
|
+
const result = await repository.encryptMessage({ jid: encryptionJid, data });
|
|
214
|
+
return { ...result, wireJid };
|
|
215
|
+
},
|
|
216
|
+
destroy() {
|
|
217
|
+
recentMigrations.clear();
|
|
75
218
|
}
|
|
76
219
|
};
|
|
220
|
+
return repository;
|
|
77
221
|
}
|
|
78
222
|
const jidToSignalProtocolAddress = (jid) => {
|
|
79
|
-
const
|
|
80
|
-
|
|
223
|
+
const decoded = jidDecode(jid);
|
|
224
|
+
const { user, device, server } = decoded;
|
|
225
|
+
// LID addresses get _1 suffix for Signal protocol
|
|
226
|
+
const signalUser = server === 'lid' ? `${user}_1` : user;
|
|
227
|
+
const finalDevice = device || 0;
|
|
228
|
+
return new libsignal.ProtocolAddress(signalUser, finalDevice);
|
|
81
229
|
};
|
|
82
230
|
const jidToSignalSenderKeyName = (group, user) => {
|
|
83
231
|
return new SenderKeyName(group, jidToSignalProtocolAddress(user));
|
|
84
232
|
};
|
|
85
|
-
function signalStorage({ creds, keys }) {
|
|
233
|
+
function signalStorage({ creds, keys }, lidMapping) {
|
|
86
234
|
return {
|
|
87
235
|
loadSession: async (id) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
236
|
+
try {
|
|
237
|
+
// LID SINGLE SOURCE OF TRUTH: Auto-redirect PN to LID if mapping exists
|
|
238
|
+
let actualId = id;
|
|
239
|
+
if (id.includes('.') && !id.includes('_1')) {
|
|
240
|
+
// This is a PN signal address format (e.g., "1234567890.0")
|
|
241
|
+
// Convert back to JID to check for LID mapping
|
|
242
|
+
const parts = id.split('.');
|
|
243
|
+
const device = parts[1] || '0';
|
|
244
|
+
const pnJid = device === '0' ? `${parts[0]}@s.whatsapp.net` : `${parts[0]}:${device}@s.whatsapp.net`;
|
|
245
|
+
const lidForPN = await lidMapping.getLIDForPN(pnJid);
|
|
246
|
+
if (lidForPN?.includes('@lid')) {
|
|
247
|
+
const lidAddr = jidToSignalProtocolAddress(lidForPN);
|
|
248
|
+
const lidId = lidAddr.toString();
|
|
249
|
+
// Check if LID session exists
|
|
250
|
+
const { [lidId]: lidSession } = await keys.get('session', [lidId]);
|
|
251
|
+
if (lidSession) {
|
|
252
|
+
actualId = lidId;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const { [actualId]: sess } = await keys.get('session', [actualId]);
|
|
257
|
+
if (sess) {
|
|
258
|
+
return libsignal.SessionRecord.deserialize(sess);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (e) {
|
|
262
|
+
return null;
|
|
91
263
|
}
|
|
264
|
+
return null;
|
|
92
265
|
},
|
|
93
266
|
// TODO: Replace with libsignal.SessionRecord when type exports are added to libsignal
|
|
94
267
|
storeSession: async (id, session) => {
|
|
@@ -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,13 +1,23 @@
|
|
|
1
1
|
import type { SignalKeyStoreWithTransaction } from '../Types/index.js';
|
|
2
2
|
export declare class LIDMappingStore {
|
|
3
3
|
private readonly keys;
|
|
4
|
-
private
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
private onWhatsAppFunc?;
|
|
5
|
+
constructor(keys: SignalKeyStoreWithTransaction, onWhatsAppFunc?: (...jids: string[]) => Promise<{
|
|
6
|
+
jid: string;
|
|
7
|
+
exists: boolean;
|
|
8
|
+
lid: string;
|
|
9
|
+
}[] | undefined>);
|
|
7
10
|
/**
|
|
8
11
|
* Store LID-PN mapping - USER LEVEL
|
|
9
12
|
*/
|
|
10
13
|
storeLIDPNMapping(lid: string, pn: string): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Store LID-PN mapping - USER LEVEL
|
|
16
|
+
*/
|
|
17
|
+
storeLIDPNMappings(pairs: {
|
|
18
|
+
lid: string;
|
|
19
|
+
pn: string;
|
|
20
|
+
}[]): Promise<void>;
|
|
11
21
|
/**
|
|
12
22
|
* Get LID for PN - Returns device-specific LID based on user mapping
|
|
13
23
|
*/
|
|
@@ -17,3 +27,4 @@ export declare class LIDMappingStore {
|
|
|
17
27
|
*/
|
|
18
28
|
getPNForLID(lid: string): Promise<string | null>;
|
|
19
29
|
}
|
|
30
|
+
//# sourceMappingURL=lid-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAK7D,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,cAAc,CAAC,CAOtB;gBAGA,IAAI,EAAE,6BAA6B,EACnC,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAC5C;QACA,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,OAAO,CAAA;QACf,GAAG,EAAE,MAAM,CAAA;KACV,EAAE,GACH,SAAS,CACX;IAMF;;OAEG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7E;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+BrD;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAwBtD"}
|
|
@@ -1,51 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.LIDMappingStore = void 0;
|
|
7
|
-
const logger_1 = __importDefault(require("../Utils/logger.js"));
|
|
8
|
-
const WABinary_1 = require("../WABinary/index.js");
|
|
9
|
-
class LIDMappingStore {
|
|
10
|
-
constructor(keys, getLIDFromPN, getPNFromLID) {
|
|
1
|
+
import logger from '../Utils/logger.js';
|
|
2
|
+
import { isLidUser, isPnUser, jidDecode } from '../WABinary/index.js';
|
|
3
|
+
//TODO: Caching
|
|
4
|
+
export class LIDMappingStore {
|
|
5
|
+
constructor(keys, onWhatsAppFunc) {
|
|
11
6
|
this.keys = keys;
|
|
12
|
-
this.
|
|
13
|
-
this.getPNFromLID = getPNFromLID;
|
|
7
|
+
this.onWhatsAppFunc = onWhatsAppFunc; // needed to get LID from PN if not found
|
|
14
8
|
}
|
|
15
9
|
/**
|
|
16
10
|
* Store LID-PN mapping - USER LEVEL
|
|
17
11
|
*/
|
|
18
12
|
async storeLIDPNMapping(lid, pn) {
|
|
13
|
+
return this.storeLIDPNMappings([{ lid, pn }]);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Store LID-PN mapping - USER LEVEL
|
|
17
|
+
*/
|
|
18
|
+
async storeLIDPNMappings(pairs) {
|
|
19
19
|
// Validate inputs
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const pairMap = {};
|
|
21
|
+
for (const { lid, pn } of pairs) {
|
|
22
|
+
if (!((isLidUser(lid) && isPnUser(pn)) || (isPnUser(lid) && isLidUser(pn)))) {
|
|
23
|
+
logger.warn(`Invalid LID-PN mapping: ${lid}, ${pn}`);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const [lidJid, pnJid] = isLidUser(lid) ? [lid, pn] : [pn, lid];
|
|
27
|
+
const lidDecoded = jidDecode(lidJid);
|
|
28
|
+
const pnDecoded = jidDecode(pnJid);
|
|
29
|
+
if (!lidDecoded || !pnDecoded)
|
|
30
|
+
return;
|
|
31
|
+
const pnUser = pnDecoded.user;
|
|
32
|
+
const lidUser = lidDecoded.user;
|
|
33
|
+
pairMap[pnUser] = lidUser;
|
|
23
34
|
}
|
|
24
|
-
|
|
25
|
-
const lidDecoded = (0, WABinary_1.jidDecode)(lidJid);
|
|
26
|
-
const pnDecoded = (0, WABinary_1.jidDecode)(pnJid);
|
|
27
|
-
if (!lidDecoded || !pnDecoded)
|
|
28
|
-
return;
|
|
29
|
-
const pnUser = pnDecoded.user;
|
|
30
|
-
const lidUser = lidDecoded.user;
|
|
31
|
-
logger_1.default.trace(`Storing USER LID mapping: PN ${pnUser} → LID ${lidUser}`);
|
|
35
|
+
logger.trace({ pairMap }, `Storing ${Object.keys(pairMap).length} pn mappings`);
|
|
32
36
|
await this.keys.transaction(async () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
for (const [pnUser, lidUser] of Object.entries(pairMap)) {
|
|
38
|
+
await this.keys.set({
|
|
39
|
+
'lid-mapping': {
|
|
40
|
+
[pnUser]: lidUser, // "554396160286" -> "102765716062358"
|
|
41
|
+
[`${lidUser}_reverse`]: pnUser // "102765716062358_reverse" -> "554396160286"
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}, 'lid-mapping');
|
|
41
46
|
}
|
|
42
47
|
/**
|
|
43
48
|
* Get LID for PN - Returns device-specific LID based on user mapping
|
|
44
49
|
*/
|
|
45
50
|
async getLIDForPN(pn) {
|
|
46
|
-
if (!(
|
|
51
|
+
if (!isPnUser(pn))
|
|
47
52
|
return null;
|
|
48
|
-
const decoded =
|
|
53
|
+
const decoded = jidDecode(pn);
|
|
49
54
|
if (!decoded)
|
|
50
55
|
return null;
|
|
51
56
|
// Look up user-level mapping (whatsmeow approach)
|
|
@@ -53,63 +58,46 @@ class LIDMappingStore {
|
|
|
53
58
|
const stored = await this.keys.get('lid-mapping', [pnUser]);
|
|
54
59
|
let lidUser = stored[pnUser];
|
|
55
60
|
if (!lidUser) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
}
|
|
61
|
+
logger.trace(`No LID mapping found for PN user ${pnUser}; getting from USync`);
|
|
62
|
+
const { exists, lid } = (await this.onWhatsAppFunc?.(pn))?.[0]; // this function already adds LIDs to mapping
|
|
63
|
+
if (exists) {
|
|
64
|
+
lidUser = jidDecode(lid)?.user;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return null;
|
|
65
68
|
}
|
|
66
|
-
}
|
|
67
|
-
if (!lidUser) {
|
|
68
|
-
logger_1.default.trace(`No LID mapping found for PN user ${pnUser}`);
|
|
69
|
-
return null;
|
|
70
69
|
}
|
|
71
70
|
if (typeof lidUser !== 'string')
|
|
72
71
|
return null;
|
|
73
72
|
// Push the PN device ID to the LID to maintain device separation
|
|
74
73
|
const pnDevice = decoded.device !== undefined ? decoded.device : 0;
|
|
75
74
|
const deviceSpecificLid = `${lidUser}:${pnDevice}@lid`;
|
|
76
|
-
|
|
75
|
+
logger.trace(`getLIDForPN: ${pn} → ${deviceSpecificLid} (user mapping with device ${pnDevice})`);
|
|
77
76
|
return deviceSpecificLid;
|
|
78
77
|
}
|
|
79
78
|
/**
|
|
80
79
|
* Get PN for LID - USER LEVEL with device construction
|
|
81
80
|
*/
|
|
82
81
|
async getPNForLID(lid) {
|
|
83
|
-
if (!
|
|
82
|
+
if (!isLidUser(lid))
|
|
84
83
|
return null;
|
|
85
|
-
const decoded =
|
|
84
|
+
const decoded = jidDecode(lid);
|
|
86
85
|
if (!decoded)
|
|
87
86
|
return null;
|
|
88
87
|
// Look up reverse user mapping
|
|
89
88
|
const lidUser = decoded.user;
|
|
89
|
+
// TODO: remove this style and instead load all mappings somehow, and then assign them in the map
|
|
90
90
|
const stored = await this.keys.get('lid-mapping', [`${lidUser}_reverse`]);
|
|
91
|
-
|
|
92
|
-
if (!pnUser) {
|
|
93
|
-
if (this.getPNFromLID) {
|
|
94
|
-
const pn = await this.getPNFromLID(`${lidUser}@lid`);
|
|
95
|
-
if (pn) {
|
|
96
|
-
const decodedJid = (0, WABinary_1.jidDecode)(pn);
|
|
97
|
-
if (decodedJid) {
|
|
98
|
-
pnUser = decodedJid.user;
|
|
99
|
-
await this.storeLIDPNMapping(`${lidUser}@lid`, `${pnUser}@s.whatsapp.net`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
91
|
+
const pnUser = stored[`${lidUser}_reverse`];
|
|
104
92
|
if (!pnUser || typeof pnUser !== 'string') {
|
|
105
|
-
|
|
93
|
+
logger.trace(`No reverse mapping found for LID user: ${lidUser}`);
|
|
106
94
|
return null;
|
|
107
95
|
}
|
|
108
96
|
// Construct device-specific PN JID
|
|
109
97
|
const lidDevice = decoded.device !== undefined ? decoded.device : 0;
|
|
110
98
|
const pnJid = `${pnUser}:${lidDevice}@s.whatsapp.net`;
|
|
111
|
-
|
|
99
|
+
logger.trace(`Found reverse mapping: ${lid} → ${pnJid}`);
|
|
112
100
|
return pnJid;
|
|
113
101
|
}
|
|
114
102
|
}
|
|
115
|
-
|
|
103
|
+
//# sourceMappingURL=lid-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lid-mapping.js","sourceRoot":"","sources":["../../src/Signal/lid-mapping.ts"],"names":[],"mappings":"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"}
|