zapo-js 0.1.2 → 0.3.0

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 (630) hide show
  1. package/README.md +16 -4
  2. package/dist/appstate/WaAppStateCrypto.js +50 -42
  3. package/dist/appstate/WaAppStateSyncClient.js +215 -133
  4. package/dist/appstate/{store/sqlite.js → encoding.js} +13 -8
  5. package/dist/appstate/index.js +9 -7
  6. package/dist/appstate/utils.js +0 -5
  7. package/dist/auth/WaAuthClient.js +55 -57
  8. package/dist/auth/credentials-flow.js +195 -0
  9. package/dist/auth/index.js +1 -6
  10. package/dist/auth/pairing/WaPairingFlow.js +39 -32
  11. package/dist/auth/pairing/{WaPairingCodeCrypto.js → pairing-code-crypto.js} +35 -17
  12. package/dist/client/WaClient.js +338 -174
  13. package/dist/client/WaClientFactory.js +399 -66
  14. package/dist/client/connection/WaConnectionManager.js +23 -11
  15. package/dist/client/coordinators/WaAbPropsCoordinator.js +141 -0
  16. package/dist/client/coordinators/WaBusinessCoordinator.js +232 -0
  17. package/dist/client/coordinators/WaEmailCoordinator.js +63 -0
  18. package/dist/client/coordinators/WaGroupCoordinator.js +11 -7
  19. package/dist/client/coordinators/WaIncomingNodeCoordinator.js +34 -8
  20. package/dist/client/coordinators/WaMessageDispatchCoordinator.js +341 -118
  21. package/dist/client/coordinators/WaOfflineResumeCoordinator.js +114 -0
  22. package/dist/client/coordinators/WaPassiveTasksCoordinator.js +97 -36
  23. package/dist/client/coordinators/WaPrivacyCoordinator.js +134 -0
  24. package/dist/client/coordinators/WaProfileCoordinator.js +214 -0
  25. package/dist/client/coordinators/WaRetryCoordinator.js +184 -30
  26. package/dist/client/coordinators/WaStreamControlCoordinator.js +18 -11
  27. package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +184 -0
  28. package/dist/client/dirty.js +41 -21
  29. package/dist/client/events/abprops.js +43 -0
  30. package/dist/client/events/devices.js +72 -0
  31. package/dist/client/events/group.js +3 -11
  32. package/dist/client/events/identity.js +22 -0
  33. package/dist/client/events/privacy-token.js +38 -0
  34. package/dist/client/events/registration.js +42 -0
  35. package/dist/client/history-sync.js +50 -9
  36. package/dist/client/incoming.js +74 -7
  37. package/dist/client/mailbox.js +40 -23
  38. package/dist/client/media.js +243 -0
  39. package/dist/client/messages.js +245 -92
  40. package/dist/client/messaging/fanout.js +21 -11
  41. package/dist/client/messaging/participants.js +6 -4
  42. package/dist/client/persistence/WriteBehindPersistence.js +129 -0
  43. package/dist/client/tokens/cs-token.js +50 -0
  44. package/dist/client/tokens/tc-token.js +25 -0
  45. package/dist/crypto/core/index.js +5 -2
  46. package/dist/crypto/core/keys.js +4 -4
  47. package/dist/crypto/core/nonce.js +2 -0
  48. package/dist/crypto/core/primitives.js +0 -8
  49. package/dist/crypto/core/random.js +24 -8
  50. package/dist/crypto/core/xeddsa.js +57 -0
  51. package/dist/crypto/curves/X25519.js +43 -6
  52. package/dist/crypto/curves/constants.js +2 -1
  53. package/dist/crypto/index.js +3 -0
  54. package/dist/crypto/math/constants.js +13 -36
  55. package/dist/crypto/math/edwards.js +171 -44
  56. package/dist/crypto/math/fe.js +706 -0
  57. package/dist/crypto/math/mod.js +10 -3
  58. package/dist/esm/appstate/WaAppStateCrypto.js +40 -32
  59. package/dist/esm/appstate/WaAppStateSyncClient.js +206 -124
  60. package/dist/esm/appstate/{store/sqlite.js → encoding.js} +13 -8
  61. package/dist/esm/appstate/index.js +2 -2
  62. package/dist/esm/appstate/{WaAppStateSyncResponseParser.js → response-parser.js} +1 -1
  63. package/dist/esm/appstate/utils.js +2 -5
  64. package/dist/esm/auth/WaAuthClient.js +52 -54
  65. package/dist/esm/auth/credentials-flow.js +190 -0
  66. package/dist/esm/auth/index.js +0 -2
  67. package/dist/esm/auth/pairing/WaPairingFlow.js +39 -32
  68. package/dist/esm/auth/pairing/{WaPairingCodeCrypto.js → pairing-code-crypto.js} +26 -10
  69. package/dist/esm/client/WaClient.js +339 -175
  70. package/dist/esm/client/WaClientFactory.js +401 -68
  71. package/dist/esm/client/connection/WaConnectionManager.js +23 -11
  72. package/dist/esm/client/coordinators/WaAbPropsCoordinator.js +137 -0
  73. package/dist/esm/client/coordinators/WaBusinessCoordinator.js +229 -0
  74. package/dist/esm/client/coordinators/WaEmailCoordinator.js +60 -0
  75. package/dist/esm/client/coordinators/WaGroupCoordinator.js +11 -7
  76. package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +36 -10
  77. package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +337 -114
  78. package/dist/esm/client/coordinators/WaOfflineResumeCoordinator.js +110 -0
  79. package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +97 -36
  80. package/dist/esm/client/coordinators/WaPrivacyCoordinator.js +131 -0
  81. package/dist/esm/client/coordinators/WaProfileCoordinator.js +211 -0
  82. package/dist/esm/client/coordinators/WaRetryCoordinator.js +186 -32
  83. package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +19 -12
  84. package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +180 -0
  85. package/dist/esm/client/dirty.js +41 -21
  86. package/dist/esm/client/events/abprops.js +40 -0
  87. package/dist/esm/client/events/devices.js +68 -0
  88. package/dist/esm/client/events/group.js +3 -11
  89. package/dist/esm/client/events/identity.js +19 -0
  90. package/dist/esm/client/events/privacy-token.js +35 -0
  91. package/dist/esm/client/events/registration.js +39 -0
  92. package/dist/esm/client/history-sync.js +50 -9
  93. package/dist/esm/client/incoming.js +74 -8
  94. package/dist/esm/client/mailbox.js +40 -23
  95. package/dist/esm/client/media.js +234 -0
  96. package/dist/esm/client/messages.js +244 -91
  97. package/dist/esm/client/messaging/fanout.js +22 -12
  98. package/dist/esm/client/messaging/participants.js +6 -4
  99. package/dist/esm/client/persistence/WriteBehindPersistence.js +125 -0
  100. package/dist/esm/client/tokens/cs-token.js +46 -0
  101. package/dist/esm/client/tokens/tc-token.js +18 -0
  102. package/dist/esm/crypto/core/index.js +3 -2
  103. package/dist/esm/crypto/core/keys.js +1 -1
  104. package/dist/esm/crypto/core/nonce.js +2 -0
  105. package/dist/esm/crypto/core/primitives.js +0 -7
  106. package/dist/esm/crypto/core/random.js +23 -7
  107. package/dist/esm/crypto/core/xeddsa.js +53 -0
  108. package/dist/esm/crypto/curves/X25519.js +45 -8
  109. package/dist/esm/crypto/curves/constants.js +1 -0
  110. package/dist/esm/crypto/index.js +1 -0
  111. package/dist/esm/crypto/math/constants.js +12 -35
  112. package/dist/esm/crypto/math/edwards.js +174 -47
  113. package/dist/esm/crypto/math/fe.js +691 -0
  114. package/dist/esm/crypto/math/mod.js +10 -1
  115. package/dist/esm/index.js +1 -1
  116. package/dist/esm/infra/perf/BackgroundQueue.js +478 -0
  117. package/dist/esm/infra/perf/BoundedTaskQueue.js +3 -1
  118. package/dist/esm/infra/perf/PromiseDedup.js +20 -0
  119. package/dist/esm/infra/perf/SharedExclusiveGate.js +109 -0
  120. package/dist/esm/infra/perf/StoreLock.js +80 -0
  121. package/dist/esm/media/WaMediaCrypto.js +332 -55
  122. package/dist/esm/media/WaMediaTransferClient.js +69 -220
  123. package/dist/esm/media/constants.js +4 -1
  124. package/dist/esm/media/processor.js +1 -0
  125. package/dist/esm/message/WaMessageClient.js +26 -19
  126. package/dist/esm/message/addon-crypto.js +130 -3
  127. package/dist/esm/message/content.js +206 -14
  128. package/dist/esm/message/icdc.js +76 -0
  129. package/dist/esm/message/incoming.js +38 -24
  130. package/dist/esm/message/phash.js +35 -13
  131. package/dist/esm/message/reporting-token.js +17 -30
  132. package/dist/esm/message/use-case-secret.js +1 -1
  133. package/dist/esm/protocol/abprops.js +159 -0
  134. package/dist/esm/protocol/appstate.js +9 -40
  135. package/dist/esm/protocol/browser.js +24 -18
  136. package/dist/esm/protocol/constants.js +8 -4
  137. package/dist/esm/protocol/defaults.js +6 -0
  138. package/dist/esm/protocol/email.js +30 -0
  139. package/dist/esm/protocol/index.js +1 -2
  140. package/dist/esm/protocol/jid.js +142 -39
  141. package/dist/esm/protocol/message.js +61 -1
  142. package/dist/esm/protocol/nodes.js +8 -2
  143. package/dist/esm/protocol/notification.js +9 -1
  144. package/dist/esm/protocol/privacy-token.js +17 -0
  145. package/dist/esm/protocol/privacy.js +55 -0
  146. package/dist/esm/protocol/stream.js +26 -1
  147. package/dist/esm/retry/codec.js +216 -0
  148. package/dist/esm/retry/constants.js +1 -1
  149. package/dist/esm/retry/index.js +2 -2
  150. package/dist/esm/retry/parse.js +50 -30
  151. package/dist/esm/retry/reason.js +1 -1
  152. package/dist/esm/retry/replay.js +11 -7
  153. package/dist/esm/retry/tracker.js +50 -12
  154. package/dist/esm/signal/api/SignalDeviceSyncApi.js +52 -32
  155. package/dist/esm/signal/api/SignalDigestSyncApi.js +21 -15
  156. package/dist/esm/signal/api/SignalIdentitySyncApi.js +30 -15
  157. package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +19 -8
  158. package/dist/esm/signal/api/SignalRotateKeyApi.js +4 -2
  159. package/dist/esm/signal/api/SignalSessionSyncApi.js +17 -8
  160. package/dist/esm/signal/api/result-map.js +10 -0
  161. package/dist/esm/signal/constants.js +0 -4
  162. package/dist/esm/signal/crypto/WaAdvSignature.js +5 -45
  163. package/dist/esm/signal/crypto/constants.js +0 -4
  164. package/dist/esm/signal/{store/sqlite.js → encoding.js} +40 -29
  165. package/dist/esm/signal/group/SenderKeyChain.js +3 -3
  166. package/dist/esm/signal/group/SenderKeyCodec.js +8 -8
  167. package/dist/esm/signal/group/SenderKeyManager.js +131 -109
  168. package/dist/esm/signal/index.js +1 -0
  169. package/dist/esm/signal/registration/keygen.js +8 -5
  170. package/dist/esm/signal/registration/utils.js +3 -2
  171. package/dist/esm/signal/session/SignalProtocol.js +158 -81
  172. package/dist/esm/signal/session/SignalRatchet.js +21 -10
  173. package/dist/esm/signal/session/SignalSerializer.js +5 -6
  174. package/dist/esm/signal/session/SignalSession.js +11 -9
  175. package/dist/esm/signal/session/resolver.js +140 -105
  176. package/dist/esm/store/contracts/identity.store.js +1 -0
  177. package/dist/esm/store/contracts/message-secret.store.js +1 -0
  178. package/dist/esm/store/contracts/pre-key.store.js +1 -0
  179. package/dist/esm/store/contracts/privacy-token.store.js +1 -0
  180. package/dist/esm/store/contracts/session.store.js +1 -0
  181. package/dist/esm/store/createStore.js +143 -193
  182. package/dist/esm/store/index.js +5 -10
  183. package/dist/esm/store/locks/appstate.lock.js +26 -0
  184. package/dist/esm/store/locks/auth.lock.js +15 -0
  185. package/dist/esm/store/locks/contact.lock.js +20 -0
  186. package/dist/esm/store/locks/device-list.lock.js +20 -0
  187. package/dist/esm/store/locks/identity.lock.js +16 -0
  188. package/dist/esm/store/locks/message-secret.lock.js +17 -0
  189. package/dist/esm/store/locks/message.lock.js +21 -0
  190. package/dist/esm/store/locks/participants.lock.js +20 -0
  191. package/dist/esm/store/locks/pre-key.lock.js +27 -0
  192. package/dist/esm/store/locks/privacy-token.lock.js +18 -0
  193. package/dist/esm/store/locks/retry.lock.js +29 -0
  194. package/dist/esm/store/locks/sender-key.lock.js +52 -0
  195. package/dist/esm/store/locks/session.lock.js +19 -0
  196. package/dist/esm/store/locks/signal.lock.js +39 -0
  197. package/dist/esm/store/locks/thread.lock.js +21 -0
  198. package/dist/esm/store/noop.store.js +21 -1
  199. package/dist/esm/store/providers/memory/appstate.store.js +22 -24
  200. package/dist/esm/store/providers/memory/device-list.store.js +13 -5
  201. package/dist/esm/store/providers/memory/identity.store.js +31 -0
  202. package/dist/esm/store/providers/memory/message-secret.store.js +81 -0
  203. package/dist/esm/store/providers/memory/participants.store.js +3 -0
  204. package/dist/esm/store/providers/memory/pre-key.store.js +97 -0
  205. package/dist/esm/store/providers/memory/privacy-token.store.js +43 -0
  206. package/dist/esm/store/providers/memory/retry.store.js +99 -10
  207. package/dist/esm/store/providers/memory/sender-key.store.js +6 -1
  208. package/dist/esm/store/providers/memory/session.store.js +45 -0
  209. package/dist/esm/store/providers/memory/signal.store.js +1 -147
  210. package/dist/esm/transport/WaComms.js +7 -4
  211. package/dist/esm/transport/WaWebSocket.js +9 -7
  212. package/dist/esm/transport/binary/constants.js +0 -30
  213. package/dist/esm/transport/binary/decoder.js +4 -4
  214. package/dist/esm/transport/binary/encoder.js +8 -15
  215. package/dist/esm/transport/binary/index.js +0 -1
  216. package/dist/esm/transport/index.js +6 -0
  217. package/dist/esm/transport/keepalive/WaKeepAlive.js +17 -8
  218. package/dist/esm/transport/node/WaMobileTcpSocket.js +114 -0
  219. package/dist/esm/transport/node/WaNodeOrchestrator.js +37 -22
  220. package/dist/esm/transport/node/builders/abprops.js +20 -0
  221. package/dist/esm/transport/node/builders/business.js +129 -0
  222. package/dist/esm/transport/node/builders/device.js +11 -0
  223. package/dist/esm/transport/node/builders/email.js +65 -0
  224. package/dist/esm/transport/node/builders/global.js +370 -0
  225. package/dist/esm/transport/node/builders/message.js +63 -239
  226. package/dist/esm/transport/node/builders/offline.js +14 -0
  227. package/dist/esm/transport/node/builders/pairing.js +0 -24
  228. package/dist/esm/transport/node/builders/prekeys.js +37 -40
  229. package/dist/esm/transport/node/builders/presence.js +13 -0
  230. package/dist/esm/transport/node/builders/privacy-token.js +37 -0
  231. package/dist/esm/transport/node/builders/privacy.js +48 -0
  232. package/dist/esm/transport/node/builders/profile.js +70 -0
  233. package/dist/esm/transport/node/builders/retry.js +11 -23
  234. package/dist/esm/transport/node/builders/usync.js +6 -2
  235. package/dist/esm/transport/node/helpers.js +43 -1
  236. package/dist/esm/transport/node/mex/argo-decoder.js +152 -0
  237. package/dist/esm/transport/node/mex/client.js +83 -0
  238. package/dist/esm/transport/node/mex/persist-ids.js +10 -0
  239. package/dist/esm/transport/node/usync.js +3 -33
  240. package/dist/esm/transport/node/xml.js +35 -14
  241. package/dist/esm/transport/noise/WaClientPayload.js +24 -19
  242. package/dist/esm/transport/noise/WaFrameCodec.js +2 -2
  243. package/dist/esm/transport/noise/WaMobileClientPayload.js +53 -0
  244. package/dist/esm/transport/noise/WaNoiseCert.js +9 -27
  245. package/dist/esm/transport/noise/WaNoiseSession.js +76 -34
  246. package/dist/esm/transport/noise/WaNoiseSocket.js +8 -4
  247. package/dist/esm/transport/stream/parse.js +8 -4
  248. package/dist/esm/util/bytes.js +22 -18
  249. package/dist/esm/util/index.js +5 -0
  250. package/dist/esm/util/primitives.js +3 -2
  251. package/dist/index.js +7 -1
  252. package/dist/infra/perf/BackgroundQueue.js +482 -0
  253. package/dist/infra/perf/BoundedTaskQueue.js +3 -1
  254. package/dist/infra/perf/PromiseDedup.js +24 -0
  255. package/dist/infra/perf/SharedExclusiveGate.js +113 -0
  256. package/dist/infra/perf/StoreLock.js +84 -0
  257. package/dist/media/WaMediaCrypto.js +328 -51
  258. package/dist/media/WaMediaTransferClient.js +72 -253
  259. package/dist/media/constants.js +5 -2
  260. package/dist/media/processor.js +2 -0
  261. package/dist/message/WaMessageClient.js +26 -19
  262. package/dist/message/addon-crypto.js +131 -0
  263. package/dist/message/content.js +211 -14
  264. package/dist/message/icdc.js +81 -0
  265. package/dist/message/incoming.js +38 -24
  266. package/dist/message/phash.js +35 -13
  267. package/dist/message/reporting-token.js +16 -30
  268. package/dist/message/use-case-secret.js +1 -1
  269. package/dist/protocol/abprops.js +163 -0
  270. package/dist/protocol/appstate.js +10 -41
  271. package/dist/protocol/browser.js +25 -18
  272. package/dist/protocol/constants.js +33 -2
  273. package/dist/protocol/defaults.js +6 -0
  274. package/dist/protocol/email.js +33 -0
  275. package/dist/protocol/index.js +8 -5
  276. package/dist/protocol/jid.js +149 -39
  277. package/dist/protocol/message.js +62 -2
  278. package/dist/protocol/nodes.js +8 -2
  279. package/dist/protocol/notification.js +10 -2
  280. package/dist/protocol/privacy-token.js +20 -0
  281. package/dist/protocol/privacy.js +58 -0
  282. package/dist/protocol/stream.js +27 -2
  283. package/dist/retry/codec.js +220 -0
  284. package/dist/retry/constants.js +1 -1
  285. package/dist/retry/index.js +5 -5
  286. package/dist/retry/parse.js +51 -30
  287. package/dist/retry/reason.js +1 -1
  288. package/dist/retry/replay.js +10 -6
  289. package/dist/retry/tracker.js +50 -12
  290. package/dist/signal/api/SignalDeviceSyncApi.js +51 -31
  291. package/dist/signal/api/SignalDigestSyncApi.js +21 -15
  292. package/dist/signal/api/SignalIdentitySyncApi.js +29 -14
  293. package/dist/signal/api/SignalMissingPreKeysSyncApi.js +17 -6
  294. package/dist/signal/api/SignalRotateKeyApi.js +4 -2
  295. package/dist/signal/api/SignalSessionSyncApi.js +16 -7
  296. package/dist/signal/api/result-map.js +13 -0
  297. package/dist/signal/constants.js +1 -5
  298. package/dist/signal/crypto/WaAdvSignature.js +2 -44
  299. package/dist/signal/crypto/constants.js +1 -5
  300. package/dist/signal/{store/sqlite.js → encoding.js} +41 -25
  301. package/dist/signal/group/SenderKeyChain.js +2 -2
  302. package/dist/signal/group/SenderKeyCodec.js +8 -8
  303. package/dist/signal/group/SenderKeyManager.js +130 -108
  304. package/dist/signal/index.js +13 -1
  305. package/dist/signal/registration/keygen.js +7 -4
  306. package/dist/signal/registration/utils.js +3 -2
  307. package/dist/signal/session/SignalProtocol.js +158 -81
  308. package/dist/signal/session/SignalRatchet.js +19 -8
  309. package/dist/signal/session/SignalSerializer.js +5 -6
  310. package/dist/signal/session/SignalSession.js +11 -9
  311. package/dist/signal/session/resolver.js +138 -103
  312. package/dist/store/contracts/identity.store.js +2 -0
  313. package/dist/store/contracts/message-secret.store.js +2 -0
  314. package/dist/store/contracts/pre-key.store.js +2 -0
  315. package/dist/store/contracts/privacy-token.store.js +2 -0
  316. package/dist/store/contracts/session.store.js +2 -0
  317. package/dist/store/createStore.js +142 -192
  318. package/dist/store/index.js +23 -33
  319. package/dist/store/locks/appstate.lock.js +29 -0
  320. package/dist/store/locks/auth.lock.js +18 -0
  321. package/dist/store/locks/contact.lock.js +23 -0
  322. package/dist/store/locks/device-list.lock.js +23 -0
  323. package/dist/store/locks/identity.lock.js +19 -0
  324. package/dist/store/locks/message-secret.lock.js +20 -0
  325. package/dist/store/locks/message.lock.js +24 -0
  326. package/dist/store/locks/participants.lock.js +23 -0
  327. package/dist/store/locks/pre-key.lock.js +30 -0
  328. package/dist/store/locks/privacy-token.lock.js +21 -0
  329. package/dist/store/locks/retry.lock.js +32 -0
  330. package/dist/store/locks/sender-key.lock.js +55 -0
  331. package/dist/store/locks/session.lock.js +22 -0
  332. package/dist/store/locks/signal.lock.js +42 -0
  333. package/dist/store/locks/thread.lock.js +24 -0
  334. package/dist/store/noop.store.js +22 -2
  335. package/dist/store/providers/memory/appstate.store.js +22 -24
  336. package/dist/store/providers/memory/device-list.store.js +13 -5
  337. package/dist/store/providers/memory/identity.store.js +35 -0
  338. package/dist/store/providers/memory/message-secret.store.js +85 -0
  339. package/dist/store/providers/memory/participants.store.js +3 -0
  340. package/dist/store/providers/memory/pre-key.store.js +101 -0
  341. package/dist/store/providers/memory/privacy-token.store.js +47 -0
  342. package/dist/store/providers/memory/retry.store.js +98 -9
  343. package/dist/store/providers/memory/sender-key.store.js +6 -1
  344. package/dist/store/providers/memory/session.store.js +49 -0
  345. package/dist/store/providers/memory/signal.store.js +1 -147
  346. package/dist/transport/WaComms.js +7 -4
  347. package/dist/transport/WaWebSocket.js +9 -7
  348. package/dist/transport/binary/constants.js +1 -31
  349. package/dist/transport/binary/decoder.js +4 -4
  350. package/dist/transport/binary/encoder.js +8 -15
  351. package/dist/transport/binary/index.js +0 -4
  352. package/dist/transport/index.js +17 -1
  353. package/dist/transport/keepalive/WaKeepAlive.js +17 -8
  354. package/dist/transport/node/WaMobileTcpSocket.js +118 -0
  355. package/dist/transport/node/WaNodeOrchestrator.js +36 -21
  356. package/dist/transport/node/builders/abprops.js +23 -0
  357. package/dist/transport/node/builders/business.js +137 -0
  358. package/dist/transport/node/builders/device.js +14 -0
  359. package/dist/transport/node/builders/email.js +72 -0
  360. package/dist/transport/node/builders/global.js +375 -0
  361. package/dist/transport/node/builders/message.js +64 -245
  362. package/dist/transport/node/builders/offline.js +17 -0
  363. package/dist/transport/node/builders/pairing.js +0 -26
  364. package/dist/transport/node/builders/prekeys.js +36 -39
  365. package/dist/transport/node/builders/presence.js +16 -0
  366. package/dist/transport/node/builders/privacy-token.js +42 -0
  367. package/dist/transport/node/builders/privacy.js +55 -0
  368. package/dist/transport/node/builders/profile.js +78 -0
  369. package/dist/transport/node/builders/retry.js +10 -22
  370. package/dist/transport/node/builders/usync.js +6 -2
  371. package/dist/transport/node/helpers.js +46 -1
  372. package/dist/transport/node/mex/argo-decoder.js +189 -0
  373. package/dist/transport/node/mex/client.js +86 -0
  374. package/dist/transport/node/mex/persist-ids.js +13 -0
  375. package/dist/transport/node/usync.js +2 -32
  376. package/dist/transport/node/xml.js +35 -14
  377. package/dist/transport/noise/WaClientPayload.js +26 -21
  378. package/dist/transport/noise/WaFrameCodec.js +1 -1
  379. package/dist/transport/noise/WaMobileClientPayload.js +56 -0
  380. package/dist/transport/noise/WaNoiseCert.js +8 -26
  381. package/dist/transport/noise/WaNoiseSession.js +75 -33
  382. package/dist/transport/noise/WaNoiseSocket.js +8 -4
  383. package/dist/transport/stream/parse.js +7 -3
  384. package/dist/types/appstate/WaAppStateCrypto.d.ts +11 -8
  385. package/dist/types/appstate/WaAppStateSyncClient.d.ts +6 -2
  386. package/dist/types/appstate/encoding.d.ts +7 -0
  387. package/dist/types/appstate/index.d.ts +3 -3
  388. package/dist/types/appstate/{WaAppStateSyncResponseParser.d.ts → response-parser.d.ts} +1 -1
  389. package/dist/types/appstate/types.d.ts +1 -1
  390. package/dist/types/appstate/utils.d.ts +0 -2
  391. package/dist/types/auth/WaAuthClient.d.ts +9 -3
  392. package/dist/types/auth/credentials-flow.d.ts +20 -0
  393. package/dist/types/auth/index.d.ts +0 -2
  394. package/dist/types/auth/pairing/WaPairingFlow.d.ts +3 -2
  395. package/dist/types/auth/pairing/{WaPairingCodeCrypto.d.ts → pairing-code-crypto.d.ts} +6 -1
  396. package/dist/types/auth/types.d.ts +41 -0
  397. package/dist/types/client/WaClient.d.ts +44 -18
  398. package/dist/types/client/WaClientFactory.d.ts +22 -8
  399. package/dist/types/client/connection/WaConnectionManager.d.ts +2 -0
  400. package/dist/types/client/coordinators/WaAbPropsCoordinator.d.ts +26 -0
  401. package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +57 -0
  402. package/dist/types/client/coordinators/WaEmailCoordinator.d.ts +24 -0
  403. package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +9 -2
  404. package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +29 -2
  405. package/dist/types/client/coordinators/WaOfflineResumeCoordinator.d.ts +31 -0
  406. package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +16 -1
  407. package/dist/types/client/coordinators/WaPrivacyCoordinator.d.ts +26 -0
  408. package/dist/types/client/coordinators/WaProfileCoordinator.d.ts +38 -0
  409. package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +12 -0
  410. package/dist/types/client/coordinators/WaStreamControlCoordinator.d.ts +3 -2
  411. package/dist/types/client/coordinators/WaTrustedContactTokenCoordinator.d.ts +55 -0
  412. package/dist/types/client/dirty.d.ts +3 -1
  413. package/dist/types/client/events/abprops.d.ts +14 -0
  414. package/dist/types/client/events/devices.d.ts +20 -0
  415. package/dist/types/client/events/identity.d.ts +9 -0
  416. package/dist/types/client/events/privacy-token.d.ts +7 -0
  417. package/dist/types/client/events/registration.d.ts +17 -0
  418. package/dist/types/client/history-sync.d.ts +9 -6
  419. package/dist/types/client/incoming.d.ts +9 -2
  420. package/dist/types/client/index.d.ts +1 -1
  421. package/dist/types/client/mailbox.d.ts +5 -5
  422. package/dist/types/client/media.d.ts +31 -0
  423. package/dist/types/client/messages.d.ts +3 -2
  424. package/dist/types/client/persistence/WriteBehindPersistence.d.ts +34 -0
  425. package/dist/types/client/tokens/cs-token.d.ts +10 -0
  426. package/dist/types/client/tokens/tc-token.d.ts +5 -0
  427. package/dist/types/client/types.d.ts +151 -4
  428. package/dist/types/crypto/core/index.d.ts +3 -2
  429. package/dist/types/crypto/core/nonce.d.ts +2 -0
  430. package/dist/types/crypto/core/primitives.d.ts +1 -2
  431. package/dist/types/crypto/core/random.d.ts +2 -1
  432. package/dist/types/crypto/core/xeddsa.d.ts +2 -0
  433. package/dist/types/crypto/curves/constants.d.ts +1 -0
  434. package/dist/types/crypto/index.d.ts +2 -0
  435. package/dist/types/crypto/math/constants.d.ts +4 -2
  436. package/dist/types/crypto/math/fe.d.ts +30 -0
  437. package/dist/types/crypto/math/mod.d.ts +0 -2
  438. package/dist/types/crypto/math/types.d.ts +11 -4
  439. package/dist/types/index.d.ts +6 -3
  440. package/dist/types/infra/log/ConsoleLogger.d.ts +1 -1
  441. package/dist/types/infra/log/PinoLogger.d.ts +1 -1
  442. package/dist/types/infra/perf/BackgroundQueue.d.ts +58 -0
  443. package/dist/types/infra/perf/PromiseDedup.d.ts +4 -0
  444. package/dist/types/infra/perf/SharedExclusiveGate.d.ts +17 -0
  445. package/dist/types/infra/perf/StoreLock.d.ts +11 -0
  446. package/dist/types/media/WaMediaCrypto.d.ts +16 -6
  447. package/dist/types/media/WaMediaTransferClient.d.ts +6 -23
  448. package/dist/types/media/constants.d.ts +3 -1
  449. package/dist/types/media/index.d.ts +2 -1
  450. package/dist/types/media/processor.d.ts +28 -0
  451. package/dist/types/media/types.d.ts +19 -5
  452. package/dist/types/message/addon-crypto.d.ts +34 -3
  453. package/dist/types/message/content.d.ts +11 -1
  454. package/dist/types/message/icdc.d.ts +13 -0
  455. package/dist/types/message/reporting-token.d.ts +0 -1
  456. package/dist/types/message/types.d.ts +42 -11
  457. package/dist/types/protocol/abprops.d.ts +142 -0
  458. package/dist/types/protocol/appstate.d.ts +0 -11
  459. package/dist/types/protocol/browser.d.ts +1 -0
  460. package/dist/types/protocol/constants.d.ts +12 -4
  461. package/dist/types/protocol/defaults.d.ts +6 -0
  462. package/dist/types/protocol/email.d.ts +32 -0
  463. package/dist/types/protocol/index.d.ts +1 -2
  464. package/dist/types/protocol/jid.d.ts +20 -2
  465. package/dist/types/protocol/message.d.ts +60 -0
  466. package/dist/types/protocol/nodes.d.ts +6 -0
  467. package/dist/types/protocol/notification.d.ts +8 -0
  468. package/dist/types/protocol/privacy-token.d.ts +17 -0
  469. package/dist/types/protocol/privacy.d.ts +75 -0
  470. package/dist/types/protocol/stream.d.ts +31 -0
  471. package/dist/types/retry/codec.d.ts +3 -0
  472. package/dist/types/retry/index.d.ts +3 -3
  473. package/dist/types/retry/parse.d.ts +5 -2
  474. package/dist/types/retry/reason.d.ts +1 -1
  475. package/dist/types/retry/tracker.d.ts +1 -0
  476. package/dist/types/retry/types.d.ts +6 -1
  477. package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +2 -1
  478. package/dist/types/signal/api/SignalDigestSyncApi.d.ts +9 -0
  479. package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +5 -3
  480. package/dist/types/signal/api/SignalRotateKeyApi.d.ts +4 -5
  481. package/dist/types/signal/api/SignalSessionSyncApi.d.ts +8 -6
  482. package/dist/types/signal/api/result-map.d.ts +1 -0
  483. package/dist/types/signal/constants.d.ts +0 -3
  484. package/dist/types/signal/crypto/WaAdvSignature.d.ts +0 -2
  485. package/dist/types/signal/crypto/constants.d.ts +0 -1
  486. package/dist/types/signal/{store/sqlite.d.ts → encoding.d.ts} +9 -3
  487. package/dist/types/signal/group/SenderKeyChain.d.ts +1 -1
  488. package/dist/types/signal/group/SenderKeyManager.d.ts +17 -7
  489. package/dist/types/signal/index.d.ts +2 -0
  490. package/dist/types/signal/registration/utils.d.ts +2 -1
  491. package/dist/types/signal/session/SignalProtocol.d.ts +21 -6
  492. package/dist/types/signal/session/SignalSerializer.d.ts +2 -1
  493. package/dist/types/signal/session/resolver.d.ts +11 -4
  494. package/dist/types/signal/types.d.ts +16 -4
  495. package/dist/types/store/contracts/appstate.store.d.ts +1 -1
  496. package/dist/types/store/contracts/identity.store.d.ts +11 -0
  497. package/dist/types/store/contracts/message-secret.store.d.ts +16 -0
  498. package/dist/types/store/contracts/pre-key.store.d.ts +13 -0
  499. package/dist/types/store/contracts/privacy-token.store.d.ts +16 -0
  500. package/dist/types/store/contracts/retry.store.d.ts +7 -0
  501. package/dist/types/store/contracts/session.store.d.ts +14 -0
  502. package/dist/types/store/contracts/signal.store.d.ts +1 -27
  503. package/dist/types/store/createStore.d.ts +1 -1
  504. package/dist/types/store/index.d.ts +12 -12
  505. package/dist/types/store/locks/appstate.lock.d.ts +3 -0
  506. package/dist/types/store/locks/auth.lock.d.ts +3 -0
  507. package/dist/types/store/locks/contact.lock.d.ts +3 -0
  508. package/dist/types/store/locks/device-list.lock.d.ts +2 -0
  509. package/dist/types/store/locks/identity.lock.d.ts +3 -0
  510. package/dist/types/store/locks/message-secret.lock.d.ts +3 -0
  511. package/dist/types/store/locks/message.lock.d.ts +3 -0
  512. package/dist/types/store/locks/participants.lock.d.ts +2 -0
  513. package/dist/types/store/locks/pre-key.lock.d.ts +3 -0
  514. package/dist/types/store/locks/privacy-token.lock.d.ts +2 -0
  515. package/dist/types/store/locks/retry.lock.d.ts +2 -0
  516. package/dist/types/store/locks/sender-key.lock.d.ts +3 -0
  517. package/dist/types/store/locks/session.lock.d.ts +3 -0
  518. package/dist/types/store/locks/signal.lock.d.ts +3 -0
  519. package/dist/types/store/locks/thread.lock.d.ts +3 -0
  520. package/dist/types/store/noop.store.d.ts +4 -0
  521. package/dist/types/store/providers/memory/appstate.store.d.ts +1 -1
  522. package/dist/types/store/providers/memory/identity.store.d.ts +18 -0
  523. package/dist/types/store/providers/memory/message-secret.store.d.ts +21 -0
  524. package/dist/types/store/providers/memory/pre-key.store.d.ts +23 -0
  525. package/dist/types/store/providers/memory/privacy-token.store.d.ts +13 -0
  526. package/dist/types/store/providers/memory/retry.store.d.ts +15 -1
  527. package/dist/types/store/providers/memory/session.store.d.ts +21 -0
  528. package/dist/types/store/providers/memory/signal.store.d.ts +2 -43
  529. package/dist/types/store/providers/memory/thread.store.d.ts +1 -1
  530. package/dist/types/store/types.d.ts +69 -61
  531. package/dist/types/transport/WaWebSocket.d.ts +1 -1
  532. package/dist/types/transport/binary/constants.d.ts +0 -30
  533. package/dist/types/transport/binary/index.d.ts +0 -1
  534. package/dist/types/transport/index.d.ts +8 -1
  535. package/dist/types/transport/keepalive/WaKeepAlive.d.ts +4 -1
  536. package/dist/types/transport/node/WaMobileTcpSocket.d.ts +18 -0
  537. package/dist/types/transport/node/WaNodeOrchestrator.d.ts +9 -6
  538. package/dist/types/transport/node/builders/abprops.d.ts +5 -0
  539. package/dist/types/transport/node/builders/business.d.ts +29 -0
  540. package/dist/types/transport/node/builders/device.d.ts +2 -0
  541. package/dist/types/transport/node/builders/email.d.ts +11 -0
  542. package/dist/types/transport/node/builders/global.d.ts +102 -0
  543. package/dist/types/transport/node/builders/message.d.ts +8 -7
  544. package/dist/types/transport/node/builders/offline.d.ts +2 -0
  545. package/dist/types/transport/node/builders/pairing.d.ts +0 -2
  546. package/dist/types/transport/node/builders/prekeys.d.ts +4 -3
  547. package/dist/types/transport/node/builders/presence.d.ts +6 -0
  548. package/dist/types/transport/node/builders/privacy-token.d.ts +9 -0
  549. package/dist/types/transport/node/builders/privacy.d.ts +7 -0
  550. package/dist/types/transport/node/builders/profile.d.ts +8 -0
  551. package/dist/types/transport/node/builders/retry.d.ts +0 -1
  552. package/dist/types/transport/node/helpers.d.ts +8 -0
  553. package/dist/types/transport/node/mex/argo-decoder.d.ts +11 -0
  554. package/dist/types/transport/node/mex/client.d.ts +18 -0
  555. package/dist/types/transport/node/mex/persist-ids.d.ts +14 -0
  556. package/dist/types/transport/noise/WaMobileClientPayload.d.ts +29 -0
  557. package/dist/types/transport/noise/WaNoiseCert.d.ts +7 -1
  558. package/dist/types/transport/noise/WaNoiseSession.d.ts +4 -2
  559. package/dist/types/transport/noise/WaNoiseSocket.d.ts +4 -2
  560. package/dist/types/transport/types.d.ts +8 -0
  561. package/dist/types/util/bytes.d.ts +1 -1
  562. package/dist/types/util/index.d.ts +5 -0
  563. package/dist/types/util/primitives.d.ts +0 -1
  564. package/dist/util/bytes.js +22 -18
  565. package/dist/util/index.js +23 -0
  566. package/dist/util/primitives.js +2 -2
  567. package/package.json +34 -10
  568. package/proto/index.js +1 -1
  569. package/dist/auth/flow/WaAuthCredentialsFlow.js +0 -130
  570. package/dist/auth/pairing/constants.js +0 -5
  571. package/dist/client/connection/WaKeyShareCoordinator.js +0 -63
  572. package/dist/crypto/core/constants.js +0 -4
  573. package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +0 -125
  574. package/dist/esm/auth/pairing/constants.js +0 -2
  575. package/dist/esm/client/connection/WaKeyShareCoordinator.js +0 -59
  576. package/dist/esm/crypto/core/constants.js +0 -1
  577. package/dist/esm/retry/outbound.js +0 -82
  578. package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +0 -37
  579. package/dist/esm/store/providers/sqlite/appstate.store.js +0 -250
  580. package/dist/esm/store/providers/sqlite/auth.store.js +0 -176
  581. package/dist/esm/store/providers/sqlite/connection.js +0 -245
  582. package/dist/esm/store/providers/sqlite/contact.store.js +0 -74
  583. package/dist/esm/store/providers/sqlite/device-list.store.js +0 -127
  584. package/dist/esm/store/providers/sqlite/message.store.js +0 -132
  585. package/dist/esm/store/providers/sqlite/migrations.js +0 -347
  586. package/dist/esm/store/providers/sqlite/participants.store.js +0 -77
  587. package/dist/esm/store/providers/sqlite/retry.store.js +0 -141
  588. package/dist/esm/store/providers/sqlite/sender-key.store.js +0 -198
  589. package/dist/esm/store/providers/sqlite/signal.store.js +0 -435
  590. package/dist/esm/store/providers/sqlite/table-names.js +0 -107
  591. package/dist/esm/store/providers/sqlite/thread.store.js +0 -85
  592. package/dist/esm/transport/node/builders/index.js +0 -8
  593. package/dist/retry/outbound.js +0 -87
  594. package/dist/store/providers/sqlite/BaseSqliteStore.js +0 -41
  595. package/dist/store/providers/sqlite/appstate.store.js +0 -254
  596. package/dist/store/providers/sqlite/auth.store.js +0 -180
  597. package/dist/store/providers/sqlite/connection.js +0 -281
  598. package/dist/store/providers/sqlite/contact.store.js +0 -78
  599. package/dist/store/providers/sqlite/device-list.store.js +0 -131
  600. package/dist/store/providers/sqlite/message.store.js +0 -136
  601. package/dist/store/providers/sqlite/migrations.js +0 -350
  602. package/dist/store/providers/sqlite/participants.store.js +0 -81
  603. package/dist/store/providers/sqlite/retry.store.js +0 -145
  604. package/dist/store/providers/sqlite/sender-key.store.js +0 -202
  605. package/dist/store/providers/sqlite/signal.store.js +0 -439
  606. package/dist/store/providers/sqlite/table-names.js +0 -113
  607. package/dist/store/providers/sqlite/thread.store.js +0 -89
  608. package/dist/transport/node/builders/index.js +0 -42
  609. package/dist/types/appstate/store/sqlite.d.ts +0 -7
  610. package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +0 -14
  611. package/dist/types/auth/pairing/constants.d.ts +0 -2
  612. package/dist/types/client/connection/WaKeyShareCoordinator.d.ts +0 -14
  613. package/dist/types/crypto/core/constants.d.ts +0 -1
  614. package/dist/types/retry/outbound.d.ts +0 -4
  615. package/dist/types/store/providers/sqlite/BaseSqliteStore.d.ts +0 -12
  616. package/dist/types/store/providers/sqlite/appstate.store.d.ts +0 -17
  617. package/dist/types/store/providers/sqlite/auth.store.d.ts +0 -10
  618. package/dist/types/store/providers/sqlite/connection.d.ts +0 -10
  619. package/dist/types/store/providers/sqlite/contact.store.d.ts +0 -12
  620. package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -15
  621. package/dist/types/store/providers/sqlite/message.store.d.ts +0 -13
  622. package/dist/types/store/providers/sqlite/migrations.d.ts +0 -3
  623. package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -12
  624. package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -15
  625. package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -24
  626. package/dist/types/store/providers/sqlite/signal.store.d.ts +0 -53
  627. package/dist/types/store/providers/sqlite/table-names.d.ts +0 -5
  628. package/dist/types/store/providers/sqlite/thread.store.d.ts +0 -13
  629. package/dist/types/transport/node/builders/index.d.ts +0 -8
  630. /package/dist/appstate/{WaAppStateSyncResponseParser.js → response-parser.js} +0 -0
