@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.
Files changed (139) hide show
  1. package/README.md +6 -0
  2. package/WAProto/GenerateStatics.sh +2 -2
  3. package/WAProto/index.d.ts +2793 -45578
  4. package/WAProto/index.js +19344 -147065
  5. package/lib/Defaults/index.d.ts +7 -1
  6. package/lib/Defaults/index.d.ts.map +1 -1
  7. package/lib/Defaults/index.js +11 -4
  8. package/lib/Defaults/index.js.map +1 -1
  9. package/lib/Signal/Group/group_cipher.d.ts +0 -1
  10. package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
  11. package/lib/Signal/Group/group_cipher.js +28 -36
  12. package/lib/Signal/Group/group_cipher.js.map +1 -1
  13. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -1
  14. package/lib/Signal/Group/sender-key-distribution-message.js +1 -1
  15. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -1
  16. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -1
  17. package/lib/Signal/Group/sender-key-message.js +1 -1
  18. package/lib/Signal/Group/sender-key-message.js.map +1 -1
  19. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
  20. package/lib/Signal/Group/sender-key-state.js +6 -1
  21. package/lib/Signal/Group/sender-key-state.js.map +1 -1
  22. package/lib/Signal/libsignal.d.ts +5 -1
  23. package/lib/Signal/libsignal.d.ts.map +1 -1
  24. package/lib/Signal/libsignal.js +211 -38
  25. package/lib/Signal/libsignal.js.map +1 -1
  26. package/lib/Signal/lid-mapping.d.ts +14 -3
  27. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  28. package/lib/Signal/lid-mapping.js +53 -65
  29. package/lib/Signal/lid-mapping.js.map +1 -0
  30. package/lib/Socket/business.d.ts +25 -13
  31. package/lib/Socket/business.d.ts.map +1 -1
  32. package/lib/Socket/business.js +122 -1
  33. package/lib/Socket/business.js.map +1 -1
  34. package/lib/Socket/chats.d.ts +14 -8
  35. package/lib/Socket/chats.d.ts.map +1 -1
  36. package/lib/Socket/chats.js +54 -21
  37. package/lib/Socket/chats.js.map +1 -1
  38. package/lib/Socket/communities.d.ts +24 -10
  39. package/lib/Socket/communities.d.ts.map +1 -1
  40. package/lib/Socket/communities.js +45 -1
  41. package/lib/Socket/communities.js.map +1 -1
  42. package/lib/Socket/groups.d.ts +13 -8
  43. package/lib/Socket/groups.d.ts.map +1 -1
  44. package/lib/Socket/groups.js +12 -11
  45. package/lib/Socket/groups.js.map +1 -1
  46. package/lib/Socket/index.d.ts +24 -10
  47. package/lib/Socket/index.d.ts.map +1 -1
  48. package/lib/Socket/messages-recv.d.ts +18 -10
  49. package/lib/Socket/messages-recv.d.ts.map +1 -1
  50. package/lib/Socket/messages-recv.js +383 -220
  51. package/lib/Socket/messages-recv.js.map +1 -1
  52. package/lib/Socket/messages-send.d.ts +19 -10
  53. package/lib/Socket/messages-send.d.ts.map +1 -1
  54. package/lib/Socket/messages-send.js +454 -62
  55. package/lib/Socket/messages-send.js.map +1 -1
  56. package/lib/Socket/newsletter.d.ts +15 -11
  57. package/lib/Socket/newsletter.d.ts.map +1 -1
  58. package/lib/Socket/newsletter.js +3 -1
  59. package/lib/Socket/newsletter.js.map +1 -1
  60. package/lib/Socket/socket.d.ts +9 -2
  61. package/lib/Socket/socket.d.ts.map +1 -1
  62. package/lib/Socket/socket.js +266 -70
  63. package/lib/Socket/socket.js.map +1 -1
  64. package/lib/Types/Auth.d.ts +2 -1
  65. package/lib/Types/Auth.d.ts.map +1 -1
  66. package/lib/Types/Bussines.d.ts +25 -0
  67. package/lib/Types/Bussines.d.ts.map +1 -0
  68. package/lib/Types/Bussines.js +2 -0
  69. package/lib/Types/Bussines.js.map +1 -0
  70. package/lib/Types/Chat.d.ts +5 -0
  71. package/lib/Types/Chat.d.ts.map +1 -1
  72. package/lib/Types/Chat.js.map +1 -1
  73. package/lib/Types/Contact.d.ts +4 -4
  74. package/lib/Types/Contact.d.ts.map +1 -1
  75. package/lib/Types/Events.d.ts +2 -2
  76. package/lib/Types/Events.d.ts.map +1 -1
  77. package/lib/Types/GroupMetadata.d.ts +6 -4
  78. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  79. package/lib/Types/Message.d.ts +28 -7
  80. package/lib/Types/Message.d.ts.map +1 -1
  81. package/lib/Types/Message.js +5 -1
  82. package/lib/Types/Message.js.map +1 -1
  83. package/lib/Types/Signal.d.ts +24 -0
  84. package/lib/Types/Signal.d.ts.map +1 -1
  85. package/lib/Types/Socket.d.ts +9 -1
  86. package/lib/Types/Socket.d.ts.map +1 -1
  87. package/lib/Utils/auth-utils.d.ts.map +1 -1
  88. package/lib/Utils/auth-utils.js +362 -78
  89. package/lib/Utils/auth-utils.js.map +1 -1
  90. package/lib/Utils/chat-utils.d.ts +2 -2
  91. package/lib/Utils/chat-utils.d.ts.map +1 -1
  92. package/lib/Utils/chat-utils.js +20 -3
  93. package/lib/Utils/chat-utils.js.map +1 -1
  94. package/lib/Utils/decode-wa-message.d.ts +10 -0
  95. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  96. package/lib/Utils/decode-wa-message.js +84 -13
  97. package/lib/Utils/decode-wa-message.js.map +1 -1
  98. package/lib/Utils/event-buffer.d.ts +0 -1
  99. package/lib/Utils/event-buffer.d.ts.map +1 -1
  100. package/lib/Utils/event-buffer.js +48 -4
  101. package/lib/Utils/event-buffer.js.map +1 -1
  102. package/lib/Utils/generics.d.ts.map +1 -1
  103. package/lib/Utils/generics.js +17 -8
  104. package/lib/Utils/generics.js.map +1 -1
  105. package/lib/Utils/history.d.ts.map +1 -1
  106. package/lib/Utils/history.js +1 -2
  107. package/lib/Utils/history.js.map +1 -1
  108. package/lib/Utils/index.d.ts +1 -0
  109. package/lib/Utils/index.d.ts.map +1 -1
  110. package/lib/Utils/index.js +1 -0
  111. package/lib/Utils/index.js.map +1 -1
  112. package/lib/Utils/message-retry-manager.d.ts +82 -0
  113. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  114. package/lib/Utils/message-retry-manager.js +149 -0
  115. package/lib/Utils/message-retry-manager.js.map +1 -0
  116. package/lib/Utils/messages-media.d.ts +3 -2
  117. package/lib/Utils/messages-media.d.ts.map +1 -1
  118. package/lib/Utils/messages-media.js +4 -1
  119. package/lib/Utils/messages-media.js.map +1 -1
  120. package/lib/Utils/messages.d.ts.map +1 -1
  121. package/lib/Utils/messages.js +35 -15
  122. package/lib/Utils/messages.js.map +1 -1
  123. package/lib/Utils/process-message.d.ts +3 -2
  124. package/lib/Utils/process-message.d.ts.map +1 -1
  125. package/lib/Utils/process-message.js +13 -2
  126. package/lib/Utils/process-message.js.map +1 -1
  127. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  128. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  129. package/lib/Utils/validate-connection.d.ts.map +1 -1
  130. package/lib/Utils/validate-connection.js +5 -4
  131. package/lib/Utils/validate-connection.js.map +1 -1
  132. package/lib/WABinary/jid-utils.d.ts +6 -5
  133. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  134. package/lib/WABinary/jid-utils.js +11 -5
  135. package/lib/WABinary/jid-utils.js.map +1 -1
  136. package/lib/WAM/encode.d.ts.map +1 -1
  137. package/lib/WAM/encode.js +0 -1
  138. package/lib/WAM/encode.js.map +1 -1
  139. package/package.json +12 -8
