zapo-js 0.1.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 (585) hide show
  1. package/README.md +235 -0
  2. package/dist/appstate/WaAppStateCrypto.js +202 -0
  3. package/dist/appstate/WaAppStateSyncClient.js +808 -0
  4. package/dist/appstate/WaAppStateSyncResponseParser.js +71 -0
  5. package/dist/appstate/constants.js +23 -0
  6. package/dist/appstate/index.js +28 -0
  7. package/dist/appstate/store/sqlite.js +55 -0
  8. package/dist/appstate/types.js +2 -0
  9. package/dist/appstate/utils.js +84 -0
  10. package/dist/auth/WaAuthClient.js +266 -0
  11. package/dist/auth/flow/WaAuthCredentialsFlow.js +123 -0
  12. package/dist/auth/index.js +27 -0
  13. package/dist/auth/pairing/WaPairingCodeCrypto.js +75 -0
  14. package/dist/auth/pairing/WaPairingFlow.js +328 -0
  15. package/dist/auth/pairing/WaQrFlow.js +86 -0
  16. package/dist/auth/pairing/constants.js +5 -0
  17. package/dist/auth/types.js +2 -0
  18. package/dist/client/WaClient.js +749 -0
  19. package/dist/client/WaClientFactory.js +381 -0
  20. package/dist/client/coordinators/WaGroupCoordinator.js +191 -0
  21. package/dist/client/coordinators/WaIncomingNodeCoordinator.js +315 -0
  22. package/dist/client/coordinators/WaMessageDispatchCoordinator.js +1061 -0
  23. package/dist/client/coordinators/WaPassiveTasksCoordinator.js +200 -0
  24. package/dist/client/coordinators/WaRetryCoordinator.js +494 -0
  25. package/dist/client/coordinators/WaStreamControlCoordinator.js +123 -0
  26. package/dist/client/dirty.js +254 -0
  27. package/dist/client/events/chat.js +226 -0
  28. package/dist/client/events/group.js +410 -0
  29. package/dist/client/history-sync.js +122 -0
  30. package/dist/client/incoming.js +236 -0
  31. package/dist/client/index.js +5 -0
  32. package/dist/client/mailbox.js +49 -0
  33. package/dist/client/messages.js +152 -0
  34. package/dist/client/types.js +2 -0
  35. package/dist/crypto/core/constants.js +4 -0
  36. package/dist/crypto/core/encoding.js +29 -0
  37. package/dist/crypto/core/hkdf.js +26 -0
  38. package/dist/crypto/core/index.js +43 -0
  39. package/dist/crypto/core/keys.js +73 -0
  40. package/dist/crypto/core/nonce.js +18 -0
  41. package/dist/crypto/core/primitives.js +121 -0
  42. package/dist/crypto/core/random.js +32 -0
  43. package/dist/crypto/curves/Ed25519.js +42 -0
  44. package/dist/crypto/curves/X25519.js +64 -0
  45. package/dist/crypto/curves/constants.js +6 -0
  46. package/dist/crypto/curves/types.js +9 -0
  47. package/dist/crypto/index.js +22 -0
  48. package/dist/crypto/math/constants.js +44 -0
  49. package/dist/crypto/math/edwards.js +64 -0
  50. package/dist/crypto/math/le.js +20 -0
  51. package/dist/crypto/math/mod.js +38 -0
  52. package/dist/crypto/math/types.js +2 -0
  53. package/dist/esm/appstate/WaAppStateCrypto.js +198 -0
  54. package/dist/esm/appstate/WaAppStateSyncClient.js +803 -0
  55. package/dist/esm/appstate/WaAppStateSyncResponseParser.js +67 -0
  56. package/dist/esm/appstate/constants.js +20 -0
  57. package/dist/esm/appstate/index.js +6 -0
  58. package/dist/esm/appstate/store/sqlite.js +49 -0
  59. package/dist/esm/appstate/types.js +1 -0
  60. package/dist/esm/appstate/utils.js +75 -0
  61. package/dist/esm/auth/WaAuthClient.js +262 -0
  62. package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +118 -0
  63. package/dist/esm/auth/index.js +5 -0
  64. package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +71 -0
  65. package/dist/esm/auth/pairing/WaPairingFlow.js +324 -0
  66. package/dist/esm/auth/pairing/WaQrFlow.js +82 -0
  67. package/dist/esm/auth/pairing/constants.js +2 -0
  68. package/dist/esm/auth/types.js +1 -0
  69. package/dist/esm/client/WaClient.js +745 -0
  70. package/dist/esm/client/WaClientFactory.js +377 -0
  71. package/dist/esm/client/coordinators/WaGroupCoordinator.js +188 -0
  72. package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +311 -0
  73. package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +1057 -0
  74. package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +196 -0
  75. package/dist/esm/client/coordinators/WaRetryCoordinator.js +490 -0
  76. package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +120 -0
  77. package/dist/esm/client/dirty.js +250 -0
  78. package/dist/esm/client/events/chat.js +223 -0
  79. package/dist/esm/client/events/group.js +407 -0
  80. package/dist/esm/client/history-sync.js +119 -0
  81. package/dist/esm/client/incoming.js +227 -0
  82. package/dist/esm/client/index.js +1 -0
  83. package/dist/esm/client/mailbox.js +46 -0
  84. package/dist/esm/client/messages.js +148 -0
  85. package/dist/esm/client/types.js +1 -0
  86. package/dist/esm/crypto/core/constants.js +1 -0
  87. package/dist/esm/crypto/core/encoding.js +25 -0
  88. package/dist/esm/crypto/core/hkdf.js +22 -0
  89. package/dist/esm/crypto/core/index.js +11 -0
  90. package/dist/esm/crypto/core/keys.js +66 -0
  91. package/dist/esm/crypto/core/nonce.js +15 -0
  92. package/dist/esm/crypto/core/primitives.js +102 -0
  93. package/dist/esm/crypto/core/random.js +28 -0
  94. package/dist/esm/crypto/curves/Ed25519.js +38 -0
  95. package/dist/esm/crypto/curves/X25519.js +58 -0
  96. package/dist/esm/crypto/curves/constants.js +3 -0
  97. package/dist/esm/crypto/curves/types.js +6 -0
  98. package/dist/esm/crypto/index.js +3 -0
  99. package/dist/esm/crypto/math/constants.js +41 -0
  100. package/dist/esm/crypto/math/edwards.js +60 -0
  101. package/dist/esm/crypto/math/le.js +16 -0
  102. package/dist/esm/crypto/math/mod.js +31 -0
  103. package/dist/esm/crypto/math/types.js +1 -0
  104. package/dist/esm/index.js +6 -0
  105. package/dist/esm/infra/log/ConsoleLogger.js +40 -0
  106. package/dist/esm/infra/log/PinoLogger.js +73 -0
  107. package/dist/esm/infra/log/types.js +1 -0
  108. package/dist/esm/infra/perf/BoundedTaskQueue.js +62 -0
  109. package/dist/esm/media/WaMediaCrypto.js +224 -0
  110. package/dist/esm/media/WaMediaTransferClient.js +361 -0
  111. package/dist/esm/media/conn.js +33 -0
  112. package/dist/esm/media/constants.js +18 -0
  113. package/dist/esm/media/index.js +3 -0
  114. package/dist/esm/media/types.js +1 -0
  115. package/dist/esm/message/WaMessageClient.js +210 -0
  116. package/dist/esm/message/ack.js +46 -0
  117. package/dist/esm/message/content.js +20 -0
  118. package/dist/esm/message/device-sent.js +49 -0
  119. package/dist/esm/message/incoming.js +318 -0
  120. package/dist/esm/message/index.js +2 -0
  121. package/dist/esm/message/padding.js +20 -0
  122. package/dist/esm/message/phash.js +25 -0
  123. package/dist/esm/message/types.js +1 -0
  124. package/dist/esm/package.json +3 -0
  125. package/dist/esm/proto.js +3 -0
  126. package/dist/esm/protocol/appstate.js +34 -0
  127. package/dist/esm/protocol/auth.js +12 -0
  128. package/dist/esm/protocol/browser.js +41 -0
  129. package/dist/esm/protocol/constants.js +11 -0
  130. package/dist/esm/protocol/defaults.js +27 -0
  131. package/dist/esm/protocol/dirty.js +26 -0
  132. package/dist/esm/protocol/group.js +5 -0
  133. package/dist/esm/protocol/index.js +11 -0
  134. package/dist/esm/protocol/jid.js +94 -0
  135. package/dist/esm/protocol/media.js +20 -0
  136. package/dist/esm/protocol/message.js +16 -0
  137. package/dist/esm/protocol/nodes.js +83 -0
  138. package/dist/esm/protocol/notification.js +50 -0
  139. package/dist/esm/protocol/stream.js +60 -0
  140. package/dist/esm/retry/constants.js +20 -0
  141. package/dist/esm/retry/index.js +5 -0
  142. package/dist/esm/retry/outbound.js +83 -0
  143. package/dist/esm/retry/parse.js +130 -0
  144. package/dist/esm/retry/reason.js +50 -0
  145. package/dist/esm/retry/replay.js +177 -0
  146. package/dist/esm/retry/types.js +1 -0
  147. package/dist/esm/signal/api/SignalDeviceSyncApi.js +185 -0
  148. package/dist/esm/signal/api/SignalDigestSyncApi.js +179 -0
  149. package/dist/esm/signal/api/SignalIdentitySyncApi.js +111 -0
  150. package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +141 -0
  151. package/dist/esm/signal/api/SignalRotateKeyApi.js +59 -0
  152. package/dist/esm/signal/api/SignalSessionSyncApi.js +187 -0
  153. package/dist/esm/signal/api/codec.js +23 -0
  154. package/dist/esm/signal/api/constants.js +9 -0
  155. package/dist/esm/signal/api/prekeys.js +9 -0
  156. package/dist/esm/signal/constants.js +16 -0
  157. package/dist/esm/signal/crypto/WaAdvSignature.js +60 -0
  158. package/dist/esm/signal/crypto/constants.js +8 -0
  159. package/dist/esm/signal/group/SenderKeyChain.js +97 -0
  160. package/dist/esm/signal/group/SenderKeyCodec.js +46 -0
  161. package/dist/esm/signal/group/SenderKeyManager.js +176 -0
  162. package/dist/esm/signal/index.js +11 -0
  163. package/dist/esm/signal/registration/keygen.js +31 -0
  164. package/dist/esm/signal/registration/utils.js +16 -0
  165. package/dist/esm/signal/session/SignalProtocol.js +122 -0
  166. package/dist/esm/signal/session/SignalRatchet.js +260 -0
  167. package/dist/esm/signal/session/SignalSerializer.js +63 -0
  168. package/dist/esm/signal/session/SignalSession.js +153 -0
  169. package/dist/esm/signal/store/sqlite.js +310 -0
  170. package/dist/esm/signal/types.js +1 -0
  171. package/dist/esm/store/contracts/appstate.store.js +1 -0
  172. package/dist/esm/store/contracts/auth.store.js +1 -0
  173. package/dist/esm/store/contracts/contact.store.js +1 -0
  174. package/dist/esm/store/contracts/device-list.store.js +1 -0
  175. package/dist/esm/store/contracts/message.store.js +1 -0
  176. package/dist/esm/store/contracts/participants.store.js +1 -0
  177. package/dist/esm/store/contracts/retry.store.js +1 -0
  178. package/dist/esm/store/contracts/sender-key.store.js +1 -0
  179. package/dist/esm/store/contracts/signal.store.js +1 -0
  180. package/dist/esm/store/contracts/thread.store.js +1 -0
  181. package/dist/esm/store/createStore.js +278 -0
  182. package/dist/esm/store/index.js +20 -0
  183. package/dist/esm/store/noop.store.js +43 -0
  184. package/dist/esm/store/providers/memory/appstate.store.js +101 -0
  185. package/dist/esm/store/providers/memory/contact.store.js +23 -0
  186. package/dist/esm/store/providers/memory/device-list.store.js +86 -0
  187. package/dist/esm/store/providers/memory/message.store.js +40 -0
  188. package/dist/esm/store/providers/memory/participants.store.js +61 -0
  189. package/dist/esm/store/providers/memory/retry.store.js +71 -0
  190. package/dist/esm/store/providers/memory/sender-key.store.js +88 -0
  191. package/dist/esm/store/providers/memory/signal.store.js +170 -0
  192. package/dist/esm/store/providers/memory/thread.store.js +34 -0
  193. package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +37 -0
  194. package/dist/esm/store/providers/sqlite/appstate.store.js +169 -0
  195. package/dist/esm/store/providers/sqlite/auth.store.js +176 -0
  196. package/dist/esm/store/providers/sqlite/connection.js +240 -0
  197. package/dist/esm/store/providers/sqlite/contact.store.js +61 -0
  198. package/dist/esm/store/providers/sqlite/device-list.store.js +155 -0
  199. package/dist/esm/store/providers/sqlite/message.store.js +119 -0
  200. package/dist/esm/store/providers/sqlite/migrations.js +347 -0
  201. package/dist/esm/store/providers/sqlite/participants.store.js +85 -0
  202. package/dist/esm/store/providers/sqlite/retry.store.js +144 -0
  203. package/dist/esm/store/providers/sqlite/sender-key.store.js +203 -0
  204. package/dist/esm/store/providers/sqlite/signal.store.js +353 -0
  205. package/dist/esm/store/providers/sqlite/thread.store.js +72 -0
  206. package/dist/esm/store/types.js +1 -0
  207. package/dist/esm/transport/WaComms.js +527 -0
  208. package/dist/esm/transport/WaWebSocket.js +361 -0
  209. package/dist/esm/transport/binary/constants.js +96 -0
  210. package/dist/esm/transport/binary/decoder.js +275 -0
  211. package/dist/esm/transport/binary/encoder.js +210 -0
  212. package/dist/esm/transport/binary/index.js +4 -0
  213. package/dist/esm/transport/binary/tokens.js +1280 -0
  214. package/dist/esm/transport/index.js +6 -0
  215. package/dist/esm/transport/keepalive/WaKeepAlive.js +141 -0
  216. package/dist/esm/transport/node/WaNodeOrchestrator.js +143 -0
  217. package/dist/esm/transport/node/WaNodeTransport.js +64 -0
  218. package/dist/esm/transport/node/builders/accountSync.js +101 -0
  219. package/dist/esm/transport/node/builders/group.js +47 -0
  220. package/dist/esm/transport/node/builders/index.js +7 -0
  221. package/dist/esm/transport/node/builders/media.js +10 -0
  222. package/dist/esm/transport/node/builders/message.js +317 -0
  223. package/dist/esm/transport/node/builders/pairing.js +130 -0
  224. package/dist/esm/transport/node/builders/prekeys.js +102 -0
  225. package/dist/esm/transport/node/builders/retry.js +116 -0
  226. package/dist/esm/transport/node/helpers.js +37 -0
  227. package/dist/esm/transport/node/query.js +53 -0
  228. package/dist/esm/transport/node/xml.js +39 -0
  229. package/dist/esm/transport/noise/WaClientPayload.js +162 -0
  230. package/dist/esm/transport/noise/WaFrameCodec.js +121 -0
  231. package/dist/esm/transport/noise/WaNoiseCert.js +74 -0
  232. package/dist/esm/transport/noise/WaNoiseHandshake.js +57 -0
  233. package/dist/esm/transport/noise/WaNoiseSession.js +322 -0
  234. package/dist/esm/transport/noise/WaNoiseSocket.js +17 -0
  235. package/dist/esm/transport/noise/constants.js +8 -0
  236. package/dist/esm/transport/noise/types.js +1 -0
  237. package/dist/esm/transport/stream/parse.js +91 -0
  238. package/dist/esm/transport/types.js +1 -0
  239. package/dist/esm/util/async.js +5 -0
  240. package/dist/esm/util/base64.js +18 -0
  241. package/dist/esm/util/bytes.js +275 -0
  242. package/dist/esm/util/coercion.js +56 -0
  243. package/dist/esm/util/collections.js +27 -0
  244. package/dist/esm/util/primitives.js +32 -0
  245. package/dist/esm/util/runtime.js +15 -0
  246. package/dist/esm/util/signal-address.js +5 -0
  247. package/dist/index.js +52 -0
  248. package/dist/infra/log/ConsoleLogger.js +44 -0
  249. package/dist/infra/log/PinoLogger.js +111 -0
  250. package/dist/infra/log/types.js +2 -0
  251. package/dist/infra/perf/BoundedTaskQueue.js +67 -0
  252. package/dist/media/WaMediaCrypto.js +228 -0
  253. package/dist/media/WaMediaTransferClient.js +365 -0
  254. package/dist/media/conn.js +36 -0
  255. package/dist/media/constants.js +21 -0
  256. package/dist/media/index.js +9 -0
  257. package/dist/media/types.js +2 -0
  258. package/dist/message/WaMessageClient.js +214 -0
  259. package/dist/message/ack.js +52 -0
  260. package/dist/message/content.js +24 -0
  261. package/dist/message/device-sent.js +53 -0
  262. package/dist/message/incoming.js +321 -0
  263. package/dist/message/index.js +20 -0
  264. package/dist/message/padding.js +24 -0
  265. package/dist/message/phash.js +28 -0
  266. package/dist/message/types.js +2 -0
  267. package/dist/proto.js +5 -0
  268. package/dist/protocol/appstate.js +37 -0
  269. package/dist/protocol/auth.js +15 -0
  270. package/dist/protocol/browser.js +45 -0
  271. package/dist/protocol/constants.js +46 -0
  272. package/dist/protocol/defaults.js +30 -0
  273. package/dist/protocol/dirty.js +29 -0
  274. package/dist/protocol/group.js +8 -0
  275. package/dist/protocol/index.js +53 -0
  276. package/dist/protocol/jid.js +107 -0
  277. package/dist/protocol/media.js +24 -0
  278. package/dist/protocol/message.js +19 -0
  279. package/dist/protocol/nodes.js +86 -0
  280. package/dist/protocol/notification.js +53 -0
  281. package/dist/protocol/stream.js +63 -0
  282. package/dist/retry/constants.js +23 -0
  283. package/dist/retry/index.js +19 -0
  284. package/dist/retry/outbound.js +88 -0
  285. package/dist/retry/parse.js +133 -0
  286. package/dist/retry/reason.js +53 -0
  287. package/dist/retry/replay.js +181 -0
  288. package/dist/retry/types.js +2 -0
  289. package/dist/signal/api/SignalDeviceSyncApi.js +189 -0
  290. package/dist/signal/api/SignalDigestSyncApi.js +183 -0
  291. package/dist/signal/api/SignalIdentitySyncApi.js +115 -0
  292. package/dist/signal/api/SignalMissingPreKeysSyncApi.js +145 -0
  293. package/dist/signal/api/SignalRotateKeyApi.js +63 -0
  294. package/dist/signal/api/SignalSessionSyncApi.js +191 -0
  295. package/dist/signal/api/codec.js +27 -0
  296. package/dist/signal/api/constants.js +12 -0
  297. package/dist/signal/api/prekeys.js +16 -0
  298. package/dist/signal/constants.js +19 -0
  299. package/dist/signal/crypto/WaAdvSignature.js +72 -0
  300. package/dist/signal/crypto/constants.js +11 -0
  301. package/dist/signal/group/SenderKeyChain.js +101 -0
  302. package/dist/signal/group/SenderKeyCodec.js +50 -0
  303. package/dist/signal/group/SenderKeyManager.js +180 -0
  304. package/dist/signal/index.js +29 -0
  305. package/dist/signal/registration/keygen.js +37 -0
  306. package/dist/signal/registration/utils.js +19 -0
  307. package/dist/signal/session/SignalProtocol.js +126 -0
  308. package/dist/signal/session/SignalRatchet.js +268 -0
  309. package/dist/signal/session/SignalSerializer.js +69 -0
  310. package/dist/signal/session/SignalSession.js +165 -0
  311. package/dist/signal/store/sqlite.js +324 -0
  312. package/dist/signal/types.js +2 -0
  313. package/dist/store/contracts/appstate.store.js +2 -0
  314. package/dist/store/contracts/auth.store.js +2 -0
  315. package/dist/store/contracts/contact.store.js +2 -0
  316. package/dist/store/contracts/device-list.store.js +2 -0
  317. package/dist/store/contracts/message.store.js +2 -0
  318. package/dist/store/contracts/participants.store.js +2 -0
  319. package/dist/store/contracts/retry.store.js +2 -0
  320. package/dist/store/contracts/sender-key.store.js +2 -0
  321. package/dist/store/contracts/signal.store.js +2 -0
  322. package/dist/store/contracts/thread.store.js +2 -0
  323. package/dist/store/createStore.js +281 -0
  324. package/dist/store/index.js +43 -0
  325. package/dist/store/noop.store.js +46 -0
  326. package/dist/store/providers/memory/appstate.store.js +105 -0
  327. package/dist/store/providers/memory/contact.store.js +27 -0
  328. package/dist/store/providers/memory/device-list.store.js +90 -0
  329. package/dist/store/providers/memory/message.store.js +44 -0
  330. package/dist/store/providers/memory/participants.store.js +65 -0
  331. package/dist/store/providers/memory/retry.store.js +75 -0
  332. package/dist/store/providers/memory/sender-key.store.js +92 -0
  333. package/dist/store/providers/memory/signal.store.js +174 -0
  334. package/dist/store/providers/memory/thread.store.js +38 -0
  335. package/dist/store/providers/sqlite/BaseSqliteStore.js +41 -0
  336. package/dist/store/providers/sqlite/appstate.store.js +173 -0
  337. package/dist/store/providers/sqlite/auth.store.js +180 -0
  338. package/dist/store/providers/sqlite/connection.js +276 -0
  339. package/dist/store/providers/sqlite/contact.store.js +65 -0
  340. package/dist/store/providers/sqlite/device-list.store.js +159 -0
  341. package/dist/store/providers/sqlite/message.store.js +123 -0
  342. package/dist/store/providers/sqlite/migrations.js +350 -0
  343. package/dist/store/providers/sqlite/participants.store.js +89 -0
  344. package/dist/store/providers/sqlite/retry.store.js +148 -0
  345. package/dist/store/providers/sqlite/sender-key.store.js +207 -0
  346. package/dist/store/providers/sqlite/signal.store.js +357 -0
  347. package/dist/store/providers/sqlite/thread.store.js +76 -0
  348. package/dist/store/types.js +2 -0
  349. package/dist/transport/WaComms.js +531 -0
  350. package/dist/transport/WaWebSocket.js +365 -0
  351. package/dist/transport/binary/constants.js +99 -0
  352. package/dist/transport/binary/decoder.js +279 -0
  353. package/dist/transport/binary/encoder.js +214 -0
  354. package/dist/transport/binary/index.js +23 -0
  355. package/dist/transport/binary/tokens.js +1283 -0
  356. package/dist/transport/index.js +18 -0
  357. package/dist/transport/keepalive/WaKeepAlive.js +145 -0
  358. package/dist/transport/node/WaNodeOrchestrator.js +147 -0
  359. package/dist/transport/node/WaNodeTransport.js +68 -0
  360. package/dist/transport/node/builders/accountSync.js +110 -0
  361. package/dist/transport/node/builders/group.js +52 -0
  362. package/dist/transport/node/builders/index.js +39 -0
  363. package/dist/transport/node/builders/media.js +13 -0
  364. package/dist/transport/node/builders/message.js +328 -0
  365. package/dist/transport/node/builders/pairing.js +137 -0
  366. package/dist/transport/node/builders/prekeys.js +107 -0
  367. package/dist/transport/node/builders/retry.js +119 -0
  368. package/dist/transport/node/helpers.js +46 -0
  369. package/dist/transport/node/query.js +59 -0
  370. package/dist/transport/node/xml.js +42 -0
  371. package/dist/transport/noise/WaClientPayload.js +166 -0
  372. package/dist/transport/noise/WaFrameCodec.js +125 -0
  373. package/dist/transport/noise/WaNoiseCert.js +77 -0
  374. package/dist/transport/noise/WaNoiseHandshake.js +61 -0
  375. package/dist/transport/noise/WaNoiseSession.js +326 -0
  376. package/dist/transport/noise/WaNoiseSocket.js +21 -0
  377. package/dist/transport/noise/constants.js +11 -0
  378. package/dist/transport/noise/types.js +2 -0
  379. package/dist/transport/stream/parse.js +97 -0
  380. package/dist/transport/types.js +2 -0
  381. package/dist/types/appstate/WaAppStateCrypto.d.ts +59 -0
  382. package/dist/types/appstate/WaAppStateSyncClient.d.ts +63 -0
  383. package/dist/types/appstate/WaAppStateSyncResponseParser.d.ts +12 -0
  384. package/dist/types/appstate/constants.d.ts +14 -0
  385. package/dist/types/appstate/index.d.ts +7 -0
  386. package/dist/types/appstate/store/sqlite.d.ts +21 -0
  387. package/dist/types/appstate/types.d.ts +66 -0
  388. package/dist/types/appstate/utils.d.ts +10 -0
  389. package/dist/types/auth/WaAuthClient.d.ts +61 -0
  390. package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +14 -0
  391. package/dist/types/auth/index.d.ts +6 -0
  392. package/dist/types/auth/pairing/WaPairingCodeCrypto.d.ts +17 -0
  393. package/dist/types/auth/pairing/WaPairingFlow.d.ts +48 -0
  394. package/dist/types/auth/pairing/WaQrFlow.d.ts +23 -0
  395. package/dist/types/auth/pairing/constants.d.ts +2 -0
  396. package/dist/types/auth/types.d.ts +48 -0
  397. package/dist/types/client/WaClient.d.ts +97 -0
  398. package/dist/types/client/WaClientFactory.d.ts +83 -0
  399. package/dist/types/client/coordinators/WaGroupCoordinator.d.ts +48 -0
  400. package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +60 -0
  401. package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +90 -0
  402. package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +43 -0
  403. package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +61 -0
  404. package/dist/types/client/coordinators/WaStreamControlCoordinator.d.ts +17 -0
  405. package/dist/types/client/dirty.d.ts +17 -0
  406. package/dist/types/client/events/chat.d.ts +3 -0
  407. package/dist/types/client/events/group.d.ts +7 -0
  408. package/dist/types/client/history-sync.d.ts +17 -0
  409. package/dist/types/client/incoming.d.ts +35 -0
  410. package/dist/types/client/index.d.ts +2 -0
  411. package/dist/types/client/mailbox.d.ts +12 -0
  412. package/dist/types/client/messages.d.ts +17 -0
  413. package/dist/types/client/types.d.ts +235 -0
  414. package/dist/types/crypto/core/constants.d.ts +1 -0
  415. package/dist/types/crypto/core/encoding.d.ts +11 -0
  416. package/dist/types/crypto/core/hkdf.d.ts +8 -0
  417. package/dist/types/crypto/core/index.d.ts +11 -0
  418. package/dist/types/crypto/core/keys.d.ts +20 -0
  419. package/dist/types/crypto/core/nonce.d.ts +5 -0
  420. package/dist/types/crypto/core/primitives.d.ts +25 -0
  421. package/dist/types/crypto/core/random.d.ts +8 -0
  422. package/dist/types/crypto/curves/Ed25519.d.ts +7 -0
  423. package/dist/types/crypto/curves/X25519.d.ts +8 -0
  424. package/dist/types/crypto/curves/constants.d.ts +2 -0
  425. package/dist/types/crypto/curves/types.d.ts +10 -0
  426. package/dist/types/crypto/index.d.ts +3 -0
  427. package/dist/types/crypto/math/constants.d.ts +7 -0
  428. package/dist/types/crypto/math/edwards.d.ts +3 -0
  429. package/dist/types/crypto/math/le.d.ts +2 -0
  430. package/dist/types/crypto/math/mod.d.ts +5 -0
  431. package/dist/types/crypto/math/types.d.ts +6 -0
  432. package/dist/types/index.d.ts +10 -0
  433. package/dist/types/infra/log/ConsoleLogger.d.ts +11 -0
  434. package/dist/types/infra/log/PinoLogger.d.ts +30 -0
  435. package/dist/types/infra/log/types.d.ts +9 -0
  436. package/dist/types/infra/perf/BoundedTaskQueue.d.ts +19 -0
  437. package/dist/types/media/WaMediaCrypto.d.ts +12 -0
  438. package/dist/types/media/WaMediaTransferClient.d.ts +81 -0
  439. package/dist/types/media/conn.d.ts +3 -0
  440. package/dist/types/media/constants.d.ts +10 -0
  441. package/dist/types/media/index.d.ts +4 -0
  442. package/dist/types/media/types.d.ts +56 -0
  443. package/dist/types/message/WaMessageClient.d.ts +29 -0
  444. package/dist/types/message/ack.d.ts +5 -0
  445. package/dist/types/message/content.d.ts +4 -0
  446. package/dist/types/message/device-sent.d.ts +3 -0
  447. package/dist/types/message/incoming.d.ts +18 -0
  448. package/dist/types/message/index.d.ts +2 -0
  449. package/dist/types/message/padding.d.ts +2 -0
  450. package/dist/types/message/phash.d.ts +1 -0
  451. package/dist/types/message/types.d.ts +58 -0
  452. package/dist/types/proto.d.ts +2 -0
  453. package/dist/types/protocol/appstate.d.ts +34 -0
  454. package/dist/types/protocol/auth.d.ts +12 -0
  455. package/dist/types/protocol/browser.d.ts +22 -0
  456. package/dist/types/protocol/constants.d.ts +11 -0
  457. package/dist/types/protocol/defaults.d.ts +26 -0
  458. package/dist/types/protocol/dirty.d.ts +15 -0
  459. package/dist/types/protocol/group.d.ts +6 -0
  460. package/dist/types/protocol/index.d.ts +11 -0
  461. package/dist/types/protocol/jid.d.ts +19 -0
  462. package/dist/types/protocol/media.d.ts +15 -0
  463. package/dist/types/protocol/message.d.ts +16 -0
  464. package/dist/types/protocol/nodes.d.ts +83 -0
  465. package/dist/types/protocol/notification.d.ts +50 -0
  466. package/dist/types/protocol/stream.d.ts +60 -0
  467. package/dist/types/retry/constants.d.ts +21 -0
  468. package/dist/types/retry/index.d.ts +7 -0
  469. package/dist/types/retry/outbound.d.ts +4 -0
  470. package/dist/types/retry/parse.d.ts +3 -0
  471. package/dist/types/retry/reason.d.ts +2 -0
  472. package/dist/types/retry/replay.d.ts +30 -0
  473. package/dist/types/retry/types.d.ts +70 -0
  474. package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +31 -0
  475. package/dist/types/signal/api/SignalDigestSyncApi.d.ts +27 -0
  476. package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +26 -0
  477. package/dist/types/signal/api/SignalMissingPreKeysSyncApi.d.ts +39 -0
  478. package/dist/types/signal/api/SignalRotateKeyApi.d.ts +22 -0
  479. package/dist/types/signal/api/SignalSessionSyncApi.d.ts +38 -0
  480. package/dist/types/signal/api/codec.d.ts +3 -0
  481. package/dist/types/signal/api/constants.d.ts +9 -0
  482. package/dist/types/signal/api/prekeys.d.ts +6 -0
  483. package/dist/types/signal/constants.d.ts +14 -0
  484. package/dist/types/signal/crypto/WaAdvSignature.d.ts +7 -0
  485. package/dist/types/signal/crypto/constants.d.ts +5 -0
  486. package/dist/types/signal/group/SenderKeyChain.d.ts +11 -0
  487. package/dist/types/signal/group/SenderKeyCodec.d.ts +14 -0
  488. package/dist/types/signal/group/SenderKeyManager.d.ts +22 -0
  489. package/dist/types/signal/index.d.ts +12 -0
  490. package/dist/types/signal/registration/keygen.d.ts +5 -0
  491. package/dist/types/signal/registration/utils.d.ts +9 -0
  492. package/dist/types/signal/session/SignalProtocol.d.ts +22 -0
  493. package/dist/types/signal/session/SignalRatchet.d.ts +25 -0
  494. package/dist/types/signal/session/SignalSerializer.d.ts +6 -0
  495. package/dist/types/signal/session/SignalSession.d.ts +43 -0
  496. package/dist/types/signal/store/sqlite.d.ts +72 -0
  497. package/dist/types/signal/types.d.ts +110 -0
  498. package/dist/types/store/contracts/appstate.store.d.ts +22 -0
  499. package/dist/types/store/contracts/auth.store.d.ts +6 -0
  500. package/dist/types/store/contracts/contact.store.d.ts +14 -0
  501. package/dist/types/store/contracts/device-list.store.d.ts +16 -0
  502. package/dist/types/store/contracts/message.store.d.ts +18 -0
  503. package/dist/types/store/contracts/participants.store.d.ts +14 -0
  504. package/dist/types/store/contracts/retry.store.d.ts +11 -0
  505. package/dist/types/store/contracts/sender-key.store.d.ts +16 -0
  506. package/dist/types/store/contracts/signal.store.d.ts +31 -0
  507. package/dist/types/store/contracts/thread.store.d.ts +17 -0
  508. package/dist/types/store/createStore.d.ts +2 -0
  509. package/dist/types/store/index.d.ts +31 -0
  510. package/dist/types/store/noop.store.d.ts +10 -0
  511. package/dist/types/store/providers/memory/appstate.store.d.ts +21 -0
  512. package/dist/types/store/providers/memory/contact.store.d.ts +13 -0
  513. package/dist/types/store/providers/memory/device-list.store.d.ts +20 -0
  514. package/dist/types/store/providers/memory/message.store.d.ts +14 -0
  515. package/dist/types/store/providers/memory/participants.store.d.ts +18 -0
  516. package/dist/types/store/providers/memory/retry.store.d.ts +18 -0
  517. package/dist/types/store/providers/memory/sender-key.store.d.ts +28 -0
  518. package/dist/types/store/providers/memory/signal.store.d.ts +51 -0
  519. package/dist/types/store/providers/memory/thread.store.d.ts +14 -0
  520. package/dist/types/store/providers/sqlite/BaseSqliteStore.d.ts +12 -0
  521. package/dist/types/store/providers/sqlite/appstate.store.d.ts +15 -0
  522. package/dist/types/store/providers/sqlite/auth.store.d.ts +10 -0
  523. package/dist/types/store/providers/sqlite/connection.d.ts +10 -0
  524. package/dist/types/store/providers/sqlite/contact.store.d.ts +10 -0
  525. package/dist/types/store/providers/sqlite/device-list.store.d.ts +18 -0
  526. package/dist/types/store/providers/sqlite/message.store.d.ts +11 -0
  527. package/dist/types/store/providers/sqlite/migrations.d.ts +3 -0
  528. package/dist/types/store/providers/sqlite/participants.store.d.ts +13 -0
  529. package/dist/types/store/providers/sqlite/retry.store.d.ts +16 -0
  530. package/dist/types/store/providers/sqlite/sender-key.store.d.ts +25 -0
  531. package/dist/types/store/providers/sqlite/signal.store.d.ts +46 -0
  532. package/dist/types/store/providers/sqlite/thread.store.d.ts +11 -0
  533. package/dist/types/store/types.d.ts +103 -0
  534. package/dist/types/transport/WaComms.d.ts +61 -0
  535. package/dist/types/transport/WaWebSocket.d.ts +36 -0
  536. package/dist/types/transport/binary/constants.d.ts +49 -0
  537. package/dist/types/transport/binary/decoder.d.ts +3 -0
  538. package/dist/types/transport/binary/encoder.d.ts +3 -0
  539. package/dist/types/transport/binary/index.d.ts +4 -0
  540. package/dist/types/transport/binary/tokens.d.ts +11 -0
  541. package/dist/types/transport/index.d.ts +7 -0
  542. package/dist/types/transport/keepalive/WaKeepAlive.d.ts +39 -0
  543. package/dist/types/transport/node/WaNodeOrchestrator.d.ts +28 -0
  544. package/dist/types/transport/node/WaNodeTransport.d.ts +22 -0
  545. package/dist/types/transport/node/builders/accountSync.d.ts +11 -0
  546. package/dist/types/transport/node/builders/group.d.ts +16 -0
  547. package/dist/types/transport/node/builders/index.d.ts +7 -0
  548. package/dist/types/transport/node/builders/media.d.ts +2 -0
  549. package/dist/types/transport/node/builders/message.d.ts +52 -0
  550. package/dist/types/transport/node/builders/pairing.d.ts +18 -0
  551. package/dist/types/transport/node/builders/prekeys.d.ts +5 -0
  552. package/dist/types/transport/node/builders/retry.d.ts +18 -0
  553. package/dist/types/transport/node/helpers.d.ts +8 -0
  554. package/dist/types/transport/node/query.d.ts +10 -0
  555. package/dist/types/transport/node/xml.d.ts +2 -0
  556. package/dist/types/transport/noise/WaClientPayload.d.ts +3 -0
  557. package/dist/types/transport/noise/WaFrameCodec.d.ts +9 -0
  558. package/dist/types/transport/noise/WaNoiseCert.d.ts +1 -0
  559. package/dist/types/transport/noise/WaNoiseHandshake.d.ts +14 -0
  560. package/dist/types/transport/noise/WaNoiseSession.d.ts +33 -0
  561. package/dist/types/transport/noise/WaNoiseSocket.d.ts +10 -0
  562. package/dist/types/transport/noise/constants.d.ts +7 -0
  563. package/dist/types/transport/noise/types.d.ts +23 -0
  564. package/dist/types/transport/stream/parse.d.ts +23 -0
  565. package/dist/types/transport/types.d.ts +71 -0
  566. package/dist/types/util/async.d.ts +1 -0
  567. package/dist/types/util/base64.d.ts +4 -0
  568. package/dist/types/util/bytes.d.ts +28 -0
  569. package/dist/types/util/coercion.d.ts +8 -0
  570. package/dist/types/util/collections.d.ts +3 -0
  571. package/dist/types/util/primitives.d.ts +7 -0
  572. package/dist/types/util/runtime.d.ts +2 -0
  573. package/dist/types/util/signal-address.d.ts +2 -0
  574. package/dist/util/async.js +8 -0
  575. package/dist/util/base64.js +24 -0
  576. package/dist/util/bytes.js +291 -0
  577. package/dist/util/coercion.js +66 -0
  578. package/dist/util/collections.js +32 -0
  579. package/dist/util/primitives.js +37 -0
  580. package/dist/util/runtime.js +19 -0
  581. package/dist/util/signal-address.js +8 -0
  582. package/package.json +150 -0
  583. package/proto/index.d.ts +10861 -0
  584. package/proto/index.js +1 -0
  585. package/scripts/check-node-version.cjs +55 -0
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Low-level crypto primitives using WebCrypto API
3
+ */
4
+ import { webcrypto } from 'node:crypto';
5
+ /**
6
+ * Re-exported CryptoKey type so consumers don't need to import from 'node:crypto'
7
+ */
8
+ export type CryptoKey = webcrypto.CryptoKey;
9
+ export declare function sha256(value: Uint8Array): Promise<Uint8Array>;
10
+ export declare function sha1(value: Uint8Array): Promise<Uint8Array>;
11
+ export declare function sha512(value: Uint8Array): Promise<Uint8Array>;
12
+ export declare function md5Bytes(input: string): Uint8Array;
13
+ export declare function importAesGcmKey(raw: Uint8Array, usages: ('encrypt' | 'decrypt')[]): Promise<webcrypto.CryptoKey>;
14
+ export declare function aesGcmEncrypt(key: webcrypto.CryptoKey, nonce: Uint8Array, plaintext: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
15
+ export declare function aesGcmDecrypt(key: webcrypto.CryptoKey, nonce: Uint8Array, ciphertext: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
16
+ export declare function importAesCbcKey(keyBytes: Uint8Array): Promise<webcrypto.CryptoKey>;
17
+ export declare function aesCbcEncrypt(key: webcrypto.CryptoKey, iv: Uint8Array, plaintext: Uint8Array): Promise<Uint8Array>;
18
+ export declare function aesCbcDecrypt(key: webcrypto.CryptoKey, iv: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>;
19
+ export declare function importHmacKey(keyBytes: Uint8Array): Promise<webcrypto.CryptoKey>;
20
+ export declare function importHmacSha512Key(keyBytes: Uint8Array): Promise<webcrypto.CryptoKey>;
21
+ export declare function hmacSign(key: webcrypto.CryptoKey, data: Uint8Array): Promise<Uint8Array>;
22
+ export declare function pbkdf2DeriveAesCtrKey(password: Uint8Array, salt: Uint8Array, iterations: number): Promise<CryptoKey>;
23
+ export declare function aesCtrEncrypt(key: CryptoKey, counter: Uint8Array, plaintext: Uint8Array): Promise<Uint8Array>;
24
+ export declare function aesCtrDecrypt(key: CryptoKey, counter: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>;
25
+ export declare function ed25519VerifyRaw(publicKey: Uint8Array, signature: Uint8Array, message: Uint8Array): Promise<boolean>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generates cryptographically secure random bytes
3
+ */
4
+ export declare function randomBytesAsync(size: number): Promise<Uint8Array>;
5
+ /**
6
+ * Generates a cryptographically secure random integer in the range [min, max)
7
+ */
8
+ export declare function randomIntAsync(min: number, max: number): Promise<number>;
@@ -0,0 +1,7 @@
1
+ import { type SignalKeyPair } from '../curves/types';
2
+ export declare class Ed25519 {
3
+ static generateKeyPair(): Promise<SignalKeyPair>;
4
+ static keyPairFromPrivateKey(privKey: Uint8Array): Promise<SignalKeyPair>;
5
+ static sign(message: Uint8Array, privKey: Uint8Array): Promise<Uint8Array>;
6
+ static verify(message: Uint8Array, signature: Uint8Array, pubKey: Uint8Array): Promise<boolean>;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { type SignalKeyPair } from '../curves/types';
2
+ export declare function clampCurvePrivateKeyInPlace(privateKey: Uint8Array): Uint8Array;
3
+ export declare function montgomeryToEdwardsPublic(curvePublicKey: Uint8Array, signBit: number): Uint8Array;
4
+ export declare class X25519 {
5
+ static generateKeyPair(): Promise<SignalKeyPair>;
6
+ static keyPairFromPrivateKey(privKey: Uint8Array): Promise<SignalKeyPair>;
7
+ static scalarMult(privKey: Uint8Array, pubKey: Uint8Array): Promise<Uint8Array>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export declare const X25519_PKCS8_PREFIX: Uint8Array<ArrayBufferLike>;
2
+ export declare const ED25519_PKCS8_PREFIX: Uint8Array<ArrayBufferLike>;
@@ -0,0 +1,10 @@
1
+ import type { webcrypto } from 'node:crypto';
2
+ export interface SignalKeyPair {
3
+ readonly pubKey: Uint8Array;
4
+ readonly privKey: Uint8Array;
5
+ }
6
+ export interface SubtleKeyPair {
7
+ readonly privateKey: webcrypto.CryptoKey;
8
+ readonly publicKey: webcrypto.CryptoKey;
9
+ }
10
+ export declare function pkcs8FromRawPrivate(prefix: Uint8Array, raw: Uint8Array): Uint8Array;
@@ -0,0 +1,3 @@
1
+ export * from './core';
2
+ export { Ed25519 } from './curves/Ed25519';
3
+ export { X25519 } from './curves/X25519';
@@ -0,0 +1,7 @@
1
+ import type { ExtendedPoint } from '../math/types';
2
+ export declare const FIELD_P: bigint;
3
+ export declare const GROUP_L: bigint;
4
+ export declare const EDWARDS_D: bigint;
5
+ export declare const TWO_D: bigint;
6
+ export declare const BASE_POINT: ExtendedPoint;
7
+ export declare const IDENTITY_POINT: ExtendedPoint;
@@ -0,0 +1,3 @@
1
+ import type { ExtendedPoint } from '../math/types';
2
+ export declare function scalarMultBase(scalar: bigint): ExtendedPoint;
3
+ export declare function encodeExtendedPoint(point: ExtendedPoint): Uint8Array;
@@ -0,0 +1,2 @@
1
+ export declare function bytesToBigIntLE(bytes: Uint8Array): bigint;
2
+ export declare function bigIntToBytesLE(value: bigint, length: number): Uint8Array;
@@ -0,0 +1,5 @@
1
+ import { FIELD_P, GROUP_L } from '../math/constants';
2
+ export { FIELD_P, GROUP_L };
3
+ export declare function mod(value: bigint, modulus?: bigint): bigint;
4
+ export declare function modGroup(value: bigint): bigint;
5
+ export declare function modInv(value: bigint, modulus?: bigint): bigint;
@@ -0,0 +1,6 @@
1
+ export interface ExtendedPoint {
2
+ readonly x: bigint;
3
+ readonly y: bigint;
4
+ readonly z: bigint;
5
+ readonly t: bigint;
6
+ }
@@ -0,0 +1,10 @@
1
+ export { WaClient } from '@client';
2
+ export type { WaClientEventMap, WaClientOptions, WaHistorySyncChunkEvent, WaHistorySyncOptions } from '@client';
3
+ export { ConsoleLogger } from './infra/log/ConsoleLogger';
4
+ export { PinoLogger, createPinoLogger } from './infra/log/PinoLogger';
5
+ export type { PinoLoggerOptions } from './infra/log/PinoLogger';
6
+ export type { Logger, LogLevel } from './infra/log/types';
7
+ export { createStore } from '@store';
8
+ export type { WaAppStateCollectionStoreState, WaAppStateStore, WaAuthStore, WaContactStore, WaCreateStoreCustomCacheProviders, WaCreateStoreCustomProviders, WaCreateStoreOptions, WaDeviceListSnapshot, WaDeviceListStore, WaMessageStore, WaParticipantsSnapshot, WaParticipantsStore, WaRetryStore, WaSenderKeyStore, WaSignalStore, WaSqliteDriver, WaSqliteStorageOptions, WaStoredContactRecord, WaStoredMessageRecord, WaStoredThreadRecord, WaStore, WaStoreCacheProviderSelection, WaStoreCacheTtlSelection, WaStoreDomainValueOrFactory, WaStoreProviderSelection, WaStoreSession, WaThreadStore } from '@store';
9
+ export { getLoginIdentity, getWaCompanionPlatformId, getWaMediaHkdfInfo, isGroupJid, normalizeDeviceJid, normalizeRecipientJid, parsePhoneJid, parseSignalAddressFromJid, splitJid, toUserJid, WA_ACCOUNT_SYNC_PROTOCOLS, WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES, WA_APP_STATE_ERROR_CODES, WA_APP_STATE_KDF_INFO, WA_APP_STATE_KEY_TYPES, WA_APP_STATE_SYNC_DATA_TYPE, WA_BROWSERS, WA_COMPANION_PLATFORM_IDS, WA_DEFAULTS, WA_DIRTY_PROTOCOLS, WA_DIRTY_TYPES, WA_DISCONNECT_REASONS, WA_IQ_TYPES, WA_LOGOUT_REASONS, WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_MEDIA_HKDF_INFO, WA_NODE_TAGS, WA_PAIRING_KDF_INFO, WA_PREVIEW_MEDIA_HKDF_INFO, WA_READY_STATES, WA_RETRYABLE_ACK_CODES, WA_SIGNALING, WA_STREAM_SIGNALING, WA_SUPPORTED_DIRTY_TYPES, WA_XMLNS } from '@protocol';
10
+ export { proto } from '.';
@@ -0,0 +1,11 @@
1
+ import type { LogLevel, Logger } from '../log/types';
2
+ export declare class ConsoleLogger implements Logger {
3
+ readonly level: LogLevel;
4
+ constructor(level?: LogLevel);
5
+ trace(message: string, context?: Record<string, unknown>): void;
6
+ debug(message: string, context?: Record<string, unknown>): void;
7
+ info(message: string, context?: Record<string, unknown>): void;
8
+ warn(message: string, context?: Record<string, unknown>): void;
9
+ error(message: string, context?: Record<string, unknown>): void;
10
+ private canLog;
11
+ }
@@ -0,0 +1,30 @@
1
+ import type { LogLevel, Logger } from '../log/types';
2
+ type PinoLikeLogger = {
3
+ level: string;
4
+ trace: (...args: unknown[]) => void;
5
+ debug: (...args: unknown[]) => void;
6
+ info: (...args: unknown[]) => void;
7
+ warn: (...args: unknown[]) => void;
8
+ error: (...args: unknown[]) => void;
9
+ };
10
+ export interface PinoLoggerOptions {
11
+ readonly level?: LogLevel;
12
+ readonly name?: string;
13
+ readonly base?: Readonly<Record<string, unknown>> | null;
14
+ readonly pinoOptions?: Readonly<Record<string, unknown>>;
15
+ readonly pretty?: boolean;
16
+ readonly prettyOptions?: Readonly<Record<string, unknown>>;
17
+ }
18
+ export declare class PinoLogger implements Logger {
19
+ readonly level: LogLevel;
20
+ private readonly logger;
21
+ constructor(logger: PinoLikeLogger, level?: LogLevel);
22
+ trace(message: string, context?: Readonly<Record<string, unknown>>): void;
23
+ debug(message: string, context?: Readonly<Record<string, unknown>>): void;
24
+ info(message: string, context?: Readonly<Record<string, unknown>>): void;
25
+ warn(message: string, context?: Readonly<Record<string, unknown>>): void;
26
+ error(message: string, context?: Readonly<Record<string, unknown>>): void;
27
+ private writeLog;
28
+ }
29
+ export declare function createPinoLogger(options?: PinoLoggerOptions): Promise<PinoLogger>;
30
+ export {};
@@ -0,0 +1,9 @@
1
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error';
2
+ export interface Logger {
3
+ readonly level: LogLevel;
4
+ trace(message: string, context?: Readonly<Record<string, unknown>>): void;
5
+ debug(message: string, context?: Readonly<Record<string, unknown>>): void;
6
+ info(message: string, context?: Readonly<Record<string, unknown>>): void;
7
+ warn(message: string, context?: Readonly<Record<string, unknown>>): void;
8
+ error(message: string, context?: Readonly<Record<string, unknown>>): void;
9
+ }
@@ -0,0 +1,19 @@
1
+ type Task<T> = () => Promise<T>;
2
+ export declare class BoundedTaskQueueFullError extends Error {
3
+ readonly code = "BOUNDED_TASK_QUEUE_FULL";
4
+ constructor(message?: string);
5
+ }
6
+ export declare class BoundedTaskQueue {
7
+ private readonly maxQueueSize;
8
+ private readonly maxConcurrency;
9
+ private readonly queue;
10
+ private head;
11
+ private running;
12
+ constructor(maxQueueSize?: number, maxConcurrency?: number);
13
+ enqueue<T>(task: Task<T>): Promise<T>;
14
+ pending(): number;
15
+ inFlight(): number;
16
+ private drain;
17
+ private compactIfNeeded;
18
+ }
19
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Readable } from 'node:stream';
2
+ import type { MediaCryptoType, WaMediaDecryptReadableOptions, WaMediaDecryptionResult, WaMediaDerivedKeys, WaMediaEncryptionResult, WaMediaReadableDecryptionResult, WaMediaReadableEncryptionResult } from './types';
3
+ export declare class WaMediaCrypto {
4
+ static generateMediaKey(): Promise<Uint8Array>;
5
+ static deriveKeys(mediaType: MediaCryptoType, mediaKey: Uint8Array): Promise<WaMediaDerivedKeys>;
6
+ static encryptBytes(mediaType: MediaCryptoType, mediaKey: Uint8Array, plaintext: Uint8Array): Promise<WaMediaEncryptionResult>;
7
+ static decryptBytes(mediaType: MediaCryptoType, mediaKey: Uint8Array, ciphertextHmac: Uint8Array, expectedFileSha256?: Uint8Array, expectedFileEncSha256?: Uint8Array): Promise<WaMediaDecryptionResult>;
8
+ static encryptReadable(mediaType: MediaCryptoType, mediaKey: Uint8Array, plaintext: Readable): Promise<WaMediaReadableEncryptionResult>;
9
+ static decryptReadableToBytes(encrypted: Readable, options: WaMediaDecryptReadableOptions): Promise<WaMediaDecryptionResult>;
10
+ static decryptReadable(encrypted: Readable, options: WaMediaDecryptReadableOptions): Promise<WaMediaReadableDecryptionResult>;
11
+ static encryptedLength(plaintextLength: number): number;
12
+ }
@@ -0,0 +1,81 @@
1
+ import { Readable } from 'node:stream';
2
+ import type { MediaCryptoType, WaMediaTransferClientOptions } from './types';
3
+ interface StreamDownloadRequest {
4
+ readonly url?: string;
5
+ readonly directPath?: string;
6
+ readonly hosts?: readonly string[];
7
+ readonly headers?: Readonly<Record<string, string>>;
8
+ readonly timeoutMs?: number;
9
+ readonly signal?: AbortSignal;
10
+ readonly maxBytes?: number;
11
+ }
12
+ interface StreamUploadRequest extends StreamDownloadRequest {
13
+ readonly method?: 'POST' | 'PUT';
14
+ readonly body: Uint8Array | Readable;
15
+ readonly contentLength?: number;
16
+ readonly contentType?: string;
17
+ }
18
+ interface StreamTransferResponse {
19
+ readonly url: string;
20
+ readonly status: number;
21
+ readonly ok: boolean;
22
+ readonly headers: Readonly<Record<string, string>>;
23
+ readonly body: Readable | null;
24
+ }
25
+ interface EncryptedUploadRequest extends StreamDownloadRequest {
26
+ readonly mediaType: MediaCryptoType;
27
+ readonly method?: 'POST' | 'PUT';
28
+ readonly plaintext: Uint8Array | Readable;
29
+ readonly mediaKey?: Uint8Array;
30
+ readonly contentLength?: number;
31
+ readonly contentType?: string;
32
+ }
33
+ interface EncryptedUploadResult {
34
+ readonly transfer: StreamTransferResponse;
35
+ readonly mediaKey: Uint8Array;
36
+ readonly fileSha256: Uint8Array;
37
+ readonly fileEncSha256: Uint8Array;
38
+ }
39
+ interface EncryptedDownloadRequest extends StreamDownloadRequest {
40
+ readonly mediaType: MediaCryptoType;
41
+ readonly mediaKey: Uint8Array;
42
+ readonly fileSha256?: Uint8Array;
43
+ readonly fileEncSha256?: Uint8Array;
44
+ }
45
+ interface EncryptedDownloadStream {
46
+ readonly plaintext: Readable;
47
+ readonly metadata: Promise<{
48
+ readonly fileSha256: Uint8Array;
49
+ readonly fileEncSha256: Uint8Array;
50
+ }>;
51
+ }
52
+ export declare class WaMediaTransferClient {
53
+ private readonly logger?;
54
+ private readonly defaultHosts;
55
+ private readonly defaultTimeoutMs;
56
+ private readonly defaultMaxReadBytes;
57
+ private readonly defaultHeaders;
58
+ constructor(options?: WaMediaTransferClientOptions);
59
+ downloadStream(request: StreamDownloadRequest): Promise<StreamTransferResponse>;
60
+ downloadBytes(request: StreamDownloadRequest): Promise<Uint8Array>;
61
+ uploadStream(request: StreamUploadRequest): Promise<StreamTransferResponse>;
62
+ uploadEncrypted(request: EncryptedUploadRequest): Promise<EncryptedUploadResult>;
63
+ downloadAndDecrypt(request: EncryptedDownloadRequest): Promise<Uint8Array>;
64
+ downloadAndDecryptStream(request: EncryptedDownloadRequest): Promise<EncryptedDownloadStream>;
65
+ readResponseBytes(response: StreamTransferResponse, maxBytes?: number): Promise<Uint8Array>;
66
+ private resolveTransferRequest;
67
+ private executeTransfer;
68
+ private prepareEncryptedUpload;
69
+ private assertSuccessfulResponse;
70
+ private requireResponseBody;
71
+ private resolveUrls;
72
+ private mergeHeaders;
73
+ private readAllBytesWithLimit;
74
+ private fetchWithFallback;
75
+ private createAbortContext;
76
+ private toResponse;
77
+ private headersToRecord;
78
+ private cancelWebBody;
79
+ private drainBody;
80
+ }
81
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { WaMediaConn } from './types';
2
+ import type { BinaryNode } from '../transport/types';
3
+ export declare function parseMediaConnResponse(node: BinaryNode, nowMs: number): WaMediaConn;
@@ -0,0 +1,10 @@
1
+ export declare const DEFAULT_MEDIA_HOSTS: readonly ["mmg.whatsapp.net", "mmg-fallback.whatsapp.net"];
2
+ export declare const MEDIA_CONN_CACHE_GRACE_MS = 30000;
3
+ export declare const MEDIA_HKDF_SIZE = 112;
4
+ export declare const IV_SIZE = 16;
5
+ export declare const ENC_KEY_START = 16;
6
+ export declare const ENC_KEY_END = 48;
7
+ export declare const MAC_KEY_START = 48;
8
+ export declare const MAC_KEY_END = 80;
9
+ export declare const HMAC_TRUNCATED_SIZE = 10;
10
+ export declare const MEDIA_UPLOAD_PATHS: Readonly<Record<'image' | 'video' | 'audio' | 'document' | 'sticker' | 'gif' | 'ptt', string>>;
@@ -0,0 +1,4 @@
1
+ export { WaMediaTransferClient } from './WaMediaTransferClient';
2
+ export { parseMediaConnResponse } from './conn';
3
+ export type { WaMediaConn, WaMediaConnHost, WaMediaTransferClientOptions, WaMediaDerivedKeys, WaMediaEncryptionResult, WaMediaDecryptionResult, WaMediaReadableEncryptionResult, WaMediaReadableDecryptionResult } from './types';
4
+ export { WaMediaCrypto } from './WaMediaCrypto';
@@ -0,0 +1,56 @@
1
+ import type { Readable } from 'node:stream';
2
+ import type { Logger } from '../infra/log/types';
3
+ export type MediaKind = 'image' | 'video' | 'audio' | 'document' | 'sticker';
4
+ export type MediaCryptoType = MediaKind | 'ptt' | 'gif' | 'ptv' | 'history' | 'md-app-state';
5
+ export interface WaMediaConnHost {
6
+ readonly hostname: string;
7
+ readonly isFallback: boolean;
8
+ }
9
+ export interface WaMediaConn {
10
+ readonly auth: string;
11
+ readonly expiresAtMs: number;
12
+ readonly hosts: readonly WaMediaConnHost[];
13
+ }
14
+ export interface WaMediaTransferClientOptions {
15
+ readonly logger?: Logger;
16
+ readonly defaultHosts?: readonly string[];
17
+ readonly defaultTimeoutMs?: number;
18
+ readonly defaultMaxReadBytes?: number;
19
+ readonly defaultHeaders?: Readonly<Record<string, string>>;
20
+ }
21
+ export interface WaMediaDerivedKeys {
22
+ readonly iv: Uint8Array;
23
+ readonly encKey: Uint8Array;
24
+ readonly macKey: Uint8Array;
25
+ readonly refKey: Uint8Array;
26
+ }
27
+ export interface WaMediaEncryptionResult {
28
+ readonly ciphertextHmac: Uint8Array;
29
+ readonly fileSha256: Uint8Array;
30
+ readonly fileEncSha256: Uint8Array;
31
+ }
32
+ export interface WaMediaDecryptionResult {
33
+ readonly plaintext: Uint8Array;
34
+ readonly fileSha256: Uint8Array;
35
+ readonly fileEncSha256: Uint8Array;
36
+ }
37
+ export interface WaMediaReadableEncryptionResult {
38
+ readonly encrypted: Readable;
39
+ readonly metadata: Promise<{
40
+ readonly fileSha256: Uint8Array;
41
+ readonly fileEncSha256: Uint8Array;
42
+ }>;
43
+ }
44
+ export interface WaMediaReadableDecryptionResult {
45
+ readonly plaintext: Readable;
46
+ readonly metadata: Promise<{
47
+ readonly fileSha256: Uint8Array;
48
+ readonly fileEncSha256: Uint8Array;
49
+ }>;
50
+ }
51
+ export interface WaMediaDecryptReadableOptions {
52
+ readonly mediaType: MediaCryptoType;
53
+ readonly mediaKey: Uint8Array;
54
+ readonly expectedFileSha256?: Uint8Array;
55
+ readonly expectedFileEncSha256?: Uint8Array;
56
+ }
@@ -0,0 +1,29 @@
1
+ import type { Logger } from '../infra/log/types';
2
+ import type { WaEncryptedMessageInput, WaMessagePublishOptions, WaMessagePublishResult, WaSendReceiptInput } from './types';
3
+ import type { BinaryNode } from '../transport/types';
4
+ interface WaMessageClientOptions {
5
+ readonly logger: Logger;
6
+ readonly sendNode: (node: BinaryNode) => Promise<void>;
7
+ readonly query: (node: BinaryNode, timeoutMs?: number) => Promise<BinaryNode>;
8
+ readonly defaultAckTimeoutMs?: number;
9
+ readonly defaultMaxAttempts?: number;
10
+ readonly defaultRetryDelayMs?: number;
11
+ }
12
+ export declare class WaMessageClient {
13
+ private readonly logger;
14
+ private readonly sendNode;
15
+ private readonly query;
16
+ private readonly defaultAckTimeoutMs;
17
+ private readonly defaultMaxAttempts;
18
+ private readonly defaultRetryDelayMs;
19
+ constructor(options: WaMessageClientOptions);
20
+ publishNode(node: BinaryNode, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
21
+ publishEncrypted(input: WaEncryptedMessageInput, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
22
+ sendMessageNode(node: BinaryNode): Promise<void>;
23
+ sendEncrypted(input: WaEncryptedMessageInput): Promise<void>;
24
+ private buildEncryptedMessageNode;
25
+ sendReceipt(input: WaSendReceiptInput): Promise<void>;
26
+ private isRetryablePublishError;
27
+ private extractAckMetadata;
28
+ }
29
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { BinaryNode } from '../transport/types';
2
+ export declare function isAckOrReceiptNode(node: BinaryNode): boolean;
3
+ export declare function isNegativeAckNode(node: BinaryNode): boolean;
4
+ export declare function isRetryableNegativeAck(node: BinaryNode): boolean;
5
+ export declare function describeAckNode(node: BinaryNode): string;
@@ -0,0 +1,4 @@
1
+ import type { WaSendMediaMessage } from './types';
2
+ import type { Proto } from '..';
3
+ export declare function isSendMediaMessage(content: unknown): content is WaSendMediaMessage;
4
+ export declare function resolveMessageTypeAttr(message: Proto.IMessage): string;
@@ -0,0 +1,3 @@
1
+ import type { Proto } from '..';
2
+ export declare function wrapDeviceSentMessage(message: Proto.IMessage, destinationJid: string): Proto.IMessage;
3
+ export declare function unwrapDeviceSentMessage(message: Proto.IMessage): Proto.IMessage | null;
@@ -0,0 +1,18 @@
1
+ import type { WaIncomingMessageEvent, WaIncomingUnhandledStanzaEvent } from '../client/types';
2
+ import type { Logger } from '../infra/log/types';
3
+ import type { WaRetryDecryptFailureContext } from '../retry/types';
4
+ import type { SenderKeyManager } from '../signal/group/SenderKeyManager';
5
+ import type { SignalProtocol } from '../signal/session/SignalProtocol';
6
+ import type { BinaryNode } from '../transport/types';
7
+ interface WaIncomingMessageAckHandlerOptions {
8
+ readonly logger: Logger;
9
+ readonly sendNode: (node: BinaryNode) => Promise<void>;
10
+ readonly getMeJid?: () => string | null | undefined;
11
+ readonly signalProtocol?: SignalProtocol;
12
+ readonly senderKeyManager?: SenderKeyManager;
13
+ readonly onDecryptFailure?: (context: WaRetryDecryptFailureContext, error: unknown) => Promise<boolean>;
14
+ readonly emitIncomingMessage?: (event: WaIncomingMessageEvent) => void;
15
+ readonly emitUnhandledStanza?: (event: WaIncomingUnhandledStanzaEvent) => void;
16
+ }
17
+ export declare function handleIncomingMessageAck(node: BinaryNode, options: WaIncomingMessageAckHandlerOptions): Promise<boolean>;
18
+ export {};
@@ -0,0 +1,2 @@
1
+ export { WaMessageClient } from './WaMessageClient';
2
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export declare function writeRandomPadMax16(message: Uint8Array): Promise<Uint8Array>;
2
+ export declare function unpadPkcs7(bytes: Uint8Array): Uint8Array;
@@ -0,0 +1 @@
1
+ export declare function computePhashV2(participants: readonly string[]): Promise<string>;
@@ -0,0 +1,58 @@
1
+ import type { MediaKind } from '../media/types';
2
+ import type { Proto } from '..';
3
+ import type { BinaryNode } from '../transport/types';
4
+ export interface WaMessagePublishOptions {
5
+ readonly ackTimeoutMs?: number;
6
+ readonly maxAttempts?: number;
7
+ readonly retryDelayMs?: number;
8
+ }
9
+ export interface WaMessageAckMetadata {
10
+ readonly t?: string;
11
+ readonly sync?: string;
12
+ readonly phash?: string;
13
+ readonly refreshLid: boolean;
14
+ readonly addressingMode?: 'pn' | 'lid';
15
+ readonly count?: number;
16
+ readonly error?: number;
17
+ }
18
+ export interface WaMessagePublishResult {
19
+ readonly id: string;
20
+ readonly attempts: number;
21
+ readonly ackNode: BinaryNode;
22
+ readonly ack: WaMessageAckMetadata;
23
+ }
24
+ export interface WaSendMediaMessage {
25
+ readonly type: MediaKind;
26
+ readonly media: Uint8Array | ArrayBuffer;
27
+ readonly mimetype: string;
28
+ readonly caption?: string;
29
+ readonly fileName?: string;
30
+ readonly ptt?: boolean;
31
+ readonly gifPlayback?: boolean;
32
+ readonly seconds?: number;
33
+ readonly width?: number;
34
+ readonly height?: number;
35
+ }
36
+ export type WaSendMessageContent = string | Proto.IMessage | WaSendMediaMessage;
37
+ export interface WaEncryptedMessageInput {
38
+ readonly to: string;
39
+ readonly encType: 'msg' | 'pkmsg' | 'skmsg';
40
+ readonly ciphertext: Uint8Array;
41
+ readonly deviceIdentity?: Uint8Array;
42
+ readonly addressingMode?: 'pn' | 'lid';
43
+ readonly encCount?: number;
44
+ readonly id?: string;
45
+ readonly type?: string;
46
+ readonly category?: string;
47
+ readonly pushPriority?: string;
48
+ readonly participant?: string;
49
+ readonly deviceFanout?: string;
50
+ }
51
+ export interface WaSendReceiptInput {
52
+ readonly to: string;
53
+ readonly id: string;
54
+ readonly type?: string;
55
+ readonly participant?: string;
56
+ readonly from?: string;
57
+ readonly t?: string;
58
+ }
@@ -0,0 +1,2 @@
1
+ export { waproto as proto } from '../proto';
2
+ export type { waproto as Proto } from '../proto';
@@ -0,0 +1,34 @@
1
+ export declare const WA_APP_STATE_COLLECTIONS: Readonly<{
2
+ readonly REGULAR: "regular";
3
+ readonly REGULAR_LOW: "regular_low";
4
+ readonly REGULAR_HIGH: "regular_high";
5
+ readonly CRITICAL_BLOCK: "critical_block";
6
+ readonly CRITICAL_UNBLOCK_LOW: "critical_unblock_low";
7
+ }>;
8
+ export declare const WA_APP_STATE_COLLECTION_STATES: Readonly<{
9
+ readonly SUCCESS: "success";
10
+ readonly SUCCESS_HAS_MORE: "success_has_more";
11
+ readonly CONFLICT: "conflict";
12
+ readonly CONFLICT_HAS_MORE: "conflict_has_more";
13
+ readonly ERROR_RETRY: "error_retry";
14
+ readonly ERROR_FATAL: "error_fatal";
15
+ readonly BLOCKED: "blocked";
16
+ }>;
17
+ export declare const WA_APP_STATE_ERROR_CODES: Readonly<{
18
+ readonly CONFLICT: "409";
19
+ readonly BAD_REQUEST: "400";
20
+ readonly NOT_FOUND: "404";
21
+ }>;
22
+ export declare const WA_APP_STATE_SYNC_DATA_TYPE: Readonly<{
23
+ readonly PATCH: "Patch";
24
+ readonly SNAPSHOT: "Snapshot";
25
+ readonly LOCAL: "Local";
26
+ }>;
27
+ export declare const WA_APP_STATE_KEY_TYPES: Readonly<{
28
+ readonly MD_APP_STATE: "md-app-state";
29
+ readonly MD_MSG_HIST: "md-msg-hist";
30
+ }>;
31
+ export declare const WA_APP_STATE_KDF_INFO: Readonly<{
32
+ readonly MUTATION_KEYS: "WhatsApp Mutation Keys";
33
+ readonly PATCH_INTEGRITY: "WhatsApp Patch Integrity";
34
+ }>;
@@ -0,0 +1,12 @@
1
+ export declare const WA_SIGNALING: Readonly<{
2
+ readonly LINK_CODE_STAGE_COMPANION_HELLO: "companion_hello";
3
+ readonly LINK_CODE_STAGE_GET_COUNTRY_CODE: "get_country_code";
4
+ readonly LINK_CODE_STAGE_COMPANION_FINISH: "companion_finish";
5
+ readonly LINK_CODE_STAGE_REFRESH_CODE: "refresh_code";
6
+ readonly LINK_CODE_STAGE_PRIMARY_HELLO: "primary_hello";
7
+ readonly COMPANION_REG_REFRESH_NOTIFICATION: "companion_reg_refresh";
8
+ }>;
9
+ export declare const WA_PAIRING_KDF_INFO: Readonly<{
10
+ readonly LINK_CODE_BUNDLE: "link_code_pairing_key_bundle_encryption_key";
11
+ readonly ADV_SECRET: "adv_secret";
12
+ }>;
@@ -0,0 +1,22 @@
1
+ export declare const WA_BROWSERS: Readonly<{
2
+ readonly CHROME: "chrome";
3
+ readonly CHROMIUM: "chromium";
4
+ readonly FIREFOX: "firefox";
5
+ readonly SAFARI: "safari";
6
+ readonly IE: "ie";
7
+ readonly OPERA: "opera";
8
+ readonly EDGE: "edge";
9
+ }>;
10
+ export declare const WA_COMPANION_PLATFORM_IDS: Readonly<{
11
+ readonly UNKNOWN: "0";
12
+ readonly CHROME: "1";
13
+ readonly EDGE: "2";
14
+ readonly FIREFOX: "3";
15
+ readonly IE: "4";
16
+ readonly OPERA: "5";
17
+ readonly SAFARI: "6";
18
+ readonly ELECTRON: "7";
19
+ readonly UWP: "8";
20
+ readonly OTHER_WEB_CLIENT: "9";
21
+ }>;
22
+ export declare function getWaCompanionPlatformId(browser: string): string;
@@ -0,0 +1,11 @@
1
+ export { getWaCompanionPlatformId, WA_BROWSERS, WA_COMPANION_PLATFORM_IDS } from './browser';
2
+ export { WA_SIGNALING, WA_PAIRING_KDF_INFO } from './auth';
3
+ export { WA_DISCONNECT_REASONS, WA_LOGOUT_REASONS, WA_READY_STATES, WA_STREAM_SIGNALING } from './stream';
4
+ export { WA_IQ_TYPES, WA_NODE_TAGS, WA_XMLNS } from './nodes';
5
+ export { WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_RETRYABLE_ACK_CODES } from './message';
6
+ export { WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES, WA_APP_STATE_ERROR_CODES, WA_APP_STATE_KDF_INFO, WA_APP_STATE_KEY_TYPES, WA_APP_STATE_SYNC_DATA_TYPE } from './appstate';
7
+ export { getWaMediaHkdfInfo, WA_MEDIA_HKDF_INFO, WA_PREVIEW_MEDIA_HKDF_INFO } from './media';
8
+ export { WA_ACCOUNT_SYNC_PROTOCOLS, WA_DIRTY_PROTOCOLS, WA_DIRTY_TYPES, WA_SUPPORTED_DIRTY_TYPES } from './dirty';
9
+ export { WA_GROUP_NOTIFICATION_TAGS, WA_NOTIFICATION_TYPES } from './notification';
10
+ export { WA_DEFAULTS } from './defaults';
11
+ export { WA_GROUP_PARTICIPANT_TYPES, type WaGroupSetting } from './group';
@@ -0,0 +1,26 @@
1
+ export declare const WA_DEFAULTS: Readonly<{
2
+ readonly HOST_DOMAIN: "s.whatsapp.net";
3
+ readonly GROUP_SERVER: "g.us";
4
+ readonly BROADCAST_SERVER: "broadcast";
5
+ readonly DEVICE_BROWSER: "firefox";
6
+ readonly DEVICE_PLATFORM: string;
7
+ readonly CHAT_SOCKET_URLS: readonly ["wss://web.whatsapp.com/ws/chat", "wss://web.whatsapp.com:5222/ws/chat"];
8
+ readonly NOISE_RESUME_FAILURES_BEFORE_FULL_HANDSHAKE: 1;
9
+ readonly IQ_TIMEOUT_MS: 15000;
10
+ readonly NODE_QUERY_TIMEOUT_MS: 15000;
11
+ readonly CONNECT_TIMEOUT_MS: 10000;
12
+ readonly SOCKET_TIMEOUT_MS: 10000;
13
+ readonly RECONNECT_INTERVAL_MS: 2000;
14
+ readonly HEALTH_CHECK_INTERVAL_MS: 15000;
15
+ readonly DEAD_SOCKET_TIMEOUT_MS: 20000;
16
+ readonly MEDIA_TIMEOUT_MS: 30000;
17
+ readonly APP_STATE_SYNC_TIMEOUT_MS: 30000;
18
+ readonly SIGNAL_FETCH_KEY_BUNDLES_TIMEOUT_MS: 20000;
19
+ readonly MESSAGE_ACK_TIMEOUT_MS: 10000;
20
+ readonly MESSAGE_MAX_ATTEMPTS: 3;
21
+ readonly MESSAGE_RETRY_DELAY_MS: 750;
22
+ readonly PAIRING_CODE_MAX_AGE_SECONDS: 180;
23
+ readonly QR_INITIAL_TTL_MS: 60000;
24
+ readonly QR_ROTATION_TTL_MS: 20000;
25
+ readonly MAX_DANGLING_RECEIPTS: 2048;
26
+ }>;