zapo-js 0.1.1 → 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 +20 -4
- package/dist/appstate/WaAppStateCrypto.js +19 -26
- package/dist/appstate/WaAppStateSyncClient.js +293 -181
- package/dist/appstate/WaAppStateSyncResponseParser.js +16 -5
- package/dist/appstate/constants.js +4 -3
- package/dist/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/appstate/index.js +8 -6
- package/dist/appstate/utils.js +9 -34
- package/dist/auth/WaAuthClient.js +43 -61
- package/dist/auth/flow/WaAuthCredentialsFlow.js +22 -15
- package/dist/auth/index.js +1 -8
- package/dist/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/auth/pairing/WaPairingFlow.js +34 -26
- package/dist/auth/pairing/WaQrFlow.js +37 -24
- package/dist/client/WaClient.js +275 -324
- package/dist/client/WaClientFactory.js +500 -133
- package/dist/client/connection/WaConnectionManager.js +301 -0
- package/dist/client/connection/WaKeyShareCoordinator.js +63 -0
- package/dist/client/connection/WaReceiptQueue.js +51 -0
- package/dist/client/coordinators/WaAppStateMutationCoordinator.js +471 -0
- package/dist/client/coordinators/WaBusinessCoordinator.js +241 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +30 -16
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +21 -27
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +439 -701
- 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 +242 -57
- package/dist/client/coordinators/WaStreamControlCoordinator.js +18 -11
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +166 -0
- package/dist/client/dirty.js +74 -48
- package/dist/client/events/chat.js +4 -3
- package/dist/client/events/devices.js +72 -0
- package/dist/client/events/group.js +62 -47
- package/dist/client/events/identity.js +22 -0
- package/dist/client/events/privacy-token.js +39 -0
- package/dist/client/history-sync.js +94 -63
- package/dist/client/incoming.js +60 -27
- package/dist/client/mailbox.js +24 -23
- package/dist/client/messages.js +107 -31
- package/dist/client/messaging/fanout.js +199 -0
- package/dist/client/messaging/key-protocol.js +130 -0
- package/dist/client/messaging/participants.js +193 -0
- 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/hkdf.js +3 -8
- package/dist/crypto/core/index.js +2 -5
- package/dist/crypto/core/keys.js +6 -7
- package/dist/crypto/core/nonce.js +2 -0
- package/dist/crypto/core/primitives.js +12 -23
- package/dist/crypto/core/random.js +26 -23
- package/dist/crypto/curves/Ed25519.js +7 -8
- package/dist/crypto/curves/X25519.js +38 -22
- package/dist/crypto/index.js +1 -3
- 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 +7 -14
- package/dist/esm/appstate/WaAppStateSyncClient.js +284 -172
- package/dist/esm/appstate/WaAppStateSyncResponseParser.js +17 -6
- package/dist/esm/appstate/constants.js +3 -2
- 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 +8 -30
- package/dist/esm/auth/WaAuthClient.js +43 -61
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +22 -15
- package/dist/esm/auth/index.js +0 -3
- package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/esm/auth/pairing/WaPairingFlow.js +28 -20
- package/dist/esm/auth/pairing/WaQrFlow.js +37 -24
- package/dist/esm/client/WaClient.js +275 -324
- package/dist/esm/client/WaClientFactory.js +501 -134
- package/dist/esm/client/connection/WaConnectionManager.js +297 -0
- package/dist/esm/client/connection/WaKeyShareCoordinator.js +59 -0
- package/dist/esm/client/connection/WaReceiptQueue.js +47 -0
- package/dist/esm/client/coordinators/WaAppStateMutationCoordinator.js +467 -0
- package/dist/esm/client/coordinators/WaBusinessCoordinator.js +238 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +23 -9
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +21 -27
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +443 -705
- 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 +244 -59
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +19 -12
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +162 -0
- package/dist/esm/client/dirty.js +69 -43
- package/dist/esm/client/events/chat.js +4 -3
- package/dist/esm/client/events/devices.js +68 -0
- package/dist/esm/client/events/group.js +53 -39
- 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 +91 -60
- package/dist/esm/client/incoming.js +61 -28
- package/dist/esm/client/mailbox.js +24 -23
- package/dist/esm/client/messages.js +108 -32
- package/dist/esm/client/messaging/fanout.js +196 -0
- package/dist/esm/client/messaging/key-protocol.js +127 -0
- package/dist/esm/client/messaging/participants.js +190 -0
- 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/hkdf.js +3 -8
- package/dist/esm/crypto/core/index.js +2 -3
- package/dist/esm/crypto/core/keys.js +3 -4
- package/dist/esm/crypto/core/nonce.js +2 -0
- package/dist/esm/crypto/core/primitives.js +12 -22
- package/dist/esm/crypto/core/random.js +25 -23
- package/dist/esm/crypto/curves/Ed25519.js +4 -5
- package/dist/esm/crypto/curves/X25519.js +35 -19
- package/dist/esm/crypto/index.js +0 -1
- 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/log/ConsoleLogger.js +18 -17
- package/dist/esm/infra/log/PinoLogger.js +15 -9
- package/dist/esm/infra/log/types.js +11 -1
- package/dist/esm/infra/perf/BackgroundQueue.js +478 -0
- package/dist/esm/infra/perf/BoundedTaskQueue.js +16 -18
- 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 +96 -16
- package/dist/esm/media/WaMediaTransferClient.js +251 -91
- package/dist/esm/media/conn.js +10 -6
- package/dist/esm/media/constants.js +6 -2
- package/dist/esm/message/WaMessageClient.js +30 -32
- package/dist/esm/message/ack.js +6 -6
- package/dist/esm/message/addon-crypto.js +59 -0
- package/dist/esm/message/content.js +195 -9
- package/dist/esm/message/icdc.js +76 -0
- package/dist/esm/message/incoming.js +129 -122
- package/dist/esm/message/index.js +2 -0
- package/dist/esm/message/phash.js +3 -1
- package/dist/esm/message/reporting-token.js +425 -0
- package/dist/esm/message/use-case-secret.js +49 -0
- package/dist/esm/protocol/appstate.js +27 -0
- package/dist/esm/protocol/browser.js +10 -18
- package/dist/esm/protocol/constants.js +6 -3
- package/dist/esm/protocol/defaults.js +6 -0
- package/dist/esm/protocol/index.js +2 -11
- package/dist/esm/protocol/jid.js +133 -52
- package/dist/esm/protocol/media.js +3 -3
- package/dist/esm/protocol/message.js +61 -1
- package/dist/esm/protocol/nodes.js +4 -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/protocol/usync.js +11 -0
- package/dist/esm/retry/codec.js +216 -0
- package/dist/esm/retry/constants.js +1 -1
- package/dist/esm/retry/index.js +3 -2
- package/dist/esm/retry/parse.js +88 -86
- package/dist/esm/retry/replay.js +54 -51
- package/dist/esm/retry/tracker.js +94 -0
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +276 -92
- package/dist/esm/signal/api/SignalDigestSyncApi.js +17 -8
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +67 -37
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +86 -67
- package/dist/esm/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/esm/signal/api/SignalSessionSyncApi.js +36 -34
- 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 +13 -9
- package/dist/esm/signal/{store/sqlite.js → encoding.js} +93 -60
- package/dist/esm/signal/group/SenderKeyChain.js +28 -23
- package/dist/esm/signal/group/SenderKeyCodec.js +5 -6
- package/dist/esm/signal/group/SenderKeyManager.js +144 -115
- package/dist/esm/signal/index.js +2 -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 +164 -53
- package/dist/esm/signal/session/SignalRatchet.js +24 -15
- package/dist/esm/signal/session/SignalSession.js +14 -9
- package/dist/esm/signal/session/resolver.js +221 -0
- package/dist/esm/store/contracts/privacy-token.store.js +1 -0
- package/dist/esm/store/createStore.js +100 -188
- 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 +4 -7
- package/dist/esm/store/providers/memory/appstate.store.js +38 -16
- package/dist/esm/store/providers/memory/contact.store.js +5 -0
- package/dist/esm/store/providers/memory/device-list.store.js +12 -34
- package/dist/esm/store/providers/memory/message.store.js +11 -5
- package/dist/esm/store/providers/memory/participants.store.js +1 -8
- 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 +11 -8
- package/dist/esm/store/providers/memory/signal.store.js +47 -18
- package/dist/esm/store/providers/memory/thread.store.js +5 -0
- package/dist/esm/transport/WaComms.js +28 -24
- package/dist/esm/transport/WaWebSocket.js +115 -18
- package/dist/esm/transport/binary/constants.js +0 -30
- package/dist/esm/transport/binary/decoder.js +8 -8
- package/dist/esm/transport/binary/encoder.js +10 -9
- package/dist/esm/transport/binary/index.js +0 -1
- package/dist/esm/transport/index.js +1 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +2 -8
- package/dist/esm/transport/node/WaNodeOrchestrator.js +25 -21
- package/dist/esm/transport/node/WaNodeTransport.js +0 -3
- package/dist/esm/transport/node/builders/{accountSync.js → account-sync.js} +16 -36
- 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 +7 -3
- package/dist/esm/transport/node/builders/message.js +63 -230
- package/dist/esm/transport/node/builders/pairing.js +2 -27
- 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 +45 -0
- package/dist/esm/transport/node/helpers.js +125 -5
- package/dist/esm/transport/node/usync.js +5 -0
- package/dist/esm/transport/node/xml.js +35 -14
- package/dist/esm/transport/noise/WaClientPayload.js +10 -10
- package/dist/esm/transport/noise/WaFrameCodec.js +48 -33
- package/dist/esm/transport/noise/WaNoiseCert.js +4 -7
- package/dist/esm/transport/noise/WaNoiseSession.js +77 -29
- package/dist/esm/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/esm/transport/proxy.js +27 -0
- package/dist/esm/transport/stream/parse.js +17 -48
- package/dist/esm/util/bytes.js +67 -45
- package/dist/esm/util/coercion.js +6 -14
- package/dist/esm/util/index.js +5 -0
- package/dist/esm/util/primitives.js +40 -14
- package/dist/index.js +7 -1
- package/dist/infra/log/ConsoleLogger.js +18 -17
- package/dist/infra/log/PinoLogger.js +15 -9
- package/dist/infra/log/types.js +12 -0
- package/dist/infra/perf/BackgroundQueue.js +482 -0
- package/dist/infra/perf/BoundedTaskQueue.js +16 -18
- 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 +95 -15
- package/dist/media/WaMediaTransferClient.js +284 -91
- package/dist/media/conn.js +10 -6
- package/dist/media/constants.js +6 -2
- package/dist/message/WaMessageClient.js +31 -33
- package/dist/message/ack.js +6 -6
- package/dist/message/addon-crypto.js +65 -0
- package/dist/message/content.js +198 -9
- package/dist/message/icdc.js +81 -0
- package/dist/message/incoming.js +127 -120
- package/dist/message/index.js +2 -0
- package/dist/message/phash.js +3 -1
- package/dist/message/reporting-token.js +429 -0
- package/dist/message/use-case-secret.js +55 -0
- package/dist/protocol/appstate.js +28 -1
- package/dist/protocol/browser.js +10 -18
- package/dist/protocol/constants.js +26 -1
- package/dist/protocol/defaults.js +6 -0
- package/dist/protocol/index.js +23 -42
- package/dist/protocol/jid.js +140 -52
- package/dist/protocol/media.js +3 -3
- package/dist/protocol/message.js +62 -2
- package/dist/protocol/nodes.js +4 -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/protocol/usync.js +14 -0
- package/dist/retry/codec.js +220 -0
- package/dist/retry/constants.js +1 -1
- package/dist/retry/index.js +7 -5
- package/dist/retry/parse.js +88 -85
- package/dist/retry/replay.js +52 -49
- package/dist/retry/tracker.js +97 -0
- package/dist/signal/api/SignalDeviceSyncApi.js +273 -89
- package/dist/signal/api/SignalDigestSyncApi.js +17 -8
- package/dist/signal/api/SignalIdentitySyncApi.js +66 -36
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +82 -63
- package/dist/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/signal/api/SignalSessionSyncApi.js +36 -34
- package/dist/signal/api/result-map.js +13 -0
- package/dist/signal/constants.js +1 -5
- package/dist/signal/crypto/WaAdvSignature.js +11 -7
- package/dist/signal/{store/sqlite.js → encoding.js} +94 -61
- package/dist/signal/group/SenderKeyChain.js +27 -22
- package/dist/signal/group/SenderKeyCodec.js +5 -6
- package/dist/signal/group/SenderKeyManager.js +144 -115
- package/dist/signal/index.js +15 -1
- package/dist/signal/registration/keygen.js +6 -2
- package/dist/signal/registration/utils.js +1 -0
- package/dist/signal/session/SignalProtocol.js +164 -53
- package/dist/signal/session/SignalRatchet.js +24 -15
- package/dist/signal/session/SignalSession.js +14 -9
- package/dist/signal/session/resolver.js +224 -0
- package/dist/store/contracts/privacy-token.store.js +2 -0
- package/dist/store/createStore.js +100 -188
- 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 +4 -7
- package/dist/store/providers/memory/appstate.store.js +36 -14
- package/dist/store/providers/memory/contact.store.js +5 -0
- package/dist/store/providers/memory/device-list.store.js +12 -34
- package/dist/store/providers/memory/message.store.js +11 -5
- package/dist/store/providers/memory/participants.store.js +1 -8
- 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 +14 -11
- package/dist/store/providers/memory/signal.store.js +54 -25
- package/dist/store/providers/memory/thread.store.js +5 -0
- package/dist/transport/WaComms.js +30 -26
- package/dist/transport/WaWebSocket.js +148 -18
- package/dist/transport/binary/constants.js +1 -31
- package/dist/transport/binary/decoder.js +8 -8
- package/dist/transport/binary/encoder.js +10 -9
- package/dist/transport/binary/index.js +0 -4
- package/dist/transport/index.js +7 -1
- package/dist/transport/keepalive/WaKeepAlive.js +1 -7
- package/dist/transport/node/WaNodeOrchestrator.js +25 -21
- package/dist/transport/node/WaNodeTransport.js +0 -3
- package/dist/transport/node/builders/{accountSync.js → account-sync.js} +15 -35
- 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 +29 -17
- package/dist/transport/node/builders/message.js +64 -236
- package/dist/transport/node/builders/pairing.js +2 -29
- 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 +49 -0
- package/dist/transport/node/helpers.js +131 -4
- package/dist/transport/node/usync.js +8 -0
- package/dist/transport/node/xml.js +35 -14
- package/dist/transport/noise/WaClientPayload.js +13 -13
- package/dist/transport/noise/WaFrameCodec.js +47 -32
- package/dist/transport/noise/WaNoiseCert.js +5 -8
- package/dist/transport/noise/WaNoiseSession.js +77 -29
- package/dist/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/transport/proxy.js +34 -0
- package/dist/transport/stream/parse.js +20 -52
- package/dist/types/appstate/WaAppStateCrypto.d.ts +0 -1
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +5 -2
- package/dist/types/appstate/constants.d.ts +1 -0
- 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 -3
- package/dist/types/auth/WaAuthClient.d.ts +10 -12
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +1 -1
- package/dist/types/auth/index.d.ts +0 -4
- package/dist/types/auth/pairing/WaQrFlow.d.ts +1 -1
- package/dist/types/auth/types.d.ts +7 -9
- package/dist/types/client/WaClient.d.ts +42 -25
- package/dist/types/client/WaClientFactory.d.ts +33 -26
- package/dist/types/client/connection/WaConnectionManager.d.ts +66 -0
- package/dist/types/client/connection/WaKeyShareCoordinator.d.ts +14 -0
- package/dist/types/client/connection/WaReceiptQueue.d.ts +13 -0
- package/dist/types/client/coordinators/WaAppStateMutationCoordinator.d.ts +46 -0
- package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +57 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +3 -2
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +29 -38
- 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 +8 -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/dirty.d.ts +1 -0
- package/dist/types/client/events/devices.d.ts +20 -0
- package/dist/types/client/events/group.d.ts +2 -1
- 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/messaging/fanout.d.ts +14 -0
- package/dist/types/client/messaging/key-protocol.d.ts +18 -0
- package/dist/types/client/messaging/participants.d.ts +13 -0
- 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 +75 -4
- package/dist/types/crypto/core/hkdf.d.ts +0 -6
- package/dist/types/crypto/core/index.d.ts +2 -3
- 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 +2 -7
- package/dist/types/crypto/index.d.ts +0 -1
- 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/log/ConsoleLogger.d.ts +2 -1
- package/dist/types/infra/log/PinoLogger.d.ts +1 -1
- package/dist/types/infra/log/types.d.ts +1 -0
- package/dist/types/infra/perf/BackgroundQueue.d.ts +58 -0
- package/dist/types/infra/perf/BoundedTaskQueue.d.ts +1 -1
- 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 +16 -15
- 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 +15 -2
- package/dist/types/message/addon-crypto.d.ts +25 -0
- package/dist/types/message/content.d.ts +8 -0
- package/dist/types/message/icdc.d.ts +13 -0
- package/dist/types/message/index.d.ts +2 -0
- package/dist/types/message/reporting-token.d.ts +18 -0
- package/dist/types/message/types.d.ts +45 -6
- package/dist/types/message/use-case-secret.d.ts +20 -0
- package/dist/types/protocol/appstate.d.ts +47 -0
- package/dist/types/protocol/constants.d.ts +8 -3
- package/dist/types/protocol/defaults.d.ts +6 -0
- package/dist/types/protocol/index.d.ts +2 -11
- package/dist/types/protocol/jid.d.ts +22 -5
- package/dist/types/protocol/message.d.ts +60 -0
- package/dist/types/protocol/nodes.d.ts +4 -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/protocol/usync.d.ts +11 -0
- package/dist/types/retry/codec.d.ts +3 -0
- package/dist/types/retry/index.d.ts +4 -3
- package/dist/types/retry/parse.d.ts +5 -2
- package/dist/types/retry/replay.d.ts +0 -4
- package/dist/types/retry/tracker.d.ts +20 -0
- package/dist/types/retry/types.d.ts +10 -4
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +15 -2
- 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/SenderKeyCodec.d.ts +4 -6
- package/dist/types/signal/group/SenderKeyManager.d.ts +10 -5
- package/dist/types/signal/index.d.ts +3 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +19 -4
- package/dist/types/signal/session/resolver.d.ts +22 -0
- package/dist/types/store/contracts/appstate.store.d.ts +4 -1
- package/dist/types/store/contracts/contact.store.d.ts +1 -0
- package/dist/types/store/contracts/device-list.store.d.ts +0 -3
- package/dist/types/store/contracts/message.store.d.ts +1 -0
- package/dist/types/store/contracts/participants.store.d.ts +0 -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/sender-key.store.d.ts +0 -1
- package/dist/types/store/contracts/signal.store.d.ts +13 -0
- package/dist/types/store/contracts/thread.store.d.ts +1 -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 +3 -1
- package/dist/types/store/providers/memory/contact.store.d.ts +1 -0
- package/dist/types/store/providers/memory/device-list.store.d.ts +0 -3
- package/dist/types/store/providers/memory/message.store.d.ts +1 -0
- package/dist/types/store/providers/memory/participants.store.d.ts +0 -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/sender-key.store.d.ts +0 -1
- package/dist/types/store/providers/memory/signal.store.d.ts +8 -1
- package/dist/types/store/providers/memory/thread.store.d.ts +1 -0
- package/dist/types/store/types.d.ts +49 -58
- package/dist/types/transport/WaWebSocket.d.ts +3 -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 +2 -1
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +0 -1
- package/dist/types/transport/node/WaNodeOrchestrator.d.ts +3 -4
- package/dist/types/transport/node/WaNodeTransport.d.ts +0 -9
- 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/group.d.ts +4 -6
- package/dist/types/transport/node/builders/index.d.ts +7 -3
- package/dist/types/transport/node/builders/message.d.ts +20 -30
- 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 +2 -5
- package/dist/types/transport/node/builders/usync.d.ts +21 -0
- package/dist/types/transport/node/helpers.d.ts +13 -0
- package/dist/types/transport/node/usync.d.ts +2 -0
- package/dist/types/transport/noise/WaFrameCodec.d.ts +3 -0
- package/dist/types/transport/noise/WaNoiseSession.d.ts +4 -2
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +4 -2
- package/dist/types/transport/proxy.d.ts +6 -0
- package/dist/types/transport/stream/parse.d.ts +0 -1
- package/dist/types/transport/types.d.ts +18 -1
- package/dist/types/util/bytes.d.ts +5 -0
- package/dist/types/util/index.d.ts +5 -0
- package/dist/types/util/primitives.d.ts +2 -0
- package/dist/util/bytes.js +72 -46
- package/dist/util/coercion.js +6 -14
- package/dist/util/index.js +23 -0
- package/dist/util/primitives.js +42 -14
- package/package.json +52 -9
- package/proto/index.js +1 -1
- package/dist/crypto/core/constants.js +0 -4
- package/dist/crypto/core/encoding.js +0 -29
- package/dist/esm/crypto/core/constants.js +0 -1
- package/dist/esm/crypto/core/encoding.js +0 -25
- package/dist/esm/retry/outbound.js +0 -83
- package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +0 -37
- package/dist/esm/store/providers/sqlite/appstate.store.js +0 -169
- package/dist/esm/store/providers/sqlite/auth.store.js +0 -176
- package/dist/esm/store/providers/sqlite/connection.js +0 -240
- package/dist/esm/store/providers/sqlite/contact.store.js +0 -61
- package/dist/esm/store/providers/sqlite/device-list.store.js +0 -155
- package/dist/esm/store/providers/sqlite/message.store.js +0 -119
- package/dist/esm/store/providers/sqlite/migrations.js +0 -347
- package/dist/esm/store/providers/sqlite/participants.store.js +0 -85
- package/dist/esm/store/providers/sqlite/retry.store.js +0 -144
- package/dist/esm/store/providers/sqlite/sender-key.store.js +0 -203
- package/dist/esm/store/providers/sqlite/signal.store.js +0 -353
- package/dist/esm/store/providers/sqlite/thread.store.js +0 -72
- package/dist/esm/util/base64.js +0 -18
- package/dist/esm/util/signal-address.js +0 -5
- package/dist/retry/outbound.js +0 -88
- package/dist/store/providers/sqlite/BaseSqliteStore.js +0 -41
- package/dist/store/providers/sqlite/appstate.store.js +0 -173
- package/dist/store/providers/sqlite/auth.store.js +0 -180
- package/dist/store/providers/sqlite/connection.js +0 -276
- package/dist/store/providers/sqlite/contact.store.js +0 -65
- package/dist/store/providers/sqlite/device-list.store.js +0 -159
- package/dist/store/providers/sqlite/message.store.js +0 -123
- package/dist/store/providers/sqlite/migrations.js +0 -350
- package/dist/store/providers/sqlite/participants.store.js +0 -89
- package/dist/store/providers/sqlite/retry.store.js +0 -148
- package/dist/store/providers/sqlite/sender-key.store.js +0 -207
- package/dist/store/providers/sqlite/signal.store.js +0 -357
- package/dist/store/providers/sqlite/thread.store.js +0 -76
- package/dist/types/appstate/store/sqlite.d.ts +0 -21
- package/dist/types/crypto/core/constants.d.ts +0 -1
- package/dist/types/crypto/core/encoding.d.ts +0 -11
- 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 -15
- 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 -10
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -18
- package/dist/types/store/providers/sqlite/message.store.d.ts +0 -11
- package/dist/types/store/providers/sqlite/migrations.d.ts +0 -3
- package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -13
- package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -16
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -25
- package/dist/types/store/providers/sqlite/signal.store.d.ts +0 -46
- package/dist/types/store/providers/sqlite/thread.store.d.ts +0 -11
- package/dist/types/util/base64.d.ts +0 -4
- package/dist/types/util/signal-address.d.ts +0 -2
- package/dist/util/base64.js +0 -24
- package/dist/util/signal-address.js +0 -8
- /package/dist/types/transport/node/builders/{accountSync.d.ts → account-sync.d.ts} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { SignalIdentitySyncApi } from '../api/SignalIdentitySyncApi';
|
|
3
|
+
import type { SignalSessionSyncApi } from '../api/SignalSessionSyncApi';
|
|
4
|
+
import type { SignalProtocol } from '../session/SignalProtocol';
|
|
5
|
+
import type { SignalAddress, SignalSessionRecord } from '../types';
|
|
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
|
+
}
|
|
12
|
+
export type SignalSessionResolver = {
|
|
13
|
+
ensureSession(address: SignalAddress, jid: string, expectedIdentity?: Uint8Array, reasonIdentity?: boolean): Promise<void>;
|
|
14
|
+
ensureSessionsBatch(targetJids: readonly string[], expectedIdentityByJid?: ReadonlyMap<string, Uint8Array>): Promise<readonly SignalResolvedSessionTarget[]>;
|
|
15
|
+
};
|
|
16
|
+
export declare function createSignalSessionResolver(options: {
|
|
17
|
+
readonly signalProtocol: SignalProtocol;
|
|
18
|
+
readonly signalStore: WaSignalStore;
|
|
19
|
+
readonly signalIdentitySync: SignalIdentitySyncApi;
|
|
20
|
+
readonly signalSessionSync: SignalSessionSyncApi;
|
|
21
|
+
readonly logger: Logger;
|
|
22
|
+
}): SignalSessionResolver;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AppStateCollectionName, WaAppStateStoreData, WaAppStateSyncKey } from '../../appstate/types';
|
|
2
2
|
export interface WaAppStateCollectionStoreState {
|
|
3
|
+
readonly initialized: boolean;
|
|
3
4
|
readonly version: number;
|
|
4
5
|
readonly hash: Uint8Array;
|
|
5
6
|
readonly indexValueMap: ReadonlyMap<string, Uint8Array>;
|
|
@@ -13,10 +14,12 @@ export interface WaAppStateCollectionStateUpdate {
|
|
|
13
14
|
export interface WaAppStateStore {
|
|
14
15
|
exportData(): Promise<WaAppStateStoreData>;
|
|
15
16
|
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
16
|
-
|
|
17
|
+
getSyncKeysBatch(keyIds: readonly Uint8Array[]): Promise<readonly (WaAppStateSyncKey | null)[]>;
|
|
17
18
|
getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
|
|
19
|
+
getSyncKeyDataBatch(keyIds: readonly Uint8Array[]): Promise<readonly (Uint8Array | null)[]>;
|
|
18
20
|
getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
|
|
19
21
|
getCollectionState(collection: AppStateCollectionName): Promise<WaAppStateCollectionStoreState>;
|
|
22
|
+
getCollectionStates(collections: readonly AppStateCollectionName[]): Promise<readonly WaAppStateCollectionStoreState[]>;
|
|
20
23
|
setCollectionStates(updates: readonly WaAppStateCollectionStateUpdate[]): Promise<void>;
|
|
21
24
|
clear(): Promise<void>;
|
|
22
25
|
}
|
|
@@ -8,6 +8,7 @@ export interface WaStoredContactRecord {
|
|
|
8
8
|
}
|
|
9
9
|
export interface WaContactStore {
|
|
10
10
|
upsert(record: WaStoredContactRecord): Promise<void>;
|
|
11
|
+
upsertBatch(records: readonly WaStoredContactRecord[]): Promise<void>;
|
|
11
12
|
getByJid(jid: string): Promise<WaStoredContactRecord | null>;
|
|
12
13
|
deleteByJid(jid: string): Promise<number>;
|
|
13
14
|
clear(): Promise<void>;
|
|
@@ -4,11 +4,8 @@ export interface WaDeviceListSnapshot {
|
|
|
4
4
|
readonly updatedAtMs: number;
|
|
5
5
|
}
|
|
6
6
|
export interface WaDeviceListStore {
|
|
7
|
-
getTtlMs(): number;
|
|
8
7
|
destroy?(): Promise<void>;
|
|
9
|
-
upsertUserDevices(snapshot: WaDeviceListSnapshot): Promise<void>;
|
|
10
8
|
upsertUserDevicesBatch(snapshots: readonly WaDeviceListSnapshot[]): Promise<void>;
|
|
11
|
-
getUserDevices(userJid: string, nowMs?: number): Promise<WaDeviceListSnapshot | null>;
|
|
12
9
|
getUserDevicesBatch(userJids: readonly string[], nowMs?: number): Promise<readonly (WaDeviceListSnapshot | null)[]>;
|
|
13
10
|
deleteUserDevices(userJid: string): Promise<number>;
|
|
14
11
|
cleanupExpired(nowMs: number): Promise<number>;
|
|
@@ -11,6 +11,7 @@ export interface WaStoredMessageRecord {
|
|
|
11
11
|
}
|
|
12
12
|
export interface WaMessageStore {
|
|
13
13
|
upsert(record: WaStoredMessageRecord): Promise<void>;
|
|
14
|
+
upsertBatch(records: readonly WaStoredMessageRecord[]): Promise<void>;
|
|
14
15
|
getById(id: string): Promise<WaStoredMessageRecord | null>;
|
|
15
16
|
listByThread(threadJid: string, limit?: number, beforeTimestampMs?: number): Promise<readonly WaStoredMessageRecord[]>;
|
|
16
17
|
deleteById(id: string): Promise<number>;
|
|
@@ -4,7 +4,6 @@ export interface WaParticipantsSnapshot {
|
|
|
4
4
|
readonly updatedAtMs: number;
|
|
5
5
|
}
|
|
6
6
|
export interface WaParticipantsStore {
|
|
7
|
-
getTtlMs(): number;
|
|
8
7
|
destroy?(): Promise<void>;
|
|
9
8
|
upsertGroupParticipants(snapshot: WaParticipantsSnapshot): Promise<void>;
|
|
10
9
|
getGroupParticipants(groupJid: string, nowMs?: number): Promise<WaParticipantsSnapshot | 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>;
|
|
@@ -8,7 +8,6 @@ export interface WaSenderKeyStore {
|
|
|
8
8
|
readonly skDistribList: readonly SenderKeyDistributionRecord[];
|
|
9
9
|
}>;
|
|
10
10
|
getDeviceSenderKey(groupId: string, sender: SignalAddress): Promise<SenderKeyRecord | null>;
|
|
11
|
-
getDeviceSenderKeyDistribution(groupId: string, sender: SignalAddress): Promise<SenderKeyDistributionRecord | null>;
|
|
12
11
|
getDeviceSenderKeyDistributions(groupId: string, senders: readonly SignalAddress[]): Promise<readonly (SenderKeyDistributionRecord | null)[]>;
|
|
13
12
|
deleteDeviceSenderKey(target: SignalAddress, groupId?: string): Promise<number>;
|
|
14
13
|
markForgetSenderKey(groupId: string, participants: readonly SignalAddress[]): Promise<number>;
|
|
@@ -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,12 +22,19 @@ 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>;
|
|
29
|
+
getSessionsBatch(addresses: readonly SignalAddress[]): Promise<readonly (SignalSessionRecord | null)[]>;
|
|
22
30
|
setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
|
|
31
|
+
setSessionsBatch(entries: readonly {
|
|
32
|
+
readonly address: SignalAddress;
|
|
33
|
+
readonly session: SignalSessionRecord;
|
|
34
|
+
}[]): Promise<void>;
|
|
23
35
|
deleteSession(address: SignalAddress): Promise<void>;
|
|
24
36
|
getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
|
|
37
|
+
getRemoteIdentities(addresses: readonly SignalAddress[]): Promise<readonly (Uint8Array | null)[]>;
|
|
25
38
|
setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
|
|
26
39
|
setRemoteIdentities(entries: readonly {
|
|
27
40
|
readonly address: SignalAddress;
|
|
@@ -10,6 +10,7 @@ export interface WaStoredThreadRecord {
|
|
|
10
10
|
}
|
|
11
11
|
export interface WaThreadStore {
|
|
12
12
|
upsert(record: WaStoredThreadRecord): Promise<void>;
|
|
13
|
+
upsertBatch(records: readonly WaStoredThreadRecord[]): Promise<void>;
|
|
13
14
|
getByJid(jid: string): Promise<WaStoredThreadRecord | null>;
|
|
14
15
|
list(limit?: number): Promise<readonly WaStoredThreadRecord[]>;
|
|
15
16
|
deleteByJid(jid: string): Promise<number>;
|
|
@@ -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;
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
export { WaAuthSqliteStore } from './providers/sqlite/auth.store';
|
|
3
|
-
export { WaAppStateSqliteStore } from './providers/sqlite/appstate.store';
|
|
1
|
+
export type { WaCreateStoreOptions, WaStore, WaStoreBackend, WaCacheDomain, WaStoreDomain, WaStoreMemoryLimitSelection, WaStoreSession } from './types';
|
|
4
2
|
export { createStore } from './createStore';
|
|
5
3
|
export type { WaAuthStore } from './contracts/auth.store';
|
|
6
4
|
export type { WaContactStore, WaStoredContactRecord } from './contracts/contact.store';
|
|
7
5
|
export type { WaDeviceListSnapshot, WaDeviceListStore } from './contracts/device-list.store';
|
|
8
6
|
export type { WaMessageStore, WaStoredMessageRecord } from './contracts/message.store';
|
|
9
7
|
export type { WaParticipantsSnapshot, WaParticipantsStore } from './contracts/participants.store';
|
|
10
|
-
export type { WaAppStateCollectionStoreState, WaAppStateStore } from './contracts/appstate.store';
|
|
8
|
+
export type { WaAppStateCollectionStateUpdate, WaAppStateCollectionStoreState, WaAppStateStore } from './contracts/appstate.store';
|
|
11
9
|
export type { WaSenderKeyStore } from './contracts/sender-key.store';
|
|
12
|
-
export type { WaSignalStore } from './contracts/signal.store';
|
|
10
|
+
export type { WaSignalMetaSnapshot, WaSignalStore } from './contracts/signal.store';
|
|
13
11
|
export type { WaRetryStore } from './contracts/retry.store';
|
|
14
12
|
export type { WaStoredThreadRecord, WaThreadStore } from './contracts/thread.store';
|
|
15
|
-
export {
|
|
16
|
-
export { SenderKeySqliteStore } from './providers/sqlite/sender-key.store';
|
|
17
|
-
export { WaRetrySqliteStore } from './providers/sqlite/retry.store';
|
|
18
|
-
export { WaParticipantsSqliteStore } from './providers/sqlite/participants.store';
|
|
19
|
-
export { WaDeviceListSqliteStore } from './providers/sqlite/device-list.store';
|
|
13
|
+
export type { WaPrivacyTokenStore, WaStoredPrivacyTokenRecord } from './contracts/privacy-token.store';
|
|
20
14
|
export { WaAppStateMemoryStore } from './providers/memory/appstate.store';
|
|
21
15
|
export { WaSignalMemoryStore } from './providers/memory/signal.store';
|
|
22
16
|
export { SenderKeyMemoryStore } from './providers/memory/sender-key.store';
|
|
@@ -26,6 +20,4 @@ export { WaDeviceListMemoryStore } from './providers/memory/device-list.store';
|
|
|
26
20
|
export { WaContactMemoryStore } from './providers/memory/contact.store';
|
|
27
21
|
export { WaMessageMemoryStore } from './providers/memory/message.store';
|
|
28
22
|
export { WaThreadMemoryStore } from './providers/memory/thread.store';
|
|
29
|
-
export {
|
|
30
|
-
export { WaMessageSqliteStore } from './providers/sqlite/message.store';
|
|
31
|
-
export { WaThreadSqliteStore } from './providers/sqlite/thread.store';
|
|
23
|
+
export { WaPrivacyTokenMemoryStore } from './providers/memory/privacy-token.store';
|
|
@@ -12,10 +12,12 @@ export declare class WaAppStateMemoryStore implements WaAppStateStore {
|
|
|
12
12
|
constructor(initial?: WaAppStateStoreData, options?: WaAppStateMemoryStoreOptions);
|
|
13
13
|
exportData(): Promise<WaAppStateStoreData>;
|
|
14
14
|
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
15
|
-
|
|
15
|
+
getSyncKeysBatch(keyIds: readonly Uint8Array[]): Promise<readonly (WaAppStateSyncKey | null)[]>;
|
|
16
16
|
getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
|
|
17
|
+
getSyncKeyDataBatch(keyIds: readonly Uint8Array[]): Promise<readonly (Uint8Array | null)[]>;
|
|
17
18
|
getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
|
|
18
19
|
getCollectionState(collection: AppStateCollectionName): Promise<WaAppStateCollectionStoreState>;
|
|
20
|
+
getCollectionStates(collections: readonly AppStateCollectionName[]): Promise<readonly WaAppStateCollectionStoreState[]>;
|
|
19
21
|
setCollectionStates(updates: readonly WaAppStateCollectionStateUpdate[]): Promise<void>;
|
|
20
22
|
clear(): Promise<void>;
|
|
21
23
|
}
|
|
@@ -7,6 +7,7 @@ export declare class WaContactMemoryStore implements Contract {
|
|
|
7
7
|
private readonly maxContacts;
|
|
8
8
|
constructor(options?: WaContactMemoryStoreOptions);
|
|
9
9
|
upsert(record: WaStoredContactRecord): Promise<void>;
|
|
10
|
+
upsertBatch(records: readonly WaStoredContactRecord[]): Promise<void>;
|
|
10
11
|
getByJid(jid: string): Promise<WaStoredContactRecord | null>;
|
|
11
12
|
deleteByJid(jid: string): Promise<number>;
|
|
12
13
|
clear(): Promise<void>;
|
|
@@ -8,10 +8,7 @@ export declare class WaDeviceListMemoryStore implements WaDeviceListStore {
|
|
|
8
8
|
private readonly maxUsers;
|
|
9
9
|
private readonly cleanupTimer;
|
|
10
10
|
constructor(ttlMs?: number, options?: WaDeviceListMemoryStoreOptions);
|
|
11
|
-
getTtlMs(): number;
|
|
12
|
-
upsertUserDevices(snapshot: WaDeviceListSnapshot): Promise<void>;
|
|
13
11
|
upsertUserDevicesBatch(snapshots: readonly WaDeviceListSnapshot[]): Promise<void>;
|
|
14
|
-
getUserDevices(userJid: string, nowMs?: number): Promise<WaDeviceListSnapshot | null>;
|
|
15
12
|
getUserDevicesBatch(userJids: readonly string[], nowMs?: number): Promise<readonly (WaDeviceListSnapshot | null)[]>;
|
|
16
13
|
deleteUserDevices(userJid: string): Promise<number>;
|
|
17
14
|
cleanupExpired(nowMs: number): Promise<number>;
|
|
@@ -7,6 +7,7 @@ export declare class WaMessageMemoryStore implements Contract {
|
|
|
7
7
|
private readonly maxMessages;
|
|
8
8
|
constructor(options?: WaMessageMemoryStoreOptions);
|
|
9
9
|
upsert(record: WaStoredMessageRecord): Promise<void>;
|
|
10
|
+
upsertBatch(records: readonly WaStoredMessageRecord[]): Promise<void>;
|
|
10
11
|
getById(id: string): Promise<WaStoredMessageRecord | null>;
|
|
11
12
|
listByThread(threadJid: string, limit?: number, beforeTimestampMs?: number): Promise<readonly WaStoredMessageRecord[]>;
|
|
12
13
|
deleteById(id: string): Promise<number>;
|
|
@@ -8,7 +8,6 @@ export declare class WaParticipantsMemoryStore implements WaParticipantsStore {
|
|
|
8
8
|
private readonly maxGroups;
|
|
9
9
|
private readonly cleanupTimer;
|
|
10
10
|
constructor(ttlMs?: number, options?: WaParticipantsMemoryStoreOptions);
|
|
11
|
-
getTtlMs(): number;
|
|
12
11
|
upsertGroupParticipants(snapshot: WaParticipantsSnapshot): Promise<void>;
|
|
13
12
|
getGroupParticipants(groupJid: string, nowMs?: number): Promise<WaParticipantsSnapshot | null>;
|
|
14
13
|
deleteGroupParticipants(groupJid: string): Promise<number>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WaPrivacyTokenStore, WaStoredPrivacyTokenRecord } from '../../contracts/privacy-token.store';
|
|
2
|
+
export declare class WaPrivacyTokenMemoryStore implements WaPrivacyTokenStore {
|
|
3
|
+
private readonly records;
|
|
4
|
+
private readonly maxEntries;
|
|
5
|
+
constructor(maxEntries?: number);
|
|
6
|
+
upsert(record: WaStoredPrivacyTokenRecord): Promise<void>;
|
|
7
|
+
upsertBatch(records: readonly WaStoredPrivacyTokenRecord[]): Promise<void>;
|
|
8
|
+
getByJid(jid: string): Promise<WaStoredPrivacyTokenRecord | null>;
|
|
9
|
+
deleteByJid(jid: string): Promise<number>;
|
|
10
|
+
clear(): Promise<void>;
|
|
11
|
+
destroy(): Promise<void>;
|
|
12
|
+
private mergeRecord;
|
|
13
|
+
}
|
|
@@ -2,14 +2,22 @@ import type { WaRetryOutboundMessageRecord, WaRetryOutboundState } from '../../.
|
|
|
2
2
|
import type { WaRetryStore } from '../../contracts/retry.store';
|
|
3
3
|
export declare class WaRetryMemoryStore implements WaRetryStore {
|
|
4
4
|
private readonly outboundMessages;
|
|
5
|
+
private readonly eligibleSets;
|
|
5
6
|
private readonly inboundCounters;
|
|
6
7
|
private readonly ttlMs;
|
|
7
8
|
private readonly cleanupTimer;
|
|
8
9
|
constructor(ttlMs?: number);
|
|
9
10
|
getTtlMs(): number;
|
|
11
|
+
supportsRawReplayPayload(): boolean;
|
|
12
|
+
getOutboundRequesterStatus(messageId: string, requesterDeviceJid: string): Promise<{
|
|
13
|
+
readonly eligible: boolean;
|
|
14
|
+
readonly delivered: boolean;
|
|
15
|
+
} | null>;
|
|
10
16
|
upsertOutboundMessage(record: WaRetryOutboundMessageRecord): Promise<void>;
|
|
17
|
+
deleteOutboundMessage(messageId: string): Promise<number>;
|
|
11
18
|
getOutboundMessage(messageId: string): Promise<WaRetryOutboundMessageRecord | null>;
|
|
12
19
|
updateOutboundMessageState(messageId: string, state: WaRetryOutboundState, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
20
|
+
markOutboundRequesterDelivered(messageId: string, requesterDeviceJid: string, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
13
21
|
incrementInboundCounter(messageId: string, requesterJid: string, _updatedAtMs: number, expiresAtMs: number): Promise<number>;
|
|
14
22
|
cleanupExpired(nowMs: number): Promise<number>;
|
|
15
23
|
clear(): Promise<void>;
|
|
@@ -18,7 +18,6 @@ export declare class SenderKeyMemoryStore implements WaSenderKeyStoreContract {
|
|
|
18
18
|
readonly skDistribList: readonly SenderKeyDistributionRecord[];
|
|
19
19
|
}>;
|
|
20
20
|
getDeviceSenderKey(groupId: string, sender: SignalAddress): Promise<SenderKeyRecord | null>;
|
|
21
|
-
getDeviceSenderKeyDistribution(groupId: string, sender: SignalAddress): Promise<SenderKeyDistributionRecord | null>;
|
|
22
21
|
getDeviceSenderKeyDistributions(groupId: string, senders: readonly SignalAddress[]): Promise<readonly (SenderKeyDistributionRecord | null)[]>;
|
|
23
22
|
deleteDeviceSenderKey(target: SignalAddress, groupId?: string): Promise<number>;
|
|
24
23
|
markForgetSenderKey(groupId: string, participants: readonly SignalAddress[]): Promise<number>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PreKeyRecord, RegistrationInfo, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '../../../signal/types';
|
|
2
|
-
import type { WaSignalStore as WaSignalStoreContract } from '../../contracts/signal.store';
|
|
2
|
+
import type { WaSignalMetaSnapshot, WaSignalStore as WaSignalStoreContract } from '../../contracts/signal.store';
|
|
3
3
|
export interface WaSignalMemoryStoreOptions {
|
|
4
4
|
readonly maxPreKeys?: number;
|
|
5
5
|
readonly maxSessions?: number;
|
|
@@ -35,12 +35,19 @@ export declare class WaSignalMemoryStore implements WaSignalStoreContract {
|
|
|
35
35
|
markKeyAsUploaded(keyId: number): Promise<void>;
|
|
36
36
|
setServerHasPreKeys(value: boolean): Promise<void>;
|
|
37
37
|
getServerHasPreKeys(): Promise<boolean>;
|
|
38
|
+
getSignalMeta(): Promise<WaSignalMetaSnapshot>;
|
|
38
39
|
hasSession(address: SignalAddress): Promise<boolean>;
|
|
39
40
|
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
40
41
|
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
42
|
+
getSessionsBatch(addresses: readonly SignalAddress[]): Promise<readonly (SignalSessionRecord | null)[]>;
|
|
41
43
|
setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
|
|
44
|
+
setSessionsBatch(entries: readonly {
|
|
45
|
+
readonly address: SignalAddress;
|
|
46
|
+
readonly session: SignalSessionRecord;
|
|
47
|
+
}[]): Promise<void>;
|
|
42
48
|
deleteSession(address: SignalAddress): Promise<void>;
|
|
43
49
|
getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
|
|
50
|
+
getRemoteIdentities(addresses: readonly SignalAddress[]): Promise<readonly (Uint8Array | null)[]>;
|
|
44
51
|
setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
|
|
45
52
|
setRemoteIdentities(entries: readonly {
|
|
46
53
|
readonly address: SignalAddress;
|
|
@@ -7,6 +7,7 @@ export declare class WaThreadMemoryStore implements Contract {
|
|
|
7
7
|
private readonly maxThreads;
|
|
8
8
|
constructor(options?: WaThreadMemoryStoreOptions);
|
|
9
9
|
upsert(record: WaStoredThreadRecord): Promise<void>;
|
|
10
|
+
upsertBatch(records: readonly WaStoredThreadRecord[]): Promise<void>;
|
|
10
11
|
getByJid(jid: string): Promise<WaStoredThreadRecord | null>;
|
|
11
12
|
list(limit?: number): Promise<readonly WaStoredThreadRecord[]>;
|
|
12
13
|
deleteByJid(jid: string): Promise<number>;
|
|
@@ -4,17 +4,14 @@ import type { WaContactStore } from './contracts/contact.store';
|
|
|
4
4
|
import type { WaDeviceListStore } from './contracts/device-list.store';
|
|
5
5
|
import type { WaMessageStore } from './contracts/message.store';
|
|
6
6
|
import type { WaParticipantsStore } from './contracts/participants.store';
|
|
7
|
+
import type { WaPrivacyTokenStore } from './contracts/privacy-token.store';
|
|
7
8
|
import type { WaRetryStore } from './contracts/retry.store';
|
|
8
9
|
import type { WaSenderKeyStore } from './contracts/sender-key.store';
|
|
9
10
|
import type { WaSignalStore } from './contracts/signal.store';
|
|
10
11
|
import type { WaThreadStore } from './contracts/thread.store';
|
|
11
|
-
export type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
readonly sessionId: string;
|
|
15
|
-
readonly driver?: WaSqliteDriver;
|
|
16
|
-
readonly pragmas?: Readonly<Record<string, string | number>>;
|
|
17
|
-
}
|
|
12
|
+
export type WithDestroyLifecycle<T> = T & {
|
|
13
|
+
readonly destroy?: () => Promise<void>;
|
|
14
|
+
};
|
|
18
15
|
export interface WaStoreSession {
|
|
19
16
|
readonly auth: WaAuthStore;
|
|
20
17
|
readonly signal: WaSignalStore;
|
|
@@ -26,6 +23,7 @@ export interface WaStoreSession {
|
|
|
26
23
|
readonly messages: WaMessageStore;
|
|
27
24
|
readonly threads: WaThreadStore;
|
|
28
25
|
readonly contacts: WaContactStore;
|
|
26
|
+
readonly privacyToken: WaPrivacyTokenStore;
|
|
29
27
|
destroyCaches(): Promise<void>;
|
|
30
28
|
destroy(): Promise<void>;
|
|
31
29
|
}
|
|
@@ -34,30 +32,50 @@ export interface WaStore {
|
|
|
34
32
|
destroyCaches(): Promise<void>;
|
|
35
33
|
destroy(): Promise<void>;
|
|
36
34
|
}
|
|
37
|
-
export interface
|
|
38
|
-
readonly
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
readonly
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
readonly participantsMs?: number;
|
|
54
|
-
readonly deviceListMs?: number;
|
|
35
|
+
export interface WaStoreBackend {
|
|
36
|
+
readonly stores: {
|
|
37
|
+
readonly auth: (sessionId: string) => WaAuthStore;
|
|
38
|
+
readonly signal: (sessionId: string) => WaSignalStore;
|
|
39
|
+
readonly senderKey: (sessionId: string) => WaSenderKeyStore;
|
|
40
|
+
readonly appState: (sessionId: string) => WaAppStateStore;
|
|
41
|
+
readonly messages: (sessionId: string) => WaMessageStore;
|
|
42
|
+
readonly threads: (sessionId: string) => WaThreadStore;
|
|
43
|
+
readonly contacts: (sessionId: string) => WaContactStore;
|
|
44
|
+
readonly privacyToken: (sessionId: string) => WaPrivacyTokenStore;
|
|
45
|
+
};
|
|
46
|
+
readonly caches: {
|
|
47
|
+
readonly retry: (sessionId: string) => WaRetryStore;
|
|
48
|
+
readonly participants: (sessionId: string) => WaParticipantsStore;
|
|
49
|
+
readonly deviceList: (sessionId: string) => WaDeviceListStore;
|
|
50
|
+
};
|
|
55
51
|
}
|
|
56
|
-
export
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
readonly
|
|
60
|
-
readonly
|
|
52
|
+
export type WaStoreDomain = keyof WaStoreBackend['stores'];
|
|
53
|
+
export type WaCacheDomain = keyof WaStoreBackend['caches'];
|
|
54
|
+
export interface WaCreateStoreOptions<B extends string = string> {
|
|
55
|
+
readonly backends?: Readonly<Record<B, WaStoreBackend>>;
|
|
56
|
+
readonly providers?: {
|
|
57
|
+
readonly auth?: B | 'memory';
|
|
58
|
+
readonly signal?: B | 'memory';
|
|
59
|
+
readonly senderKey?: B | 'memory';
|
|
60
|
+
readonly appState?: B | 'memory';
|
|
61
|
+
readonly messages?: B | 'memory' | 'none';
|
|
62
|
+
readonly threads?: B | 'memory' | 'none';
|
|
63
|
+
readonly contacts?: B | 'memory' | 'none';
|
|
64
|
+
readonly privacyToken?: B | 'memory';
|
|
65
|
+
};
|
|
66
|
+
readonly cacheProviders?: {
|
|
67
|
+
readonly retry?: B | 'memory';
|
|
68
|
+
readonly participants?: B | 'memory' | 'none';
|
|
69
|
+
readonly deviceList?: B | 'memory' | 'none';
|
|
70
|
+
};
|
|
71
|
+
readonly memory?: {
|
|
72
|
+
readonly limits?: WaStoreMemoryLimitSelection;
|
|
73
|
+
readonly cacheTtlMs?: {
|
|
74
|
+
readonly retryMs?: number;
|
|
75
|
+
readonly participantsMs?: number;
|
|
76
|
+
readonly deviceListMs?: number;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
61
79
|
}
|
|
62
80
|
export interface WaStoreMemoryLimitSelection {
|
|
63
81
|
readonly appStateSyncKeys?: number;
|
|
@@ -72,32 +90,5 @@ export interface WaStoreMemoryLimitSelection {
|
|
|
72
90
|
readonly messages?: number;
|
|
73
91
|
readonly threads?: number;
|
|
74
92
|
readonly contacts?: number;
|
|
75
|
-
|
|
76
|
-
export type WaStoreDomainValueOrFactory<T> = T | ((sessionId: string) => T);
|
|
77
|
-
export interface WaCreateStoreCustomProviders {
|
|
78
|
-
readonly auth?: WaStoreDomainValueOrFactory<WaAuthStore>;
|
|
79
|
-
readonly signal?: WaStoreDomainValueOrFactory<WaSignalStore>;
|
|
80
|
-
readonly senderKey?: WaStoreDomainValueOrFactory<WaSenderKeyStore>;
|
|
81
|
-
readonly appState?: WaStoreDomainValueOrFactory<WaAppStateStore>;
|
|
82
|
-
readonly messages?: WaStoreDomainValueOrFactory<WaMessageStore>;
|
|
83
|
-
readonly threads?: WaStoreDomainValueOrFactory<WaThreadStore>;
|
|
84
|
-
readonly contacts?: WaStoreDomainValueOrFactory<WaContactStore>;
|
|
85
|
-
}
|
|
86
|
-
export interface WaCreateStoreCustomCacheProviders {
|
|
87
|
-
readonly retry?: WaStoreDomainValueOrFactory<WaRetryStore>;
|
|
88
|
-
readonly participants?: WaStoreDomainValueOrFactory<WaParticipantsStore>;
|
|
89
|
-
readonly deviceList?: WaStoreDomainValueOrFactory<WaDeviceListStore>;
|
|
90
|
-
}
|
|
91
|
-
export interface WaCreateStoreOptions {
|
|
92
|
-
readonly sqlite?: Omit<WaSqliteStorageOptions, 'sessionId'> & {
|
|
93
|
-
readonly batchSizes?: WaStoreSqliteBatchSizeSelection;
|
|
94
|
-
};
|
|
95
|
-
readonly memory?: {
|
|
96
|
-
readonly limits?: WaStoreMemoryLimitSelection;
|
|
97
|
-
};
|
|
98
|
-
readonly providers?: WaStoreProviderSelection;
|
|
99
|
-
readonly cacheProviders?: WaStoreCacheProviderSelection;
|
|
100
|
-
readonly cacheTtlMs?: WaStoreCacheTtlSelection;
|
|
101
|
-
readonly custom?: WaCreateStoreCustomProviders;
|
|
102
|
-
readonly customCache?: WaCreateStoreCustomCacheProviders;
|
|
93
|
+
readonly privacyTokens?: number;
|
|
103
94
|
}
|
|
@@ -10,16 +10,17 @@ export declare class WaWebSocket {
|
|
|
10
10
|
private handlers;
|
|
11
11
|
private socket;
|
|
12
12
|
private closeWaiter;
|
|
13
|
+
private nodeWsCtorPromise;
|
|
13
14
|
constructor(config: WaSocketConfig, logger?: Logger);
|
|
14
15
|
setHandlers(handlers: WaSocketHandlers): void;
|
|
15
16
|
isOpen(): boolean;
|
|
16
17
|
isConnecting(): boolean;
|
|
17
|
-
getReadyState(): number;
|
|
18
18
|
open(): Promise<SocketOpenInfo>;
|
|
19
19
|
close(code?: number, reason?: string): Promise<SocketCloseInfo | null>;
|
|
20
20
|
send(data: string | ArrayBuffer | Uint8Array): Promise<void>;
|
|
21
21
|
private openSingle;
|
|
22
22
|
private openConcurrently;
|
|
23
|
+
private releasePendingSocketsAfterSetupFailure;
|
|
23
24
|
private bindRuntimeHandlers;
|
|
24
25
|
private handleMessage;
|
|
25
26
|
private normalizePayload;
|
|
@@ -33,4 +34,5 @@ export declare class WaWebSocket {
|
|
|
33
34
|
private handleRuntimeClose;
|
|
34
35
|
private closeSocketSafe;
|
|
35
36
|
private createRawSocket;
|
|
37
|
+
private resolveNodeWsConstructor;
|
|
36
38
|
}
|
|
@@ -17,33 +17,3 @@ export declare const NIBBLE_ALPHABET: readonly string[];
|
|
|
17
17
|
export declare const HEX_ALPHABET: readonly string[];
|
|
18
18
|
export declare const SINGLE_BYTE_TOKEN_MAP: ReadonlyMap<string, number>;
|
|
19
19
|
export declare const DICTIONARY_TOKEN_MAPS: readonly ReadonlyMap<string, number>[];
|
|
20
|
-
export declare const WAP_ENCODE_CONSTANTS: Readonly<{
|
|
21
|
-
LIST_EMPTY: 0;
|
|
22
|
-
LIST_8: 248;
|
|
23
|
-
LIST_16: 249;
|
|
24
|
-
JID_PAIR: 250;
|
|
25
|
-
HEX_8: 251;
|
|
26
|
-
BINARY_8: 252;
|
|
27
|
-
BINARY_20: 253;
|
|
28
|
-
BINARY_32: 254;
|
|
29
|
-
NIBBLE_8: 255;
|
|
30
|
-
DICTIONARY_0: 236;
|
|
31
|
-
DICTIONARY_3: 239;
|
|
32
|
-
}>;
|
|
33
|
-
export declare const WAP_DECODE_CONSTANTS: Readonly<{
|
|
34
|
-
LIST_EMPTY: 0;
|
|
35
|
-
LIST_8: 248;
|
|
36
|
-
LIST_16: 249;
|
|
37
|
-
JID_PAIR: 250;
|
|
38
|
-
JID_FB: 246;
|
|
39
|
-
JID_INTEROP: 245;
|
|
40
|
-
JID_U: 247;
|
|
41
|
-
HEX_8: 251;
|
|
42
|
-
BINARY_8: 252;
|
|
43
|
-
BINARY_20: 253;
|
|
44
|
-
BINARY_32: 254;
|
|
45
|
-
NIBBLE_8: 255;
|
|
46
|
-
DICTIONARY_0: 236;
|
|
47
|
-
DICTIONARY_3: 239;
|
|
48
|
-
STREAM_END: 2;
|
|
49
|
-
}>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type { BinaryNode, RawWebSocket, RawWebSocketConstructor, SocketCloseInfo, SocketOpenInfo, WaCommsConfig, WaCommsState, WaNoiseConfig, WaSocketConfig, WaSocketHandlers } from './types';
|
|
1
|
+
export type { BinaryNode, RawWebSocket, RawWebSocketConstructor, WaRawWebSocketInit, SocketCloseInfo, SocketOpenInfo, WaCommsConfig, WaCommsState, WaNoiseConfig, WaProxyAgent, WaProxyDispatcher, WaProxyTransport, WaSocketConfig, WaSocketHandlers } from './types';
|
|
2
|
+
export { isProxyAgent, isProxyDispatcher, isProxyTransport, toProxyAgent, toProxyDispatcher } from './proxy';
|
|
2
3
|
export { WaComms } from './WaComms';
|
|
3
4
|
export { WaWebSocket } from './WaWebSocket';
|
|
4
5
|
export { WaKeepAlive } from './keepalive/WaKeepAlive';
|