@@ -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
- export function makeLibSignalRepository(auth) {
9
- const storage = signalStorage(auth);
10
- return {
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
- return cipher.decrypt(msg);
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
- await builder.process(senderName, senderMsg);
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
- 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}`);
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
- return result;
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
- const addr = jidToSignalProtocolAddress(jid);
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
- const { type: sigType, body } = await cipher.encrypt(data);
50
- const type = sigType === 3 ? 'pkmsg' : 'msg';
51
- return { type, ciphertext: Buffer.from(body, 'binary') };
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
- 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
- };
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
- await cipher.initOutgoing(session);
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 { user, device } = jidDecode(jid);
80
- return new libsignal.ProtocolAddress(user, device || 0);
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
- const { [id]: sess } = await keys.get('session', [id]);
89
- if (sess) {
90
- return libsignal.SessionRecord.deserialize(sess);
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 getLIDFromPN?;
5
- private getPNFromLID?;
6
- constructor(keys: SignalKeyStoreWithTransaction, getLIDFromPN?: (pn: string) => Promise<string | null>, getPNFromLID?: (lid: string) => Promise<string | null>);
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
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
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.getLIDFromPN = getLIDFromPN;
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
- if (!(((0, WABinary_1.isLidUser)(lid) && (0, WABinary_1.isJidUser)(pn)) || ((0, WABinary_1.isJidUser)(lid) && (0, WABinary_1.isLidUser)(pn)))) {
21
- logger_1.default.warn(`Invalid LID-PN mapping: ${lid}, ${pn}`);
22
- return;
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
- const [lidJid, pnJid] = (0, WABinary_1.isLidUser)(lid) ? [lid, pn] : [pn, lid];
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
- await this.keys.set({
34
- 'lid-mapping': {
35
- [pnUser]: lidUser, // "554396160286" -> "102765716062358"
36
- [`${lidUser}_reverse`]: pnUser // "102765716062358_reverse" -> "554396160286"
37
- }
38
- });
39
- }, pnJid);
40
- logger_1.default.trace(`USER LID mapping stored: PN ${pnUser} → LID ${lidUser}`);
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 (!(0, WABinary_1.isJidUser)(pn))
51
+ if (!isPnUser(pn))
47
52
  return null;
48
- const decoded = (0, WABinary_1.jidDecode)(pn);
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
- if (this.getLIDFromPN) {
57
- const lid = await this.getLIDFromPN(`${pnUser}@s.whatsapp.net`);
58
- if (lid) {
59
- const decodedLid = (0, WABinary_1.jidDecode)(lid);
60
- if (decodedLid) {
61
- lidUser = decodedLid.user;
62
- await this.storeLIDPNMapping(`${lidUser}@lid`, `${pnUser}@s.whatsapp.net`);
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
- logger_1.default.trace(`getLIDForPN: ${pn} → ${deviceSpecificLid} (user mapping with device ${pnDevice})`);
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 (!(0, WABinary_1.isLidUser)(lid))
82
+ if (!isLidUser(lid))
84
83
  return null;
85
- const decoded = (0, WABinary_1.jidDecode)(lid);
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
- let pnUser = stored[`${lidUser}_reverse`];
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
- logger_1.default.trace(`No reverse mapping found for LID user: ${lidUser}`);
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
- logger_1.default.trace(`Found reverse mapping: ${lid} → ${pnJid}`);
99
+ logger.trace(`Found reverse mapping: ${lid} → ${pnJid}`);
112
100
  return pnJid;
113
101
  }
114
102
  }
115
- exports.LIDMappingStore = LIDMappingStore;
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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"}