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.
- package/README.md +16 -4
- package/dist/appstate/WaAppStateCrypto.js +50 -42
- package/dist/appstate/WaAppStateSyncClient.js +215 -133
- package/dist/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/appstate/index.js +9 -7
- package/dist/appstate/utils.js +0 -5
- package/dist/auth/WaAuthClient.js +55 -57
- package/dist/auth/credentials-flow.js +195 -0
- package/dist/auth/index.js +1 -6
- package/dist/auth/pairing/WaPairingFlow.js +39 -32
- package/dist/auth/pairing/{WaPairingCodeCrypto.js → pairing-code-crypto.js} +35 -17
- package/dist/client/WaClient.js +338 -174
- package/dist/client/WaClientFactory.js +399 -66
- package/dist/client/connection/WaConnectionManager.js +23 -11
- package/dist/client/coordinators/WaAbPropsCoordinator.js +141 -0
- package/dist/client/coordinators/WaBusinessCoordinator.js +232 -0
- package/dist/client/coordinators/WaEmailCoordinator.js +63 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +11 -7
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +34 -8
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +341 -118
- package/dist/client/coordinators/WaOfflineResumeCoordinator.js +114 -0
- package/dist/client/coordinators/WaPassiveTasksCoordinator.js +97 -36
- package/dist/client/coordinators/WaPrivacyCoordinator.js +134 -0
- package/dist/client/coordinators/WaProfileCoordinator.js +214 -0
- package/dist/client/coordinators/WaRetryCoordinator.js +184 -30
- package/dist/client/coordinators/WaStreamControlCoordinator.js +18 -11
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +184 -0
- package/dist/client/dirty.js +41 -21
- package/dist/client/events/abprops.js +43 -0
- package/dist/client/events/devices.js +72 -0
- package/dist/client/events/group.js +3 -11
- package/dist/client/events/identity.js +22 -0
- package/dist/client/events/privacy-token.js +38 -0
- package/dist/client/events/registration.js +42 -0
- package/dist/client/history-sync.js +50 -9
- package/dist/client/incoming.js +74 -7
- package/dist/client/mailbox.js +40 -23
- package/dist/client/media.js +243 -0
- package/dist/client/messages.js +245 -92
- package/dist/client/messaging/fanout.js +21 -11
- package/dist/client/messaging/participants.js +6 -4
- package/dist/client/persistence/WriteBehindPersistence.js +129 -0
- package/dist/client/tokens/cs-token.js +50 -0
- package/dist/client/tokens/tc-token.js +25 -0
- package/dist/crypto/core/index.js +5 -2
- package/dist/crypto/core/keys.js +4 -4
- package/dist/crypto/core/nonce.js +2 -0
- package/dist/crypto/core/primitives.js +0 -8
- package/dist/crypto/core/random.js +24 -8
- package/dist/crypto/core/xeddsa.js +57 -0
- package/dist/crypto/curves/X25519.js +43 -6
- package/dist/crypto/curves/constants.js +2 -1
- package/dist/crypto/index.js +3 -0
- package/dist/crypto/math/constants.js +13 -36
- package/dist/crypto/math/edwards.js +171 -44
- package/dist/crypto/math/fe.js +706 -0
- package/dist/crypto/math/mod.js +10 -3
- package/dist/esm/appstate/WaAppStateCrypto.js +40 -32
- package/dist/esm/appstate/WaAppStateSyncClient.js +206 -124
- package/dist/esm/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/esm/appstate/index.js +2 -2
- package/dist/esm/appstate/{WaAppStateSyncResponseParser.js → response-parser.js} +1 -1
- package/dist/esm/appstate/utils.js +2 -5
- package/dist/esm/auth/WaAuthClient.js +52 -54
- package/dist/esm/auth/credentials-flow.js +190 -0
- package/dist/esm/auth/index.js +0 -2
- package/dist/esm/auth/pairing/WaPairingFlow.js +39 -32
- package/dist/esm/auth/pairing/{WaPairingCodeCrypto.js → pairing-code-crypto.js} +26 -10
- package/dist/esm/client/WaClient.js +339 -175
- package/dist/esm/client/WaClientFactory.js +401 -68
- package/dist/esm/client/connection/WaConnectionManager.js +23 -11
- package/dist/esm/client/coordinators/WaAbPropsCoordinator.js +137 -0
- package/dist/esm/client/coordinators/WaBusinessCoordinator.js +229 -0
- package/dist/esm/client/coordinators/WaEmailCoordinator.js +60 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +11 -7
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +36 -10
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +337 -114
- package/dist/esm/client/coordinators/WaOfflineResumeCoordinator.js +110 -0
- package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +97 -36
- package/dist/esm/client/coordinators/WaPrivacyCoordinator.js +131 -0
- package/dist/esm/client/coordinators/WaProfileCoordinator.js +211 -0
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +186 -32
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +19 -12
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +180 -0
- package/dist/esm/client/dirty.js +41 -21
- package/dist/esm/client/events/abprops.js +40 -0
- package/dist/esm/client/events/devices.js +68 -0
- package/dist/esm/client/events/group.js +3 -11
- package/dist/esm/client/events/identity.js +19 -0
- package/dist/esm/client/events/privacy-token.js +35 -0
- package/dist/esm/client/events/registration.js +39 -0
- package/dist/esm/client/history-sync.js +50 -9
- package/dist/esm/client/incoming.js +74 -8
- package/dist/esm/client/mailbox.js +40 -23
- package/dist/esm/client/media.js +234 -0
- package/dist/esm/client/messages.js +244 -91
- package/dist/esm/client/messaging/fanout.js +22 -12
- package/dist/esm/client/messaging/participants.js +6 -4
- package/dist/esm/client/persistence/WriteBehindPersistence.js +125 -0
- package/dist/esm/client/tokens/cs-token.js +46 -0
- package/dist/esm/client/tokens/tc-token.js +18 -0
- package/dist/esm/crypto/core/index.js +3 -2
- package/dist/esm/crypto/core/keys.js +1 -1
- package/dist/esm/crypto/core/nonce.js +2 -0
- package/dist/esm/crypto/core/primitives.js +0 -7
- package/dist/esm/crypto/core/random.js +23 -7
- package/dist/esm/crypto/core/xeddsa.js +53 -0
- package/dist/esm/crypto/curves/X25519.js +45 -8
- package/dist/esm/crypto/curves/constants.js +1 -0
- package/dist/esm/crypto/index.js +1 -0
- package/dist/esm/crypto/math/constants.js +12 -35
- package/dist/esm/crypto/math/edwards.js +174 -47
- package/dist/esm/crypto/math/fe.js +691 -0
- package/dist/esm/crypto/math/mod.js +10 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/infra/perf/BackgroundQueue.js +478 -0
- package/dist/esm/infra/perf/BoundedTaskQueue.js +3 -1
- package/dist/esm/infra/perf/PromiseDedup.js +20 -0
- package/dist/esm/infra/perf/SharedExclusiveGate.js +109 -0
- package/dist/esm/infra/perf/StoreLock.js +80 -0
- package/dist/esm/media/WaMediaCrypto.js +332 -55
- package/dist/esm/media/WaMediaTransferClient.js +69 -220
- package/dist/esm/media/constants.js +4 -1
- package/dist/esm/media/processor.js +1 -0
- package/dist/esm/message/WaMessageClient.js +26 -19
- package/dist/esm/message/addon-crypto.js +130 -3
- package/dist/esm/message/content.js +206 -14
- package/dist/esm/message/icdc.js +76 -0
- package/dist/esm/message/incoming.js +38 -24
- package/dist/esm/message/phash.js +35 -13
- package/dist/esm/message/reporting-token.js +17 -30
- package/dist/esm/message/use-case-secret.js +1 -1
- package/dist/esm/protocol/abprops.js +159 -0
- package/dist/esm/protocol/appstate.js +9 -40
- package/dist/esm/protocol/browser.js +24 -18
- package/dist/esm/protocol/constants.js +8 -4
- package/dist/esm/protocol/defaults.js +6 -0
- package/dist/esm/protocol/email.js +30 -0
- package/dist/esm/protocol/index.js +1 -2
- package/dist/esm/protocol/jid.js +142 -39
- package/dist/esm/protocol/message.js +61 -1
- package/dist/esm/protocol/nodes.js +8 -2
- package/dist/esm/protocol/notification.js +9 -1
- package/dist/esm/protocol/privacy-token.js +17 -0
- package/dist/esm/protocol/privacy.js +55 -0
- package/dist/esm/protocol/stream.js +26 -1
- package/dist/esm/retry/codec.js +216 -0
- package/dist/esm/retry/constants.js +1 -1
- package/dist/esm/retry/index.js +2 -2
- package/dist/esm/retry/parse.js +50 -30
- package/dist/esm/retry/reason.js +1 -1
- package/dist/esm/retry/replay.js +11 -7
- package/dist/esm/retry/tracker.js +50 -12
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +52 -32
- package/dist/esm/signal/api/SignalDigestSyncApi.js +21 -15
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +30 -15
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +19 -8
- package/dist/esm/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/esm/signal/api/SignalSessionSyncApi.js +17 -8
- package/dist/esm/signal/api/result-map.js +10 -0
- package/dist/esm/signal/constants.js +0 -4
- package/dist/esm/signal/crypto/WaAdvSignature.js +5 -45
- package/dist/esm/signal/crypto/constants.js +0 -4
- package/dist/esm/signal/{store/sqlite.js → encoding.js} +40 -29
- package/dist/esm/signal/group/SenderKeyChain.js +3 -3
- package/dist/esm/signal/group/SenderKeyCodec.js +8 -8
- package/dist/esm/signal/group/SenderKeyManager.js +131 -109
- package/dist/esm/signal/index.js +1 -0
- package/dist/esm/signal/registration/keygen.js +8 -5
- package/dist/esm/signal/registration/utils.js +3 -2
- package/dist/esm/signal/session/SignalProtocol.js +158 -81
- package/dist/esm/signal/session/SignalRatchet.js +21 -10
- package/dist/esm/signal/session/SignalSerializer.js +5 -6
- package/dist/esm/signal/session/SignalSession.js +11 -9
- package/dist/esm/signal/session/resolver.js +140 -105
- package/dist/esm/store/contracts/identity.store.js +1 -0
- package/dist/esm/store/contracts/message-secret.store.js +1 -0
- package/dist/esm/store/contracts/pre-key.store.js +1 -0
- package/dist/esm/store/contracts/privacy-token.store.js +1 -0
- package/dist/esm/store/contracts/session.store.js +1 -0
- package/dist/esm/store/createStore.js +143 -193
- package/dist/esm/store/index.js +5 -10
- package/dist/esm/store/locks/appstate.lock.js +26 -0
- package/dist/esm/store/locks/auth.lock.js +15 -0
- package/dist/esm/store/locks/contact.lock.js +20 -0
- package/dist/esm/store/locks/device-list.lock.js +20 -0
- package/dist/esm/store/locks/identity.lock.js +16 -0
- package/dist/esm/store/locks/message-secret.lock.js +17 -0
- package/dist/esm/store/locks/message.lock.js +21 -0
- package/dist/esm/store/locks/participants.lock.js +20 -0
- package/dist/esm/store/locks/pre-key.lock.js +27 -0
- package/dist/esm/store/locks/privacy-token.lock.js +18 -0
- package/dist/esm/store/locks/retry.lock.js +29 -0
- package/dist/esm/store/locks/sender-key.lock.js +52 -0
- package/dist/esm/store/locks/session.lock.js +19 -0
- package/dist/esm/store/locks/signal.lock.js +39 -0
- package/dist/esm/store/locks/thread.lock.js +21 -0
- package/dist/esm/store/noop.store.js +21 -1
- package/dist/esm/store/providers/memory/appstate.store.js +22 -24
- package/dist/esm/store/providers/memory/device-list.store.js +13 -5
- package/dist/esm/store/providers/memory/identity.store.js +31 -0
- package/dist/esm/store/providers/memory/message-secret.store.js +81 -0
- package/dist/esm/store/providers/memory/participants.store.js +3 -0
- package/dist/esm/store/providers/memory/pre-key.store.js +97 -0
- package/dist/esm/store/providers/memory/privacy-token.store.js +43 -0
- package/dist/esm/store/providers/memory/retry.store.js +99 -10
- package/dist/esm/store/providers/memory/sender-key.store.js +6 -1
- package/dist/esm/store/providers/memory/session.store.js +45 -0
- package/dist/esm/store/providers/memory/signal.store.js +1 -147
- package/dist/esm/transport/WaComms.js +7 -4
- package/dist/esm/transport/WaWebSocket.js +9 -7
- package/dist/esm/transport/binary/constants.js +0 -30
- package/dist/esm/transport/binary/decoder.js +4 -4
- package/dist/esm/transport/binary/encoder.js +8 -15
- package/dist/esm/transport/binary/index.js +0 -1
- package/dist/esm/transport/index.js +6 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +17 -8
- package/dist/esm/transport/node/WaMobileTcpSocket.js +114 -0
- package/dist/esm/transport/node/WaNodeOrchestrator.js +37 -22
- package/dist/esm/transport/node/builders/abprops.js +20 -0
- package/dist/esm/transport/node/builders/business.js +129 -0
- package/dist/esm/transport/node/builders/device.js +11 -0
- package/dist/esm/transport/node/builders/email.js +65 -0
- package/dist/esm/transport/node/builders/global.js +370 -0
- package/dist/esm/transport/node/builders/message.js +63 -239
- package/dist/esm/transport/node/builders/offline.js +14 -0
- package/dist/esm/transport/node/builders/pairing.js +0 -24
- package/dist/esm/transport/node/builders/prekeys.js +37 -40
- package/dist/esm/transport/node/builders/presence.js +13 -0
- package/dist/esm/transport/node/builders/privacy-token.js +37 -0
- package/dist/esm/transport/node/builders/privacy.js +48 -0
- package/dist/esm/transport/node/builders/profile.js +70 -0
- package/dist/esm/transport/node/builders/retry.js +11 -23
- package/dist/esm/transport/node/builders/usync.js +6 -2
- package/dist/esm/transport/node/helpers.js +43 -1
- package/dist/esm/transport/node/mex/argo-decoder.js +152 -0
- package/dist/esm/transport/node/mex/client.js +83 -0
- package/dist/esm/transport/node/mex/persist-ids.js +10 -0
- package/dist/esm/transport/node/usync.js +3 -33
- package/dist/esm/transport/node/xml.js +35 -14
- package/dist/esm/transport/noise/WaClientPayload.js +24 -19
- package/dist/esm/transport/noise/WaFrameCodec.js +2 -2
- package/dist/esm/transport/noise/WaMobileClientPayload.js +53 -0
- package/dist/esm/transport/noise/WaNoiseCert.js +9 -27
- package/dist/esm/transport/noise/WaNoiseSession.js +76 -34
- package/dist/esm/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/esm/transport/stream/parse.js +8 -4
- package/dist/esm/util/bytes.js +22 -18
- package/dist/esm/util/index.js +5 -0
- package/dist/esm/util/primitives.js +3 -2
- package/dist/index.js +7 -1
- package/dist/infra/perf/BackgroundQueue.js +482 -0
- package/dist/infra/perf/BoundedTaskQueue.js +3 -1
- package/dist/infra/perf/PromiseDedup.js +24 -0
- package/dist/infra/perf/SharedExclusiveGate.js +113 -0
- package/dist/infra/perf/StoreLock.js +84 -0
- package/dist/media/WaMediaCrypto.js +328 -51
- package/dist/media/WaMediaTransferClient.js +72 -253
- package/dist/media/constants.js +5 -2
- package/dist/media/processor.js +2 -0
- package/dist/message/WaMessageClient.js +26 -19
- package/dist/message/addon-crypto.js +131 -0
- package/dist/message/content.js +211 -14
- package/dist/message/icdc.js +81 -0
- package/dist/message/incoming.js +38 -24
- package/dist/message/phash.js +35 -13
- package/dist/message/reporting-token.js +16 -30
- package/dist/message/use-case-secret.js +1 -1
- package/dist/protocol/abprops.js +163 -0
- package/dist/protocol/appstate.js +10 -41
- package/dist/protocol/browser.js +25 -18
- package/dist/protocol/constants.js +33 -2
- package/dist/protocol/defaults.js +6 -0
- package/dist/protocol/email.js +33 -0
- package/dist/protocol/index.js +8 -5
- package/dist/protocol/jid.js +149 -39
- package/dist/protocol/message.js +62 -2
- package/dist/protocol/nodes.js +8 -2
- package/dist/protocol/notification.js +10 -2
- package/dist/protocol/privacy-token.js +20 -0
- package/dist/protocol/privacy.js +58 -0
- package/dist/protocol/stream.js +27 -2
- package/dist/retry/codec.js +220 -0
- package/dist/retry/constants.js +1 -1
- package/dist/retry/index.js +5 -5
- package/dist/retry/parse.js +51 -30
- package/dist/retry/reason.js +1 -1
- package/dist/retry/replay.js +10 -6
- package/dist/retry/tracker.js +50 -12
- package/dist/signal/api/SignalDeviceSyncApi.js +51 -31
- package/dist/signal/api/SignalDigestSyncApi.js +21 -15
- package/dist/signal/api/SignalIdentitySyncApi.js +29 -14
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +17 -6
- package/dist/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/signal/api/SignalSessionSyncApi.js +16 -7
- package/dist/signal/api/result-map.js +13 -0
- package/dist/signal/constants.js +1 -5
- package/dist/signal/crypto/WaAdvSignature.js +2 -44
- package/dist/signal/crypto/constants.js +1 -5
- package/dist/signal/{store/sqlite.js → encoding.js} +41 -25
- package/dist/signal/group/SenderKeyChain.js +2 -2
- package/dist/signal/group/SenderKeyCodec.js +8 -8
- package/dist/signal/group/SenderKeyManager.js +130 -108
- package/dist/signal/index.js +13 -1
- package/dist/signal/registration/keygen.js +7 -4
- package/dist/signal/registration/utils.js +3 -2
- package/dist/signal/session/SignalProtocol.js +158 -81
- package/dist/signal/session/SignalRatchet.js +19 -8
- package/dist/signal/session/SignalSerializer.js +5 -6
- package/dist/signal/session/SignalSession.js +11 -9
- package/dist/signal/session/resolver.js +138 -103
- package/dist/store/contracts/identity.store.js +2 -0
- package/dist/store/contracts/message-secret.store.js +2 -0
- package/dist/store/contracts/pre-key.store.js +2 -0
- package/dist/store/contracts/privacy-token.store.js +2 -0
- package/dist/store/contracts/session.store.js +2 -0
- package/dist/store/createStore.js +142 -192
- package/dist/store/index.js +23 -33
- package/dist/store/locks/appstate.lock.js +29 -0
- package/dist/store/locks/auth.lock.js +18 -0
- package/dist/store/locks/contact.lock.js +23 -0
- package/dist/store/locks/device-list.lock.js +23 -0
- package/dist/store/locks/identity.lock.js +19 -0
- package/dist/store/locks/message-secret.lock.js +20 -0
- package/dist/store/locks/message.lock.js +24 -0
- package/dist/store/locks/participants.lock.js +23 -0
- package/dist/store/locks/pre-key.lock.js +30 -0
- package/dist/store/locks/privacy-token.lock.js +21 -0
- package/dist/store/locks/retry.lock.js +32 -0
- package/dist/store/locks/sender-key.lock.js +55 -0
- package/dist/store/locks/session.lock.js +22 -0
- package/dist/store/locks/signal.lock.js +42 -0
- package/dist/store/locks/thread.lock.js +24 -0
- package/dist/store/noop.store.js +22 -2
- package/dist/store/providers/memory/appstate.store.js +22 -24
- package/dist/store/providers/memory/device-list.store.js +13 -5
- package/dist/store/providers/memory/identity.store.js +35 -0
- package/dist/store/providers/memory/message-secret.store.js +85 -0
- package/dist/store/providers/memory/participants.store.js +3 -0
- package/dist/store/providers/memory/pre-key.store.js +101 -0
- package/dist/store/providers/memory/privacy-token.store.js +47 -0
- package/dist/store/providers/memory/retry.store.js +98 -9
- package/dist/store/providers/memory/sender-key.store.js +6 -1
- package/dist/store/providers/memory/session.store.js +49 -0
- package/dist/store/providers/memory/signal.store.js +1 -147
- package/dist/transport/WaComms.js +7 -4
- package/dist/transport/WaWebSocket.js +9 -7
- package/dist/transport/binary/constants.js +1 -31
- package/dist/transport/binary/decoder.js +4 -4
- package/dist/transport/binary/encoder.js +8 -15
- package/dist/transport/binary/index.js +0 -4
- package/dist/transport/index.js +17 -1
- package/dist/transport/keepalive/WaKeepAlive.js +17 -8
- package/dist/transport/node/WaMobileTcpSocket.js +118 -0
- package/dist/transport/node/WaNodeOrchestrator.js +36 -21
- package/dist/transport/node/builders/abprops.js +23 -0
- package/dist/transport/node/builders/business.js +137 -0
- package/dist/transport/node/builders/device.js +14 -0
- package/dist/transport/node/builders/email.js +72 -0
- package/dist/transport/node/builders/global.js +375 -0
- package/dist/transport/node/builders/message.js +64 -245
- package/dist/transport/node/builders/offline.js +17 -0
- package/dist/transport/node/builders/pairing.js +0 -26
- package/dist/transport/node/builders/prekeys.js +36 -39
- package/dist/transport/node/builders/presence.js +16 -0
- package/dist/transport/node/builders/privacy-token.js +42 -0
- package/dist/transport/node/builders/privacy.js +55 -0
- package/dist/transport/node/builders/profile.js +78 -0
- package/dist/transport/node/builders/retry.js +10 -22
- package/dist/transport/node/builders/usync.js +6 -2
- package/dist/transport/node/helpers.js +46 -1
- package/dist/transport/node/mex/argo-decoder.js +189 -0
- package/dist/transport/node/mex/client.js +86 -0
- package/dist/transport/node/mex/persist-ids.js +13 -0
- package/dist/transport/node/usync.js +2 -32
- package/dist/transport/node/xml.js +35 -14
- package/dist/transport/noise/WaClientPayload.js +26 -21
- package/dist/transport/noise/WaFrameCodec.js +1 -1
- package/dist/transport/noise/WaMobileClientPayload.js +56 -0
- package/dist/transport/noise/WaNoiseCert.js +8 -26
- package/dist/transport/noise/WaNoiseSession.js +75 -33
- package/dist/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/transport/stream/parse.js +7 -3
- package/dist/types/appstate/WaAppStateCrypto.d.ts +11 -8
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +6 -2
- package/dist/types/appstate/encoding.d.ts +7 -0
- package/dist/types/appstate/index.d.ts +3 -3
- package/dist/types/appstate/{WaAppStateSyncResponseParser.d.ts → response-parser.d.ts} +1 -1
- package/dist/types/appstate/types.d.ts +1 -1
- package/dist/types/appstate/utils.d.ts +0 -2
- package/dist/types/auth/WaAuthClient.d.ts +9 -3
- package/dist/types/auth/credentials-flow.d.ts +20 -0
- package/dist/types/auth/index.d.ts +0 -2
- package/dist/types/auth/pairing/WaPairingFlow.d.ts +3 -2
- package/dist/types/auth/pairing/{WaPairingCodeCrypto.d.ts → pairing-code-crypto.d.ts} +6 -1
- package/dist/types/auth/types.d.ts +41 -0
- package/dist/types/client/WaClient.d.ts +44 -18
- package/dist/types/client/WaClientFactory.d.ts +22 -8
- package/dist/types/client/connection/WaConnectionManager.d.ts +2 -0
- package/dist/types/client/coordinators/WaAbPropsCoordinator.d.ts +26 -0
- package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +57 -0
- package/dist/types/client/coordinators/WaEmailCoordinator.d.ts +24 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +9 -2
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +29 -2
- package/dist/types/client/coordinators/WaOfflineResumeCoordinator.d.ts +31 -0
- package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +16 -1
- package/dist/types/client/coordinators/WaPrivacyCoordinator.d.ts +26 -0
- package/dist/types/client/coordinators/WaProfileCoordinator.d.ts +38 -0
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +12 -0
- package/dist/types/client/coordinators/WaStreamControlCoordinator.d.ts +3 -2
- package/dist/types/client/coordinators/WaTrustedContactTokenCoordinator.d.ts +55 -0
- package/dist/types/client/dirty.d.ts +3 -1
- package/dist/types/client/events/abprops.d.ts +14 -0
- package/dist/types/client/events/devices.d.ts +20 -0
- package/dist/types/client/events/identity.d.ts +9 -0
- package/dist/types/client/events/privacy-token.d.ts +7 -0
- package/dist/types/client/events/registration.d.ts +17 -0
- package/dist/types/client/history-sync.d.ts +9 -6
- package/dist/types/client/incoming.d.ts +9 -2
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/mailbox.d.ts +5 -5
- package/dist/types/client/media.d.ts +31 -0
- package/dist/types/client/messages.d.ts +3 -2
- package/dist/types/client/persistence/WriteBehindPersistence.d.ts +34 -0
- package/dist/types/client/tokens/cs-token.d.ts +10 -0
- package/dist/types/client/tokens/tc-token.d.ts +5 -0
- package/dist/types/client/types.d.ts +151 -4
- package/dist/types/crypto/core/index.d.ts +3 -2
- package/dist/types/crypto/core/nonce.d.ts +2 -0
- package/dist/types/crypto/core/primitives.d.ts +1 -2
- package/dist/types/crypto/core/random.d.ts +2 -1
- package/dist/types/crypto/core/xeddsa.d.ts +2 -0
- package/dist/types/crypto/curves/constants.d.ts +1 -0
- package/dist/types/crypto/index.d.ts +2 -0
- package/dist/types/crypto/math/constants.d.ts +4 -2
- package/dist/types/crypto/math/fe.d.ts +30 -0
- package/dist/types/crypto/math/mod.d.ts +0 -2
- package/dist/types/crypto/math/types.d.ts +11 -4
- package/dist/types/index.d.ts +6 -3
- package/dist/types/infra/log/ConsoleLogger.d.ts +1 -1
- package/dist/types/infra/log/PinoLogger.d.ts +1 -1
- package/dist/types/infra/perf/BackgroundQueue.d.ts +58 -0
- package/dist/types/infra/perf/PromiseDedup.d.ts +4 -0
- package/dist/types/infra/perf/SharedExclusiveGate.d.ts +17 -0
- package/dist/types/infra/perf/StoreLock.d.ts +11 -0
- package/dist/types/media/WaMediaCrypto.d.ts +16 -6
- package/dist/types/media/WaMediaTransferClient.d.ts +6 -23
- package/dist/types/media/constants.d.ts +3 -1
- package/dist/types/media/index.d.ts +2 -1
- package/dist/types/media/processor.d.ts +28 -0
- package/dist/types/media/types.d.ts +19 -5
- package/dist/types/message/addon-crypto.d.ts +34 -3
- package/dist/types/message/content.d.ts +11 -1
- package/dist/types/message/icdc.d.ts +13 -0
- package/dist/types/message/reporting-token.d.ts +0 -1
- package/dist/types/message/types.d.ts +42 -11
- package/dist/types/protocol/abprops.d.ts +142 -0
- package/dist/types/protocol/appstate.d.ts +0 -11
- package/dist/types/protocol/browser.d.ts +1 -0
- package/dist/types/protocol/constants.d.ts +12 -4
- package/dist/types/protocol/defaults.d.ts +6 -0
- package/dist/types/protocol/email.d.ts +32 -0
- package/dist/types/protocol/index.d.ts +1 -2
- package/dist/types/protocol/jid.d.ts +20 -2
- package/dist/types/protocol/message.d.ts +60 -0
- package/dist/types/protocol/nodes.d.ts +6 -0
- package/dist/types/protocol/notification.d.ts +8 -0
- package/dist/types/protocol/privacy-token.d.ts +17 -0
- package/dist/types/protocol/privacy.d.ts +75 -0
- package/dist/types/protocol/stream.d.ts +31 -0
- package/dist/types/retry/codec.d.ts +3 -0
- package/dist/types/retry/index.d.ts +3 -3
- package/dist/types/retry/parse.d.ts +5 -2
- package/dist/types/retry/reason.d.ts +1 -1
- package/dist/types/retry/tracker.d.ts +1 -0
- package/dist/types/retry/types.d.ts +6 -1
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +2 -1
- package/dist/types/signal/api/SignalDigestSyncApi.d.ts +9 -0
- package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +5 -3
- package/dist/types/signal/api/SignalRotateKeyApi.d.ts +4 -5
- package/dist/types/signal/api/SignalSessionSyncApi.d.ts +8 -6
- package/dist/types/signal/api/result-map.d.ts +1 -0
- package/dist/types/signal/constants.d.ts +0 -3
- package/dist/types/signal/crypto/WaAdvSignature.d.ts +0 -2
- package/dist/types/signal/crypto/constants.d.ts +0 -1
- package/dist/types/signal/{store/sqlite.d.ts → encoding.d.ts} +9 -3
- package/dist/types/signal/group/SenderKeyChain.d.ts +1 -1
- package/dist/types/signal/group/SenderKeyManager.d.ts +17 -7
- package/dist/types/signal/index.d.ts +2 -0
- package/dist/types/signal/registration/utils.d.ts +2 -1
- package/dist/types/signal/session/SignalProtocol.d.ts +21 -6
- package/dist/types/signal/session/SignalSerializer.d.ts +2 -1
- package/dist/types/signal/session/resolver.d.ts +11 -4
- package/dist/types/signal/types.d.ts +16 -4
- package/dist/types/store/contracts/appstate.store.d.ts +1 -1
- package/dist/types/store/contracts/identity.store.d.ts +11 -0
- package/dist/types/store/contracts/message-secret.store.d.ts +16 -0
- package/dist/types/store/contracts/pre-key.store.d.ts +13 -0
- package/dist/types/store/contracts/privacy-token.store.d.ts +16 -0
- package/dist/types/store/contracts/retry.store.d.ts +7 -0
- package/dist/types/store/contracts/session.store.d.ts +14 -0
- package/dist/types/store/contracts/signal.store.d.ts +1 -27
- package/dist/types/store/createStore.d.ts +1 -1
- package/dist/types/store/index.d.ts +12 -12
- package/dist/types/store/locks/appstate.lock.d.ts +3 -0
- package/dist/types/store/locks/auth.lock.d.ts +3 -0
- package/dist/types/store/locks/contact.lock.d.ts +3 -0
- package/dist/types/store/locks/device-list.lock.d.ts +2 -0
- package/dist/types/store/locks/identity.lock.d.ts +3 -0
- package/dist/types/store/locks/message-secret.lock.d.ts +3 -0
- package/dist/types/store/locks/message.lock.d.ts +3 -0
- package/dist/types/store/locks/participants.lock.d.ts +2 -0
- package/dist/types/store/locks/pre-key.lock.d.ts +3 -0
- package/dist/types/store/locks/privacy-token.lock.d.ts +2 -0
- package/dist/types/store/locks/retry.lock.d.ts +2 -0
- package/dist/types/store/locks/sender-key.lock.d.ts +3 -0
- package/dist/types/store/locks/session.lock.d.ts +3 -0
- package/dist/types/store/locks/signal.lock.d.ts +3 -0
- package/dist/types/store/locks/thread.lock.d.ts +3 -0
- package/dist/types/store/noop.store.d.ts +4 -0
- package/dist/types/store/providers/memory/appstate.store.d.ts +1 -1
- package/dist/types/store/providers/memory/identity.store.d.ts +18 -0
- package/dist/types/store/providers/memory/message-secret.store.d.ts +21 -0
- package/dist/types/store/providers/memory/pre-key.store.d.ts +23 -0
- package/dist/types/store/providers/memory/privacy-token.store.d.ts +13 -0
- package/dist/types/store/providers/memory/retry.store.d.ts +15 -1
- package/dist/types/store/providers/memory/session.store.d.ts +21 -0
- package/dist/types/store/providers/memory/signal.store.d.ts +2 -43
- package/dist/types/store/providers/memory/thread.store.d.ts +1 -1
- package/dist/types/store/types.d.ts +69 -61
- package/dist/types/transport/WaWebSocket.d.ts +1 -1
- package/dist/types/transport/binary/constants.d.ts +0 -30
- package/dist/types/transport/binary/index.d.ts +0 -1
- package/dist/types/transport/index.d.ts +8 -1
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +4 -1
- package/dist/types/transport/node/WaMobileTcpSocket.d.ts +18 -0
- package/dist/types/transport/node/WaNodeOrchestrator.d.ts +9 -6
- package/dist/types/transport/node/builders/abprops.d.ts +5 -0
- package/dist/types/transport/node/builders/business.d.ts +29 -0
- package/dist/types/transport/node/builders/device.d.ts +2 -0
- package/dist/types/transport/node/builders/email.d.ts +11 -0
- package/dist/types/transport/node/builders/global.d.ts +102 -0
- package/dist/types/transport/node/builders/message.d.ts +8 -7
- package/dist/types/transport/node/builders/offline.d.ts +2 -0
- package/dist/types/transport/node/builders/pairing.d.ts +0 -2
- package/dist/types/transport/node/builders/prekeys.d.ts +4 -3
- package/dist/types/transport/node/builders/presence.d.ts +6 -0
- package/dist/types/transport/node/builders/privacy-token.d.ts +9 -0
- package/dist/types/transport/node/builders/privacy.d.ts +7 -0
- package/dist/types/transport/node/builders/profile.d.ts +8 -0
- package/dist/types/transport/node/builders/retry.d.ts +0 -1
- package/dist/types/transport/node/helpers.d.ts +8 -0
- package/dist/types/transport/node/mex/argo-decoder.d.ts +11 -0
- package/dist/types/transport/node/mex/client.d.ts +18 -0
- package/dist/types/transport/node/mex/persist-ids.d.ts +14 -0
- package/dist/types/transport/noise/WaMobileClientPayload.d.ts +29 -0
- package/dist/types/transport/noise/WaNoiseCert.d.ts +7 -1
- package/dist/types/transport/noise/WaNoiseSession.d.ts +4 -2
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +4 -2
- package/dist/types/transport/types.d.ts +8 -0
- package/dist/types/util/bytes.d.ts +1 -1
- package/dist/types/util/index.d.ts +5 -0
- package/dist/types/util/primitives.d.ts +0 -1
- package/dist/util/bytes.js +22 -18
- package/dist/util/index.js +23 -0
- package/dist/util/primitives.js +2 -2
- package/package.json +34 -10
- package/proto/index.js +1 -1
- package/dist/auth/flow/WaAuthCredentialsFlow.js +0 -130
- package/dist/auth/pairing/constants.js +0 -5
- package/dist/client/connection/WaKeyShareCoordinator.js +0 -63
- package/dist/crypto/core/constants.js +0 -4
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +0 -125
- package/dist/esm/auth/pairing/constants.js +0 -2
- package/dist/esm/client/connection/WaKeyShareCoordinator.js +0 -59
- package/dist/esm/crypto/core/constants.js +0 -1
- package/dist/esm/retry/outbound.js +0 -82
- package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +0 -37
- package/dist/esm/store/providers/sqlite/appstate.store.js +0 -250
- package/dist/esm/store/providers/sqlite/auth.store.js +0 -176
- package/dist/esm/store/providers/sqlite/connection.js +0 -245
- package/dist/esm/store/providers/sqlite/contact.store.js +0 -74
- package/dist/esm/store/providers/sqlite/device-list.store.js +0 -127
- package/dist/esm/store/providers/sqlite/message.store.js +0 -132
- package/dist/esm/store/providers/sqlite/migrations.js +0 -347
- package/dist/esm/store/providers/sqlite/participants.store.js +0 -77
- package/dist/esm/store/providers/sqlite/retry.store.js +0 -141
- package/dist/esm/store/providers/sqlite/sender-key.store.js +0 -198
- package/dist/esm/store/providers/sqlite/signal.store.js +0 -435
- package/dist/esm/store/providers/sqlite/table-names.js +0 -107
- package/dist/esm/store/providers/sqlite/thread.store.js +0 -85
- package/dist/esm/transport/node/builders/index.js +0 -8
- package/dist/retry/outbound.js +0 -87
- package/dist/store/providers/sqlite/BaseSqliteStore.js +0 -41
- package/dist/store/providers/sqlite/appstate.store.js +0 -254
- package/dist/store/providers/sqlite/auth.store.js +0 -180
- package/dist/store/providers/sqlite/connection.js +0 -281
- package/dist/store/providers/sqlite/contact.store.js +0 -78
- package/dist/store/providers/sqlite/device-list.store.js +0 -131
- package/dist/store/providers/sqlite/message.store.js +0 -136
- package/dist/store/providers/sqlite/migrations.js +0 -350
- package/dist/store/providers/sqlite/participants.store.js +0 -81
- package/dist/store/providers/sqlite/retry.store.js +0 -145
- package/dist/store/providers/sqlite/sender-key.store.js +0 -202
- package/dist/store/providers/sqlite/signal.store.js +0 -439
- package/dist/store/providers/sqlite/table-names.js +0 -113
- package/dist/store/providers/sqlite/thread.store.js +0 -89
- package/dist/transport/node/builders/index.js +0 -42
- package/dist/types/appstate/store/sqlite.d.ts +0 -7
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +0 -14
- package/dist/types/auth/pairing/constants.d.ts +0 -2
- package/dist/types/client/connection/WaKeyShareCoordinator.d.ts +0 -14
- package/dist/types/crypto/core/constants.d.ts +0 -1
- package/dist/types/retry/outbound.d.ts +0 -4
- package/dist/types/store/providers/sqlite/BaseSqliteStore.d.ts +0 -12
- package/dist/types/store/providers/sqlite/appstate.store.d.ts +0 -17
- package/dist/types/store/providers/sqlite/auth.store.d.ts +0 -10
- package/dist/types/store/providers/sqlite/connection.d.ts +0 -10
- package/dist/types/store/providers/sqlite/contact.store.d.ts +0 -12
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -15
- package/dist/types/store/providers/sqlite/message.store.d.ts +0 -13
- package/dist/types/store/providers/sqlite/migrations.d.ts +0 -3
- package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -12
- package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -15
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -24
- package/dist/types/store/providers/sqlite/signal.store.d.ts +0 -53
- package/dist/types/store/providers/sqlite/table-names.d.ts +0 -5
- package/dist/types/store/providers/sqlite/thread.store.d.ts +0 -13
- package/dist/types/transport/node/builders/index.d.ts +0 -8
- /package/dist/appstate/{WaAppStateSyncResponseParser.js → response-parser.js} +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { WaAuthClientOptions, WaAuthCredentials, WaAuthSocketOptions, WaSuccessPersistAttributes } from './types';
|
|
2
2
|
import type { Logger } from '../infra/log/types';
|
|
3
3
|
import type { WaAuthStore } from '../store/contracts/auth.store';
|
|
4
|
+
import type { WaPreKeyStore } from '../store/contracts/pre-key.store';
|
|
4
5
|
import type { WaSignalStore } from '../store/contracts/signal.store';
|
|
5
|
-
import type { BinaryNode } from '../transport/types';
|
|
6
|
+
import type { BinaryNode, WaNoiseTrustedRootCa } from '../transport/types';
|
|
6
7
|
type WaAuthClientDeps = Readonly<{
|
|
7
8
|
readonly logger: Logger;
|
|
8
9
|
readonly authStore: WaAuthStore;
|
|
9
10
|
readonly signalStore: WaSignalStore;
|
|
11
|
+
readonly preKeyStore: WaPreKeyStore;
|
|
10
12
|
readonly socket: {
|
|
11
13
|
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
12
14
|
readonly query: (node: BinaryNode, timeoutMs?: number) => Promise<BinaryNode>;
|
|
@@ -25,6 +27,7 @@ export declare class WaAuthClient {
|
|
|
25
27
|
private readonly callbacks;
|
|
26
28
|
private readonly authStore;
|
|
27
29
|
private readonly signalStore;
|
|
30
|
+
private readonly preKeyStore;
|
|
28
31
|
private readonly qrFlow;
|
|
29
32
|
private readonly pairingFlow;
|
|
30
33
|
private credentials;
|
|
@@ -37,7 +40,10 @@ export declare class WaAuthClient {
|
|
|
37
40
|
};
|
|
38
41
|
getCurrentCredentials(): WaAuthCredentials | null;
|
|
39
42
|
loadOrCreateCredentials(): Promise<WaAuthCredentials>;
|
|
40
|
-
buildCommsConfig(socketOptions: WaAuthSocketOptions
|
|
43
|
+
buildCommsConfig(socketOptions: WaAuthSocketOptions, overrides?: {
|
|
44
|
+
readonly noiseTrustedRootCa?: WaNoiseTrustedRootCa;
|
|
45
|
+
readonly disableNoiseCertificateChainVerification?: boolean;
|
|
46
|
+
}): import("../transport/types").WaCommsConfig;
|
|
41
47
|
clearTransientState(): Promise<void>;
|
|
42
48
|
clearStoredCredentials(): Promise<void>;
|
|
43
49
|
persistServerStaticKey(serverStaticKey: Uint8Array): Promise<void>;
|
|
@@ -45,7 +51,7 @@ export declare class WaAuthClient {
|
|
|
45
51
|
persistRoutingInfo(routingInfo: Uint8Array): Promise<void>;
|
|
46
52
|
clearRoutingInfo(): Promise<WaAuthCredentials>;
|
|
47
53
|
persistSuccessAttributes(attributes: WaSuccessPersistAttributes): Promise<void>;
|
|
48
|
-
requestPairingCode(phoneNumber: string, shouldShowPushNotification?: boolean): Promise<string>;
|
|
54
|
+
requestPairingCode(phoneNumber: string, shouldShowPushNotification?: boolean, customCode?: string): Promise<string>;
|
|
49
55
|
fetchPairingCountryCodeIso(): Promise<string>;
|
|
50
56
|
handleIncomingIqSet(node: BinaryNode): Promise<boolean>;
|
|
51
57
|
handleLinkCodeNotification(node: BinaryNode): Promise<boolean>;
|
|
@@ -0,0 +1,20 @@
|
|
|
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 { WaPreKeyStore } from '../store/contracts/pre-key.store';
|
|
5
|
+
import type { WaSignalStore } from '../store/contracts/signal.store';
|
|
6
|
+
import type { WaCommsConfig, WaNoiseTrustedRootCa } from '../transport/types';
|
|
7
|
+
interface WaAuthCredentialsFlowArgs {
|
|
8
|
+
readonly logger: Logger;
|
|
9
|
+
readonly authStore: WaAuthStore;
|
|
10
|
+
readonly signalStore: WaSignalStore;
|
|
11
|
+
readonly preKeyStore: WaPreKeyStore;
|
|
12
|
+
readonly skipSignedPreKeySignatureVerification?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function loadOrCreateCredentials(args: WaAuthCredentialsFlowArgs): Promise<WaAuthCredentials>;
|
|
15
|
+
export declare function persistCredentials(args: WaAuthCredentialsFlowArgs, credentials: WaAuthCredentials): Promise<void>;
|
|
16
|
+
export declare function buildCommsConfig(logger: Logger, credentials: WaAuthCredentials, socketOptions: WaAuthSocketOptions, clientOptions: Pick<WaAuthClientOptions, 'deviceBrowser' | 'deviceOsDisplayName' | 'requireFullSync' | 'version' | 'mobileTransport'> & {
|
|
17
|
+
readonly noiseTrustedRootCa?: WaNoiseTrustedRootCa;
|
|
18
|
+
readonly disableNoiseCertificateChainVerification?: boolean;
|
|
19
|
+
}): WaCommsConfig;
|
|
20
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WaAuthCredentials } from '../types';
|
|
1
|
+
import type { WaAuthCredentials, WaAuthDangerousOptions } from '../types';
|
|
2
2
|
import type { Logger } from '../../infra/log/types';
|
|
3
3
|
import type { BinaryNode } from '../../transport/types';
|
|
4
4
|
interface WaPairingFlowOptions {
|
|
@@ -26,6 +26,7 @@ interface WaPairingFlowOptions {
|
|
|
26
26
|
readonly emitPairingRefresh: (forceManual: boolean) => void;
|
|
27
27
|
readonly emitPaired: (credentials: WaAuthCredentials) => void;
|
|
28
28
|
};
|
|
29
|
+
readonly dangerous?: WaAuthDangerousOptions;
|
|
29
30
|
}
|
|
30
31
|
export declare class WaPairingFlow {
|
|
31
32
|
private readonly opts;
|
|
@@ -33,7 +34,7 @@ export declare class WaPairingFlow {
|
|
|
33
34
|
constructor(options: WaPairingFlowOptions);
|
|
34
35
|
hasPairingSession(): boolean;
|
|
35
36
|
clearSession(): void;
|
|
36
|
-
requestPairingCode(phoneNumber: string, shouldShowPushNotification?: boolean): Promise<string>;
|
|
37
|
+
requestPairingCode(phoneNumber: string, shouldShowPushNotification?: boolean, customCode?: string): Promise<string>;
|
|
37
38
|
fetchPairingCountryCodeIso(): Promise<string>;
|
|
38
39
|
handleIncomingIqSet(node: BinaryNode): Promise<boolean>;
|
|
39
40
|
handleLinkCodeNotification(node: BinaryNode): Promise<boolean>;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { SignalKeyPair } from '../../crypto/curves/types';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const CROCKFORD_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTVWXYZ";
|
|
3
|
+
export declare const PBKDF2_ITERATIONS: number;
|
|
4
|
+
export declare function normalizeCustomPairingCode(input: string): string;
|
|
5
|
+
export declare function createCompanionHello(options?: {
|
|
6
|
+
readonly customCode?: string;
|
|
7
|
+
}): Promise<{
|
|
3
8
|
readonly pairingCode: string;
|
|
4
9
|
readonly companionEphemeralKeyPair: SignalKeyPair;
|
|
5
10
|
readonly wrappedCompanionEphemeralPub: Uint8Array;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { SignalKeyPair } from '../crypto/curves/types';
|
|
2
2
|
import type { Proto } from '..';
|
|
3
3
|
import type { RegistrationInfo, SignedPreKeyRecord } from '../signal/types';
|
|
4
|
+
import type { WaMobileTransportDeviceInfo } from '../transport/noise/WaMobileClientPayload';
|
|
4
5
|
import type { WaCommsConfig, WaProxyTransport } from '../transport/types';
|
|
6
|
+
export type { WaMobileTransportDeviceInfo } from '../transport/noise/WaMobileClientPayload';
|
|
5
7
|
export interface WaAuthCredentials {
|
|
6
8
|
readonly noiseKeyPair: SignalKeyPair;
|
|
7
9
|
readonly registrationInfo: RegistrationInfo;
|
|
@@ -21,6 +23,10 @@ export interface WaAuthCredentials {
|
|
|
21
23
|
readonly abPropsVersion?: number;
|
|
22
24
|
readonly connectionLocation?: string;
|
|
23
25
|
readonly accountCreationTs?: number;
|
|
26
|
+
readonly deviceInfo?: WaMobileTransportDeviceInfo;
|
|
27
|
+
readonly pushName?: string;
|
|
28
|
+
readonly yearClass?: number;
|
|
29
|
+
readonly memClass?: number;
|
|
24
30
|
}
|
|
25
31
|
export type WaAuthSocketOptions = Pick<WaCommsConfig, 'url' | 'urls' | 'protocols' | 'connectTimeoutMs' | 'reconnectIntervalMs' | 'timeoutIntervalMs' | 'maxReconnectAttempts'> & {
|
|
26
32
|
readonly proxy?: {
|
|
@@ -32,6 +38,41 @@ export interface WaAuthClientOptions {
|
|
|
32
38
|
readonly devicePlatform?: string;
|
|
33
39
|
readonly deviceOsDisplayName?: string;
|
|
34
40
|
readonly requireFullSync?: boolean;
|
|
41
|
+
readonly version?: string;
|
|
42
|
+
readonly dangerous?: WaAuthDangerousOptions;
|
|
43
|
+
readonly mobileTransport?: WaMobileTransportOptions;
|
|
44
|
+
}
|
|
45
|
+
export interface WaMobileTransportOptions {
|
|
46
|
+
readonly deviceInfo: WaMobileTransportDeviceInfo;
|
|
47
|
+
readonly tcpUrl?: string;
|
|
48
|
+
readonly passive?: boolean;
|
|
49
|
+
readonly pushName?: string;
|
|
50
|
+
readonly yearClass?: number;
|
|
51
|
+
readonly memClass?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface WaAuthDangerousOptions {
|
|
54
|
+
/**
|
|
55
|
+
* Skip the noise certificate-chain verification during the handshake.
|
|
56
|
+
* The server's static key will be accepted without proof that it was
|
|
57
|
+
* issued by a trusted root.
|
|
58
|
+
*/
|
|
59
|
+
readonly disableNoiseCertificateChainVerification?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Skip the XEdDSA account-signature check on the `pair-success` ADV
|
|
62
|
+
* identity payload, which normally proves the primary device signed off
|
|
63
|
+
* on this companion.
|
|
64
|
+
*/
|
|
65
|
+
readonly disableAdvSignatureVerification?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Skip the HMAC check on the `pair-success` stanza that ties the ADV
|
|
68
|
+
* payload to the shared pairing secret.
|
|
69
|
+
*/
|
|
70
|
+
readonly disablePairSuccessHmacVerification?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Skip the XEdDSA signature check on the locally stored signed pre-key
|
|
73
|
+
* during credential load. Corrupt or forged credentials will be accepted.
|
|
74
|
+
*/
|
|
75
|
+
readonly disableSignedPreKeySignatureVerification?: boolean;
|
|
35
76
|
}
|
|
36
77
|
export interface WaSuccessPersistAttributes {
|
|
37
78
|
readonly meLid?: string;
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
-
import type { WaAppStateStoreData, WaAppStateSyncResult } from '../appstate/types';
|
|
3
|
-
import type { WaAppStateSyncOptions } from '../appstate/types';
|
|
2
|
+
import type { WaAppStateStoreData, WaAppStateSyncOptions, WaAppStateSyncResult } from '../appstate/types';
|
|
4
3
|
import type { WaAppStateSyncClient } from '../appstate/WaAppStateSyncClient';
|
|
4
|
+
import type { WaAppStateMutationCoordinator } from './coordinators/WaAppStateMutationCoordinator';
|
|
5
|
+
import type { WaBusinessCoordinator } from './coordinators/WaBusinessCoordinator';
|
|
6
|
+
import type { WaEmailCoordinator } from './coordinators/WaEmailCoordinator';
|
|
5
7
|
import type { WaGroupCoordinator } from './coordinators/WaGroupCoordinator';
|
|
6
8
|
import type { WaMessageDispatchCoordinator } from './coordinators/WaMessageDispatchCoordinator';
|
|
7
|
-
import type {
|
|
9
|
+
import type { WaPrivacyCoordinator } from './coordinators/WaPrivacyCoordinator';
|
|
10
|
+
import type { WaProfileCoordinator } from './coordinators/WaProfileCoordinator';
|
|
11
|
+
import { type WriteBehindDrainResult } from './persistence/WriteBehindPersistence';
|
|
12
|
+
import type { WaClientEventMap, WaClientOptions, WaIncomingNodeHandlerRegistration, WaSendMessageOptions } from './types';
|
|
8
13
|
import type { Logger } from '../infra/log/types';
|
|
9
14
|
import type { WaMediaTransferClient } from '../media/WaMediaTransferClient';
|
|
10
15
|
import type { WaMessagePublishResult, WaSendMessageContent, WaSendReceiptInput } from '../message/types';
|
|
11
16
|
import type { WaMessageClient } from '../message/WaMessageClient';
|
|
17
|
+
import { type WaLogoutReason } from '../protocol/stream';
|
|
12
18
|
import type { SignalLidSyncResult } from '../signal/api/SignalDeviceSyncApi';
|
|
13
19
|
import type { BinaryNode } from '../transport/types';
|
|
14
20
|
export declare class WaClient extends EventEmitter {
|
|
@@ -17,10 +23,15 @@ export declare class WaClient extends EventEmitter {
|
|
|
17
23
|
private readonly appStateStore;
|
|
18
24
|
private readonly contactStore;
|
|
19
25
|
private readonly messageStore;
|
|
26
|
+
private readonly messageSecretStore;
|
|
20
27
|
private readonly participantsStore;
|
|
28
|
+
private readonly privacyTokenStore;
|
|
21
29
|
private readonly deviceListStore;
|
|
22
30
|
private readonly retryStore;
|
|
23
31
|
private readonly signalStore;
|
|
32
|
+
private readonly preKeyStore;
|
|
33
|
+
private readonly sessionStore;
|
|
34
|
+
private readonly identityStore;
|
|
24
35
|
private readonly senderKeyStore;
|
|
25
36
|
private readonly threadStore;
|
|
26
37
|
private readonly authClient;
|
|
@@ -28,18 +39,26 @@ export declare class WaClient extends EventEmitter {
|
|
|
28
39
|
private readonly nodeTransport;
|
|
29
40
|
private readonly signalDeviceSync;
|
|
30
41
|
readonly appStateSync: WaAppStateSyncClient;
|
|
31
|
-
|
|
42
|
+
readonly chatCoordinator: WaAppStateMutationCoordinator;
|
|
32
43
|
private readonly incomingNode;
|
|
33
44
|
readonly mediaTransfer: WaMediaTransferClient;
|
|
34
45
|
readonly messageDispatch: WaMessageDispatchCoordinator;
|
|
35
46
|
readonly messageClient: WaMessageClient;
|
|
36
47
|
readonly groupCoordinator: WaGroupCoordinator;
|
|
48
|
+
readonly privacyCoordinator: WaPrivacyCoordinator;
|
|
49
|
+
readonly profileCoordinator: WaProfileCoordinator;
|
|
50
|
+
readonly businessCoordinator: WaBusinessCoordinator;
|
|
51
|
+
readonly emailCoordinator: WaEmailCoordinator;
|
|
37
52
|
private readonly passiveTasks;
|
|
38
53
|
private readonly keepAlive;
|
|
39
54
|
private readonly receiptQueue;
|
|
40
|
-
private readonly keyShareCoordinator;
|
|
41
55
|
private readonly connectionManager;
|
|
56
|
+
private readonly trustedContactToken;
|
|
57
|
+
private readonly writeBehind;
|
|
42
58
|
private connectPromise;
|
|
59
|
+
private acceptingIncomingEvents;
|
|
60
|
+
private activeIncomingHandlers;
|
|
61
|
+
private readonly incomingHandlersDrainedWaiters;
|
|
43
62
|
constructor(options: WaClientOptions, logger?: Logger);
|
|
44
63
|
on<K extends keyof WaClientEventMap>(event: K, listener: WaClientEventMap[K]): this;
|
|
45
64
|
on(event: string | symbol, listener: (...args: unknown[]) => void): this;
|
|
@@ -55,14 +74,16 @@ export declare class WaClient extends EventEmitter {
|
|
|
55
74
|
hasQr: boolean;
|
|
56
75
|
hasPairingCode: boolean;
|
|
57
76
|
};
|
|
58
|
-
getCredentials(): import("
|
|
77
|
+
getCredentials(): import("..").WaAuthCredentials | null;
|
|
59
78
|
getClockSkewMs(): number | null;
|
|
60
79
|
sendNode(node: BinaryNode): Promise<void>;
|
|
61
|
-
|
|
80
|
+
sendPresence(type?: 'available' | 'unavailable'): Promise<void>;
|
|
81
|
+
query(node: BinaryNode, timeoutMs?: number, options?: {
|
|
82
|
+
readonly useSystemId?: boolean;
|
|
83
|
+
}): Promise<BinaryNode>;
|
|
62
84
|
registerIncomingHandler(registration: WaIncomingNodeHandlerRegistration): () => void;
|
|
63
85
|
unregisterIncomingHandler(registration: WaIncomingNodeHandlerRegistration): boolean;
|
|
64
86
|
private bindNodeTransportEvents;
|
|
65
|
-
private getMailboxPersistenceDeps;
|
|
66
87
|
private handleIncomingMessageEvent;
|
|
67
88
|
private handleIncomingAppStateSyncKeyShare;
|
|
68
89
|
private handleIncomingAppStateSyncKeyRequest;
|
|
@@ -73,27 +94,32 @@ export declare class WaClient extends EventEmitter {
|
|
|
73
94
|
private handleIncomingFrame;
|
|
74
95
|
connect(): Promise<void>;
|
|
75
96
|
disconnect(): Promise<void>;
|
|
76
|
-
requestPairingCode(phoneNumber: string, shouldShowPushNotification?: boolean): Promise<string>;
|
|
97
|
+
requestPairingCode(phoneNumber: string, shouldShowPushNotification?: boolean, customCode?: string): Promise<string>;
|
|
77
98
|
fetchPairingCountryCodeIso(): Promise<string>;
|
|
78
99
|
getLidsByPhoneNumbers(phoneNumbers: readonly string[]): Promise<readonly SignalLidSyncResult[]>;
|
|
79
100
|
sendMessage(to: string, content: WaSendMessageContent, options?: WaSendMessageOptions): Promise<WaMessagePublishResult>;
|
|
80
101
|
syncSignalSession(jid: string, reasonIdentity?: boolean): Promise<void>;
|
|
102
|
+
get chat(): WaAppStateMutationCoordinator;
|
|
103
|
+
get group(): WaGroupCoordinator;
|
|
104
|
+
get privacy(): WaPrivacyCoordinator;
|
|
105
|
+
get profile(): WaProfileCoordinator;
|
|
106
|
+
get business(): WaBusinessCoordinator;
|
|
107
|
+
get email(): WaEmailCoordinator;
|
|
108
|
+
logout(reason?: WaLogoutReason): Promise<void>;
|
|
81
109
|
sendReceipt(input: WaSendReceiptInput): Promise<void>;
|
|
82
|
-
setChatMute(chatJid: string, muted: boolean, muteEndTimestampMs?: number): Promise<void>;
|
|
83
|
-
setChatRead(chatJid: string, read: boolean): Promise<void>;
|
|
84
|
-
setChatPin(chatJid: string, pinned: boolean): Promise<void>;
|
|
85
|
-
setChatArchive(chatJid: string, archived: boolean): Promise<void>;
|
|
86
|
-
clearChat(chatJid: string, options?: WaClearChatOptions): Promise<void>;
|
|
87
|
-
deleteChat(chatJid: string, options?: WaDeleteChatOptions): Promise<void>;
|
|
88
|
-
setChatLock(chatJid: string, locked: boolean): Promise<void>;
|
|
89
|
-
setMessageStar(message: WaAppStateMessageKey, starred: boolean): Promise<void>;
|
|
90
|
-
deleteMessageForMe(message: WaAppStateMessageKey, options?: WaDeleteMessageForMeOptions): Promise<void>;
|
|
91
110
|
flushAppStateMutations(): Promise<void>;
|
|
111
|
+
flushWriteBehind(timeoutMs?: number): Promise<WriteBehindDrainResult>;
|
|
92
112
|
exportAppState(): Promise<WaAppStateStoreData>;
|
|
93
113
|
syncAppState(options?: WaAppStateSyncOptions): Promise<WaAppStateSyncResult>;
|
|
94
114
|
private executeAppStateSync;
|
|
95
115
|
private getBlockedAppStateCollections;
|
|
96
116
|
private emitChatEventsFromAppStateSyncResult;
|
|
117
|
+
private handleNctSaltMutation;
|
|
97
118
|
private clearStoredState;
|
|
119
|
+
private tryDecryptAddon;
|
|
120
|
+
private tryEnterIncomingHandler;
|
|
121
|
+
private leaveIncomingHandler;
|
|
122
|
+
private pauseIncomingEventsAndWaitDrain;
|
|
123
|
+
private notifyIncomingHandlersDrained;
|
|
98
124
|
private handleError;
|
|
99
125
|
}
|
|
@@ -2,16 +2,21 @@ import type { WaAppStateSyncOptions, WaAppStateSyncResult } from '../appstate/ty
|
|
|
2
2
|
import { WaAppStateSyncClient } from '../appstate/WaAppStateSyncClient';
|
|
3
3
|
import { WaAuthClient } from '../auth/WaAuthClient';
|
|
4
4
|
import { WaConnectionManager } from './connection/WaConnectionManager';
|
|
5
|
-
import { WaKeyShareCoordinator } from './connection/WaKeyShareCoordinator';
|
|
6
5
|
import { WaReceiptQueue } from './connection/WaReceiptQueue';
|
|
6
|
+
import { WaAbPropsCoordinator } from './coordinators/WaAbPropsCoordinator';
|
|
7
7
|
import { WaAppStateMutationCoordinator } from './coordinators/WaAppStateMutationCoordinator';
|
|
8
|
+
import { type WaBusinessCoordinator } from './coordinators/WaBusinessCoordinator';
|
|
9
|
+
import { type WaEmailCoordinator } from './coordinators/WaEmailCoordinator';
|
|
8
10
|
import { type WaGroupCoordinator } from './coordinators/WaGroupCoordinator';
|
|
9
11
|
import { WaIncomingNodeCoordinator } from './coordinators/WaIncomingNodeCoordinator';
|
|
10
12
|
import { WaMessageDispatchCoordinator } from './coordinators/WaMessageDispatchCoordinator';
|
|
11
13
|
import { WaPassiveTasksCoordinator } from './coordinators/WaPassiveTasksCoordinator';
|
|
14
|
+
import { type WaPrivacyCoordinator } from './coordinators/WaPrivacyCoordinator';
|
|
15
|
+
import { type WaProfileCoordinator } from './coordinators/WaProfileCoordinator';
|
|
12
16
|
import { WaRetryCoordinator } from './coordinators/WaRetryCoordinator';
|
|
13
17
|
import { type WaStreamControlHandler } from './coordinators/WaStreamControlCoordinator';
|
|
14
|
-
import {
|
|
18
|
+
import { WaTrustedContactTokenCoordinator } from './coordinators/WaTrustedContactTokenCoordinator';
|
|
19
|
+
import { type WaMediaMessageOptions } from './messages';
|
|
15
20
|
import type { WaClientEventMap, WaClientOptions, WaIncomingMessageEvent } from './types';
|
|
16
21
|
import type { Logger } from '../infra/log/types';
|
|
17
22
|
import { WaMediaTransferClient } from '../media/WaMediaTransferClient';
|
|
@@ -28,7 +33,6 @@ import { WaKeepAlive } from '../transport/keepalive/WaKeepAlive';
|
|
|
28
33
|
import { WaNodeOrchestrator } from '../transport/node/WaNodeOrchestrator';
|
|
29
34
|
import { WaNodeTransport } from '../transport/node/WaNodeTransport';
|
|
30
35
|
import type { BinaryNode } from '../transport/types';
|
|
31
|
-
type WaMediaMessageBuildOptions = Parameters<typeof buildMediaMessageContent>[0];
|
|
32
36
|
interface WaClientBase {
|
|
33
37
|
readonly options: Readonly<WaClientOptions>;
|
|
34
38
|
readonly logger: Logger;
|
|
@@ -36,8 +40,12 @@ interface WaClientBase {
|
|
|
36
40
|
}
|
|
37
41
|
interface WaClientBuildRuntime {
|
|
38
42
|
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
39
|
-
readonly query: (node: BinaryNode, timeoutMs?: number
|
|
40
|
-
|
|
43
|
+
readonly query: (node: BinaryNode, timeoutMs?: number, options?: {
|
|
44
|
+
readonly useSystemId?: boolean;
|
|
45
|
+
}) => Promise<BinaryNode>;
|
|
46
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>, options?: {
|
|
47
|
+
readonly useSystemId?: boolean;
|
|
48
|
+
}) => Promise<BinaryNode>;
|
|
41
49
|
readonly syncAppState: () => Promise<void>;
|
|
42
50
|
readonly syncAppStateWithOptions: (options?: WaAppStateSyncOptions) => Promise<WaAppStateSyncResult>;
|
|
43
51
|
readonly emitEvent: <K extends keyof WaClientEventMap>(event: K, ...args: Parameters<WaClientEventMap[K]>) => void;
|
|
@@ -45,13 +53,14 @@ interface WaClientBuildRuntime {
|
|
|
45
53
|
readonly handleError: (error: Error) => void;
|
|
46
54
|
readonly handleIncomingFrame: (frame: Uint8Array) => Promise<void>;
|
|
47
55
|
readonly clearStoredState: () => Promise<void>;
|
|
56
|
+
readonly resumeIncomingEvents: () => void;
|
|
48
57
|
}
|
|
49
58
|
interface WaClientDependencies {
|
|
50
59
|
readonly nodeTransport: WaNodeTransport;
|
|
51
60
|
readonly nodeOrchestrator: WaNodeOrchestrator;
|
|
52
61
|
readonly keepAlive: WaKeepAlive;
|
|
53
62
|
readonly mediaTransfer: WaMediaTransferClient;
|
|
54
|
-
readonly mediaMessageBuildOptions:
|
|
63
|
+
readonly mediaMessageBuildOptions: WaMediaMessageOptions;
|
|
55
64
|
readonly messageClient: WaMessageClient;
|
|
56
65
|
readonly senderKeyManager: SenderKeyManager;
|
|
57
66
|
readonly signalProtocol: SignalProtocol;
|
|
@@ -65,14 +74,19 @@ interface WaClientDependencies {
|
|
|
65
74
|
readonly messageDispatch: WaMessageDispatchCoordinator;
|
|
66
75
|
readonly retryCoordinator: WaRetryCoordinator;
|
|
67
76
|
readonly appStateSync: WaAppStateSyncClient;
|
|
68
|
-
readonly
|
|
77
|
+
readonly chatCoordinator: WaAppStateMutationCoordinator;
|
|
69
78
|
readonly streamControl: WaStreamControlHandler;
|
|
70
79
|
readonly incomingNode: WaIncomingNodeCoordinator;
|
|
71
80
|
readonly passiveTasks: WaPassiveTasksCoordinator;
|
|
72
81
|
readonly groupCoordinator: WaGroupCoordinator;
|
|
82
|
+
readonly privacyCoordinator: WaPrivacyCoordinator;
|
|
83
|
+
readonly profileCoordinator: WaProfileCoordinator;
|
|
84
|
+
readonly businessCoordinator: WaBusinessCoordinator;
|
|
85
|
+
readonly emailCoordinator: WaEmailCoordinator;
|
|
73
86
|
readonly receiptQueue: WaReceiptQueue;
|
|
74
|
-
readonly keyShareCoordinator: WaKeyShareCoordinator;
|
|
75
87
|
readonly connectionManager: WaConnectionManager;
|
|
88
|
+
readonly trustedContactToken: WaTrustedContactTokenCoordinator;
|
|
89
|
+
readonly abPropsCoordinator: WaAbPropsCoordinator;
|
|
76
90
|
}
|
|
77
91
|
export declare function resolveWaClientBase(options: WaClientOptions, logger: Logger): WaClientBase;
|
|
78
92
|
export declare function buildWaClientDependencies(input: {
|
|
@@ -35,12 +35,14 @@ export declare class WaConnectionManager {
|
|
|
35
35
|
private pendingComms;
|
|
36
36
|
private lifecycleGeneration;
|
|
37
37
|
private lifecycleQueue;
|
|
38
|
+
private lastConnectWasNewLogin;
|
|
38
39
|
constructor(options: WaConnectionManagerOptions);
|
|
39
40
|
connect(frameHandler: (frame: Uint8Array) => Promise<void>): Promise<void>;
|
|
40
41
|
scheduleReconnectAfterPairing(): void;
|
|
41
42
|
disconnect(): Promise<void>;
|
|
42
43
|
clearStoredCredentials(): Promise<void>;
|
|
43
44
|
isConnected(): boolean;
|
|
45
|
+
wasNewLogin(): boolean;
|
|
44
46
|
getComms(): WaComms | null;
|
|
45
47
|
getClockSkewMs(): number | null;
|
|
46
48
|
getMediaConnCache(): WaMediaConn | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import { type AbPropName, type AbPropValue } from '../../protocol/abprops';
|
|
3
|
+
import type { BinaryNode } from '../../transport/types';
|
|
4
|
+
type WaAbPropsRuntime = {
|
|
5
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
6
|
+
};
|
|
7
|
+
export declare class WaAbPropsCoordinator {
|
|
8
|
+
private readonly logger;
|
|
9
|
+
private readonly runtime;
|
|
10
|
+
private readonly cache;
|
|
11
|
+
private readonly syncState;
|
|
12
|
+
private syncPromise;
|
|
13
|
+
private syncEpoch;
|
|
14
|
+
private pendingSync;
|
|
15
|
+
constructor(options: {
|
|
16
|
+
readonly logger: Logger;
|
|
17
|
+
readonly runtime: WaAbPropsRuntime;
|
|
18
|
+
});
|
|
19
|
+
getConfigValue<T extends AbPropValue>(name: AbPropName): T;
|
|
20
|
+
sync(): void;
|
|
21
|
+
reset(): void;
|
|
22
|
+
private startSync;
|
|
23
|
+
private executeSyncWithRetry;
|
|
24
|
+
private executeSync;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type WaEditBusinessProfileInput } from '../../transport/node/builders/business';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
export interface WaBusinessCategory {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
}
|
|
7
|
+
export interface WaBusinessHoursEntry {
|
|
8
|
+
readonly dayOfWeek: string;
|
|
9
|
+
readonly mode: string;
|
|
10
|
+
readonly openTime?: number;
|
|
11
|
+
readonly closeTime?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface WaBusinessHours {
|
|
14
|
+
readonly timezone?: string;
|
|
15
|
+
readonly config: readonly WaBusinessHoursEntry[];
|
|
16
|
+
}
|
|
17
|
+
export interface WaBusinessWebsite {
|
|
18
|
+
readonly url: string;
|
|
19
|
+
}
|
|
20
|
+
export interface WaBusinessProfileResult {
|
|
21
|
+
readonly jid: string;
|
|
22
|
+
readonly tag?: string;
|
|
23
|
+
readonly description?: string;
|
|
24
|
+
readonly address?: string;
|
|
25
|
+
readonly email?: string;
|
|
26
|
+
readonly websites?: readonly WaBusinessWebsite[];
|
|
27
|
+
readonly categories?: readonly WaBusinessCategory[];
|
|
28
|
+
readonly businessHours?: WaBusinessHours;
|
|
29
|
+
readonly latitude?: number;
|
|
30
|
+
readonly longitude?: number;
|
|
31
|
+
readonly profileOptions?: Readonly<Record<string, string>>;
|
|
32
|
+
}
|
|
33
|
+
export interface WaVerifiedNamePrivacyMode {
|
|
34
|
+
readonly actualActors: number;
|
|
35
|
+
readonly hostStorage: number;
|
|
36
|
+
readonly privacyModeTs: number;
|
|
37
|
+
}
|
|
38
|
+
export interface WaVerifiedNameResult {
|
|
39
|
+
readonly name?: string;
|
|
40
|
+
readonly level?: string;
|
|
41
|
+
readonly serial?: string;
|
|
42
|
+
readonly isApi: boolean;
|
|
43
|
+
readonly isSmb: boolean;
|
|
44
|
+
readonly privacyMode?: WaVerifiedNamePrivacyMode;
|
|
45
|
+
}
|
|
46
|
+
export interface WaBusinessCoordinator {
|
|
47
|
+
readonly getBusinessProfile: (jids: readonly string[]) => Promise<readonly WaBusinessProfileResult[]>;
|
|
48
|
+
readonly editBusinessProfile: (input: WaEditBusinessProfileInput) => Promise<void>;
|
|
49
|
+
readonly getVerifiedName: (jid: string) => Promise<WaVerifiedNameResult | null>;
|
|
50
|
+
readonly updateCoverPhoto: (id: string, timestamp: string, token: string) => Promise<void>;
|
|
51
|
+
readonly deleteCoverPhoto: (id: string) => Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
interface WaBusinessCoordinatorOptions {
|
|
54
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
55
|
+
}
|
|
56
|
+
export declare function createBusinessCoordinator(options: WaBusinessCoordinatorOptions): WaBusinessCoordinator;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type WaEmailContext } from '../../protocol/email';
|
|
2
|
+
import { type BuildRequestEmailVerificationCodeInput } from '../../transport/node/builders/email';
|
|
3
|
+
import type { BinaryNode } from '../../transport/types';
|
|
4
|
+
export interface WaEmailStatus {
|
|
5
|
+
readonly email: string | null;
|
|
6
|
+
readonly verified: boolean;
|
|
7
|
+
readonly confirmed: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface WaEmailVerifyCodeResult {
|
|
10
|
+
readonly verified: boolean;
|
|
11
|
+
readonly autoVerifyFailed: boolean;
|
|
12
|
+
readonly email: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface WaEmailCoordinator {
|
|
15
|
+
readonly getStatus: () => Promise<WaEmailStatus>;
|
|
16
|
+
readonly setEmail: (email: string, context?: WaEmailContext) => Promise<WaEmailStatus>;
|
|
17
|
+
readonly requestVerificationCode: (input: BuildRequestEmailVerificationCodeInput) => Promise<void>;
|
|
18
|
+
readonly verifyCode: (code: string) => Promise<WaEmailVerifyCodeResult>;
|
|
19
|
+
readonly confirm: (context?: WaEmailContext) => Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export interface WaEmailCoordinatorOptions {
|
|
22
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
23
|
+
}
|
|
24
|
+
export declare function createEmailCoordinator(options: WaEmailCoordinatorOptions): WaEmailCoordinator;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { WaSuccessPersistAttributes } from '../../auth/types';
|
|
2
|
+
import type { WaOfflineResumeCoordinator } from '../coordinators/WaOfflineResumeCoordinator';
|
|
2
3
|
import type { WaDirtyBit } from '../dirty';
|
|
3
|
-
import type { WaIncomingBaseEvent, WaIncomingCallEvent, WaIncomingChatstateEvent, WaIncomingFailureEvent,
|
|
4
|
+
import type { WaAccountTakeoverNoticeEvent, WaGroupEvent, WaIncomingBaseEvent, WaIncomingCallEvent, WaIncomingChatstateEvent, WaIncomingFailureEvent, WaIncomingNodeHandlerRegistration, WaIncomingNotificationEvent, WaIncomingPresenceEvent, WaIncomingReceiptEvent, WaIncomingUnhandledStanzaEvent, WaRegistrationCodeEvent } from '../types';
|
|
4
5
|
import type { Logger } from '../../infra/log/types';
|
|
6
|
+
import type { WaConnectionCode, WaDisconnectReason } from '../../protocol/stream';
|
|
5
7
|
import { type WaStreamControlNodeResult } from '../../transport/stream/parse';
|
|
6
8
|
import type { BinaryNode } from '../../transport/types';
|
|
7
9
|
interface WaIncomingNodeRuntime {
|
|
@@ -28,10 +30,13 @@ interface WaIncomingNodeRuntime {
|
|
|
28
30
|
readonly emitIncomingFailure: (event: WaIncomingFailureEvent) => void;
|
|
29
31
|
readonly emitIncomingErrorStanza: (event: WaIncomingBaseEvent) => void;
|
|
30
32
|
readonly emitIncomingNotification: (event: WaIncomingNotificationEvent) => void;
|
|
33
|
+
readonly emitRegistrationCode: (event: WaRegistrationCodeEvent) => void;
|
|
34
|
+
readonly emitAccountTakeoverNotice: (event: WaAccountTakeoverNoticeEvent) => void;
|
|
31
35
|
readonly emitGroupEvent: (event: WaGroupEvent) => void;
|
|
32
36
|
readonly emitUnhandledIncomingNode: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
33
37
|
readonly syncAppState: () => Promise<void>;
|
|
34
|
-
readonly
|
|
38
|
+
readonly stopComms: () => void;
|
|
39
|
+
readonly disconnect: (reason: WaDisconnectReason, isLogout: boolean, code: WaConnectionCode | null) => Promise<void>;
|
|
35
40
|
readonly clearStoredCredentials: () => Promise<void>;
|
|
36
41
|
readonly parseDirtyBits: (nodes: readonly BinaryNode[]) => readonly WaDirtyBit[];
|
|
37
42
|
readonly handleDirtyBits: (dirtyBits: readonly WaDirtyBit[]) => Promise<void>;
|
|
@@ -39,10 +44,12 @@ interface WaIncomingNodeRuntime {
|
|
|
39
44
|
interface WaIncomingNodeCoordinatorOptions {
|
|
40
45
|
readonly logger: Logger;
|
|
41
46
|
readonly runtime: WaIncomingNodeRuntime;
|
|
47
|
+
readonly offlineResume: WaOfflineResumeCoordinator;
|
|
42
48
|
}
|
|
43
49
|
export declare class WaIncomingNodeCoordinator {
|
|
44
50
|
private readonly logger;
|
|
45
51
|
private readonly runtime;
|
|
52
|
+
private readonly offlineResume;
|
|
46
53
|
private readonly nodeHandlerRegistry;
|
|
47
54
|
private mediaConnWarmupPromise;
|
|
48
55
|
constructor(options: WaIncomingNodeCoordinatorOptions);
|
|
@@ -2,15 +2,20 @@ import type { WaAppStateSyncKey } from '../../appstate/types';
|
|
|
2
2
|
import type { DeviceFanoutResolver } from '../messaging/fanout';
|
|
3
3
|
import type { AppStateSyncKeyProtocol } from '../messaging/key-protocol';
|
|
4
4
|
import type { GroupParticipantsCache } from '../messaging/participants';
|
|
5
|
-
import type { WaGroupEvent,
|
|
5
|
+
import type { WaGroupEvent, WaSendMessageOptions, WaSignalMessagePublishInput } from '../types';
|
|
6
6
|
import type { Logger } from '../../infra/log/types';
|
|
7
7
|
import type { WaEncryptedMessageInput, WaMessagePublishOptions, WaMessagePublishResult, WaSendMessageContent, WaSendReceiptInput } from '../../message/types';
|
|
8
8
|
import type { WaMessageClient } from '../../message/WaMessageClient';
|
|
9
|
-
import type
|
|
9
|
+
import { type Proto } from '../..';
|
|
10
10
|
import type { OutboundRetryTracker } from '../../retry/tracker';
|
|
11
11
|
import type { SenderKeyManager } from '../../signal/group/SenderKeyManager';
|
|
12
12
|
import type { SignalSessionResolver } from '../../signal/session/resolver';
|
|
13
13
|
import type { SignalProtocol } from '../../signal/session/SignalProtocol';
|
|
14
|
+
import type { WaDeviceListStore } from '../../store/contracts/device-list.store';
|
|
15
|
+
import type { WaIdentityStore } from '../../store/contracts/identity.store';
|
|
16
|
+
import type { WaMessageSecretStore } from '../../store/contracts/message-secret.store';
|
|
17
|
+
import type { WaSessionStore } from '../../store/contracts/session.store';
|
|
18
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
14
19
|
import type { BinaryNode } from '../../transport/types';
|
|
15
20
|
interface WaMessageDispatchCoordinatorOptions {
|
|
16
21
|
readonly logger: Logger;
|
|
@@ -23,9 +28,18 @@ interface WaMessageDispatchCoordinatorOptions {
|
|
|
23
28
|
readonly buildMessageContent: (content: WaSendMessageContent) => Promise<Proto.IMessage>;
|
|
24
29
|
readonly senderKeyManager: SenderKeyManager;
|
|
25
30
|
readonly signalProtocol: SignalProtocol;
|
|
31
|
+
readonly signalStore: WaSignalStore;
|
|
32
|
+
readonly sessionStore: WaSessionStore;
|
|
33
|
+
readonly identityStore: WaIdentityStore;
|
|
34
|
+
readonly deviceListStore: WaDeviceListStore;
|
|
35
|
+
readonly messageSecretStore: WaMessageSecretStore;
|
|
26
36
|
readonly getCurrentMeJid: () => string | null | undefined;
|
|
27
37
|
readonly getCurrentMeLid: () => string | null | undefined;
|
|
28
38
|
readonly getCurrentSignedIdentity: () => Proto.IADVSignedDeviceIdentity | null | undefined;
|
|
39
|
+
readonly resolvePrivacyTokenNode: (recipientJid: string) => Promise<BinaryNode | null>;
|
|
40
|
+
readonly onDirectMessageSent: (recipientJid: string) => void;
|
|
41
|
+
readonly getIcdcHashLength?: () => number;
|
|
42
|
+
readonly mobileMessageIdFormat?: boolean;
|
|
29
43
|
}
|
|
30
44
|
export declare class WaMessageDispatchCoordinator {
|
|
31
45
|
private readonly logger;
|
|
@@ -38,9 +52,21 @@ export declare class WaMessageDispatchCoordinator {
|
|
|
38
52
|
private readonly buildMessageContent;
|
|
39
53
|
private readonly senderKeyManager;
|
|
40
54
|
private readonly signalProtocol;
|
|
55
|
+
private readonly signalStore;
|
|
56
|
+
private readonly sessionStore;
|
|
57
|
+
private readonly identityStore;
|
|
58
|
+
private readonly deviceListStore;
|
|
59
|
+
private readonly messageSecretStore;
|
|
41
60
|
private readonly getCurrentMeJid;
|
|
42
61
|
private readonly getCurrentMeLid;
|
|
43
62
|
private readonly getCurrentSignedIdentity;
|
|
63
|
+
private readonly resolvePrivacyTokenNode;
|
|
64
|
+
private readonly onDirectMessageSent;
|
|
65
|
+
private readonly getIcdcHashLength;
|
|
66
|
+
private readonly mobileMessageIdFormat;
|
|
67
|
+
private readonly icdcDedup;
|
|
68
|
+
private readonly privacyTokenDedup;
|
|
69
|
+
private readonly distributionDedup;
|
|
44
70
|
constructor(options: WaMessageDispatchCoordinatorOptions);
|
|
45
71
|
publishMessageNode(node: BinaryNode, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
46
72
|
publishEncryptedMessage(input: WaEncryptedMessageInput, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
@@ -62,6 +88,7 @@ export declare class WaMessageDispatchCoordinator {
|
|
|
62
88
|
private generateOutgoingMessageId;
|
|
63
89
|
private tryBuildReportingTokenArtifacts;
|
|
64
90
|
private getEncodedSignedDeviceIdentity;
|
|
91
|
+
private resolveUserIcdc;
|
|
65
92
|
private requireCurrentMeJid;
|
|
66
93
|
}
|
|
67
94
|
export {};
|