@d0v3riz/baileys 6.7.25 → 7.0.0-rc.6

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 (208) hide show
  1. package/README.md +23 -8
  2. package/WAProto/GenerateStatics.sh +2 -2
  3. package/WAProto/WAProto.proto +1339 -493
  4. package/WAProto/fix-imports.js +1 -1
  5. package/WAProto/index.d.ts +4585 -44041
  6. package/WAProto/index.js +80831 -148208
  7. package/lib/Defaults/index.d.ts +13 -3
  8. package/lib/Defaults/index.d.ts.map +1 -1
  9. package/lib/Defaults/index.js +27 -13
  10. package/lib/Defaults/index.js.map +1 -1
  11. package/lib/Signal/Group/group_cipher.d.ts +1 -2
  12. package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
  13. package/lib/Signal/Group/group_cipher.js +29 -41
  14. package/lib/Signal/Group/group_cipher.js.map +1 -1
  15. package/lib/Signal/Group/keyhelper.d.ts.map +1 -1
  16. package/lib/Signal/Group/keyhelper.js +0 -1
  17. package/lib/Signal/Group/keyhelper.js.map +1 -1
  18. package/lib/Signal/Group/sender-chain-key.d.ts +1 -1
  19. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -1
  20. package/lib/Signal/Group/sender-chain-key.js +1 -7
  21. package/lib/Signal/Group/sender-chain-key.js.map +1 -1
  22. package/lib/Signal/Group/sender-key-distribution-message.js +2 -2
  23. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -1
  24. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -1
  25. package/lib/Signal/Group/sender-key-message.js +0 -1
  26. package/lib/Signal/Group/sender-key-message.js.map +1 -1
  27. package/lib/Signal/Group/sender-key-record.d.ts +1 -1
  28. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -1
  29. package/lib/Signal/Group/sender-key-record.js +2 -11
  30. package/lib/Signal/Group/sender-key-record.js.map +1 -1
  31. package/lib/Signal/Group/sender-key-state.d.ts +4 -4
  32. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
  33. package/lib/Signal/Group/sender-key-state.js +21 -33
  34. package/lib/Signal/Group/sender-key-state.js.map +1 -1
  35. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -1
  36. package/lib/Signal/Group/sender-message-key.js +0 -1
  37. package/lib/Signal/Group/sender-message-key.js.map +1 -1
  38. package/lib/Signal/libsignal.d.ts +4 -3
  39. package/lib/Signal/libsignal.d.ts.map +1 -1
  40. package/lib/Signal/libsignal.js +243 -42
  41. package/lib/Signal/libsignal.js.map +1 -1
  42. package/lib/Signal/lid-mapping.d.ts +23 -0
  43. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  44. package/lib/Signal/lid-mapping.js +171 -0
  45. package/lib/Signal/lid-mapping.js.map +1 -0
  46. package/lib/Socket/business.d.ts +29 -17
  47. package/lib/Socket/business.d.ts.map +1 -1
  48. package/lib/Socket/business.js +122 -1
  49. package/lib/Socket/business.js.map +1 -1
  50. package/lib/Socket/chats.d.ts +15 -9
  51. package/lib/Socket/chats.d.ts.map +1 -1
  52. package/lib/Socket/chats.js +49 -20
  53. package/lib/Socket/chats.js.map +1 -1
  54. package/lib/Socket/communities.d.ts +39 -14
  55. package/lib/Socket/communities.d.ts.map +1 -1
  56. package/lib/Socket/communities.js +82 -2
  57. package/lib/Socket/communities.js.map +1 -1
  58. package/lib/Socket/groups.d.ts +14 -9
  59. package/lib/Socket/groups.d.ts.map +1 -1
  60. package/lib/Socket/groups.js +14 -11
  61. package/lib/Socket/groups.js.map +1 -1
  62. package/lib/Socket/index.d.ts +39 -14
  63. package/lib/Socket/index.d.ts.map +1 -1
  64. package/lib/Socket/index.js +1 -0
  65. package/lib/Socket/index.js.map +1 -1
  66. package/lib/Socket/messages-recv.d.ts +24 -16
  67. package/lib/Socket/messages-recv.d.ts.map +1 -1
  68. package/lib/Socket/messages-recv.js +463 -319
  69. package/lib/Socket/messages-recv.js.map +1 -1
  70. package/lib/Socket/messages-send.d.ts +25 -16
  71. package/lib/Socket/messages-send.d.ts.map +1 -1
  72. package/lib/Socket/messages-send.js +364 -124
  73. package/lib/Socket/messages-send.js.map +1 -1
  74. package/lib/Socket/newsletter.d.ts +16 -12
  75. package/lib/Socket/newsletter.d.ts.map +1 -1
  76. package/lib/Socket/newsletter.js +3 -1
  77. package/lib/Socket/newsletter.js.map +1 -1
  78. package/lib/Socket/socket.d.ts +11 -3
  79. package/lib/Socket/socket.d.ts.map +1 -1
  80. package/lib/Socket/socket.js +305 -71
  81. package/lib/Socket/socket.js.map +1 -1
  82. package/lib/Types/Auth.d.ts +8 -1
  83. package/lib/Types/Auth.d.ts.map +1 -1
  84. package/lib/Types/Bussines.d.ts +25 -0
  85. package/lib/Types/Bussines.d.ts.map +1 -0
  86. package/lib/Types/Bussines.js +2 -0
  87. package/lib/Types/Bussines.js.map +1 -0
  88. package/lib/Types/Chat.d.ts +5 -0
  89. package/lib/Types/Chat.d.ts.map +1 -1
  90. package/lib/Types/Chat.js.map +1 -1
  91. package/lib/Types/Contact.d.ts +4 -4
  92. package/lib/Types/Contact.d.ts.map +1 -1
  93. package/lib/Types/Events.d.ts +8 -5
  94. package/lib/Types/Events.d.ts.map +1 -1
  95. package/lib/Types/GroupMetadata.d.ts +7 -4
  96. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  97. package/lib/Types/Message.d.ts +36 -12
  98. package/lib/Types/Message.d.ts.map +1 -1
  99. package/lib/Types/Message.js +5 -1
  100. package/lib/Types/Message.js.map +1 -1
  101. package/lib/Types/Signal.d.ts +18 -0
  102. package/lib/Types/Signal.d.ts.map +1 -1
  103. package/lib/Types/Socket.d.ts +24 -13
  104. package/lib/Types/Socket.d.ts.map +1 -1
  105. package/lib/Types/Socket.js.map +1 -1
  106. package/lib/Utils/auth-utils.d.ts +2 -2
  107. package/lib/Utils/auth-utils.d.ts.map +1 -1
  108. package/lib/Utils/auth-utils.js +178 -111
  109. package/lib/Utils/auth-utils.js.map +1 -1
  110. package/lib/Utils/browser-utils.d.ts +4 -0
  111. package/lib/Utils/browser-utils.d.ts.map +1 -0
  112. package/lib/Utils/browser-utils.js +28 -0
  113. package/lib/Utils/browser-utils.js.map +1 -0
  114. package/lib/Utils/chat-utils.d.ts +6 -7
  115. package/lib/Utils/chat-utils.d.ts.map +1 -1
  116. package/lib/Utils/chat-utils.js +19 -2
  117. package/lib/Utils/chat-utils.js.map +1 -1
  118. package/lib/Utils/crypto.d.ts +6 -6
  119. package/lib/Utils/crypto.d.ts.map +1 -1
  120. package/lib/Utils/crypto.js +16 -12
  121. package/lib/Utils/crypto.js.map +1 -1
  122. package/lib/Utils/decode-wa-message.d.ts +14 -2
  123. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  124. package/lib/Utils/decode-wa-message.js +99 -14
  125. package/lib/Utils/decode-wa-message.js.map +1 -1
  126. package/lib/Utils/event-buffer.d.ts +0 -1
  127. package/lib/Utils/event-buffer.d.ts.map +1 -1
  128. package/lib/Utils/event-buffer.js +63 -18
  129. package/lib/Utils/event-buffer.js.map +1 -1
  130. package/lib/Utils/generics.d.ts +5 -7
  131. package/lib/Utils/generics.d.ts.map +1 -1
  132. package/lib/Utils/generics.js +58 -50
  133. package/lib/Utils/generics.js.map +1 -1
  134. package/lib/Utils/history.d.ts +8 -9
  135. package/lib/Utils/history.d.ts.map +1 -1
  136. package/lib/Utils/history.js +8 -3
  137. package/lib/Utils/history.js.map +1 -1
  138. package/lib/Utils/index.d.ts +2 -0
  139. package/lib/Utils/index.d.ts.map +1 -1
  140. package/lib/Utils/index.js +2 -0
  141. package/lib/Utils/index.js.map +1 -1
  142. package/lib/Utils/link-preview.d.ts +1 -2
  143. package/lib/Utils/link-preview.d.ts.map +1 -1
  144. package/lib/Utils/link-preview.js +1 -1
  145. package/lib/Utils/link-preview.js.map +1 -1
  146. package/lib/Utils/message-retry-manager.d.ts +82 -0
  147. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  148. package/lib/Utils/message-retry-manager.js +149 -0
  149. package/lib/Utils/message-retry-manager.js.map +1 -0
  150. package/lib/Utils/messages-media.d.ts +14 -12
  151. package/lib/Utils/messages-media.d.ts.map +1 -1
  152. package/lib/Utils/messages-media.js +47 -23
  153. package/lib/Utils/messages-media.js.map +1 -1
  154. package/lib/Utils/messages.d.ts +4 -4
  155. package/lib/Utils/messages.d.ts.map +1 -1
  156. package/lib/Utils/messages.js +55 -21
  157. package/lib/Utils/messages.js.map +1 -1
  158. package/lib/Utils/noise-handler.js +2 -1
  159. package/lib/Utils/noise-handler.js.map +1 -1
  160. package/lib/Utils/pre-key-manager.d.ts +28 -0
  161. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  162. package/lib/Utils/pre-key-manager.js +106 -0
  163. package/lib/Utils/pre-key-manager.js.map +1 -0
  164. package/lib/Utils/process-message.d.ts +8 -8
  165. package/lib/Utils/process-message.d.ts.map +1 -1
  166. package/lib/Utils/process-message.js +68 -23
  167. package/lib/Utils/process-message.js.map +1 -1
  168. package/lib/Utils/signal.d.ts +4 -4
  169. package/lib/Utils/signal.d.ts.map +1 -1
  170. package/lib/Utils/signal.js +21 -12
  171. package/lib/Utils/signal.js.map +1 -1
  172. package/lib/Utils/validate-connection.d.ts.map +1 -1
  173. package/lib/Utils/validate-connection.js +50 -14
  174. package/lib/Utils/validate-connection.js.map +1 -1
  175. package/lib/WABinary/decode.d.ts.map +1 -1
  176. package/lib/WABinary/decode.js +12 -2
  177. package/lib/WABinary/decode.js.map +1 -1
  178. package/lib/WABinary/generic-utils.js +1 -1
  179. package/lib/WABinary/generic-utils.js.map +1 -1
  180. package/lib/WABinary/jid-utils.d.ts +18 -6
  181. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  182. package/lib/WABinary/jid-utils.js +52 -8
  183. package/lib/WABinary/jid-utils.js.map +1 -1
  184. package/lib/WAM/constants.d.ts +1 -1
  185. package/lib/WAM/constants.d.ts.map +1 -1
  186. package/lib/WAM/constants.js +18516 -10904
  187. package/lib/WAM/constants.js.map +1 -1
  188. package/lib/WAM/encode.d.ts.map +1 -1
  189. package/lib/WAM/encode.js +0 -1
  190. package/lib/WAM/encode.js.map +1 -1
  191. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +2 -1
  192. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -1
  193. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +10 -2
  194. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -1
  195. package/lib/WAUSync/USyncQuery.d.ts +1 -1
  196. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  197. package/lib/WAUSync/USyncQuery.js +23 -20
  198. package/lib/WAUSync/USyncQuery.js.map +1 -1
  199. package/package.json +16 -11
  200. package/lib/Defaults/baileys-version.json +0 -3
  201. package/lib/Signal/Group/queue-job.d.ts +0 -2
  202. package/lib/Signal/Group/queue-job.d.ts.map +0 -1
  203. package/lib/Signal/Group/queue-job.js +0 -54
  204. package/lib/Signal/Group/queue-job.js.map +0 -1
  205. package/lib/Socket/usync.d.ts +0 -37
  206. package/lib/Socket/usync.d.ts.map +0 -1
  207. package/lib/Socket/usync.js +0 -63
  208. package/lib/Socket/usync.js.map +0 -1
