@oxidezap/baileyrs 0.0.26 → 0.0.28

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 (531) hide show
  1. package/README.md +31 -460
  2. package/lib/Bridge/adapt.d.ts +2 -0
  3. package/lib/Bridge/adapt.d.ts.map +1 -1
  4. package/lib/Bridge/adapt.js +2 -1
  5. package/lib/Bridge/adapt.js.map +1 -1
  6. package/lib/Bridge/history-sync-wire.d.ts +17 -0
  7. package/lib/Bridge/history-sync-wire.d.ts.map +1 -0
  8. package/lib/Bridge/history-sync-wire.js +61 -0
  9. package/lib/Bridge/history-sync-wire.js.map +1 -0
  10. package/lib/Bridge/index.d.ts +1 -1
  11. package/lib/Bridge/index.d.ts.map +1 -1
  12. package/lib/Bridge/index.js +3 -3
  13. package/lib/Bridge/index.js.map +1 -1
  14. package/lib/Bridge/primitives.d.ts +4 -0
  15. package/lib/Bridge/primitives.d.ts.map +1 -1
  16. package/lib/Bridge/primitives.js +14 -0
  17. package/lib/Bridge/primitives.js.map +1 -1
  18. package/lib/Bridge/schema.d.ts +9 -2
  19. package/lib/Bridge/schema.d.ts.map +1 -1
  20. package/lib/Bridge/schema.js +263 -35
  21. package/lib/Bridge/schema.js.map +1 -1
  22. package/lib/Bridge/types.d.ts +117 -3
  23. package/lib/Bridge/types.d.ts.map +1 -1
  24. package/lib/Compatibility/group-metadata.d.ts +9 -0
  25. package/lib/Compatibility/group-metadata.d.ts.map +1 -0
  26. package/lib/Compatibility/group-metadata.js +70 -0
  27. package/lib/Compatibility/group-metadata.js.map +1 -0
  28. package/lib/Compatibility/group-notifications.d.ts +22 -0
  29. package/lib/Compatibility/group-notifications.d.ts.map +1 -0
  30. package/lib/Compatibility/group-notifications.js +307 -0
  31. package/lib/Compatibility/group-notifications.js.map +1 -0
  32. package/lib/Compatibility/group-stub-params.d.ts +32 -0
  33. package/lib/Compatibility/group-stub-params.d.ts.map +1 -0
  34. package/lib/Compatibility/group-stub-params.js +57 -0
  35. package/lib/Compatibility/group-stub-params.js.map +1 -0
  36. package/lib/Compatibility/internal/async-primitives.d.ts +16 -0
  37. package/lib/Compatibility/internal/async-primitives.d.ts.map +1 -0
  38. package/lib/Compatibility/internal/async-primitives.js +42 -0
  39. package/lib/Compatibility/internal/async-primitives.js.map +1 -0
  40. package/lib/Compatibility/internal/auth-state.d.ts +15 -0
  41. package/lib/Compatibility/internal/auth-state.d.ts.map +1 -0
  42. package/lib/Compatibility/internal/auth-state.js +21 -0
  43. package/lib/Compatibility/internal/auth-state.js.map +1 -0
  44. package/lib/Compatibility/internal/cache-store.d.ts +7 -0
  45. package/lib/Compatibility/internal/cache-store.d.ts.map +1 -0
  46. package/lib/Compatibility/internal/cache-store.js +19 -0
  47. package/lib/Compatibility/internal/cache-store.js.map +1 -0
  48. package/lib/Compatibility/internal/expiring-lru-map.d.ts +21 -0
  49. package/lib/Compatibility/internal/expiring-lru-map.d.ts.map +1 -0
  50. package/lib/Compatibility/internal/expiring-lru-map.js +68 -0
  51. package/lib/Compatibility/internal/expiring-lru-map.js.map +1 -0
  52. package/lib/Compatibility/internal/make-mutex.d.ts +7 -0
  53. package/lib/Compatibility/internal/make-mutex.d.ts.map +1 -0
  54. package/lib/Compatibility/internal/make-mutex.js +31 -0
  55. package/lib/Compatibility/internal/make-mutex.js.map +1 -0
  56. package/lib/Compatibility/internal/native-memory-store.d.ts +6 -0
  57. package/lib/Compatibility/internal/native-memory-store.d.ts.map +1 -0
  58. package/lib/Compatibility/internal/native-memory-store.js +8 -0
  59. package/lib/Compatibility/internal/native-memory-store.js.map +1 -0
  60. package/lib/Compatibility/internal/numeric-enum.d.ts +8 -0
  61. package/lib/Compatibility/internal/numeric-enum.d.ts.map +1 -0
  62. package/lib/Compatibility/internal/numeric-enum.js +11 -0
  63. package/lib/Compatibility/internal/numeric-enum.js.map +1 -0
  64. package/lib/Compatibility/internal/signal-key-store.d.ts +9 -0
  65. package/lib/Compatibility/internal/signal-key-store.d.ts.map +1 -0
  66. package/lib/Compatibility/internal/signal-key-store.js +17 -0
  67. package/lib/Compatibility/internal/signal-key-store.js.map +1 -0
  68. package/lib/Compatibility/legacy-store/adapter.d.ts +4 -0
  69. package/lib/Compatibility/legacy-store/adapter.d.ts.map +1 -0
  70. package/lib/Compatibility/legacy-store/adapter.js +301 -0
  71. package/lib/Compatibility/legacy-store/adapter.js.map +1 -0
  72. package/lib/Compatibility/legacy-store/codecs/basic.d.ts +6 -0
  73. package/lib/Compatibility/legacy-store/codecs/basic.d.ts.map +1 -0
  74. package/lib/Compatibility/legacy-store/codecs/basic.js +184 -0
  75. package/lib/Compatibility/legacy-store/codecs/basic.js.map +1 -0
  76. package/lib/Compatibility/legacy-store/codecs/index.d.ts +6 -0
  77. package/lib/Compatibility/legacy-store/codecs/index.d.ts.map +1 -0
  78. package/lib/Compatibility/legacy-store/codecs/index.js +7 -0
  79. package/lib/Compatibility/legacy-store/codecs/index.js.map +1 -0
  80. package/lib/Compatibility/legacy-store/codecs/signal.d.ts +8 -0
  81. package/lib/Compatibility/legacy-store/codecs/signal.d.ts.map +1 -0
  82. package/lib/Compatibility/legacy-store/codecs/signal.js +219 -0
  83. package/lib/Compatibility/legacy-store/codecs/signal.js.map +1 -0
  84. package/lib/Compatibility/legacy-store/common.d.ts +25 -0
  85. package/lib/Compatibility/legacy-store/common.d.ts.map +1 -0
  86. package/lib/Compatibility/legacy-store/common.js +112 -0
  87. package/lib/Compatibility/legacy-store/common.js.map +1 -0
  88. package/lib/Compatibility/legacy-store/constants.d.ts +226 -0
  89. package/lib/Compatibility/legacy-store/constants.d.ts.map +1 -0
  90. package/lib/Compatibility/legacy-store/constants.js +199 -0
  91. package/lib/Compatibility/legacy-store/constants.js.map +1 -0
  92. package/lib/Compatibility/legacy-store/device.d.ts +9 -0
  93. package/lib/Compatibility/legacy-store/device.d.ts.map +1 -0
  94. package/lib/Compatibility/legacy-store/device.js +192 -0
  95. package/lib/Compatibility/legacy-store/device.js.map +1 -0
  96. package/lib/Compatibility/legacy-store/multi-file.d.ts +6 -0
  97. package/lib/Compatibility/legacy-store/multi-file.d.ts.map +1 -0
  98. package/lib/Compatibility/legacy-store/multi-file.js +84 -0
  99. package/lib/Compatibility/legacy-store/multi-file.js.map +1 -0
  100. package/lib/Compatibility/legacy-store/native-projection.d.ts +8 -0
  101. package/lib/Compatibility/legacy-store/native-projection.d.ts.map +1 -0
  102. package/lib/Compatibility/legacy-store/native-projection.js +109 -0
  103. package/lib/Compatibility/legacy-store/native-projection.js.map +1 -0
  104. package/lib/Compatibility/legacy-store/routing.d.ts +18 -0
  105. package/lib/Compatibility/legacy-store/routing.d.ts.map +1 -0
  106. package/lib/Compatibility/legacy-store/routing.js +162 -0
  107. package/lib/Compatibility/legacy-store/routing.js.map +1 -0
  108. package/lib/Compatibility/legacy-store/types.d.ts +41 -0
  109. package/lib/Compatibility/legacy-store/types.d.ts.map +1 -0
  110. package/lib/Compatibility/legacy-store/types.js +3 -0
  111. package/lib/Compatibility/legacy-store/types.js.map +1 -0
  112. package/lib/Compatibility/legacy-store/validation.d.ts +9 -0
  113. package/lib/Compatibility/legacy-store/validation.d.ts.map +1 -0
  114. package/lib/Compatibility/legacy-store/validation.js +49 -0
  115. package/lib/Compatibility/legacy-store/validation.js.map +1 -0
  116. package/lib/Compatibility/media-type.d.ts +10 -0
  117. package/lib/Compatibility/media-type.d.ts.map +1 -0
  118. package/lib/Compatibility/media-type.js +31 -0
  119. package/lib/Compatibility/media-type.js.map +1 -0
  120. package/lib/Compatibility/message-keys.d.ts +9 -0
  121. package/lib/Compatibility/message-keys.d.ts.map +1 -0
  122. package/lib/Compatibility/message-keys.js +15 -0
  123. package/lib/Compatibility/message-keys.js.map +1 -0
  124. package/lib/Compatibility/message-relay.d.ts +26 -0
  125. package/lib/Compatibility/message-relay.d.ts.map +1 -0
  126. package/lib/Compatibility/message-relay.js +61 -0
  127. package/lib/Compatibility/message-relay.js.map +1 -0
  128. package/lib/Compatibility/message-upsert.d.ts +11 -0
  129. package/lib/Compatibility/message-upsert.d.ts.map +1 -0
  130. package/lib/Compatibility/message-upsert.js +8 -0
  131. package/lib/Compatibility/message-upsert.js.map +1 -0
  132. package/lib/Compatibility/participating-refresh.d.ts +9 -0
  133. package/lib/Compatibility/participating-refresh.d.ts.map +1 -0
  134. package/lib/Compatibility/participating-refresh.js +14 -0
  135. package/lib/Compatibility/participating-refresh.js.map +1 -0
  136. package/lib/Compatibility/proto-runtime.d.ts +9 -0
  137. package/lib/Compatibility/proto-runtime.d.ts.map +1 -0
  138. package/lib/Compatibility/proto-runtime.js +567 -0
  139. package/lib/Compatibility/proto-runtime.js.map +1 -0
  140. package/lib/Compatibility/public-api/auth-utils.d.ts +6 -0
  141. package/lib/Compatibility/public-api/auth-utils.d.ts.map +1 -0
  142. package/lib/Compatibility/public-api/auth-utils.js +202 -0
  143. package/lib/Compatibility/public-api/auth-utils.js.map +1 -0
  144. package/lib/Compatibility/public-api/enum-types.d.ts +163 -0
  145. package/lib/Compatibility/public-api/enum-types.d.ts.map +1 -0
  146. package/lib/Compatibility/public-api/enum-types.js +10 -0
  147. package/lib/Compatibility/public-api/enum-types.js.map +1 -0
  148. package/lib/Compatibility/public-api/identity-change-handler.d.ts +42 -0
  149. package/lib/Compatibility/public-api/identity-change-handler.d.ts.map +1 -0
  150. package/lib/Compatibility/public-api/identity-change-handler.js +38 -0
  151. package/lib/Compatibility/public-api/identity-change-handler.js.map +1 -0
  152. package/lib/Compatibility/public-api/message-retry-manager.d.ts +62 -0
  153. package/lib/Compatibility/public-api/message-retry-manager.d.ts.map +1 -0
  154. package/lib/Compatibility/public-api/message-retry-manager.js +180 -0
  155. package/lib/Compatibility/public-api/message-retry-manager.js.map +1 -0
  156. package/lib/Compatibility/public-api/pre-key-manager.d.ts +14 -0
  157. package/lib/Compatibility/public-api/pre-key-manager.d.ts.map +1 -0
  158. package/lib/Compatibility/public-api/pre-key-manager.js +83 -0
  159. package/lib/Compatibility/public-api/pre-key-manager.js.map +1 -0
  160. package/lib/Compatibility/public-api/stanza-ack.d.ts +4 -0
  161. package/lib/Compatibility/public-api/stanza-ack.d.ts.map +1 -0
  162. package/lib/Compatibility/public-api/stanza-ack.js +20 -0
  163. package/lib/Compatibility/public-api/stanza-ack.js.map +1 -0
  164. package/lib/Compatibility/signal-repository.d.ts +12 -0
  165. package/lib/Compatibility/signal-repository.d.ts.map +1 -0
  166. package/lib/Compatibility/signal-repository.js +131 -0
  167. package/lib/Compatibility/signal-repository.js.map +1 -0
  168. package/lib/Compatibility/socket-results.d.ts +28 -0
  169. package/lib/Compatibility/socket-results.d.ts.map +1 -0
  170. package/lib/Compatibility/socket-results.js +72 -0
  171. package/lib/Compatibility/socket-results.js.map +1 -0
  172. package/lib/Compatibility/stanza-responses.d.ts +13 -0
  173. package/lib/Compatibility/stanza-responses.d.ts.map +1 -0
  174. package/lib/Compatibility/stanza-responses.js +16 -0
  175. package/lib/Compatibility/stanza-responses.js.map +1 -0
  176. package/lib/Compatibility/tagged-message-waiter.d.ts +5 -0
  177. package/lib/Compatibility/tagged-message-waiter.d.ts.map +1 -0
  178. package/lib/Compatibility/tagged-message-waiter.js +42 -0
  179. package/lib/Compatibility/tagged-message-waiter.js.map +1 -0
  180. package/lib/Compatibility/usync/adapter.d.ts +13 -0
  181. package/lib/Compatibility/usync/adapter.d.ts.map +1 -0
  182. package/lib/Compatibility/usync/adapter.js +291 -0
  183. package/lib/Compatibility/usync/adapter.js.map +1 -0
  184. package/lib/Compatibility/websocket-client.d.ts +40 -0
  185. package/lib/Compatibility/websocket-client.d.ts.map +1 -0
  186. package/lib/Compatibility/websocket-client.js +120 -0
  187. package/lib/Compatibility/websocket-client.js.map +1 -0
  188. package/lib/Defaults/index.d.ts +70 -3
  189. package/lib/Defaults/index.d.ts.map +1 -1
  190. package/lib/Defaults/index.js +107 -15
  191. package/lib/Defaults/index.js.map +1 -1
  192. package/lib/Platform/crypto.d.ts +6 -0
  193. package/lib/Platform/crypto.d.ts.map +1 -0
  194. package/lib/Platform/crypto.js +36 -0
  195. package/lib/Platform/crypto.js.map +1 -0
  196. package/lib/Socket/blocking.d.ts +2 -2
  197. package/lib/Socket/blocking.d.ts.map +1 -1
  198. package/lib/Socket/blocking.js +2 -1
  199. package/lib/Socket/blocking.js.map +1 -1
  200. package/lib/Socket/chat-actions.d.ts +2 -9
  201. package/lib/Socket/chat-actions.d.ts.map +1 -1
  202. package/lib/Socket/chat-actions.js +24 -13
  203. package/lib/Socket/chat-actions.js.map +1 -1
  204. package/lib/Socket/communities.d.ts +61 -0
  205. package/lib/Socket/communities.d.ts.map +1 -0
  206. package/lib/Socket/communities.js +72 -0
  207. package/lib/Socket/communities.js.map +1 -0
  208. package/lib/Socket/contacts.d.ts +4 -2
  209. package/lib/Socket/contacts.d.ts.map +1 -1
  210. package/lib/Socket/contacts.js +6 -4
  211. package/lib/Socket/contacts.js.map +1 -1
  212. package/lib/Socket/events.d.ts +13 -5
  213. package/lib/Socket/events.d.ts.map +1 -1
  214. package/lib/Socket/events.js +282 -57
  215. package/lib/Socket/events.js.map +1 -1
  216. package/lib/Socket/group-notifications.d.ts +1 -30
  217. package/lib/Socket/group-notifications.d.ts.map +1 -1
  218. package/lib/Socket/group-notifications.js +3 -268
  219. package/lib/Socket/group-notifications.js.map +1 -1
  220. package/lib/Socket/groups.d.ts +17 -36
  221. package/lib/Socket/groups.d.ts.map +1 -1
  222. package/lib/Socket/groups.js +111 -116
  223. package/lib/Socket/groups.js.map +1 -1
  224. package/lib/Socket/index.d.ts +140 -201
  225. package/lib/Socket/index.d.ts.map +1 -1
  226. package/lib/Socket/index.js +215 -345
  227. package/lib/Socket/index.js.map +1 -1
  228. package/lib/Socket/message-capping.d.ts +4 -0
  229. package/lib/Socket/message-capping.d.ts.map +1 -0
  230. package/lib/Socket/message-capping.js +22 -0
  231. package/lib/Socket/message-capping.js.map +1 -0
  232. package/lib/Socket/messages.d.ts +8 -14
  233. package/lib/Socket/messages.d.ts.map +1 -1
  234. package/lib/Socket/messages.js +74 -40
  235. package/lib/Socket/messages.js.map +1 -1
  236. package/lib/Socket/newsletter.d.ts +5 -0
  237. package/lib/Socket/newsletter.d.ts.map +1 -1
  238. package/lib/Socket/newsletter.js +7 -0
  239. package/lib/Socket/newsletter.js.map +1 -1
  240. package/lib/Socket/prekeys.d.ts +10 -0
  241. package/lib/Socket/prekeys.d.ts.map +1 -0
  242. package/lib/Socket/prekeys.js +21 -0
  243. package/lib/Socket/prekeys.js.map +1 -0
  244. package/lib/Socket/presence.d.ts +3 -3
  245. package/lib/Socket/presence.d.ts.map +1 -1
  246. package/lib/Socket/presence.js +2 -2
  247. package/lib/Socket/presence.js.map +1 -1
  248. package/lib/Socket/profile.d.ts +6 -8
  249. package/lib/Socket/profile.d.ts.map +1 -1
  250. package/lib/Socket/profile.js +18 -17
  251. package/lib/Socket/profile.js.map +1 -1
  252. package/lib/Socket/reachout.js +1 -1
  253. package/lib/Socket/transport.d.ts.map +1 -1
  254. package/lib/Socket/transport.js +13 -1
  255. package/lib/Socket/transport.js.map +1 -1
  256. package/lib/Socket/types.d.ts +4 -2
  257. package/lib/Socket/types.d.ts.map +1 -1
  258. package/lib/Socket/types.js.map +1 -1
  259. package/lib/Socket/usync.d.ts +12 -0
  260. package/lib/Socket/usync.d.ts.map +1 -0
  261. package/lib/Socket/usync.js +27 -0
  262. package/lib/Socket/usync.js.map +1 -0
  263. package/lib/Types/Auth.d.ts +28 -30
  264. package/lib/Types/Auth.d.ts.map +1 -1
  265. package/lib/Types/Auth.js +1 -1
  266. package/lib/Types/Auth.js.map +1 -1
  267. package/lib/Types/BinaryNode.d.ts +0 -4
  268. package/lib/Types/BinaryNode.d.ts.map +1 -1
  269. package/lib/Types/Bussines.d.ts +1 -1
  270. package/lib/Types/Bussines.d.ts.map +1 -1
  271. package/lib/Types/Call.d.ts +3 -1
  272. package/lib/Types/Call.d.ts.map +1 -1
  273. package/lib/Types/Chat.d.ts +2 -2
  274. package/lib/Types/Chat.d.ts.map +1 -1
  275. package/lib/Types/Events.d.ts +16 -5
  276. package/lib/Types/Events.d.ts.map +1 -1
  277. package/lib/Types/Events.js +1 -1
  278. package/lib/Types/Events.js.map +1 -1
  279. package/lib/Types/GroupMetadata.d.ts +4 -0
  280. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  281. package/lib/Types/Label.d.ts +3 -23
  282. package/lib/Types/Label.d.ts.map +1 -1
  283. package/lib/Types/Label.js +24 -23
  284. package/lib/Types/Label.js.map +1 -1
  285. package/lib/Types/LabelAssociation.d.ts +5 -6
  286. package/lib/Types/LabelAssociation.d.ts.map +1 -1
  287. package/lib/Types/LabelAssociation.js +4 -5
  288. package/lib/Types/LabelAssociation.js.map +1 -1
  289. package/lib/Types/Message.d.ts +45 -10
  290. package/lib/Types/Message.d.ts.map +1 -1
  291. package/lib/Types/Message.js +5 -7
  292. package/lib/Types/Message.js.map +1 -1
  293. package/lib/Types/Newsletter.d.ts +5 -28
  294. package/lib/Types/Newsletter.d.ts.map +1 -1
  295. package/lib/Types/Newsletter.js +34 -30
  296. package/lib/Types/Newsletter.js.map +1 -1
  297. package/lib/Types/Product.d.ts +75 -0
  298. package/lib/Types/Product.d.ts.map +1 -0
  299. package/lib/Types/Product.js +2 -0
  300. package/lib/Types/Product.js.map +1 -0
  301. package/lib/Types/Reachout.d.ts +3 -18
  302. package/lib/Types/Reachout.d.ts.map +1 -1
  303. package/lib/Types/Reachout.js +20 -19
  304. package/lib/Types/Reachout.js.map +1 -1
  305. package/lib/Types/Signal.d.ts +91 -0
  306. package/lib/Types/Signal.d.ts.map +1 -0
  307. package/lib/Types/Signal.js +2 -0
  308. package/lib/Types/Signal.js.map +1 -0
  309. package/lib/Types/Socket.d.ts +76 -30
  310. package/lib/Types/Socket.d.ts.map +1 -1
  311. package/lib/Types/State.d.ts +19 -0
  312. package/lib/Types/State.d.ts.map +1 -1
  313. package/lib/Types/State.js +26 -1
  314. package/lib/Types/State.js.map +1 -1
  315. package/lib/Types/USync.d.ts +9 -0
  316. package/lib/Types/USync.d.ts.map +1 -0
  317. package/lib/Types/USync.js +2 -0
  318. package/lib/Types/USync.js.map +1 -0
  319. package/lib/Types/index.d.ts +9 -12
  320. package/lib/Types/index.d.ts.map +1 -1
  321. package/lib/Types/index.js +30 -30
  322. package/lib/Types/index.js.map +1 -1
  323. package/lib/Utils/auth-utils.d.ts +2 -0
  324. package/lib/Utils/auth-utils.d.ts.map +1 -0
  325. package/lib/Utils/auth-utils.js +3 -0
  326. package/lib/Utils/auth-utils.js.map +1 -0
  327. package/lib/Utils/boom.d.ts +8 -32
  328. package/lib/Utils/boom.d.ts.map +1 -1
  329. package/lib/Utils/boom.js +7 -62
  330. package/lib/Utils/boom.js.map +1 -1
  331. package/lib/Utils/browser-utils.d.ts +1 -0
  332. package/lib/Utils/browser-utils.d.ts.map +1 -1
  333. package/lib/Utils/browser-utils.js +6 -0
  334. package/lib/Utils/browser-utils.js.map +1 -1
  335. package/lib/Utils/companion-reg-client-utils.d.ts +8 -0
  336. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  337. package/lib/Utils/companion-reg-client-utils.js +32 -0
  338. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  339. package/lib/Utils/crypto.d.ts +31 -0
  340. package/lib/Utils/crypto.d.ts.map +1 -0
  341. package/lib/Utils/crypto.js +81 -0
  342. package/lib/Utils/crypto.js.map +1 -0
  343. package/lib/Utils/event-buffer.d.ts +15 -4
  344. package/lib/Utils/event-buffer.d.ts.map +1 -1
  345. package/lib/Utils/event-buffer.js +471 -34
  346. package/lib/Utils/event-buffer.js.map +1 -1
  347. package/lib/Utils/generics.d.ts +52 -15
  348. package/lib/Utils/generics.d.ts.map +1 -1
  349. package/lib/Utils/generics.js +269 -25
  350. package/lib/Utils/generics.js.map +1 -1
  351. package/lib/Utils/group-stub-params.d.ts +1 -28
  352. package/lib/Utils/group-stub-params.d.ts.map +1 -1
  353. package/lib/Utils/group-stub-params.js +2 -44
  354. package/lib/Utils/group-stub-params.js.map +1 -1
  355. package/lib/Utils/identity-change-handler.d.ts +2 -0
  356. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  357. package/lib/Utils/identity-change-handler.js +4 -0
  358. package/lib/Utils/identity-change-handler.js.map +1 -0
  359. package/lib/Utils/index.d.ts +9 -0
  360. package/lib/Utils/index.d.ts.map +1 -1
  361. package/lib/Utils/index.js +19 -10
  362. package/lib/Utils/index.js.map +1 -1
  363. package/lib/Utils/logger.d.ts.map +1 -1
  364. package/lib/Utils/message-retry-manager.d.ts +2 -0
  365. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  366. package/lib/Utils/message-retry-manager.js +4 -0
  367. package/lib/Utils/message-retry-manager.js.map +1 -0
  368. package/lib/Utils/messages-media.d.ts +28 -6
  369. package/lib/Utils/messages-media.d.ts.map +1 -1
  370. package/lib/Utils/messages-media.js +119 -1
  371. package/lib/Utils/messages-media.js.map +1 -1
  372. package/lib/Utils/messages.d.ts +33 -9
  373. package/lib/Utils/messages.d.ts.map +1 -1
  374. package/lib/Utils/messages.js +106 -33
  375. package/lib/Utils/messages.js.map +1 -1
  376. package/lib/Utils/native-crypto-provider.d.ts +10 -8
  377. package/lib/Utils/native-crypto-provider.d.ts.map +1 -1
  378. package/lib/Utils/native-crypto-provider.js +13 -56
  379. package/lib/Utils/native-crypto-provider.js.map +1 -1
  380. package/lib/Utils/pre-key-manager.d.ts +2 -0
  381. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  382. package/lib/Utils/pre-key-manager.js +3 -0
  383. package/lib/Utils/pre-key-manager.js.map +1 -0
  384. package/lib/Utils/process-history-message.d.ts +15 -4
  385. package/lib/Utils/process-history-message.d.ts.map +1 -1
  386. package/lib/Utils/process-history-message.js +162 -95
  387. package/lib/Utils/process-history-message.js.map +1 -1
  388. package/lib/Utils/process-message.d.ts +25 -0
  389. package/lib/Utils/process-message.d.ts.map +1 -0
  390. package/lib/Utils/process-message.js +79 -0
  391. package/lib/Utils/process-message.js.map +1 -0
  392. package/lib/Utils/signal.d.ts +29 -0
  393. package/lib/Utils/signal.d.ts.map +1 -0
  394. package/lib/Utils/signal.js +133 -0
  395. package/lib/Utils/signal.js.map +1 -0
  396. package/lib/Utils/sparse-array.d.ts +9 -0
  397. package/lib/Utils/sparse-array.d.ts.map +1 -0
  398. package/lib/Utils/sparse-array.js +12 -0
  399. package/lib/Utils/sparse-array.js.map +1 -0
  400. package/lib/Utils/stanza-ack.d.ts +2 -0
  401. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  402. package/lib/Utils/stanza-ack.js +3 -0
  403. package/lib/Utils/stanza-ack.js.map +1 -0
  404. package/lib/Utils/use-bridge-store.d.ts.map +1 -1
  405. package/lib/Utils/use-bridge-store.js +191 -7
  406. package/lib/Utils/use-bridge-store.js.map +1 -1
  407. package/lib/Utils/use-memory-store.d.ts +8 -4
  408. package/lib/Utils/use-memory-store.d.ts.map +1 -1
  409. package/lib/Utils/use-memory-store.js +87 -10
  410. package/lib/Utils/use-memory-store.js.map +1 -1
  411. package/lib/Utils/use-multi-file-auth-state.d.ts +4 -2
  412. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -1
  413. package/lib/Utils/use-multi-file-auth-state.js +13 -5
  414. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  415. package/lib/Utils/wrap-legacy-store.d.ts +8 -32
  416. package/lib/Utils/wrap-legacy-store.d.ts.map +1 -1
  417. package/lib/Utils/wrap-legacy-store.js +7 -1214
  418. package/lib/Utils/wrap-legacy-store.js.map +1 -1
  419. package/lib/WABinary/generic-utils.d.ts +8 -0
  420. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  421. package/lib/WABinary/generic-utils.js +63 -1
  422. package/lib/WABinary/generic-utils.js.map +1 -1
  423. package/lib/WABinary/index.js +2 -2
  424. package/lib/WABinary/jid-utils.d.ts +22 -10
  425. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  426. package/lib/WABinary/jid-utils.js +40 -9
  427. package/lib/WABinary/jid-utils.js.map +1 -1
  428. package/lib/WAProto/compatibility-schema.d.ts +25 -0
  429. package/lib/WAProto/compatibility-schema.d.ts.map +1 -0
  430. package/lib/WAProto/compatibility-schema.js +6 -0
  431. package/lib/WAProto/compatibility-schema.js.map +1 -0
  432. package/lib/WAProto/runtime.d.ts +14019 -0
  433. package/lib/WAProto/runtime.js +17 -0
  434. package/lib/WAProto/runtime.js.map +1 -0
  435. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +27 -0
  436. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts.map +1 -0
  437. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +39 -0
  438. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js.map +1 -0
  439. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  440. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  441. package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -0
  442. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  443. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  444. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  445. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +41 -0
  446. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  447. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  448. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  449. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +19 -0
  450. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  451. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +10 -0
  452. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts.map +1 -0
  453. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +15 -0
  454. package/lib/WAUSync/Protocols/USyncLIDProtocol.js.map +1 -0
  455. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  456. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  457. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +25 -0
  458. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  459. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  460. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  461. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +21 -0
  462. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  463. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  464. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  465. package/lib/WAUSync/Protocols/index.js +6 -0
  466. package/lib/WAUSync/Protocols/index.js.map +1 -0
  467. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  468. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  469. package/lib/WAUSync/USyncQuery.js +78 -0
  470. package/lib/WAUSync/USyncQuery.js.map +1 -0
  471. package/lib/WAUSync/USyncUser.d.ts +17 -0
  472. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  473. package/lib/WAUSync/USyncUser.js +31 -0
  474. package/lib/WAUSync/USyncUser.js.map +1 -0
  475. package/lib/WAUSync/index.d.ts +4 -0
  476. package/lib/WAUSync/index.d.ts.map +1 -0
  477. package/lib/WAUSync/index.js +4 -0
  478. package/lib/WAUSync/index.js.map +1 -0
  479. package/lib/index.d.ts +2 -1
  480. package/lib/index.d.ts.map +1 -1
  481. package/lib/index.js +9 -9
  482. package/lib/index.js.map +1 -1
  483. package/package.json +33 -15
  484. package/lib/Bridge/__tests__/adapt.test.d.ts +0 -2
  485. package/lib/Bridge/__tests__/adapt.test.d.ts.map +0 -1
  486. package/lib/Bridge/__tests__/adapt.test.js +0 -387
  487. package/lib/Bridge/__tests__/adapt.test.js.map +0 -1
  488. package/lib/Bridge/__tests__/dts-drift.test.d.ts +0 -13
  489. package/lib/Bridge/__tests__/dts-drift.test.d.ts.map +0 -1
  490. package/lib/Bridge/__tests__/dts-drift.test.js +0 -90
  491. package/lib/Bridge/__tests__/dts-drift.test.js.map +0 -1
  492. package/lib/Bridge/__tests__/fixtures.d.ts +0 -192
  493. package/lib/Bridge/__tests__/fixtures.d.ts.map +0 -1
  494. package/lib/Bridge/__tests__/fixtures.js +0 -99
  495. package/lib/Bridge/__tests__/fixtures.js.map +0 -1
  496. package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts +0 -73
  497. package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts.map +0 -1
  498. package/lib/Utils/__tests__/_legacy-store-fixtures.js +0 -113
  499. package/lib/Utils/__tests__/_legacy-store-fixtures.js.map +0 -1
  500. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts +0 -10
  501. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts.map +0 -1
  502. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js +0 -291
  503. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js.map +0 -1
  504. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts +0 -8
  505. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts.map +0 -1
  506. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js +0 -91
  507. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js.map +0 -1
  508. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts +0 -10
  509. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts.map +0 -1
  510. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js +0 -125
  511. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js.map +0 -1
  512. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts +0 -2
  513. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts.map +0 -1
  514. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js +0 -214
  515. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js.map +0 -1
  516. package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts +0 -14
  517. package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts.map +0 -1
  518. package/lib/Utils/__tests__/wrap-legacy-store-session.test.js +0 -305
  519. package/lib/Utils/__tests__/wrap-legacy-store-session.test.js.map +0 -1
  520. package/lib/Utils/bridge-call.d.ts +0 -22
  521. package/lib/Utils/bridge-call.d.ts.map +0 -1
  522. package/lib/Utils/bridge-call.js +0 -105
  523. package/lib/Utils/bridge-call.js.map +0 -1
  524. package/lib/Utils/lid-mapping-store.d.ts +0 -81
  525. package/lib/Utils/lid-mapping-store.d.ts.map +0 -1
  526. package/lib/Utils/lid-mapping-store.js +0 -126
  527. package/lib/Utils/lid-mapping-store.js.map +0 -1
  528. package/lib/__tests__/expect.d.ts +0 -44
  529. package/lib/__tests__/expect.d.ts.map +0 -1
  530. package/lib/__tests__/expect.js +0 -100
  531. package/lib/__tests__/expect.js.map +0 -1
