@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.
Files changed (146) hide show
  1. package/README.md +0 -6
  2. package/lib/Defaults/index.d.ts +1 -7
  3. package/lib/Defaults/index.d.ts.map +1 -1
  4. package/lib/Defaults/index.js +4 -11
  5. package/lib/Defaults/index.js.map +1 -1
  6. package/lib/Signal/Group/group_cipher.d.ts +1 -0
  7. package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
  8. package/lib/Signal/Group/group_cipher.js +37 -28
  9. package/lib/Signal/Group/group_cipher.js.map +1 -1
  10. package/lib/Signal/Group/keyhelper.d.ts.map +1 -1
  11. package/lib/Signal/Group/keyhelper.js +1 -0
  12. package/lib/Signal/Group/keyhelper.js.map +1 -1
  13. package/lib/Signal/Group/sender-chain-key.d.ts +1 -1
  14. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -1
  15. package/lib/Signal/Group/sender-chain-key.js +3 -9
  16. package/lib/Signal/Group/sender-chain-key.js.map +1 -1
  17. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -1
  18. package/lib/Signal/Group/sender-key-message.js +1 -0
  19. package/lib/Signal/Group/sender-key-message.js.map +1 -1
  20. package/lib/Signal/Group/sender-key-state.d.ts +4 -4
  21. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
  22. package/lib/Signal/Group/sender-key-state.js +19 -47
  23. package/lib/Signal/Group/sender-key-state.js.map +1 -1
  24. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -1
  25. package/lib/Signal/Group/sender-message-key.js +1 -0
  26. package/lib/Signal/Group/sender-message-key.js.map +1 -1
  27. package/lib/Signal/libsignal.d.ts +2 -6
  28. package/lib/Signal/libsignal.d.ts.map +1 -1
  29. package/lib/Signal/libsignal.js +41 -224
  30. package/lib/Signal/libsignal.js.map +1 -1
  31. package/lib/Signal/lid-mapping.d.ts +2 -11
  32. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  33. package/lib/Signal/lid-mapping.js +34 -91
  34. package/lib/Signal/lid-mapping.js.map +1 -1
  35. package/lib/Socket/business.d.ts +14 -26
  36. package/lib/Socket/business.d.ts.map +1 -1
  37. package/lib/Socket/business.js +1 -122
  38. package/lib/Socket/business.js.map +1 -1
  39. package/lib/Socket/chats.d.ts +9 -15
  40. package/lib/Socket/chats.d.ts.map +1 -1
  41. package/lib/Socket/chats.js +20 -53
  42. package/lib/Socket/chats.js.map +1 -1
  43. package/lib/Socket/communities.d.ts +11 -25
  44. package/lib/Socket/communities.d.ts.map +1 -1
  45. package/lib/Socket/communities.js +0 -44
  46. package/lib/Socket/communities.js.map +1 -1
  47. package/lib/Socket/groups.d.ts +9 -14
  48. package/lib/Socket/groups.d.ts.map +1 -1
  49. package/lib/Socket/groups.js +10 -12
  50. package/lib/Socket/groups.js.map +1 -1
  51. package/lib/Socket/index.d.ts +11 -25
  52. package/lib/Socket/index.d.ts.map +1 -1
  53. package/lib/Socket/messages-recv.d.ts +11 -19
  54. package/lib/Socket/messages-recv.d.ts.map +1 -1
  55. package/lib/Socket/messages-recv.js +230 -396
  56. package/lib/Socket/messages-recv.js.map +1 -1
  57. package/lib/Socket/messages-send.d.ts +11 -20
  58. package/lib/Socket/messages-send.d.ts.map +1 -1
  59. package/lib/Socket/messages-send.js +71 -443
  60. package/lib/Socket/messages-send.js.map +1 -1
  61. package/lib/Socket/newsletter.d.ts +12 -16
  62. package/lib/Socket/newsletter.d.ts.map +1 -1
  63. package/lib/Socket/newsletter.js +1 -3
  64. package/lib/Socket/newsletter.js.map +1 -1
  65. package/lib/Socket/socket.d.ts +3 -10
  66. package/lib/Socket/socket.d.ts.map +1 -1
  67. package/lib/Socket/socket.js +69 -264
  68. package/lib/Socket/socket.js.map +1 -1
  69. package/lib/Types/Auth.d.ts +1 -2
  70. package/lib/Types/Auth.d.ts.map +1 -1
  71. package/lib/Types/Chat.d.ts +0 -5
  72. package/lib/Types/Chat.d.ts.map +1 -1
  73. package/lib/Types/Chat.js.map +1 -1
  74. package/lib/Types/Contact.d.ts +4 -4
  75. package/lib/Types/Contact.d.ts.map +1 -1
  76. package/lib/Types/Events.d.ts +2 -2
  77. package/lib/Types/Events.d.ts.map +1 -1
  78. package/lib/Types/GroupMetadata.d.ts +4 -6
  79. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  80. package/lib/Types/Message.d.ts +7 -28
  81. package/lib/Types/Message.d.ts.map +1 -1
  82. package/lib/Types/Message.js +1 -5
  83. package/lib/Types/Message.js.map +1 -1
  84. package/lib/Types/Signal.d.ts +0 -28
  85. package/lib/Types/Signal.d.ts.map +1 -1
  86. package/lib/Types/Socket.d.ts +7 -23
  87. package/lib/Types/Socket.d.ts.map +1 -1
  88. package/lib/Utils/auth-utils.d.ts.map +1 -1
  89. package/lib/Utils/auth-utils.js +79 -363
  90. package/lib/Utils/auth-utils.js.map +1 -1
  91. package/lib/Utils/chat-utils.d.ts +2 -2
  92. package/lib/Utils/chat-utils.d.ts.map +1 -1
  93. package/lib/Utils/chat-utils.js +2 -19
  94. package/lib/Utils/chat-utils.js.map +1 -1
  95. package/lib/Utils/crypto.d.ts +3 -3
  96. package/lib/Utils/crypto.d.ts.map +1 -1
  97. package/lib/Utils/crypto.js +12 -16
  98. package/lib/Utils/crypto.js.map +1 -1
  99. package/lib/Utils/decode-wa-message.d.ts +2 -13
  100. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  101. package/lib/Utils/decode-wa-message.js +13 -84
  102. package/lib/Utils/decode-wa-message.js.map +1 -1
  103. package/lib/Utils/event-buffer.d.ts +1 -0
  104. package/lib/Utils/event-buffer.d.ts.map +1 -1
  105. package/lib/Utils/event-buffer.js +4 -48
  106. package/lib/Utils/event-buffer.js.map +1 -1
  107. package/lib/Utils/generics.d.ts +0 -1
  108. package/lib/Utils/generics.d.ts.map +1 -1
  109. package/lib/Utils/generics.js +8 -24
  110. package/lib/Utils/generics.js.map +1 -1
  111. package/lib/Utils/history.d.ts.map +1 -1
  112. package/lib/Utils/history.js +2 -1
  113. package/lib/Utils/history.js.map +1 -1
  114. package/lib/Utils/index.d.ts +0 -1
  115. package/lib/Utils/index.d.ts.map +1 -1
  116. package/lib/Utils/index.js +0 -1
  117. package/lib/Utils/index.js.map +1 -1
  118. package/lib/Utils/messages-media.d.ts +2 -3
  119. package/lib/Utils/messages-media.d.ts.map +1 -1
  120. package/lib/Utils/messages-media.js +1 -4
  121. package/lib/Utils/messages-media.js.map +1 -1
  122. package/lib/Utils/messages.d.ts.map +1 -1
  123. package/lib/Utils/messages.js +4 -24
  124. package/lib/Utils/messages.js.map +1 -1
  125. package/lib/Utils/process-message.d.ts +2 -3
  126. package/lib/Utils/process-message.d.ts.map +1 -1
  127. package/lib/Utils/process-message.js +3 -13
  128. package/lib/Utils/process-message.js.map +1 -1
  129. package/lib/Utils/signal.d.ts +2 -2
  130. package/lib/Utils/signal.d.ts.map +1 -1
  131. package/lib/Utils/signal.js.map +1 -1
  132. package/lib/Utils/validate-connection.d.ts.map +1 -1
  133. package/lib/Utils/validate-connection.js +2 -3
  134. package/lib/Utils/validate-connection.js.map +1 -1
  135. package/lib/WABinary/jid-utils.d.ts +5 -6
  136. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  137. package/lib/WABinary/jid-utils.js +5 -11
  138. package/lib/WABinary/jid-utils.js.map +1 -1
  139. package/lib/WAM/encode.d.ts.map +1 -1
  140. package/lib/WAM/encode.js +1 -0
  141. package/lib/WAM/encode.js.map +1 -1
  142. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +1 -2
  143. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -1
  144. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +2 -10
  145. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -1
  146. package/package.json +8 -12
