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,90 @@
|
|
|
1
|
+
import type { WaAppStateSyncKey } from '../../appstate/types';
|
|
2
|
+
import type { WaGroupEvent, WaSignalMessagePublishInput, WaSendMessageOptions } from '../types';
|
|
3
|
+
import type { Logger } from '../../infra/log/types';
|
|
4
|
+
import type { WaEncryptedMessageInput, WaMessagePublishOptions, WaMessagePublishResult, WaSendMessageContent, WaSendReceiptInput } from '../../message/types';
|
|
5
|
+
import type { WaMessageClient } from '../../message/WaMessageClient';
|
|
6
|
+
import type { Proto } from '../..';
|
|
7
|
+
import type { SignalDeviceSyncApi } from '../../signal/api/SignalDeviceSyncApi';
|
|
8
|
+
import type { SignalIdentitySyncApi } from '../../signal/api/SignalIdentitySyncApi';
|
|
9
|
+
import type { SignalSessionSyncApi } from '../../signal/api/SignalSessionSyncApi';
|
|
10
|
+
import type { SenderKeyManager } from '../../signal/group/SenderKeyManager';
|
|
11
|
+
import type { SignalProtocol } from '../../signal/session/SignalProtocol';
|
|
12
|
+
import type { WaParticipantsStore } from '../../store/contracts/participants.store';
|
|
13
|
+
import type { WaRetryStore } from '../../store/contracts/retry.store';
|
|
14
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
15
|
+
import type { BinaryNode } from '../../transport/types';
|
|
16
|
+
interface WaMessageDispatchCoordinatorOptions {
|
|
17
|
+
readonly logger: Logger;
|
|
18
|
+
readonly messageClient: WaMessageClient;
|
|
19
|
+
readonly retryStore: WaRetryStore;
|
|
20
|
+
readonly participantsStore: WaParticipantsStore;
|
|
21
|
+
readonly buildMessageContent: (content: WaSendMessageContent) => Promise<Proto.IMessage>;
|
|
22
|
+
readonly queryGroupParticipantJids: (groupJid: string) => Promise<readonly string[]>;
|
|
23
|
+
readonly senderKeyManager: SenderKeyManager;
|
|
24
|
+
readonly signalProtocol: SignalProtocol;
|
|
25
|
+
readonly signalStore: WaSignalStore;
|
|
26
|
+
readonly signalDeviceSync: SignalDeviceSyncApi;
|
|
27
|
+
readonly signalIdentitySync: SignalIdentitySyncApi;
|
|
28
|
+
readonly signalSessionSync: SignalSessionSyncApi;
|
|
29
|
+
readonly getCurrentMeJid: () => string | null | undefined;
|
|
30
|
+
readonly getCurrentMeLid: () => string | null | undefined;
|
|
31
|
+
readonly getCurrentSignedIdentity: () => Proto.IADVSignedDeviceIdentity | null | undefined;
|
|
32
|
+
}
|
|
33
|
+
export declare class WaMessageDispatchCoordinator {
|
|
34
|
+
private readonly logger;
|
|
35
|
+
private readonly messageClient;
|
|
36
|
+
private readonly retryStore;
|
|
37
|
+
private readonly participantsStore;
|
|
38
|
+
private readonly retryTtlMs;
|
|
39
|
+
private readonly buildMessageContent;
|
|
40
|
+
private readonly queryGroupParticipantJids;
|
|
41
|
+
private readonly senderKeyManager;
|
|
42
|
+
private readonly signalProtocol;
|
|
43
|
+
private readonly signalStore;
|
|
44
|
+
private readonly signalDeviceSync;
|
|
45
|
+
private readonly signalIdentitySync;
|
|
46
|
+
private readonly signalSessionSync;
|
|
47
|
+
private readonly getCurrentMeJid;
|
|
48
|
+
private readonly getCurrentMeLid;
|
|
49
|
+
private readonly getCurrentSignedIdentity;
|
|
50
|
+
constructor(options: WaMessageDispatchCoordinatorOptions);
|
|
51
|
+
publishMessageNode(node: BinaryNode, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
52
|
+
publishEncryptedMessage(input: WaEncryptedMessageInput, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
53
|
+
publishSignalMessage(input: WaSignalMessagePublishInput, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
54
|
+
sendMessage(to: string, content: WaSendMessageContent, options?: WaSendMessageOptions): Promise<WaMessagePublishResult>;
|
|
55
|
+
syncSignalSession(jid: string, reasonIdentity?: boolean): Promise<void>;
|
|
56
|
+
sendReceipt(input: WaSendReceiptInput): Promise<void>;
|
|
57
|
+
requestAppStateSyncKeys(keyIds: readonly Uint8Array[]): Promise<readonly string[]>;
|
|
58
|
+
sendAppStateSyncKeyShare(toDeviceJid: string, keys: readonly WaAppStateSyncKey[], missingKeyIds?: readonly Uint8Array[]): Promise<void>;
|
|
59
|
+
mutateParticipantsCacheFromGroupEvent(event: WaGroupEvent): Promise<void>;
|
|
60
|
+
private publishProtocolMessageToDevice;
|
|
61
|
+
private resolveOwnPeerDeviceJids;
|
|
62
|
+
private normalizeKeyIds;
|
|
63
|
+
private publishWithRetryTracking;
|
|
64
|
+
private createRetryOutboundRecord;
|
|
65
|
+
private safeUpsertRetryOutboundRecord;
|
|
66
|
+
private shouldUseGroupDirectPath;
|
|
67
|
+
private publishGroupDirectMessage;
|
|
68
|
+
private publishGroupSenderKeyMessage;
|
|
69
|
+
private resolveGroupParticipantUsers;
|
|
70
|
+
private resolveGroupJidForParticipantCacheEvent;
|
|
71
|
+
private extractParticipantUsersFromGroupEvent;
|
|
72
|
+
private mergeParticipantUsersIntoCache;
|
|
73
|
+
private removeParticipantUsersFromCache;
|
|
74
|
+
private replaceParticipantUsersInCache;
|
|
75
|
+
private areParticipantListsEqual;
|
|
76
|
+
private refreshGroupParticipantUsers;
|
|
77
|
+
private sanitizeParticipantUsers;
|
|
78
|
+
private resolveGroupAddressingMode;
|
|
79
|
+
private resolveSenderForAddressingMode;
|
|
80
|
+
private encryptGroupDistributionParticipants;
|
|
81
|
+
private resolveGroupParticipantDeviceJids;
|
|
82
|
+
private publishDirectSignalMessageWithFanout;
|
|
83
|
+
private ensureSignalSessionsBatch;
|
|
84
|
+
private resolveDirectFanoutDeviceJids;
|
|
85
|
+
private resolveSelfDeviceJidForRecipient;
|
|
86
|
+
private getEncodedSignedDeviceIdentity;
|
|
87
|
+
private ensureSignalSession;
|
|
88
|
+
private requireCurrentMeJid;
|
|
89
|
+
}
|
|
90
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
2
|
+
import type { Logger } from '../../infra/log/types';
|
|
3
|
+
import type { SignalDigestSyncApi } from '../../signal/api/SignalDigestSyncApi';
|
|
4
|
+
import type { SignalRotateKeyApi } from '../../signal/api/SignalRotateKeyApi';
|
|
5
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
6
|
+
import type { BinaryNode } from '../../transport/types';
|
|
7
|
+
type WaPassiveTasksRuntime = {
|
|
8
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
9
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
10
|
+
readonly persistServerHasPreKeys: (serverHasPreKeys: boolean) => Promise<void>;
|
|
11
|
+
readonly sendNodeDirect: (node: BinaryNode) => Promise<void>;
|
|
12
|
+
readonly takeDanglingReceipts: () => BinaryNode[];
|
|
13
|
+
readonly requeueDanglingReceipt: (node: BinaryNode) => void;
|
|
14
|
+
readonly shouldQueueDanglingReceipt: (node: BinaryNode, error: Error) => boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare class WaPassiveTasksCoordinator {
|
|
17
|
+
private readonly logger;
|
|
18
|
+
private readonly signalStore;
|
|
19
|
+
private readonly signalDigestSync;
|
|
20
|
+
private readonly signalRotateKey;
|
|
21
|
+
private readonly signedPreKeyRotationIntervalMs;
|
|
22
|
+
private readonly signedPreKeyServerErrorBackoffMs;
|
|
23
|
+
private readonly runtime;
|
|
24
|
+
private passiveTasksPromise;
|
|
25
|
+
constructor(options: {
|
|
26
|
+
readonly logger: Logger;
|
|
27
|
+
readonly signalStore: WaSignalStore;
|
|
28
|
+
readonly signalDigestSync: SignalDigestSyncApi;
|
|
29
|
+
readonly signalRotateKey: SignalRotateKeyApi;
|
|
30
|
+
readonly signedPreKeyRotationIntervalMs?: number;
|
|
31
|
+
readonly signedPreKeyServerErrorBackoffMs?: number;
|
|
32
|
+
readonly runtime: WaPassiveTasksRuntime;
|
|
33
|
+
});
|
|
34
|
+
startPassiveTasksAfterConnect(): void;
|
|
35
|
+
resetInFlightState(): void;
|
|
36
|
+
private runPassiveTasksAfterConnect;
|
|
37
|
+
private validateDigestAndRecoverPreKeys;
|
|
38
|
+
private uploadPreKeysIfMissing;
|
|
39
|
+
private rotateSignedPreKeyIfDue;
|
|
40
|
+
private resolveRotationTimestamp;
|
|
41
|
+
private flushDanglingReceipts;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { WaMessageClient } from '../../message/WaMessageClient';
|
|
3
|
+
import { type Proto } from '../..';
|
|
4
|
+
import type { WaRetryDecryptFailureContext } from '../../retry/types';
|
|
5
|
+
import type { SignalDeviceSyncApi } from '../../signal/api/SignalDeviceSyncApi';
|
|
6
|
+
import type { SignalMissingPreKeysSyncApi } from '../../signal/api/SignalMissingPreKeysSyncApi';
|
|
7
|
+
import type { SignalProtocol } from '../../signal/session/SignalProtocol';
|
|
8
|
+
import type { WaRetryStore } from '../../store/contracts/retry.store';
|
|
9
|
+
import type { WaSenderKeyStore } from '../../store/contracts/sender-key.store';
|
|
10
|
+
import type { WaSignalStore } from '../../store/contracts/signal.store';
|
|
11
|
+
import type { BinaryNode } from '../../transport/types';
|
|
12
|
+
interface WaRetryCoordinatorOptions {
|
|
13
|
+
readonly logger: Logger;
|
|
14
|
+
readonly retryStore: WaRetryStore;
|
|
15
|
+
readonly signalStore: WaSignalStore;
|
|
16
|
+
readonly senderKeyStore: WaSenderKeyStore;
|
|
17
|
+
readonly signalProtocol: SignalProtocol;
|
|
18
|
+
readonly signalDeviceSync: SignalDeviceSyncApi;
|
|
19
|
+
readonly signalMissingPreKeysSync: SignalMissingPreKeysSyncApi;
|
|
20
|
+
readonly messageClient: WaMessageClient;
|
|
21
|
+
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
22
|
+
readonly getCurrentMeJid: () => string | null | undefined;
|
|
23
|
+
readonly getCurrentMeLid: () => string | null | undefined;
|
|
24
|
+
readonly getCurrentSignedIdentity: () => Proto.IADVSignedDeviceIdentity | null | undefined;
|
|
25
|
+
}
|
|
26
|
+
export declare class WaRetryCoordinator {
|
|
27
|
+
private readonly logger;
|
|
28
|
+
private readonly retryStore;
|
|
29
|
+
private readonly retryTtlMs;
|
|
30
|
+
private readonly signalStore;
|
|
31
|
+
private readonly senderKeyStore;
|
|
32
|
+
private readonly signalProtocol;
|
|
33
|
+
private readonly signalDeviceSync;
|
|
34
|
+
private readonly signalMissingPreKeysSync;
|
|
35
|
+
private readonly retryReplayService;
|
|
36
|
+
private readonly sendNode;
|
|
37
|
+
private readonly getCurrentMeJid;
|
|
38
|
+
private readonly getCurrentMeLid;
|
|
39
|
+
private readonly getCurrentSignedIdentity;
|
|
40
|
+
private readonly retryProcessingByMessageId;
|
|
41
|
+
constructor(options: WaRetryCoordinatorOptions);
|
|
42
|
+
onDecryptFailure(context: WaRetryDecryptFailureContext, error: unknown): Promise<boolean>;
|
|
43
|
+
handleIncomingRetryReceipt(receiptNode: BinaryNode): Promise<void>;
|
|
44
|
+
private isRetryReceiptNode;
|
|
45
|
+
private prepareDecryptFailureRetry;
|
|
46
|
+
private sendDecryptFailureRetryReceipt;
|
|
47
|
+
private handleParsedRetryRequest;
|
|
48
|
+
private processRetryRequest;
|
|
49
|
+
private prepareRetryResend;
|
|
50
|
+
trackOutboundReceipt(receiptNode: BinaryNode): Promise<void>;
|
|
51
|
+
private runRetryTaskSerialized;
|
|
52
|
+
private buildRetryKeysSection;
|
|
53
|
+
private updateLocalSessionFromRetryRequest;
|
|
54
|
+
private markRetryRequesterSenderKeyAsStale;
|
|
55
|
+
private fetchMissingPreKeysSession;
|
|
56
|
+
private authorizeRetryRequest;
|
|
57
|
+
private isRequesterAuthorizedDevice;
|
|
58
|
+
private mapOutboundStateFromReceiptType;
|
|
59
|
+
private sendRetryAckSafe;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { WaStreamControlNodeResult } from '../../transport/stream/parse';
|
|
3
|
+
import type { WaComms } from '../../transport/WaComms';
|
|
4
|
+
interface WaStreamControlCoordinatorOptions {
|
|
5
|
+
readonly logger: Logger;
|
|
6
|
+
readonly getComms: () => WaComms | null;
|
|
7
|
+
readonly clearPendingQueries: (error: Error) => void;
|
|
8
|
+
readonly clearMediaConnCache: () => void;
|
|
9
|
+
readonly disconnect: () => Promise<void>;
|
|
10
|
+
readonly clearStoredCredentials: () => Promise<void>;
|
|
11
|
+
readonly connect: () => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export interface WaStreamControlHandler {
|
|
14
|
+
readonly handleStreamControlResult: (result: WaStreamControlNodeResult) => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare function createStreamControlHandler(options: WaStreamControlCoordinatorOptions): WaStreamControlHandler;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WaAuthCredentials } from '../auth/types';
|
|
2
|
+
import type { Logger } from '../infra/log/types';
|
|
3
|
+
import type { BinaryNode } from '../transport/types';
|
|
4
|
+
export interface WaDirtyBit {
|
|
5
|
+
readonly type: string;
|
|
6
|
+
readonly timestamp: number;
|
|
7
|
+
readonly protocols: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
interface WaDirtySyncRuntime {
|
|
10
|
+
readonly logger: Logger;
|
|
11
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
12
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
13
|
+
readonly syncAppState: () => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare function parseDirtyBits(nodes: readonly BinaryNode[], logger: Logger): readonly WaDirtyBit[];
|
|
16
|
+
export declare function handleDirtyBits(runtime: WaDirtySyncRuntime, dirtyBits: readonly WaDirtyBit[]): Promise<void>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WaGroupEvent, WaIncomingUnhandledStanzaEvent } from '../types';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
export interface WaParseGroupNotificationResult {
|
|
4
|
+
readonly events: readonly WaGroupEvent[];
|
|
5
|
+
readonly unhandled: readonly WaIncomingUnhandledStanzaEvent[];
|
|
6
|
+
}
|
|
7
|
+
export declare function parseGroupNotificationEvents(notificationNode: BinaryNode): WaParseGroupNotificationResult;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WaClientEventMap } from './types';
|
|
2
|
+
import type { Logger } from '../infra/log/types';
|
|
3
|
+
import type { WaMediaTransferClient } from '../media/WaMediaTransferClient';
|
|
4
|
+
import { type Proto } from '..';
|
|
5
|
+
import type { WaContactStore } from '../store/contracts/contact.store';
|
|
6
|
+
import type { WaMessageStore } from '../store/contracts/message.store';
|
|
7
|
+
import type { WaThreadStore } from '../store/contracts/thread.store';
|
|
8
|
+
interface WaHistorySyncDeps {
|
|
9
|
+
readonly logger: Logger;
|
|
10
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
11
|
+
readonly contactStore: WaContactStore;
|
|
12
|
+
readonly messageStore: WaMessageStore;
|
|
13
|
+
readonly threadStore: WaThreadStore;
|
|
14
|
+
readonly emitEvent: <K extends keyof WaClientEventMap>(event: K, ...args: Parameters<WaClientEventMap[K]>) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function processHistorySyncNotification(deps: WaHistorySyncDeps, notification: Proto.Message.IHistorySyncNotification): Promise<void>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { WaIncomingBaseEvent, WaIncomingFailureEvent, WaIncomingNotificationEvent, WaIncomingReceiptEvent, WaIncomingUnhandledStanzaEvent, WaGroupEvent } from './types';
|
|
2
|
+
import type { Logger } from '../infra/log/types';
|
|
3
|
+
import type { BinaryNode } from '../transport/types';
|
|
4
|
+
interface IncomingAckRuntime {
|
|
5
|
+
readonly logger: Logger;
|
|
6
|
+
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
type IncomingReceiptHandlerOptions = IncomingAckRuntime & {
|
|
9
|
+
readonly handleIncomingRetryReceipt?: (node: BinaryNode) => Promise<void>;
|
|
10
|
+
readonly trackOutboundReceipt?: (node: BinaryNode) => Promise<void>;
|
|
11
|
+
readonly emitIncomingReceipt: (event: WaIncomingReceiptEvent) => void;
|
|
12
|
+
};
|
|
13
|
+
type IncomingFailureHandlerOptions = {
|
|
14
|
+
readonly logger: Logger;
|
|
15
|
+
readonly emitIncomingFailure: (event: WaIncomingFailureEvent) => void;
|
|
16
|
+
readonly disconnect: () => Promise<void>;
|
|
17
|
+
readonly clearStoredCredentials: () => Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
type IncomingNotificationHandlerOptions = IncomingAckRuntime & {
|
|
20
|
+
readonly emitIncomingNotification: (event: WaIncomingNotificationEvent) => void;
|
|
21
|
+
readonly emitUnhandledStanza: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
22
|
+
readonly syncAppState?: () => Promise<void>;
|
|
23
|
+
};
|
|
24
|
+
type IncomingGroupNotificationHandlerOptions = IncomingAckRuntime & {
|
|
25
|
+
readonly emitGroupEvent: (event: WaGroupEvent) => void;
|
|
26
|
+
readonly emitUnhandledStanza: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
27
|
+
};
|
|
28
|
+
export declare function createIncomingBaseEvent(node: BinaryNode): WaIncomingBaseEvent;
|
|
29
|
+
export declare function createIncomingReceiptHandler(options: IncomingReceiptHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
30
|
+
export declare function createIncomingFailureHandler(options: IncomingFailureHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
31
|
+
export declare function createIncomingNotificationHandler(options: IncomingNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
32
|
+
export declare function createIncomingGroupNotificationHandler(options: IncomingGroupNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
33
|
+
export declare function createInfoBulletinNotificationEvent(node: BinaryNode, type: string, details?: Readonly<Record<string, unknown>>): WaIncomingNotificationEvent;
|
|
34
|
+
export declare function createUnhandledIncomingNodeEvent(node: BinaryNode, reason?: string): WaIncomingUnhandledStanzaEvent;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WaIncomingMessageEvent } from './types';
|
|
2
|
+
import type { Logger } from '../infra/log/types';
|
|
3
|
+
import type { WaContactStore } from '../store/contracts/contact.store';
|
|
4
|
+
import type { WaMessageStore } from '../store/contracts/message.store';
|
|
5
|
+
interface WaPersistIncomingMailboxOptions {
|
|
6
|
+
readonly logger: Logger;
|
|
7
|
+
readonly contactStore: WaContactStore;
|
|
8
|
+
readonly messageStore: WaMessageStore;
|
|
9
|
+
readonly event: WaIncomingMessageEvent;
|
|
10
|
+
}
|
|
11
|
+
export declare function persistIncomingMailboxEntities(options: WaPersistIncomingMailboxOptions): Promise<void>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Logger } from '../infra/log/types';
|
|
2
|
+
import type { WaMediaConn } from '../media/types';
|
|
3
|
+
import type { WaMediaTransferClient } from '../media/WaMediaTransferClient';
|
|
4
|
+
import type { WaSendMessageContent } from '../message/types';
|
|
5
|
+
import type { Proto } from '..';
|
|
6
|
+
import type { BinaryNode } from '../transport/types';
|
|
7
|
+
interface WaMediaMessageOptions {
|
|
8
|
+
readonly logger: Logger;
|
|
9
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
10
|
+
readonly iqTimeoutMs?: number;
|
|
11
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
12
|
+
readonly getMediaConnCache: () => WaMediaConn | null;
|
|
13
|
+
readonly setMediaConnCache: (mediaConn: WaMediaConn | null) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function buildMediaMessageContent(options: WaMediaMessageOptions, content: WaSendMessageContent): Promise<Proto.IMessage>;
|
|
16
|
+
export declare function getMediaConn(options: WaMediaMessageOptions, forceRefresh?: boolean): Promise<WaMediaConn>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { AppStateCollectionName } from '../appstate/types';
|
|
2
|
+
import type { WaAuthClientOptions, WaAuthCredentials, WaAuthSocketOptions } from '../auth/types';
|
|
3
|
+
import type { WaMessagePublishOptions } from '../message/types';
|
|
4
|
+
import type { Proto } from '..';
|
|
5
|
+
import type { WaStore } from '../store/types';
|
|
6
|
+
import type { BinaryNode } from '../transport/types';
|
|
7
|
+
export interface WaClientOptions extends WaAuthClientOptions, WaAuthSocketOptions {
|
|
8
|
+
readonly store: WaStore;
|
|
9
|
+
readonly sessionId: string;
|
|
10
|
+
readonly chatSocketUrls?: readonly string[];
|
|
11
|
+
readonly iqTimeoutMs?: number;
|
|
12
|
+
readonly nodeQueryTimeoutMs?: number;
|
|
13
|
+
readonly keepAliveIntervalMs?: number;
|
|
14
|
+
readonly deadSocketTimeoutMs?: number;
|
|
15
|
+
readonly mediaTimeoutMs?: number;
|
|
16
|
+
readonly appStateSyncTimeoutMs?: number;
|
|
17
|
+
readonly signalFetchKeyBundlesTimeoutMs?: number;
|
|
18
|
+
readonly messageAckTimeoutMs?: number;
|
|
19
|
+
readonly messageMaxAttempts?: number;
|
|
20
|
+
readonly messageRetryDelayMs?: number;
|
|
21
|
+
readonly history?: WaHistorySyncOptions;
|
|
22
|
+
readonly chatEvents?: {
|
|
23
|
+
readonly emitSnapshotMutations?: boolean;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface WaHistorySyncOptions {
|
|
27
|
+
readonly enabled?: boolean;
|
|
28
|
+
readonly requireFullSync?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface WaSignalMessagePublishInput {
|
|
31
|
+
readonly to: string;
|
|
32
|
+
readonly plaintext: Uint8Array;
|
|
33
|
+
readonly expectedIdentity?: Uint8Array;
|
|
34
|
+
readonly id?: string;
|
|
35
|
+
readonly type?: string;
|
|
36
|
+
readonly category?: string;
|
|
37
|
+
readonly pushPriority?: string;
|
|
38
|
+
readonly participant?: string;
|
|
39
|
+
readonly deviceFanout?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface WaSendMessageOptions extends WaMessagePublishOptions {
|
|
42
|
+
readonly id?: string;
|
|
43
|
+
readonly expectedIdentity?: Uint8Array;
|
|
44
|
+
}
|
|
45
|
+
export type WaIncomingNodeHandler = (node: BinaryNode) => Promise<boolean>;
|
|
46
|
+
export interface WaIncomingNodeHandlerRegistration {
|
|
47
|
+
readonly tag: string;
|
|
48
|
+
readonly subtype?: string;
|
|
49
|
+
readonly handler: WaIncomingNodeHandler;
|
|
50
|
+
readonly prepend?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface WaIncomingBaseEvent {
|
|
53
|
+
readonly rawNode: BinaryNode;
|
|
54
|
+
readonly stanzaId?: string;
|
|
55
|
+
readonly chatJid?: string;
|
|
56
|
+
readonly stanzaType?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface WaIncomingMessageEvent extends WaIncomingBaseEvent {
|
|
59
|
+
readonly timestampSeconds?: number;
|
|
60
|
+
readonly senderJid?: string;
|
|
61
|
+
readonly encryptionType?: string;
|
|
62
|
+
readonly isGroupChat: boolean;
|
|
63
|
+
readonly isBroadcastChat: boolean;
|
|
64
|
+
readonly plaintext?: Uint8Array;
|
|
65
|
+
readonly message?: Proto.IMessage;
|
|
66
|
+
}
|
|
67
|
+
export interface WaIncomingProtocolMessageEvent extends WaIncomingMessageEvent {
|
|
68
|
+
readonly protocolMessage: Proto.Message.IProtocolMessage;
|
|
69
|
+
}
|
|
70
|
+
export interface WaIncomingReceiptEvent extends WaIncomingBaseEvent {
|
|
71
|
+
readonly participantJid?: string;
|
|
72
|
+
readonly recipientJid?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface WaIncomingPresenceEvent extends WaIncomingBaseEvent {
|
|
75
|
+
}
|
|
76
|
+
export interface WaIncomingChatstateEvent extends WaIncomingBaseEvent {
|
|
77
|
+
readonly participantJid?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface WaIncomingCallEvent extends WaIncomingBaseEvent {
|
|
80
|
+
}
|
|
81
|
+
export interface WaIncomingNotificationEvent extends WaIncomingBaseEvent {
|
|
82
|
+
readonly notificationType?: string;
|
|
83
|
+
readonly classification?: 'core' | 'out_of_scope' | 'unknown' | 'info_bulletin';
|
|
84
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
85
|
+
}
|
|
86
|
+
export interface WaIncomingFailureEvent extends WaIncomingBaseEvent {
|
|
87
|
+
readonly failureReason?: number;
|
|
88
|
+
readonly failureCode?: number;
|
|
89
|
+
readonly failureMessage?: string;
|
|
90
|
+
readonly failureUrl?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface WaIncomingUnhandledStanzaEvent extends WaIncomingBaseEvent {
|
|
93
|
+
readonly reason: string;
|
|
94
|
+
}
|
|
95
|
+
export type WaGroupEventAction = 'create' | 'add' | 'delete' | 'remove' | 'promote' | 'demote' | 'linked_group_promote' | 'linked_group_demote' | 'modify' | 'subject' | 'description' | 'restrict' | 'announce' | 'no_frequently_forwarded' | 'invite' | 'ephemeral' | 'revoke_invite' | 'suspend' | 'growth_locked' | 'growth_unlocked' | 'link' | 'unlink' | 'membership_approval_mode' | 'membership_approval_request' | 'created_membership_requests' | 'revoked_membership_requests' | 'allow_non_admin_sub_group_creation' | 'allow_admin_reports' | 'admin_reports' | 'created_sub_group_suggestion' | 'revoked_sub_group_suggestions' | 'change_number' | 'member_add_mode' | 'auto_add_disabled' | 'is_capi_hosted_group' | 'group_safety_check' | 'limit_sharing_enabled' | 'missing_participant_identification';
|
|
96
|
+
export interface WaGroupEventParticipant {
|
|
97
|
+
readonly jid?: string;
|
|
98
|
+
readonly role?: string;
|
|
99
|
+
readonly lidJid?: string;
|
|
100
|
+
readonly phoneJid?: string;
|
|
101
|
+
readonly displayName?: string;
|
|
102
|
+
readonly username?: string;
|
|
103
|
+
readonly expirationSeconds?: number;
|
|
104
|
+
}
|
|
105
|
+
export interface WaGroupEventLinkedGroup {
|
|
106
|
+
readonly jid?: string;
|
|
107
|
+
readonly subject?: string;
|
|
108
|
+
readonly subjectTimestampSeconds?: number;
|
|
109
|
+
readonly hiddenSubgroup?: boolean;
|
|
110
|
+
}
|
|
111
|
+
export interface WaGroupEventMembershipRequest {
|
|
112
|
+
readonly jid?: string;
|
|
113
|
+
readonly username?: string;
|
|
114
|
+
readonly phoneJid?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface WaGroupEventSubgroupSuggestion {
|
|
117
|
+
readonly groupJid?: string;
|
|
118
|
+
readonly ownerJid?: string;
|
|
119
|
+
readonly subject?: string;
|
|
120
|
+
readonly description?: string;
|
|
121
|
+
readonly timestampSeconds?: number;
|
|
122
|
+
readonly isExistingGroup?: boolean;
|
|
123
|
+
readonly participantCount?: number;
|
|
124
|
+
readonly reason?: string;
|
|
125
|
+
}
|
|
126
|
+
export interface WaGroupEvent extends WaIncomingBaseEvent {
|
|
127
|
+
readonly rawActionNode: BinaryNode;
|
|
128
|
+
readonly groupJid?: string;
|
|
129
|
+
readonly authorJid?: string;
|
|
130
|
+
readonly timestampSeconds?: number;
|
|
131
|
+
readonly action: WaGroupEventAction;
|
|
132
|
+
readonly participants?: readonly WaGroupEventParticipant[];
|
|
133
|
+
readonly linkedGroups?: readonly WaGroupEventLinkedGroup[];
|
|
134
|
+
readonly membershipRequests?: readonly WaGroupEventMembershipRequest[];
|
|
135
|
+
readonly subgroupSuggestions?: readonly WaGroupEventSubgroupSuggestion[];
|
|
136
|
+
readonly contextGroupJid?: string;
|
|
137
|
+
readonly requestMethod?: string;
|
|
138
|
+
readonly subject?: string;
|
|
139
|
+
readonly subjectOwnerJid?: string;
|
|
140
|
+
readonly description?: string;
|
|
141
|
+
readonly descriptionId?: string;
|
|
142
|
+
readonly code?: string;
|
|
143
|
+
readonly expirationSeconds?: number;
|
|
144
|
+
readonly mode?: string;
|
|
145
|
+
readonly enabled?: boolean;
|
|
146
|
+
readonly reason?: string;
|
|
147
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
148
|
+
}
|
|
149
|
+
export interface WaHistorySyncChunkEvent {
|
|
150
|
+
readonly syncType: number;
|
|
151
|
+
readonly messagesCount: number;
|
|
152
|
+
readonly conversationsCount: number;
|
|
153
|
+
readonly pushnamesCount: number;
|
|
154
|
+
readonly chunkOrder?: number;
|
|
155
|
+
readonly progress?: number;
|
|
156
|
+
}
|
|
157
|
+
export type WaChatEventAction = 'archive' | 'mute' | 'pin' | 'mark_read' | 'clear' | 'delete' | 'lock' | 'chat_assignment' | (string & {});
|
|
158
|
+
export type WaChatEventSource = 'snapshot' | 'patch';
|
|
159
|
+
export interface WaChatEvent {
|
|
160
|
+
readonly action: WaChatEventAction;
|
|
161
|
+
readonly source: WaChatEventSource;
|
|
162
|
+
readonly collection: AppStateCollectionName;
|
|
163
|
+
readonly operation: 'set' | 'remove';
|
|
164
|
+
readonly mutationIndex: string;
|
|
165
|
+
readonly indexAction?: string;
|
|
166
|
+
readonly indexParts?: readonly string[];
|
|
167
|
+
readonly syncActionValueKey?: string;
|
|
168
|
+
readonly chatJid?: string;
|
|
169
|
+
readonly timestamp: number;
|
|
170
|
+
readonly version: number;
|
|
171
|
+
readonly archived?: boolean;
|
|
172
|
+
readonly muted?: boolean;
|
|
173
|
+
readonly muteEndTimestampMs?: number;
|
|
174
|
+
readonly pinned?: boolean;
|
|
175
|
+
readonly read?: boolean;
|
|
176
|
+
readonly deleteStarred?: boolean;
|
|
177
|
+
readonly deleteMedia?: boolean;
|
|
178
|
+
readonly locked?: boolean;
|
|
179
|
+
readonly deviceAgentId?: string;
|
|
180
|
+
}
|
|
181
|
+
export type WaEmptyEvent = Readonly<Record<string, never>>;
|
|
182
|
+
export interface WaClientEventMap {
|
|
183
|
+
readonly auth_qr: (event: {
|
|
184
|
+
readonly qr: string;
|
|
185
|
+
readonly ttlMs: number;
|
|
186
|
+
}) => void;
|
|
187
|
+
readonly auth_pairing_code: (event: {
|
|
188
|
+
readonly code: string;
|
|
189
|
+
}) => void;
|
|
190
|
+
readonly auth_pairing_refresh: (event: {
|
|
191
|
+
readonly forceManual: boolean;
|
|
192
|
+
}) => void;
|
|
193
|
+
readonly auth_paired: (event: {
|
|
194
|
+
readonly credentials: WaAuthCredentials;
|
|
195
|
+
}) => void;
|
|
196
|
+
readonly connection_success: (event: {
|
|
197
|
+
readonly node: BinaryNode;
|
|
198
|
+
}) => void;
|
|
199
|
+
readonly client_error: (event: {
|
|
200
|
+
readonly error: Error;
|
|
201
|
+
}) => void;
|
|
202
|
+
readonly connection_open: (event: WaEmptyEvent) => void;
|
|
203
|
+
readonly connection_close: (event: WaEmptyEvent) => void;
|
|
204
|
+
readonly transport_frame_in: (event: {
|
|
205
|
+
readonly frame: Uint8Array;
|
|
206
|
+
}) => void;
|
|
207
|
+
readonly transport_frame_out: (event: {
|
|
208
|
+
readonly frame: Uint8Array;
|
|
209
|
+
}) => void;
|
|
210
|
+
readonly transport_node_in: (event: {
|
|
211
|
+
readonly node: BinaryNode;
|
|
212
|
+
readonly frame: Uint8Array;
|
|
213
|
+
}) => void;
|
|
214
|
+
readonly transport_node_out: (event: {
|
|
215
|
+
readonly node: BinaryNode;
|
|
216
|
+
readonly frame: Uint8Array;
|
|
217
|
+
}) => void;
|
|
218
|
+
readonly transport_decode_error: (event: {
|
|
219
|
+
readonly error: Error;
|
|
220
|
+
readonly frame: Uint8Array;
|
|
221
|
+
}) => void;
|
|
222
|
+
readonly message: (event: WaIncomingMessageEvent) => void;
|
|
223
|
+
readonly message_protocol: (event: WaIncomingProtocolMessageEvent) => void;
|
|
224
|
+
readonly message_receipt: (event: WaIncomingReceiptEvent) => void;
|
|
225
|
+
readonly presence: (event: WaIncomingPresenceEvent) => void;
|
|
226
|
+
readonly chatstate: (event: WaIncomingChatstateEvent) => void;
|
|
227
|
+
readonly call: (event: WaIncomingCallEvent) => void;
|
|
228
|
+
readonly notification: (event: WaIncomingNotificationEvent) => void;
|
|
229
|
+
readonly failure: (event: WaIncomingFailureEvent) => void;
|
|
230
|
+
readonly stanza_error: (event: WaIncomingBaseEvent) => void;
|
|
231
|
+
readonly stanza_unhandled: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
232
|
+
readonly group_event: (event: WaGroupEvent) => void;
|
|
233
|
+
readonly chat_event: (event: WaChatEvent) => void;
|
|
234
|
+
readonly history_sync_chunk: (event: WaHistorySyncChunkEvent) => void;
|
|
235
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SERIALIZED_PUB_KEY_PREFIX = 5;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base64 URL encoding utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Decodes a base64url encoded string to Uint8Array
|
|
6
|
+
*/
|
|
7
|
+
export declare function decodeBase64Url(value: string | undefined, field: string): Uint8Array;
|
|
8
|
+
/**
|
|
9
|
+
* Asserts that a Uint8Array is exactly 32 bytes
|
|
10
|
+
*/
|
|
11
|
+
export declare function assert32(value: Uint8Array, name: string): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HKDF key derivation using SHA-256
|
|
3
|
+
*/
|
|
4
|
+
export declare function hkdf(ikm: Uint8Array, salt: Uint8Array | null, info: Uint8Array | string, outLength: number): Promise<Uint8Array>;
|
|
5
|
+
/**
|
|
6
|
+
* HKDF key derivation that outputs two 32-byte keys
|
|
7
|
+
*/
|
|
8
|
+
export declare function hkdfSplit(ikm: Uint8Array, salt: Uint8Array | null, info: string): Promise<readonly [Uint8Array, Uint8Array]>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cryptographic utilities
|
|
3
|
+
*/
|
|
4
|
+
export { Ed25519 } from '../curves/Ed25519';
|
|
5
|
+
export { X25519 } from '../curves/X25519';
|
|
6
|
+
export { decodeBase64Url, assert32 } from '../core/encoding';
|
|
7
|
+
export { hkdf, hkdfSplit } from '../core/hkdf';
|
|
8
|
+
export { toSerializedPubKey, toRawPubKey, prependVersion, readVersionedContent } from '../core/keys';
|
|
9
|
+
export { buildNonce } from '../core/nonce';
|
|
10
|
+
export { randomBytesAsync, randomIntAsync } from '../core/random';
|
|
11
|
+
export { type CryptoKey, sha1, sha256, sha512, importAesGcmKey, aesGcmEncrypt, aesGcmDecrypt, importAesCbcKey, aesCbcEncrypt, aesCbcDecrypt, importHmacKey, importHmacSha512Key, hmacSign, pbkdf2DeriveAesCtrKey, aesCtrEncrypt, aesCtrDecrypt, ed25519VerifyRaw } from '../core/primitives';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a 32-byte raw public key to 33-byte serialized format (with 0x05 prefix)
|
|
3
|
+
*/
|
|
4
|
+
export declare function toSerializedPubKey(key: Uint8Array): Uint8Array;
|
|
5
|
+
/**
|
|
6
|
+
* Converts a 33-byte serialized public key to 32-byte raw format
|
|
7
|
+
*/
|
|
8
|
+
export declare function toRawPubKey(key: Uint8Array): Uint8Array;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a version byte from high and low nibbles
|
|
11
|
+
*/
|
|
12
|
+
export declare function versionByte(high: number, low: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Prepends a version byte to content
|
|
15
|
+
*/
|
|
16
|
+
export declare function prependVersion(content: Uint8Array, version: number): Uint8Array;
|
|
17
|
+
/**
|
|
18
|
+
* Reads versioned content, validating the version and extracting the body
|
|
19
|
+
*/
|
|
20
|
+
export declare function readVersionedContent(versionContent: Uint8Array, expectedVersion: number, suffixLength: number): Uint8Array;
|