@@ -1,42 +1,479 @@
1
1
  import EventEmitter from 'node:events';
2
+ import { WAMessageStatus } from '../Types/index.js';
3
+ import { trimUndefined } from './generics.js';
4
+ import { updateMessageWithReaction, updateMessageWithReceipt } from './messages.js';
5
+ import { isRealMessage, shouldIncrementChatUnread } from './process-message.js';
6
+ const BUFFERABLE_EVENTS = [
7
+ 'messaging-history.set',
8
+ 'chats.upsert',
9
+ 'chats.update',
10
+ 'chats.delete',
11
+ 'contacts.upsert',
12
+ 'contacts.update',
13
+ 'messages.upsert',
14
+ 'messages.update',
15
+ 'messages.delete',
16
+ 'messages.reaction',
17
+ 'message-receipt.update',
18
+ 'groups.update'
19
+ ];
20
+ const BUFFERABLE_EVENT_SET = new Set(BUFFERABLE_EVENTS);
21
+ const makeBufferData = () => ({
22
+ historySets: {
23
+ chats: {},
24
+ messages: {},
25
+ contacts: {},
26
+ isLatest: false,
27
+ empty: true
28
+ },
29
+ chatUpserts: {},
30
+ chatUpdates: {},
31
+ chatDeletes: new Set(),
32
+ contactUpserts: {},
33
+ contactUpdates: {},
34
+ messageUpserts: {},
35
+ messageUpdates: {},
36
+ messageDeletes: {},
37
+ messageReactions: {},
38
+ messageReceipts: {},
39
+ groupUpdates: {}
40
+ });
41
+ const stringifyMessageKey = (key) => `${key.remoteJid},${key.id},${key.fromMe ? '1' : '0'}`;
42
+ const concatChats = (left, right) => {
43
+ if (right.unreadCount === null && (left.unreadCount ?? 0) < 0) {
44
+ left.unreadCount = undefined;
45
+ right.unreadCount = undefined;
46
+ }
47
+ const leftUnread = left.unreadCount;
48
+ const rightUnread = right.unreadCount;
49
+ if (typeof leftUnread === 'number' && typeof rightUnread === 'number') {
50
+ right = { ...right };
51
+ if (rightUnread >= 0) {
52
+ right.unreadCount = Math.max(rightUnread, 0) + Math.max(leftUnread, 0);
53
+ }
54
+ }
55
+ return Object.assign(left, right);
56
+ };
57
+ const mergePastParticipants = (existingEntries, incomingEntries) => {
58
+ const merged = new Map();
59
+ const signature = (participant) => `${participant.userJid || ''}:${participant.leaveTs || ''}:${participant.leaveReason || ''}`;
60
+ const ingest = (entry) => {
61
+ const key = entry.groupJid ?? JSON.stringify(entry);
62
+ const existing = merged.get(key);
63
+ if (!existing) {
64
+ merged.set(key, { ...entry, pastParticipants: [...(entry.pastParticipants || [])] });
65
+ return;
66
+ }
67
+ const seen = new Set((existing.pastParticipants || []).map(signature));
68
+ for (const participant of entry.pastParticipants || []) {
69
+ const value = signature(participant);
70
+ if (!seen.has(value)) {
71
+ existing.pastParticipants.push(participant);
72
+ seen.add(value);
73
+ }
74
+ }
75
+ };
76
+ for (const entry of existingEntries || [])
77
+ ingest(entry);
78
+ for (const entry of incomingEntries)
79
+ ingest(entry);
80
+ return [...merged.values()];
81
+ };
82
+ const append = (data, historyCache, event, eventData, logger) => {
83
+ var _a, _b, _c;
84
+ const absorbChatUpdate = (existing) => {
85
+ const id = existing.id || '';
86
+ const update = data.chatUpdates[id];
87
+ if (!update)
88
+ return;
89
+ const matches = update.conditional ? update.conditional(data) : true;
90
+ if (matches) {
91
+ delete update.conditional;
92
+ Object.assign(existing, concatChats(update, existing));
93
+ delete data.chatUpdates[id];
94
+ }
95
+ else if (matches === false) {
96
+ delete data.chatUpdates[id];
97
+ }
98
+ };
99
+ switch (event) {
100
+ case 'messaging-history.set': {
101
+ const history = eventData;
102
+ for (const chat of history.chats) {
103
+ const id = chat.id || '';
104
+ const existing = data.historySets.chats[id];
105
+ if (existing)
106
+ existing.endOfHistoryTransferType = chat.endOfHistoryTransferType;
107
+ if (!existing && !historyCache.has(id)) {
108
+ data.historySets.chats[id] = chat;
109
+ historyCache.add(id);
110
+ absorbChatUpdate(chat);
111
+ }
112
+ }
113
+ for (const contact of history.contacts) {
114
+ const existing = data.historySets.contacts[contact.id];
115
+ if (existing)
116
+ Object.assign(existing, trimUndefined(contact));
117
+ else {
118
+ const cacheId = `c:${contact.id}`;
119
+ if (!historyCache.has(cacheId) || contact.notify || contact.name || contact.verifiedName) {
120
+ data.historySets.contacts[contact.id] = contact;
121
+ historyCache.add(cacheId);
122
+ }
123
+ }
124
+ }
125
+ for (const message of history.messages) {
126
+ const key = stringifyMessageKey(message.key);
127
+ if (!data.historySets.messages[key] && !historyCache.has(key)) {
128
+ data.historySets.messages[key] = message;
129
+ historyCache.add(key);
130
+ }
131
+ }
132
+ data.historySets.empty = false;
133
+ data.historySets.syncType = history.syncType ?? undefined;
134
+ if (history.pastParticipants?.length) {
135
+ data.historySets.pastParticipants = mergePastParticipants(data.historySets.pastParticipants, history.pastParticipants);
136
+ }
137
+ data.historySets.progress = history.progress;
138
+ data.historySets.chunkOrder = history.chunkOrder;
139
+ data.historySets.peerDataRequestSessionId = history.peerDataRequestSessionId ?? undefined;
140
+ data.historySets.isLatest = !!history.isLatest || data.historySets.isLatest;
141
+ break;
142
+ }
143
+ case 'chats.upsert': {
144
+ for (const chat of eventData) {
145
+ const id = chat.id || '';
146
+ let existing = data.chatUpserts[id] || data.historySets.chats[id];
147
+ if (existing)
148
+ concatChats(existing, chat);
149
+ else {
150
+ existing = chat;
151
+ data.chatUpserts[id] = existing;
152
+ }
153
+ absorbChatUpdate(existing);
154
+ data.chatDeletes.delete(id);
155
+ }
156
+ break;
157
+ }
158
+ case 'chats.update': {
159
+ for (const update of eventData) {
160
+ const id = update.id || '';
161
+ const matches = update.conditional ? update.conditional(data) : true;
162
+ if (matches) {
163
+ delete update.conditional;
164
+ const existing = data.historySets.chats[id] || data.chatUpserts[id];
165
+ if (existing)
166
+ concatChats(existing, update);
167
+ else
168
+ data.chatUpdates[id] = concatChats(data.chatUpdates[id] || {}, update);
169
+ }
170
+ else if (matches === undefined)
171
+ data.chatUpdates[id] = update;
172
+ data.chatDeletes.delete(id);
173
+ }
174
+ break;
175
+ }
176
+ case 'chats.delete': {
177
+ for (const id of eventData) {
178
+ data.chatDeletes.add(id);
179
+ delete data.chatUpdates[id];
180
+ delete data.chatUpserts[id];
181
+ delete data.historySets.chats[id];
182
+ }
183
+ break;
184
+ }
185
+ case 'contacts.upsert': {
186
+ for (const contact of eventData) {
187
+ const existing = data.contactUpserts[contact.id] || data.historySets.contacts[contact.id];
188
+ if (existing)
189
+ Object.assign(existing, trimUndefined(contact));
190
+ else
191
+ data.contactUpserts[contact.id] = contact;
192
+ const pending = data.contactUpdates[contact.id];
193
+ if (pending) {
194
+ Object.assign(existing || contact, pending);
195
+ delete data.contactUpdates[contact.id];
196
+ }
197
+ }
198
+ break;
199
+ }
200
+ case 'contacts.update': {
201
+ for (const update of eventData) {
202
+ const id = update.id || '';
203
+ const existing = data.historySets.contacts[id] || data.contactUpserts[id];
204
+ if (existing)
205
+ Object.assign(existing, update);
206
+ else
207
+ data.contactUpdates[id] = Object.assign(data.contactUpdates[id] || {}, update);
208
+ }
209
+ break;
210
+ }
211
+ case 'messages.upsert': {
212
+ const { messages, type } = eventData;
213
+ for (const message of messages) {
214
+ const key = stringifyMessageKey(message.key);
215
+ const existing = data.messageUpserts[key]?.message || data.historySets.messages[key];
216
+ if (existing)
217
+ message.messageTimestamp = existing.messageTimestamp;
218
+ const pending = data.messageUpdates[key];
219
+ if (pending) {
220
+ Object.assign(message, pending.update);
221
+ delete data.messageUpdates[key];
222
+ }
223
+ if (data.historySets.messages[key])
224
+ data.historySets.messages[key] = message;
225
+ else {
226
+ data.messageUpserts[key] = {
227
+ message,
228
+ type: type === 'notify' || data.messageUpserts[key]?.type === 'notify' ? 'notify' : type
229
+ };
230
+ }
231
+ }
232
+ break;
233
+ }
234
+ case 'messages.update': {
235
+ for (const update of eventData) {
236
+ const key = stringifyMessageKey(update.key);
237
+ const existing = data.historySets.messages[key] || data.messageUpserts[key]?.message;
238
+ if (existing) {
239
+ Object.assign(existing, update.update);
240
+ if (update.update.status === WAMessageStatus.READ && !update.key.fromMe) {
241
+ const chatId = existing.key.remoteJid || '';
242
+ const chat = data.chatUpdates[chatId] || data.chatUpserts[chatId];
243
+ if (isRealMessage(existing) &&
244
+ shouldIncrementChatUnread(existing) &&
245
+ typeof chat?.unreadCount === 'number' &&
246
+ chat.unreadCount > 0) {
247
+ chat.unreadCount -= 1;
248
+ if (chat.unreadCount === 0)
249
+ delete chat.unreadCount;
250
+ }
251
+ }
252
+ }
253
+ else {
254
+ const pending = data.messageUpdates[key] || { key: update.key, update: {} };
255
+ Object.assign(pending.update, update.update);
256
+ data.messageUpdates[key] = pending;
257
+ }
258
+ }
259
+ break;
260
+ }
261
+ case 'messages.delete': {
262
+ const deletion = eventData;
263
+ if ('keys' in deletion) {
264
+ for (const key of deletion.keys) {
265
+ const value = stringifyMessageKey(key);
266
+ (_a = data.messageDeletes)[value] || (_a[value] = key);
267
+ delete data.messageUpserts[value];
268
+ delete data.messageUpdates[value];
269
+ }
270
+ }
271
+ break;
272
+ }
273
+ case 'messages.reaction': {
274
+ for (const { key, reaction } of eventData) {
275
+ const value = stringifyMessageKey(key);
276
+ const existing = data.messageUpserts[value];
277
+ if (existing)
278
+ updateMessageWithReaction(existing.message, reaction);
279
+ else {
280
+ (_b = data.messageReactions)[value] || (_b[value] = { key, reactions: [] });
281
+ updateMessageWithReaction(data.messageReactions[value], reaction);
282
+ }
283
+ }
284
+ break;
285
+ }
286
+ case 'message-receipt.update': {
287
+ for (const { key, receipt } of eventData) {
288
+ const value = stringifyMessageKey(key);
289
+ const existing = data.messageUpserts[value];
290
+ if (existing)
291
+ updateMessageWithReceipt(existing.message, receipt);
292
+ else {
293
+ (_c = data.messageReceipts)[value] || (_c[value] = { key, userReceipt: [] });
294
+ updateMessageWithReceipt(data.messageReceipts[value], receipt);
295
+ }
296
+ }
297
+ break;
298
+ }
299
+ case 'groups.update': {
300
+ for (const update of eventData) {
301
+ const id = update.id || '';
302
+ data.groupUpdates[id] = Object.assign(data.groupUpdates[id] || {}, update);
303
+ }
304
+ break;
305
+ }
306
+ default:
307
+ logger.warn({ event }, 'event cannot be buffered');
308
+ }
309
+ };
310
+ const consolidateEvents = (data) => {
311
+ const events = {};
312
+ if (!data.historySets.empty) {
313
+ events['messaging-history.set'] = {
314
+ chats: Object.values(data.historySets.chats),
315
+ messages: Object.values(data.historySets.messages),
316
+ contacts: Object.values(data.historySets.contacts),
317
+ pastParticipants: data.historySets.pastParticipants,
318
+ syncType: data.historySets.syncType,
319
+ progress: data.historySets.progress,
320
+ isLatest: data.historySets.isLatest,
321
+ chunkOrder: data.historySets.chunkOrder,
322
+ peerDataRequestSessionId: data.historySets.peerDataRequestSessionId
323
+ };
324
+ }
325
+ const assignArray = (event, values) => {
326
+ if (Array.isArray(values) && values.length > 0)
327
+ events[event] = values;
328
+ };
329
+ assignArray('chats.upsert', Object.values(data.chatUpserts));
330
+ assignArray('chats.update', Object.values(data.chatUpdates));
331
+ assignArray('chats.delete', [...data.chatDeletes]);
332
+ assignArray('contacts.upsert', Object.values(data.contactUpserts));
333
+ assignArray('contacts.update', Object.values(data.contactUpdates));
334
+ assignArray('messages.update', Object.values(data.messageUpdates));
335
+ assignArray('groups.update', Object.values(data.groupUpdates));
336
+ const upserts = Object.values(data.messageUpserts);
337
+ if (upserts.length) {
338
+ events['messages.upsert'] = { messages: upserts.map(item => item.message), type: upserts[0].type };
339
+ }
340
+ const deleted = Object.values(data.messageDeletes);
341
+ if (deleted.length)
342
+ events['messages.delete'] = { keys: deleted };
343
+ const reactions = Object.values(data.messageReactions).flatMap(({ key, reactions: values }) => values.map(reaction => ({ key, reaction })));
344
+ if (reactions.length)
345
+ events['messages.reaction'] = reactions;
346
+ const receipts = Object.values(data.messageReceipts).flatMap(({ key, userReceipt }) => userReceipt.map(receipt => ({ key, receipt })));
347
+ if (receipts.length)
348
+ events['message-receipt.update'] = receipts;
349
+ return events;
350
+ };
2
351
  /**
3
- * Simple event emitter with `process()` support for Baileys events.
4
- * The bridge handles event ordering internally no buffering needed.
352
+ * Upstream-compatible event buffer. Non-buffered events stay synchronous;
353
+ * bufferable events are consolidated and released as one `process()` map.
5
354
  */