@@ -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, transferDevice } from '../WABinary/index.js';
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
- import { LIDMappingStore } from './lid-mapping.js';
9
- export function makeLibSignalRepository(auth, onWhatsAppFunc) {
10
- const lidMapping = new LIDMappingStore(auth.keys, onWhatsAppFunc);
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
- // Use transaction to ensure atomicity
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
- return parsedKeys.transaction(async () => {
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
- async function doDecrypt() {
54
- let result;
55
- switch (type) {
56
- case 'pkmsg':
57
- result = await session.decryptPreKeyWhisperMessage(ciphertext);
58
- break;
59
- case 'msg':
60
- result = await session.decryptWhisperMessage(ciphertext);
61
- break;
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
- // If it's not a sync message, we need to ensure atomicity
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
- // LID SINGLE SOURCE OF TRUTH: Always prefer LID when available
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
- // Use transaction to ensure atomicity
104
- return parsedKeys.transaction(async () => {
105
- const { type: sigType, body } = await cipher.encrypt(data);
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
- return parsedKeys.transaction(async () => {
115
- const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
116
- if (!senderKey) {
117
- await storage.storeSenderKey(senderName, new SenderKeyRecord());
118
- }
119
- const senderKeyDistributionMessage = await builder.create(senderName);
120
- const session = new GroupCipher(storage, senderName);
121
- const ciphertext = await session.encrypt(data);
122
- return {
123
- ciphertext,
124
- senderKeyDistributionMessage: senderKeyDistributionMessage.serialize()
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
- return parsedKeys.transaction(async () => {
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 decoded = jidDecode(jid);
232
- 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
- // 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 }, lidMapping) {
85
+ function signalStorage({ creds, keys }) {
245
86
  return {
246
87
  loadSession: async (id) => {
247
- try {
248
- // LID SINGLE SOURCE OF TRUTH: Auto-redirect PN to LID if mapping exists
249
- let actualId = id;
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: Buffer.from(generateSignalPubKey(signedIdentityKey.public))
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":"AAAA,gBAAgB;AAChB,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAGtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,UAAU,uBAAuB,CACtC,IAAqB,EACrB,cAOC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAqC,EAAE,cAAc,CAAC,CAAA;IAClG,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAqC,CAAA;IAE7D,SAAS,mBAAmB,CAAC,IAA+B;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAE3B,uEAAuE;QACvE,+CAA+C;QAC/C,OAAO,CACN,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,2BAA2B;YAChE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,qBAAqB;YACnD,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC3B,CAAA;IACF,CAAC;IAED,MAAM,UAAU,GAAiC;QAChD,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;YAC5C,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAC7D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAEnD,sCAAsC;YACtC,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC,EAAE,KAAK,CAAC,CAAA;QACV,CAAC;QACD,KAAK,CAAC,mCAAmC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;YAC5E,CAAC;YAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAEpE,MAAM,SAAS,GAAG,IAAI,4BAA4B,CACjD,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,mCAAmC,CACxC,CAAA;YACD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YAC3C,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;YACzF,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA;YAChE,CAAC;YAED,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;gBACzF,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,MAAM,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA;gBAChE,CAAC;gBAED,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YAC7C,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACjB,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE;YAC7C,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAE1D,KAAK,UAAU,SAAS;gBACvB,IAAI,MAAc,CAAA;gBAClB,QAAQ,IAAI,EAAE,CAAC;oBACd,KAAK,OAAO;wBACX,MAAM,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAA;wBAC9D,MAAK;oBACN,KAAK,KAAK;wBACT,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;wBACxD,MAAK;gBACP,CAAC;gBAED,OAAO,MAAM,CAAA;YACd,CAAC;YAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,sDAAsD;gBACtD,+EAA+E;gBAC/E,OAAO,MAAM,SAAS,EAAE,CAAA;YACzB,CAAC;YAED,0DAA0D;YAC1D,iEAAiE;YACjE,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,OAAO,MAAM,SAAS,EAAE,CAAA;YACzB,CAAC,EAAE,GAAG,CAAC,CAAA;QACR,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;YACjC,+DAA+D;YAC/D,IAAI,aAAa,GAAG,GAAG,CAAA;YAEvB,qDAAqD;YACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBAClD,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAA;oBACpD,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAEjG,IAAI,UAAU,EAAE,CAAC;wBAChB,6BAA6B;wBAC7B,aAAa,GAAG,QAAQ,CAAA;oBACzB,CAAC;yBAAM,CAAC;wBACP,sCAAsC;wBACtC,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;wBAC9C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;wBAE9F,IAAI,SAAS,EAAE,CAAC;4BACf,oBAAoB;4BACpB,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;4BAChD,aAAa,GAAG,QAAQ,CAAA;wBACzB,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,MAAM,IAAI,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAEzD,sCAAsC;YACtC,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC1D,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC5C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAA;YACzD,CAAC,EAAE,GAAG,CAAC,CAAA;QACR,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;YAC9C,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACxD,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAEhD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YAE3C,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;gBACzF,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,MAAM,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA;gBAChE,CAAC;gBAED,MAAM,4BAA4B,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;gBACrE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBACpD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAE9C,OAAO;oBACN,UAAU;oBACV,4BAA4B,EAAE,4BAA4B,CAAC,SAAS,EAAE;iBACtE,CAAA;YACF,CAAC,EAAE,KAAK,CAAC,CAAA;QACV,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAA;YACrF,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACnC,CAAC,EAAE,GAAG,CAAC,CAAA;QACR,CAAC;QACD,0BAA0B,CAAC,GAAG;YAC7B,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QAClD,CAAC;QAED,+CAA+C;QAC/C,UAAU;QAEV,KAAK,CAAC,eAAe,CAAC,GAAW;YAChC,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;gBAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;gBAC/C,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;oBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAA;gBACpD,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;YACrD,CAAC;QACF,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,IAAc;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAM;YAExB,iEAAiE;YACjE,MAAM,cAAc,GAA4B,EAAE,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAClB,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;gBAC5C,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAA;YACvC,CAAC,CAAC,CAAA;YAEF,uCAAuC;YACvC,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;YACjD,CAAC,EAAE,UAAU,IAAI,CAAC,MAAM,WAAW,CAAC,CAAA;QACrC,CAAC;QAED,KAAK,CAAC,cAAc,CACnB,QAAkB,EAClB,KAAa;YAEb,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;YAE7F,uBAAuB;YACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;YACzE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;YAEjF,kDAAkD;YAClD,OAAO,UAAU,CAAC,WAAW,CAC5B,KAAK,IAAmE,EAAE;gBACzE,kCAAkC;gBAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtC,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC;oBAC/B,EAAE,EAAE,GAAG;iBACP,CAAC,CAAC,CAAA;gBACH,MAAM,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;gBAE7C,kCAAkC;gBAClC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACxC,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;oBAChD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAE,CAAA;oBACnC,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAE,CAAA;oBAE3C,OAAO;wBACN,OAAO,EAAE,GAAG;wBACZ,KAAK,EAAE,aAAa;wBACpB,MAAM,EAAE,WAAW,CAAC,IAAI;wBACxB,OAAO,EAAE,SAAS,CAAC,IAAI;wBACvB,QAAQ,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC;wBACjC,QAAQ,EAAE,0BAA0B,CAAC,GAAG,CAAC;wBACzC,MAAM,EAAE,0BAA0B,CAAC,aAAa,CAAC;qBACjD,CAAA;gBACF,CAAC,CAAC,CAAA;gBAEF,kDAAkD;gBAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC7D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;gBAEjE,wDAAwD;gBACxD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACvF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;gBAE9D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC1B,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAA;gBACvE,CAAC;gBAED,wCAAwC;gBACxC,MAAM,OAAO,CAAC,GAAG,CAChB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBAC3B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAErE,IAAI,WAAW,EAAE,eAAe,EAAE,EAAE,CAAC;wBACpC,8BAA8B;wBAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,EAAE,CAAA;wBAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;wBACvE,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAA;wBAE/D,oBAAoB;wBACpB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;oBACrE,CAAC;gBACF,CAAC,CAAC,CACF,CAAA;gBAED,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAA;YACzF,CAAC,EACD,WAAW,SAAS,CAAC,MAAM,aAAa,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAChE,CAAA;QACF,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5E,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAA;QAC9B,CAAC;KACD,CAAA;IAED,OAAO,UAAU,CAAA;AAClB,CAAC;AAED,MAAM,0BAA0B,GAAG,CAAC,GAAW,EAA6B,EAAE;IAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAE,CAAA;IAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAExC,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACd,mCAAmC,GAAG,eAAe,IAAI,eAAe,MAAM,cAAc,MAAM,EAAE,CACpG,CAAA;IACF,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,CAAA;IAE/B,OAAO,IAAI,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAiB,EAAE;IAC/E,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAA;AAClE,CAAC,CAAA;AAED,SAAS,aAAa,CACrB,EAAE,KAAK,EAAE,IAAI,EAAmB,EAChC,UAA2B;IAE3B,OAAO;QACN,WAAW,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YACjC,IAAI,CAAC;gBACJ,wEAAwE;gBACxE,IAAI,QAAQ,GAAG,EAAE,CAAA;gBACjB,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,4DAA4D;oBAC5D,+CAA+C;oBAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;oBAC9B,MAAM,KAAK,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,iBAAiB,CAAA;oBAEpG,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;oBACpD,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAChC,MAAM,OAAO,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAA;wBACpD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;wBAEhC,8BAA8B;wBAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;wBAClE,IAAI,UAAU,EAAE,CAAC;4BAChB,QAAQ,GAAG,KAAK,CAAA;wBACjB,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAElE,IAAI,IAAI,EAAE,CAAC;oBACV,OAAO,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBACjD,CAAC;YACF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,EAAU,EAAE,OAAgC,EAAE,EAAE;YACpE,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;YAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC3D,IAAI,GAAG,EAAE,CAAC;gBACT,OAAO;oBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBACjC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;iBAC/B,CAAA;YACF,CAAC;QACF,CAAC;QACD,YAAY,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QACrE,gBAAgB,EAAE,GAAG,EAAE;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAA;YAC9B,OAAO;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;aACvC,CAAA;QACF,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,aAA4B,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAA;YACtC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9D,IAAI,GAAG,EAAE,CAAC;gBACT,OAAO,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,IAAI,eAAe,EAAE,CAAA;QAC7B,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,aAA4B,EAAE,GAAoB,EAAE,EAAE;YAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAA;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;YAClD,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc;QAChD,cAAc,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAA;YACnC,OAAO;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBAC/C,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACnE,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
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
- private onWhatsAppFunc?;
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
- storeLIDPNMappings(pairs: {
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":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAI7D,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAI3B;IACF,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,kBAAkB,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D7E;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+CrD;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA8BtD"}
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 { isLidUser, isPnUser, jidDecode } from '../WABinary/index.js';
2
+ import { isJidUser, isLidUser, jidDecode } from '../WABinary/index.js';
4
3
  export class LIDMappingStore {
5
- constructor(keys, onWhatsAppFunc) {
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 storeLIDPNMappings(pairs) {
10
+ async storeLIDPNMapping(lid, pn) {
18
11
  // Validate inputs
19
- const pairMap = {};
20
- for (const { lid, pn } of pairs) {
21
- if (!((isLidUser(lid) && isPnUser(pn)) || (isPnUser(lid) && isLidUser(pn)))) {
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
- logger.trace({ pairMap }, `Storing ${Object.keys(pairMap).length} pn mappings`);
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
- for (const [pnUser, lidUser] of Object.entries(pairMap)) {
53
- await this.keys.set({
54
- 'lid-mapping': {
55
- [pnUser]: lidUser, // "554396160286" -> "102765716062358"
56
- [`${lidUser}_reverse`]: pnUser // "102765716062358_reverse" -> "554396160286"
57
- }
58
- });
59
- // Update cache with both directions
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 (!isPnUser(pn))
38
+ if (!isJidUser(pn))
70
39
  return null;
71
40
  const decoded = jidDecode(pn);
72
41
  if (!decoded)
73
42
  return null;
74
- // Check cache first for PN → LID mapping
43
+ // Look up user-level mapping (whatsmeow approach)
75
44
  const pnUser = decoded.user;
76
- let lidUser = this.mappingCache.get(`pn:${pnUser}`);
45
+ const stored = await this.keys.get('lid-mapping', [pnUser]);
46
+ const lidUser = stored[pnUser];
77
47
  if (!lidUser) {
78
- // Cache miss - check database
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
- // Check cache first for LID → PN mapping
68
+ // Look up reverse user mapping
121
69
  const lidUser = decoded.user;
122
- let pnUser = this.mappingCache.get(`lid:${lidUser}`);
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
- // Cache miss - check database
125
- const stored = await this.keys.get('lid-mapping', [`${lidUser}_reverse`]);
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":"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"}
1
+ {"version":3,"file":"lid-mapping.js","sourceRoot":"","sources":["../../src/Signal/lid-mapping.ts"],"names":[],"mappings":"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"}