zapo-js 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +235 -0
- package/dist/appstate/WaAppStateCrypto.js +202 -0
- package/dist/appstate/WaAppStateSyncClient.js +808 -0
- package/dist/appstate/WaAppStateSyncResponseParser.js +71 -0
- package/dist/appstate/constants.js +23 -0
- package/dist/appstate/index.js +28 -0
- package/dist/appstate/store/sqlite.js +55 -0
- package/dist/appstate/types.js +2 -0
- package/dist/appstate/utils.js +84 -0
- package/dist/auth/WaAuthClient.js +266 -0
- package/dist/auth/flow/WaAuthCredentialsFlow.js +123 -0
- package/dist/auth/index.js +27 -0
- package/dist/auth/pairing/WaPairingCodeCrypto.js +75 -0
- package/dist/auth/pairing/WaPairingFlow.js +328 -0
- package/dist/auth/pairing/WaQrFlow.js +86 -0
- package/dist/auth/pairing/constants.js +5 -0
- package/dist/auth/types.js +2 -0
- package/dist/client/WaClient.js +749 -0
- package/dist/client/WaClientFactory.js +381 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +191 -0
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +315 -0
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +1061 -0
- package/dist/client/coordinators/WaPassiveTasksCoordinator.js +200 -0
- package/dist/client/coordinators/WaRetryCoordinator.js +494 -0
- package/dist/client/coordinators/WaStreamControlCoordinator.js +123 -0
- package/dist/client/dirty.js +254 -0
- package/dist/client/events/chat.js +226 -0
- package/dist/client/events/group.js +410 -0
- package/dist/client/history-sync.js +122 -0
- package/dist/client/incoming.js +236 -0
- package/dist/client/index.js +5 -0
- package/dist/client/mailbox.js +49 -0
- package/dist/client/messages.js +152 -0
- package/dist/client/types.js +2 -0
- package/dist/crypto/core/constants.js +4 -0
- package/dist/crypto/core/encoding.js +29 -0
- package/dist/crypto/core/hkdf.js +26 -0
- package/dist/crypto/core/index.js +43 -0
- package/dist/crypto/core/keys.js +73 -0
- package/dist/crypto/core/nonce.js +18 -0
- package/dist/crypto/core/primitives.js +121 -0
- package/dist/crypto/core/random.js +32 -0
- package/dist/crypto/curves/Ed25519.js +42 -0
- package/dist/crypto/curves/X25519.js +64 -0
- package/dist/crypto/curves/constants.js +6 -0
- package/dist/crypto/curves/types.js +9 -0
- package/dist/crypto/index.js +22 -0
- package/dist/crypto/math/constants.js +44 -0
- package/dist/crypto/math/edwards.js +64 -0
- package/dist/crypto/math/le.js +20 -0
- package/dist/crypto/math/mod.js +38 -0
- package/dist/crypto/math/types.js +2 -0
- package/dist/esm/appstate/WaAppStateCrypto.js +198 -0
- package/dist/esm/appstate/WaAppStateSyncClient.js +803 -0
- package/dist/esm/appstate/WaAppStateSyncResponseParser.js +67 -0
- package/dist/esm/appstate/constants.js +20 -0
- package/dist/esm/appstate/index.js +6 -0
- package/dist/esm/appstate/store/sqlite.js +49 -0
- package/dist/esm/appstate/types.js +1 -0
- package/dist/esm/appstate/utils.js +75 -0
- package/dist/esm/auth/WaAuthClient.js +262 -0
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +118 -0
- package/dist/esm/auth/index.js +5 -0
- package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +71 -0
- package/dist/esm/auth/pairing/WaPairingFlow.js +324 -0
- package/dist/esm/auth/pairing/WaQrFlow.js +82 -0
- package/dist/esm/auth/pairing/constants.js +2 -0
- package/dist/esm/auth/types.js +1 -0
- package/dist/esm/client/WaClient.js +745 -0
- package/dist/esm/client/WaClientFactory.js +377 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +188 -0
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +311 -0
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +1057 -0
- package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +196 -0
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +490 -0
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +120 -0
- package/dist/esm/client/dirty.js +250 -0
- package/dist/esm/client/events/chat.js +223 -0
- package/dist/esm/client/events/group.js +407 -0
- package/dist/esm/client/history-sync.js +119 -0
- package/dist/esm/client/incoming.js +227 -0
- package/dist/esm/client/index.js +1 -0
- package/dist/esm/client/mailbox.js +46 -0
- package/dist/esm/client/messages.js +148 -0
- package/dist/esm/client/types.js +1 -0
- package/dist/esm/crypto/core/constants.js +1 -0
- package/dist/esm/crypto/core/encoding.js +25 -0
- package/dist/esm/crypto/core/hkdf.js +22 -0
- package/dist/esm/crypto/core/index.js +11 -0
- package/dist/esm/crypto/core/keys.js +66 -0
- package/dist/esm/crypto/core/nonce.js +15 -0
- package/dist/esm/crypto/core/primitives.js +102 -0
- package/dist/esm/crypto/core/random.js +28 -0
- package/dist/esm/crypto/curves/Ed25519.js +38 -0
- package/dist/esm/crypto/curves/X25519.js +58 -0
- package/dist/esm/crypto/curves/constants.js +3 -0
- package/dist/esm/crypto/curves/types.js +6 -0
- package/dist/esm/crypto/index.js +3 -0
- package/dist/esm/crypto/math/constants.js +41 -0
- package/dist/esm/crypto/math/edwards.js +60 -0
- package/dist/esm/crypto/math/le.js +16 -0
- package/dist/esm/crypto/math/mod.js +31 -0
- package/dist/esm/crypto/math/types.js +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/infra/log/ConsoleLogger.js +40 -0
- package/dist/esm/infra/log/PinoLogger.js +73 -0
- package/dist/esm/infra/log/types.js +1 -0
- package/dist/esm/infra/perf/BoundedTaskQueue.js +62 -0
- package/dist/esm/media/WaMediaCrypto.js +224 -0
- package/dist/esm/media/WaMediaTransferClient.js +361 -0
- package/dist/esm/media/conn.js +33 -0
- package/dist/esm/media/constants.js +18 -0
- package/dist/esm/media/index.js +3 -0
- package/dist/esm/media/types.js +1 -0
- package/dist/esm/message/WaMessageClient.js +210 -0
- package/dist/esm/message/ack.js +46 -0
- package/dist/esm/message/content.js +20 -0
- package/dist/esm/message/device-sent.js +49 -0
- package/dist/esm/message/incoming.js +318 -0
- package/dist/esm/message/index.js +2 -0
- package/dist/esm/message/padding.js +20 -0
- package/dist/esm/message/phash.js +25 -0
- package/dist/esm/message/types.js +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/proto.js +3 -0
- package/dist/esm/protocol/appstate.js +34 -0
- package/dist/esm/protocol/auth.js +12 -0
- package/dist/esm/protocol/browser.js +41 -0
- package/dist/esm/protocol/constants.js +11 -0
- package/dist/esm/protocol/defaults.js +27 -0
- package/dist/esm/protocol/dirty.js +26 -0
- package/dist/esm/protocol/group.js +5 -0
- package/dist/esm/protocol/index.js +11 -0
- package/dist/esm/protocol/jid.js +94 -0
- package/dist/esm/protocol/media.js +20 -0
- package/dist/esm/protocol/message.js +16 -0
- package/dist/esm/protocol/nodes.js +83 -0
- package/dist/esm/protocol/notification.js +50 -0
- package/dist/esm/protocol/stream.js +60 -0
- package/dist/esm/retry/constants.js +20 -0
- package/dist/esm/retry/index.js +5 -0
- package/dist/esm/retry/outbound.js +83 -0
- package/dist/esm/retry/parse.js +130 -0
- package/dist/esm/retry/reason.js +50 -0
- package/dist/esm/retry/replay.js +177 -0
- package/dist/esm/retry/types.js +1 -0
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +185 -0
- package/dist/esm/signal/api/SignalDigestSyncApi.js +179 -0
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +111 -0
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +141 -0
- package/dist/esm/signal/api/SignalRotateKeyApi.js +59 -0
- package/dist/esm/signal/api/SignalSessionSyncApi.js +187 -0
- package/dist/esm/signal/api/codec.js +23 -0
- package/dist/esm/signal/api/constants.js +9 -0
- package/dist/esm/signal/api/prekeys.js +9 -0
- package/dist/esm/signal/constants.js +16 -0
- package/dist/esm/signal/crypto/WaAdvSignature.js +60 -0
- package/dist/esm/signal/crypto/constants.js +8 -0
- package/dist/esm/signal/group/SenderKeyChain.js +97 -0
- package/dist/esm/signal/group/SenderKeyCodec.js +46 -0
- package/dist/esm/signal/group/SenderKeyManager.js +176 -0
- package/dist/esm/signal/index.js +11 -0
- package/dist/esm/signal/registration/keygen.js +31 -0
- package/dist/esm/signal/registration/utils.js +16 -0
- package/dist/esm/signal/session/SignalProtocol.js +122 -0
- package/dist/esm/signal/session/SignalRatchet.js +260 -0
- package/dist/esm/signal/session/SignalSerializer.js +63 -0
- package/dist/esm/signal/session/SignalSession.js +153 -0
- package/dist/esm/signal/store/sqlite.js +310 -0
- package/dist/esm/signal/types.js +1 -0
- package/dist/esm/store/contracts/appstate.store.js +1 -0
- package/dist/esm/store/contracts/auth.store.js +1 -0
- package/dist/esm/store/contracts/contact.store.js +1 -0
- package/dist/esm/store/contracts/device-list.store.js +1 -0
- package/dist/esm/store/contracts/message.store.js +1 -0
- package/dist/esm/store/contracts/participants.store.js +1 -0
- package/dist/esm/store/contracts/retry.store.js +1 -0
- package/dist/esm/store/contracts/sender-key.store.js +1 -0
- package/dist/esm/store/contracts/signal.store.js +1 -0
- package/dist/esm/store/contracts/thread.store.js +1 -0
- package/dist/esm/store/createStore.js +278 -0
- package/dist/esm/store/index.js +20 -0
- package/dist/esm/store/noop.store.js +43 -0
- package/dist/esm/store/providers/memory/appstate.store.js +101 -0
- package/dist/esm/store/providers/memory/contact.store.js +23 -0
- package/dist/esm/store/providers/memory/device-list.store.js +86 -0
- package/dist/esm/store/providers/memory/message.store.js +40 -0
- package/dist/esm/store/providers/memory/participants.store.js +61 -0
- package/dist/esm/store/providers/memory/retry.store.js +71 -0
- package/dist/esm/store/providers/memory/sender-key.store.js +88 -0
- package/dist/esm/store/providers/memory/signal.store.js +170 -0
- package/dist/esm/store/providers/memory/thread.store.js +34 -0
- package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +37 -0
- package/dist/esm/store/providers/sqlite/appstate.store.js +169 -0
- package/dist/esm/store/providers/sqlite/auth.store.js +176 -0
- package/dist/esm/store/providers/sqlite/connection.js +240 -0
- package/dist/esm/store/providers/sqlite/contact.store.js +61 -0
- package/dist/esm/store/providers/sqlite/device-list.store.js +155 -0
- package/dist/esm/store/providers/sqlite/message.store.js +119 -0
- package/dist/esm/store/providers/sqlite/migrations.js +347 -0
- package/dist/esm/store/providers/sqlite/participants.store.js +85 -0
- package/dist/esm/store/providers/sqlite/retry.store.js +144 -0
- package/dist/esm/store/providers/sqlite/sender-key.store.js +203 -0
- package/dist/esm/store/providers/sqlite/signal.store.js +353 -0
- package/dist/esm/store/providers/sqlite/thread.store.js +72 -0
- package/dist/esm/store/types.js +1 -0
- package/dist/esm/transport/WaComms.js +527 -0
- package/dist/esm/transport/WaWebSocket.js +361 -0
- package/dist/esm/transport/binary/constants.js +96 -0
- package/dist/esm/transport/binary/decoder.js +275 -0
- package/dist/esm/transport/binary/encoder.js +210 -0
- package/dist/esm/transport/binary/index.js +4 -0
- package/dist/esm/transport/binary/tokens.js +1280 -0
- package/dist/esm/transport/index.js +6 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +141 -0
- package/dist/esm/transport/node/WaNodeOrchestrator.js +143 -0
- package/dist/esm/transport/node/WaNodeTransport.js +64 -0
- package/dist/esm/transport/node/builders/accountSync.js +101 -0
- package/dist/esm/transport/node/builders/group.js +47 -0
- package/dist/esm/transport/node/builders/index.js +7 -0
- package/dist/esm/transport/node/builders/media.js +10 -0
- package/dist/esm/transport/node/builders/message.js +317 -0
- package/dist/esm/transport/node/builders/pairing.js +130 -0
- package/dist/esm/transport/node/builders/prekeys.js +102 -0
- package/dist/esm/transport/node/builders/retry.js +116 -0
- package/dist/esm/transport/node/helpers.js +37 -0
- package/dist/esm/transport/node/query.js +53 -0
- package/dist/esm/transport/node/xml.js +39 -0
- package/dist/esm/transport/noise/WaClientPayload.js +162 -0
- package/dist/esm/transport/noise/WaFrameCodec.js +121 -0
- package/dist/esm/transport/noise/WaNoiseCert.js +74 -0
- package/dist/esm/transport/noise/WaNoiseHandshake.js +57 -0
- package/dist/esm/transport/noise/WaNoiseSession.js +322 -0
- package/dist/esm/transport/noise/WaNoiseSocket.js +17 -0
- package/dist/esm/transport/noise/constants.js +8 -0
- package/dist/esm/transport/noise/types.js +1 -0
- package/dist/esm/transport/stream/parse.js +91 -0
- package/dist/esm/transport/types.js +1 -0
- package/dist/esm/util/async.js +5 -0
- package/dist/esm/util/base64.js +18 -0
- package/dist/esm/util/bytes.js +275 -0
- package/dist/esm/util/coercion.js +56 -0
- package/dist/esm/util/collections.js +27 -0
- package/dist/esm/util/primitives.js +32 -0
- package/dist/esm/util/runtime.js +15 -0
- package/dist/esm/util/signal-address.js +5 -0
- package/dist/index.js +52 -0
- package/dist/infra/log/ConsoleLogger.js +44 -0
- package/dist/infra/log/PinoLogger.js +111 -0
- package/dist/infra/log/types.js +2 -0
- package/dist/infra/perf/BoundedTaskQueue.js +67 -0
- package/dist/media/WaMediaCrypto.js +228 -0
- package/dist/media/WaMediaTransferClient.js +365 -0
- package/dist/media/conn.js +36 -0
- package/dist/media/constants.js +21 -0
- package/dist/media/index.js +9 -0
- package/dist/media/types.js +2 -0
- package/dist/message/WaMessageClient.js +214 -0
- package/dist/message/ack.js +52 -0
- package/dist/message/content.js +24 -0
- package/dist/message/device-sent.js +53 -0
- package/dist/message/incoming.js +321 -0
- package/dist/message/index.js +20 -0
- package/dist/message/padding.js +24 -0
- package/dist/message/phash.js +28 -0
- package/dist/message/types.js +2 -0
- package/dist/proto.js +5 -0
- package/dist/protocol/appstate.js +37 -0
- package/dist/protocol/auth.js +15 -0
- package/dist/protocol/browser.js +45 -0
- package/dist/protocol/constants.js +46 -0
- package/dist/protocol/defaults.js +30 -0
- package/dist/protocol/dirty.js +29 -0
- package/dist/protocol/group.js +8 -0
- package/dist/protocol/index.js +53 -0
- package/dist/protocol/jid.js +107 -0
- package/dist/protocol/media.js +24 -0
- package/dist/protocol/message.js +19 -0
- package/dist/protocol/nodes.js +86 -0
- package/dist/protocol/notification.js +53 -0
- package/dist/protocol/stream.js +63 -0
- package/dist/retry/constants.js +23 -0
- package/dist/retry/index.js +19 -0
- package/dist/retry/outbound.js +88 -0
- package/dist/retry/parse.js +133 -0
- package/dist/retry/reason.js +53 -0
- package/dist/retry/replay.js +181 -0
- package/dist/retry/types.js +2 -0
- package/dist/signal/api/SignalDeviceSyncApi.js +189 -0
- package/dist/signal/api/SignalDigestSyncApi.js +183 -0
- package/dist/signal/api/SignalIdentitySyncApi.js +115 -0
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +145 -0
- package/dist/signal/api/SignalRotateKeyApi.js +63 -0
- package/dist/signal/api/SignalSessionSyncApi.js +191 -0
- package/dist/signal/api/codec.js +27 -0
- package/dist/signal/api/constants.js +12 -0
- package/dist/signal/api/prekeys.js +16 -0
- package/dist/signal/constants.js +19 -0
- package/dist/signal/crypto/WaAdvSignature.js +72 -0
- package/dist/signal/crypto/constants.js +11 -0
- package/dist/signal/group/SenderKeyChain.js +101 -0
- package/dist/signal/group/SenderKeyCodec.js +50 -0
- package/dist/signal/group/SenderKeyManager.js +180 -0
- package/dist/signal/index.js +29 -0
- package/dist/signal/registration/keygen.js +37 -0
- package/dist/signal/registration/utils.js +19 -0
- package/dist/signal/session/SignalProtocol.js +126 -0
- package/dist/signal/session/SignalRatchet.js +268 -0
- package/dist/signal/session/SignalSerializer.js +69 -0
- package/dist/signal/session/SignalSession.js +165 -0
- package/dist/signal/store/sqlite.js +324 -0
- package/dist/signal/types.js +2 -0
- package/dist/store/contracts/appstate.store.js +2 -0
- package/dist/store/contracts/auth.store.js +2 -0
- package/dist/store/contracts/contact.store.js +2 -0
- package/dist/store/contracts/device-list.store.js +2 -0
- package/dist/store/contracts/message.store.js +2 -0
- package/dist/store/contracts/participants.store.js +2 -0
- package/dist/store/contracts/retry.store.js +2 -0
- package/dist/store/contracts/sender-key.store.js +2 -0
- package/dist/store/contracts/signal.store.js +2 -0
- package/dist/store/contracts/thread.store.js +2 -0
- package/dist/store/createStore.js +281 -0
- package/dist/store/index.js +43 -0
- package/dist/store/noop.store.js +46 -0
- package/dist/store/providers/memory/appstate.store.js +105 -0
- package/dist/store/providers/memory/contact.store.js +27 -0
- package/dist/store/providers/memory/device-list.store.js +90 -0
- package/dist/store/providers/memory/message.store.js +44 -0
- package/dist/store/providers/memory/participants.store.js +65 -0
- package/dist/store/providers/memory/retry.store.js +75 -0
- package/dist/store/providers/memory/sender-key.store.js +92 -0
- package/dist/store/providers/memory/signal.store.js +174 -0
- package/dist/store/providers/memory/thread.store.js +38 -0
- package/dist/store/providers/sqlite/BaseSqliteStore.js +41 -0
- package/dist/store/providers/sqlite/appstate.store.js +173 -0
- package/dist/store/providers/sqlite/auth.store.js +180 -0
- package/dist/store/providers/sqlite/connection.js +276 -0
- package/dist/store/providers/sqlite/contact.store.js +65 -0
- package/dist/store/providers/sqlite/device-list.store.js +159 -0
- package/dist/store/providers/sqlite/message.store.js +123 -0
- package/dist/store/providers/sqlite/migrations.js +350 -0
- package/dist/store/providers/sqlite/participants.store.js +89 -0
- package/dist/store/providers/sqlite/retry.store.js +148 -0
- package/dist/store/providers/sqlite/sender-key.store.js +207 -0
- package/dist/store/providers/sqlite/signal.store.js +357 -0
- package/dist/store/providers/sqlite/thread.store.js +76 -0
- package/dist/store/types.js +2 -0
- package/dist/transport/WaComms.js +531 -0
- package/dist/transport/WaWebSocket.js +365 -0
- package/dist/transport/binary/constants.js +99 -0
- package/dist/transport/binary/decoder.js +279 -0
- package/dist/transport/binary/encoder.js +214 -0
- package/dist/transport/binary/index.js +23 -0
- package/dist/transport/binary/tokens.js +1283 -0
- package/dist/transport/index.js +18 -0
- package/dist/transport/keepalive/WaKeepAlive.js +145 -0
- package/dist/transport/node/WaNodeOrchestrator.js +147 -0
- package/dist/transport/node/WaNodeTransport.js +68 -0
- package/dist/transport/node/builders/accountSync.js +110 -0
- package/dist/transport/node/builders/group.js +52 -0
- package/dist/transport/node/builders/index.js +39 -0
- package/dist/transport/node/builders/media.js +13 -0
- package/dist/transport/node/builders/message.js +328 -0
- package/dist/transport/node/builders/pairing.js +137 -0
- package/dist/transport/node/builders/prekeys.js +107 -0
- package/dist/transport/node/builders/retry.js +119 -0
- package/dist/transport/node/helpers.js +46 -0
- package/dist/transport/node/query.js +59 -0
- package/dist/transport/node/xml.js +42 -0
- package/dist/transport/noise/WaClientPayload.js +166 -0
- package/dist/transport/noise/WaFrameCodec.js +125 -0
- package/dist/transport/noise/WaNoiseCert.js +77 -0
- package/dist/transport/noise/WaNoiseHandshake.js +61 -0
- package/dist/transport/noise/WaNoiseSession.js +326 -0
- package/dist/transport/noise/WaNoiseSocket.js +21 -0
- package/dist/transport/noise/constants.js +11 -0
- package/dist/transport/noise/types.js +2 -0
- package/dist/transport/stream/parse.js +97 -0
- package/dist/transport/types.js +2 -0
- package/dist/types/appstate/WaAppStateCrypto.d.ts +59 -0
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +63 -0
- package/dist/types/appstate/WaAppStateSyncResponseParser.d.ts +12 -0
- package/dist/types/appstate/constants.d.ts +14 -0
- package/dist/types/appstate/index.d.ts +7 -0
- package/dist/types/appstate/store/sqlite.d.ts +21 -0
- package/dist/types/appstate/types.d.ts +66 -0
- package/dist/types/appstate/utils.d.ts +10 -0
- package/dist/types/auth/WaAuthClient.d.ts +61 -0
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +14 -0
- package/dist/types/auth/index.d.ts +6 -0
- package/dist/types/auth/pairing/WaPairingCodeCrypto.d.ts +17 -0
- package/dist/types/auth/pairing/WaPairingFlow.d.ts +48 -0
- package/dist/types/auth/pairing/WaQrFlow.d.ts +23 -0
- package/dist/types/auth/pairing/constants.d.ts +2 -0
- package/dist/types/auth/types.d.ts +48 -0
- package/dist/types/client/WaClient.d.ts +97 -0
- package/dist/types/client/WaClientFactory.d.ts +83 -0
- package/dist/types/client/coordinators/WaGroupCoordinator.d.ts +48 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +60 -0
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +90 -0
- package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +43 -0
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +61 -0
- package/dist/types/client/coordinators/WaStreamControlCoordinator.d.ts +17 -0
- package/dist/types/client/dirty.d.ts +17 -0
- package/dist/types/client/events/chat.d.ts +3 -0
- package/dist/types/client/events/group.d.ts +7 -0
- package/dist/types/client/history-sync.d.ts +17 -0
- package/dist/types/client/incoming.d.ts +35 -0
- package/dist/types/client/index.d.ts +2 -0
- package/dist/types/client/mailbox.d.ts +12 -0
- package/dist/types/client/messages.d.ts +17 -0
- package/dist/types/client/types.d.ts +235 -0
- package/dist/types/crypto/core/constants.d.ts +1 -0
- package/dist/types/crypto/core/encoding.d.ts +11 -0
- package/dist/types/crypto/core/hkdf.d.ts +8 -0
- package/dist/types/crypto/core/index.d.ts +11 -0
- package/dist/types/crypto/core/keys.d.ts +20 -0
- package/dist/types/crypto/core/nonce.d.ts +5 -0
- package/dist/types/crypto/core/primitives.d.ts +25 -0
- package/dist/types/crypto/core/random.d.ts +8 -0
- package/dist/types/crypto/curves/Ed25519.d.ts +7 -0
- package/dist/types/crypto/curves/X25519.d.ts +8 -0
- package/dist/types/crypto/curves/constants.d.ts +2 -0
- package/dist/types/crypto/curves/types.d.ts +10 -0
- package/dist/types/crypto/index.d.ts +3 -0
- package/dist/types/crypto/math/constants.d.ts +7 -0
- package/dist/types/crypto/math/edwards.d.ts +3 -0
- package/dist/types/crypto/math/le.d.ts +2 -0
- package/dist/types/crypto/math/mod.d.ts +5 -0
- package/dist/types/crypto/math/types.d.ts +6 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/infra/log/ConsoleLogger.d.ts +11 -0
- package/dist/types/infra/log/PinoLogger.d.ts +30 -0
- package/dist/types/infra/log/types.d.ts +9 -0
- package/dist/types/infra/perf/BoundedTaskQueue.d.ts +19 -0
- package/dist/types/media/WaMediaCrypto.d.ts +12 -0
- package/dist/types/media/WaMediaTransferClient.d.ts +81 -0
- package/dist/types/media/conn.d.ts +3 -0
- package/dist/types/media/constants.d.ts +10 -0
- package/dist/types/media/index.d.ts +4 -0
- package/dist/types/media/types.d.ts +56 -0
- package/dist/types/message/WaMessageClient.d.ts +29 -0
- package/dist/types/message/ack.d.ts +5 -0
- package/dist/types/message/content.d.ts +4 -0
- package/dist/types/message/device-sent.d.ts +3 -0
- package/dist/types/message/incoming.d.ts +18 -0
- package/dist/types/message/index.d.ts +2 -0
- package/dist/types/message/padding.d.ts +2 -0
- package/dist/types/message/phash.d.ts +1 -0
- package/dist/types/message/types.d.ts +58 -0
- package/dist/types/proto.d.ts +2 -0
- package/dist/types/protocol/appstate.d.ts +34 -0
- package/dist/types/protocol/auth.d.ts +12 -0
- package/dist/types/protocol/browser.d.ts +22 -0
- package/dist/types/protocol/constants.d.ts +11 -0
- package/dist/types/protocol/defaults.d.ts +26 -0
- package/dist/types/protocol/dirty.d.ts +15 -0
- package/dist/types/protocol/group.d.ts +6 -0
- package/dist/types/protocol/index.d.ts +11 -0
- package/dist/types/protocol/jid.d.ts +19 -0
- package/dist/types/protocol/media.d.ts +15 -0
- package/dist/types/protocol/message.d.ts +16 -0
- package/dist/types/protocol/nodes.d.ts +83 -0
- package/dist/types/protocol/notification.d.ts +50 -0
- package/dist/types/protocol/stream.d.ts +60 -0
- package/dist/types/retry/constants.d.ts +21 -0
- package/dist/types/retry/index.d.ts +7 -0
- package/dist/types/retry/outbound.d.ts +4 -0
- package/dist/types/retry/parse.d.ts +3 -0
- package/dist/types/retry/reason.d.ts +2 -0
- package/dist/types/retry/replay.d.ts +30 -0
- package/dist/types/retry/types.d.ts +70 -0
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +31 -0
- package/dist/types/signal/api/SignalDigestSyncApi.d.ts +27 -0
- package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +26 -0
- package/dist/types/signal/api/SignalMissingPreKeysSyncApi.d.ts +39 -0
- package/dist/types/signal/api/SignalRotateKeyApi.d.ts +22 -0
- package/dist/types/signal/api/SignalSessionSyncApi.d.ts +38 -0
- package/dist/types/signal/api/codec.d.ts +3 -0
- package/dist/types/signal/api/constants.d.ts +9 -0
- package/dist/types/signal/api/prekeys.d.ts +6 -0
- package/dist/types/signal/constants.d.ts +14 -0
- package/dist/types/signal/crypto/WaAdvSignature.d.ts +7 -0
- package/dist/types/signal/crypto/constants.d.ts +5 -0
- package/dist/types/signal/group/SenderKeyChain.d.ts +11 -0
- package/dist/types/signal/group/SenderKeyCodec.d.ts +14 -0
- package/dist/types/signal/group/SenderKeyManager.d.ts +22 -0
- package/dist/types/signal/index.d.ts +12 -0
- package/dist/types/signal/registration/keygen.d.ts +5 -0
- package/dist/types/signal/registration/utils.d.ts +9 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +22 -0
- package/dist/types/signal/session/SignalRatchet.d.ts +25 -0
- package/dist/types/signal/session/SignalSerializer.d.ts +6 -0
- package/dist/types/signal/session/SignalSession.d.ts +43 -0
- package/dist/types/signal/store/sqlite.d.ts +72 -0
- package/dist/types/signal/types.d.ts +110 -0
- package/dist/types/store/contracts/appstate.store.d.ts +22 -0
- package/dist/types/store/contracts/auth.store.d.ts +6 -0
- package/dist/types/store/contracts/contact.store.d.ts +14 -0
- package/dist/types/store/contracts/device-list.store.d.ts +16 -0
- package/dist/types/store/contracts/message.store.d.ts +18 -0
- package/dist/types/store/contracts/participants.store.d.ts +14 -0
- package/dist/types/store/contracts/retry.store.d.ts +11 -0
- package/dist/types/store/contracts/sender-key.store.d.ts +16 -0
- package/dist/types/store/contracts/signal.store.d.ts +31 -0
- package/dist/types/store/contracts/thread.store.d.ts +17 -0
- package/dist/types/store/createStore.d.ts +2 -0
- package/dist/types/store/index.d.ts +31 -0
- package/dist/types/store/noop.store.d.ts +10 -0
- package/dist/types/store/providers/memory/appstate.store.d.ts +21 -0
- package/dist/types/store/providers/memory/contact.store.d.ts +13 -0
- package/dist/types/store/providers/memory/device-list.store.d.ts +20 -0
- package/dist/types/store/providers/memory/message.store.d.ts +14 -0
- package/dist/types/store/providers/memory/participants.store.d.ts +18 -0
- package/dist/types/store/providers/memory/retry.store.d.ts +18 -0
- package/dist/types/store/providers/memory/sender-key.store.d.ts +28 -0
- package/dist/types/store/providers/memory/signal.store.d.ts +51 -0
- package/dist/types/store/providers/memory/thread.store.d.ts +14 -0
- package/dist/types/store/providers/sqlite/BaseSqliteStore.d.ts +12 -0
- package/dist/types/store/providers/sqlite/appstate.store.d.ts +15 -0
- package/dist/types/store/providers/sqlite/auth.store.d.ts +10 -0
- package/dist/types/store/providers/sqlite/connection.d.ts +10 -0
- package/dist/types/store/providers/sqlite/contact.store.d.ts +10 -0
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +18 -0
- package/dist/types/store/providers/sqlite/message.store.d.ts +11 -0
- package/dist/types/store/providers/sqlite/migrations.d.ts +3 -0
- package/dist/types/store/providers/sqlite/participants.store.d.ts +13 -0
- package/dist/types/store/providers/sqlite/retry.store.d.ts +16 -0
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +25 -0
- package/dist/types/store/providers/sqlite/signal.store.d.ts +46 -0
- package/dist/types/store/providers/sqlite/thread.store.d.ts +11 -0
- package/dist/types/store/types.d.ts +103 -0
- package/dist/types/transport/WaComms.d.ts +61 -0
- package/dist/types/transport/WaWebSocket.d.ts +36 -0
- package/dist/types/transport/binary/constants.d.ts +49 -0
- package/dist/types/transport/binary/decoder.d.ts +3 -0
- package/dist/types/transport/binary/encoder.d.ts +3 -0
- package/dist/types/transport/binary/index.d.ts +4 -0
- package/dist/types/transport/binary/tokens.d.ts +11 -0
- package/dist/types/transport/index.d.ts +7 -0
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +39 -0
- package/dist/types/transport/node/WaNodeOrchestrator.d.ts +28 -0
- package/dist/types/transport/node/WaNodeTransport.d.ts +22 -0
- package/dist/types/transport/node/builders/accountSync.d.ts +11 -0
- package/dist/types/transport/node/builders/group.d.ts +16 -0
- package/dist/types/transport/node/builders/index.d.ts +7 -0
- package/dist/types/transport/node/builders/media.d.ts +2 -0
- package/dist/types/transport/node/builders/message.d.ts +52 -0
- package/dist/types/transport/node/builders/pairing.d.ts +18 -0
- package/dist/types/transport/node/builders/prekeys.d.ts +5 -0
- package/dist/types/transport/node/builders/retry.d.ts +18 -0
- package/dist/types/transport/node/helpers.d.ts +8 -0
- package/dist/types/transport/node/query.d.ts +10 -0
- package/dist/types/transport/node/xml.d.ts +2 -0
- package/dist/types/transport/noise/WaClientPayload.d.ts +3 -0
- package/dist/types/transport/noise/WaFrameCodec.d.ts +9 -0
- package/dist/types/transport/noise/WaNoiseCert.d.ts +1 -0
- package/dist/types/transport/noise/WaNoiseHandshake.d.ts +14 -0
- package/dist/types/transport/noise/WaNoiseSession.d.ts +33 -0
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +10 -0
- package/dist/types/transport/noise/constants.d.ts +7 -0
- package/dist/types/transport/noise/types.d.ts +23 -0
- package/dist/types/transport/stream/parse.d.ts +23 -0
- package/dist/types/transport/types.d.ts +71 -0
- package/dist/types/util/async.d.ts +1 -0
- package/dist/types/util/base64.d.ts +4 -0
- package/dist/types/util/bytes.d.ts +28 -0
- package/dist/types/util/coercion.d.ts +8 -0
- package/dist/types/util/collections.d.ts +3 -0
- package/dist/types/util/primitives.d.ts +7 -0
- package/dist/types/util/runtime.d.ts +2 -0
- package/dist/types/util/signal-address.d.ts +2 -0
- package/dist/util/async.js +8 -0
- package/dist/util/base64.js +24 -0
- package/dist/util/bytes.js +291 -0
- package/dist/util/coercion.js +66 -0
- package/dist/util/collections.js +32 -0
- package/dist/util/primitives.js +37 -0
- package/dist/util/runtime.js +19 -0
- package/dist/util/signal-address.js +8 -0
- package/package.json +150 -0
- package/proto/index.d.ts +10861 -0
- package/proto/index.js +1 -0
- package/scripts/check-node-version.cjs +55 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const SIGNAL_VERSION = 3;
|
|
2
|
+
export declare const SIGNAL_GROUP_VERSION = 3;
|
|
3
|
+
export declare const SERIALIZED_PUB_KEY_PREFIX = 5;
|
|
4
|
+
export declare const KEY_TYPE_CURVE25519 = 5;
|
|
5
|
+
export declare const SIGNAL_MAC_SIZE = 8;
|
|
6
|
+
export declare const SIGNATURE_SIZE = 64;
|
|
7
|
+
export declare const MAX_PREV_SESSIONS = 40;
|
|
8
|
+
export declare const MAX_UNUSED_KEYS = 2000;
|
|
9
|
+
export declare const FUTURE_MESSAGES_MAX = 2000;
|
|
10
|
+
export declare const SENDER_KEY_FUTURE_MESSAGES_MAX = 20000;
|
|
11
|
+
export declare const MESSAGE_KEY_LABEL: Uint8Array<ArrayBuffer>;
|
|
12
|
+
export declare const CHAIN_KEY_LABEL: Uint8Array<ArrayBuffer>;
|
|
13
|
+
export declare const WHISPER_GROUP_INFO: NodeJS.NonSharedUint8Array;
|
|
14
|
+
export declare const SIGNAL_PREFIX: Uint8Array<ArrayBuffer>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SignalKeyPair } from '../../crypto/curves/types';
|
|
2
|
+
export { ADV_PREFIX_ACCOUNT_SIGNATURE, ADV_PREFIX_DEVICE_SIGNATURE, ADV_PREFIX_HOSTED_ACCOUNT_SIGNATURE, ADV_PREFIX_HOSTED_DEVICE_SIGNATURE } from '../crypto/constants';
|
|
3
|
+
export declare function verifySignalSignature(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): Promise<boolean>;
|
|
4
|
+
export declare function signSignalMessage(privateKey: Uint8Array, message: Uint8Array): Promise<Uint8Array>;
|
|
5
|
+
export declare function verifyDeviceIdentityAccountSignature(details: Uint8Array, accountSignature: Uint8Array, identityPublicKey: Uint8Array, accountSignatureKey: Uint8Array, isHosted?: boolean): Promise<boolean>;
|
|
6
|
+
export declare function generateDeviceSignature(details: Uint8Array, identityKeyPair: SignalKeyPair, accountSignatureKey: Uint8Array, isHosted?: boolean): Promise<Uint8Array>;
|
|
7
|
+
export declare function computeAdvIdentityHmac(secretKey: Uint8Array, details: Uint8Array): Promise<Uint8Array>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const SIGNAL_PREFIX_SIGNATURE_RANDOM: Uint8Array<ArrayBuffer>;
|
|
2
|
+
export declare const ADV_PREFIX_ACCOUNT_SIGNATURE: Uint8Array<ArrayBuffer>;
|
|
3
|
+
export declare const ADV_PREFIX_DEVICE_SIGNATURE: Uint8Array<ArrayBuffer>;
|
|
4
|
+
export declare const ADV_PREFIX_HOSTED_ACCOUNT_SIGNATURE: Uint8Array<ArrayBuffer>;
|
|
5
|
+
export declare const ADV_PREFIX_HOSTED_DEVICE_SIGNATURE: Uint8Array<ArrayBuffer>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SenderKeyRecord, SenderMessageKey } from '../types';
|
|
2
|
+
export interface SenderKeyMessageKeyDerivation {
|
|
3
|
+
readonly nextChainKey: Uint8Array;
|
|
4
|
+
readonly messageKey: SenderMessageKey;
|
|
5
|
+
}
|
|
6
|
+
export interface SenderKeyMessageKeySelection {
|
|
7
|
+
readonly messageKey: SenderMessageKey;
|
|
8
|
+
readonly updatedRecord: SenderKeyRecord;
|
|
9
|
+
}
|
|
10
|
+
export declare function selectMessageKey(senderKey: SenderKeyRecord, targetIteration: number): Promise<SenderKeyMessageKeySelection>;
|
|
11
|
+
export declare function deriveSenderKeyMsgKey(iteration: number, chainKey: Uint8Array): Promise<SenderKeyMessageKeyDerivation>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ParsedDistributionPayload {
|
|
2
|
+
readonly keyId: number;
|
|
3
|
+
readonly iteration: number;
|
|
4
|
+
readonly chainKey: Uint8Array;
|
|
5
|
+
readonly signingPublicKey: Uint8Array;
|
|
6
|
+
}
|
|
7
|
+
export interface ParsedSenderKeyMessage {
|
|
8
|
+
readonly keyId: number;
|
|
9
|
+
readonly iteration: number;
|
|
10
|
+
readonly ciphertext: Uint8Array;
|
|
11
|
+
readonly versionContentMac: Uint8Array;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseDistributionPayload(payload: Uint8Array): ParsedDistributionPayload;
|
|
14
|
+
export declare function parseSenderKeyMessage(versionContentMac: Uint8Array): ParsedSenderKeyMessage;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Proto } from '../..';
|
|
2
|
+
import type { SenderKeyRecord, SignalAddress } from '../types';
|
|
3
|
+
import type { WaSenderKeyStore } from '../../store/contracts/sender-key.store';
|
|
4
|
+
interface GroupSenderKeyCiphertext {
|
|
5
|
+
readonly groupId: string;
|
|
6
|
+
readonly sender: SignalAddress;
|
|
7
|
+
readonly keyId?: number;
|
|
8
|
+
readonly iteration?: number;
|
|
9
|
+
readonly ciphertext: Uint8Array;
|
|
10
|
+
}
|
|
11
|
+
export declare class SenderKeyManager {
|
|
12
|
+
private readonly store;
|
|
13
|
+
constructor(store: WaSenderKeyStore);
|
|
14
|
+
createSenderKeyDistributionMessage(groupId: string, sender: SignalAddress): Promise<Proto.Message.ISenderKeyDistributionMessage>;
|
|
15
|
+
filterParticipantsNeedingDistribution(groupId: string, sender: SignalAddress, participants: readonly SignalAddress[]): Promise<readonly SignalAddress[]>;
|
|
16
|
+
markSenderKeyDistributed(groupId: string, sender: SignalAddress, participants: readonly SignalAddress[]): Promise<void>;
|
|
17
|
+
processSenderKeyDistributionPayload(groupId: string, sender: SignalAddress, payload: Uint8Array): Promise<SenderKeyRecord>;
|
|
18
|
+
encryptGroupMessage(groupId: string, sender: SignalAddress, plaintext: Uint8Array): Promise<GroupSenderKeyCiphertext>;
|
|
19
|
+
decryptGroupMessage(payload: GroupSenderKeyCiphertext): Promise<Uint8Array>;
|
|
20
|
+
private ensureSenderKey;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { PreKeyRecord, RegistrationInfo, SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress, SignalPreKeyBundle, SignedPreKeyRecord } from './types';
|
|
2
|
+
export { generatePreKeyPair, generateRegistrationId, generateRegistrationInfo, generateSignedPreKey } from './registration/keygen';
|
|
3
|
+
export { buildPreKeyUploadIq, parsePreKeyUploadFailure } from './api/prekeys';
|
|
4
|
+
export { SignalDigestSyncApi } from './api/SignalDigestSyncApi';
|
|
5
|
+
export { SignalDeviceSyncApi } from './api/SignalDeviceSyncApi';
|
|
6
|
+
export { SignalIdentitySyncApi } from './api/SignalIdentitySyncApi';
|
|
7
|
+
export { SignalMissingPreKeysSyncApi } from './api/SignalMissingPreKeysSyncApi';
|
|
8
|
+
export { SignalRotateKeyApi } from './api/SignalRotateKeyApi';
|
|
9
|
+
export { SignalSessionSyncApi } from './api/SignalSessionSyncApi';
|
|
10
|
+
export { SenderKeyManager } from './group/SenderKeyManager';
|
|
11
|
+
export { createAndStoreInitialKeys } from './registration/utils';
|
|
12
|
+
export { SignalProtocol } from './session/SignalProtocol';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PreKeyRecord, RegistrationInfo, SignedPreKeyRecord } from '../types';
|
|
2
|
+
export declare function generateRegistrationInfo(): Promise<RegistrationInfo>;
|
|
3
|
+
export declare function generatePreKeyPair(keyId: number): Promise<PreKeyRecord>;
|
|
4
|
+
export declare function generateSignedPreKey(keyId: number, signingPrivateKey: Uint8Array): Promise<SignedPreKeyRecord>;
|
|
5
|
+
export declare function generateRegistrationId(): Promise<number>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PreKeyRecord, RegistrationInfo, SignedPreKeyRecord } from '../types';
|
|
2
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
3
|
+
interface RegistrationBundle {
|
|
4
|
+
readonly registrationInfo: RegistrationInfo;
|
|
5
|
+
readonly signedPreKey: SignedPreKeyRecord;
|
|
6
|
+
readonly firstPreKey: PreKeyRecord;
|
|
7
|
+
}
|
|
8
|
+
export declare function createAndStoreInitialKeys(store: WaSignalStore): Promise<RegistrationBundle>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { SignalAddress, SignalPreKeyBundle, SignalSessionRecord } from '../types';
|
|
3
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
4
|
+
export declare class SignalProtocol {
|
|
5
|
+
private readonly store;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
constructor(store: WaSignalStore, logger?: Logger);
|
|
8
|
+
hasSession(address: SignalAddress): Promise<boolean>;
|
|
9
|
+
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
10
|
+
establishOutgoingSession(address: SignalAddress, remoteBundle: SignalPreKeyBundle): Promise<SignalSessionRecord>;
|
|
11
|
+
encryptMessage(address: SignalAddress, plaintext: Uint8Array, expectedIdentity?: Uint8Array): Promise<{
|
|
12
|
+
readonly type: 'msg' | 'pkmsg';
|
|
13
|
+
readonly ciphertext: Uint8Array;
|
|
14
|
+
readonly baseKey: Uint8Array | null;
|
|
15
|
+
}>;
|
|
16
|
+
decryptMessage(address: SignalAddress, envelope: {
|
|
17
|
+
readonly type: 'msg' | 'pkmsg';
|
|
18
|
+
readonly ciphertext: Uint8Array;
|
|
19
|
+
}): Promise<Uint8Array>;
|
|
20
|
+
private decryptMsgInternal;
|
|
21
|
+
private decryptPkMsg;
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ParsedPreKeySignalMessage, ParsedSignalMessage, SignalMessageKey, SignalRecvChain, SignalSessionRecord } from '../types';
|
|
2
|
+
export interface DecryptOutcome {
|
|
3
|
+
readonly updatedSession: SignalSessionRecord;
|
|
4
|
+
readonly plaintext: Uint8Array;
|
|
5
|
+
readonly newSessionInfo: {
|
|
6
|
+
readonly newIdentity: Uint8Array | null;
|
|
7
|
+
readonly baseSession: SignalSessionRecord;
|
|
8
|
+
readonly usedPreKey: number | null;
|
|
9
|
+
} | null;
|
|
10
|
+
}
|
|
11
|
+
export declare function splitMsgKey(index: number, bytes: Uint8Array): SignalMessageKey;
|
|
12
|
+
export declare function deriveMsgKey(index: number, chainKey: Uint8Array): Promise<{
|
|
13
|
+
readonly nextChainKey: Uint8Array;
|
|
14
|
+
readonly messageKey: SignalMessageKey;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function selectMessageKey(chain: SignalRecvChain, targetCounter: number): Promise<{
|
|
17
|
+
readonly messageKey: SignalMessageKey;
|
|
18
|
+
readonly updatedChain: SignalRecvChain;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function encryptMsg(session: SignalSessionRecord, plaintext: Uint8Array): Promise<readonly [SignalSessionRecord, {
|
|
21
|
+
type: 'msg' | 'pkmsg';
|
|
22
|
+
ciphertext: Uint8Array;
|
|
23
|
+
}]>;
|
|
24
|
+
export declare function decryptMsg(session: SignalSessionRecord | null, parsed: ParsedSignalMessage, onPrevSessionDecryptError?: (error: Error, previousSessionIndex: number) => void): Promise<DecryptOutcome>;
|
|
25
|
+
export declare function decryptMsgFromSession(session: SignalSessionRecord, message: ParsedSignalMessage | ParsedPreKeySignalMessage): Promise<readonly [SignalSessionRecord, Uint8Array]>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ParsedPreKeySignalMessage, ParsedSignalMessage, PreKeyRecord, SignedPreKeyRecord } from '../types';
|
|
2
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
3
|
+
export declare function deserializeMsg(versionContentMac: Uint8Array): ParsedSignalMessage;
|
|
4
|
+
export declare function deserializePkMsg(versionContent: Uint8Array): ParsedPreKeySignalMessage;
|
|
5
|
+
export declare function requireSignedPreKey(store: WaSignalStore, id: number): Promise<SignedPreKeyRecord>;
|
|
6
|
+
export declare function requirePreKey(store: WaSignalStore, id: number): Promise<PreKeyRecord>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SignalSerializedKeyPair, SignalSessionRecord, SignalSessionSnapshot } from '../types';
|
|
2
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
3
|
+
interface LocalIdentityContext {
|
|
4
|
+
readonly regId: number;
|
|
5
|
+
readonly staticKeyPair: SignalSerializedKeyPair;
|
|
6
|
+
}
|
|
7
|
+
interface IncomingRatchetKeys {
|
|
8
|
+
readonly signed: SignalSerializedKeyPair;
|
|
9
|
+
readonly oneTime?: SignalSerializedKeyPair;
|
|
10
|
+
readonly ratchet: SignalSerializedKeyPair;
|
|
11
|
+
}
|
|
12
|
+
export declare function snapshotToRecord(snapshot: SignalSessionSnapshot): SignalSessionRecord;
|
|
13
|
+
export declare function detachSession(session: SignalSessionRecord): SignalSessionSnapshot;
|
|
14
|
+
export declare function findMatchingSession(session: SignalSessionRecord | null, sessionBaseKey: Uint8Array): SignalSessionRecord | null;
|
|
15
|
+
export declare function requireLocalIdentity(store: WaSignalStore): Promise<LocalIdentityContext>;
|
|
16
|
+
export declare function initiateSessionOutgoing(local: LocalIdentityContext, remoteBundle: {
|
|
17
|
+
identity: Uint8Array;
|
|
18
|
+
signedKey: {
|
|
19
|
+
id: number;
|
|
20
|
+
publicKey: Uint8Array;
|
|
21
|
+
};
|
|
22
|
+
oneTimeKey?: {
|
|
23
|
+
id: number;
|
|
24
|
+
publicKey: Uint8Array;
|
|
25
|
+
};
|
|
26
|
+
ratchetKey?: Uint8Array;
|
|
27
|
+
regId: number;
|
|
28
|
+
}, localOneTimeBase: SignalSerializedKeyPair): Promise<SignalSessionRecord>;
|
|
29
|
+
export declare function initiateSessionIncoming(local: LocalIdentityContext, remote: {
|
|
30
|
+
regId: number;
|
|
31
|
+
pubKey: Uint8Array;
|
|
32
|
+
}, sessionBaseKey: Uint8Array, localKeys: IncomingRatchetKeys): Promise<SignalSessionRecord>;
|
|
33
|
+
export declare function calculateRatchet(rootKey: Uint8Array, localRatchet: SignalSerializedKeyPair, remoteRatchetPubKey: Uint8Array): Promise<{
|
|
34
|
+
readonly rootKey: Uint8Array;
|
|
35
|
+
readonly chainKey: Uint8Array;
|
|
36
|
+
}>;
|
|
37
|
+
export declare function generateSerializedKeyPair(): Promise<SignalSerializedKeyPair>;
|
|
38
|
+
export declare function toSerializedKeyPair(pair: {
|
|
39
|
+
readonly pubKey: Uint8Array;
|
|
40
|
+
readonly privKey: Uint8Array;
|
|
41
|
+
}): SignalSerializedKeyPair;
|
|
42
|
+
export declare function ecdh(privateKey: Uint8Array, publicKey: Uint8Array): Promise<Uint8Array>;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { PreKeyRecord, RegistrationInfo, SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '../types';
|
|
2
|
+
export interface SignalAddressParts {
|
|
3
|
+
readonly user: string;
|
|
4
|
+
readonly server: string;
|
|
5
|
+
readonly device: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SignalRegistrationRow extends Record<string, unknown> {
|
|
8
|
+
readonly registration_id: unknown;
|
|
9
|
+
readonly identity_pub_key: unknown;
|
|
10
|
+
readonly identity_priv_key: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface SignalSignedPreKeyRow extends Record<string, unknown> {
|
|
13
|
+
readonly key_id: unknown;
|
|
14
|
+
readonly pub_key: unknown;
|
|
15
|
+
readonly priv_key: unknown;
|
|
16
|
+
readonly signature: unknown;
|
|
17
|
+
readonly uploaded: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface SignalPreKeyRow extends Record<string, unknown> {
|
|
20
|
+
readonly key_id: unknown;
|
|
21
|
+
readonly pub_key: unknown;
|
|
22
|
+
readonly priv_key: unknown;
|
|
23
|
+
readonly uploaded: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface SignalMetaRow extends Record<string, unknown> {
|
|
26
|
+
readonly server_has_prekeys: unknown;
|
|
27
|
+
readonly next_prekey_id: unknown;
|
|
28
|
+
readonly signed_prekey_rotation_ts: unknown;
|
|
29
|
+
}
|
|
30
|
+
export interface SignalSessionRow extends Record<string, unknown> {
|
|
31
|
+
readonly user: unknown;
|
|
32
|
+
readonly server: unknown;
|
|
33
|
+
readonly device: unknown;
|
|
34
|
+
readonly record: unknown;
|
|
35
|
+
}
|
|
36
|
+
export interface SignalIdentityRow extends Record<string, unknown> {
|
|
37
|
+
readonly identity_key: unknown;
|
|
38
|
+
}
|
|
39
|
+
export interface SenderKeyRow extends Record<string, unknown> {
|
|
40
|
+
readonly group_id: unknown;
|
|
41
|
+
readonly sender_user: unknown;
|
|
42
|
+
readonly sender_server: unknown;
|
|
43
|
+
readonly sender_device: unknown;
|
|
44
|
+
readonly record: unknown;
|
|
45
|
+
}
|
|
46
|
+
export interface SenderKeyDistributionRow extends Record<string, unknown> {
|
|
47
|
+
readonly group_id: unknown;
|
|
48
|
+
readonly sender_user: unknown;
|
|
49
|
+
readonly sender_server: unknown;
|
|
50
|
+
readonly sender_device: unknown;
|
|
51
|
+
readonly key_id: unknown;
|
|
52
|
+
readonly timestamp_ms: unknown;
|
|
53
|
+
}
|
|
54
|
+
export interface SqliteCountRow extends Record<string, unknown> {
|
|
55
|
+
readonly count: unknown;
|
|
56
|
+
}
|
|
57
|
+
export declare function toSignalAddressParts(address: SignalAddress): SignalAddressParts;
|
|
58
|
+
export declare function decodeSignalAddressFromRow(row: Pick<SenderKeyRow | SenderKeyDistributionRow | SignalSessionRow, 'sender_user' | 'sender_server' | 'sender_device'> | {
|
|
59
|
+
readonly sender_user?: unknown;
|
|
60
|
+
readonly sender_server?: unknown;
|
|
61
|
+
readonly sender_device?: unknown;
|
|
62
|
+
}): SignalAddress;
|
|
63
|
+
export declare function decodeSignalRegistrationRow(row: SignalRegistrationRow): RegistrationInfo;
|
|
64
|
+
export declare function decodeSignalPreKeyRow(row: SignalPreKeyRow): PreKeyRecord;
|
|
65
|
+
export declare function decodeSignalSignedPreKeyRow(row: SignalSignedPreKeyRow): SignedPreKeyRecord;
|
|
66
|
+
export declare function encodeSignalSessionRecord(record: SignalSessionRecord): Uint8Array;
|
|
67
|
+
export declare function decodeSignalSessionRecord(raw: unknown): SignalSessionRecord;
|
|
68
|
+
export declare function encodeSenderKeyRecord(record: SenderKeyRecord): Uint8Array;
|
|
69
|
+
export declare function decodeSenderKeyRecord(raw: unknown, groupId: string, sender: SignalAddress): SenderKeyRecord;
|
|
70
|
+
export declare function decodeSenderKeyDistributionRow(row: SenderKeyDistributionRow): SenderKeyDistributionRecord;
|
|
71
|
+
export declare function decodeSqliteCount(row: SqliteCountRow | null, field: string): number;
|
|
72
|
+
export declare function decodeSignalRemoteIdentity(raw: unknown): Uint8Array;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { SignalKeyPair } from '../crypto/curves/types';
|
|
2
|
+
export interface RegistrationInfo {
|
|
3
|
+
readonly registrationId: number;
|
|
4
|
+
readonly identityKeyPair: SignalKeyPair;
|
|
5
|
+
}
|
|
6
|
+
export interface PreKeyRecord {
|
|
7
|
+
readonly keyId: number;
|
|
8
|
+
readonly keyPair: SignalKeyPair;
|
|
9
|
+
readonly uploaded?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface SignedPreKeyRecord {
|
|
12
|
+
readonly keyId: number;
|
|
13
|
+
readonly keyPair: SignalKeyPair;
|
|
14
|
+
readonly signature: Uint8Array;
|
|
15
|
+
readonly uploaded?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface SignalAddress {
|
|
18
|
+
readonly user: string;
|
|
19
|
+
readonly server?: string;
|
|
20
|
+
readonly device: number;
|
|
21
|
+
}
|
|
22
|
+
export interface SignalPeer {
|
|
23
|
+
readonly regId: number;
|
|
24
|
+
readonly pubKey: Uint8Array;
|
|
25
|
+
}
|
|
26
|
+
export interface SignalSerializedKeyPair {
|
|
27
|
+
readonly pubKey: Uint8Array;
|
|
28
|
+
readonly privKey: Uint8Array;
|
|
29
|
+
}
|
|
30
|
+
export interface SignalMessageKey {
|
|
31
|
+
readonly index: number;
|
|
32
|
+
readonly cipherKey: Uint8Array;
|
|
33
|
+
readonly macKey: Uint8Array;
|
|
34
|
+
readonly iv: Uint8Array;
|
|
35
|
+
}
|
|
36
|
+
export interface SignalRecvChain {
|
|
37
|
+
readonly ratchetPubKey: Uint8Array;
|
|
38
|
+
readonly nextMsgIndex: number;
|
|
39
|
+
readonly chainKey: Uint8Array;
|
|
40
|
+
readonly unusedMsgKeys: readonly SignalMessageKey[];
|
|
41
|
+
}
|
|
42
|
+
export interface SignalSendChain {
|
|
43
|
+
readonly ratchetKey: SignalSerializedKeyPair;
|
|
44
|
+
readonly nextMsgIndex: number;
|
|
45
|
+
readonly chainKey: Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
export interface SignalInitialExchangeInfo {
|
|
48
|
+
readonly remoteOneTimeId: number | null;
|
|
49
|
+
readonly remoteSignedId: number;
|
|
50
|
+
readonly localOneTimePubKey: Uint8Array;
|
|
51
|
+
}
|
|
52
|
+
export interface SignalSessionSnapshot {
|
|
53
|
+
readonly local: SignalPeer;
|
|
54
|
+
readonly remote: SignalPeer;
|
|
55
|
+
readonly rootKey: Uint8Array;
|
|
56
|
+
readonly sendChain: SignalSendChain;
|
|
57
|
+
readonly recvChains: readonly SignalRecvChain[];
|
|
58
|
+
readonly initialExchangeInfo: SignalInitialExchangeInfo | null;
|
|
59
|
+
readonly prevSendChainHighestIndex: number;
|
|
60
|
+
readonly aliceBaseKey: Uint8Array | null;
|
|
61
|
+
}
|
|
62
|
+
export interface SignalSessionRecord extends SignalSessionSnapshot {
|
|
63
|
+
readonly prevSessions: readonly SignalSessionSnapshot[];
|
|
64
|
+
}
|
|
65
|
+
export interface SignalPreKeyBundle {
|
|
66
|
+
readonly regId: number;
|
|
67
|
+
readonly identity: Uint8Array;
|
|
68
|
+
readonly signedKey: {
|
|
69
|
+
readonly id: number;
|
|
70
|
+
readonly publicKey: Uint8Array;
|
|
71
|
+
readonly signature: Uint8Array;
|
|
72
|
+
};
|
|
73
|
+
readonly oneTimeKey?: {
|
|
74
|
+
readonly id: number;
|
|
75
|
+
readonly publicKey: Uint8Array;
|
|
76
|
+
};
|
|
77
|
+
readonly ratchetKey?: Uint8Array;
|
|
78
|
+
}
|
|
79
|
+
export interface ParsedSignalMessage {
|
|
80
|
+
readonly ratchetPubKey: Uint8Array;
|
|
81
|
+
readonly counter: number;
|
|
82
|
+
readonly ciphertext: Uint8Array;
|
|
83
|
+
readonly versionContentMac: Uint8Array;
|
|
84
|
+
}
|
|
85
|
+
export interface ParsedPreKeySignalMessage extends ParsedSignalMessage {
|
|
86
|
+
readonly remote: SignalPeer;
|
|
87
|
+
readonly sessionBaseKey: Uint8Array;
|
|
88
|
+
readonly localSignedPreKeyId: number;
|
|
89
|
+
readonly localOneTimeKeyId: number | null;
|
|
90
|
+
}
|
|
91
|
+
export interface SenderKeyRecord {
|
|
92
|
+
readonly groupId: string;
|
|
93
|
+
readonly sender: SignalAddress;
|
|
94
|
+
readonly keyId: number;
|
|
95
|
+
readonly iteration: number;
|
|
96
|
+
readonly chainKey: Uint8Array;
|
|
97
|
+
readonly signingPublicKey: Uint8Array;
|
|
98
|
+
readonly signingPrivateKey?: Uint8Array;
|
|
99
|
+
readonly unusedMessageKeys?: readonly SenderMessageKey[];
|
|
100
|
+
}
|
|
101
|
+
export interface SenderMessageKey {
|
|
102
|
+
readonly iteration: number;
|
|
103
|
+
readonly seed: Uint8Array;
|
|
104
|
+
}
|
|
105
|
+
export interface SenderKeyDistributionRecord {
|
|
106
|
+
readonly groupId: string;
|
|
107
|
+
readonly sender: SignalAddress;
|
|
108
|
+
readonly keyId: number;
|
|
109
|
+
readonly timestampMs: number;
|
|
110
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AppStateCollectionName, WaAppStateStoreData, WaAppStateSyncKey } from '../../appstate/types';
|
|
2
|
+
export interface WaAppStateCollectionStoreState {
|
|
3
|
+
readonly version: number;
|
|
4
|
+
readonly hash: Uint8Array;
|
|
5
|
+
readonly indexValueMap: ReadonlyMap<string, Uint8Array>;
|
|
6
|
+
}
|
|
7
|
+
export interface WaAppStateCollectionStateUpdate {
|
|
8
|
+
readonly collection: AppStateCollectionName;
|
|
9
|
+
readonly version: number;
|
|
10
|
+
readonly hash: Uint8Array;
|
|
11
|
+
readonly indexValueMap: ReadonlyMap<string, Uint8Array>;
|
|
12
|
+
}
|
|
13
|
+
export interface WaAppStateStore {
|
|
14
|
+
exportData(): Promise<WaAppStateStoreData>;
|
|
15
|
+
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
16
|
+
getSyncKey(keyId: Uint8Array): Promise<WaAppStateSyncKey | null>;
|
|
17
|
+
getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
|
|
18
|
+
getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
|
|
19
|
+
getCollectionState(collection: AppStateCollectionName): Promise<WaAppStateCollectionStoreState>;
|
|
20
|
+
setCollectionStates(updates: readonly WaAppStateCollectionStateUpdate[]): Promise<void>;
|
|
21
|
+
clear(): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface WaStoredContactRecord {
|
|
2
|
+
readonly jid: string;
|
|
3
|
+
readonly displayName?: string;
|
|
4
|
+
readonly pushName?: string;
|
|
5
|
+
readonly lid?: string;
|
|
6
|
+
readonly phoneNumber?: string;
|
|
7
|
+
readonly lastUpdatedMs: number;
|
|
8
|
+
}
|
|
9
|
+
export interface WaContactStore {
|
|
10
|
+
upsert(record: WaStoredContactRecord): Promise<void>;
|
|
11
|
+
getByJid(jid: string): Promise<WaStoredContactRecord | null>;
|
|
12
|
+
deleteByJid(jid: string): Promise<number>;
|
|
13
|
+
clear(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface WaDeviceListSnapshot {
|
|
2
|
+
readonly userJid: string;
|
|
3
|
+
readonly deviceJids: readonly string[];
|
|
4
|
+
readonly updatedAtMs: number;
|
|
5
|
+
}
|
|
6
|
+
export interface WaDeviceListStore {
|
|
7
|
+
getTtlMs(): number;
|
|
8
|
+
destroy?(): Promise<void>;
|
|
9
|
+
upsertUserDevices(snapshot: WaDeviceListSnapshot): Promise<void>;
|
|
10
|
+
upsertUserDevicesBatch(snapshots: readonly WaDeviceListSnapshot[]): Promise<void>;
|
|
11
|
+
getUserDevices(userJid: string, nowMs?: number): Promise<WaDeviceListSnapshot | null>;
|
|
12
|
+
getUserDevicesBatch(userJids: readonly string[], nowMs?: number): Promise<readonly (WaDeviceListSnapshot | null)[]>;
|
|
13
|
+
deleteUserDevices(userJid: string): Promise<number>;
|
|
14
|
+
cleanupExpired(nowMs: number): Promise<number>;
|
|
15
|
+
clear(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface WaStoredMessageRecord {
|
|
2
|
+
readonly id: string;
|
|
3
|
+
readonly threadJid: string;
|
|
4
|
+
readonly senderJid?: string;
|
|
5
|
+
readonly participantJid?: string;
|
|
6
|
+
readonly fromMe: boolean;
|
|
7
|
+
readonly timestampMs?: number;
|
|
8
|
+
readonly encType?: string;
|
|
9
|
+
readonly plaintext?: Uint8Array;
|
|
10
|
+
readonly messageBytes?: Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
export interface WaMessageStore {
|
|
13
|
+
upsert(record: WaStoredMessageRecord): Promise<void>;
|
|
14
|
+
getById(id: string): Promise<WaStoredMessageRecord | null>;
|
|
15
|
+
listByThread(threadJid: string, limit?: number, beforeTimestampMs?: number): Promise<readonly WaStoredMessageRecord[]>;
|
|
16
|
+
deleteById(id: string): Promise<number>;
|
|
17
|
+
clear(): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface WaParticipantsSnapshot {
|
|
2
|
+
readonly groupJid: string;
|
|
3
|
+
readonly participants: readonly string[];
|
|
4
|
+
readonly updatedAtMs: number;
|
|
5
|
+
}
|
|
6
|
+
export interface WaParticipantsStore {
|
|
7
|
+
getTtlMs(): number;
|
|
8
|
+
destroy?(): Promise<void>;
|
|
9
|
+
upsertGroupParticipants(snapshot: WaParticipantsSnapshot): Promise<void>;
|
|
10
|
+
getGroupParticipants(groupJid: string, nowMs?: number): Promise<WaParticipantsSnapshot | null>;
|
|
11
|
+
deleteGroupParticipants(groupJid: string): Promise<number>;
|
|
12
|
+
cleanupExpired(nowMs: number): Promise<number>;
|
|
13
|
+
clear(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WaRetryOutboundMessageRecord, WaRetryOutboundState } from '../../retry/types';
|
|
2
|
+
export interface WaRetryStore {
|
|
3
|
+
getTtlMs?(): number;
|
|
4
|
+
destroy?(): Promise<void>;
|
|
5
|
+
upsertOutboundMessage(record: WaRetryOutboundMessageRecord): Promise<void>;
|
|
6
|
+
getOutboundMessage(messageId: string): Promise<WaRetryOutboundMessageRecord | null>;
|
|
7
|
+
updateOutboundMessageState(messageId: string, state: WaRetryOutboundState, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
8
|
+
incrementInboundCounter(messageId: string, requesterJid: string, updatedAtMs: number, expiresAtMs: number): Promise<number>;
|
|
9
|
+
cleanupExpired(nowMs: number): Promise<number>;
|
|
10
|
+
clear(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SenderKeyDistributionRecord, SenderKeyRecord, SignalAddress } from '../../signal/types';
|
|
2
|
+
export interface WaSenderKeyStore {
|
|
3
|
+
upsertSenderKey(record: SenderKeyRecord): Promise<void>;
|
|
4
|
+
upsertSenderKeyDistribution(record: SenderKeyDistributionRecord): Promise<void>;
|
|
5
|
+
upsertSenderKeyDistributions(records: readonly SenderKeyDistributionRecord[]): Promise<void>;
|
|
6
|
+
getGroupSenderKeyList(groupId: string): Promise<{
|
|
7
|
+
readonly skList: readonly SenderKeyRecord[];
|
|
8
|
+
readonly skDistribList: readonly SenderKeyDistributionRecord[];
|
|
9
|
+
}>;
|
|
10
|
+
getDeviceSenderKey(groupId: string, sender: SignalAddress): Promise<SenderKeyRecord | null>;
|
|
11
|
+
getDeviceSenderKeyDistribution(groupId: string, sender: SignalAddress): Promise<SenderKeyDistributionRecord | null>;
|
|
12
|
+
getDeviceSenderKeyDistributions(groupId: string, senders: readonly SignalAddress[]): Promise<readonly (SenderKeyDistributionRecord | null)[]>;
|
|
13
|
+
deleteDeviceSenderKey(target: SignalAddress, groupId?: string): Promise<number>;
|
|
14
|
+
markForgetSenderKey(groupId: string, participants: readonly SignalAddress[]): Promise<number>;
|
|
15
|
+
clear(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PreKeyRecord, RegistrationInfo, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '../../signal/types';
|
|
2
|
+
export interface WaSignalStore {
|
|
3
|
+
getRegistrationInfo(): Promise<RegistrationInfo | null>;
|
|
4
|
+
setRegistrationInfo(info: RegistrationInfo): Promise<void>;
|
|
5
|
+
getSignedPreKey(): Promise<SignedPreKeyRecord | null>;
|
|
6
|
+
setSignedPreKey(record: SignedPreKeyRecord): Promise<void>;
|
|
7
|
+
getSignedPreKeyById(keyId: number): Promise<SignedPreKeyRecord | null>;
|
|
8
|
+
setSignedPreKeyRotationTs(value: number | null): Promise<void>;
|
|
9
|
+
getSignedPreKeyRotationTs(): Promise<number | null>;
|
|
10
|
+
putPreKey(record: PreKeyRecord): Promise<void>;
|
|
11
|
+
getOrGenPreKeys(count: number, generator: (keyId: number) => PreKeyRecord | Promise<PreKeyRecord>): Promise<readonly PreKeyRecord[]>;
|
|
12
|
+
getPreKeyById(keyId: number): Promise<PreKeyRecord | null>;
|
|
13
|
+
getPreKeysById(keyIds: readonly number[]): Promise<readonly (PreKeyRecord | null)[]>;
|
|
14
|
+
consumePreKeyById(keyId: number): Promise<PreKeyRecord | null>;
|
|
15
|
+
getOrGenSinglePreKey(generator: (keyId: number) => PreKeyRecord | Promise<PreKeyRecord>): Promise<PreKeyRecord>;
|
|
16
|
+
markKeyAsUploaded(keyId: number): Promise<void>;
|
|
17
|
+
setServerHasPreKeys(value: boolean): Promise<void>;
|
|
18
|
+
getServerHasPreKeys(): Promise<boolean>;
|
|
19
|
+
hasSession(address: SignalAddress): Promise<boolean>;
|
|
20
|
+
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
21
|
+
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
22
|
+
setSession(address: SignalAddress, session: SignalSessionRecord): Promise<void>;
|
|
23
|
+
deleteSession(address: SignalAddress): Promise<void>;
|
|
24
|
+
getRemoteIdentity(address: SignalAddress): Promise<Uint8Array | null>;
|
|
25
|
+
setRemoteIdentity(address: SignalAddress, identityKey: Uint8Array): Promise<void>;
|
|
26
|
+
setRemoteIdentities(entries: readonly {
|
|
27
|
+
readonly address: SignalAddress;
|
|
28
|
+
readonly identityKey: Uint8Array;
|
|
29
|
+
}[]): Promise<void>;
|
|
30
|
+
clear(): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface WaStoredThreadRecord {
|
|
2
|
+
readonly jid: string;
|
|
3
|
+
readonly name?: string;
|
|
4
|
+
readonly unreadCount?: number;
|
|
5
|
+
readonly archived?: boolean;
|
|
6
|
+
readonly pinned?: number;
|
|
7
|
+
readonly muteEndMs?: number;
|
|
8
|
+
readonly markedAsUnread?: boolean;
|
|
9
|
+
readonly ephemeralExpiration?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface WaThreadStore {
|
|
12
|
+
upsert(record: WaStoredThreadRecord): Promise<void>;
|
|
13
|
+
getByJid(jid: string): Promise<WaStoredThreadRecord | null>;
|
|
14
|
+
list(limit?: number): Promise<readonly WaStoredThreadRecord[]>;
|
|
15
|
+
deleteByJid(jid: string): Promise<number>;
|
|
16
|
+
clear(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type { WaCreateStoreCustomCacheProviders, WaCreateStoreCustomProviders, WaCreateStoreOptions, WaSqliteDriver, WaSqliteStorageOptions, WaStoreSqliteBatchSizeSelection, WaStoreMemoryLimitSelection, WaStoreCacheProviderSelection, WaStoreCacheTtlSelection, WaStore, WaStoreDomainValueOrFactory, WaStoreProviderSelection, WaStoreSession } from './types';
|
|
2
|
+
export { WaAuthSqliteStore } from './providers/sqlite/auth.store';
|
|
3
|
+
export { WaAppStateSqliteStore } from './providers/sqlite/appstate.store';
|
|
4
|
+
export { createStore } from './createStore';
|
|
5
|
+
export type { WaAuthStore } from './contracts/auth.store';
|
|
6
|
+
export type { WaContactStore, WaStoredContactRecord } from './contracts/contact.store';
|
|
7
|
+
export type { WaDeviceListSnapshot, WaDeviceListStore } from './contracts/device-list.store';
|
|
8
|
+
export type { WaMessageStore, WaStoredMessageRecord } from './contracts/message.store';
|
|
9
|
+
export type { WaParticipantsSnapshot, WaParticipantsStore } from './contracts/participants.store';
|
|
10
|
+
export type { WaAppStateCollectionStoreState, WaAppStateStore } from './contracts/appstate.store';
|
|
11
|
+
export type { WaSenderKeyStore } from './contracts/sender-key.store';
|
|
12
|
+
export type { WaSignalStore } from './contracts/signal.store';
|
|
13
|
+
export type { WaRetryStore } from './contracts/retry.store';
|
|
14
|
+
export type { WaStoredThreadRecord, WaThreadStore } from './contracts/thread.store';
|
|
15
|
+
export { WaSignalSqliteStore } from './providers/sqlite/signal.store';
|
|
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';
|
|
20
|
+
export { WaAppStateMemoryStore } from './providers/memory/appstate.store';
|
|
21
|
+
export { WaSignalMemoryStore } from './providers/memory/signal.store';
|
|
22
|
+
export { SenderKeyMemoryStore } from './providers/memory/sender-key.store';
|
|
23
|
+
export { WaRetryMemoryStore } from './providers/memory/retry.store';
|
|
24
|
+
export { WaParticipantsMemoryStore } from './providers/memory/participants.store';
|
|
25
|
+
export { WaDeviceListMemoryStore } from './providers/memory/device-list.store';
|
|
26
|
+
export { WaContactMemoryStore } from './providers/memory/contact.store';
|
|
27
|
+
export { WaMessageMemoryStore } from './providers/memory/message.store';
|
|
28
|
+
export { WaThreadMemoryStore } from './providers/memory/thread.store';
|
|
29
|
+
export { WaContactSqliteStore } from './providers/sqlite/contact.store';
|
|
30
|
+
export { WaMessageSqliteStore } from './providers/sqlite/message.store';
|
|
31
|
+
export { WaThreadSqliteStore } from './providers/sqlite/thread.store';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WaContactStore } from './contracts/contact.store';
|
|
2
|
+
import type { WaDeviceListStore } from './contracts/device-list.store';
|
|
3
|
+
import type { WaMessageStore } from './contracts/message.store';
|
|
4
|
+
import type { WaParticipantsStore } from './contracts/participants.store';
|
|
5
|
+
import type { WaThreadStore } from './contracts/thread.store';
|
|
6
|
+
export declare const NOOP_MESSAGE_STORE: WaMessageStore;
|
|
7
|
+
export declare const NOOP_THREAD_STORE: WaThreadStore;
|
|
8
|
+
export declare const NOOP_CONTACT_STORE: WaContactStore;
|
|
9
|
+
export declare const NOOP_PARTICIPANTS_STORE: WaParticipantsStore;
|
|
10
|
+
export declare const NOOP_DEVICE_LIST_STORE: WaDeviceListStore;
|