@@ -3,10 +3,13 @@ import { randomBytes } from 'crypto';
3
3
  import { URL } from 'url';
4
4
  import { promisify } from 'util';
5
5
  import { proto } from '../../WAProto/index.js';
6
- import { DEF_CALLBACK_PREFIX, DEF_TAG_PREFIX, INITIAL_PREKEY_COUNT, MIN_PREKEY_COUNT, NOISE_WA_HEADER } from '../Defaults/index.js';
6
+ import { DEF_CALLBACK_PREFIX, DEF_TAG_PREFIX, INITIAL_PREKEY_COUNT, MIN_PREKEY_COUNT, MIN_UPLOAD_INTERVAL, NOISE_WA_HEADER, UPLOAD_TIMEOUT } from '../Defaults/index.js';
7
7
  import { DisconnectReason } from '../Types/index.js';
8
- import { addTransactionCapability, aesEncryptCTR, bindWaitForConnectionUpdate, bytesToCrockford, configureSuccessfulPairing, Curve, derivePairingCodeKey, generateLoginNode, generateMdTagPrefix, generateRegistrationNode, getCodeFromWSError, getErrorCodeFromStreamError, getNextPreKeysNode, getPlatformId, makeEventBuffer, makeNoiseHandler, promiseTimeout } from '../Utils/index.js';
9
- import { assertNodeErrorFree, binaryNodeToString, encodeBinaryNode, getBinaryNodeChild, getBinaryNodeChildren, jidEncode, S_WHATSAPP_NET } from '../WABinary/index.js';
8
+ import { addTransactionCapability, aesEncryptCTR, bindWaitForConnectionUpdate, bytesToCrockford, configureSuccessfulPairing, Curve, derivePairingCodeKey, generateLoginNode, generateMdTagPrefix, generateRegistrationNode, getCodeFromWSError, getErrorCodeFromStreamError, getNextPreKeysNode, makeEventBuffer, makeNoiseHandler, promiseTimeout } from '../Utils/index.js';
9
+ import { getPlatformId } from '../Utils/browser-utils.js';
10
+ import { assertNodeErrorFree, binaryNodeToString, encodeBinaryNode, getBinaryNodeChild, getBinaryNodeChildren, isLidUser, jidDecode, jidEncode, S_WHATSAPP_NET } from '../WABinary/index.js';
11
+ import { BinaryInfo } from '../WAM/BinaryInfo.js';
12
+ import { USyncQuery, USyncUser } from '../WAUSync/index.js';
10
13
  import { WebSocketClient } from './Client/index.js';
