@queenanya/baileys 9.1.1 → 9.2.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 (91) hide show
  1. package/README.md +1202 -375
  2. package/WAProto/WAProto.proto +1067 -221
  3. package/WAProto/fix-imports.js +1 -1
  4. package/WAProto/index.d.ts +2578 -530
  5. package/WAProto/index.js +36676 -23394
  6. package/lib/Defaults/index.d.ts +1 -1
  7. package/lib/Defaults/index.d.ts.map +1 -1
  8. package/lib/Defaults/index.js +7 -7
  9. package/lib/Defaults/index.js.map +1 -1
  10. package/lib/Signal/libsignal.js +1 -1
  11. package/lib/Signal/lid-mapping.js +2 -2
  12. package/lib/Signal/lid-mapping.js.map +1 -1
  13. package/lib/Socket/Client/types.d.ts +2 -2
  14. package/lib/Socket/Client/types.d.ts.map +1 -1
  15. package/lib/Socket/Client/websocket.d.ts +2 -2
  16. package/lib/Socket/Client/websocket.d.ts.map +1 -1
  17. package/lib/Socket/Client/websocket.js +2 -2
  18. package/lib/Socket/Client/websocket.js.map +1 -1
  19. package/lib/Socket/business.d.ts +3 -1
  20. package/lib/Socket/business.d.ts.map +1 -1
  21. package/lib/Socket/chats.d.ts +2 -0
  22. package/lib/Socket/chats.d.ts.map +1 -1
  23. package/lib/Socket/chats.js +5 -3
  24. package/lib/Socket/chats.js.map +1 -1
  25. package/lib/Socket/communities.d.ts +3 -1
  26. package/lib/Socket/communities.d.ts.map +1 -1
  27. package/lib/Socket/groups.d.ts +2 -0
  28. package/lib/Socket/groups.d.ts.map +1 -1
  29. package/lib/Socket/groups.js +0 -1
  30. package/lib/Socket/groups.js.map +1 -1
  31. package/lib/Socket/index.d.ts +3 -1
  32. package/lib/Socket/index.d.ts.map +1 -1
  33. package/lib/Socket/messages-recv.d.ts +3 -1
  34. package/lib/Socket/messages-recv.d.ts.map +1 -1
  35. package/lib/Socket/messages-recv.js +102 -45
  36. package/lib/Socket/messages-recv.js.map +1 -1
  37. package/lib/Socket/messages-send.d.ts +3 -1
  38. package/lib/Socket/messages-send.d.ts.map +1 -1
  39. package/lib/Socket/messages-send.js +77 -56
  40. package/lib/Socket/messages-send.js.map +1 -1
  41. package/lib/Socket/newsletter.d.ts +2 -0
  42. package/lib/Socket/newsletter.d.ts.map +1 -1
  43. package/lib/Socket/socket.d.ts +2 -0
  44. package/lib/Socket/socket.d.ts.map +1 -1
  45. package/lib/Socket/socket.js +57 -16
  46. package/lib/Socket/socket.js.map +1 -1
  47. package/lib/Types/Auth.d.ts +4 -0
  48. package/lib/Types/Auth.d.ts.map +1 -1
  49. package/lib/Types/Message.d.ts +2 -0
  50. package/lib/Types/Message.d.ts.map +1 -1
  51. package/lib/Types/Message.js.map +1 -1
  52. package/lib/Utils/auth-utils.js +1 -1
  53. package/lib/Utils/auth-utils.js.map +1 -1
  54. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  55. package/lib/Utils/decode-wa-message.js +5 -1
  56. package/lib/Utils/decode-wa-message.js.map +1 -1
  57. package/lib/Utils/event-buffer.js +2 -2
  58. package/lib/Utils/event-buffer.js.map +1 -1
  59. package/lib/Utils/generics.d.ts +1 -1
  60. package/lib/Utils/generics.d.ts.map +1 -1
  61. package/lib/Utils/generics.js +3 -3
  62. package/lib/Utils/generics.js.map +1 -1
  63. package/lib/Utils/history.d.ts.map +1 -1
  64. package/lib/Utils/history.js +7 -1
  65. package/lib/Utils/history.js.map +1 -1
  66. package/lib/Utils/index.d.ts +0 -1
  67. package/lib/Utils/index.d.ts.map +1 -1
  68. package/lib/Utils/index.js +0 -1
  69. package/lib/Utils/index.js.map +1 -1
  70. package/lib/Utils/message-retry-manager.d.ts +3 -3
  71. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  72. package/lib/Utils/message-retry-manager.js +25 -2
  73. package/lib/Utils/message-retry-manager.js.map +1 -1
  74. package/lib/Utils/messages-media.js +1 -1
  75. package/lib/Utils/messages-media.js.map +1 -1
  76. package/lib/Utils/messages.d.ts +13 -0
  77. package/lib/Utils/messages.d.ts.map +1 -1
  78. package/lib/Utils/messages.js +30 -0
  79. package/lib/Utils/messages.js.map +1 -1
  80. package/lib/Utils/process-message.d.ts +20 -2
  81. package/lib/Utils/process-message.d.ts.map +1 -1
  82. package/lib/Utils/process-message.js +75 -3
  83. package/lib/Utils/process-message.js.map +1 -1
  84. package/lib/Utils/validate-connection.d.ts.map +1 -1
  85. package/lib/Utils/validate-connection.js +7 -2
  86. package/lib/Utils/validate-connection.js.map +1 -1
  87. package/package.json +4 -4
  88. package/lib/Utils/baileys-event-stream.d.ts +0 -17
  89. package/lib/Utils/baileys-event-stream.d.ts.map +0 -1
  90. package/lib/Utils/baileys-event-stream.js +0 -56
  91. package/lib/Utils/baileys-event-stream.js.map +0 -1
