zapo-js 0.1.0 → 0.1.2
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 -7
- package/dist/appstate/WaAppStateCrypto.js +18 -25
- package/dist/appstate/WaAppStateSyncClient.js +181 -114
- package/dist/appstate/WaAppStateSyncResponseParser.js +16 -5
- package/dist/appstate/constants.js +4 -3
- package/dist/appstate/utils.js +10 -30
- package/dist/auth/WaAuthClient.js +48 -55
- package/dist/auth/flow/WaAuthCredentialsFlow.js +21 -14
- package/dist/auth/index.js +1 -3
- package/dist/auth/pairing/WaPairingFlow.js +21 -23
- package/dist/auth/pairing/WaQrFlow.js +37 -24
- package/dist/client/WaClient.js +103 -276
- package/dist/client/WaClientFactory.js +227 -110
- package/dist/client/connection/WaConnectionManager.js +292 -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/WaGroupCoordinator.js +27 -17
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +20 -27
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +231 -686
- package/dist/client/coordinators/WaRetryCoordinator.js +70 -37
- package/dist/client/dirty.js +35 -29
- package/dist/client/events/chat.js +4 -3
- package/dist/client/events/group.js +59 -36
- package/dist/client/history-sync.js +53 -63
- package/dist/client/incoming.js +23 -20
- package/dist/client/mailbox.js +8 -8
- package/dist/client/messages.js +4 -4
- package/dist/client/messaging/fanout.js +189 -0
- package/dist/client/messaging/key-protocol.js +130 -0
- package/dist/client/messaging/participants.js +191 -0
- package/dist/crypto/core/hkdf.js +3 -8
- package/dist/crypto/core/index.js +1 -4
- package/dist/crypto/core/keys.js +2 -3
- package/dist/crypto/core/primitives.js +12 -15
- package/dist/crypto/core/random.js +7 -26
- package/dist/crypto/curves/Ed25519.js +7 -8
- package/dist/crypto/curves/X25519.js +13 -16
- package/dist/crypto/index.js +0 -5
- package/dist/esm/appstate/WaAppStateCrypto.js +6 -13
- package/dist/esm/appstate/WaAppStateSyncClient.js +174 -107
- package/dist/esm/appstate/WaAppStateSyncResponseParser.js +17 -6
- package/dist/esm/appstate/constants.js +3 -2
- package/dist/esm/appstate/utils.js +8 -27
- package/dist/esm/auth/WaAuthClient.js +48 -55
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +21 -14
- package/dist/esm/auth/index.js +0 -1
- package/dist/esm/auth/pairing/WaPairingFlow.js +14 -16
- package/dist/esm/auth/pairing/WaQrFlow.js +37 -24
- package/dist/esm/client/WaClient.js +103 -276
- package/dist/esm/client/WaClientFactory.js +227 -110
- package/dist/esm/client/connection/WaConnectionManager.js +288 -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/WaGroupCoordinator.js +20 -10
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +20 -27
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +232 -687
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +71 -38
- package/dist/esm/client/dirty.js +30 -24
- package/dist/esm/client/events/chat.js +4 -3
- package/dist/esm/client/events/group.js +50 -28
- package/dist/esm/client/history-sync.js +50 -60
- package/dist/esm/client/incoming.js +23 -20
- package/dist/esm/client/mailbox.js +8 -8
- package/dist/esm/client/messages.js +1 -1
- package/dist/esm/client/messaging/fanout.js +186 -0
- package/dist/esm/client/messaging/key-protocol.js +127 -0
- package/dist/esm/client/messaging/participants.js +188 -0
- package/dist/esm/crypto/core/hkdf.js +3 -8
- package/dist/esm/crypto/core/index.js +0 -1
- package/dist/esm/crypto/core/keys.js +2 -3
- package/dist/esm/crypto/core/primitives.js +12 -15
- package/dist/esm/crypto/core/random.js +6 -25
- package/dist/esm/crypto/curves/Ed25519.js +4 -5
- package/dist/esm/crypto/curves/X25519.js +10 -13
- package/dist/esm/crypto/index.js +0 -2
- 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/BoundedTaskQueue.js +13 -17
- package/dist/esm/media/WaMediaCrypto.js +2 -4
- package/dist/esm/media/WaMediaTransferClient.js +226 -58
- package/dist/esm/media/conn.js +10 -6
- package/dist/esm/media/constants.js +4 -1
- package/dist/esm/message/WaMessageClient.js +4 -13
- package/dist/esm/message/ack.js +6 -6
- package/dist/esm/message/addon-crypto.js +59 -0
- package/dist/esm/message/incoming.js +106 -111
- package/dist/esm/message/index.js +2 -0
- package/dist/esm/message/reporting-token.js +438 -0
- package/dist/esm/message/use-case-secret.js +49 -0
- package/dist/esm/protocol/appstate.js +58 -0
- package/dist/esm/protocol/constants.js +2 -1
- package/dist/esm/protocol/index.js +2 -10
- package/dist/esm/protocol/jid.js +63 -51
- package/dist/esm/protocol/media.js +3 -3
- package/dist/esm/protocol/nodes.js +2 -0
- package/dist/esm/protocol/usync.js +11 -0
- package/dist/esm/retry/index.js +1 -0
- package/dist/esm/retry/outbound.js +4 -5
- package/dist/esm/retry/parse.js +58 -76
- package/dist/esm/retry/replay.js +48 -49
- package/dist/esm/retry/tracker.js +56 -0
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +249 -82
- package/dist/esm/signal/api/SignalDigestSyncApi.js +6 -1
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +49 -34
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +70 -62
- package/dist/esm/signal/api/SignalSessionSyncApi.js +23 -30
- package/dist/esm/signal/crypto/WaAdvSignature.js +3 -5
- package/dist/esm/signal/group/SenderKeyChain.js +28 -23
- package/dist/esm/signal/group/SenderKeyCodec.js +2 -4
- package/dist/esm/signal/group/SenderKeyManager.js +26 -16
- package/dist/esm/signal/index.js +1 -0
- package/dist/esm/signal/session/SignalProtocol.js +49 -14
- 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 +186 -0
- package/dist/esm/signal/store/sqlite.js +16 -37
- package/dist/esm/store/createStore.js +16 -18
- package/dist/esm/store/noop.store.js +3 -6
- package/dist/esm/store/providers/memory/appstate.store.js +30 -6
- package/dist/esm/store/providers/memory/contact.store.js +5 -0
- package/dist/esm/store/providers/memory/device-list.store.js +3 -30
- 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/sender-key.store.js +5 -7
- package/dist/esm/store/providers/memory/signal.store.js +13 -1
- package/dist/esm/store/providers/memory/thread.store.js +5 -0
- package/dist/esm/store/providers/sqlite/appstate.store.js +82 -1
- package/dist/esm/store/providers/sqlite/connection.js +18 -13
- package/dist/esm/store/providers/sqlite/contact.store.js +31 -18
- package/dist/esm/store/providers/sqlite/device-list.store.js +7 -35
- package/dist/esm/store/providers/sqlite/message.store.js +45 -32
- package/dist/esm/store/providers/sqlite/migrations.js +1 -1
- package/dist/esm/store/providers/sqlite/participants.store.js +1 -9
- package/dist/esm/store/providers/sqlite/retry.store.js +8 -11
- package/dist/esm/store/providers/sqlite/sender-key.store.js +25 -30
- package/dist/esm/store/providers/sqlite/signal.store.js +104 -22
- package/dist/esm/store/providers/sqlite/table-names.js +107 -0
- package/dist/esm/store/providers/sqlite/thread.store.js +35 -22
- package/dist/esm/transport/WaComms.js +25 -23
- package/dist/esm/transport/WaWebSocket.js +115 -12
- package/dist/esm/transport/binary/decoder.js +4 -4
- package/dist/esm/transport/binary/encoder.js +12 -4
- package/dist/esm/transport/index.js +1 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +2 -8
- package/dist/esm/transport/node/WaNodeOrchestrator.js +2 -4
- 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/index.js +2 -1
- package/dist/esm/transport/node/builders/message.js +9 -0
- package/dist/esm/transport/node/builders/pairing.js +4 -5
- package/dist/esm/transport/node/builders/usync.js +41 -0
- package/dist/esm/transport/node/helpers.js +107 -5
- package/dist/esm/transport/node/usync.js +35 -0
- package/dist/esm/transport/noise/WaFrameCodec.js +48 -33
- package/dist/esm/transport/noise/WaNoiseCert.js +3 -6
- package/dist/esm/transport/noise/WaNoiseSession.js +17 -10
- package/dist/esm/transport/proxy.js +27 -0
- package/dist/esm/transport/stream/parse.js +13 -48
- package/dist/esm/util/bytes.js +50 -32
- package/dist/esm/util/coercion.js +6 -14
- package/dist/esm/util/primitives.js +39 -14
- 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/BoundedTaskQueue.js +13 -17
- package/dist/media/WaMediaCrypto.js +1 -3
- package/dist/media/WaMediaTransferClient.js +259 -58
- package/dist/media/conn.js +10 -6
- package/dist/media/constants.js +4 -1
- package/dist/message/WaMessageClient.js +5 -14
- package/dist/message/ack.js +6 -6
- package/dist/message/addon-crypto.js +65 -0
- package/dist/message/incoming.js +104 -109
- package/dist/message/index.js +2 -0
- package/dist/message/reporting-token.js +443 -0
- package/dist/message/use-case-secret.js +55 -0
- package/dist/protocol/appstate.js +59 -1
- package/dist/protocol/constants.js +7 -1
- package/dist/protocol/index.js +20 -42
- package/dist/protocol/jid.js +64 -51
- package/dist/protocol/media.js +3 -3
- package/dist/protocol/nodes.js +2 -0
- package/dist/protocol/usync.js +14 -0
- package/dist/retry/index.js +3 -1
- package/dist/retry/outbound.js +6 -7
- package/dist/retry/parse.js +57 -75
- package/dist/retry/replay.js +46 -47
- package/dist/retry/tracker.js +59 -0
- package/dist/signal/api/SignalDeviceSyncApi.js +247 -80
- package/dist/signal/api/SignalDigestSyncApi.js +6 -1
- package/dist/signal/api/SignalIdentitySyncApi.js +49 -34
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +67 -59
- package/dist/signal/api/SignalSessionSyncApi.js +23 -30
- package/dist/signal/crypto/WaAdvSignature.js +2 -4
- package/dist/signal/group/SenderKeyChain.js +27 -22
- package/dist/signal/group/SenderKeyCodec.js +1 -3
- package/dist/signal/group/SenderKeyManager.js +26 -16
- package/dist/signal/index.js +3 -1
- package/dist/signal/session/SignalProtocol.js +49 -14
- package/dist/signal/session/SignalRatchet.js +24 -15
- package/dist/signal/session/SignalSession.js +14 -9
- package/dist/signal/session/resolver.js +189 -0
- package/dist/signal/store/sqlite.js +16 -37
- package/dist/store/createStore.js +16 -18
- package/dist/store/noop.store.js +3 -6
- package/dist/store/providers/memory/appstate.store.js +28 -4
- package/dist/store/providers/memory/contact.store.js +5 -0
- package/dist/store/providers/memory/device-list.store.js +3 -30
- 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/sender-key.store.js +8 -10
- package/dist/store/providers/memory/signal.store.js +21 -9
- package/dist/store/providers/memory/thread.store.js +5 -0
- package/dist/store/providers/sqlite/appstate.store.js +81 -0
- package/dist/store/providers/sqlite/connection.js +18 -13
- package/dist/store/providers/sqlite/contact.store.js +31 -18
- package/dist/store/providers/sqlite/device-list.store.js +7 -35
- package/dist/store/providers/sqlite/message.store.js +45 -32
- package/dist/store/providers/sqlite/migrations.js +1 -1
- package/dist/store/providers/sqlite/participants.store.js +1 -9
- package/dist/store/providers/sqlite/retry.store.js +8 -11
- package/dist/store/providers/sqlite/sender-key.store.js +24 -29
- package/dist/store/providers/sqlite/signal.store.js +105 -23
- package/dist/store/providers/sqlite/table-names.js +113 -0
- package/dist/store/providers/sqlite/thread.store.js +35 -22
- package/dist/transport/WaComms.js +27 -25
- package/dist/transport/WaWebSocket.js +148 -12
- package/dist/transport/binary/decoder.js +4 -4
- package/dist/transport/binary/encoder.js +12 -4
- package/dist/transport/index.js +7 -1
- package/dist/transport/keepalive/WaKeepAlive.js +1 -7
- package/dist/transport/node/WaNodeOrchestrator.js +2 -4
- 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/index.js +12 -9
- package/dist/transport/node/builders/message.js +9 -0
- package/dist/transport/node/builders/pairing.js +4 -5
- package/dist/transport/node/builders/usync.js +45 -0
- package/dist/transport/node/helpers.js +112 -4
- package/dist/transport/node/usync.js +38 -0
- package/dist/transport/noise/WaFrameCodec.js +47 -32
- package/dist/transport/noise/WaNoiseCert.js +5 -8
- package/dist/transport/noise/WaNoiseSession.js +17 -10
- package/dist/transport/proxy.js +34 -0
- package/dist/transport/stream/parse.js +17 -53
- 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/store/sqlite.d.ts +4 -18
- package/dist/types/appstate/utils.d.ts +0 -1
- package/dist/types/auth/WaAuthClient.d.ts +10 -12
- package/dist/types/auth/index.d.ts +0 -2
- package/dist/types/auth/pairing/WaQrFlow.d.ts +1 -1
- package/dist/types/auth/types.d.ts +6 -9
- package/dist/types/client/WaClient.d.ts +27 -25
- package/dist/types/client/WaClientFactory.d.ts +22 -23
- package/dist/types/client/connection/WaConnectionManager.d.ts +64 -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/WaIncomingNodeCoordinator.d.ts +0 -1
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +18 -41
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +2 -0
- package/dist/types/client/dirty.d.ts +1 -0
- package/dist/types/client/events/group.d.ts +2 -1
- package/dist/types/client/index.d.ts +1 -1
- 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/types.d.ts +24 -1
- package/dist/types/crypto/core/hkdf.d.ts +0 -6
- package/dist/types/crypto/core/index.d.ts +0 -1
- package/dist/types/crypto/core/random.d.ts +1 -7
- package/dist/types/crypto/index.d.ts +0 -2
- package/dist/types/index.d.ts +1 -1
- 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/BoundedTaskQueue.d.ts +1 -1
- package/dist/types/media/WaMediaTransferClient.d.ts +13 -3
- package/dist/types/media/types.d.ts +5 -0
- package/dist/types/message/addon-crypto.d.ts +25 -0
- package/dist/types/message/index.d.ts +2 -0
- package/dist/types/message/reporting-token.d.ts +19 -0
- package/dist/types/message/use-case-secret.d.ts +20 -0
- package/dist/types/protocol/appstate.d.ts +58 -0
- package/dist/types/protocol/constants.d.ts +2 -1
- package/dist/types/protocol/index.d.ts +2 -10
- package/dist/types/protocol/jid.d.ts +3 -3
- package/dist/types/protocol/nodes.d.ts +2 -0
- package/dist/types/protocol/usync.d.ts +11 -0
- package/dist/types/retry/index.d.ts +1 -0
- package/dist/types/retry/replay.d.ts +0 -4
- package/dist/types/retry/tracker.d.ts +19 -0
- package/dist/types/retry/types.d.ts +4 -3
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +13 -1
- package/dist/types/signal/group/SenderKeyCodec.d.ts +4 -6
- package/dist/types/signal/index.d.ts +1 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +9 -0
- package/dist/types/signal/session/resolver.d.ts +17 -0
- package/dist/types/store/contracts/appstate.store.d.ts +3 -0
- 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/sender-key.store.d.ts +0 -1
- package/dist/types/store/contracts/signal.store.d.ts +6 -0
- package/dist/types/store/contracts/thread.store.d.ts +1 -0
- package/dist/types/store/index.d.ts +1 -1
- package/dist/types/store/providers/memory/appstate.store.d.ts +2 -0
- 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/sender-key.store.d.ts +0 -1
- package/dist/types/store/providers/memory/signal.store.d.ts +6 -0
- package/dist/types/store/providers/memory/thread.store.d.ts +1 -0
- package/dist/types/store/providers/sqlite/appstate.store.d.ts +2 -0
- package/dist/types/store/providers/sqlite/contact.store.d.ts +2 -0
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -3
- package/dist/types/store/providers/sqlite/message.store.d.ts +2 -0
- package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -1
- package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -1
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -1
- package/dist/types/store/providers/sqlite/signal.store.d.ts +7 -0
- package/dist/types/store/providers/sqlite/table-names.d.ts +5 -0
- package/dist/types/store/providers/sqlite/thread.store.d.ts +2 -0
- package/dist/types/store/types.d.ts +3 -0
- package/dist/types/transport/WaWebSocket.d.ts +3 -0
- package/dist/types/transport/index.d.ts +2 -1
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +0 -1
- package/dist/types/transport/node/WaNodeTransport.d.ts +0 -9
- package/dist/types/transport/node/builders/group.d.ts +4 -6
- package/dist/types/transport/node/builders/index.d.ts +2 -1
- package/dist/types/transport/node/builders/message.d.ts +14 -25
- package/dist/types/transport/node/builders/retry.d.ts +2 -4
- package/dist/types/transport/node/builders/usync.d.ts +21 -0
- package/dist/types/transport/node/helpers.d.ts +8 -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 +1 -0
- 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/primitives.d.ts +3 -0
- package/dist/util/bytes.js +55 -33
- package/dist/util/coercion.js +6 -14
- package/dist/util/primitives.js +42 -14
- package/package.json +27 -9
- package/proto/index.d.ts +1090 -1048
- package/proto/index.js +1 -1
- package/scripts/check-node-version.cjs +0 -1
- package/dist/crypto/core/encoding.js +0 -29
- package/dist/esm/crypto/core/encoding.js +0 -25
- package/dist/esm/util/base64.js +0 -18
- package/dist/esm/util/signal-address.js +0 -5
- package/dist/types/crypto/core/encoding.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
|
@@ -19,9 +19,15 @@ export interface WaSignalStore {
|
|
|
19
19
|
hasSession(address: SignalAddress): Promise<boolean>;
|
|
20
20
|
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
21
21
|
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
22
|
+
getSessionsBatch(addresses: readonly SignalAddress[]): Promise<readonly (SignalSessionRecord | null)[]>;
|
|
22
23
|
setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
|
|
24
|
+
setSessionsBatch(entries: readonly {
|
|
25
|
+
readonly address: SignalAddress;
|
|
26
|
+
readonly session: SignalSessionRecord;
|
|
27
|
+
}[]): Promise<void>;
|
|
23
28
|
deleteSession(address: SignalAddress): Promise<void>;
|
|
24
29
|
getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
|
|
30
|
+
getRemoteIdentities(addresses: readonly SignalAddress[]): Promise<readonly (Uint8Array | null)[]>;
|
|
25
31
|
setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
|
|
26
32
|
setRemoteIdentities(entries: readonly {
|
|
27
33
|
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,4 +1,4 @@
|
|
|
1
|
-
export type { WaCreateStoreCustomCacheProviders, WaCreateStoreCustomProviders, WaCreateStoreOptions, WaSqliteDriver, WaSqliteStorageOptions, WaStoreSqliteBatchSizeSelection, WaStoreMemoryLimitSelection, WaStoreCacheProviderSelection, WaStoreCacheTtlSelection, WaStore, WaStoreDomainValueOrFactory, WaStoreProviderSelection, WaStoreSession } from './types';
|
|
1
|
+
export type { WaCreateStoreCustomCacheProviders, WaCreateStoreCustomProviders, WaCreateStoreOptions, WaSqliteDriver, WaSqliteTableName, WaSqliteTableNameOverrides, WaSqliteStorageOptions, WaStoreSqliteBatchSizeSelection, WaStoreMemoryLimitSelection, WaStoreCacheProviderSelection, WaStoreCacheTtlSelection, WaStore, WaStoreDomainValueOrFactory, WaStoreProviderSelection, WaStoreSession } from './types';
|
|
2
2
|
export { WaAuthSqliteStore } from './providers/sqlite/auth.store';
|
|
3
3
|
export { WaAppStateSqliteStore } from './providers/sqlite/appstate.store';
|
|
4
4
|
export { createStore } from './createStore';
|
|
@@ -14,8 +14,10 @@ export declare class WaAppStateMemoryStore implements WaAppStateStore {
|
|
|
14
14
|
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
15
15
|
getSyncKey(keyId: Uint8Array): Promise<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>;
|
|
@@ -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>;
|
|
@@ -38,9 +38,15 @@ export declare class WaSignalMemoryStore implements WaSignalStoreContract {
|
|
|
38
38
|
hasSession(address: SignalAddress): Promise<boolean>;
|
|
39
39
|
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
40
40
|
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
41
|
+
getSessionsBatch(addresses: readonly SignalAddress[]): Promise<readonly (SignalSessionRecord | null)[]>;
|
|
41
42
|
setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
|
|
43
|
+
setSessionsBatch(entries: readonly {
|
|
44
|
+
readonly address: SignalAddress;
|
|
45
|
+
readonly session: SignalSessionRecord;
|
|
46
|
+
}[]): Promise<void>;
|
|
42
47
|
deleteSession(address: SignalAddress): Promise<void>;
|
|
43
48
|
getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
|
|
49
|
+
getRemoteIdentities(addresses: readonly SignalAddress[]): Promise<readonly (Uint8Array | null)[]>;
|
|
44
50
|
setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
|
|
45
51
|
setRemoteIdentities(entries: readonly {
|
|
46
52
|
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>;
|
|
@@ -8,8 +8,10 @@ export declare class WaAppStateSqliteStore extends BaseSqliteStore implements Wa
|
|
|
8
8
|
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
9
9
|
getSyncKey(keyId: Uint8Array): Promise<WaAppStateSyncKey | null>;
|
|
10
10
|
getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
|
|
11
|
+
getSyncKeyDataBatch(keyIds: readonly Uint8Array[]): Promise<readonly (Uint8Array | null)[]>;
|
|
11
12
|
getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
|
|
12
13
|
getCollectionState(collection: AppStateCollectionName): Promise<WaAppStateCollectionStoreState>;
|
|
14
|
+
getCollectionStates(collections: readonly AppStateCollectionName[]): Promise<readonly WaAppStateCollectionStoreState[]>;
|
|
13
15
|
setCollectionStates(updates: readonly WaAppStateCollectionStateUpdate[]): Promise<void>;
|
|
14
16
|
clear(): Promise<void>;
|
|
15
17
|
}
|
|
@@ -4,7 +4,9 @@ import type { WaSqliteStorageOptions } from '../../types';
|
|
|
4
4
|
export declare class WaContactSqliteStore extends BaseSqliteStore implements Contract {
|
|
5
5
|
constructor(options: WaSqliteStorageOptions);
|
|
6
6
|
upsert(record: WaStoredContactRecord): Promise<void>;
|
|
7
|
+
upsertBatch(records: readonly WaStoredContactRecord[]): Promise<void>;
|
|
7
8
|
getByJid(jid: string): Promise<WaStoredContactRecord | null>;
|
|
8
9
|
deleteByJid(jid: string): Promise<number>;
|
|
9
10
|
clear(): Promise<void>;
|
|
11
|
+
private upsertContactRow;
|
|
10
12
|
}
|
|
@@ -5,10 +5,7 @@ export declare class WaDeviceListSqliteStore extends BaseSqliteStore implements
|
|
|
5
5
|
private readonly ttlMs;
|
|
6
6
|
private readonly batchSize;
|
|
7
7
|
constructor(options: WaSqliteStorageOptions, ttlMs?: number, batchSize?: number);
|
|
8
|
-
getTtlMs(): number;
|
|
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>;
|
|
@@ -4,8 +4,10 @@ import type { WaSqliteStorageOptions } from '../../types';
|
|
|
4
4
|
export declare class WaMessageSqliteStore extends BaseSqliteStore implements Contract {
|
|
5
5
|
constructor(options: WaSqliteStorageOptions);
|
|
6
6
|
upsert(record: WaStoredMessageRecord): Promise<void>;
|
|
7
|
+
upsertBatch(records: readonly WaStoredMessageRecord[]): Promise<void>;
|
|
7
8
|
getById(id: string): Promise<WaStoredMessageRecord | null>;
|
|
8
9
|
listByThread(threadJid: string, limit?: number, beforeTimestampMs?: number): Promise<readonly WaStoredMessageRecord[]>;
|
|
9
10
|
deleteById(id: string): Promise<number>;
|
|
10
11
|
clear(): Promise<void>;
|
|
12
|
+
private upsertMessageRow;
|
|
11
13
|
}
|
|
@@ -4,7 +4,6 @@ import type { WaSqliteStorageOptions } from '../../types';
|
|
|
4
4
|
export declare class WaParticipantsSqliteStore extends BaseSqliteStore implements WaParticipantsStore {
|
|
5
5
|
private readonly ttlMs;
|
|
6
6
|
constructor(options: WaSqliteStorageOptions, ttlMs?: number);
|
|
7
|
-
getTtlMs(): number;
|
|
8
7
|
upsertGroupParticipants(snapshot: WaParticipantsSnapshot): Promise<void>;
|
|
9
8
|
getGroupParticipants(groupJid: string, nowMs?: number): Promise<WaParticipantsSnapshot | null>;
|
|
10
9
|
deleteGroupParticipants(groupJid: string): Promise<number>;
|
|
@@ -12,5 +12,4 @@ export declare class WaRetrySqliteStore extends BaseSqliteStore implements WaRet
|
|
|
12
12
|
incrementInboundCounter(messageId: string, requesterJid: string, updatedAtMs: number, expiresAtMs: number): Promise<number>;
|
|
13
13
|
cleanupExpired(nowMs: number): Promise<number>;
|
|
14
14
|
clear(): Promise<void>;
|
|
15
|
-
private countRows;
|
|
16
15
|
}
|
|
@@ -13,7 +13,6 @@ export declare class SenderKeySqliteStore extends BaseSqliteStore implements WaS
|
|
|
13
13
|
readonly skDistribList: readonly SenderKeyDistributionRecord[];
|
|
14
14
|
}>;
|
|
15
15
|
getDeviceSenderKey(groupId: string, sender: SignalAddress): Promise<SenderKeyRecord | null>;
|
|
16
|
-
getDeviceSenderKeyDistribution(groupId: string, sender: SignalAddress): Promise<SenderKeyDistributionRecord | null>;
|
|
17
16
|
getDeviceSenderKeyDistributions(groupId: string, senders: readonly SignalAddress[]): Promise<readonly (SenderKeyDistributionRecord | null)[]>;
|
|
18
17
|
deleteDeviceSenderKey(target: SignalAddress, groupId?: string): Promise<number>;
|
|
19
18
|
markForgetSenderKey(groupId: string, participants: readonly SignalAddress[]): Promise<number>;
|
|
@@ -29,9 +29,15 @@ export declare class WaSignalSqliteStore extends BaseSqliteStore implements WaSi
|
|
|
29
29
|
hasSession(address: SignalAddress): Promise<boolean>;
|
|
30
30
|
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
31
31
|
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
32
|
+
getSessionsBatch(addresses: readonly SignalAddress[]): Promise<readonly (SignalSessionRecord | null)[]>;
|
|
32
33
|
setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
|
|
34
|
+
setSessionsBatch(entries: readonly {
|
|
35
|
+
readonly address: SignalAddress;
|
|
36
|
+
readonly session: SignalSessionRecord;
|
|
37
|
+
}[]): Promise<void>;
|
|
33
38
|
deleteSession(address: SignalAddress): Promise<void>;
|
|
34
39
|
getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
|
|
40
|
+
getRemoteIdentities(addresses: readonly SignalAddress[]): Promise<readonly (Uint8Array | null)[]>;
|
|
35
41
|
setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
|
|
36
42
|
setRemoteIdentities(entries: readonly {
|
|
37
43
|
readonly address: SignalAddress;
|
|
@@ -39,6 +45,7 @@ export declare class WaSignalSqliteStore extends BaseSqliteStore implements WaSi
|
|
|
39
45
|
}[]): Promise<void>;
|
|
40
46
|
clear(): Promise<void>;
|
|
41
47
|
private upsertPreKey;
|
|
48
|
+
private upsertSession;
|
|
42
49
|
private ensureMetaRow;
|
|
43
50
|
private getMeta;
|
|
44
51
|
private upsertRemoteIdentity;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WaSqliteTableName, WaSqliteTableNameOverrides } from '../../types';
|
|
2
|
+
export declare const WA_SQLITE_DEFAULT_TABLE_NAMES: Readonly<Record<WaSqliteTableName, string>>;
|
|
3
|
+
export declare function resolveSqliteTableNames(overrides?: WaSqliteTableNameOverrides): Readonly<Record<WaSqliteTableName, string>>;
|
|
4
|
+
export declare function serializeSqliteTableNames(tableNames: Readonly<Record<WaSqliteTableName, string>>): string;
|
|
5
|
+
export declare function createSqliteTableNameSqlResolver(tableNames: Readonly<Record<WaSqliteTableName, string>>): (sql: string) => string;
|
|
@@ -4,8 +4,10 @@ import type { WaSqliteStorageOptions } from '../../types';
|
|
|
4
4
|
export declare class WaThreadSqliteStore extends BaseSqliteStore implements Contract {
|
|
5
5
|
constructor(options: WaSqliteStorageOptions);
|
|
6
6
|
upsert(record: WaStoredThreadRecord): Promise<void>;
|
|
7
|
+
upsertBatch(records: readonly WaStoredThreadRecord[]): Promise<void>;
|
|
7
8
|
getByJid(jid: string): Promise<WaStoredThreadRecord | null>;
|
|
8
9
|
list(limit?: number): Promise<readonly WaStoredThreadRecord[]>;
|
|
9
10
|
deleteByJid(jid: string): Promise<number>;
|
|
10
11
|
clear(): Promise<void>;
|
|
12
|
+
private upsertThreadRow;
|
|
11
13
|
}
|
|
@@ -9,11 +9,14 @@ import type { WaSenderKeyStore } from './contracts/sender-key.store';
|
|
|
9
9
|
import type { WaSignalStore } from './contracts/signal.store';
|
|
10
10
|
import type { WaThreadStore } from './contracts/thread.store';
|
|
11
11
|
export type WaSqliteDriver = 'auto' | 'better-sqlite3' | 'bun';
|
|
12
|
+
export type WaSqliteTableName = 'wa_migrations' | 'auth_credentials' | 'signal_meta' | 'signal_registration' | 'signal_signed_prekey' | 'signal_prekey' | 'signal_session' | 'signal_identity' | 'sender_keys' | 'sender_key_distribution' | 'appstate_sync_keys' | 'appstate_collection_versions' | 'appstate_collection_index_values' | 'retry_outbound_messages' | 'retry_inbound_counters' | 'mailbox_messages' | 'mailbox_threads' | 'mailbox_contacts' | 'group_participants_cache' | 'device_list_cache';
|
|
13
|
+
export type WaSqliteTableNameOverrides = Readonly<Partial<Record<WaSqliteTableName, string>>>;
|
|
12
14
|
export interface WaSqliteStorageOptions {
|
|
13
15
|
readonly path: string;
|
|
14
16
|
readonly sessionId: string;
|
|
15
17
|
readonly driver?: WaSqliteDriver;
|
|
16
18
|
readonly pragmas?: Readonly<Record<string, string | number>>;
|
|
19
|
+
readonly tableNames?: WaSqliteTableNameOverrides;
|
|
17
20
|
}
|
|
18
21
|
export interface WaStoreSession {
|
|
19
22
|
readonly auth: WaAuthStore;
|
|
@@ -10,6 +10,7 @@ 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;
|
|
@@ -20,6 +21,7 @@ export declare class WaWebSocket {
|
|
|
20
21
|
send(data: string | ArrayBuffer | Uint8Array): Promise<void>;
|
|
21
22
|
private openSingle;
|
|
22
23
|
private openConcurrently;
|
|
24
|
+
private releasePendingSocketsAfterSetupFailure;
|
|
23
25
|
private bindRuntimeHandlers;
|
|
24
26
|
private handleMessage;
|
|
25
27
|
private normalizePayload;
|
|
@@ -33,4 +35,5 @@ export declare class WaWebSocket {
|
|
|
33
35
|
private handleRuntimeClose;
|
|
34
36
|
private closeSocketSafe;
|
|
35
37
|
private createRawSocket;
|
|
38
|
+
private resolveNodeWsConstructor;
|
|
36
39
|
}
|
|
@@ -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';
|
|
@@ -2,21 +2,12 @@ import { EventEmitter } from 'node:events';
|
|
|
2
2
|
import type { Logger } from '../../infra/log/types';
|
|
3
3
|
import type { BinaryNode } from '../types';
|
|
4
4
|
import type { WaComms } from '../WaComms';
|
|
5
|
-
interface NodeTransportEventMap {
|
|
6
|
-
readonly frame_in: (frame: Uint8Array) => void;
|
|
7
|
-
readonly frame_out: (frame: Uint8Array) => void;
|
|
8
|
-
readonly node_in: (node: BinaryNode, frame: Uint8Array) => void;
|
|
9
|
-
readonly node_out: (node: BinaryNode, frame: Uint8Array) => void;
|
|
10
|
-
readonly decode_error: (error: Error, frame: Uint8Array) => void;
|
|
11
|
-
}
|
|
12
5
|
export declare class WaNodeTransport extends EventEmitter {
|
|
13
6
|
private readonly logger;
|
|
14
7
|
private comms;
|
|
15
8
|
constructor(logger?: Logger);
|
|
16
|
-
on<K extends keyof NodeTransportEventMap>(event: K, listener: NodeTransportEventMap[K]): this;
|
|
17
9
|
bindComms(comms: WaComms | null): void;
|
|
18
10
|
sendNode(node: BinaryNode): Promise<void>;
|
|
19
11
|
dispatchIncomingFrame(frame: Uint8Array, onNode: (node: BinaryNode) => Promise<void> | void): Promise<void>;
|
|
20
12
|
private shouldIncludeTraceXml;
|
|
21
13
|
}
|
|
22
|
-
export {};
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import type { BinaryNode } from '../../types';
|
|
2
|
-
|
|
2
|
+
export declare function buildCreateGroupIq(input: {
|
|
3
3
|
readonly subject: string;
|
|
4
4
|
readonly participants: readonly string[];
|
|
5
5
|
readonly description?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function buildCreateGroupIq(input: BuildCreateGroupIqInput): BinaryNode;
|
|
6
|
+
}): BinaryNode;
|
|
8
7
|
type GroupParticipantAction = 'add' | 'remove' | 'promote' | 'demote';
|
|
9
|
-
|
|
8
|
+
export declare function buildGroupParticipantChangeIq(input: {
|
|
10
9
|
readonly groupJid: string;
|
|
11
10
|
readonly action: GroupParticipantAction;
|
|
12
11
|
readonly participants: readonly string[];
|
|
13
|
-
}
|
|
14
|
-
export declare function buildGroupParticipantChangeIq(input: BuildGroupParticipantChangeIqInput): BinaryNode;
|
|
12
|
+
}): BinaryNode;
|
|
15
13
|
export declare function buildLeaveGroupIq(groupJids: readonly string[]): BinaryNode;
|
|
16
14
|
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { buildAccountBlocklistSyncIq, buildAccountDevicesSyncIq, buildAccountPictureSyncIq, buildAccountPrivacySyncIq, buildClearDirtyBitsIq, buildGroupsDirtySyncIq, buildNewsletterMetadataSyncIq } from '../../node/builders/
|
|
1
|
+
export { buildAccountBlocklistSyncIq, buildAccountDevicesSyncIq, buildAccountPictureSyncIq, buildAccountPrivacySyncIq, buildClearDirtyBitsIq, buildGroupsDirtySyncIq, buildNewsletterMetadataSyncIq } from '../../node/builders/account-sync';
|
|
2
2
|
export { buildCompanionFinishRequestNode, buildCompanionHelloRequestNode, buildGetCountryCodeRequestNode, buildIqResultNode, buildNotificationAckNode } from '../../node/builders/pairing';
|
|
3
3
|
export { buildMediaConnIq } from '../../node/builders/media';
|
|
4
4
|
export { buildDirectMessageFanoutNode, buildGroupDirectMessageNode, buildGroupRetryMessageNode, buildGroupSenderKeyMessageNode, buildInboundDeliveryReceiptNode, buildInboundMessageAckNode, buildInboundReceiptAckNode, buildInboundRetryReceiptNode, buildInboundRetryReceiptAckNode } from '../../node/builders/message';
|
|
5
5
|
export { buildRetryReceiptNode } from '../../node/builders/retry';
|
|
6
6
|
export { buildMissingPreKeysFetchIq, buildPreKeyUploadIq, buildSignedPreKeyRotateIq } from '../../node/builders/prekeys';
|
|
7
7
|
export { buildCreateGroupIq, buildGroupParticipantChangeIq, buildLeaveGroupIq } from '../../node/builders/group';
|
|
8
|
+
export { buildUsyncIq, buildUsyncUserNode, type BuildUsyncIqInput, type BuildUsyncUserNodeInput, type WaUsyncContext, type WaUsyncMode } from '../../node/builders/usync';
|
|
@@ -4,33 +4,22 @@ interface EncryptedParticipant {
|
|
|
4
4
|
readonly encType: 'msg' | 'pkmsg';
|
|
5
5
|
readonly ciphertext: Uint8Array;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
type DirectMessageFanoutInput = {
|
|
8
8
|
readonly to: string;
|
|
9
9
|
readonly type: string;
|
|
10
10
|
readonly id?: string;
|
|
11
11
|
readonly participants: readonly EncryptedParticipant[];
|
|
12
12
|
readonly deviceIdentity?: Uint8Array;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly type: string;
|
|
17
|
-
readonly groupCiphertext: Uint8Array;
|
|
18
|
-
readonly id?: string;
|
|
19
|
-
readonly phash?: string;
|
|
20
|
-
readonly addressingMode?: 'pn' | 'lid';
|
|
21
|
-
readonly participants: readonly EncryptedParticipant[];
|
|
22
|
-
readonly deviceIdentity?: Uint8Array;
|
|
23
|
-
}
|
|
24
|
-
interface BuildGroupDirectMessageNodeInput {
|
|
25
|
-
readonly to: string;
|
|
26
|
-
readonly type: string;
|
|
27
|
-
readonly id?: string;
|
|
13
|
+
readonly reportingNode?: BinaryNode;
|
|
14
|
+
};
|
|
15
|
+
type GroupMessageFanoutInput = DirectMessageFanoutInput & {
|
|
28
16
|
readonly phash?: string;
|
|
29
17
|
readonly addressingMode?: 'pn' | 'lid';
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
18
|
+
};
|
|
19
|
+
type GroupSenderKeyMessageInput = GroupMessageFanoutInput & {
|
|
20
|
+
readonly groupCiphertext: Uint8Array;
|
|
21
|
+
};
|
|
22
|
+
type GroupRetryMessageInput = {
|
|
34
23
|
readonly to: string;
|
|
35
24
|
readonly type: string;
|
|
36
25
|
readonly id: string;
|
|
@@ -39,14 +28,14 @@ interface BuildGroupRetryMessageNodeInput {
|
|
|
39
28
|
readonly encType: 'msg' | 'pkmsg';
|
|
40
29
|
readonly ciphertext: Uint8Array;
|
|
41
30
|
readonly deviceIdentity?: Uint8Array;
|
|
42
|
-
}
|
|
43
|
-
export declare function buildDirectMessageFanoutNode(input:
|
|
44
|
-
export declare function buildGroupSenderKeyMessageNode(input:
|
|
45
|
-
export declare function buildGroupDirectMessageNode(input:
|
|
31
|
+
};
|
|
32
|
+
export declare function buildDirectMessageFanoutNode(input: DirectMessageFanoutInput): BinaryNode;
|
|
33
|
+
export declare function buildGroupSenderKeyMessageNode(input: GroupSenderKeyMessageInput): BinaryNode;
|
|
34
|
+
export declare function buildGroupDirectMessageNode(input: GroupMessageFanoutInput): BinaryNode;
|
|
46
35
|
export declare function buildInboundMessageAckNode(messageNode: BinaryNode, id: string, to: string, meJid: string | null | undefined): BinaryNode;
|
|
47
36
|
export declare function buildInboundDeliveryReceiptNode(messageNode: BinaryNode, id: string, to: string): BinaryNode;
|
|
48
37
|
export declare function buildInboundRetryReceiptNode(messageNode: BinaryNode, id: string, to: string, meJid?: string | null, retryCount?: number): BinaryNode;
|
|
49
38
|
export declare function buildInboundRetryReceiptAckNode(receiptNode: BinaryNode): BinaryNode;
|
|
50
39
|
export declare function buildInboundReceiptAckNode(receiptNode: BinaryNode): BinaryNode;
|
|
51
|
-
export declare function buildGroupRetryMessageNode(input:
|
|
40
|
+
export declare function buildGroupRetryMessageNode(input: GroupRetryMessageInput): BinaryNode;
|
|
52
41
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { WaRetryKeyBundle } from '../../../retry/types';
|
|
2
2
|
import type { BinaryNode } from '../../types';
|
|
3
|
-
|
|
3
|
+
export declare function buildRetryReceiptNode(input: {
|
|
4
4
|
readonly stanzaId: string;
|
|
5
5
|
readonly to: string;
|
|
6
6
|
readonly participant?: string;
|
|
@@ -13,6 +13,4 @@ interface BuildRetryReceiptNodeInput {
|
|
|
13
13
|
readonly error?: number;
|
|
14
14
|
readonly categoryPeer?: boolean;
|
|
15
15
|
readonly keys?: WaRetryKeyBundle;
|
|
16
|
-
}
|
|
17
|
-
export declare function buildRetryReceiptNode(input: BuildRetryReceiptNodeInput): BinaryNode;
|
|
18
|
-
export {};
|
|
16
|
+
}): BinaryNode;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WA_USYNC_CONTEXTS, WA_USYNC_MODES } from '../../../protocol/constants';
|
|
2
|
+
import type { BinaryNode } from '../../types';
|
|
3
|
+
export type WaUsyncMode = (typeof WA_USYNC_MODES)[keyof typeof WA_USYNC_MODES];
|
|
4
|
+
export type WaUsyncContext = (typeof WA_USYNC_CONTEXTS)[keyof typeof WA_USYNC_CONTEXTS];
|
|
5
|
+
export interface BuildUsyncUserNodeInput {
|
|
6
|
+
readonly jid: string;
|
|
7
|
+
readonly attrs?: Readonly<Record<string, string>>;
|
|
8
|
+
readonly content?: BinaryNode['content'];
|
|
9
|
+
}
|
|
10
|
+
export interface BuildUsyncIqInput {
|
|
11
|
+
readonly sid: string;
|
|
12
|
+
readonly queryProtocolNodes: readonly BinaryNode[];
|
|
13
|
+
readonly users: readonly BuildUsyncUserNodeInput[];
|
|
14
|
+
readonly mode?: WaUsyncMode;
|
|
15
|
+
readonly context?: WaUsyncContext;
|
|
16
|
+
readonly index?: string;
|
|
17
|
+
readonly last?: string;
|
|
18
|
+
readonly hostDomain?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function buildUsyncUserNode(input: BuildUsyncUserNodeInput): BinaryNode;
|
|
21
|
+
export declare function buildUsyncIq(input: BuildUsyncIqInput): BinaryNode;
|
|
@@ -3,6 +3,14 @@ export declare function getNodeChildren(node: BinaryNode): readonly BinaryNode[]
|
|
|
3
3
|
export declare function findNodeChild(node: BinaryNode, tag: string): BinaryNode | undefined;
|
|
4
4
|
export declare function getFirstNodeChild(node: BinaryNode): BinaryNode | undefined;
|
|
5
5
|
export declare function getNodeChildrenByTag(node: BinaryNode, tag: string): readonly BinaryNode[];
|
|
6
|
+
export declare function getNodeChildrenByTagFromChildren(node: BinaryNode, tag: string): readonly BinaryNode[];
|
|
7
|
+
export declare function getNodeChildrenTags(node: BinaryNode): readonly string[];
|
|
8
|
+
export declare function getNodeChildrenNonEmptyAttrValuesByTag(node: BinaryNode, tag: string, attr: string): readonly string[];
|
|
9
|
+
export declare function getNodeChildrenNonEmptyUtf8ByTag(node: BinaryNode, tag: string, field: string): readonly string[];
|
|
10
|
+
export declare function findNodeChildrenByTags<const TTags extends readonly string[]>(node: BinaryNode, tags: TTags): {
|
|
11
|
+
readonly [Index in keyof TTags]: BinaryNode | undefined;
|
|
12
|
+
};
|
|
6
13
|
export declare function hasNodeChild(node: BinaryNode, tag: string): boolean;
|
|
7
14
|
export declare function decodeNodeContentUtf8OrBytes(value: BinaryNode['content'], field: string): Uint8Array;
|
|
8
15
|
export declare function decodeNodeContentBase64OrBytes(value: BinaryNode['content'], field: string): Uint8Array;
|
|
16
|
+
export declare function formatNodeIdPrefixFromSeed(seed: Uint8Array): string;
|
|
@@ -3,7 +3,10 @@ export declare class WaFrameCodec {
|
|
|
3
3
|
private readonly maxFrameLength;
|
|
4
4
|
private introSent;
|
|
5
5
|
private buffered;
|
|
6
|
+
private bufferedLength;
|
|
6
7
|
constructor(introFrame?: Uint8Array, maxFrameLength?: number);
|
|
8
|
+
private assertFrameLength;
|
|
9
|
+
private appendBuffered;
|
|
7
10
|
encodeFrame(frame: Uint8Array): Uint8Array;
|
|
8
11
|
pushWireChunk(chunk: Uint8Array): readonly Uint8Array[];
|
|
9
12
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WaProxyAgent, WaProxyDispatcher, WaProxyTransport } from './types';
|
|
2
|
+
export declare function isProxyDispatcher(value: unknown): value is WaProxyDispatcher;
|
|
3
|
+
export declare function isProxyAgent(value: unknown): value is WaProxyAgent;
|
|
4
|
+
export declare function isProxyTransport(value: unknown): value is WaProxyTransport;
|
|
5
|
+
export declare function toProxyDispatcher(proxy: WaProxyTransport | undefined): WaProxyDispatcher | undefined;
|
|
6
|
+
export declare function toProxyAgent(proxy: WaProxyTransport | undefined): WaProxyAgent | undefined;
|
|
@@ -18,6 +18,5 @@ export type WaStreamControlNodeResult = {
|
|
|
18
18
|
readonly kind: 'stream_error_other';
|
|
19
19
|
};
|
|
20
20
|
export declare function parseStreamControlNode(node: BinaryNode): WaStreamControlNodeResult | null;
|
|
21
|
-
export declare function parseOptionalInt(value: string | undefined): number | undefined;
|
|
22
21
|
export declare function parseCompanionEncStatic(value: string | undefined, onError?: (error: Error) => void): Uint8Array | undefined;
|
|
23
22
|
export declare function parseSuccessPersistAttributes(node: BinaryNode, onCompanionParseError?: (error: Error) => void): WaSuccessPersistAttributes;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import type { Agent as HttpAgent } from 'node:http';
|
|
2
|
+
import type { Agent as HttpsAgent } from 'node:https';
|
|
1
3
|
import type { SignalKeyPair } from '../crypto/curves/types';
|
|
2
4
|
import type { WaLoginPayloadConfig, WaRegistrationPayloadConfig } from './noise/types';
|
|
5
|
+
export interface WaProxyDispatcher {
|
|
6
|
+
dispatch(...args: readonly unknown[]): unknown;
|
|
7
|
+
}
|
|
8
|
+
export type WaProxyAgent = HttpAgent | HttpsAgent;
|
|
9
|
+
export type WaProxyTransport = WaProxyDispatcher | WaProxyAgent;
|
|
3
10
|
export interface BinaryNode {
|
|
4
11
|
readonly tag: string;
|
|
5
12
|
readonly attrs: Readonly<Record<string, string>>;
|
|
@@ -18,6 +25,8 @@ export interface WaSocketConfig {
|
|
|
18
25
|
readonly urls?: readonly string[];
|
|
19
26
|
readonly protocols?: readonly string[];
|
|
20
27
|
readonly headers?: Readonly<Record<string, string>>;
|
|
28
|
+
readonly dispatcher?: WaProxyDispatcher;
|
|
29
|
+
readonly agent?: WaProxyAgent;
|
|
21
30
|
readonly timeoutIntervalMs?: number;
|
|
22
31
|
}
|
|
23
32
|
export interface WaSocketHandlers {
|
|
@@ -66,6 +75,14 @@ export interface RawWebSocket {
|
|
|
66
75
|
close(code?: number, reason?: string): void;
|
|
67
76
|
send(data: string | ArrayBuffer | Uint8Array): void;
|
|
68
77
|
}
|
|
69
|
-
export
|
|
78
|
+
export interface WaRawWebSocketInit {
|
|
79
|
+
readonly protocols?: string | readonly string[];
|
|
80
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
81
|
+
readonly dispatcher?: WaProxyDispatcher;
|
|
82
|
+
readonly agent?: WaProxyAgent;
|
|
83
|
+
}
|
|
84
|
+
export type RawWebSocketConstructor = new (url: string, protocols?: string | readonly string[] | WaRawWebSocketInit, options?: {
|
|
70
85
|
headers?: Readonly<Record<string, string>>;
|
|
86
|
+
dispatcher?: WaProxyDispatcher;
|
|
87
|
+
agent?: WaProxyAgent;
|
|
71
88
|
}) => RawWebSocket;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
2
|
export declare const TEXT_ENCODER: import("../util").TextEncoder;
|
|
3
3
|
export declare const TEXT_DECODER: import("../util").TextDecoder;
|
|
4
|
+
export declare const ZERO_BYTES: Readonly<Uint8Array>;
|
|
4
5
|
export declare const EMPTY_BYTES: Readonly<Uint8Array<ArrayBuffer>>;
|
|
5
6
|
/**
|
|
6
7
|
* Encodes a Uint8Array to a hex string
|
|
@@ -12,6 +13,10 @@ export declare function bytesToHex(value: Uint8Array): string;
|
|
|
12
13
|
export declare function hexToBytes(value: string): Uint8Array;
|
|
13
14
|
export declare function bytesToBase64(value: Uint8Array): string;
|
|
14
15
|
export declare function base64ToBytes(value: string): Uint8Array;
|
|
16
|
+
export declare function base64ToBytesChecked(value: string, field: string, requireNonEmpty?: boolean): Uint8Array;
|
|
17
|
+
export declare function decodeBase64Url(value: string | undefined, field: string): Uint8Array;
|
|
18
|
+
export declare function assertByteLength(value: Uint8Array, expectedLength: number, errorMessage: string, throwOnMismatch?: boolean): boolean;
|
|
19
|
+
export declare function decodeProtoBytes(value: Uint8Array | string | null | undefined, field: string): Uint8Array;
|
|
15
20
|
/**
|
|
16
21
|
* Encodes a Uint8Array to a base64url string (URL-safe, no padding)
|
|
17
22
|
*/
|
|
@@ -5,3 +5,6 @@ export declare function toSafeNumber(value: number | {
|
|
|
5
5
|
export declare function longToNumber(value: number | {
|
|
6
6
|
toNumber(): number;
|
|
7
7
|
} | null | undefined): number;
|
|
8
|
+
export declare function normalizeNonNegativeInteger(value: number | undefined, fallback: number): number;
|
|
9
|
+
export declare function parseStrictUnsignedInt(value: string): number | undefined;
|
|
10
|
+
export declare function parseOptionalInt(value: string | undefined): number | undefined;
|