11
14
  /**
12
15
  * Connects to WA servers and performs:
@@ -16,6 +19,9 @@ import { WebSocketClient } from './Client/index.js';
16
19
  */
17
20
  export const makeSocket = (config) => {
18
21
  const { waWebSocketUrl, connectTimeoutMs, logger, keepAliveIntervalMs, browser, auth: authState, printQRInTerminal, defaultQueryTimeoutMs, transactionOpts, qrTimeout, makeSignalRepository } = config;
22
+ const publicWAMBuffer = new BinaryInfo();
23
+ const uqTagId = generateMdTagPrefix();
24
+ const generateMessageTag = () => `${uqTagId}${epoch++}`;
19
25
  if (printQRInTerminal) {
20
26
  console.warn('⚠️ The printQRInTerminal option has been deprecated. You will no longer receive QR codes in the terminal automatically. Please listen to the connection.update event yourself and handle the QR your way. You can remove this message by removing this opttion. This message will be removed in a future version.');
21
27
  }
@@ -26,9 +32,6 @@ export const makeSocket = (config) => {
26
32
  if (url.protocol === 'wss' && authState?.creds?.routingInfo) {
27
33
  url.searchParams.append('ED', authState.creds.routingInfo.toString('base64url'));
28
34
  }
29
- const ws = new WebSocketClient(url, config);
30
- ws.connect();
31
- const ev = makeEventBuffer(logger);
32
35
  /** ephemeral key pair used to encrypt/decrypt communication. Unique for each connection */
33
36
  const ephemeralKeyPair = Curve.generateKeyPair();
34
37
  /** WA noise protocol wrapper */
@@ -38,17 +41,8 @@ export const makeSocket = (config) => {
38
41
  logger,
39
42
  routingInfo: authState?.creds?.routingInfo
40
43
  });
41
- const { creds } = authState;
42
- // add transaction capability
43
- const keys = addTransactionCapability(authState.keys, logger, transactionOpts);
44
- const signalRepository = makeSignalRepository({ creds, keys });
45
- let lastDateRecv;
46
- let epoch = 1;
47
- let keepAliveReq;
48
- let qrTimer;
49
- let closed = false;
50
- const uqTagId = generateMdTagPrefix();
51
- const generateMessageTag = () => `${uqTagId}${epoch++}`;
44
+ const ws = new WebSocketClient(url, config);
45
+ ws.connect();
52
46
  const sendPromise = promisify(ws.send);
53
47
  /** send a raw buffer */
54
48
  const sendRawMessage = async (data) => {
@@ -74,35 +68,6 @@ export const makeSocket = (config) => {
74
68
  const buff = encodeBinaryNode(frame);
75
69
  return sendRawMessage(buff);
76
70
  };
77
- /** log & process any unexpected errors */
78
- const onUnexpectedError = (err, msg) => {
79
- logger.error({ err }, `unexpected error in '${msg}'`);
80
- };
81
- /** await the next incoming message */
82
- const awaitNextMessage = async (sendMsg) => {
83
- if (!ws.isOpen) {
84
- throw new Boom('Connection Closed', {
85
- statusCode: DisconnectReason.connectionClosed
86
- });
87
- }
88
- let onOpen;
89
- let onClose;
90
- const result = promiseTimeout(connectTimeoutMs, (resolve, reject) => {
91
- onOpen = resolve;
92
- onClose = mapWebSocketError(reject);
93
- ws.on('frame', onOpen);
94
- ws.on('close', onClose);
95
- ws.on('error', onClose);
96
- }).finally(() => {
97
- ws.off('frame', onOpen);
98
- ws.off('close', onClose);
99
- ws.off('error', onClose);
100
- });
101
- if (sendMsg) {
102
- sendRawMessage(sendMsg).catch(onClose);
103
- }
104
- return result;
105
- };
106
71
  /**
107
72
  * Wait for a message with a certain tag to be received
108
73
  * @param msgId the message tag to await
@@ -113,20 +78,37 @@ export const makeSocket = (config) => {
113
78
  let onErr;
114
79
  try {
115
80
  const result = await promiseTimeout(timeoutMs, (resolve, reject) => {
116
- onRecv = resolve;
81
+ onRecv = data => {
82
+ resolve(data);
83
+ };
117
84
  onErr = err => {
118
- reject(err || new Boom('Connection Closed', { statusCode: DisconnectReason.connectionClosed }));
85
+ reject(err ||
86
+ new Boom('Connection Closed', {
87
+ statusCode: DisconnectReason.connectionClosed
88
+ }));
119
89
  };
120
90
  ws.on(`TAG:${msgId}`, onRecv);
121
- ws.on('close', onErr); // if the socket closes, you'll never receive the message
122
- ws.off('error', onErr);
91
+ ws.on('close', onErr);
92
+ ws.on('error', onErr);
93
+ return () => reject(new Boom('Query Cancelled'));
123
94
  });
124
95
  return result;
125
96
  }
97
+ catch (error) {
98
+ // Catch timeout and return undefined instead of throwing
99
+ if (error instanceof Boom && error.output?.statusCode === DisconnectReason.timedOut) {
100
+ logger?.warn?.({ msgId }, 'timed out waiting for message');
101
+ return undefined;
102
+ }
103
+ throw error;
104
+ }
126
105
  finally {
127
- ws.off(`TAG:${msgId}`, onRecv);
128
- ws.off('close', onErr); // if the socket closes, you'll never receive the message
129
- ws.off('error', onErr);
106
+ if (onRecv)
107
+ ws.off(`TAG:${msgId}`, onRecv);
108
+ if (onErr) {
109
+ ws.off('close', onErr);
110
+ ws.off('error', onErr);
111
+ }
130
112
  }
131
113
  };
132
114
  /** send a query, and wait for its response. auto-generates message ID if not provided */
@@ -135,12 +117,151 @@ export const makeSocket = (config) => {
135
117
  node.attrs.id = generateMessageTag();
136
118
  }
137
119
  const msgId = node.attrs.id;
138
- const [result] = await Promise.all([waitForMessage(msgId, timeoutMs), sendNode(node)]);
139
- if ('tag' in result) {
120
+ const result = await promiseTimeout(timeoutMs, async (resolve, reject) => {
121
+ const result = waitForMessage(msgId, timeoutMs).catch(reject);
122
+ sendNode(node)
123
+ .then(async () => resolve(await result))
124
+ .catch(reject);
125
+ });
126
+ if (result && 'tag' in result) {
140
127
  assertNodeErrorFree(result);
141
128
  }
142
129
  return result;
143
130
  };
131
+ const executeUSyncQuery = async (usyncQuery) => {
132
+ if (usyncQuery.protocols.length === 0) {
133
+ throw new Boom('USyncQuery must have at least one protocol');
134
+ }
135
+ // todo: validate users, throw WARNING on no valid users
136
+ // variable below has only validated users
137
+ const validUsers = usyncQuery.users;
138
+ const userNodes = validUsers.map(user => {
139
+ return {
140
+ tag: 'user',
141
+ attrs: {
142
+ jid: !user.phone ? user.id : undefined
143
+ },
144
+ content: usyncQuery.protocols.map(a => a.getUserElement(user)).filter(a => a !== null)
145
+ };
146
+ });
147
+ const listNode = {
148
+ tag: 'list',
149
+ attrs: {},
150
+ content: userNodes
151
+ };
152
+ const queryNode = {
153
+ tag: 'query',
154
+ attrs: {},
155
+ content: usyncQuery.protocols.map(a => a.getQueryElement())
156
+ };
157
+ const iq = {
158
+ tag: 'iq',
159
+ attrs: {
160
+ to: S_WHATSAPP_NET,
161
+ type: 'get',
162
+ xmlns: 'usync'
163
+ },
164
+ content: [
165
+ {
166
+ tag: 'usync',
167
+ attrs: {
168
+ context: usyncQuery.context,
169
+ mode: usyncQuery.mode,
170
+ sid: generateMessageTag(),
171
+ last: 'true',
172
+ index: '0'
173
+ },
174
+ content: [queryNode, listNode]
175
+ }
176
+ ]
177
+ };
178
+ const result = await query(iq);
179
+ return usyncQuery.parseUSyncQueryResult(result);
180
+ };
181
+ const onWhatsApp = async (...phoneNumber) => {
182
+ let usyncQuery = new USyncQuery();
183
+ let contactEnabled = false;
184
+ for (const jid of phoneNumber) {
185
+ if (isLidUser(jid)) {
186
+ logger?.warn('LIDs are not supported with onWhatsApp');
187
+ continue;
188
+ }
189
+ else {
190
+ if (!contactEnabled) {
191
+ contactEnabled = true;
192
+ usyncQuery = usyncQuery.withContactProtocol();
193
+ }
194
+ const phone = `+${jid.replace('+', '').split('@')[0]?.split(':')[0]}`;
195
+ usyncQuery.withUser(new USyncUser().withPhone(phone));
196
+ }
197
+ }
198
+ if (usyncQuery.users.length === 0) {
199
+ return []; // return early without forcing an empty query
200
+ }
201
+ const results = await executeUSyncQuery(usyncQuery);
202
+ if (results) {
203
+ return results.list.filter(a => !!a.contact).map(({ contact, id }) => ({ jid: id, exists: contact }));
204
+ }
205
+ };
206
+ const pnFromLIDUSync = async (jids) => {
207
+ const usyncQuery = new USyncQuery().withLIDProtocol().withContext('background');
208
+ for (const jid of jids) {
209
+ if (isLidUser(jid)) {
210
+ logger?.warn('LID user found in LID fetch call');
211
+ continue;
212
+ }
213
+ else {
214
+ usyncQuery.withUser(new USyncUser().withId(jid));
215
+ }
216
+ }
217
+ if (usyncQuery.users.length === 0) {
218
+ return []; // return early without forcing an empty query
219
+ }
220
+ const results = await executeUSyncQuery(usyncQuery);
221
+ if (results) {
222
+ return results.list.filter(a => !!a.lid).map(({ lid, id }) => ({ pn: id, lid: lid }));
223
+ }
224
+ return [];
225
+ };
226
+ const ev = makeEventBuffer(logger);
227
+ const { creds } = authState;
228
+ // add transaction capability
229
+ const keys = addTransactionCapability(authState.keys, logger, transactionOpts);
230
+ const signalRepository = makeSignalRepository({ creds, keys }, logger, pnFromLIDUSync);
231
+ let lastDateRecv;
232
+ let epoch = 1;
233
+ let keepAliveReq;
234
+ let qrTimer;
235
+ let closed = false;
236
+ /** log & process any unexpected errors */
237
+ const onUnexpectedError = (err, msg) => {
238
+ logger.error({ err }, `unexpected error in '${msg}'`);
239
+ };
240
+ /** await the next incoming message */
241
+ const awaitNextMessage = async (sendMsg) => {
242
+ if (!ws.isOpen) {
243
+ throw new Boom('Connection Closed', {
244
+ statusCode: DisconnectReason.connectionClosed
245
+ });
246
+ }
247
+ let onOpen;
248
+ let onClose;
249
+ const result = promiseTimeout(connectTimeoutMs, (resolve, reject) => {
250
+ onOpen = resolve;
251
+ onClose = mapWebSocketError(reject);
252
+ ws.on('frame', onOpen);
253
+ ws.on('close', onClose);
254
+ ws.on('error', onClose);
255
+ }).finally(() => {
256
+ ws.off('frame', onOpen);
257
+ ws.off('close', onClose);
258
+ ws.off('error', onClose);
259
+ });
260
+ if (sendMsg) {
261
+ sendRawMessage(sendMsg).catch(onClose);
262
+ }
263
+ return result;
264
+ };
144
265
  /** connection handshake */
145
266
  const validateConnection = async () => {
146
267
  let helloMsg = {
@@ -186,21 +307,103 @@ export const makeSocket = (config) => {
186
307
  const countChild = getBinaryNodeChild(result, 'count');
187
308
  return +countChild.attrs.value;
188
309
  };
310
+ // Pre-key upload state management
311
+ let uploadPreKeysPromise = null;
312
+ let lastUploadTime = 0;
189
313
  /** generates and uploads a set of pre-keys to the server */
190
- const uploadPreKeys = async (count = INITIAL_PREKEY_COUNT) => {
191
- await keys.transaction(async () => {
192
- logger.info({ count }, 'uploading pre-keys');
193
- const { update, node } = await getNextPreKeysNode({ creds, keys }, count);
194
- await query(node);
195
- ev.emit('creds.update', update);
196
- logger.info({ count }, 'uploaded pre-keys');
197
- });
314
+ const uploadPreKeys = async (count = MIN_PREKEY_COUNT, retryCount = 0) => {
315
+ // Check minimum interval (except for retries)
316
+ if (retryCount === 0) {
317
+ const timeSinceLastUpload = Date.now() - lastUploadTime;
318
+ if (timeSinceLastUpload < MIN_UPLOAD_INTERVAL) {
319
+ logger.debug(`Skipping upload, only ${timeSinceLastUpload}ms since last upload`);
320
+ return;
321
+ }
322
+ }
323
+ // Prevent multiple concurrent uploads
324
+ if (uploadPreKeysPromise) {
325
+ logger.debug('Pre-key upload already in progress, waiting for completion');
326
+ await uploadPreKeysPromise;
327
+ }
328
+ const uploadLogic = async () => {
329
+ logger.info({ count, retryCount }, 'uploading pre-keys');
330
+ // Generate and save pre-keys atomically (prevents ID collisions on retry)
331
+ const node = await keys.transaction(async () => {
332
+ logger.debug({ requestedCount: count }, 'generating pre-keys with requested count');
333
+ const { update, node } = await getNextPreKeysNode({ creds, keys }, count);
334
+ // Update credentials immediately to prevent duplicate IDs on retry
335
+ ev.emit('creds.update', update);
336
+ return node; // Only return node since update is already used
337
+ }, creds?.me?.id || 'upload-pre-keys');
338
+ // Upload to server (outside transaction, can fail without affecting local keys)
339
+ try {
340
+ await query(node);
341
+ logger.info({ count }, 'uploaded pre-keys successfully');
342
+ lastUploadTime = Date.now();
343
+ }
344
+ catch (uploadError) {
345
+ logger.error({ uploadError: uploadError.toString(), count }, 'Failed to upload pre-keys to server');
346
+ // Exponential backoff retry (max 3 retries)
347
+ if (retryCount < 3) {
348
+ const backoffDelay = Math.min(1000 * Math.pow(2, retryCount), 10000);
349
+ logger.info(`Retrying pre-key upload in ${backoffDelay}ms`);
350
+ await new Promise(resolve => setTimeout(resolve, backoffDelay));
351
+ return uploadPreKeys(count, retryCount + 1);
352
+ }
353
+ throw uploadError;
354
+ }
355
+ };
356
+ // Add timeout protection
357
+ uploadPreKeysPromise = Promise.race([
358
+ uploadLogic(),
359
+ new Promise((_, reject) => setTimeout(() => reject(new Boom('Pre-key upload timeout', { statusCode: 408 })), UPLOAD_TIMEOUT))
360
+ ]);
361
+ try {
362
+ await uploadPreKeysPromise;
363
+ }
364
+ finally {
365
+ uploadPreKeysPromise = null;
366
+ }
367
+ };
368
+ const verifyCurrentPreKeyExists = async () => {
369
+ const currentPreKeyId = creds.nextPreKeyId - 1;
370
+ if (currentPreKeyId <= 0) {
371
+ return { exists: false, currentPreKeyId: 0 };
372
+ }
373
+ const preKeys = await keys.get('pre-key', [currentPreKeyId.toString()]);
374
+ const exists = !!preKeys[currentPreKeyId.toString()];
375
+ return { exists, currentPreKeyId };
198
376
  };
199
377
  const uploadPreKeysToServerIfRequired = async () => {
200
- const preKeyCount = await getAvailablePreKeysOnServer();
201
- logger.info(`${preKeyCount} pre-keys found on server`);
202
- if (preKeyCount <= MIN_PREKEY_COUNT) {
203
- await uploadPreKeys();
378
+ try {
379
+ let count = 0;
380
+ const preKeyCount = await getAvailablePreKeysOnServer();
381
+ if (preKeyCount === 0)
382
+ count = INITIAL_PREKEY_COUNT;
383
+ else
384
+ count = MIN_PREKEY_COUNT;
385
+ const { exists: currentPreKeyExists, currentPreKeyId } = await verifyCurrentPreKeyExists();
386
+ logger.info(`${preKeyCount} pre-keys found on server`);
387
+ logger.info(`Current prekey ID: ${currentPreKeyId}, exists in storage: ${currentPreKeyExists}`);
388
+ const lowServerCount = preKeyCount <= count;
389
+ const missingCurrentPreKey = !currentPreKeyExists && currentPreKeyId > 0;
390
+ const shouldUpload = lowServerCount || missingCurrentPreKey;
391
+ if (shouldUpload) {
392
+ const reasons = [];
393
+ if (lowServerCount)
394
+ reasons.push(`server count low (${preKeyCount})`);
395
+ if (missingCurrentPreKey)
396
+ reasons.push(`current prekey ${currentPreKeyId} missing from storage`);
397
+ logger.info(`Uploading PreKeys due to: ${reasons.join(', ')}`);
398
+ await uploadPreKeys(count);
399
+ }
400
+ else {
401
+ logger.info(`PreKey validation passed - Server: ${preKeyCount}, Current prekey ${currentPreKeyId} exists`);
402
+ }
403
+ }
404
+ catch (error) {
405
+ logger.error({ error }, 'Failed to check/upload pre-keys during initialization');
406
+ // Don't throw - allow connection to continue even if pre-key check fails
204
407
  }
205
408
  };
206
409
  const onMessageReceived = (data) => {
@@ -425,7 +628,7 @@ export const makeSocket = (config) => {
425
628
  content: [
426
629
  {
427
630
  tag: 'add',
428
- attrs: {},
631
+ attrs: { t: Math.round(Date.now() / 1000) + '' },
429
632
  content: wamBuffer
430
633
  }
431
634
  ]
@@ -497,12 +700,40 @@ export const makeSocket = (config) => {
497
700
  });
498
701
  // login complete
499
702
  ws.on('CB:success', async (node) => {
500
- await uploadPreKeysToServerIfRequired();
501
- await sendPassiveIq('active');
703
+ try {
704
+ await uploadPreKeysToServerIfRequired();
705
+ await sendPassiveIq('active');
706
+ }
707
+ catch (err) {
708
+ logger.warn({ err }, 'failed to send initial passive iq');
709
+ }
502
710
  logger.info('opened connection to WA');
503
711
  clearTimeout(qrTimer); // will never happen in all likelyhood -- but just in case WA sends success on first try
504
712
  ev.emit('creds.update', { me: { ...authState.creds.me, lid: node.attrs.lid } });
505
713
  ev.emit('connection.update', { connection: 'open' });
714
+ if (node.attrs.lid && authState.creds.me?.id) {
715
+ const myLID = node.attrs.lid;
716
+ process.nextTick(async () => {
717
+ try {
718
+ const myPN = authState.creds.me.id;
719
+ // Store our own LID-PN mapping
720
+ await signalRepository.lidMapping.storeLIDPNMappings([{ lid: myLID, pn: myPN }]);
721
+ // Create device list for our own user (needed for bulk migration)
722
+ const { user, device } = jidDecode(myPN);
723
+ await authState.keys.set({
724
+ 'device-list': {
725
+ [user]: [device?.toString() || '0']
726
+ }
727
+ });
728
+ // migrate our own session
729
+ await signalRepository.migrateSession(myPN, myLID);
730
+ logger.info({ myPN, myLID }, 'Own LID session created successfully');
731
+ }
732
+ catch (error) {
733
+ logger.error({ error, lid: myLID }, 'Failed to create own LID session');
734
+ }
735
+ });
736
+ }
506
737
  });
507
738
  ws.on('CB:stream:error', (node) => {
508
739
  logger.error({ node }, 'stream errored out');
@@ -590,9 +821,12 @@ export const makeSocket = (config) => {
590
821
  uploadPreKeys,
591
822
  uploadPreKeysToServerIfRequired,
592
823
  requestPairingCode,
824
+ wamBuffer: publicWAMBuffer,
593
825
  /** Waits for the connection to WA to reach a state */
594
826
  waitForConnectionUpdate: bindWaitForConnectionUpdate(ev),
595
- sendWAMBuffer
827
+ sendWAMBuffer,
828
+ executeUSyncQuery,
829
+ onWhatsApp
596
830
  };
597
831
  };
598
832
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/Socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/Socket/socket.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,10 @@ export type SignalIdentity = {
19
19
  identifier: ProtocolAddress;
20
20
  identifierKey: Uint8Array;
21
21
  };
22
+ export type LIDMapping = {
23
+ pn: string;
24
+ lid: string;
25
+ };
22
26
  export type LTHashState = {
23
27
  version: number;
24
28
  hash: Buffer;
@@ -59,6 +63,7 @@ export type AuthenticationCreds = SignalCreds & {
59
63
  pairingCode: string | undefined;
60
64
  lastPropHash: string | undefined;
61
65
  routingInfo: Buffer | undefined;
66
+ additionalData?: any | undefined;
62
67
  };
63
68
  export type SignalDataTypeMap = {
64
69
  'pre-key': KeyPair;
@@ -69,6 +74,8 @@ export type SignalDataTypeMap = {
69
74
  };
70
75
  'app-state-sync-key': proto.Message.IAppStateSyncKeyData;
71
76
  'app-state-sync-version': LTHashState;
77
+ 'lid-mapping': string;
78
+ 'device-list': string[];
72
79
  };
73
80
  export type SignalDataSet = {
74
81
  [T in keyof SignalDataTypeMap]?: {
@@ -86,7 +93,7 @@ export type SignalKeyStore = {
86
93
  };
87
94
  export type SignalKeyStoreWithTransaction = SignalKeyStore & {
88
95
  isInTransaction: () => boolean;
89
- transaction<T>(exec: () => Promise<T>): Promise<T>;
96
+ transaction<T>(exec: () => Promise<T>, key: string): Promise<T>;
90
97
  };
91
98
  export type TransactionCapabilityOptions = {
92
99
  maxCommitRetries: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/Types/Auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/Types/Auth.ts"],"names":[],"mappings":"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"}