@@ -189,6 +189,16 @@ export const makeMessagesSocket = (config) => {
189
189
  if (lidResults.length > 0) {
190
190
  logger.trace('Storing LID maps from device call');
191
191
  await signalRepository.lidMapping.storeLIDPNMappings(lidResults.map(a => ({ lid: a.lid, pn: a.id })));
192
+ // Force-refresh sessions for newly mapped LIDs to align identity addressing
193
+ try {
194
+ const lids = lidResults.map(a => a.lid);
195
+ if (lids.length) {
196
+ await assertSessions(lids, true);
197
+ }
198
+ }
199
+ catch (e) {
200
+ logger.warn({ e, count: lidResults.length }, 'failed to assert sessions for newly mapped LIDs');
201
+ }
192
202
  }
193
203
  const extracted = extractDeviceJids(result?.list, authState.creds.me.id, authState.creds.me.lid, ignoreZeroDevices);
194
204
  const deviceMap = {};
@@ -244,7 +254,7 @@ export const makeMessagesSocket = (config) => {
244
254
  }
245
255
  return deviceResults;
246
256
  };
247
- const assertSessions = async (jids) => {
257
+ const assertSessions = async (jids, force) => {
248
258
  let didFetchNewSession = false;
249
259
  const uniqueJids = [...new Set(jids)]; // Deduplicate JIDs
250
260
  const jidsRequiringFetch = [];
@@ -254,7 +264,7 @@ export const makeMessagesSocket = (config) => {
254
264
  const signalId = signalRepository.jidToSignalProtocolAddress(jid);
255
265
  const cachedSession = peerSessionsCache.get(signalId);
256
266
  if (cachedSession !== undefined) {
257
- if (cachedSession) {
267
+ if (cachedSession && !force) {
258
268
  continue; // Session exists in cache
259
269
  }
260
270
  }
@@ -262,7 +272,7 @@ export const makeMessagesSocket = (config) => {
262
272
  const sessionValidation = await signalRepository.validateSession(jid);
263
273
  const hasSession = sessionValidation.exists;
264
274
  peerSessionsCache.set(signalId, hasSession);
265
- if (hasSession) {
275
+ if (hasSession && !force) {
266
276
  continue;
267
277
  }
268
278
  }
@@ -286,10 +296,12 @@ export const makeMessagesSocket = (config) => {
286
296
  {
287
297
  tag: 'key',
288
298
  attrs: {},
289
- content: wireJids.map(jid => ({
290
- tag: 'user',
291
- attrs: { jid }
292
- }))
299
+ content: wireJids.map(jid => {
300
+ const attrs = { jid };
301
+ if (force)
302
+ attrs.reason = 'identity';
303
+ return { tag: 'user', attrs };
304
+ })
293
305
  }
294
306
  ]
295
307
  });
@@ -398,6 +410,7 @@ export const makeMessagesSocket = (config) => {
398
410
  const isStatus = jid === statusJid;
399
411
  const isLid = server === 'lid';
400
412
  const isNewsletter = server === 'newsletter';
413
+ const isGroupOrStatus = isGroup || isStatus;
401
414
  const finalJid = jid;
402
415
  msgId = msgId || generateMessageIDV2(meId);
403
416
  useUserDevicesCache = useUserDevicesCache !== false;
@@ -455,7 +468,7 @@ export const makeMessagesSocket = (config) => {
455
468
  if (normalizeMessageContent(message)?.pinInChatMessage) {
456
469
  extraAttrs['decrypt-fail'] = 'hide'; // todo: expand for reactions and other types
457
470
  }
458
- if (isGroup || isStatus) {
471
+ if (isGroupOrStatus && !isRetryResend) {
459
472
  const [groupData, senderKeyMap] = await Promise.all([
460
473
  (async () => {
461
474
  let groupData = useCachedGroupMetadata && cachedGroupMetadata ? await cachedGroupMetadata(jid) : undefined; // todo: should we rely on the cache specially if the cache is outdated and the metadata has new fields?
@@ -477,34 +490,24 @@ export const makeMessagesSocket = (config) => {
477
490
  return {};
478
491
  })()
479
492
  ]);
480
- if (!participant) {
481
- const participantsList = [];
482
- if (isStatus) {
483
- if (statusJidList?.length)
484
- participantsList.push(...statusJidList);
485
- }
486
- else {
487
- // default to LID based groups
488
- let groupAddressingMode = 'lid';
489
- if (groupData) {
490
- participantsList.push(...groupData.participants.map(p => p.id));
491
- groupAddressingMode = groupData?.addressingMode || groupAddressingMode;
492
- }
493
- // default to lid addressing mode in a group
494
- additionalAttributes = {
495
- ...additionalAttributes,
496
- addressing_mode: groupAddressingMode
497
- };
498
- }
499
- const additionalDevices = await getUSyncDevices(participantsList, !!useUserDevicesCache, false);
500
- devices.push(...additionalDevices);
501
- }
493
+ const participantsList = groupData ? groupData.participants.map(p => p.id) : [];
502
494
  if (groupData?.ephemeralDuration && groupData.ephemeralDuration > 0) {
503
495
  additionalAttributes = {
504
496
  ...additionalAttributes,
505
497
  expiration: groupData.ephemeralDuration.toString()
506
498
  };
507
499
  }
500
+ if (isStatus && statusJidList) {
501
+ participantsList.push(...statusJidList);
502
+ }
503
+ const additionalDevices = await getUSyncDevices(participantsList, !!useUserDevicesCache, false);
504
+ devices.push(...additionalDevices);
505
+ if (isGroup) {
506
+ additionalAttributes = {
507
+ ...additionalAttributes,
508
+ addressing_mode: groupData?.addressingMode || 'lid'
509
+ };
510
+ }
508
511
  const patched = await patchMessageBeforeSending(message);
509
512
  if (Array.isArray(patched)) {
510
513
  throw new Boom('Per-jid patching is not supported in groups');
@@ -545,29 +548,12 @@ export const makeMessagesSocket = (config) => {
545
548
  shouldIncludeDeviceIdentity = shouldIncludeDeviceIdentity || result.shouldIncludeDeviceIdentity;
546
549
  participants.push(...result.nodes);
547
550
  }
548
- if (isRetryResend) {
549
- const { type, ciphertext: encryptedContent } = await signalRepository.encryptMessage({
550
- data: bytes,
551
- jid: participant?.jid
552
- });
553
- binaryNodeContent.push({
554
- tag: 'enc',
555
- attrs: {
556
- v: '2',
557
- type,
558
- count: participant.count.toString()
559
- },
560
- content: encryptedContent
561
- });
562
- }
563
- else {
564
- binaryNodeContent.push({
565
- tag: 'enc',
566
- attrs: { v: '2', type: 'skmsg', ...extraAttrs },
567
- content: ciphertext
568
- });
569
- await authState.keys.set({ 'sender-key-memory': { [jid]: senderKeyMap } });
570
- }
551
+ binaryNodeContent.push({
552
+ tag: 'enc',
553
+ attrs: { v: '2', type: 'skmsg', ...extraAttrs },
554
+ content: ciphertext
555
+ });
556
+ await authState.keys.set({ 'sender-key-memory': { [jid]: senderKeyMap } });
571
557
  }
572
558
  else {
573
559
  // ADDRESSING CONSISTENCY: Match own identity to conversation context
@@ -581,7 +567,7 @@ export const makeMessagesSocket = (config) => {
581
567
  logger.debug({ to: jid, ownId }, 'Using PN identity for @s.whatsapp.net conversation');
582
568
  }
583
569
  const { user: ownUser } = jidDecode(ownId);
584
- if (!participant) {
570
+ if (!isRetryResend) {
585
571
  const targetUserServer = isLid ? 'lid' : 's.whatsapp.net';
586
572
  devices.push({
587
573
  user,
@@ -647,6 +633,31 @@ export const makeMessagesSocket = (config) => {
647
633
  }
648
634
  shouldIncludeDeviceIdentity = shouldIncludeDeviceIdentity || s1 || s2;
649
635
  }
636
+ if (isRetryResend) {
637
+ const isParticipantLid = isLidUser(participant.jid);
638
+ const isMe = areJidsSameUser(participant.jid, isParticipantLid ? meLid : meId);
639
+ const encodedMessageToSend = isMe
640
+ ? encodeWAMessage({
641
+ deviceSentMessage: {
642
+ destinationJid,
643
+ message
644
+ }
645
+ })
646
+ : encodeWAMessage(message);
647
+ const { type, ciphertext: encryptedContent } = await signalRepository.encryptMessage({
648
+ data: encodedMessageToSend,
649
+ jid: participant.jid
650
+ });
651
+ binaryNodeContent.push({
652
+ tag: 'enc',
653
+ attrs: {
654
+ v: '2',
655
+ type,
656
+ count: participant.count.toString()
657
+ },
658
+ content: encryptedContent
659
+ });
660
+ }
650
661
  if (participants.length) {
651
662
  if (additionalAttributes?.['category'] === 'peer') {
652
663
  const peerNode = participants[0]?.content?.[0];
@@ -700,6 +711,16 @@ export const makeMessagesSocket = (config) => {
700
711
  });
701
712
  logger.debug({ jid }, 'adding device identity');
702
713
  }
714
+ const contactTcTokenData = !isGroup && !isRetryResend && !isStatus ? await authState.keys.get('tctoken', [destinationJid]) : {};
715
+ const tcTokenBuffer = contactTcTokenData[destinationJid]?.token;
716
+ if (tcTokenBuffer) {
717
+ ;
718
+ stanza.content.push({
719
+ tag: 'tctoken',
720
+ attrs: {},
721
+ content: tcTokenBuffer
722
+ });
723
+ }
703
724
  if (additionalNodes && additionalNodes.length > 0) {
704
725
  ;
705
726
  stanza.content.push(...additionalNodes);
@@ -941,8 +962,8 @@ export const makeMessagesSocket = (config) => {
941
962
  additionalNodes
942
963
  });
943
964
  if (config.emitOwnEvents) {
944
- process.nextTick(() => {
945
- processingMutex.mutex(() => upsertMessage(fullMsg, 'append'));
965
+ process.nextTick(async () => {
966
+ await processingMutex.mutex(() => upsertMessage(fullMsg, 'append'));
946
967
  });
947
968
  }
948
969
  return fullMsg;
@@ -1 +1 @@
1
- {"version":3,"file":"messages-send.js","sourceRoot":"","sources":["../../src/Socket/messages-send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages-send.js","sourceRoot":"","sources":["../../src/Socket/messages-send.ts"],"names":[],"mappings":"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"}
@@ -134,6 +134,8 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
134
134
  onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
135
135
  uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
136
136
  uploadPreKeysToServerIfRequired: () => Promise<void>;
137
+ digestKeyBundle: () => Promise<void>;
138
+ rotateSignedPreKey: () => Promise<void>;
137
139
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
138
140
  wamBuffer: import("../index.js").BinaryInfo;
139
141
  waitForConnectionUpdate: (check: (u: Partial<import("../index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"newsletter.d.ts","sourceRoot":"","sources":["../../src/Socket/newsletter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AA0CxF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,YAAY;6BAkDxB,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAAC;4BAbrD,MAAM,WAAW,gBAAgB;;iCAwClC,MAAM;qBACD,MAAM;;+BAOb,QAAQ,GAAG,KAAK,OAAO,MAAM;4BActC,MAAM;8BAIJ,MAAM;0BAIV,MAAM;4BAIJ,MAAM;gCAII,MAAM,QAAQ,MAAM;uCAIb,MAAM,eAAe,MAAM;mCAI/B,MAAM,WAAW,aAAa;mCAK9B,MAAM;kCAIP,MAAM,YAAY,MAAM,aAAa,MAAM;mCAmB1C,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM;sCA8BhD,MAAM,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;gCAgBnD,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;iCASvB,MAAM,eAAe,MAAM;4BAQhC,MAAM,WAAW,MAAM;4BAIvB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2B8nb,CAAC;;;;;;;;;0DAnPhqb,GAAG,0BAA2B,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4NpC,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,MAAM,GAAG,KAAG,kBAkBrD,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"newsletter.d.ts","sourceRoot":"","sources":["../../src/Socket/newsletter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AA0CxF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,YAAY;6BAkDxB,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAAC;4BAbrD,MAAM,WAAW,gBAAgB;;iCAwClC,MAAM;qBACD,MAAM;;+BAOb,QAAQ,GAAG,KAAK,OAAO,MAAM;4BActC,MAAM;8BAIJ,MAAM;0BAIV,MAAM;4BAIJ,MAAM;gCAII,MAAM,QAAQ,MAAM;uCAIb,MAAM,eAAe,MAAM;mCAI/B,MAAM,WAAW,aAAa;mCAK9B,MAAM;kCAIP,MAAM,YAAY,MAAM,aAAa,MAAM;mCAmB1C,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM;sCA8BhD,MAAM,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;gCAgBnD,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;iCASvB,MAAM,eAAe,MAAM;4BAQhC,MAAM,WAAW,MAAM;4BAIvB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2B4ob,CAAC;;;;;;;;;0DAnP9qb,GAAG,0BAA2B,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4NpC,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,MAAM,GAAG,KAAG,kBAkBrD,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -37,6 +37,8 @@ export declare const makeSocket: (config: SocketConfig) => {
37
37
  onUnexpectedError: (err: Error | Boom, msg: string) => void;
38
38
  uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
39
39
  uploadPreKeysToServerIfRequired: () => Promise<void>;
40
+ digestKeyBundle: () => Promise<void>;
41
+ rotateSignedPreKey: () => Promise<void>;
40
42
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
41
43
  wamBuffer: BinaryInfo;
42
44
  /** Waits for the connection to WA to reach a state */
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/Socket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAcjC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,UAAU,CAAA;AAsBxD,OAAO,EAEN,KAAK,UAAU,EASf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C;;;;;GAKG;AAEH,eAAO,MAAM,UAAU,GAAI,QAAQ,YAAY;UAw6B/B,IAAI;;;;;0DAh6BN,GAAG,0BACK,GACtB;;;;;;;;;;;kBAsH4B,UAAU,cAAc,MAAM;qBA3C3B,CAAC,SAAS,MAAM;;2BA/BV,UAAU,GAAG,MAAM;sBAiB9B,UAAU;mBAgiBP,MAAM;iBApGd,KAAK,GAAG,SAAS;6BAhPL,KAAK,GAAG,IAAI,OAAO,MAAM;;;sCA8WV,MAAM,sBAAsB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;;IA4TlG,sDAAsD;;+BApPrB,MAAM;oCApjBK,UAAU;iCAyDb,MAAM,EAAE;;gBA0BqD,OAAO;;CA2tB9G,CAAA"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/Socket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAcjC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,UAAU,CAAA;AAwBxD,OAAO,EAEN,KAAK,UAAU,EAUf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C;;;;;GAKG;AAEH,eAAO,MAAM,UAAU,GAAI,QAAQ,YAAY;UAi9B/B,IAAI;;;;;0DA58Bf,GAAG,0BAEN,GAAC;;;;;;;;;;;kBAyHyB,UAAU,cAAc,MAAM;qBA3C3B,CAAC,SAAS,MAAM;;2BA/BV,UAAU,GAAG,MAAM;sBAiB9B,UAAU;mBAikBP,MAAM;iBApGd,KAAK,GAAG,SAAS;6BAhPL,KAAK,GAAG,IAAI,OAAO,MAAM;;;2BA9JvB,OAAO,CAAC,IAAI,CAAC;8BAcV,OAAO,CAAC,IAAI,CAAC;sCA8fH,MAAM,sBAAsB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;;IAsUlG,sDAAsD;;+BA9PrB,MAAM;oCApjBK,UAAU;iCAyDb,MAAM,EAAE;;gBA0BqD,OAAO;;CAquB9G,CAAA"}
@@ -5,9 +5,9 @@ import { promisify } from 'util';
5
5
  import { proto } from '../../WAProto/index.js';
6
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, makeEventBuffer, makeNoiseHandler, printQRIfNecessaryListener, promiseTimeout } from '../Utils/index.js';
8
+ import { addTransactionCapability, aesEncryptCTR, bindWaitForConnectionUpdate, bytesToCrockford, configureSuccessfulPairing, Curve, derivePairingCodeKey, generateLoginNode, generateMdTagPrefix, generateRegistrationNode, getCodeFromWSError, getErrorCodeFromStreamError, getNextPreKeysNode, makeEventBuffer, makeNoiseHandler, printQRIfNecessaryListener, promiseTimeout, signedKeyPair, xmppSignedPreKey } from '../Utils/index.js';
9
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';
10
+ import { assertNodeErrorFree, binaryNodeToString, encodeBinaryNode, getAllBinaryNodeChildren, getBinaryNodeChild, getBinaryNodeChildren, isLidUser, jidDecode, jidEncode, S_WHATSAPP_NET } from '../WABinary/index.js';
11
11
  import { BinaryInfo } from '../WAM/BinaryInfo.js';
12
12
  import { USyncQuery, USyncUser } from '../WAUSync/index.js';
13
13
  import { WebSocketClient } from './Client/index.js';
@@ -22,13 +22,13 @@ export const makeSocket = (config) => {
22
22
  const publicWAMBuffer = new BinaryInfo();
23
23
  const uqTagId = generateMdTagPrefix();
24
24
  const generateMessageTag = () => `${uqTagId}${epoch++}`;
25
- /***
26
- * if (printQRInTerminal) {
27
- * console.warn(
28
- * '⚠️ 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.'
29
- *. )
30
- * }
31
- */
25
+ /****
26
+ if (printQRInTerminal) {
27
+ console.warn(
28
+ '⚠️ 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.'
29
+ )
30
+ }
31
+ */
32
32
  const url = typeof waWebSocketUrl === 'string' ? new URL(waWebSocketUrl) : waWebSocketUrl;
33
33
  if (config.mobile || url.protocol === 'tcp:') {
34
34
  throw new Boom('Mobile API is not supported anymore', { statusCode: DisconnectReason.loggedOut });
@@ -132,6 +132,37 @@ export const makeSocket = (config) => {
132
132
  }
133
133
  return result;
134
134
  };
135
+ // Validate current key-bundle on server; on failure, trigger pre-key upload and rethrow
136
+ const digestKeyBundle = async () => {
137
+ const res = await query({
138
+ tag: 'iq',
139
+ attrs: { to: S_WHATSAPP_NET, type: 'get', xmlns: 'encrypt' },
140
+ content: [{ tag: 'digest', attrs: {} }]
141
+ });
142
+ const digestNode = getBinaryNodeChild(res, 'digest');
143
+ if (!digestNode) {
144
+ await uploadPreKeys();
145
+ throw new Error('encrypt/get digest returned no digest node');
146
+ }
147
+ };
148
+ // Rotate our signed pre-key on server; on failure, run digest as fallback and rethrow
149
+ const rotateSignedPreKey = async () => {
150
+ const newId = (creds.signedPreKey.keyId || 0) + 1;
151
+ const skey = await signedKeyPair(creds.signedIdentityKey, newId);
152
+ await query({
153
+ tag: 'iq',
154
+ attrs: { to: S_WHATSAPP_NET, type: 'set', xmlns: 'encrypt' },
155
+ content: [
156
+ {
157
+ tag: 'rotate',
158
+ attrs: {},
159
+ content: [xmppSignedPreKey(skey)]
160
+ }
161
+ ]
162
+ });
163
+ // Persist new signed pre-key in creds
164
+ ev.emit('creds.update', { signedPreKey: skey });
165
+ };
135
166
  const executeUSyncQuery = async (usyncQuery) => {
136
167
  if (usyncQuery.protocols.length === 0) {
137
168
  throw new Boom('USyncQuery must have at least one protocol');
@@ -294,7 +325,7 @@ export const makeSocket = (config) => {
294
325
  payload: payloadEnc
295
326
  }
296
327
  }).finish());
297
- noise.finishInit();
328
+ await noise.finishInit();
298
329
  startKeepAliveRequest();
299
330
  };
300
331
  const getAvailablePreKeysOnServer = async () => {
@@ -410,8 +441,8 @@ export const makeSocket = (config) => {
410
441
  // Don't throw - allow connection to continue even if pre-key check fails
411
442
  }
412
443
  };
413
- const onMessageReceived = (data) => {
414
- noise.decodeFrame(data, frame => {
444
+ const onMessageReceived = async (data) => {
445
+ await noise.decodeFrame(data, frame => {
415
446
  // reset ping timeout
416
447
  lastDateRecv = new Date();
417
448
  let anyTriggered = false;
@@ -707,6 +738,13 @@ export const makeSocket = (config) => {
707
738
  try {
708
739
  await uploadPreKeysToServerIfRequired();
709
740
  await sendPassiveIq('active');
741
+ // After successful login, validate our key-bundle against server
742
+ try {
743
+ await digestKeyBundle();
744
+ }
745
+ catch (e) {
746
+ logger.warn({ e }, 'failed to run digest after login');
747
+ }
710
748
  }
711
749
  catch (err) {
712
750
  logger.warn({ err }, 'failed to send initial passive iq');
@@ -740,9 +778,10 @@ export const makeSocket = (config) => {
740
778
  }
741
779
  });
742
780
  ws.on('CB:stream:error', (node) => {
743
- logger.error({ node }, 'stream errored out');
781
+ const [reasonNode] = getAllBinaryNodeChildren(node);
782
+ logger.error({ reasonNode, fullErrorNode: node }, 'stream errored out');
744
783
  const { reason, statusCode } = getErrorCodeFromStreamError(node);
745
- end(new Boom(`Stream Errored (${reason})`, { statusCode, data: node }));
784
+ end(new Boom(`Stream Errored (${reason})`, { statusCode, data: reasonNode || node }));
746
785
  });
747
786
  // stream fail, possible logout
748
787
  ws.on('CB:failure', (node) => {
@@ -752,9 +791,9 @@ export const makeSocket = (config) => {
752
791
  ws.on('CB:ib,,downgrade_webclient', () => {
753
792
  end(new Boom('Multi-device beta not joined', { statusCode: DisconnectReason.multideviceMismatch }));
754
793
  });
755
- ws.on('CB:ib,,offline_preview', (node) => {
794
+ ws.on('CB:ib,,offline_preview', async (node) => {
756
795
  logger.info('offline preview received', JSON.stringify(node));
757
- sendNode({
796
+ await sendNode({
758
797
  tag: 'ib',
759
798
  attrs: {},
760
799
  content: [{ tag: 'offline_batch', attrs: { count: '100' } }]
@@ -827,6 +866,8 @@ export const makeSocket = (config) => {
827
866
  onUnexpectedError,
828
867
  uploadPreKeys,
829
868
  uploadPreKeysToServerIfRequired,
869
+ digestKeyBundle,
870
+ rotateSignedPreKey,
830
871
  requestPairingCode,
831
872
  wamBuffer: publicWAMBuffer,
832
873
  /** Waits for the connection to WA to reach a state */