zapo-js 0.1.2 → 0.2.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 +12 -4
- package/dist/appstate/WaAppStateCrypto.js +1 -1
- package/dist/appstate/WaAppStateSyncClient.js +138 -93
- package/dist/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/appstate/index.js +8 -6
- package/dist/appstate/utils.js +0 -5
- package/dist/auth/WaAuthClient.js +36 -47
- package/dist/auth/flow/WaAuthCredentialsFlow.js +7 -7
- package/dist/auth/index.js +1 -6
- package/dist/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/auth/pairing/WaPairingFlow.js +13 -3
- package/dist/client/WaClient.js +225 -101
- package/dist/client/WaClientFactory.js +294 -44
- package/dist/client/connection/WaConnectionManager.js +19 -10
- package/dist/client/coordinators/WaBusinessCoordinator.js +241 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +11 -7
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +1 -0
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +292 -99
- package/dist/client/coordinators/WaPassiveTasksCoordinator.js +74 -31
- package/dist/client/coordinators/WaPrivacyCoordinator.js +134 -0
- package/dist/client/coordinators/WaProfileCoordinator.js +212 -0
- package/dist/client/coordinators/WaRetryCoordinator.js +179 -27
- package/dist/client/coordinators/WaStreamControlCoordinator.js +18 -11
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +166 -0
- package/dist/client/dirty.js +40 -20
- 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 +39 -0
- package/dist/client/history-sync.js +50 -9
- package/dist/client/incoming.js +37 -7
- package/dist/client/mailbox.js +24 -23
- package/dist/client/messages.js +107 -31
- 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 +2 -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 +22 -0
- package/dist/crypto/curves/X25519.js +25 -6
- 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 +1 -1
- package/dist/esm/appstate/WaAppStateSyncClient.js +138 -93
- package/dist/esm/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/esm/appstate/index.js +2 -2
- package/dist/esm/appstate/utils.js +2 -5
- package/dist/esm/auth/WaAuthClient.js +36 -47
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +7 -7
- package/dist/esm/auth/index.js +0 -2
- package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/esm/auth/pairing/WaPairingFlow.js +14 -4
- package/dist/esm/client/WaClient.js +225 -101
- package/dist/esm/client/WaClientFactory.js +295 -45
- package/dist/esm/client/connection/WaConnectionManager.js +19 -10
- package/dist/esm/client/coordinators/WaBusinessCoordinator.js +238 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +11 -7
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +1 -0
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +295 -102
- package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +74 -31
- package/dist/esm/client/coordinators/WaPrivacyCoordinator.js +131 -0
- package/dist/esm/client/coordinators/WaProfileCoordinator.js +209 -0
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +181 -29
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +19 -12
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +162 -0
- package/dist/esm/client/dirty.js +40 -20
- 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 +36 -0
- package/dist/esm/client/history-sync.js +50 -9
- package/dist/esm/client/incoming.js +38 -8
- package/dist/esm/client/mailbox.js +24 -23
- package/dist/esm/client/messages.js +108 -32
- 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 +2 -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 +22 -1
- package/dist/esm/crypto/curves/X25519.js +25 -6
- 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 +77 -0
- package/dist/esm/media/WaMediaCrypto.js +95 -13
- package/dist/esm/media/WaMediaTransferClient.js +39 -47
- package/dist/esm/media/constants.js +2 -1
- package/dist/esm/message/WaMessageClient.js +26 -19
- package/dist/esm/message/content.js +195 -9
- package/dist/esm/message/icdc.js +76 -0
- package/dist/esm/message/incoming.js +24 -12
- package/dist/esm/message/phash.js +3 -1
- package/dist/esm/message/reporting-token.js +14 -27
- package/dist/esm/protocol/appstate.js +9 -40
- package/dist/esm/protocol/browser.js +10 -18
- package/dist/esm/protocol/constants.js +5 -3
- package/dist/esm/protocol/defaults.js +6 -0
- package/dist/esm/protocol/index.js +1 -2
- package/dist/esm/protocol/jid.js +105 -36
- package/dist/esm/protocol/message.js +61 -1
- package/dist/esm/protocol/nodes.js +2 -0
- package/dist/esm/protocol/notification.js +3 -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/replay.js +11 -7
- package/dist/esm/retry/tracker.js +50 -12
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +49 -32
- package/dist/esm/signal/api/SignalDigestSyncApi.js +13 -9
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +26 -11
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +18 -7
- package/dist/esm/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/esm/signal/api/SignalSessionSyncApi.js +16 -7
- 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 +12 -6
- package/dist/esm/signal/{store/sqlite.js → encoding.js} +78 -24
- package/dist/esm/signal/group/SenderKeyCodec.js +3 -2
- package/dist/esm/signal/group/SenderKeyManager.js +125 -106
- package/dist/esm/signal/index.js +1 -0
- package/dist/esm/signal/registration/keygen.js +6 -2
- package/dist/esm/signal/registration/utils.js +1 -0
- package/dist/esm/signal/session/SignalProtocol.js +150 -74
- package/dist/esm/signal/session/resolver.js +137 -102
- package/dist/esm/store/contracts/privacy-token.store.js +1 -0
- package/dist/esm/store/createStore.js +101 -187
- package/dist/esm/store/index.js +1 -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/message.lock.js +21 -0
- package/dist/esm/store/locks/participants.lock.js +20 -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/signal.lock.js +63 -0
- package/dist/esm/store/locks/thread.lock.js +21 -0
- package/dist/esm/store/noop.store.js +1 -1
- package/dist/esm/store/providers/memory/appstate.store.js +22 -24
- package/dist/esm/store/providers/memory/device-list.store.js +10 -5
- package/dist/esm/store/providers/memory/privacy-token.store.js +43 -0
- package/dist/esm/store/providers/memory/retry.store.js +77 -2
- package/dist/esm/store/providers/memory/sender-key.store.js +6 -1
- package/dist/esm/store/providers/memory/signal.store.js +36 -19
- package/dist/esm/transport/WaComms.js +3 -1
- package/dist/esm/transport/WaWebSocket.js +0 -6
- 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/node/WaNodeOrchestrator.js +25 -19
- package/dist/esm/transport/node/builders/business.js +129 -0
- package/dist/esm/transport/node/builders/global.js +370 -0
- package/dist/esm/transport/node/builders/index.js +5 -2
- package/dist/esm/transport/node/builders/message.js +63 -239
- package/dist/esm/transport/node/builders/pairing.js +0 -24
- package/dist/esm/transport/node/builders/privacy-token.js +41 -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 +10 -22
- package/dist/esm/transport/node/builders/usync.js +6 -2
- package/dist/esm/transport/node/helpers.js +19 -1
- 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 +10 -10
- package/dist/esm/transport/noise/WaNoiseCert.js +3 -3
- package/dist/esm/transport/noise/WaNoiseSession.js +64 -23
- 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 +81 -0
- package/dist/media/WaMediaCrypto.js +94 -12
- package/dist/media/WaMediaTransferClient.js +39 -47
- package/dist/media/constants.js +2 -1
- package/dist/message/WaMessageClient.js +26 -19
- package/dist/message/content.js +198 -9
- package/dist/message/icdc.js +81 -0
- package/dist/message/incoming.js +24 -12
- package/dist/message/phash.js +3 -1
- package/dist/message/reporting-token.js +14 -28
- package/dist/protocol/appstate.js +10 -41
- package/dist/protocol/browser.js +10 -18
- package/dist/protocol/constants.js +21 -2
- package/dist/protocol/defaults.js +6 -0
- package/dist/protocol/index.js +8 -5
- package/dist/protocol/jid.js +111 -36
- package/dist/protocol/message.js +62 -2
- package/dist/protocol/nodes.js +2 -0
- package/dist/protocol/notification.js +3 -1
- 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/replay.js +10 -6
- package/dist/retry/tracker.js +50 -12
- package/dist/signal/api/SignalDeviceSyncApi.js +48 -31
- package/dist/signal/api/SignalDigestSyncApi.js +13 -9
- package/dist/signal/api/SignalIdentitySyncApi.js +25 -10
- 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 +11 -5
- package/dist/signal/{store/sqlite.js → encoding.js} +79 -25
- package/dist/signal/group/SenderKeyCodec.js +4 -3
- package/dist/signal/group/SenderKeyManager.js +125 -106
- package/dist/signal/index.js +13 -1
- package/dist/signal/registration/keygen.js +6 -2
- package/dist/signal/registration/utils.js +1 -0
- package/dist/signal/session/SignalProtocol.js +150 -74
- package/dist/signal/session/resolver.js +135 -100
- package/dist/store/contracts/privacy-token.store.js +2 -0
- package/dist/store/createStore.js +101 -187
- package/dist/store/index.js +15 -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/message.lock.js +24 -0
- package/dist/store/locks/participants.lock.js +23 -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/signal.lock.js +66 -0
- package/dist/store/locks/thread.lock.js +24 -0
- package/dist/store/noop.store.js +1 -1
- package/dist/store/providers/memory/appstate.store.js +22 -24
- package/dist/store/providers/memory/device-list.store.js +10 -5
- package/dist/store/providers/memory/privacy-token.store.js +47 -0
- package/dist/store/providers/memory/retry.store.js +77 -2
- package/dist/store/providers/memory/sender-key.store.js +6 -1
- package/dist/store/providers/memory/signal.store.js +36 -19
- package/dist/transport/WaComms.js +3 -1
- package/dist/transport/WaWebSocket.js +0 -6
- 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/node/WaNodeOrchestrator.js +24 -18
- package/dist/transport/node/builders/business.js +137 -0
- package/dist/transport/node/builders/global.js +375 -0
- package/dist/transport/node/builders/index.js +18 -9
- package/dist/transport/node/builders/message.js +64 -245
- package/dist/transport/node/builders/pairing.js +0 -26
- package/dist/transport/node/builders/privacy-token.js +46 -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 +9 -21
- package/dist/transport/node/builders/usync.js +6 -2
- package/dist/transport/node/helpers.js +20 -1
- package/dist/transport/node/usync.js +2 -32
- package/dist/transport/node/xml.js +35 -14
- package/dist/transport/noise/WaClientPayload.js +13 -13
- package/dist/transport/noise/WaNoiseCert.js +2 -2
- package/dist/transport/noise/WaNoiseSession.js +64 -23
- package/dist/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/transport/stream/parse.js +7 -3
- package/dist/types/appstate/encoding.d.ts +7 -0
- package/dist/types/appstate/index.d.ts +3 -3
- package/dist/types/appstate/utils.d.ts +0 -2
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +1 -1
- package/dist/types/auth/index.d.ts +0 -2
- package/dist/types/auth/types.d.ts +1 -0
- package/dist/types/client/WaClient.d.ts +27 -12
- package/dist/types/client/WaClientFactory.d.ts +12 -4
- package/dist/types/client/connection/WaConnectionManager.d.ts +2 -0
- package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +57 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +3 -1
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +14 -0
- package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +4 -0
- package/dist/types/client/coordinators/WaPrivacyCoordinator.d.ts +26 -0
- package/dist/types/client/coordinators/WaProfileCoordinator.d.ts +36 -0
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +6 -0
- package/dist/types/client/coordinators/WaStreamControlCoordinator.d.ts +3 -2
- package/dist/types/client/coordinators/WaTrustedContactTokenCoordinator.d.ts +45 -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/history-sync.d.ts +9 -6
- package/dist/types/client/incoming.d.ts +3 -1
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/mailbox.d.ts +3 -5
- package/dist/types/client/messages.d.ts +1 -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 +51 -3
- package/dist/types/crypto/core/index.d.ts +2 -2
- package/dist/types/crypto/core/nonce.d.ts +2 -0
- package/dist/types/crypto/core/primitives.d.ts +0 -1
- package/dist/types/crypto/core/random.d.ts +1 -0
- package/dist/types/crypto/index.d.ts +1 -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 +5 -3
- 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 +10 -0
- package/dist/types/media/WaMediaCrypto.d.ts +3 -2
- package/dist/types/media/WaMediaTransferClient.d.ts +3 -12
- package/dist/types/media/constants.d.ts +1 -1
- package/dist/types/media/index.d.ts +1 -1
- package/dist/types/media/types.d.ts +10 -2
- package/dist/types/message/content.d.ts +8 -0
- 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 +45 -6
- package/dist/types/protocol/appstate.d.ts +0 -11
- package/dist/types/protocol/constants.d.ts +7 -3
- package/dist/types/protocol/defaults.d.ts +6 -0
- package/dist/types/protocol/index.d.ts +1 -2
- package/dist/types/protocol/jid.d.ts +19 -2
- package/dist/types/protocol/message.d.ts +60 -0
- package/dist/types/protocol/nodes.d.ts +2 -0
- package/dist/types/protocol/notification.d.ts +2 -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 +30 -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/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 +6 -0
- package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +2 -0
- 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/{store/sqlite.d.ts → encoding.d.ts} +3 -3
- package/dist/types/signal/group/SenderKeyManager.d.ts +10 -5
- package/dist/types/signal/index.d.ts +2 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +10 -4
- package/dist/types/signal/session/resolver.d.ts +7 -2
- package/dist/types/store/contracts/appstate.store.d.ts +1 -1
- 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/signal.store.d.ts +7 -0
- package/dist/types/store/createStore.d.ts +1 -1
- package/dist/types/store/index.d.ts +5 -13
- 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/message.lock.d.ts +3 -0
- package/dist/types/store/locks/participants.lock.d.ts +2 -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/signal.lock.d.ts +3 -0
- package/dist/types/store/locks/thread.lock.d.ts +3 -0
- package/dist/types/store/providers/memory/appstate.store.d.ts +1 -1
- package/dist/types/store/providers/memory/privacy-token.store.d.ts +13 -0
- package/dist/types/store/providers/memory/retry.store.d.ts +8 -0
- package/dist/types/store/providers/memory/signal.store.d.ts +2 -1
- package/dist/types/store/types.d.ts +49 -61
- package/dist/types/transport/WaWebSocket.d.ts +0 -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/node/WaNodeOrchestrator.d.ts +3 -4
- package/dist/types/transport/node/builders/business.d.ts +29 -0
- package/dist/types/transport/node/builders/global.d.ts +102 -0
- package/dist/types/transport/node/builders/index.d.ts +5 -2
- package/dist/types/transport/node/builders/message.d.ts +8 -7
- package/dist/types/transport/node/builders/pairing.d.ts +0 -2
- 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 +5 -0
- package/dist/types/transport/noise/WaNoiseSession.d.ts +3 -2
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +4 -2
- 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 +29 -7
- package/proto/index.js +1 -1
- package/dist/crypto/core/constants.js +0 -4
- 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/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/types/appstate/store/sqlite.d.ts +0 -7
- 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
|
@@ -4,13 +4,30 @@ export declare function splitJid(jid: string): {
|
|
|
4
4
|
readonly server: string;
|
|
5
5
|
};
|
|
6
6
|
export declare function normalizeRecipientJid(to: string): string;
|
|
7
|
-
export declare function isJidType(jid: string, type: string): boolean;
|
|
8
7
|
export declare function isGroupJid(jid: string): boolean;
|
|
9
8
|
export declare function isBroadcastJid(jid: string): boolean;
|
|
10
9
|
export declare function isGroupOrBroadcastJid(jid: string): boolean;
|
|
10
|
+
export interface ParsedJid {
|
|
11
|
+
readonly address: SignalAddress;
|
|
12
|
+
readonly userJid: string;
|
|
13
|
+
readonly normalizedJid: string;
|
|
14
|
+
}
|
|
11
15
|
export declare function parseSignalAddressFromJid(jid: string): SignalAddress;
|
|
12
|
-
export declare function
|
|
16
|
+
export declare function parseJidFull(jid: string): ParsedJid;
|
|
17
|
+
export declare function canonicalizeSignalServer(server: string, hostDomain?: string): string;
|
|
18
|
+
export declare function canonicalizeSignalJid(jid: string, hostDomain?: string): string;
|
|
19
|
+
export declare function toUserJid(jid: string, options?: {
|
|
20
|
+
readonly canonicalizeSignalServer?: boolean;
|
|
21
|
+
readonly hostDomain?: string;
|
|
22
|
+
}): string;
|
|
13
23
|
export declare function normalizeDeviceJid(jid: string): string;
|
|
24
|
+
export declare function isHostedDeviceId(deviceId: number): boolean;
|
|
25
|
+
export declare function isHostedServer(server: string): boolean;
|
|
26
|
+
export declare function isHostedDeviceJid(jid: string): boolean;
|
|
27
|
+
export declare function buildDeviceJid(user: string, normalizedServer: string, deviceId: number, options?: {
|
|
28
|
+
readonly rawServer?: string;
|
|
29
|
+
readonly isHosted?: boolean;
|
|
30
|
+
}): string;
|
|
14
31
|
export declare function getLoginIdentity(meJid: string): {
|
|
15
32
|
readonly username: number;
|
|
16
33
|
readonly device: number;
|
|
@@ -11,6 +11,66 @@ export declare const WA_MESSAGE_TYPES: Readonly<{
|
|
|
11
11
|
readonly ACK_TYPE_ERROR: "error";
|
|
12
12
|
readonly ACK_CLASS_ERROR: "error";
|
|
13
13
|
readonly ACK_CLASS_MESSAGE: "message";
|
|
14
|
+
readonly RECEIPT_TYPE_DELIVERY: "delivery";
|
|
15
|
+
readonly RECEIPT_TYPE_SENDER: "sender";
|
|
16
|
+
readonly RECEIPT_TYPE_INACTIVE: "inactive";
|
|
17
|
+
readonly RECEIPT_TYPE_READ: "read";
|
|
18
|
+
readonly RECEIPT_TYPE_READ_SELF: "read-self";
|
|
19
|
+
readonly RECEIPT_TYPE_PLAYED: "played";
|
|
20
|
+
readonly RECEIPT_TYPE_PLAYED_SELF: "played-self";
|
|
21
|
+
readonly RECEIPT_TYPE_HISTORY_SYNC: "hist_sync";
|
|
14
22
|
readonly RECEIPT_TYPE_PEER: "peer_msg";
|
|
23
|
+
readonly RECEIPT_TYPE_SERVER_ERROR: "server-error";
|
|
24
|
+
readonly RECEIPT_TYPE_RETRY: "retry";
|
|
15
25
|
}>;
|
|
16
26
|
export declare const WA_RETRYABLE_ACK_CODES: readonly ["408", "429", "500", "503"];
|
|
27
|
+
export declare const WA_STANZA_MSG_TYPES: Readonly<{
|
|
28
|
+
readonly TEXT: "text";
|
|
29
|
+
readonly MEDIA: "media";
|
|
30
|
+
readonly MEDIA_NOTIFY: "medianotify";
|
|
31
|
+
readonly PAY: "pay";
|
|
32
|
+
readonly POLL: "poll";
|
|
33
|
+
readonly REACTION: "reaction";
|
|
34
|
+
readonly EVENT: "event";
|
|
35
|
+
}>;
|
|
36
|
+
export declare const WA_EDIT_ATTRS: Readonly<{
|
|
37
|
+
readonly MESSAGE_EDIT: "1";
|
|
38
|
+
readonly PIN_IN_CHAT: "2";
|
|
39
|
+
readonly SENDER_REVOKE: "7";
|
|
40
|
+
readonly ADMIN_REVOKE: "8";
|
|
41
|
+
}>;
|
|
42
|
+
export declare const WA_POLL_META_TYPES: Readonly<{
|
|
43
|
+
readonly CREATION: "creation";
|
|
44
|
+
readonly VOTE: "vote";
|
|
45
|
+
readonly RESULT_SNAPSHOT: "result_snapshot";
|
|
46
|
+
readonly EDIT: "edit";
|
|
47
|
+
}>;
|
|
48
|
+
export declare const WA_EVENT_META_TYPES: Readonly<{
|
|
49
|
+
readonly CREATION: "creation";
|
|
50
|
+
readonly RESPONSE: "response";
|
|
51
|
+
readonly EDIT: "edit";
|
|
52
|
+
}>;
|
|
53
|
+
export declare const WA_ENC_MEDIA_TYPES: Readonly<{
|
|
54
|
+
readonly IMAGE: "image";
|
|
55
|
+
readonly VIDEO: "video";
|
|
56
|
+
readonly PTV: "ptv";
|
|
57
|
+
readonly AUDIO: "audio";
|
|
58
|
+
readonly PTT: "ptt";
|
|
59
|
+
readonly LOCATION: "location";
|
|
60
|
+
readonly LIVE_LOCATION: "livelocation";
|
|
61
|
+
readonly VCARD: "vcard";
|
|
62
|
+
readonly CONTACT_ARRAY: "contact_array";
|
|
63
|
+
readonly DOCUMENT: "document";
|
|
64
|
+
readonly URL: "url";
|
|
65
|
+
readonly GIF: "gif";
|
|
66
|
+
readonly STICKER: "sticker";
|
|
67
|
+
readonly STICKER_PACK: "sticker_pack";
|
|
68
|
+
readonly LIST: "list";
|
|
69
|
+
readonly LIST_RESPONSE: "list_response";
|
|
70
|
+
readonly BUTTON: "button";
|
|
71
|
+
readonly BUTTON_RESPONSE: "buttons_response";
|
|
72
|
+
readonly ORDER: "order";
|
|
73
|
+
readonly PRODUCT: "product";
|
|
74
|
+
readonly NATIVE_FLOW_RESPONSE: "native_flow_response";
|
|
75
|
+
readonly GROUP_HISTORY: "group_history";
|
|
76
|
+
}>;
|
|
@@ -78,6 +78,8 @@ export declare const WA_XMLNS: Readonly<{
|
|
|
78
78
|
readonly PRIVACY: "privacy";
|
|
79
79
|
readonly BLOCKLIST: "blocklist";
|
|
80
80
|
readonly USYNC: "usync";
|
|
81
|
+
readonly BUSINESS: "w:biz";
|
|
82
|
+
readonly STATUS: "status";
|
|
81
83
|
readonly GROUPS: "w:g2";
|
|
82
84
|
readonly NEWSLETTER: "newsletter";
|
|
83
85
|
readonly XMPP_PING: "urn:xmpp:ping";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const WA_PRIVACY_TOKEN_TYPES: Readonly<{
|
|
2
|
+
readonly TRUSTED_CONTACT: "trusted_contact";
|
|
3
|
+
}>;
|
|
4
|
+
export declare const WA_PRIVACY_TOKEN_TAGS: Readonly<{
|
|
5
|
+
readonly TOKENS: "tokens";
|
|
6
|
+
readonly TOKEN: "token";
|
|
7
|
+
readonly TC_TOKEN: "tctoken";
|
|
8
|
+
readonly CS_TOKEN: "cstoken";
|
|
9
|
+
}>;
|
|
10
|
+
export declare const WA_PRIVACY_TOKEN_NOTIFICATION_TYPE = "privacy_token";
|
|
11
|
+
export declare const WA_TC_TOKEN_DEFAULTS: Readonly<{
|
|
12
|
+
readonly DURATION_S: 604800;
|
|
13
|
+
readonly NUM_BUCKETS: 4;
|
|
14
|
+
readonly SENDER_DURATION_S: 604800;
|
|
15
|
+
readonly SENDER_NUM_BUCKETS: 4;
|
|
16
|
+
readonly MAX_DURATION_S: 15552000;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export declare const WA_PRIVACY_CATEGORIES: Readonly<{
|
|
2
|
+
readonly READ_RECEIPTS: "readreceipts";
|
|
3
|
+
readonly LAST_SEEN: "last";
|
|
4
|
+
readonly ONLINE: "online";
|
|
5
|
+
readonly PROFILE_PICTURE: "profile";
|
|
6
|
+
readonly ABOUT: "status";
|
|
7
|
+
readonly GROUP_ADD: "groupadd";
|
|
8
|
+
readonly CALL_ADD: "calladd";
|
|
9
|
+
readonly MESSAGES: "messages";
|
|
10
|
+
readonly DEFENSE_MODE: "defense";
|
|
11
|
+
}>;
|
|
12
|
+
export type WaPrivacyCategory = (typeof WA_PRIVACY_CATEGORIES)[keyof typeof WA_PRIVACY_CATEGORIES];
|
|
13
|
+
export declare const WA_PRIVACY_VALUES: Readonly<{
|
|
14
|
+
readonly ALL: "all";
|
|
15
|
+
readonly CONTACTS: "contacts";
|
|
16
|
+
readonly CONTACT_BLACKLIST: "contact_blacklist";
|
|
17
|
+
readonly NONE: "none";
|
|
18
|
+
readonly MATCH_LAST_SEEN: "match_last_seen";
|
|
19
|
+
readonly KNOWN: "known";
|
|
20
|
+
readonly OFF: "off";
|
|
21
|
+
readonly ON_STANDARD: "on_standard";
|
|
22
|
+
readonly ERROR: "error";
|
|
23
|
+
}>;
|
|
24
|
+
export type WaPrivacyValue = (typeof WA_PRIVACY_VALUES)[keyof typeof WA_PRIVACY_VALUES];
|
|
25
|
+
export declare const WA_PRIVACY_CATEGORY_TO_SETTING: Readonly<{
|
|
26
|
+
readonly readreceipts: "readReceipts";
|
|
27
|
+
readonly last: "lastSeen";
|
|
28
|
+
readonly online: "online";
|
|
29
|
+
readonly profile: "profilePicture";
|
|
30
|
+
readonly status: "about";
|
|
31
|
+
readonly groupadd: "groupAdd";
|
|
32
|
+
readonly calladd: "callAdd";
|
|
33
|
+
readonly messages: "messages";
|
|
34
|
+
readonly defense: "defenseMode";
|
|
35
|
+
}>;
|
|
36
|
+
export declare const WA_PRIVACY_SETTING_TO_CATEGORY: Readonly<{
|
|
37
|
+
readonly readReceipts: "readreceipts";
|
|
38
|
+
readonly lastSeen: "last";
|
|
39
|
+
readonly online: "online";
|
|
40
|
+
readonly profilePicture: "profile";
|
|
41
|
+
readonly about: "status";
|
|
42
|
+
readonly groupAdd: "groupadd";
|
|
43
|
+
readonly callAdd: "calladd";
|
|
44
|
+
readonly messages: "messages";
|
|
45
|
+
readonly defenseMode: "defense";
|
|
46
|
+
}>;
|
|
47
|
+
export type WaPrivacySettingName = keyof typeof WA_PRIVACY_SETTING_TO_CATEGORY;
|
|
48
|
+
export type WaPrivacyVisibility = 'all' | 'contacts' | 'contact_blacklist' | 'none';
|
|
49
|
+
export interface WaPrivacySettingValueMap {
|
|
50
|
+
readonly readReceipts: 'all' | 'none';
|
|
51
|
+
readonly lastSeen: WaPrivacyVisibility;
|
|
52
|
+
readonly online: 'all' | 'none' | 'match_last_seen';
|
|
53
|
+
readonly profilePicture: WaPrivacyVisibility;
|
|
54
|
+
readonly about: WaPrivacyVisibility;
|
|
55
|
+
readonly groupAdd: 'all' | 'contacts' | 'contact_blacklist';
|
|
56
|
+
readonly callAdd: 'all' | 'known' | 'contacts';
|
|
57
|
+
readonly messages: 'all' | 'contacts';
|
|
58
|
+
readonly defenseMode: 'off' | 'on_standard';
|
|
59
|
+
}
|
|
60
|
+
export declare const WA_PRIVACY_DISALLOWED_LIST_CATEGORIES: Readonly<{
|
|
61
|
+
readonly ABOUT: "status";
|
|
62
|
+
readonly GROUP_ADD: "groupadd";
|
|
63
|
+
readonly LAST_SEEN: "last";
|
|
64
|
+
readonly PROFILE_PICTURE: "profile";
|
|
65
|
+
}>;
|
|
66
|
+
type DisallowedCategoryToSetting = {
|
|
67
|
+
readonly [K in keyof typeof WA_PRIVACY_DISALLOWED_LIST_CATEGORIES]: (typeof WA_PRIVACY_CATEGORY_TO_SETTING)[(typeof WA_PRIVACY_DISALLOWED_LIST_CATEGORIES)[K]];
|
|
68
|
+
};
|
|
69
|
+
export type WaPrivacyDisallowedListSettingName = DisallowedCategoryToSetting[keyof DisallowedCategoryToSetting];
|
|
70
|
+
export declare const WA_PRIVACY_TAGS: Readonly<{
|
|
71
|
+
readonly CATEGORY: "category";
|
|
72
|
+
readonly LIST: "list";
|
|
73
|
+
readonly USER: "user";
|
|
74
|
+
}>;
|
|
75
|
+
export {};
|
|
@@ -49,6 +49,18 @@ export declare const WA_STREAM_SIGNALING: Readonly<{
|
|
|
49
49
|
readonly FORCE_LOGIN_CODE: 515;
|
|
50
50
|
readonly FORCE_LOGOUT_CODE: 516;
|
|
51
51
|
}>;
|
|
52
|
+
export declare const WA_FAILURE_REASONS: Readonly<{
|
|
53
|
+
readonly GENERIC_FAILURE: 400;
|
|
54
|
+
readonly NOT_AUTHORIZED: 401;
|
|
55
|
+
readonly TEMP_BANNED: 402;
|
|
56
|
+
readonly LOCKED: 403;
|
|
57
|
+
readonly CLIENT_TOO_OLD: 405;
|
|
58
|
+
readonly BANNED: 406;
|
|
59
|
+
readonly BAD_USER_AGENT: 409;
|
|
60
|
+
readonly INTERNAL_SERVER_ERROR: 500;
|
|
61
|
+
readonly EXPERIMENTAL: 501;
|
|
62
|
+
readonly SERVICE_UNAVAILABLE: 503;
|
|
63
|
+
}>;
|
|
52
64
|
export declare const WA_DISCONNECT_REASONS: Readonly<{
|
|
53
65
|
readonly CLIENT_DISCONNECTED: "client_disconnected";
|
|
54
66
|
readonly COMMS_STOPPED: "comms_stopped";
|
|
@@ -57,4 +69,22 @@ export declare const WA_DISCONNECT_REASONS: Readonly<{
|
|
|
57
69
|
readonly STREAM_ERROR_ACK: "stream_error_ack";
|
|
58
70
|
readonly STREAM_ERROR_XML_NOT_WELL_FORMED: "stream_error_xml_not_well_formed";
|
|
59
71
|
readonly STREAM_ERROR_OTHER: "stream_error_other";
|
|
72
|
+
readonly STREAM_ERROR_FORCE_LOGIN: "stream_error_force_login";
|
|
73
|
+
readonly STREAM_ERROR_FORCE_LOGOUT: "stream_error_force_logout";
|
|
74
|
+
readonly FAILURE_LOCKED: "failure_locked";
|
|
75
|
+
readonly FAILURE_NOT_AUTHORIZED: "failure_not_authorized";
|
|
76
|
+
readonly FAILURE_BANNED: "failure_banned";
|
|
77
|
+
readonly FAILURE_CLIENT_TOO_OLD: "failure_client_too_old";
|
|
78
|
+
readonly FAILURE_BAD_USER_AGENT: "failure_bad_user_agent";
|
|
79
|
+
readonly FAILURE_SERVICE_UNAVAILABLE: "failure_service_unavailable";
|
|
80
|
+
readonly PRIMARY_IDENTITY_KEY_CHANGE: "primary_identity_key_change";
|
|
81
|
+
}>;
|
|
82
|
+
export declare const WA_CONNECTION_REASONS: Readonly<{
|
|
83
|
+
readonly CONNECTED: "connected";
|
|
84
|
+
readonly RECONNECTED: "reconnected";
|
|
60
85
|
}>;
|
|
86
|
+
export type WaFailureReasonCode = (typeof WA_FAILURE_REASONS)[keyof typeof WA_FAILURE_REASONS];
|
|
87
|
+
export type WaStreamErrorCode = typeof WA_STREAM_SIGNALING.FORCE_LOGIN_CODE | typeof WA_STREAM_SIGNALING.FORCE_LOGOUT_CODE;
|
|
88
|
+
export type WaConnectionCode = WaFailureReasonCode | WaStreamErrorCode;
|
|
89
|
+
export type WaDisconnectReason = (typeof WA_DISCONNECT_REASONS)[keyof typeof WA_DISCONNECT_REASONS];
|
|
90
|
+
export type WaConnectionOpenReason = (typeof WA_CONNECTION_REASONS)[keyof typeof WA_CONNECTION_REASONS];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { MAX_RETRY_ATTEMPTS, RETRY_KEYS_MIN_COUNT, RETRY_OUTBOUND_TTL_MS, RETRY_REASON, RETRY_RECEIPT_VERSION } from './constants';
|
|
2
2
|
export type { WaRetryReasonCode } from './constants';
|
|
3
3
|
export { mapRetryReasonFromError } from './reason';
|
|
4
|
-
export { parseRetryReceiptRequest } from './parse';
|
|
5
|
-
export type { WaParsedRetryRequest, WaRetryDecryptFailureContext, WaRetryEncryptedReplayPayload, WaRetryKey, WaRetryKeyBundle, WaRetryOpaqueNodeReplayPayload, WaRetryOutboundMessageRecord, WaRetryOutboundMode, WaRetryOutboundState, WaRetryPlaintextReplayPayload, WaRetryReceiptType, WaRetryReplayPayload, WaRetrySignedKey } from './types';
|
|
6
|
-
export { decodeRetryReplayPayload, encodeRetryReplayPayload
|
|
4
|
+
export { parseRetryReceiptRequest, pickRetryStateMax } from './parse';
|
|
5
|
+
export type { WaParsedRetryRequest, WaRetryDecryptFailureContext, WaRetryEncryptedReplayPayload, WaRetryKey, WaRetryKeyBundle, WaRetryOpaqueNodeReplayPayload, WaRetryOutboundMessageRecord, WaRetryOutboundMode, WaRetryOutboundState, WaRetryPlaintextReplayPayload, WaRetryReceiptType, WaRetryReplayPayload, WaRetryStoredReplayPayload, WaRetrySignedKey } from './types';
|
|
6
|
+
export { decodeRetryReplayPayload, encodeRetryReplayPayload } from './codec';
|
|
7
7
|
export { WaRetryReplayService, type WaRetryReplayServiceOptions, type WaRetryResendResult } from './replay';
|
|
8
8
|
export { createOutboundRetryTracker, type OutboundRetryTrackHint, type OutboundRetryTracker } from './tracker';
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import type { WaParsedRetryRequest } from './types';
|
|
1
|
+
import type { WaParsedRetryRequest, WaRetryOutboundState } from './types';
|
|
2
2
|
import type { BinaryNode } from '../transport/types';
|
|
3
|
-
export declare function parseRetryReceiptRequest(node: BinaryNode
|
|
3
|
+
export declare function parseRetryReceiptRequest(node: BinaryNode, options?: {
|
|
4
|
+
readonly expectedToJids?: readonly string[];
|
|
5
|
+
}): WaParsedRetryRequest | null;
|
|
6
|
+
export declare function pickRetryStateMax(left: WaRetryOutboundState, right: WaRetryOutboundState): WaRetryOutboundState;
|
|
@@ -9,6 +9,7 @@ export type OutboundRetryTrackHint = {
|
|
|
9
9
|
readonly replayPayload: WaRetryReplayPayload;
|
|
10
10
|
readonly participantJid?: string;
|
|
11
11
|
readonly recipientJid?: string;
|
|
12
|
+
readonly eligibleRequesterDeviceJids?: readonly string[];
|
|
12
13
|
};
|
|
13
14
|
export type OutboundRetryTracker = {
|
|
14
15
|
track(hint: OutboundRetryTrackHint, publish: () => Promise<WaMessagePublishResult>): Promise<WaMessagePublishResult>;
|
|
@@ -22,6 +22,8 @@ export interface WaParsedRetryRequest {
|
|
|
22
22
|
readonly from: string;
|
|
23
23
|
readonly participant?: string;
|
|
24
24
|
readonly recipient?: string;
|
|
25
|
+
readonly offline: boolean;
|
|
26
|
+
readonly isLid: boolean;
|
|
25
27
|
readonly originalMsgId: string;
|
|
26
28
|
readonly retryCount: number;
|
|
27
29
|
readonly retryReason?: number;
|
|
@@ -56,14 +58,17 @@ export interface WaRetryOpaqueNodeReplayPayload {
|
|
|
56
58
|
readonly node: Uint8Array;
|
|
57
59
|
}
|
|
58
60
|
export type WaRetryReplayPayload = WaRetryPlaintextReplayPayload | WaRetryEncryptedReplayPayload | WaRetryOpaqueNodeReplayPayload;
|
|
61
|
+
export type WaRetryStoredReplayPayload = Uint8Array | WaRetryReplayPayload;
|
|
59
62
|
export interface WaRetryOutboundMessageRecord {
|
|
60
63
|
readonly messageId: string;
|
|
61
64
|
readonly toJid: string;
|
|
62
65
|
readonly participantJid?: string;
|
|
63
66
|
readonly recipientJid?: string;
|
|
67
|
+
readonly eligibleRequesterDeviceJids?: readonly string[];
|
|
68
|
+
readonly deliveredRequesterDeviceJids?: readonly string[];
|
|
64
69
|
readonly messageType: string;
|
|
65
70
|
readonly replayMode: WaRetryOutboundMode;
|
|
66
|
-
readonly replayPayload:
|
|
71
|
+
readonly replayPayload: WaRetryStoredReplayPayload;
|
|
67
72
|
readonly state: WaRetryOutboundState;
|
|
68
73
|
readonly createdAtMs: number;
|
|
69
74
|
readonly updatedAtMs: number;
|
|
@@ -22,11 +22,13 @@ export declare class SignalDeviceSyncApi {
|
|
|
22
22
|
private readonly defaultTimeoutMs;
|
|
23
23
|
private readonly hostDomain;
|
|
24
24
|
private readonly generateSid;
|
|
25
|
+
private readonly syncDedup;
|
|
25
26
|
constructor(options: SignalDeviceSyncApiOptions);
|
|
26
27
|
syncDeviceList(userJids: readonly string[], timeoutMs?: number): Promise<readonly {
|
|
27
28
|
readonly jid: string;
|
|
28
29
|
readonly deviceJids: readonly string[];
|
|
29
30
|
}[]>;
|
|
31
|
+
private syncDeviceListInternal;
|
|
30
32
|
queryLidsByPhoneJids(phoneJids: readonly string[], timeoutMs?: number): Promise<readonly SignalLidSyncResult[]>;
|
|
31
33
|
private collectUsersToQuery;
|
|
32
34
|
private makeDeviceSyncRequest;
|
|
@@ -38,6 +40,5 @@ export declare class SignalDeviceSyncApi {
|
|
|
38
40
|
private parseUserDeviceJids;
|
|
39
41
|
private normalizeUsers;
|
|
40
42
|
private normalizeUserJid;
|
|
41
|
-
private toDeviceJid;
|
|
42
43
|
}
|
|
43
44
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { RegistrationInfo, SignedPreKeyRecord } from '../types';
|
|
2
3
|
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
3
4
|
import type { BinaryNode } from '../../transport/types';
|
|
4
5
|
interface SignalDigestSyncApiOptions {
|
|
@@ -14,6 +15,10 @@ export interface SignalDigestValidationResult {
|
|
|
14
15
|
readonly reason: 'ok' | 'missing_remote_digest' | 'unsupported_key_bundle_type' | 'missing_local_state' | 'registration_mismatch' | 'identity_mismatch' | 'signed_prekey_mismatch' | 'missing_local_prekey' | 'hash_mismatch';
|
|
15
16
|
readonly preKeyCount: number;
|
|
16
17
|
}
|
|
18
|
+
export interface SignalDigestPrefetchedLocalKeyBundle {
|
|
19
|
+
readonly registrationInfo: RegistrationInfo;
|
|
20
|
+
readonly signedPreKey: SignedPreKeyRecord;
|
|
21
|
+
}
|
|
17
22
|
export declare class SignalDigestSyncApi {
|
|
18
23
|
private readonly logger;
|
|
19
24
|
private readonly query;
|
|
@@ -22,6 +27,7 @@ export declare class SignalDigestSyncApi {
|
|
|
22
27
|
private readonly hostDomain;
|
|
23
28
|
constructor(options: SignalDigestSyncApiOptions);
|
|
24
29
|
validateLocalKeyBundle(timeoutMs?: number): Promise<SignalDigestValidationResult>;
|
|
30
|
+
validateLocalKeyBundle(prefetched?: SignalDigestPrefetchedLocalKeyBundle, timeoutMs?: number): Promise<SignalDigestValidationResult>;
|
|
25
31
|
private parseDigestPayload;
|
|
26
32
|
}
|
|
27
33
|
export {};
|
|
@@ -19,8 +19,10 @@ export declare class SignalIdentitySyncApi {
|
|
|
19
19
|
private readonly signalStore?;
|
|
20
20
|
private readonly defaultTimeoutMs;
|
|
21
21
|
private readonly hostDomain;
|
|
22
|
+
private readonly syncDedup;
|
|
22
23
|
constructor(options: SignalIdentitySyncApiOptions);
|
|
23
24
|
syncIdentityKeys(targetJids: readonly string[], timeoutMs?: number): Promise<readonly SignalIdentitySyncEntry[]>;
|
|
25
|
+
private syncIdentityKeysInternal;
|
|
24
26
|
private parseIdentitySyncResponse;
|
|
25
27
|
}
|
|
26
28
|
export {};
|
|
@@ -7,16 +7,15 @@ interface SignalRotateKeyApiOptions {
|
|
|
7
7
|
readonly signalStore: WaSignalStore;
|
|
8
8
|
readonly defaultTimeoutMs?: number;
|
|
9
9
|
}
|
|
10
|
-
export interface SignalRotateKeyResult {
|
|
11
|
-
readonly shouldDigestKey: boolean;
|
|
12
|
-
readonly errorCode?: number;
|
|
13
|
-
}
|
|
14
10
|
export declare class SignalRotateKeyApi {
|
|
15
11
|
private readonly logger;
|
|
16
12
|
private readonly query;
|
|
17
13
|
private readonly signalStore;
|
|
18
14
|
private readonly defaultTimeoutMs;
|
|
19
15
|
constructor(options: SignalRotateKeyApiOptions);
|
|
20
|
-
rotateSignedPreKey(timeoutMs?: number): Promise<
|
|
16
|
+
rotateSignedPreKey(timeoutMs?: number): Promise<{
|
|
17
|
+
shouldDigestKey: boolean;
|
|
18
|
+
errorCode?: number;
|
|
19
|
+
}>;
|
|
21
20
|
}
|
|
22
21
|
export {};
|
|
@@ -7,10 +7,6 @@ interface SignalSessionSyncApiOptions {
|
|
|
7
7
|
readonly defaultTimeoutMs?: number;
|
|
8
8
|
readonly hostDomain?: string;
|
|
9
9
|
}
|
|
10
|
-
interface SignalSessionSyncTarget {
|
|
11
|
-
readonly jid: string;
|
|
12
|
-
readonly reasonIdentity?: boolean;
|
|
13
|
-
}
|
|
14
10
|
export type SignalSessionKeyBundleResult = {
|
|
15
11
|
readonly jid: string;
|
|
16
12
|
readonly bundle: SignalPreKeyBundle;
|
|
@@ -26,12 +22,18 @@ export declare class SignalSessionSyncApi {
|
|
|
26
22
|
private readonly defaultTimeoutMs;
|
|
27
23
|
private readonly hostDomain;
|
|
28
24
|
constructor(options: SignalSessionSyncApiOptions);
|
|
29
|
-
fetchKeyBundle(target:
|
|
25
|
+
fetchKeyBundle(target: {
|
|
26
|
+
readonly jid: string;
|
|
27
|
+
readonly reasonIdentity?: boolean;
|
|
28
|
+
}, timeoutMs?: number): Promise<{
|
|
30
29
|
readonly jid: string;
|
|
31
30
|
readonly bundle: SignalPreKeyBundle;
|
|
32
31
|
readonly deviceIdentity?: Uint8Array;
|
|
33
32
|
}>;
|
|
34
|
-
fetchKeyBundles(targets: readonly
|
|
33
|
+
fetchKeyBundles(targets: readonly {
|
|
34
|
+
readonly jid: string;
|
|
35
|
+
readonly reasonIdentity?: boolean;
|
|
36
|
+
}[], timeoutMs?: number): Promise<readonly SignalSessionKeyBundleResult[]>;
|
|
35
37
|
private parseFetchKeyBundleResponse;
|
|
36
38
|
private parseUserKeyBundle;
|
|
37
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerParsedResultByRawAndCanonicalKey<T>(parsedByRawKey: Map<string, T>, parsedByCanonicalKey: Map<string, T>, rawKey: string, canonicalKey: string, result: T, isPreferred: (value: T) => boolean): void;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export declare const SIGNAL_VERSION = 3;
|
|
2
2
|
export declare const SIGNAL_GROUP_VERSION = 3;
|
|
3
|
-
export declare const SERIALIZED_PUB_KEY_PREFIX = 5;
|
|
4
|
-
export declare const KEY_TYPE_CURVE25519 = 5;
|
|
5
3
|
export declare const SIGNAL_MAC_SIZE = 8;
|
|
6
|
-
export declare const SIGNATURE_SIZE = 64;
|
|
7
4
|
export declare const MAX_PREV_SESSIONS = 40;
|
|
8
5
|
export declare const MAX_UNUSED_KEYS = 2000;
|
|
9
6
|
export declare const FUTURE_MESSAGES_MAX = 2000;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PreKeyRecord, RegistrationInfo, SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '
|
|
1
|
+
import type { PreKeyRecord, RegistrationInfo, SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from './types';
|
|
2
2
|
export interface SignalAddressParts {
|
|
3
3
|
readonly user: string;
|
|
4
4
|
readonly server: string;
|
|
@@ -51,7 +51,7 @@ export interface SenderKeyDistributionRow extends Record<string, unknown> {
|
|
|
51
51
|
readonly key_id: unknown;
|
|
52
52
|
readonly timestamp_ms: unknown;
|
|
53
53
|
}
|
|
54
|
-
export interface
|
|
54
|
+
export interface StoreCountRow extends Record<string, unknown> {
|
|
55
55
|
readonly count: unknown;
|
|
56
56
|
}
|
|
57
57
|
export declare function toSignalAddressParts(address: SignalAddress): SignalAddressParts;
|
|
@@ -68,5 +68,5 @@ export declare function decodeSignalSessionRecord(raw: unknown): SignalSessionRe
|
|
|
68
68
|
export declare function encodeSenderKeyRecord(record: SenderKeyRecord): Uint8Array;
|
|
69
69
|
export declare function decodeSenderKeyRecord(raw: unknown, groupId: string, sender: SignalAddress): SenderKeyRecord;
|
|
70
70
|
export declare function decodeSenderKeyDistributionRow(row: SenderKeyDistributionRow): SenderKeyDistributionRecord;
|
|
71
|
-
export declare function
|
|
71
|
+
export declare function decodeStoreCount(row: StoreCountRow | null, field: string): number;
|
|
72
72
|
export declare function decodeSignalRemoteIdentity(raw: unknown): Uint8Array;
|
|
@@ -10,13 +10,18 @@ interface GroupSenderKeyCiphertext {
|
|
|
10
10
|
}
|
|
11
11
|
export declare class SenderKeyManager {
|
|
12
12
|
private readonly store;
|
|
13
|
+
private readonly senderLock;
|
|
13
14
|
constructor(store: WaSenderKeyStore);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
prepareGroupEncryption(groupId: string, sender: SignalAddress, plaintext: Uint8Array): Promise<{
|
|
16
|
+
readonly distributionMessage: Proto.Message.ISenderKeyDistributionMessage;
|
|
17
|
+
readonly ciphertext: GroupSenderKeyCiphertext;
|
|
18
|
+
readonly keyId: number;
|
|
19
|
+
}>;
|
|
20
|
+
filterParticipantsNeedingDistribution(groupId: string, senderKeyId: number, participants: readonly SignalAddress[]): Promise<readonly SignalAddress[]>;
|
|
21
|
+
markSenderKeyDistributed(groupId: string, senderKeyId: number, participants: readonly SignalAddress[]): Promise<void>;
|
|
17
22
|
processSenderKeyDistributionPayload(groupId: string, sender: SignalAddress, payload: Uint8Array): Promise<SenderKeyRecord>;
|
|
18
|
-
encryptGroupMessage(groupId: string, sender: SignalAddress, plaintext: Uint8Array): Promise<GroupSenderKeyCiphertext>;
|
|
19
23
|
decryptGroupMessage(payload: GroupSenderKeyCiphertext): Promise<Uint8Array>;
|
|
20
|
-
private
|
|
24
|
+
private ensureSenderKeyInternal;
|
|
25
|
+
private runWithSenderLock;
|
|
21
26
|
}
|
|
22
27
|
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { PreKeyRecord, RegistrationInfo, SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress, SignalPreKeyBundle, SignedPreKeyRecord } from './types';
|
|
2
|
+
export type { SignalSessionRecord } from './types';
|
|
3
|
+
export { decodeSignalPreKeyRow, decodeSignalRegistrationRow, decodeSignalRemoteIdentity, decodeSignalSessionRecord, decodeSignalSignedPreKeyRow, decodeSenderKeyDistributionRow, decodeSenderKeyRecord, decodeStoreCount, encodeSenderKeyRecord, encodeSignalSessionRecord, toSignalAddressParts, type SenderKeyDistributionRow, type SenderKeyRow, type SignalAddressParts, type SignalIdentityRow, type SignalMetaRow, type SignalPreKeyRow, type SignalRegistrationRow, type SignalSessionRow, type SignalSignedPreKeyRow, type StoreCountRow } from './encoding';
|
|
2
4
|
export { generatePreKeyPair, generateRegistrationId, generateRegistrationInfo, generateSignedPreKey } from './registration/keygen';
|
|
3
5
|
export { buildPreKeyUploadIq, parsePreKeyUploadFailure } from './api/prekeys';
|
|
4
6
|
export { SignalDigestSyncApi } from './api/SignalDigestSyncApi';
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { Logger } from '../../infra/log/types';
|
|
2
2
|
import type { SignalAddress, SignalPreKeyBundle, SignalSessionRecord } from '../types';
|
|
3
3
|
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
4
|
+
interface EstablishOutgoingSessionOptions {
|
|
5
|
+
readonly reuseExisting?: boolean;
|
|
6
|
+
}
|
|
4
7
|
export declare class SignalProtocol {
|
|
5
8
|
private readonly store;
|
|
6
9
|
private readonly logger;
|
|
10
|
+
private readonly sessionMutationLock;
|
|
7
11
|
constructor(store: WaSignalStore, logger?: Logger);
|
|
8
|
-
|
|
9
|
-
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
10
|
-
establishOutgoingSession(address: SignalAddress, remoteBundle: SignalPreKeyBundle): Promise<SignalSessionRecord>;
|
|
12
|
+
establishOutgoingSession(address: SignalAddress, remoteBundle: SignalPreKeyBundle, options?: EstablishOutgoingSessionOptions): Promise<SignalSessionRecord>;
|
|
11
13
|
encryptMessage(address: SignalAddress, plaintext: Uint8Array, expectedIdentity?: Uint8Array): Promise<{
|
|
12
14
|
readonly type: 'msg' | 'pkmsg';
|
|
13
15
|
readonly ciphertext: Uint8Array;
|
|
@@ -17,6 +19,9 @@ export declare class SignalProtocol {
|
|
|
17
19
|
readonly address: SignalAddress;
|
|
18
20
|
readonly plaintext: Uint8Array;
|
|
19
21
|
readonly expectedIdentity?: Uint8Array;
|
|
22
|
+
}[], prefetchedSessions?: readonly {
|
|
23
|
+
readonly address: SignalAddress;
|
|
24
|
+
readonly session: SignalSessionRecord;
|
|
20
25
|
}[]): Promise<readonly {
|
|
21
26
|
readonly type: 'msg' | 'pkmsg';
|
|
22
27
|
readonly ciphertext: Uint8Array;
|
|
@@ -26,6 +31,7 @@ export declare class SignalProtocol {
|
|
|
26
31
|
readonly type: 'msg' | 'pkmsg';
|
|
27
32
|
readonly ciphertext: Uint8Array;
|
|
28
33
|
}): Promise<Uint8Array>;
|
|
29
|
-
private
|
|
34
|
+
private runWithAddressLock;
|
|
30
35
|
private decryptPkMsg;
|
|
31
36
|
}
|
|
37
|
+
export {};
|
|
@@ -2,11 +2,16 @@ import type { Logger } from '../../infra/log/types';
|
|
|
2
2
|
import type { SignalIdentitySyncApi } from '../api/SignalIdentitySyncApi';
|
|
3
3
|
import type { SignalSessionSyncApi } from '../api/SignalSessionSyncApi';
|
|
4
4
|
import type { SignalProtocol } from '../session/SignalProtocol';
|
|
5
|
-
import type { SignalAddress } from '../types';
|
|
5
|
+
import type { SignalAddress, SignalSessionRecord } from '../types';
|
|
6
6
|
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
7
|
+
export interface SignalResolvedSessionTarget {
|
|
8
|
+
readonly jid: string;
|
|
9
|
+
readonly address: SignalAddress;
|
|
10
|
+
readonly session: SignalSessionRecord;
|
|
11
|
+
}
|
|
7
12
|
export type SignalSessionResolver = {
|
|
8
13
|
ensureSession(address: SignalAddress, jid: string, expectedIdentity?: Uint8Array, reasonIdentity?: boolean): Promise<void>;
|
|
9
|
-
ensureSessionsBatch(targetJids: readonly string[], expectedIdentityByJid?: ReadonlyMap<string, Uint8Array>): Promise<
|
|
14
|
+
ensureSessionsBatch(targetJids: readonly string[], expectedIdentityByJid?: ReadonlyMap<string, Uint8Array>): Promise<readonly SignalResolvedSessionTarget[]>;
|
|
10
15
|
};
|
|
11
16
|
export declare function createSignalSessionResolver(options: {
|
|
12
17
|
readonly signalProtocol: SignalProtocol;
|
|
@@ -14,7 +14,7 @@ export interface WaAppStateCollectionStateUpdate {
|
|
|
14
14
|
export interface WaAppStateStore {
|
|
15
15
|
exportData(): Promise<WaAppStateStoreData>;
|
|
16
16
|
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
17
|
-
|
|
17
|
+
getSyncKeysBatch(keyIds: readonly Uint8Array[]): Promise<readonly (WaAppStateSyncKey | null)[]>;
|
|
18
18
|
getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
|
|
19
19
|
getSyncKeyDataBatch(keyIds: readonly Uint8Array[]): Promise<readonly (Uint8Array | null)[]>;
|
|
20
20
|
getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface WaStoredPrivacyTokenRecord {
|
|
2
|
+
readonly jid: string;
|
|
3
|
+
readonly tcToken?: Uint8Array;
|
|
4
|
+
readonly tcTokenTimestamp?: number;
|
|
5
|
+
readonly tcTokenSenderTimestamp?: number;
|
|
6
|
+
readonly nctSalt?: Uint8Array;
|
|
7
|
+
readonly updatedAtMs: number;
|
|
8
|
+
}
|
|
9
|
+
export interface WaPrivacyTokenStore {
|
|
10
|
+
upsert(record: WaStoredPrivacyTokenRecord): Promise<void>;
|
|
11
|
+
upsertBatch(records: readonly WaStoredPrivacyTokenRecord[]): Promise<void>;
|
|
12
|
+
getByJid(jid: string): Promise<WaStoredPrivacyTokenRecord | null>;
|
|
13
|
+
deleteByJid(jid: string): Promise<number>;
|
|
14
|
+
clear(): Promise<void>;
|
|
15
|
+
destroy?(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import type { WaRetryOutboundMessageRecord, WaRetryOutboundState } from '../../retry/types';
|
|
2
2
|
export interface WaRetryStore {
|
|
3
|
+
getOutboundRequesterStatus(messageId: string, requesterDeviceJid: string): Promise<{
|
|
4
|
+
readonly eligible: boolean;
|
|
5
|
+
readonly delivered: boolean;
|
|
6
|
+
} | null>;
|
|
3
7
|
getTtlMs?(): number;
|
|
8
|
+
supportsRawReplayPayload?(): boolean;
|
|
4
9
|
destroy?(): Promise<void>;
|
|
5
10
|
upsertOutboundMessage(record: WaRetryOutboundMessageRecord): Promise<void>;
|
|
11
|
+
deleteOutboundMessage(messageId: string): Promise<number>;
|
|
6
12
|
getOutboundMessage(messageId: string): Promise<WaRetryOutboundMessageRecord | null>;
|
|
7
13
|
updateOutboundMessageState(messageId: string, state: WaRetryOutboundState, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
14
|
+
markOutboundRequesterDelivered(messageId: string, requesterDeviceJid: string, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
8
15
|
incrementInboundCounter(messageId: string, requesterJid: string, updatedAtMs: number, expiresAtMs: number): Promise<number>;
|
|
9
16
|
cleanupExpired(nowMs: number): Promise<number>;
|
|
10
17
|
clear(): Promise<void>;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { PreKeyRecord, RegistrationInfo, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '../../signal/types';
|
|
2
|
+
export interface WaSignalMetaSnapshot {
|
|
3
|
+
readonly serverHasPreKeys: boolean;
|
|
4
|
+
readonly signedPreKeyRotationTs: number | null;
|
|
5
|
+
readonly registrationInfo: RegistrationInfo | null;
|
|
6
|
+
readonly signedPreKey: SignedPreKeyRecord | null;
|
|
7
|
+
}
|
|
2
8
|
export interface WaSignalStore {
|
|
3
9
|
getRegistrationInfo(): Promise<RegistrationInfo | null>;
|
|
4
10
|
setRegistrationInfo(info: RegistrationInfo): Promise<void>;
|
|
@@ -16,6 +22,7 @@ export interface WaSignalStore {
|
|
|
16
22
|
markKeyAsUploaded(keyId: number): Promise<void>;
|
|
17
23
|
setServerHasPreKeys(value: boolean): Promise<void>;
|
|
18
24
|
getServerHasPreKeys(): Promise<boolean>;
|
|
25
|
+
getSignalMeta(): Promise<WaSignalMetaSnapshot>;
|
|
19
26
|
hasSession(address: SignalAddress): Promise<boolean>;
|
|
20
27
|
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
21
28
|
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { WaCreateStoreOptions, WaStore } from './types';
|
|
2
|
-
export declare function createStore(options: WaCreateStoreOptions): WaStore;
|
|
2
|
+
export declare function createStore<B extends string>(options: WaCreateStoreOptions<B>): WaStore;
|