6
- export const makeEventBuffer = () => {
355
+ export const makeEventBuffer = (logger) => {
7
356
  const ev = new EventEmitter();
8
- ev.setMaxListeners(100);
9
- const emitter = ev;
10
- emitter.process = handler => {
11
- const EVENTS = [
12
- 'connection.update',
13
- 'creds.update',
14
- 'messaging-history.set',
15
- 'chats.upsert',
16
- 'chats.update',
17
- 'chats.delete',
18
- 'contacts.upsert',
19
- 'contacts.update',
20
- 'messages.upsert',
21
- 'messages.update',
22
- 'messages.delete',
23
- 'messages.reaction',
24
- 'message-receipt.update',
25
- 'groups.upsert',
26
- 'groups.update',
27
- 'group-participants.update',
28
- 'blocklist.set',
29
- 'blocklist.update',
30
- 'presence.update',
31
- 'labels.edit',
32
- 'labels.association'
33
- ];
34
- for (const event of EVENTS) {
35
- ev.on(event, (data) => {
36
- void handler({ [event]: data });
37
- });
357
+ const historyCache = new Set();
358
+ let data = makeBufferData();
359
+ let buffering = false;
360
+ let bufferCount = 0;
361
+ let bufferTimeout;
362
+ let flushPendingTimeout;
363
+ ev.on('event', (events) => {
364
+ for (const event of Object.keys(events)) {
365
+ ev.emit(event, events[event]);
366
+ }
367
+ });
368
+ const flush = () => {
369
+ if (!buffering)
370
+ return false;
371
+ buffering = false;
372
+ bufferCount = 0;
373
+ if (bufferTimeout)
374
+ clearTimeout(bufferTimeout);
375
+ if (flushPendingTimeout)
376
+ clearTimeout(flushPendingTimeout);
377
+ bufferTimeout = undefined;
378
+ flushPendingTimeout = undefined;
379
+ if (historyCache.size > 10000)
380
+ historyCache.clear();
381
+ const next = makeBufferData();
382
+ let conditionalUpdates = 0;
383
+ for (const update of Object.values(data.chatUpdates)) {
384
+ if (update.conditional && update.id) {
385
+ next.chatUpdates[update.id] = update;
386
+ delete data.chatUpdates[update.id];
387
+ conditionalUpdates += 1;
388
+ }
389
+ }
390
+ const consolidated = consolidateEvents(data);
391
+ if (Object.keys(consolidated).length)
392
+ ev.emit('event', consolidated);
393
+ data = next;
394
+ logger.trace({ conditionalChatUpdatesLeft: conditionalUpdates }, 'released buffered events');
395
+ return true;
396
+ };
397
+ const buffer = () => {
398
+ if (!buffering) {
399
+ buffering = true;
400
+ bufferCount = 0;
401
+ if (bufferTimeout)
402
+ clearTimeout(bufferTimeout);
403
+ bufferTimeout = setTimeout(() => {
404
+ if (buffering) {
405
+ logger.warn('Buffer timeout reached, auto-flushing');
406
+ flush();
407
+ }
408
+ }, 30000);
409
+ bufferTimeout.unref?.();
410
+ }
411
+ bufferCount += 1;
412
+ };
413
+ return {
414
+ process(handler) {
415
+ const listener = (events) => {
416
+ void handler(events);
417
+ };
418
+ ev.on('event', listener);
419
+ return () => ev.off('event', listener);
420
+ },
421
+ emit(event, eventData) {
422
+ if (event === 'messages.upsert') {
423
+ const type = eventData.type;
424
+ const pending = Object.values(data.messageUpserts);
425
+ if (pending.length && pending[0].type !== type) {
426
+ ev.emit('event', {
427
+ 'messages.upsert': { messages: pending.map(item => item.message), type: pending[0].type }
428
+ });
429
+ data.messageUpserts = {};
430
+ }
431
+ }
432
+ if (buffering && BUFFERABLE_EVENT_SET.has(event)) {
433
+ append(data, historyCache, event, eventData, logger);
434
+ return true;
435
+ }
436
+ return ev.emit('event', { [event]: eventData });
437
+ },
438
+ on: (event, listener) => {
439
+ ev.on(event, listener);
440
+ },
441
+ off: (event, listener) => {
442
+ ev.off(event, listener);
443
+ },
444
+ removeAllListeners: event => {
445
+ ev.removeAllListeners(event);
446
+ },
447
+ buffer,
448
+ flush,
449
+ isBuffering: () => buffering,
450
+ createBufferedFunction(work) {
451
+ return async (...args) => {
452
+ buffer();
453
+ try {
454
+ return await work(...args);
455
+ }
456
+ finally {
457
+ bufferCount = Math.max(0, bufferCount - 1);
458
+ if (bufferCount === 0 && !flushPendingTimeout) {
459
+ flushPendingTimeout = setTimeout(flush, 100);
460
+ flushPendingTimeout.unref?.();
461
+ }
462
+ }
463
+ };
464
+ },
465
+ destroy() {
466
+ if (bufferTimeout)
467
+ clearTimeout(bufferTimeout);
468
+ if (flushPendingTimeout)
469
+ clearTimeout(flushPendingTimeout);
470
+ historyCache.clear();
471
+ data = makeBufferData();
472
+ buffering = false;
473
+ bufferCount = 0;
474
+ ev.removeAllListeners();
475
+ logger.debug('Event buffer destroyed');
38
476
  }
39
477
  };
40
- return emitter;
41
478
  };
42
479
  //# sourceMappingURL=event-buffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-buffer.js","sourceRoot":"","sources":["../../src/Utils/event-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AAGtC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAwB,EAAE;IACxD,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE,CAAA;IAC7B,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IAEvB,MAAM,OAAO,GAAG,EAAoC,CAAA;IAEpD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE;QAC3B,MAAM,MAAM,GAA8B;YACzC,mBAAmB;YACnB,cAAc;YACd,uBAAuB;YACvB,cAAc;YACd,cAAc;YACd,cAAc;YACd,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,wBAAwB;YACxB,eAAe;YACf,eAAe;YACf,2BAA2B;YAC3B,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,aAAa;YACb,oBAAoB;SACpB,CAAA;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE;gBAC9B,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAA8B,CAAC,CAAA;YAC5D,CAAC,CAAC,CAAA;QACH,CAAC;IACF,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"event-buffer.js","sourceRoot":"","sources":["../../src/Utils/event-buffer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,16 @@
1
- import type { AuthenticationCreds, WAVersion } from '../Types/index.js';
1
+ import { Buffer } from 'node:buffer';
2
+ import { proto } from '../WAProto/runtime.js';
3
+ import type { AuthenticationCreds, BaileysEventEmitter, BaileysEventMap, BinaryNode, ConnectionState, WACallUpdateType, WAMessageKey, WAVersion } from '../Types/index.js';
4
+ /** Resolve the upstream-visible author identity, preferring alternate addressing fields. */
5
+ export declare const getKeyAuthor: (key: WAMessageKey | undefined | null, meId?: string) => string;
6
+ export declare const isStringNullOrEmpty: (value: string | null | undefined) => value is null | undefined | '';
7
+ export declare const writeRandomPadMax16: (msg: Uint8Array) => Buffer<ArrayBuffer>;
8
+ export declare const unpadRandomMax16: (e: Uint8Array | Buffer) => Uint8Array<ArrayBuffer>;
9
+ /** Hash a sorted participant list using WhatsApp's compact v2 representation. */
10
+ export declare const generateParticipantHashV2: (participants: string[]) => string;
11
+ export declare const encodeWAMessage: (message: proto.IMessage) => Buffer<ArrayBuffer>;
12
+ export declare const generateRegistrationId: () => number;
13
+ export declare const encodeBigEndian: (value: number, length?: number) => Uint8Array;
2
14
  /** unix timestamp of a date in seconds */
3
15
  export declare const unixTimestampSeconds: (date?: Date) => number;
4
16
  /**
@@ -22,7 +34,23 @@ export declare const toNumber: (t: {
22
34
  * Promise-based timeout. Mirrors upstream Baileys' `delay` so bot code that
23
35
  * destructures `delay` from the package keeps working unchanged.
24
36
  */
37
+ export type DebouncedTimeout = ReturnType<typeof debouncedTimeout>;
38
+ export declare const debouncedTimeout: (intervalMs?: number, task?: () => void) => {
39
+ start: (newIntervalMs?: number, newTask?: () => void) => void;
40
+ cancel: () => void;
41
+ setTask: (newTask: () => void) => () => void;
42
+ setInterval: (newInterval: number) => number;
43
+ };
25
44
  export declare const delay: (ms: number) => Promise<void>;
45
+ export declare const delayCancellable: (ms: number) => {
46
+ delay: Promise<void>;
47
+ cancel: () => void;
48
+ };
49
+ export declare function promiseTimeout<T>(ms: number | undefined, promise: (resolve: (v: T) => void, reject: (error: any) => void) => void): Promise<T>;
50
+ export declare const generateMessageIDV2: (userId?: string) => string;
51
+ export declare const generateMessageID: () => string;
52
+ export declare function bindWaitForEvent<T extends keyof BaileysEventMap>(ev: BaileysEventEmitter, event: T): (check: (update: BaileysEventMap[T]) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
53
+ export declare const bindWaitForConnectionUpdate: (ev: BaileysEventEmitter) => (check: (update: Partial<ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
26
54
  /**
27
55
  * JSON replacer/reviver pair for serializing `Buffer`/`Uint8Array` values as
28
56
  * `{ type: 'Buffer', data: <base64> }`. API-compatible with the upstream Baileys
@@ -33,14 +61,14 @@ export declare const BufferJSON: {
33
61
  replacer: (_: string, value: unknown) => unknown;
34
62
  reviver: (_: string, value: unknown) => unknown;
35
63
  };
36
- /**
37
- * Returns a minimal {@link AuthenticationCreds} placeholder. All real credential
38
- * material is owned by the Rust bridge; this stub exists only for upstream
39
- * Baileys code paths that call `initAuthCreds()` to seed a fresh `auth.creds`
40
- * object before pairing. The returned object is safe to pass as `auth.creds`
41
- * but the bridge will ignore every field except `me`/`registered`/`platform`.
42
- */
64
+ /** Seed a fresh `auth.creds` object with valid Signal key material. */
43
65
  export declare const initAuthCreds: () => AuthenticationCreds;
66
+ /** Remove undefined own properties in place, matching upstream Baileys. */
67
+ export declare function trimUndefined(obj: {
68
+ [key: string]: any;
69
+ }): {
70
+ [key: string]: any;
71
+ };
44
72
  export declare const fetchLatestWaWebVersion: (options?: RequestInit) => Promise<{
45
73
  version: WAVersion;
46
74
  isLatest: boolean;
@@ -50,17 +78,26 @@ export declare const fetchLatestWaWebVersion: (options?: RequestInit) => Promise
50
78
  isLatest: boolean;
51
79
  error: unknown;
52
80
  }>;
53
- /**
54
- * Alias for {@link fetchLatestWaWebVersion}. Kept for source-level compatibility
55
- * with upstream Baileys code that imports `fetchLatestBaileysVersion`.
56
- */
81
+ /** Fetch the version declared by the current upstream Baileys source. */
57
82
  export declare const fetchLatestBaileysVersion: (options?: RequestInit) => Promise<{
58
- version: WAVersion;
59
- isLatest: boolean;
60
83
  error?: undefined;
84
+ version: WAVersion;
85
+ isLatest: true;
61
86
  } | {
62
87
  version: WAVersion;
63
- isLatest: boolean;
88
+ isLatest: false;
64
89
  error: unknown;
65
90
  }>;
91
+ /** Unique message tag prefix for MD clients. */
92
+ export declare const generateMdTagPrefix: () => string;
93
+ export declare const getStatusFromReceiptType: (type: string | undefined) => proto.WebMessageInfo.Status | undefined;
94
+ export declare const getErrorCodeFromStreamError: (node: BinaryNode) => {
95
+ reason: string;
96
+ statusCode: number;
97
+ };
98
+ export declare const getCallStatusFromNode: ({ tag, attrs }: BinaryNode) => WACallUpdateType;
99
+ export declare const getCodeFromWSError: (error: Error) => number;
100
+ export declare const isWABusinessPlatform: (platform: string) => platform is 'smba' | 'smbi';
101
+ export declare function bytesToCrockford(buffer: Buffer): string;
102
+ export declare function encodeNewsletterMessage(message: proto.IMessage): Uint8Array;
66
103
  //# sourceMappingURL=generics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generics.d.ts","sourceRoot":"","sources":["../../src/Utils/generics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEvE,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,GAAI,OAAM,IAAiB,WAAsC,CAAA;AAElG;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,GACpB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACrF,MAeF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAG5C,CAAA;AASH;;;;;GAKG;AACH,eAAO,MAAM,UAAU;kBACR,MAAM,SAAS,OAAO;iBAiBvB,MAAM,SAAS,OAAO;CAenC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QAAO,mBAE/B,CAAA;AAEF,eAAO,MAAM,uBAAuB,GAAU,UAAS,WAAgB;aAiCnC,SAAS;;;;;;;EAM5C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,aA7CiB,WAAW;aAiC9B,SAAS;;;;;;;EAYmB,CAAA"}
1
+ {"version":3,"file":"generics.d.ts","sourceRoot":"","sources":["../../src/Utils/generics.ts"],"names":[],"mappings":"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"}