@queenanya/baileys 9.2.1 → 9.4.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 (327) hide show
  1. package/README.md +349 -1171
  2. package/WAProto/fix-imports.js +74 -18
  3. package/WAProto/index.js +201 -160
  4. package/engine-requirements.js +7 -7
  5. package/lib/Defaults/index.d.ts +19 -0
  6. package/lib/Defaults/index.d.ts.map +1 -1
  7. package/lib/Defaults/index.js +32 -6
  8. package/lib/Defaults/index.js.map +1 -1
  9. package/lib/Signal/libsignal.d.ts.map +1 -1
  10. package/lib/Signal/libsignal.js +61 -2
  11. package/lib/Signal/libsignal.js.map +1 -1
  12. package/lib/Signal/lid-mapping.d.ts +5 -9
  13. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  14. package/lib/Signal/lid-mapping.js +170 -70
  15. package/lib/Signal/lid-mapping.js.map +1 -1
  16. package/lib/Socket/Client/websocket.d.ts +1 -1
  17. package/lib/Socket/Client/websocket.d.ts.map +1 -1
  18. package/lib/Socket/Client/websocket.js +5 -1
  19. package/lib/Socket/Client/websocket.js.map +1 -1
  20. package/lib/Socket/business.d.ts +125 -5
  21. package/lib/Socket/business.d.ts.map +1 -1
  22. package/lib/Socket/business.js +11 -8
  23. package/lib/Socket/business.js.map +1 -1
  24. package/lib/Socket/chats.d.ts +22 -3
  25. package/lib/Socket/chats.d.ts.map +1 -1
  26. package/lib/Socket/chats.js +277 -58
  27. package/lib/Socket/chats.js.map +1 -1
  28. package/lib/Socket/communities.d.ts +125 -5
  29. package/lib/Socket/communities.d.ts.map +1 -1
  30. package/lib/Socket/groups.d.ts +19 -3
  31. package/lib/Socket/groups.d.ts.map +1 -1
  32. package/lib/Socket/groups.js +7 -1
  33. package/lib/Socket/groups.js.map +1 -1
  34. package/lib/Socket/index.d.ts +125 -5
  35. package/lib/Socket/index.d.ts.map +1 -1
  36. package/lib/Socket/index.js +0 -6
  37. package/lib/Socket/index.js.map +1 -1
  38. package/lib/Socket/messages-recv.d.ts +126 -6
  39. package/lib/Socket/messages-recv.d.ts.map +1 -1
  40. package/lib/Socket/messages-recv.js +771 -177
  41. package/lib/Socket/messages-recv.js.map +1 -1
  42. package/lib/Socket/messages-send.d.ts +129 -7
  43. package/lib/Socket/messages-send.d.ts.map +1 -1
  44. package/lib/Socket/messages-send.js +430 -119
  45. package/lib/Socket/messages-send.js.map +1 -1
  46. package/lib/Socket/newsletter.d.ts +20 -5
  47. package/lib/Socket/newsletter.d.ts.map +1 -1
  48. package/lib/Socket/newsletter.js +2 -47
  49. package/lib/Socket/newsletter.js.map +1 -1
  50. package/lib/Socket/socket.d.ts +3 -1
  51. package/lib/Socket/socket.d.ts.map +1 -1
  52. package/lib/Socket/socket.js +151 -29
  53. package/lib/Socket/socket.js.map +1 -1
  54. package/lib/Types/Auth.d.ts +2 -0
  55. package/lib/Types/Auth.d.ts.map +1 -1
  56. package/lib/Types/Call.d.ts +10 -1
  57. package/lib/Types/Call.d.ts.map +1 -1
  58. package/lib/Types/Contact.d.ts +2 -0
  59. package/lib/Types/Contact.d.ts.map +1 -1
  60. package/lib/Types/Events.d.ts +60 -6
  61. package/lib/Types/Events.d.ts.map +1 -1
  62. package/lib/Types/GroupMetadata.d.ts +4 -0
  63. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  64. package/lib/Types/Message.d.ts +530 -16
  65. package/lib/Types/Message.d.ts.map +1 -1
  66. package/lib/Types/Message.js.map +1 -1
  67. package/lib/Types/Newsletter.d.ts +32 -45
  68. package/lib/Types/Newsletter.d.ts.map +1 -1
  69. package/lib/Types/Newsletter.js +25 -23
  70. package/lib/Types/Newsletter.js.map +1 -1
  71. package/lib/Types/State.d.ts +54 -0
  72. package/lib/Types/State.d.ts.map +1 -1
  73. package/lib/Types/State.js +42 -0
  74. package/lib/Types/State.js.map +1 -1
  75. package/lib/Types/index.d.ts +9 -0
  76. package/lib/Types/index.d.ts.map +1 -1
  77. package/lib/Types/index.js.map +1 -1
  78. package/lib/Utils/auth-utils.d.ts.map +1 -1
  79. package/lib/Utils/auth-utils.js +53 -20
  80. package/lib/Utils/auth-utils.js.map +1 -1
  81. package/lib/Utils/browser-utils.d.ts +13 -0
  82. package/lib/Utils/browser-utils.d.ts.map +1 -1
  83. package/lib/Utils/browser-utils.js +90 -10
  84. package/lib/Utils/browser-utils.js.map +1 -1
  85. package/lib/Utils/chat-utils.d.ts +30 -0
  86. package/lib/Utils/chat-utils.d.ts.map +1 -1
  87. package/lib/Utils/chat-utils.js +134 -59
  88. package/lib/Utils/chat-utils.js.map +1 -1
  89. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  90. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  91. package/lib/Utils/companion-reg-client-utils.js +34 -0
  92. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  93. package/lib/Utils/crypto.d.ts +4 -8
  94. package/lib/Utils/crypto.d.ts.map +1 -1
  95. package/lib/Utils/crypto.js +2 -26
  96. package/lib/Utils/crypto.js.map +1 -1
  97. package/lib/Utils/decode-wa-message.d.ts +12 -0
  98. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  99. package/lib/Utils/decode-wa-message.js +16 -0
  100. package/lib/Utils/decode-wa-message.js.map +1 -1
  101. package/lib/Utils/event-buffer.d.ts.map +1 -1
  102. package/lib/Utils/event-buffer.js +43 -8
  103. package/lib/Utils/event-buffer.js.map +1 -1
  104. package/lib/Utils/generics.d.ts +3 -1
  105. package/lib/Utils/generics.d.ts.map +1 -1
  106. package/lib/Utils/generics.js +17 -4
  107. package/lib/Utils/generics.js.map +1 -1
  108. package/lib/Utils/history.d.ts +8 -3
  109. package/lib/Utils/history.d.ts.map +1 -1
  110. package/lib/Utils/history.js +60 -16
  111. package/lib/Utils/history.js.map +1 -1
  112. package/lib/Utils/identity-change-handler.d.ts +44 -0
  113. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  114. package/lib/Utils/identity-change-handler.js +50 -0
  115. package/lib/Utils/identity-change-handler.js.map +1 -0
  116. package/lib/Utils/index.d.ts +6 -0
  117. package/lib/Utils/index.d.ts.map +1 -1
  118. package/lib/Utils/index.js +6 -0
  119. package/lib/Utils/index.js.map +1 -1
  120. package/lib/Utils/interactive-message.d.ts +201 -0
  121. package/lib/Utils/interactive-message.d.ts.map +1 -0
  122. package/lib/Utils/interactive-message.js +256 -0
  123. package/lib/Utils/interactive-message.js.map +1 -0
  124. package/lib/Utils/lt-hash.d.ts +7 -12
  125. package/lib/Utils/lt-hash.d.ts.map +1 -1
  126. package/lib/Utils/lt-hash.js +2 -42
  127. package/lib/Utils/lt-hash.js.map +1 -1
  128. package/lib/Utils/make-mutex.d.ts +1 -0
  129. package/lib/Utils/make-mutex.d.ts.map +1 -1
  130. package/lib/Utils/make-mutex.js +20 -27
  131. package/lib/Utils/make-mutex.js.map +1 -1
  132. package/lib/Utils/message-composer.d.ts +5 -0
  133. package/lib/Utils/message-composer.d.ts.map +1 -0
  134. package/lib/Utils/message-composer.js +5 -0
  135. package/lib/Utils/message-composer.js.map +1 -0
  136. package/lib/Utils/message-retry-manager.d.ts +30 -2
  137. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  138. package/lib/Utils/message-retry-manager.js +58 -5
  139. package/lib/Utils/message-retry-manager.js.map +1 -1
  140. package/lib/Utils/messages-media.d.ts +35 -5
  141. package/lib/Utils/messages-media.d.ts.map +1 -1
  142. package/lib/Utils/messages-media.js +171 -51
  143. package/lib/Utils/messages-media.js.map +1 -1
  144. package/lib/Utils/messages.d.ts +2 -0
  145. package/lib/Utils/messages.d.ts.map +1 -1
  146. package/lib/Utils/messages.js +475 -35
  147. package/lib/Utils/messages.js.map +1 -1
  148. package/lib/Utils/noise-handler.d.ts +4 -4
  149. package/lib/Utils/noise-handler.d.ts.map +1 -1
  150. package/lib/Utils/noise-handler.js +139 -85
  151. package/lib/Utils/noise-handler.js.map +1 -1
  152. package/lib/Utils/offline-node-processor.d.ts +17 -0
  153. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  154. package/lib/Utils/offline-node-processor.js +40 -0
  155. package/lib/Utils/offline-node-processor.js.map +1 -0
  156. package/lib/Utils/process-message.d.ts.map +1 -1
  157. package/lib/Utils/process-message.js +115 -16
  158. package/lib/Utils/process-message.js.map +1 -1
  159. package/lib/Utils/reporting-utils.d.ts +11 -0
  160. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  161. package/lib/Utils/reporting-utils.js +258 -0
  162. package/lib/Utils/reporting-utils.js.map +1 -0
  163. package/lib/Utils/stanza-ack.d.ts +11 -0
  164. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  165. package/lib/Utils/stanza-ack.js +38 -0
  166. package/lib/Utils/stanza-ack.js.map +1 -0
  167. package/lib/Utils/sync-action-utils.d.ts +19 -0
  168. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  169. package/lib/Utils/sync-action-utils.js +49 -0
  170. package/lib/Utils/sync-action-utils.js.map +1 -0
  171. package/lib/Utils/tc-token-utils.d.ts +37 -0
  172. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  173. package/lib/Utils/tc-token-utils.js +163 -0
  174. package/lib/Utils/tc-token-utils.js.map +1 -0
  175. package/lib/Utils/use-mongo-file-auth-state.d.ts +16 -0
  176. package/lib/Utils/use-mongo-file-auth-state.d.ts.map +1 -0
  177. package/lib/Utils/use-mongo-file-auth-state.js +60 -0
  178. package/lib/Utils/use-mongo-file-auth-state.js.map +1 -0
  179. package/lib/Utils/use-multi-file-auth-state.js +1 -1
  180. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  181. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -1
  182. package/lib/Utils/use-single-file-auth-state.js.map +1 -1
  183. package/lib/Utils/validate-connection.d.ts.map +1 -1
  184. package/lib/Utils/validate-connection.js +11 -1
  185. package/lib/Utils/validate-connection.js.map +1 -1
  186. package/lib/WABinary/decode.d.ts.map +1 -1
  187. package/lib/WABinary/decode.js +24 -0
  188. package/lib/WABinary/decode.js.map +1 -1
  189. package/lib/WABinary/encode.js +5 -1
  190. package/lib/WABinary/encode.js.map +1 -1
  191. package/lib/WABinary/generic-utils.d.ts +10 -1
  192. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  193. package/lib/WABinary/generic-utils.js +42 -8
  194. package/lib/WABinary/generic-utils.js.map +1 -1
  195. package/lib/WABinary/jid-utils.js.map +1 -1
  196. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  197. package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
  198. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  199. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  200. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  201. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  202. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  203. package/lib/WAUSync/Protocols/index.d.ts +1 -0
  204. package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
  205. package/lib/WAUSync/Protocols/index.js +1 -0
  206. package/lib/WAUSync/Protocols/index.js.map +1 -1
  207. package/lib/WAUSync/USyncQuery.d.ts +1 -0
  208. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  209. package/lib/WAUSync/USyncQuery.js +6 -2
  210. package/lib/WAUSync/USyncQuery.js.map +1 -1
  211. package/lib/WAUSync/USyncUser.d.ts +4 -0
  212. package/lib/WAUSync/USyncUser.d.ts.map +1 -1
  213. package/lib/WAUSync/USyncUser.js +8 -0
  214. package/lib/WAUSync/USyncUser.js.map +1 -1
  215. package/lib/addons/anti-delete.d.ts +72 -0
  216. package/lib/addons/anti-delete.d.ts.map +1 -0
  217. package/lib/addons/anti-delete.js +165 -0
  218. package/lib/addons/anti-delete.js.map +1 -0
  219. package/lib/addons/auto-reply.d.ts +67 -0
  220. package/lib/addons/auto-reply.d.ts.map +1 -0
  221. package/lib/addons/auto-reply.js +145 -0
  222. package/lib/addons/auto-reply.js.map +1 -0
  223. package/lib/addons/browser-presets.d.ts +16 -0
  224. package/lib/addons/browser-presets.d.ts.map +1 -0
  225. package/lib/addons/browser-presets.js +24 -0
  226. package/lib/addons/browser-presets.js.map +1 -0
  227. package/lib/addons/button-sender.d.ts +260 -0
  228. package/lib/addons/button-sender.d.ts.map +1 -0
  229. package/lib/addons/button-sender.js +771 -0
  230. package/lib/addons/button-sender.js.map +1 -0
  231. package/lib/addons/call-handler.d.ts +79 -0
  232. package/lib/addons/call-handler.d.ts.map +1 -0
  233. package/lib/addons/call-handler.js +342 -0
  234. package/lib/addons/call-handler.js.map +1 -0
  235. package/lib/addons/from-chats.d.ts +30 -0
  236. package/lib/addons/from-chats.d.ts.map +1 -0
  237. package/lib/addons/from-chats.js +38 -0
  238. package/lib/addons/from-chats.js.map +1 -0
  239. package/lib/addons/from-messages-recv.d.ts +59 -0
  240. package/lib/addons/from-messages-recv.d.ts.map +1 -0
  241. package/lib/addons/from-messages-recv.js +326 -0
  242. package/lib/addons/from-messages-recv.js.map +1 -0
  243. package/lib/addons/from-messages-send.d.ts +50 -0
  244. package/lib/addons/from-messages-send.d.ts.map +1 -0
  245. package/lib/addons/from-messages-send.js +148 -0
  246. package/lib/addons/from-messages-send.js.map +1 -0
  247. package/lib/addons/from-messages.d.ts +52 -0
  248. package/lib/addons/from-messages.d.ts.map +1 -0
  249. package/lib/addons/from-messages.js +304 -0
  250. package/lib/addons/from-messages.js.map +1 -0
  251. package/lib/addons/index.d.ts +67 -0
  252. package/lib/addons/index.d.ts.map +1 -0
  253. package/lib/addons/index.js +86 -0
  254. package/lib/addons/index.js.map +1 -0
  255. package/lib/addons/interactive-message.d.ts +201 -0
  256. package/lib/addons/interactive-message.d.ts.map +1 -0
  257. package/lib/addons/interactive-message.js +256 -0
  258. package/lib/addons/interactive-message.js.map +1 -0
  259. package/lib/addons/jid-plot.d.ts +49 -0
  260. package/lib/addons/jid-plot.d.ts.map +1 -0
  261. package/lib/addons/jid-plot.js +84 -0
  262. package/lib/addons/jid-plot.js.map +1 -0
  263. package/lib/addons/jid-plotting.d.ts +54 -0
  264. package/lib/addons/jid-plotting.d.ts.map +1 -0
  265. package/lib/addons/jid-plotting.js +150 -0
  266. package/lib/addons/jid-plotting.js.map +1 -0
  267. package/lib/addons/lid-support.d.ts +41 -0
  268. package/lib/addons/lid-support.d.ts.map +1 -0
  269. package/lib/addons/lid-support.js +42 -0
  270. package/lib/addons/lid-support.js.map +1 -0
  271. package/lib/addons/message-composer.d.ts +142 -0
  272. package/lib/addons/message-composer.d.ts.map +1 -0
  273. package/lib/addons/message-composer.js +377 -0
  274. package/lib/addons/message-composer.js.map +1 -0
  275. package/lib/addons/message-scheduler.d.ts +77 -0
  276. package/lib/addons/message-scheduler.d.ts.map +1 -0
  277. package/lib/addons/message-scheduler.js +108 -0
  278. package/lib/addons/message-scheduler.js.map +1 -0
  279. package/lib/addons/message-search.d.ts +51 -0
  280. package/lib/addons/message-search.d.ts.map +1 -0
  281. package/lib/addons/message-search.js +171 -0
  282. package/lib/addons/message-search.js.map +1 -0
  283. package/lib/addons/message-utils.d.ts +88 -0
  284. package/lib/addons/message-utils.d.ts.map +1 -0
  285. package/lib/addons/message-utils.js +292 -0
  286. package/lib/addons/message-utils.js.map +1 -0
  287. package/lib/addons/outgoing-calls.d.ts +64 -0
  288. package/lib/addons/outgoing-calls.d.ts.map +1 -0
  289. package/lib/addons/outgoing-calls.js +139 -0
  290. package/lib/addons/outgoing-calls.js.map +1 -0
  291. package/lib/addons/pairing-fix.d.ts +31 -0
  292. package/lib/addons/pairing-fix.d.ts.map +1 -0
  293. package/lib/addons/pairing-fix.js +74 -0
  294. package/lib/addons/pairing-fix.js.map +1 -0
  295. package/lib/addons/past-participants.d.ts +42 -0
  296. package/lib/addons/past-participants.d.ts.map +1 -0
  297. package/lib/addons/past-participants.js +41 -0
  298. package/lib/addons/past-participants.js.map +1 -0
  299. package/lib/addons/rich-response.d.ts +111 -0
  300. package/lib/addons/rich-response.d.ts.map +1 -0
  301. package/lib/addons/rich-response.js +152 -0
  302. package/lib/addons/rich-response.js.map +1 -0
  303. package/lib/addons/scheduling.d.ts +41 -0
  304. package/lib/addons/scheduling.d.ts.map +1 -0
  305. package/lib/addons/scheduling.js +110 -0
  306. package/lib/addons/scheduling.js.map +1 -0
  307. package/lib/addons/status-posting.d.ts +177 -0
  308. package/lib/addons/status-posting.d.ts.map +1 -0
  309. package/lib/addons/status-posting.js +240 -0
  310. package/lib/addons/status-posting.js.map +1 -0
  311. package/lib/addons/stickerpack.d.ts +37 -0
  312. package/lib/addons/stickerpack.d.ts.map +1 -0
  313. package/lib/addons/stickerpack.js +39 -0
  314. package/lib/addons/stickerpack.js.map +1 -0
  315. package/lib/addons/templates.d.ts +72 -0
  316. package/lib/addons/templates.d.ts.map +1 -0
  317. package/lib/addons/templates.js +145 -0
  318. package/lib/addons/templates.js.map +1 -0
  319. package/lib/addons/vcard.d.ts +59 -0
  320. package/lib/addons/vcard.d.ts.map +1 -0
  321. package/lib/addons/vcard.js +88 -0
  322. package/lib/addons/vcard.js.map +1 -0
  323. package/lib/index.d.ts +1 -0
  324. package/lib/index.d.ts.map +1 -1
  325. package/lib/index.js +1 -0
  326. package/lib/index.js.map +1 -1
  327. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"business.js","sourceRoot":"","sources":["../../src/Socket/business.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"business.js","sourceRoot":"","sources":["../../src/Socket/business.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,28 @@ import type { LabelActionBody } from '../Types/Label.js';
6
6
  import { type BinaryNode } from '../WABinary/index.js';
7
7
  import { USyncQuery } from '../WAUSync/index.js';
8
8
  export declare const makeChatsSocket: (config: SocketConfig) => {
9
+ serverProps: {
10
+ /** AB prop 10518: gate tctoken on 1:1 messages. Default true (safe: avoids 463). */
11
+ privacyTokenOn1to1: boolean;
12
+ /** AB prop 9666: gate tctoken on profile picture IQs. WA Web default: true. */
13
+ profilePicPrivacyToken: boolean;
14
+ /** AB prop 14303: issue tctokens to LID instead of PN. WA Web default: false. */
15
+ lidTrustedTokenIssueToLid: boolean;
16
+ };
9
17
  createCallLink: (type: "audio" | "video", event?: {
10
18
  startTime: number;
11
19
  }, timeoutMs?: number) => Promise<string | undefined>;
12
20
  getBotListV2: () => Promise<BotListInfo[]>;
13
- processingMutex: {
21
+ messageMutex: {
22
+ mutex<T>(code: () => Promise<T> | T): Promise<T>;
23
+ };
24
+ receiptMutex: {
25
+ mutex<T>(code: () => Promise<T> | T): Promise<T>;
26
+ };
27
+ appStatePatchMutex: {
28
+ mutex<T>(code: () => Promise<T> | T): Promise<T>;
29
+ };
30
+ notificationMutex: {
14
31
  mutex<T>(code: () => Promise<T> | T): Promise<T>;
15
32
  };
16
33
  fetchPrivacySettings: (force?: boolean) => Promise<{
@@ -19,7 +36,7 @@ export declare const makeChatsSocket: (config: SocketConfig) => {
19
36
  upsertMessage: (msg: WAMessage, type: MessageUpsertType) => Promise<void>;
20
37
  appPatch: (patchCreate: WAPatchCreate) => Promise<void>;
21
38
  sendPresenceUpdate: (type: WAPresence, toJid?: string) => Promise<void>;
22
- presenceSubscribe: (toJid: string, tcToken?: Buffer) => Promise<void>;
39
+ presenceSubscribe: (toJid: string) => Promise<void>;
23
40
  profilePictureUrl: (jid: string, type?: "preview" | "image", timeoutMs?: number) => Promise<string | undefined>;
24
41
  fetchBlocklist: () => Promise<(string | undefined)[]>;
25
42
  fetchStatus: (...jids: string[]) => Promise<import("../WAUSync/index.js").USyncQueryResultList[] | undefined>;
@@ -81,13 +98,15 @@ export declare const makeChatsSocket: (config: SocketConfig) => {
81
98
  sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
82
99
  sendNode: (frame: BinaryNode) => Promise<void>;
83
100
  logout: (msg?: string) => Promise<void>;
84
- end: (error: Error | undefined) => void;
101
+ end: (error: Error | undefined) => Promise<void>;
85
102
  onUnexpectedError: (err: Error | Boom, msg: string) => void;
86
103
  uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
87
104
  uploadPreKeysToServerIfRequired: () => Promise<void>;
88
105
  digestKeyBundle: () => Promise<void>;
89
106
  rotateSignedPreKey: () => Promise<void>;
90
107
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
108
+ updateServerTimeOffset: ({ attrs }: BinaryNode) => void;
109
+ sendUnifiedSession: () => Promise<void>;
91
110
  wamBuffer: import("../index.js").BinaryInfo;
92
111
  waitForConnectionUpdate: (check: (u: Partial<import("../Types/index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
93
112
  sendWAMBuffer: (wamBuffer: Buffer) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/Socket/chats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EACX,WAAW,EAEX,gBAAgB,EAGhB,iBAAiB,EAEjB,YAAY,EAEZ,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,aAAa,EAEb,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgBrD,OAAO,EACN,KAAK,UAAU,EAOf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAa,MAAM,YAAY,CAAA;AAIlD,eAAO,MAAM,eAAe,GAAI,QAAQ,YAAY;2BAqjBf,OAAO,GAAG,OAAO,UAAU;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,cAAc,MAAM;;;;;;;;;4BAqHnE,aAAa;+BA/FV,UAAU,UAAU,MAAM;+BAyChC,MAAM,YAAY,MAAM;6BAnFpB,MAAM,SAAQ,SAAS,GAAG,OAAO,cAA0B,MAAM;;2BA3XnE,MAAM,EAAE;yCAaM,MAAM,EAAE;gCAepD,MAAM,WACF,aAAa,eACT;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;gCAmCN,MAAM;kCA0BJ,MAAM;8BAkBV,MAAM;6BAkBP,MAAM,UAAU,OAAO,GAAG,SAAS;2DAqgBX,OAAO;+BAttB7B,kBAAkB;mCAJd,sBAAsB;mCAQtB,cAAc;iCAIhB,oBAAoB;yCAIZ,cAAc;iCAItB,cAAc;uCAIR,mBAAmB;oCAItB,sBAAsB;8CAIZ,MAAM;8BAyMtB,MAAM,KAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;;sBAyexD,gBAAgB,OAAO,MAAM;2BAvblB,cAAc,GAAG,QAAQ,kBAAkB,MAAM,GAAG,MAAM;4BA0d/D,MAAM,WAAW,KAAK,CAAC,eAAe,CAAC,cAAc;yBAYxD,MAAM;oBAYX,MAAM,UAAU,eAAe;wBAc3B,MAAM,WAAW,MAAM;2BAcpB,MAAM,WAAW,MAAM;2BAcvB,MAAM,aAAa,MAAM,WAAW,MAAM;8BAevC,MAAM,aAAa,MAAM,WAAW,MAAM;gBAhGxD,MAAM,YAAY;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,QAAQ,OAAO;sCA+G7C,gBAAgB;kCAYpB,MAAM;;;;;;0DA16BzB,GAAG,0BAEf,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmoCT,CAAA"}
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/Socket/chats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EACX,WAAW,EAEX,gBAAgB,EAGhB,iBAAiB,EAEjB,YAAY,EAEZ,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,aAAa,EAEb,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAqBrD,OAAO,EACN,KAAK,UAAU,EAWf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAa,MAAM,YAAY,CAAA;AAGlD,eAAO,MAAM,eAAe,GAAI,QAAQ,YAAY;;QA6BlD,oFAAoF;;QAEpF,+EAA+E;;QAE/E,iFAAiF;;;2BAwqB9C,OAAO,GAAG,OAAO,UAAU;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,cAAc,MAAM;;;;;;;;;;;;;;;;;;4BA0HnE,aAAa;+BApGV,UAAU,UAAU,MAAM;+BA8C1B,MAAM;6BA5GR,MAAM,SAAQ,SAAS,GAAG,OAAO,cAA0B,MAAM;;2BAhdnE,MAAM,EAAE;yCAaM,MAAM,EAAE;gCAepD,MAAM,WACF,aAAa,eACT;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;gCAmCN,MAAM;kCA0BJ,MAAM;8BAkBV,MAAM;6BAkBP,MAAM,UAAU,OAAO,GAAG,SAAS;2DAkoBX,OAAO;+BAn1B7B,kBAAkB;mCAJd,sBAAsB;mCAQtB,cAAc;iCAIhB,oBAAoB;yCAIZ,cAAc;iCAItB,cAAc;uCAIR,mBAAmB;oCAItB,sBAAsB;8CAIZ,MAAM;8BAqPtB,MAAM,KAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;;sBA0jBxD,gBAAgB,OAAO,MAAM;2BAxgBlB,cAAc,GAAG,QAAQ,kBAAkB,MAAM,GAAG,MAAM;4BA2iB/D,MAAM,WAAW,KAAK,CAAC,eAAe,CAAC,cAAc;yBAYxD,MAAM;oBAYX,MAAM,UAAU,eAAe;wBAc3B,MAAM,WAAW,MAAM;2BAcpB,MAAM,WAAW,MAAM;2BAcvB,MAAM,aAAa,MAAM,WAAW,MAAM;8BAevC,MAAM,aAAa,MAAM,WAAW,MAAM;gBAhGxD,MAAM,YAAY;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,QAAQ,OAAO;sCA+G7C,gBAAgB;kCAYpB,MAAM;;;;;;0DA3lCrC,GAAE,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAq6CrC,CAAA"}
@@ -1,26 +1,51 @@
1
1
  import NodeCache from '@cacheable/node-cache';
2
2
  import { Boom } from '@hapi/boom';
3
3
  import { proto } from '../../WAProto/index.js';
4
- import { DEFAULT_CACHE_TTLS, PROCESSABLE_HISTORY_TYPES } from '../Defaults/index.js';
4
+ import { DEFAULT_CACHE_TTLS, HISTORY_SYNC_PAUSED_TIMEOUT_MS, PROCESSABLE_HISTORY_TYPES } from '../Defaults/index.js';
5
5
  import { ALL_WA_PATCH_NAMES } from '../Types/index.js';
6
6
  import { SyncState } from '../Types/State.js';
7
- import { chatModificationToAppPatch, decodePatches, decodeSyncdSnapshot, encodeSyncdPatch, extractSyncdPatches, generateProfilePicture, getHistoryMsg, newLTHashState, processSyncAction } from '../Utils/index.js';
7
+ import { chatModificationToAppPatch, decodePatches, decodeSyncdSnapshot, encodeSyncdPatch, ensureLTHashStateVersion, extractSyncdPatches, generateProfilePicture, getHistoryMsg, isAppStateSyncIrrecoverable, isMissingKeyError, MAX_SYNC_ATTEMPTS, newLTHashState, processSyncAction } from '../Utils/index.js';
8
8
  import { makeMutex } from '../Utils/make-mutex.js';
9
9
  import processMessage from '../Utils/process-message.js';
10
- import { getBinaryNodeChild, getBinaryNodeChildren, jidDecode, jidNormalizedUser, reduceBinaryNodeToDictionary, S_WHATSAPP_NET } from '../WABinary/index.js';
10
+ import { buildTcTokenFromJid } from '../Utils/tc-token-utils.js';
11
+ import { getBinaryNodeChild, getBinaryNodeChildren, isHostedLidUser, isHostedPnUser, isLidUser, isPnUser, jidDecode, jidNormalizedUser, reduceBinaryNodeToDictionary, S_WHATSAPP_NET } from '../WABinary/index.js';
11
12
  import { USyncQuery, USyncUser } from '../WAUSync/index.js';
12
13
  import { makeSocket } from './socket.js';
13
- const MAX_SYNC_ATTEMPTS = 2;
14
14
  export const makeChatsSocket = (config) => {
15
15
  const { logger, markOnlineOnConnect, fireInitQueries, appStateMacVerification, shouldIgnoreJid, shouldSyncHistoryMessage, getMessage } = config;
16
16
  const sock = makeSocket(config);
17
- const { ev, ws, authState, generateMessageTag, sendNode, query, signalRepository, onUnexpectedError } = sock;
17
+ const { ev, ws, authState, generateMessageTag, sendNode, query, signalRepository, onUnexpectedError, sendUnifiedSession } = sock;
18
+ const getLIDForPN = signalRepository.lidMapping.getLIDForPN.bind(signalRepository.lidMapping);
18
19
  let privacySettings;
20
+ /** Server-assigned AB props for protocol behavior. */
21
+ const serverProps = {
22
+ /** AB prop 10518: gate tctoken on 1:1 messages. Default true (safe: avoids 463). */
23
+ privacyTokenOn1to1: true,
24
+ /** AB prop 9666: gate tctoken on profile picture IQs. WA Web default: true. */
25
+ profilePicPrivacyToken: true,
26
+ /** AB prop 14303: issue tctokens to LID instead of PN. WA Web default: false. */
27
+ lidTrustedTokenIssueToLid: false
28
+ };
19
29
  let syncState = SyncState.Connecting;
20
- /** this mutex ensures that the notifications (receipts, messages etc.) are processed in order */
21
- const processingMutex = makeMutex();
30
+ /** this mutex ensures that messages are processed in order */
31
+ const messageMutex = makeMutex();
32
+ /** this mutex ensures that receipts are processed in order */
33
+ const receiptMutex = makeMutex();
34
+ /** this mutex ensures that app state patches are processed in order */
35
+ const appStatePatchMutex = makeMutex();
36
+ /** this mutex ensures that notifications are processed in order */
37
+ const notificationMutex = makeMutex();
22
38
  // Timeout for AwaitingInitialSync state
23
39
  let awaitingSyncTimeout;
40
+ // In-memory history sync completion tracking (resets on reconnection)
41
+ const historySyncStatus = {
42
+ initialBootstrapComplete: false,
43
+ recentSyncComplete: false
44
+ };
45
+ let historySyncPausedTimeout;
46
+ // Collections blocked on missing app state sync keys (mirrors WA Web's "Blocked" state).
47
+ // When a key arrives via APP_STATE_SYNC_KEY_SHARE, these are re-synced.
48
+ const blockedCollections = new Set();
24
49
  const placeholderResendCache = config.placeholderResendCache ||
25
50
  new NodeCache({
26
51
  stdTTL: DEFAULT_CACHE_TTLS.MSG_RETRY, // 1 hour
@@ -251,6 +276,42 @@ export const makeChatsSocket = (config) => {
251
276
  return getBinaryNodeChildren(listNode, 'item').map(n => n.attrs.jid);
252
277
  };
253
278
  const updateBlockStatus = async (jid, action) => {
279
+ const normalizedJid = jidNormalizedUser(jid);
280
+ let lid;
281
+ let pn_jid;
282
+ if (isLidUser(normalizedJid) || isHostedLidUser(normalizedJid)) {
283
+ lid = normalizedJid;
284
+ if (action === 'block') {
285
+ const pn = await signalRepository.lidMapping.getPNForLID(normalizedJid);
286
+ if (!pn) {
287
+ throw new Boom(`Unable to resolve PN JID for LID: ${jid}`, { statusCode: 400 });
288
+ }
289
+ pn_jid = jidNormalizedUser(pn);
290
+ }
291
+ }
292
+ else if (isPnUser(normalizedJid) || isHostedPnUser(normalizedJid)) {
293
+ const mapped = await signalRepository.lidMapping.getLIDForPN(normalizedJid);
294
+ if (!mapped) {
295
+ throw new Boom(`Unable to resolve LID for PN JID: ${jid}`, { statusCode: 400 });
296
+ }
297
+ lid = mapped;
298
+ if (action === 'block') {
299
+ pn_jid = jidNormalizedUser(normalizedJid);
300
+ }
301
+ }
302
+ else {
303
+ throw new Boom(`Invalid jid: ${jid}`, { statusCode: 400 });
304
+ }
305
+ const itemAttrs = {
306
+ action,
307
+ jid: lid
308
+ };
309
+ if (action === 'block') {
310
+ if (!pn_jid) {
311
+ throw new Boom(`pn_jid required for block: ${jid}`, { statusCode: 400 });
312
+ }
313
+ itemAttrs.pn_jid = pn_jid;
314
+ }
254
315
  await query({
255
316
  tag: 'iq',
256
317
  attrs: {
@@ -261,10 +322,7 @@ export const makeChatsSocket = (config) => {
261
322
  content: [
262
323
  {
263
324
  tag: 'item',
264
- attrs: {
265
- action,
266
- jid
267
- }
325
+ attrs: itemAttrs
268
326
  }
269
327
  ]
270
328
  });
@@ -346,6 +404,15 @@ export const makeChatsSocket = (config) => {
346
404
  };
347
405
  };
348
406
  const resyncAppState = ev.createBufferedFunction(async (collections, isInitialSync) => {
407
+ const appStateSyncKeyCache = new Map();
408
+ const getCachedAppStateSyncKey = async (keyId) => {
409
+ if (appStateSyncKeyCache.has(keyId)) {
410
+ return appStateSyncKeyCache.get(keyId) ?? undefined;
411
+ }
412
+ const key = await getAppStateSyncKey(keyId);
413
+ appStateSyncKeyCache.set(keyId, key ?? null);
414
+ return key;
415
+ };
349
416
  // we use this to determine which events to fire
350
417
  // otherwise when we resync from scratch -- all notifications will fire
351
418
  const initialVersionMap = {};
@@ -354,6 +421,9 @@ export const makeChatsSocket = (config) => {
354
421
  const collectionsToHandle = new Set(collections);
355
422
  // in case something goes wrong -- ensure we don't enter a loop that cannot be exited from
356
423
  const attemptsMap = {};
424
+ // collections that failed and need a full snapshot on retry
425
+ // mirrors WA Web's ErrorFatal -> force snapshot behavior
426
+ const forceSnapshotCollections = new Set();
357
427
  // keep executing till all collections are done
358
428
  // sometimes a single patch request will not return all the patches (God knows why)
359
429
  // so we fetch till they're all done (this is determined by the "has_more_patches" flag)
@@ -364,6 +434,7 @@ export const makeChatsSocket = (config) => {
364
434
  const result = await authState.keys.get('app-state-sync-version', [name]);
365
435
  let state = result[name];
366
436
  if (state) {
437
+ state = ensureLTHashStateVersion(state);
367
438
  if (typeof initialVersionMap[name] === 'undefined') {
368
439
  initialVersionMap[name] = state.version;
369
440
  }
@@ -372,14 +443,18 @@ export const makeChatsSocket = (config) => {
372
443
  state = newLTHashState();
373
444
  }
374
445
  states[name] = state;
375
- logger.info(`resyncing ${name} from v${state.version}`);
446
+ const shouldForceSnapshot = forceSnapshotCollections.has(name);
447
+ if (shouldForceSnapshot) {
448
+ forceSnapshotCollections.delete(name);
449
+ }
450
+ logger.info(`resyncing ${name} from v${state.version}${shouldForceSnapshot ? ' (forcing snapshot)' : ''}`);
376
451
  nodes.push({
377
452
  tag: 'collection',
378
453
  attrs: {
379
454
  name,
380
455
  version: state.version.toString(),
381
- // return snapshot if being synced from scratch
382
- return_snapshot: (!state.version).toString()
456
+ // return snapshot if syncing from scratch or forcing after a failed attempt
457
+ return_snapshot: (shouldForceSnapshot || !state.version).toString()
383
458
  }
384
459
  });
385
460
  }
@@ -405,7 +480,7 @@ export const makeChatsSocket = (config) => {
405
480
  const { patches, hasMorePatches, snapshot } = decoded[name];
406
481
  try {
407
482
  if (snapshot) {
408
- const { state: newState, mutationMap } = await decodeSyncdSnapshot(name, snapshot, getAppStateSyncKey, initialVersionMap[name], appStateMacVerification.snapshot);
483
+ const { state: newState, mutationMap } = await decodeSyncdSnapshot(name, snapshot, getCachedAppStateSyncKey, initialVersionMap[name], appStateMacVerification.snapshot);
409
484
  states[name] = newState;
410
485
  Object.assign(globalMutationMap, mutationMap);
411
486
  logger.info(`restored state of ${name} from snapshot to v${newState.version} with mutations`);
@@ -413,7 +488,7 @@ export const makeChatsSocket = (config) => {
413
488
  }
414
489
  // only process if there are syncd patches
415
490
  if (patches.length) {
416
- const { state: newState, mutationMap } = await decodePatches(name, patches, states[name], getAppStateSyncKey, config.options, initialVersionMap[name], logger, appStateMacVerification.patch);
491
+ const { state: newState, mutationMap } = await decodePatches(name, patches, states[name], getCachedAppStateSyncKey, config.options, initialVersionMap[name], logger, appStateMacVerification.patch);
417
492
  await authState.keys.set({ 'app-state-sync-version': { [name]: newState } });
418
493
  logger.info(`synced ${name} to v${newState.version}`);
419
494
  initialVersionMap[name] = newState.version;
@@ -428,19 +503,37 @@ export const makeChatsSocket = (config) => {
428
503
  }
429
504
  }
430
505
  catch (error) {
431
- // if retry attempts overshoot
432
- // or key not found
433
- const isIrrecoverableError = attemptsMap[name] >= MAX_SYNC_ATTEMPTS ||
434
- error.output?.statusCode === 404 ||
435
- error.name === 'TypeError';
436
- logger.info({ name, error: error.stack }, `failed to sync state from version${isIrrecoverableError ? '' : ', removing and trying from scratch'}`);
437
- await authState.keys.set({ 'app-state-sync-version': { [name]: null } });
438
- // increment number of retries
439
506
  attemptsMap[name] = (attemptsMap[name] || 0) + 1;
440
- if (isIrrecoverableError) {
441
- // stop retrying
507
+ const logData = {
508
+ name,
509
+ attempt: attemptsMap[name],
510
+ version: states[name].version,
511
+ statusCode: error.output?.statusCode,
512
+ errorType: error.name,
513
+ error: error.stack
514
+ };
515
+ if (isMissingKeyError(error) && attemptsMap[name] >= MAX_SYNC_ATTEMPTS) {
516
+ // WA Web treats missing keys as "Blocked" — park the collection
517
+ // until the key arrives via APP_STATE_SYNC_KEY_SHARE.
518
+ logger.warn(logData, `${name} blocked on missing key from v${states[name].version}, parking after ${attemptsMap[name]} attempts`);
519
+ blockedCollections.add(name);
520
+ collectionsToHandle.delete(name);
521
+ }
522
+ else if (isMissingKeyError(error)) {
523
+ // Retry with a snapshot which may use a different key.
524
+ logger.info(logData, `${name} blocked on missing key from v${states[name].version}, retrying with snapshot`);
525
+ forceSnapshotCollections.add(name);
526
+ }
527
+ else if (isAppStateSyncIrrecoverable(error, attemptsMap[name])) {
528
+ logger.warn(logData, `failed to sync ${name} from v${states[name].version}, giving up`);
442
529
  collectionsToHandle.delete(name);
443
530
  }
531
+ else {
532
+ logger.info(logData, `failed to sync ${name} from v${states[name].version}, forcing snapshot retry`);
533
+ // force a full snapshot on retry to recover from
534
+ // corrupted local state (e.g. LTHash MAC mismatch)
535
+ forceSnapshotCollections.add(name);
536
+ }
444
537
  }
445
538
  }
446
539
  }
@@ -456,7 +549,23 @@ export const makeChatsSocket = (config) => {
456
549
  * type = "image for the high res picture"
457
550
  */
458
551
  const profilePictureUrl = async (jid, type = 'preview', timeoutMs) => {
459
- // TOOD: Add support for tctoken, existingID, and newsletter + group options
552
+ const baseContent = [{ tag: 'picture', attrs: { type, query: 'url' } }];
553
+ // WA Web only includes tctoken for user JIDs (not groups/newsletters)
554
+ // and never for own profile pic (Chat model for self has no tcToken).
555
+ // Including tctoken for own JID causes the server to never respond.
556
+ const normalizedJid = jidNormalizedUser(jid);
557
+ const isUserJid = isPnUser(normalizedJid) || isLidUser(normalizedJid);
558
+ const me = authState.creds.me;
559
+ const isSelf = me && (normalizedJid === jidNormalizedUser(me.id) || (me.lid && normalizedJid === jidNormalizedUser(me.lid)));
560
+ let content = baseContent;
561
+ if (serverProps.profilePicPrivacyToken && isUserJid && !isSelf) {
562
+ content = await buildTcTokenFromJid({
563
+ authState,
564
+ jid: normalizedJid,
565
+ baseContent,
566
+ getLIDForPN
567
+ });
568
+ }
460
569
  jid = jidNormalizedUser(jid);
461
570
  const result = await query({
462
571
  tag: 'iq',
@@ -466,7 +575,7 @@ export const makeChatsSocket = (config) => {
466
575
  type: 'get',
467
576
  xmlns: 'w:profile:picture'
468
577
  },
469
- content: [{ tag: 'picture', attrs: { type, query: 'url' } }]
578
+ content
470
579
  }, timeoutMs);
471
580
  const child = getBinaryNodeChild(result, 'picture');
472
581
  return child?.attrs?.url;
@@ -491,12 +600,16 @@ export const makeChatsSocket = (config) => {
491
600
  };
492
601
  const sendPresenceUpdate = async (type, toJid) => {
493
602
  const me = authState.creds.me;
494
- if (type === 'available' || type === 'unavailable') {
603
+ const isAvailableType = type === 'available';
604
+ if (isAvailableType || type === 'unavailable') {
495
605
  if (!me.name) {
496
606
  logger.warn('no name present, ignoring presence update request...');
497
607
  return;
498
608
  }
499
- ev.emit('connection.update', { isOnline: type === 'available' });
609
+ ev.emit('connection.update', { isOnline: isAvailableType });
610
+ if (isAvailableType) {
611
+ void sendUnifiedSession();
612
+ }
500
613
  await sendNode({
501
614
  tag: 'presence',
502
615
  attrs: {
@@ -527,23 +640,23 @@ export const makeChatsSocket = (config) => {
527
640
  * @param toJid the jid to subscribe to
528
641
  * @param tcToken token for subscription, use if present
529
642
  */
530
- const presenceSubscribe = (toJid, tcToken) => sendNode({
531
- tag: 'presence',
532
- attrs: {
533
- to: toJid,
534
- id: generateMessageTag(),
535
- type: 'subscribe'
536
- },
537
- content: tcToken
538
- ? [
539
- {
540
- tag: 'tctoken',
541
- attrs: {},
542
- content: tcToken
543
- }
544
- ]
545
- : undefined
546
- });
643
+ const presenceSubscribe = async (toJid) => {
644
+ // Only include tctoken for user JIDs — groups/newsletters don't use tctokens
645
+ const normalizedToJid = jidNormalizedUser(toJid);
646
+ const isUserJid = isPnUser(normalizedToJid) || isLidUser(normalizedToJid);
647
+ const tcTokenContent = isUserJid
648
+ ? await buildTcTokenFromJid({ authState, jid: normalizedToJid, getLIDForPN })
649
+ : undefined;
650
+ return sendNode({
651
+ tag: 'presence',
652
+ attrs: {
653
+ to: toJid,
654
+ id: generateMessageTag(),
655
+ type: 'subscribe'
656
+ },
657
+ content: tcTokenContent
658
+ });
659
+ };
547
660
  const handlePresenceUpdate = ({ tag, attrs, content }) => {
548
661
  let presence;
549
662
  const jid = attrs.from;
@@ -583,12 +696,12 @@ export const makeChatsSocket = (config) => {
583
696
  }
584
697
  let initial;
585
698
  let encodeResult;
586
- await processingMutex.mutex(async () => {
699
+ await appStatePatchMutex.mutex(async () => {
587
700
  await authState.keys.transaction(async () => {
588
701
  logger.debug({ patch: patchCreate }, 'applying app patch');
589
702
  await resyncAppState([name], false);
590
703
  const { [name]: currentSyncVersion } = await authState.keys.get('app-state-sync-version', [name]);
591
- initial = currentSyncVersion || newLTHashState();
704
+ initial = currentSyncVersion ? ensureLTHashStateVersion(currentSyncVersion) : newLTHashState();
592
705
  encodeResult = await encodeSyncdPatch(patchCreate, myAppStateKeyId, initial, getAppStateSyncKey);
593
706
  const { patch, state } = encodeResult;
594
707
  const node = {
@@ -634,22 +747,21 @@ export const makeChatsSocket = (config) => {
634
747
  }
635
748
  }
636
749
  };
637
- /** sending non-abt props may fix QR scan fail if server expects */
750
+ /** fetch AB props */
638
751
  const fetchProps = async () => {
639
- //TODO: implement both protocol 1 and protocol 2 prop fetching, specially for abKey for WM
640
752
  const resultNode = await query({
641
753
  tag: 'iq',
642
754
  attrs: {
643
755
  to: S_WHATSAPP_NET,
644
- xmlns: 'w',
756
+ xmlns: 'abt',
645
757
  type: 'get'
646
758
  },
647
759
  content: [
648
760
  {
649
761
  tag: 'props',
650
762
  attrs: {
651
- protocol: '2',
652
- hash: authState?.creds?.lastPropHash || ''
763
+ protocol: '1',
764
+ ...(authState?.creds?.lastPropHash ? { hash: authState.creds.lastPropHash } : {})
653
765
  }
654
766
  }
655
767
  ]
@@ -664,7 +776,20 @@ export const makeChatsSocket = (config) => {
664
776
  }
665
777
  props = reduceBinaryNodeToDictionary(propsNode, 'prop');
666
778
  }
667
- logger.debug('fetched props');
779
+ // Extract protocol-relevant AB props (only the ones we need)
780
+ const privacyTokenProp = props['10518'] ?? props['privacy_token_sending_on_all_1_on_1_messages'];
781
+ if (privacyTokenProp !== undefined) {
782
+ serverProps.privacyTokenOn1to1 = privacyTokenProp === 'true' || privacyTokenProp === '1';
783
+ }
784
+ const profilePicProp = props['9666'] ?? props['profile_scraping_privacy_token_in_photo_iq'];
785
+ if (profilePicProp !== undefined) {
786
+ serverProps.profilePicPrivacyToken = profilePicProp === 'true' || profilePicProp === '1';
787
+ }
788
+ const lidIssueProp = props['14303'] ?? props['lid_trusted_token_issue_to_lid'];
789
+ if (lidIssueProp !== undefined) {
790
+ serverProps.lidTrustedTokenIssueToLid = lidIssueProp === 'true' || lidIssueProp === '1';
791
+ }
792
+ logger.debug({ serverProps }, 'fetched props');
668
793
  return props;
669
794
  };
670
795
  /**
@@ -804,6 +929,47 @@ export const makeChatsSocket = (config) => {
804
929
  ? shouldSyncHistoryMessage(historyMsg) &&
805
930
  PROCESSABLE_HISTORY_TYPES.includes(historyMsg.syncType)
806
931
  : false;
932
+ if (historyMsg && shouldProcessHistoryMsg) {
933
+ const syncType = historyMsg.syncType;
934
+ // INITIAL_BOOTSTRAP — fire immediately, no progress check (same as WA Web K function)
935
+ if (syncType === proto.HistorySync.HistorySyncType.INITIAL_BOOTSTRAP &&
936
+ !historySyncStatus.initialBootstrapComplete) {
937
+ historySyncStatus.initialBootstrapComplete = true;
938
+ ev.emit('messaging-history.status', {
939
+ syncType,
940
+ status: 'complete',
941
+ explicit: true
942
+ });
943
+ }
944
+ // RECENT with progress === 100 — explicit completion
945
+ if (syncType === proto.HistorySync.HistorySyncType.RECENT &&
946
+ historyMsg.progress === 100 &&
947
+ !historySyncStatus.recentSyncComplete) {
948
+ historySyncStatus.recentSyncComplete = true;
949
+ clearTimeout(historySyncPausedTimeout);
950
+ historySyncPausedTimeout = undefined;
951
+ ev.emit('messaging-history.status', {
952
+ syncType,
953
+ status: 'complete',
954
+ explicit: true
955
+ });
956
+ }
957
+ // Reset 120s paused timeout on any RECENT chunk (like WA Web's handleChunkProgress)
958
+ if (syncType === proto.HistorySync.HistorySyncType.RECENT && !historySyncStatus.recentSyncComplete) {
959
+ clearTimeout(historySyncPausedTimeout);
960
+ historySyncPausedTimeout = setTimeout(() => {
961
+ if (!historySyncStatus.recentSyncComplete) {
962
+ historySyncStatus.recentSyncComplete = true;
963
+ ev.emit('messaging-history.status', {
964
+ syncType: proto.HistorySync.HistorySyncType.RECENT,
965
+ status: 'paused',
966
+ explicit: false
967
+ });
968
+ }
969
+ historySyncPausedTimeout = undefined;
970
+ }, HISTORY_SYNC_PAUSED_TIMEOUT_MS);
971
+ }
972
+ }
807
973
  // State machine: decide on sync and flush
808
974
  if (historyMsg && syncState === SyncState.AwaitingInitialSync) {
809
975
  if (awaitingSyncTimeout) {
@@ -823,6 +989,8 @@ export const makeChatsSocket = (config) => {
823
989
  }
824
990
  const doAppStateSync = async () => {
825
991
  if (syncState === SyncState.Syncing) {
992
+ // All collections will be synced, so clear any blocked ones
993
+ blockedCollections.clear();
826
994
  logger.info('Doing app state sync');
827
995
  await resyncAppState(ALL_WA_PATCH_NAMES, true);
828
996
  // Sync is complete, go online and flush everything
@@ -882,6 +1050,11 @@ export const makeChatsSocket = (config) => {
882
1050
  }
883
1051
  });
884
1052
  ev.on('connection.update', ({ connection, receivedPendingNotifications }) => {
1053
+ if (connection === 'close') {
1054
+ blockedCollections.clear();
1055
+ clearTimeout(historySyncPausedTimeout);
1056
+ historySyncPausedTimeout = undefined;
1057
+ }
885
1058
  if (connection === 'open') {
886
1059
  if (fireInitQueries) {
887
1060
  executeInitQueries().catch(error => onUnexpectedError(error, 'init queries'));
@@ -891,6 +1064,10 @@ export const makeChatsSocket = (config) => {
891
1064
  if (!receivedPendingNotifications || syncState !== SyncState.Connecting) {
892
1065
  return;
893
1066
  }
1067
+ historySyncStatus.initialBootstrapComplete = false;
1068
+ historySyncStatus.recentSyncComplete = false;
1069
+ clearTimeout(historySyncPausedTimeout);
1070
+ historySyncPausedTimeout = undefined;
894
1071
  syncState = SyncState.AwaitingInitialSync;
895
1072
  logger.info('Connection is now AwaitingInitialSync, buffering events');
896
1073
  ev.buffer();
@@ -903,24 +1080,66 @@ export const makeChatsSocket = (config) => {
903
1080
  setTimeout(() => ev.flush(), 0);
904
1081
  return;
905
1082
  }
906
- logger.info('History sync is enabled, awaiting notification with a 20s timeout.');
1083
+ // On reconnection (accountSyncCounter > 0), the server does not push
1084
+ // history sync notifications — the device already has its data.
1085
+ // Skip the 20s wait and go online immediately.
1086
+ if (authState.creds.accountSyncCounter > 0) {
1087
+ logger.info('Reconnection with existing sync data, skipping history sync wait. Transitioning to Online.');
1088
+ syncState = SyncState.Online;
1089
+ setTimeout(() => ev.flush(), 0);
1090
+ return;
1091
+ }
1092
+ logger.info('First connection, awaiting history sync notification with a 20s timeout.');
907
1093
  if (awaitingSyncTimeout) {
908
1094
  clearTimeout(awaitingSyncTimeout);
909
1095
  }
910
1096
  awaitingSyncTimeout = setTimeout(() => {
911
1097
  if (syncState === SyncState.AwaitingInitialSync) {
912
- // TODO: investigate
913
1098
  logger.warn('Timeout in AwaitingInitialSync, forcing state to Online and flushing buffer');
914
1099
  syncState = SyncState.Online;
915
1100
  ev.flush();
1101
+ // Increment so subsequent reconnections skip the 20s wait.
1102
+ // Late-arriving history is still processed via processMessage
1103
+ // regardless of the state machine phase.
1104
+ const accountSyncCounter = (authState.creds.accountSyncCounter || 0) + 1;
1105
+ ev.emit('creds.update', { accountSyncCounter });
916
1106
  }
917
1107
  }, 20000);
918
1108
  });
1109
+ // When an app state sync key arrives (myAppStateKeyId is set) and there are
1110
+ // collections blocked on a missing key, trigger a re-sync for just those collections.
1111
+ // This mirrors WA Web's Blocked → retry-on-key-arrival behavior.
1112
+ ev.on('creds.update', ({ myAppStateKeyId }) => {
1113
+ if (!myAppStateKeyId || blockedCollections.size === 0) {
1114
+ return;
1115
+ }
1116
+ // If we're in the middle of a full sync, doAppStateSync handles all collections
1117
+ if (syncState === SyncState.Syncing) {
1118
+ blockedCollections.clear();
1119
+ return;
1120
+ }
1121
+ const collections = [...blockedCollections];
1122
+ blockedCollections.clear();
1123
+ logger.info({ collections }, 'app state sync key arrived, re-syncing blocked collections');
1124
+ resyncAppState(collections, false).catch(error => onUnexpectedError(error, 'blocked collections resync'));
1125
+ });
1126
+ ev.on('lid-mapping.update', async ({ lid, pn }) => {
1127
+ try {
1128
+ await signalRepository.lidMapping.storeLIDPNMappings([{ lid, pn }]);
1129
+ }
1130
+ catch (error) {
1131
+ logger.warn({ lid, pn, error }, 'Failed to store LID-PN mapping');
1132
+ }
1133
+ });
919
1134
  return {
920
1135
  ...sock,
1136
+ serverProps,
921
1137
  createCallLink,
922
1138
  getBotListV2,
923
- processingMutex,
1139
+ messageMutex,
1140
+ receiptMutex,
1141
+ appStatePatchMutex,
1142
+ notificationMutex,
924
1143
  fetchPrivacySettings,
925
1144
  upsertMessage,
926
1145
  appPatch,