@@ -1,113 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WA_SQLITE_DEFAULT_TABLE_NAMES = void 0;
4
- exports.resolveSqliteTableNames = resolveSqliteTableNames;
5
- exports.serializeSqliteTableNames = serializeSqliteTableNames;
6
- exports.createSqliteTableNameSqlResolver = createSqliteTableNameSqlResolver;
7
- const SQLITE_TABLE_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
8
- const WA_SQLITE_TABLE_NAME_ORDER = Object.freeze([
9
- 'wa_migrations',
10
- 'auth_credentials',
11
- 'signal_meta',
12
- 'signal_registration',
13
- 'signal_signed_prekey',
14
- 'signal_prekey',
15
- 'signal_session',
16
- 'signal_identity',
17
- 'sender_keys',
18
- 'sender_key_distribution',
19
- 'appstate_sync_keys',
20
- 'appstate_collection_versions',
21
- 'appstate_collection_index_values',
22
- 'retry_outbound_messages',
23
- 'retry_inbound_counters',
24
- 'mailbox_messages',
25
- 'mailbox_threads',
26
- 'mailbox_contacts',
27
- 'group_participants_cache',
28
- 'device_list_cache'
29
- ]);
30
- const WA_SQLITE_ALLOWED_TABLE_NAME_SET = new Set(WA_SQLITE_TABLE_NAME_ORDER);
31
- const WA_SQLITE_ALLOWED_TABLE_NAME_LIST = WA_SQLITE_TABLE_NAME_ORDER.join(', ');
32
- exports.WA_SQLITE_DEFAULT_TABLE_NAMES = Object.freeze({
33
- wa_migrations: 'wa_migrations',
34
- auth_credentials: 'auth_credentials',
35
- signal_meta: 'signal_meta',
36
- signal_registration: 'signal_registration',
37
- signal_signed_prekey: 'signal_signed_prekey',
38
- signal_prekey: 'signal_prekey',
39
- signal_session: 'signal_session',
40
- signal_identity: 'signal_identity',
41
- sender_keys: 'sender_keys',
42
- sender_key_distribution: 'sender_key_distribution',
43
- appstate_sync_keys: 'appstate_sync_keys',
44
- appstate_collection_versions: 'appstate_collection_versions',
45
- appstate_collection_index_values: 'appstate_collection_index_values',
46
- retry_outbound_messages: 'retry_outbound_messages',
47
- retry_inbound_counters: 'retry_inbound_counters',
48
- mailbox_messages: 'mailbox_messages',
49
- mailbox_threads: 'mailbox_threads',
50
- mailbox_contacts: 'mailbox_contacts',
51
- group_participants_cache: 'group_participants_cache',
52
- device_list_cache: 'device_list_cache'
53
- });
54
- const DEFAULT_SQLITE_TABLE_NAME_SERIALIZATION = serializeSqliteTableNames(exports.WA_SQLITE_DEFAULT_TABLE_NAMES);
55
- function normalizeTableName(table, rawValue) {
56
- const value = rawValue.trim();
57
- if (value.length === 0) {
58
- throw new Error(`sqlite tableNames.${table} must be a non-empty string`);
59
- }
60
- if (!SQLITE_TABLE_NAME_PATTERN.test(value)) {
61
- throw new Error(`sqlite tableNames.${table} must match ${SQLITE_TABLE_NAME_PATTERN.toString()}`);
62
- }
63
- return value;
64
- }
65
- function assertNoDuplicateTableNames(tableNames) {
66
- const seen = new Set();
67
- for (const table of WA_SQLITE_TABLE_NAME_ORDER) {
68
- const mapped = tableNames[table];
69
- const normalizedMapped = mapped.toLowerCase();
70
- if (seen.has(normalizedMapped)) {
71
- throw new Error(`sqlite tableNames contains duplicate target "${mapped}"`);
72
- }
73
- seen.add(normalizedMapped);
74
- }
75
- }
76
- function resolveSqliteTableNames(overrides) {
77
- if (!overrides) {
78
- return exports.WA_SQLITE_DEFAULT_TABLE_NAMES;
79
- }
80
- const entries = Object.entries(overrides);
81
- if (entries.length === 0) {
82
- return exports.WA_SQLITE_DEFAULT_TABLE_NAMES;
83
- }
84
- const resolved = {
85
- ...exports.WA_SQLITE_DEFAULT_TABLE_NAMES
86
- };
87
- for (const [table, rawName] of entries) {
88
- if (!WA_SQLITE_ALLOWED_TABLE_NAME_SET.has(table)) {
89
- throw new Error(`unsupported sqlite tableNames key "${table}". Allowed table names: ${WA_SQLITE_ALLOWED_TABLE_NAME_LIST}`);
90
- }
91
- if (typeof rawName !== 'string') {
92
- throw new Error(`sqlite tableNames.${table} must be a string`);
93
- }
94
- const tableName = table;
95
- resolved[tableName] = normalizeTableName(tableName, rawName);
96
- }
97
- assertNoDuplicateTableNames(resolved);
98
- return Object.freeze(resolved);
99
- }
100
- function serializeSqliteTableNames(tableNames) {
101
- return WA_SQLITE_TABLE_NAME_ORDER.map((table) => `${table}=${tableNames[table]}`).join(';');
102
- }
103
- function escapeRegexToken(value) {
104
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
105
- }
106
- function createSqliteTableNameSqlResolver(tableNames) {
107
- const serialized = serializeSqliteTableNames(tableNames);
108
- if (serialized === DEFAULT_SQLITE_TABLE_NAME_SERIALIZATION) {
109
- return (sql) => sql;
110
- }
111
- const pattern = new RegExp(`\\b(?:${WA_SQLITE_TABLE_NAME_ORDER.map(escapeRegexToken).join('|')})\\b`, 'g');
112
- return (sql) => sql.replace(pattern, (token) => tableNames[token] ?? token);
113
- }
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WaThreadSqliteStore = void 0;
4
- const BaseSqliteStore_1 = require("../../providers/sqlite/BaseSqliteStore");
5
- const coercion_1 = require("../../../util/coercion");
6
- const collections_1 = require("../../../util/collections");
7
- const THREAD_COLUMNS = 'jid, name, unread_count, archived, pinned, mute_end_ms, marked_as_unread, ephemeral_expiration';
8
- function decodeThreadRow(row) {
9
- return {
10
- jid: (0, coercion_1.asString)(row.jid, 'mailbox_threads.jid'),
11
- name: (0, coercion_1.asOptionalString)(row.name, 'mailbox_threads.name'),
12
- unreadCount: (0, coercion_1.asOptionalNumber)(row.unread_count, 'mailbox_threads.unread_count'),
13
- archived: (0, coercion_1.toBoolOrUndef)(row.archived),
14
- pinned: (0, coercion_1.asOptionalNumber)(row.pinned, 'mailbox_threads.pinned'),
15
- muteEndMs: (0, coercion_1.asOptionalNumber)(row.mute_end_ms, 'mailbox_threads.mute_end_ms'),
16
- markedAsUnread: (0, coercion_1.toBoolOrUndef)(row.marked_as_unread),
17
- ephemeralExpiration: (0, coercion_1.asOptionalNumber)(row.ephemeral_expiration, 'mailbox_threads.ephemeral_expiration')
18
- };
19
- }
20
- class WaThreadSqliteStore extends BaseSqliteStore_1.BaseSqliteStore {
21
- constructor(options) {
22
- super(options, ['mailbox']);
23
- }
24
- async upsert(record) {
25
- const db = await this.getConnection();
26
- this.upsertThreadRow(db, record);
27
- }
28
- async upsertBatch(records) {
29
- if (records.length === 0) {
30
- return;
31
- }
32
- await this.withTransaction((db) => {
33
- for (const record of records) {
34
- this.upsertThreadRow(db, record);
35
- }
36
- });
37
- }
38
- async getByJid(jid) {
39
- const db = await this.getConnection();
40
- const row = db.get(`SELECT ${THREAD_COLUMNS}
41
- FROM mailbox_threads
42
- WHERE session_id = ? AND jid = ?`, [this.options.sessionId, jid]);
43
- return row ? decodeThreadRow(row) : null;
44
- }
45
- async list(limit) {
46
- const db = await this.getConnection();
47
- const rows = db.all(`SELECT ${THREAD_COLUMNS}
48
- FROM mailbox_threads
49
- WHERE session_id = ?
50
- LIMIT ?`, [this.options.sessionId, (0, collections_1.normalizeQueryLimit)(limit, 100)]);
51
- return rows.map(decodeThreadRow);
52
- }
53
- async deleteByJid(jid) {
54
- const db = await this.getConnection();
55
- db.run(`DELETE FROM mailbox_threads
56
- WHERE session_id = ? AND jid = ?`, [this.options.sessionId, jid]);
57
- const row = db.get('SELECT changes() AS total', []);
58
- return row ? Number(row.total) : 0;
59
- }
60
- async clear() {
61
- const db = await this.getConnection();
62
- db.run('DELETE FROM mailbox_threads WHERE session_id = ?', [this.options.sessionId]);
63
- }
64
- upsertThreadRow(db, record) {
65
- db.run(`INSERT INTO mailbox_threads (
66
- session_id, jid, name, unread_count, archived, pinned,
67
- mute_end_ms, marked_as_unread, ephemeral_expiration
68
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
69
- ON CONFLICT(session_id, jid) DO UPDATE SET
70
- name=COALESCE(excluded.name, mailbox_threads.name),
71
- unread_count=COALESCE(excluded.unread_count, mailbox_threads.unread_count),
72
- archived=COALESCE(excluded.archived, mailbox_threads.archived),
73
- pinned=COALESCE(excluded.pinned, mailbox_threads.pinned),
74
- mute_end_ms=COALESCE(excluded.mute_end_ms, mailbox_threads.mute_end_ms),
75
- marked_as_unread=COALESCE(excluded.marked_as_unread, mailbox_threads.marked_as_unread),
76
- ephemeral_expiration=COALESCE(excluded.ephemeral_expiration, mailbox_threads.ephemeral_expiration)`, [
77
- this.options.sessionId,
78
- record.jid,
79
- record.name ?? null,
80
- record.unreadCount ?? null,
81
- record.archived === undefined ? null : record.archived ? 1 : 0,
82
- record.pinned ?? null,
83
- record.muteEndMs ?? null,
84
- record.markedAsUnread === undefined ? null : record.markedAsUnread ? 1 : 0,
85
- record.ephemeralExpiration ?? null
86
- ]);
87
- }
88
- }
89
- exports.WaThreadSqliteStore = WaThreadSqliteStore;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildUsyncUserNode = exports.buildUsyncIq = exports.buildLeaveGroupIq = exports.buildGroupParticipantChangeIq = exports.buildCreateGroupIq = exports.buildSignedPreKeyRotateIq = exports.buildPreKeyUploadIq = exports.buildMissingPreKeysFetchIq = exports.buildRetryReceiptNode = exports.buildInboundRetryReceiptAckNode = exports.buildInboundRetryReceiptNode = exports.buildInboundReceiptAckNode = exports.buildInboundMessageAckNode = exports.buildInboundDeliveryReceiptNode = exports.buildGroupSenderKeyMessageNode = exports.buildGroupRetryMessageNode = exports.buildGroupDirectMessageNode = exports.buildDirectMessageFanoutNode = exports.buildMediaConnIq = exports.buildNotificationAckNode = exports.buildIqResultNode = exports.buildGetCountryCodeRequestNode = exports.buildCompanionHelloRequestNode = exports.buildCompanionFinishRequestNode = exports.buildNewsletterMetadataSyncIq = exports.buildGroupsDirtySyncIq = exports.buildClearDirtyBitsIq = exports.buildAccountPrivacySyncIq = exports.buildAccountPictureSyncIq = exports.buildAccountDevicesSyncIq = exports.buildAccountBlocklistSyncIq = void 0;
4
- var account_sync_1 = require("../../node/builders/account-sync");
5
- Object.defineProperty(exports, "buildAccountBlocklistSyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountBlocklistSyncIq; } });
6
- Object.defineProperty(exports, "buildAccountDevicesSyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountDevicesSyncIq; } });
7
- Object.defineProperty(exports, "buildAccountPictureSyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountPictureSyncIq; } });
8
- Object.defineProperty(exports, "buildAccountPrivacySyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountPrivacySyncIq; } });
9
- Object.defineProperty(exports, "buildClearDirtyBitsIq", { enumerable: true, get: function () { return account_sync_1.buildClearDirtyBitsIq; } });
10
- Object.defineProperty(exports, "buildGroupsDirtySyncIq", { enumerable: true, get: function () { return account_sync_1.buildGroupsDirtySyncIq; } });
11
- Object.defineProperty(exports, "buildNewsletterMetadataSyncIq", { enumerable: true, get: function () { return account_sync_1.buildNewsletterMetadataSyncIq; } });
12
- var pairing_1 = require("../../node/builders/pairing");
13
- Object.defineProperty(exports, "buildCompanionFinishRequestNode", { enumerable: true, get: function () { return pairing_1.buildCompanionFinishRequestNode; } });
14
- Object.defineProperty(exports, "buildCompanionHelloRequestNode", { enumerable: true, get: function () { return pairing_1.buildCompanionHelloRequestNode; } });
15
- Object.defineProperty(exports, "buildGetCountryCodeRequestNode", { enumerable: true, get: function () { return pairing_1.buildGetCountryCodeRequestNode; } });
16
- Object.defineProperty(exports, "buildIqResultNode", { enumerable: true, get: function () { return pairing_1.buildIqResultNode; } });
17
- Object.defineProperty(exports, "buildNotificationAckNode", { enumerable: true, get: function () { return pairing_1.buildNotificationAckNode; } });
18
- var media_1 = require("../../node/builders/media");
19
- Object.defineProperty(exports, "buildMediaConnIq", { enumerable: true, get: function () { return media_1.buildMediaConnIq; } });
20
- var message_1 = require("../../node/builders/message");
21
- Object.defineProperty(exports, "buildDirectMessageFanoutNode", { enumerable: true, get: function () { return message_1.buildDirectMessageFanoutNode; } });
22
- Object.defineProperty(exports, "buildGroupDirectMessageNode", { enumerable: true, get: function () { return message_1.buildGroupDirectMessageNode; } });
23
- Object.defineProperty(exports, "buildGroupRetryMessageNode", { enumerable: true, get: function () { return message_1.buildGroupRetryMessageNode; } });
24
- Object.defineProperty(exports, "buildGroupSenderKeyMessageNode", { enumerable: true, get: function () { return message_1.buildGroupSenderKeyMessageNode; } });
25
- Object.defineProperty(exports, "buildInboundDeliveryReceiptNode", { enumerable: true, get: function () { return message_1.buildInboundDeliveryReceiptNode; } });
26
- Object.defineProperty(exports, "buildInboundMessageAckNode", { enumerable: true, get: function () { return message_1.buildInboundMessageAckNode; } });
27
- Object.defineProperty(exports, "buildInboundReceiptAckNode", { enumerable: true, get: function () { return message_1.buildInboundReceiptAckNode; } });
28
- Object.defineProperty(exports, "buildInboundRetryReceiptNode", { enumerable: true, get: function () { return message_1.buildInboundRetryReceiptNode; } });
29
- Object.defineProperty(exports, "buildInboundRetryReceiptAckNode", { enumerable: true, get: function () { return message_1.buildInboundRetryReceiptAckNode; } });
30
- var retry_1 = require("../../node/builders/retry");
31
- Object.defineProperty(exports, "buildRetryReceiptNode", { enumerable: true, get: function () { return retry_1.buildRetryReceiptNode; } });
32
- var prekeys_1 = require("../../node/builders/prekeys");
33
- Object.defineProperty(exports, "buildMissingPreKeysFetchIq", { enumerable: true, get: function () { return prekeys_1.buildMissingPreKeysFetchIq; } });
34
- Object.defineProperty(exports, "buildPreKeyUploadIq", { enumerable: true, get: function () { return prekeys_1.buildPreKeyUploadIq; } });
35
- Object.defineProperty(exports, "buildSignedPreKeyRotateIq", { enumerable: true, get: function () { return prekeys_1.buildSignedPreKeyRotateIq; } });
36
- var group_1 = require("../../node/builders/group");
37
- Object.defineProperty(exports, "buildCreateGroupIq", { enumerable: true, get: function () { return group_1.buildCreateGroupIq; } });
38
- Object.defineProperty(exports, "buildGroupParticipantChangeIq", { enumerable: true, get: function () { return group_1.buildGroupParticipantChangeIq; } });
39
- Object.defineProperty(exports, "buildLeaveGroupIq", { enumerable: true, get: function () { return group_1.buildLeaveGroupIq; } });
40
- var usync_1 = require("../../node/builders/usync");
41
- Object.defineProperty(exports, "buildUsyncIq", { enumerable: true, get: function () { return usync_1.buildUsyncIq; } });
42
- Object.defineProperty(exports, "buildUsyncUserNode", { enumerable: true, get: function () { return usync_1.buildUsyncUserNode; } });
@@ -1,7 +0,0 @@
1
- import type { WaAppStateStoreData, WaAppStateSyncKey } from '../types';
2
- type SqliteRow = Readonly<Record<string, unknown>>;
3
- export declare function encodeAppStateFingerprint(fingerprint: WaAppStateSyncKey['fingerprint']): Uint8Array | null;
4
- export declare function decodeAppStateFingerprint(raw: unknown): WaAppStateSyncKey['fingerprint'] | undefined;
5
- export declare function decodeAppStateSyncKeys(rows: readonly SqliteRow[]): readonly WaAppStateSyncKey[];
6
- export declare function decodeAppStateCollections(versionRows: readonly SqliteRow[], valueRows: readonly SqliteRow[]): WaAppStateStoreData['collections'];
7
- export {};
@@ -1,14 +0,0 @@
1
- import type { WaAuthClientOptions, WaAuthCredentials, WaAuthSocketOptions } from '../types';
2
- import type { Logger } from '../../infra/log/types';
3
- import type { WaAuthStore } from '../../store/contracts/auth.store';
4
- import type { WaSignalStore } from '../../store/contracts/signal.store';
5
- import type { WaCommsConfig } from '../../transport/types';
6
- interface WaAuthCredentialsFlowArgs {
7
- readonly logger: Logger;
8
- readonly authStore: WaAuthStore;
9
- readonly signalStore: WaSignalStore;
10
- }
11
- export declare function loadOrCreateCredentials(args: WaAuthCredentialsFlowArgs): Promise<WaAuthCredentials>;
12
- export declare function persistCredentials(args: WaAuthCredentialsFlowArgs, credentials: WaAuthCredentials): Promise<void>;
13
- export declare function buildCommsConfig(logger: Logger, credentials: WaAuthCredentials, socketOptions: WaAuthSocketOptions, clientOptions: Pick<WaAuthClientOptions, 'deviceBrowser' | 'deviceOsDisplayName' | 'requireFullSync'>): WaCommsConfig;
14
- export {};
@@ -1,2 +0,0 @@
1
- export declare const CROCKFORD_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTVWXYZ";
2
- export declare const PBKDF2_ITERATIONS: number;
@@ -1,14 +0,0 @@
1
- export declare class WaKeyShareCoordinator {
2
- private readonly waiters;
3
- private version;
4
- private bootstrapDone;
5
- constructor();
6
- waitForShare(timeoutMs: number): Promise<boolean>;
7
- notifyReceived(): void;
8
- notifyDisconnected(): void;
9
- isBootstrapDone(): boolean;
10
- markBootstrapDone(): void;
11
- getVersion(): number;
12
- hasWaiters(): boolean;
13
- private releaseWaiters;
14
- }
@@ -1 +0,0 @@
1
- export declare const SERIALIZED_PUB_KEY_PREFIX = 5;
@@ -1,4 +0,0 @@
1
- import type { WaRetryOutboundState, WaRetryReplayPayload } from './types';
2
- export declare function encodeRetryReplayPayload(payload: WaRetryReplayPayload): Uint8Array;
3
- export declare function decodeRetryReplayPayload(raw: Uint8Array): WaRetryReplayPayload;
4
- export declare function pickRetryStateMax(left: WaRetryOutboundState, right: WaRetryOutboundState): WaRetryOutboundState;
@@ -1,12 +0,0 @@
1
- import { type WaSqliteConnection } from '../../providers/sqlite/connection';
2
- import { type WaSqliteMigrationDomain } from '../../providers/sqlite/migrations';
3
- import type { WaSqliteStorageOptions } from '../../types';
4
- export declare abstract class BaseSqliteStore {
5
- protected readonly options: WaSqliteStorageOptions;
6
- private readonly migrationDomains;
7
- private connectionPromise;
8
- protected constructor(options: WaSqliteStorageOptions, migrationDomains: readonly WaSqliteMigrationDomain[]);
9
- protected getConnection(): Promise<WaSqliteConnection>;
10
- protected withTransaction<T>(run: (connection: WaSqliteConnection) => Promise<T> | T): Promise<T>;
11
- destroy(): Promise<void>;
12
- }
@@ -1,17 +0,0 @@
1
- import type { AppStateCollectionName, WaAppStateSyncKey, WaAppStateStoreData } from '../../../appstate/types';
2
- import type { WaAppStateCollectionStateUpdate, WaAppStateCollectionStoreState, WaAppStateStore } from '../../contracts/appstate.store';
3
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
4
- import type { WaSqliteStorageOptions } from '../../types';
5
- export declare class WaAppStateSqliteStore extends BaseSqliteStore implements WaAppStateStore {
6
- constructor(options: WaSqliteStorageOptions);
7
- exportData(): Promise<WaAppStateStoreData>;
8
- upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
9
- getSyncKey(keyId: Uint8Array): Promise<WaAppStateSyncKey | null>;
10
- getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
11
- getSyncKeyDataBatch(keyIds: readonly Uint8Array[]): Promise<readonly (Uint8Array | null)[]>;
12
- getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
13
- getCollectionState(collection: AppStateCollectionName): Promise<WaAppStateCollectionStoreState>;
14
- getCollectionStates(collections: readonly AppStateCollectionName[]): Promise<readonly WaAppStateCollectionStoreState[]>;
15
- setCollectionStates(updates: readonly WaAppStateCollectionStateUpdate[]): Promise<void>;
16
- clear(): Promise<void>;
17
- }
@@ -1,10 +0,0 @@
1
- import type { WaAuthCredentials } from '../../../auth/types';
2
- import type { WaAuthStore } from '../../contracts/auth.store';
3
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
4
- import type { WaSqliteStorageOptions } from '../../types';
5
- export declare class WaAuthSqliteStore extends BaseSqliteStore implements WaAuthStore {
6
- constructor(options: WaSqliteStorageOptions);
7
- load(): Promise<WaAuthCredentials | null>;
8
- save(credentials: WaAuthCredentials): Promise<void>;
9
- clear(): Promise<void>;
10
- }
@@ -1,10 +0,0 @@
1
- import type { WaSqliteDriver, WaSqliteStorageOptions } from '../../types';
2
- export interface WaSqliteConnection {
3
- readonly driver: Exclude<WaSqliteDriver, 'auto'>;
4
- exec(sql: string): void;
5
- run(sql: string, params?: readonly unknown[]): void;
6
- get<T extends Record<string, unknown>>(sql: string, params?: readonly unknown[]): T | null;
7
- all<T extends Record<string, unknown>>(sql: string, params?: readonly unknown[]): readonly T[];
8
- close(): void;
9
- }
10
- export declare function openSqliteConnection(options: WaSqliteStorageOptions): Promise<WaSqliteConnection>;
@@ -1,12 +0,0 @@
1
- import type { WaContactStore as Contract, WaStoredContactRecord } from '../../contracts/contact.store';
2
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
3
- import type { WaSqliteStorageOptions } from '../../types';
4
- export declare class WaContactSqliteStore extends BaseSqliteStore implements Contract {
5
- constructor(options: WaSqliteStorageOptions);
6
- upsert(record: WaStoredContactRecord): Promise<void>;
7
- upsertBatch(records: readonly WaStoredContactRecord[]): Promise<void>;
8
- getByJid(jid: string): Promise<WaStoredContactRecord | null>;
9
- deleteByJid(jid: string): Promise<number>;
10
- clear(): Promise<void>;
11
- private upsertContactRow;
12
- }
@@ -1,15 +0,0 @@
1
- import type { WaDeviceListSnapshot, WaDeviceListStore } from '../../contracts/device-list.store';
2
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
3
- import type { WaSqliteStorageOptions } from '../../types';
4
- export declare class WaDeviceListSqliteStore extends BaseSqliteStore implements WaDeviceListStore {
5
- private readonly ttlMs;
6
- private readonly batchSize;
7
- constructor(options: WaSqliteStorageOptions, ttlMs?: number, batchSize?: number);
8
- upsertUserDevicesBatch(snapshots: readonly WaDeviceListSnapshot[]): Promise<void>;
9
- getUserDevicesBatch(userJids: readonly string[], nowMs?: number): Promise<readonly (WaDeviceListSnapshot | null)[]>;
10
- deleteUserDevices(userJid: string): Promise<number>;
11
- cleanupExpired(nowMs: number): Promise<number>;
12
- clear(): Promise<void>;
13
- private upsertUserDevicesRow;
14
- private deleteUserDevicesByJids;
15
- }
@@ -1,13 +0,0 @@
1
- import type { WaMessageStore as Contract, WaStoredMessageRecord } from '../../contracts/message.store';
2
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
3
- import type { WaSqliteStorageOptions } from '../../types';
4
- export declare class WaMessageSqliteStore extends BaseSqliteStore implements Contract {
5
- constructor(options: WaSqliteStorageOptions);
6
- upsert(record: WaStoredMessageRecord): Promise<void>;
7
- upsertBatch(records: readonly WaStoredMessageRecord[]): Promise<void>;
8
- getById(id: string): Promise<WaStoredMessageRecord | null>;
9
- listByThread(threadJid: string, limit?: number, beforeTimestampMs?: number): Promise<readonly WaStoredMessageRecord[]>;
10
- deleteById(id: string): Promise<number>;
11
- clear(): Promise<void>;
12
- private upsertMessageRow;
13
- }
@@ -1,3 +0,0 @@
1
- import type { WaSqliteConnection } from '../../providers/sqlite/connection';
2
- export type WaSqliteMigrationDomain = 'auth' | 'signal' | 'senderKey' | 'appState' | 'retry' | 'participants' | 'deviceList' | 'mailbox';
3
- export declare function ensureSqliteMigrations(db: WaSqliteConnection, domains: readonly WaSqliteMigrationDomain[]): Promise<void>;
@@ -1,12 +0,0 @@
1
- import type { WaParticipantsSnapshot, WaParticipantsStore } from '../../contracts/participants.store';
2
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
3
- import type { WaSqliteStorageOptions } from '../../types';
4
- export declare class WaParticipantsSqliteStore extends BaseSqliteStore implements WaParticipantsStore {
5
- private readonly ttlMs;
6
- constructor(options: WaSqliteStorageOptions, ttlMs?: number);
7
- upsertGroupParticipants(snapshot: WaParticipantsSnapshot): Promise<void>;
8
- getGroupParticipants(groupJid: string, nowMs?: number): Promise<WaParticipantsSnapshot | null>;
9
- deleteGroupParticipants(groupJid: string): Promise<number>;
10
- cleanupExpired(nowMs: number): Promise<number>;
11
- clear(): Promise<void>;
12
- }
@@ -1,15 +0,0 @@
1
- import type { WaRetryOutboundMessageRecord, WaRetryOutboundState } from '../../../retry/types';
2
- import type { WaRetryStore } from '../../contracts/retry.store';
3
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
4
- import type { WaSqliteStorageOptions } from '../../types';
5
- export declare class WaRetrySqliteStore extends BaseSqliteStore implements WaRetryStore {
6
- private readonly ttlMs;
7
- constructor(options: WaSqliteStorageOptions, ttlMs?: number);
8
- getTtlMs(): number;
9
- upsertOutboundMessage(record: WaRetryOutboundMessageRecord): Promise<void>;
10
- getOutboundMessage(messageId: string): Promise<WaRetryOutboundMessageRecord | null>;
11
- updateOutboundMessageState(messageId: string, state: WaRetryOutboundState, updatedAtMs: number, expiresAtMs: number): Promise<void>;
12
- incrementInboundCounter(messageId: string, requesterJid: string, updatedAtMs: number, expiresAtMs: number): Promise<number>;
13
- cleanupExpired(nowMs: number): Promise<number>;
14
- clear(): Promise<void>;
15
- }
@@ -1,24 +0,0 @@
1
- import type { SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress } from '../../../signal/types';
2
- import type { WaSenderKeyStore as WaSenderKeyStoreContract } from '../../contracts/sender-key.store';
3
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
4
- import type { WaSqliteStorageOptions } from '../../types';
5
- export declare class SenderKeySqliteStore extends BaseSqliteStore implements WaSenderKeyStoreContract {
6
- private readonly distributionBatchSize;
7
- constructor(options: WaSqliteStorageOptions, distributionBatchSize?: number);
8
- upsertSenderKey(record: SenderKeyRecord): Promise<void>;
9
- upsertSenderKeyDistribution(record: SenderKeyDistributionRecord): Promise<void>;
10
- upsertSenderKeyDistributions(records: readonly SenderKeyDistributionRecord[]): Promise<void>;
11
- getGroupSenderKeyList(groupId: string): Promise<{
12
- readonly skList: readonly SenderKeyRecord[];
13
- readonly skDistribList: readonly SenderKeyDistributionRecord[];
14
- }>;
15
- getDeviceSenderKey(groupId: string, sender: SignalAddress): Promise<SenderKeyRecord | null>;
16
- getDeviceSenderKeyDistributions(groupId: string, senders: readonly SignalAddress[]): Promise<readonly (SenderKeyDistributionRecord | null)[]>;
17
- deleteDeviceSenderKey(target: SignalAddress, groupId?: string): Promise<number>;
18
- markForgetSenderKey(groupId: string, participants: readonly SignalAddress[]): Promise<number>;
19
- clear(): Promise<void>;
20
- private countDelete;
21
- private upsertSenderKeyDistributionRow;
22
- private distributionRowKey;
23
- private distributionTargetKey;
24
- }
@@ -1,53 +0,0 @@
1
- import type { PreKeyRecord, RegistrationInfo, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '../../../signal/types';
2
- import type { WaSignalStore as WaSignalStoreContract } from '../../contracts/signal.store';
3
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
4
- import type { WaSqliteStorageOptions } from '../../types';
5
- interface WaSignalSqliteStoreOptions {
6
- readonly preKeyBatchSize?: number;
7
- readonly hasSessionBatchSize?: number;
8
- }
9
- export declare class WaSignalSqliteStore extends BaseSqliteStore implements WaSignalStoreContract {
10
- private readonly preKeyBatchSize;
11
- private readonly hasSessionBatchSize;
12
- constructor(options: WaSqliteStorageOptions, storeOptions?: WaSignalSqliteStoreOptions);
13
- getRegistrationInfo(): Promise<RegistrationInfo | null>;
14
- setRegistrationInfo(info: RegistrationInfo): Promise<void>;
15
- getSignedPreKey(): Promise<SignedPreKeyRecord | null>;
16
- setSignedPreKey(record: SignedPreKeyRecord): Promise<void>;
17
- getSignedPreKeyById(keyId: number): Promise<SignedPreKeyRecord | null>;
18
- setSignedPreKeyRotationTs(value: number | null): Promise<void>;
19
- getSignedPreKeyRotationTs(): Promise<number | null>;
20
- putPreKey(record: PreKeyRecord): Promise<void>;
21
- getOrGenPreKeys(count: number, generator: (keyId: number) => PreKeyRecord | Promise<PreKeyRecord>): Promise<readonly PreKeyRecord[]>;
22
- getPreKeyById(keyId: number): Promise<PreKeyRecord | null>;
23
- getPreKeysById(keyIds: readonly number[]): Promise<readonly (PreKeyRecord | null)[]>;
24
- consumePreKeyById(keyId: number): Promise<PreKeyRecord | null>;
25
- getOrGenSinglePreKey(generator: (keyId: number) => PreKeyRecord | Promise<PreKeyRecord>): Promise<PreKeyRecord>;
26
- markKeyAsUploaded(keyId: number): Promise<void>;
27
- setServerHasPreKeys(value: boolean): Promise<void>;
28
- getServerHasPreKeys(): Promise<boolean>;
29
- hasSession(address: SignalAddress): Promise<boolean>;
30
- hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
31
- getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
32
- getSessionsBatch(addresses: readonly SignalAddress[]): Promise<readonly (SignalSessionRecord | null)[]>;
33
- setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
34
- setSessionsBatch(entries: readonly {
35
- readonly address: SignalAddress;
36
- readonly session: SignalSessionRecord;
37
- }[]): Promise<void>;
38
- deleteSession(address: SignalAddress): Promise<void>;
39
- getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
40
- getRemoteIdentities(addresses: readonly SignalAddress[]): Promise<readonly (Uint8Array | null)[]>;
41
- setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
42
- setRemoteIdentities(entries: readonly {
43
- readonly address: SignalAddress;
44
- readonly identityKey: Uint8Array;
45
- }[]): Promise<void>;
46
- clear(): Promise<void>;
47
- private upsertPreKey;
48
- private upsertSession;
49
- private ensureMetaRow;
50
- private getMeta;
51
- private upsertRemoteIdentity;
52
- }
53
- export {};
@@ -1,5 +0,0 @@
1
- import type { WaSqliteTableName, WaSqliteTableNameOverrides } from '../../types';
2
- export declare const WA_SQLITE_DEFAULT_TABLE_NAMES: Readonly<Record<WaSqliteTableName, string>>;
3
- export declare function resolveSqliteTableNames(overrides?: WaSqliteTableNameOverrides): Readonly<Record<WaSqliteTableName, string>>;
4
- export declare function serializeSqliteTableNames(tableNames: Readonly<Record<WaSqliteTableName, string>>): string;
5
- export declare function createSqliteTableNameSqlResolver(tableNames: Readonly<Record<WaSqliteTableName, string>>): (sql: string) => string;
@@ -1,13 +0,0 @@
1
- import type { WaStoredThreadRecord, WaThreadStore as Contract } from '../../contracts/thread.store';
2
- import { BaseSqliteStore } from '../../providers/sqlite/BaseSqliteStore';
3
- import type { WaSqliteStorageOptions } from '../../types';
4
- export declare class WaThreadSqliteStore extends BaseSqliteStore implements Contract {
5
- constructor(options: WaSqliteStorageOptions);
6
- upsert(record: WaStoredThreadRecord): Promise<void>;
7
- upsertBatch(records: readonly WaStoredThreadRecord[]): Promise<void>;
8
- getByJid(jid: string): Promise<WaStoredThreadRecord | null>;
9
- list(limit?: number): Promise<readonly WaStoredThreadRecord[]>;
10
- deleteByJid(jid: string): Promise<number>;
11
- clear(): Promise<void>;
12
- private upsertThreadRow;
13
- }
@@ -1,8 +0,0 @@
1
- export { buildAccountBlocklistSyncIq, buildAccountDevicesSyncIq, buildAccountPictureSyncIq, buildAccountPrivacySyncIq, buildClearDirtyBitsIq, buildGroupsDirtySyncIq, buildNewsletterMetadataSyncIq } from '../../node/builders/account-sync';
2
- export { buildCompanionFinishRequestNode, buildCompanionHelloRequestNode, buildGetCountryCodeRequestNode, buildIqResultNode, buildNotificationAckNode } from '../../node/builders/pairing';
3
- export { buildMediaConnIq } from '../../node/builders/media';
4
- export { buildDirectMessageFanoutNode, buildGroupDirectMessageNode, buildGroupRetryMessageNode, buildGroupSenderKeyMessageNode, buildInboundDeliveryReceiptNode, buildInboundMessageAckNode, buildInboundReceiptAckNode, buildInboundRetryReceiptNode, buildInboundRetryReceiptAckNode } from '../../node/builders/message';
5
- export { buildRetryReceiptNode } from '../../node/builders/retry';
6
- export { buildMissingPreKeysFetchIq, buildPreKeyUploadIq, buildSignedPreKeyRotateIq } from '../../node/builders/prekeys';
7
- export { buildCreateGroupIq, buildGroupParticipantChangeIq, buildLeaveGroupIq } from '../../node/builders/group';
8
- export { buildUsyncIq, buildUsyncUserNode, type BuildUsyncIqInput, type BuildUsyncUserNodeInput, type WaUsyncContext, type WaUsyncMode } from '../../node/builders/usync';