zapo-js 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -4
- package/dist/appstate/WaAppStateCrypto.js +19 -26
- package/dist/appstate/WaAppStateSyncClient.js +293 -181
- package/dist/appstate/WaAppStateSyncResponseParser.js +16 -5
- package/dist/appstate/constants.js +4 -3
- package/dist/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/appstate/index.js +8 -6
- package/dist/appstate/utils.js +9 -34
- package/dist/auth/WaAuthClient.js +43 -61
- package/dist/auth/flow/WaAuthCredentialsFlow.js +22 -15
- package/dist/auth/index.js +1 -8
- package/dist/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/auth/pairing/WaPairingFlow.js +34 -26
- package/dist/auth/pairing/WaQrFlow.js +37 -24
- package/dist/client/WaClient.js +275 -324
- package/dist/client/WaClientFactory.js +500 -133
- package/dist/client/connection/WaConnectionManager.js +301 -0
- package/dist/client/connection/WaKeyShareCoordinator.js +63 -0
- package/dist/client/connection/WaReceiptQueue.js +51 -0
- package/dist/client/coordinators/WaAppStateMutationCoordinator.js +471 -0
- package/dist/client/coordinators/WaBusinessCoordinator.js +241 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +30 -16
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +21 -27
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +439 -701
- package/dist/client/coordinators/WaPassiveTasksCoordinator.js +74 -31
- package/dist/client/coordinators/WaPrivacyCoordinator.js +134 -0
- package/dist/client/coordinators/WaProfileCoordinator.js +212 -0
- package/dist/client/coordinators/WaRetryCoordinator.js +242 -57
- package/dist/client/coordinators/WaStreamControlCoordinator.js +18 -11
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +166 -0
- package/dist/client/dirty.js +74 -48
- package/dist/client/events/chat.js +4 -3
- package/dist/client/events/devices.js +72 -0
- package/dist/client/events/group.js +62 -47
- package/dist/client/events/identity.js +22 -0
- package/dist/client/events/privacy-token.js +39 -0
- package/dist/client/history-sync.js +94 -63
- package/dist/client/incoming.js +60 -27
- package/dist/client/mailbox.js +24 -23
- package/dist/client/messages.js +107 -31
- package/dist/client/messaging/fanout.js +199 -0
- package/dist/client/messaging/key-protocol.js +130 -0
- package/dist/client/messaging/participants.js +193 -0
- package/dist/client/persistence/WriteBehindPersistence.js +129 -0
- package/dist/client/tokens/cs-token.js +50 -0
- package/dist/client/tokens/tc-token.js +25 -0
- package/dist/crypto/core/hkdf.js +3 -8
- package/dist/crypto/core/index.js +2 -5
- package/dist/crypto/core/keys.js +6 -7
- package/dist/crypto/core/nonce.js +2 -0
- package/dist/crypto/core/primitives.js +12 -23
- package/dist/crypto/core/random.js +26 -23
- package/dist/crypto/curves/Ed25519.js +7 -8
- package/dist/crypto/curves/X25519.js +38 -22
- package/dist/crypto/index.js +1 -3
- package/dist/crypto/math/constants.js +13 -36
- package/dist/crypto/math/edwards.js +171 -44
- package/dist/crypto/math/fe.js +706 -0
- package/dist/crypto/math/mod.js +10 -3
- package/dist/esm/appstate/WaAppStateCrypto.js +7 -14
- package/dist/esm/appstate/WaAppStateSyncClient.js +284 -172
- package/dist/esm/appstate/WaAppStateSyncResponseParser.js +17 -6
- package/dist/esm/appstate/constants.js +3 -2
- package/dist/esm/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/esm/appstate/index.js +2 -2
- package/dist/esm/appstate/utils.js +8 -30
- package/dist/esm/auth/WaAuthClient.js +43 -61
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +22 -15
- package/dist/esm/auth/index.js +0 -3
- package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/esm/auth/pairing/WaPairingFlow.js +28 -20
- package/dist/esm/auth/pairing/WaQrFlow.js +37 -24
- package/dist/esm/client/WaClient.js +275 -324
- package/dist/esm/client/WaClientFactory.js +501 -134
- package/dist/esm/client/connection/WaConnectionManager.js +297 -0
- package/dist/esm/client/connection/WaKeyShareCoordinator.js +59 -0
- package/dist/esm/client/connection/WaReceiptQueue.js +47 -0
- package/dist/esm/client/coordinators/WaAppStateMutationCoordinator.js +467 -0
- package/dist/esm/client/coordinators/WaBusinessCoordinator.js +238 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +23 -9
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +21 -27
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +443 -705
- package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +74 -31
- package/dist/esm/client/coordinators/WaPrivacyCoordinator.js +131 -0
- package/dist/esm/client/coordinators/WaProfileCoordinator.js +209 -0
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +244 -59
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +19 -12
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +162 -0
- package/dist/esm/client/dirty.js +69 -43
- package/dist/esm/client/events/chat.js +4 -3
- package/dist/esm/client/events/devices.js +68 -0
- package/dist/esm/client/events/group.js +53 -39
- package/dist/esm/client/events/identity.js +19 -0
- package/dist/esm/client/events/privacy-token.js +36 -0
- package/dist/esm/client/history-sync.js +91 -60
- package/dist/esm/client/incoming.js +61 -28
- package/dist/esm/client/mailbox.js +24 -23
- package/dist/esm/client/messages.js +108 -32
- package/dist/esm/client/messaging/fanout.js +196 -0
- package/dist/esm/client/messaging/key-protocol.js +127 -0
- package/dist/esm/client/messaging/participants.js +190 -0
- package/dist/esm/client/persistence/WriteBehindPersistence.js +125 -0
- package/dist/esm/client/tokens/cs-token.js +46 -0
- package/dist/esm/client/tokens/tc-token.js +18 -0
- package/dist/esm/crypto/core/hkdf.js +3 -8
- package/dist/esm/crypto/core/index.js +2 -3
- package/dist/esm/crypto/core/keys.js +3 -4
- package/dist/esm/crypto/core/nonce.js +2 -0
- package/dist/esm/crypto/core/primitives.js +12 -22
- package/dist/esm/crypto/core/random.js +25 -23
- package/dist/esm/crypto/curves/Ed25519.js +4 -5
- package/dist/esm/crypto/curves/X25519.js +35 -19
- package/dist/esm/crypto/index.js +0 -1
- package/dist/esm/crypto/math/constants.js +12 -35
- package/dist/esm/crypto/math/edwards.js +174 -47
- package/dist/esm/crypto/math/fe.js +691 -0
- package/dist/esm/crypto/math/mod.js +10 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/infra/log/ConsoleLogger.js +18 -17
- package/dist/esm/infra/log/PinoLogger.js +15 -9
- package/dist/esm/infra/log/types.js +11 -1
- package/dist/esm/infra/perf/BackgroundQueue.js +478 -0
- package/dist/esm/infra/perf/BoundedTaskQueue.js +16 -18
- package/dist/esm/infra/perf/PromiseDedup.js +20 -0
- package/dist/esm/infra/perf/SharedExclusiveGate.js +109 -0
- package/dist/esm/infra/perf/StoreLock.js +77 -0
- package/dist/esm/media/WaMediaCrypto.js +96 -16
- package/dist/esm/media/WaMediaTransferClient.js +251 -91
- package/dist/esm/media/conn.js +10 -6
- package/dist/esm/media/constants.js +6 -2
- package/dist/esm/message/WaMessageClient.js +30 -32
- package/dist/esm/message/ack.js +6 -6
- package/dist/esm/message/addon-crypto.js +59 -0
- package/dist/esm/message/content.js +195 -9
- package/dist/esm/message/icdc.js +76 -0
- package/dist/esm/message/incoming.js +129 -122
- package/dist/esm/message/index.js +2 -0
- package/dist/esm/message/phash.js +3 -1
- package/dist/esm/message/reporting-token.js +425 -0
- package/dist/esm/message/use-case-secret.js +49 -0
- package/dist/esm/protocol/appstate.js +27 -0
- package/dist/esm/protocol/browser.js +10 -18
- package/dist/esm/protocol/constants.js +6 -3
- package/dist/esm/protocol/defaults.js +6 -0
- package/dist/esm/protocol/index.js +2 -11
- package/dist/esm/protocol/jid.js +133 -52
- package/dist/esm/protocol/media.js +3 -3
- package/dist/esm/protocol/message.js +61 -1
- package/dist/esm/protocol/nodes.js +4 -0
- package/dist/esm/protocol/notification.js +3 -1
- package/dist/esm/protocol/privacy-token.js +17 -0
- package/dist/esm/protocol/privacy.js +55 -0
- package/dist/esm/protocol/stream.js +26 -1
- package/dist/esm/protocol/usync.js +11 -0
- package/dist/esm/retry/codec.js +216 -0
- package/dist/esm/retry/constants.js +1 -1
- package/dist/esm/retry/index.js +3 -2
- package/dist/esm/retry/parse.js +88 -86
- package/dist/esm/retry/replay.js +54 -51
- package/dist/esm/retry/tracker.js +94 -0
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +276 -92
- package/dist/esm/signal/api/SignalDigestSyncApi.js +17 -8
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +67 -37
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +86 -67
- package/dist/esm/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/esm/signal/api/SignalSessionSyncApi.js +36 -34
- package/dist/esm/signal/api/result-map.js +10 -0
- package/dist/esm/signal/constants.js +0 -4
- package/dist/esm/signal/crypto/WaAdvSignature.js +13 -9
- package/dist/esm/signal/{store/sqlite.js → encoding.js} +93 -60
- package/dist/esm/signal/group/SenderKeyChain.js +28 -23
- package/dist/esm/signal/group/SenderKeyCodec.js +5 -6
- package/dist/esm/signal/group/SenderKeyManager.js +144 -115
- package/dist/esm/signal/index.js +2 -0
- package/dist/esm/signal/registration/keygen.js +6 -2
- package/dist/esm/signal/registration/utils.js +1 -0
- package/dist/esm/signal/session/SignalProtocol.js +164 -53
- package/dist/esm/signal/session/SignalRatchet.js +24 -15
- package/dist/esm/signal/session/SignalSession.js +14 -9
- package/dist/esm/signal/session/resolver.js +221 -0
- package/dist/esm/store/contracts/privacy-token.store.js +1 -0
- package/dist/esm/store/createStore.js +100 -188
- package/dist/esm/store/index.js +1 -10
- package/dist/esm/store/locks/appstate.lock.js +26 -0
- package/dist/esm/store/locks/auth.lock.js +15 -0
- package/dist/esm/store/locks/contact.lock.js +20 -0
- package/dist/esm/store/locks/device-list.lock.js +20 -0
- package/dist/esm/store/locks/message.lock.js +21 -0
- package/dist/esm/store/locks/participants.lock.js +20 -0
- package/dist/esm/store/locks/privacy-token.lock.js +18 -0
- package/dist/esm/store/locks/retry.lock.js +29 -0
- package/dist/esm/store/locks/sender-key.lock.js +52 -0
- package/dist/esm/store/locks/signal.lock.js +63 -0
- package/dist/esm/store/locks/thread.lock.js +21 -0
- package/dist/esm/store/noop.store.js +4 -7
- package/dist/esm/store/providers/memory/appstate.store.js +38 -16
- package/dist/esm/store/providers/memory/contact.store.js +5 -0
- package/dist/esm/store/providers/memory/device-list.store.js +12 -34
- package/dist/esm/store/providers/memory/message.store.js +11 -5
- package/dist/esm/store/providers/memory/participants.store.js +1 -8
- package/dist/esm/store/providers/memory/privacy-token.store.js +43 -0
- package/dist/esm/store/providers/memory/retry.store.js +77 -2
- package/dist/esm/store/providers/memory/sender-key.store.js +11 -8
- package/dist/esm/store/providers/memory/signal.store.js +47 -18
- package/dist/esm/store/providers/memory/thread.store.js +5 -0
- package/dist/esm/transport/WaComms.js +28 -24
- package/dist/esm/transport/WaWebSocket.js +115 -18
- package/dist/esm/transport/binary/constants.js +0 -30
- package/dist/esm/transport/binary/decoder.js +8 -8
- package/dist/esm/transport/binary/encoder.js +10 -9
- package/dist/esm/transport/binary/index.js +0 -1
- package/dist/esm/transport/index.js +1 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +2 -8
- package/dist/esm/transport/node/WaNodeOrchestrator.js +25 -21
- package/dist/esm/transport/node/WaNodeTransport.js +0 -3
- package/dist/esm/transport/node/builders/{accountSync.js → account-sync.js} +16 -36
- package/dist/esm/transport/node/builders/business.js +129 -0
- package/dist/esm/transport/node/builders/global.js +370 -0
- package/dist/esm/transport/node/builders/index.js +7 -3
- package/dist/esm/transport/node/builders/message.js +63 -230
- package/dist/esm/transport/node/builders/pairing.js +2 -27
- package/dist/esm/transport/node/builders/privacy-token.js +41 -0
- package/dist/esm/transport/node/builders/privacy.js +48 -0
- package/dist/esm/transport/node/builders/profile.js +70 -0
- package/dist/esm/transport/node/builders/retry.js +10 -22
- package/dist/esm/transport/node/builders/usync.js +45 -0
- package/dist/esm/transport/node/helpers.js +125 -5
- package/dist/esm/transport/node/usync.js +5 -0
- package/dist/esm/transport/node/xml.js +35 -14
- package/dist/esm/transport/noise/WaClientPayload.js +10 -10
- package/dist/esm/transport/noise/WaFrameCodec.js +48 -33
- package/dist/esm/transport/noise/WaNoiseCert.js +4 -7
- package/dist/esm/transport/noise/WaNoiseSession.js +77 -29
- package/dist/esm/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/esm/transport/proxy.js +27 -0
- package/dist/esm/transport/stream/parse.js +17 -48
- package/dist/esm/util/bytes.js +67 -45
- package/dist/esm/util/coercion.js +6 -14
- package/dist/esm/util/index.js +5 -0
- package/dist/esm/util/primitives.js +40 -14
- package/dist/index.js +7 -1
- package/dist/infra/log/ConsoleLogger.js +18 -17
- package/dist/infra/log/PinoLogger.js +15 -9
- package/dist/infra/log/types.js +12 -0
- package/dist/infra/perf/BackgroundQueue.js +482 -0
- package/dist/infra/perf/BoundedTaskQueue.js +16 -18
- package/dist/infra/perf/PromiseDedup.js +24 -0
- package/dist/infra/perf/SharedExclusiveGate.js +113 -0
- package/dist/infra/perf/StoreLock.js +81 -0
- package/dist/media/WaMediaCrypto.js +95 -15
- package/dist/media/WaMediaTransferClient.js +284 -91
- package/dist/media/conn.js +10 -6
- package/dist/media/constants.js +6 -2
- package/dist/message/WaMessageClient.js +31 -33
- package/dist/message/ack.js +6 -6
- package/dist/message/addon-crypto.js +65 -0
- package/dist/message/content.js +198 -9
- package/dist/message/icdc.js +81 -0
- package/dist/message/incoming.js +127 -120
- package/dist/message/index.js +2 -0
- package/dist/message/phash.js +3 -1
- package/dist/message/reporting-token.js +429 -0
- package/dist/message/use-case-secret.js +55 -0
- package/dist/protocol/appstate.js +28 -1
- package/dist/protocol/browser.js +10 -18
- package/dist/protocol/constants.js +26 -1
- package/dist/protocol/defaults.js +6 -0
- package/dist/protocol/index.js +23 -42
- package/dist/protocol/jid.js +140 -52
- package/dist/protocol/media.js +3 -3
- package/dist/protocol/message.js +62 -2
- package/dist/protocol/nodes.js +4 -0
- package/dist/protocol/notification.js +3 -1
- package/dist/protocol/privacy-token.js +20 -0
- package/dist/protocol/privacy.js +58 -0
- package/dist/protocol/stream.js +27 -2
- package/dist/protocol/usync.js +14 -0
- package/dist/retry/codec.js +220 -0
- package/dist/retry/constants.js +1 -1
- package/dist/retry/index.js +7 -5
- package/dist/retry/parse.js +88 -85
- package/dist/retry/replay.js +52 -49
- package/dist/retry/tracker.js +97 -0
- package/dist/signal/api/SignalDeviceSyncApi.js +273 -89
- package/dist/signal/api/SignalDigestSyncApi.js +17 -8
- package/dist/signal/api/SignalIdentitySyncApi.js +66 -36
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +82 -63
- package/dist/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/signal/api/SignalSessionSyncApi.js +36 -34
- package/dist/signal/api/result-map.js +13 -0
- package/dist/signal/constants.js +1 -5
- package/dist/signal/crypto/WaAdvSignature.js +11 -7
- package/dist/signal/{store/sqlite.js → encoding.js} +94 -61
- package/dist/signal/group/SenderKeyChain.js +27 -22
- package/dist/signal/group/SenderKeyCodec.js +5 -6
- package/dist/signal/group/SenderKeyManager.js +144 -115
- package/dist/signal/index.js +15 -1
- package/dist/signal/registration/keygen.js +6 -2
- package/dist/signal/registration/utils.js +1 -0
- package/dist/signal/session/SignalProtocol.js +164 -53
- package/dist/signal/session/SignalRatchet.js +24 -15
- package/dist/signal/session/SignalSession.js +14 -9
- package/dist/signal/session/resolver.js +224 -0
- package/dist/store/contracts/privacy-token.store.js +2 -0
- package/dist/store/createStore.js +100 -188
- package/dist/store/index.js +15 -33
- package/dist/store/locks/appstate.lock.js +29 -0
- package/dist/store/locks/auth.lock.js +18 -0
- package/dist/store/locks/contact.lock.js +23 -0
- package/dist/store/locks/device-list.lock.js +23 -0
- package/dist/store/locks/message.lock.js +24 -0
- package/dist/store/locks/participants.lock.js +23 -0
- package/dist/store/locks/privacy-token.lock.js +21 -0
- package/dist/store/locks/retry.lock.js +32 -0
- package/dist/store/locks/sender-key.lock.js +55 -0
- package/dist/store/locks/signal.lock.js +66 -0
- package/dist/store/locks/thread.lock.js +24 -0
- package/dist/store/noop.store.js +4 -7
- package/dist/store/providers/memory/appstate.store.js +36 -14
- package/dist/store/providers/memory/contact.store.js +5 -0
- package/dist/store/providers/memory/device-list.store.js +12 -34
- package/dist/store/providers/memory/message.store.js +11 -5
- package/dist/store/providers/memory/participants.store.js +1 -8
- package/dist/store/providers/memory/privacy-token.store.js +47 -0
- package/dist/store/providers/memory/retry.store.js +77 -2
- package/dist/store/providers/memory/sender-key.store.js +14 -11
- package/dist/store/providers/memory/signal.store.js +54 -25
- package/dist/store/providers/memory/thread.store.js +5 -0
- package/dist/transport/WaComms.js +30 -26
- package/dist/transport/WaWebSocket.js +148 -18
- package/dist/transport/binary/constants.js +1 -31
- package/dist/transport/binary/decoder.js +8 -8
- package/dist/transport/binary/encoder.js +10 -9
- package/dist/transport/binary/index.js +0 -4
- package/dist/transport/index.js +7 -1
- package/dist/transport/keepalive/WaKeepAlive.js +1 -7
- package/dist/transport/node/WaNodeOrchestrator.js +25 -21
- package/dist/transport/node/WaNodeTransport.js +0 -3
- package/dist/transport/node/builders/{accountSync.js → account-sync.js} +15 -35
- package/dist/transport/node/builders/business.js +137 -0
- package/dist/transport/node/builders/global.js +375 -0
- package/dist/transport/node/builders/index.js +29 -17
- package/dist/transport/node/builders/message.js +64 -236
- package/dist/transport/node/builders/pairing.js +2 -29
- package/dist/transport/node/builders/privacy-token.js +46 -0
- package/dist/transport/node/builders/privacy.js +55 -0
- package/dist/transport/node/builders/profile.js +78 -0
- package/dist/transport/node/builders/retry.js +9 -21
- package/dist/transport/node/builders/usync.js +49 -0
- package/dist/transport/node/helpers.js +131 -4
- package/dist/transport/node/usync.js +8 -0
- package/dist/transport/node/xml.js +35 -14
- package/dist/transport/noise/WaClientPayload.js +13 -13
- package/dist/transport/noise/WaFrameCodec.js +47 -32
- package/dist/transport/noise/WaNoiseCert.js +5 -8
- package/dist/transport/noise/WaNoiseSession.js +77 -29
- package/dist/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/transport/proxy.js +34 -0
- package/dist/transport/stream/parse.js +20 -52
- package/dist/types/appstate/WaAppStateCrypto.d.ts +0 -1
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +5 -2
- package/dist/types/appstate/constants.d.ts +1 -0
- package/dist/types/appstate/encoding.d.ts +7 -0
- package/dist/types/appstate/index.d.ts +3 -3
- package/dist/types/appstate/utils.d.ts +0 -3
- package/dist/types/auth/WaAuthClient.d.ts +10 -12
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +1 -1
- package/dist/types/auth/index.d.ts +0 -4
- package/dist/types/auth/pairing/WaQrFlow.d.ts +1 -1
- package/dist/types/auth/types.d.ts +7 -9
- package/dist/types/client/WaClient.d.ts +42 -25
- package/dist/types/client/WaClientFactory.d.ts +33 -26
- package/dist/types/client/connection/WaConnectionManager.d.ts +66 -0
- package/dist/types/client/connection/WaKeyShareCoordinator.d.ts +14 -0
- package/dist/types/client/connection/WaReceiptQueue.d.ts +13 -0
- package/dist/types/client/coordinators/WaAppStateMutationCoordinator.d.ts +46 -0
- package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +57 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +3 -2
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +29 -38
- package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +4 -0
- package/dist/types/client/coordinators/WaPrivacyCoordinator.d.ts +26 -0
- package/dist/types/client/coordinators/WaProfileCoordinator.d.ts +36 -0
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +8 -0
- package/dist/types/client/coordinators/WaStreamControlCoordinator.d.ts +3 -2
- package/dist/types/client/coordinators/WaTrustedContactTokenCoordinator.d.ts +45 -0
- package/dist/types/client/dirty.d.ts +1 -0
- package/dist/types/client/events/devices.d.ts +20 -0
- package/dist/types/client/events/group.d.ts +2 -1
- package/dist/types/client/events/identity.d.ts +9 -0
- package/dist/types/client/events/privacy-token.d.ts +7 -0
- package/dist/types/client/history-sync.d.ts +9 -6
- package/dist/types/client/incoming.d.ts +3 -1
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/mailbox.d.ts +3 -5
- package/dist/types/client/messages.d.ts +1 -2
- package/dist/types/client/messaging/fanout.d.ts +14 -0
- package/dist/types/client/messaging/key-protocol.d.ts +18 -0
- package/dist/types/client/messaging/participants.d.ts +13 -0
- package/dist/types/client/persistence/WriteBehindPersistence.d.ts +34 -0
- package/dist/types/client/tokens/cs-token.d.ts +10 -0
- package/dist/types/client/tokens/tc-token.d.ts +5 -0
- package/dist/types/client/types.d.ts +75 -4
- package/dist/types/crypto/core/hkdf.d.ts +0 -6
- package/dist/types/crypto/core/index.d.ts +2 -3
- package/dist/types/crypto/core/nonce.d.ts +2 -0
- package/dist/types/crypto/core/primitives.d.ts +0 -1
- package/dist/types/crypto/core/random.d.ts +2 -7
- package/dist/types/crypto/index.d.ts +0 -1
- package/dist/types/crypto/math/constants.d.ts +4 -2
- package/dist/types/crypto/math/fe.d.ts +30 -0
- package/dist/types/crypto/math/mod.d.ts +0 -2
- package/dist/types/crypto/math/types.d.ts +11 -4
- package/dist/types/index.d.ts +5 -3
- package/dist/types/infra/log/ConsoleLogger.d.ts +2 -1
- package/dist/types/infra/log/PinoLogger.d.ts +1 -1
- package/dist/types/infra/log/types.d.ts +1 -0
- package/dist/types/infra/perf/BackgroundQueue.d.ts +58 -0
- package/dist/types/infra/perf/BoundedTaskQueue.d.ts +1 -1
- package/dist/types/infra/perf/PromiseDedup.d.ts +4 -0
- package/dist/types/infra/perf/SharedExclusiveGate.d.ts +17 -0
- package/dist/types/infra/perf/StoreLock.d.ts +10 -0
- package/dist/types/media/WaMediaCrypto.d.ts +3 -2
- package/dist/types/media/WaMediaTransferClient.d.ts +16 -15
- package/dist/types/media/constants.d.ts +1 -1
- package/dist/types/media/index.d.ts +1 -1
- package/dist/types/media/types.d.ts +15 -2
- package/dist/types/message/addon-crypto.d.ts +25 -0
- package/dist/types/message/content.d.ts +8 -0
- package/dist/types/message/icdc.d.ts +13 -0
- package/dist/types/message/index.d.ts +2 -0
- package/dist/types/message/reporting-token.d.ts +18 -0
- package/dist/types/message/types.d.ts +45 -6
- package/dist/types/message/use-case-secret.d.ts +20 -0
- package/dist/types/protocol/appstate.d.ts +47 -0
- package/dist/types/protocol/constants.d.ts +8 -3
- package/dist/types/protocol/defaults.d.ts +6 -0
- package/dist/types/protocol/index.d.ts +2 -11
- package/dist/types/protocol/jid.d.ts +22 -5
- package/dist/types/protocol/message.d.ts +60 -0
- package/dist/types/protocol/nodes.d.ts +4 -0
- package/dist/types/protocol/notification.d.ts +2 -0
- package/dist/types/protocol/privacy-token.d.ts +17 -0
- package/dist/types/protocol/privacy.d.ts +75 -0
- package/dist/types/protocol/stream.d.ts +30 -0
- package/dist/types/protocol/usync.d.ts +11 -0
- package/dist/types/retry/codec.d.ts +3 -0
- package/dist/types/retry/index.d.ts +4 -3
- package/dist/types/retry/parse.d.ts +5 -2
- package/dist/types/retry/replay.d.ts +0 -4
- package/dist/types/retry/tracker.d.ts +20 -0
- package/dist/types/retry/types.d.ts +10 -4
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +15 -2
- package/dist/types/signal/api/SignalDigestSyncApi.d.ts +6 -0
- package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +2 -0
- package/dist/types/signal/api/SignalRotateKeyApi.d.ts +4 -5
- package/dist/types/signal/api/SignalSessionSyncApi.d.ts +8 -6
- package/dist/types/signal/api/result-map.d.ts +1 -0
- package/dist/types/signal/constants.d.ts +0 -3
- package/dist/types/signal/{store/sqlite.d.ts → encoding.d.ts} +3 -3
- package/dist/types/signal/group/SenderKeyCodec.d.ts +4 -6
- package/dist/types/signal/group/SenderKeyManager.d.ts +10 -5
- package/dist/types/signal/index.d.ts +3 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +19 -4
- package/dist/types/signal/session/resolver.d.ts +22 -0
- package/dist/types/store/contracts/appstate.store.d.ts +4 -1
- package/dist/types/store/contracts/contact.store.d.ts +1 -0
- package/dist/types/store/contracts/device-list.store.d.ts +0 -3
- package/dist/types/store/contracts/message.store.d.ts +1 -0
- package/dist/types/store/contracts/participants.store.d.ts +0 -1
- package/dist/types/store/contracts/privacy-token.store.d.ts +16 -0
- package/dist/types/store/contracts/retry.store.d.ts +7 -0
- package/dist/types/store/contracts/sender-key.store.d.ts +0 -1
- package/dist/types/store/contracts/signal.store.d.ts +13 -0
- package/dist/types/store/contracts/thread.store.d.ts +1 -0
- package/dist/types/store/createStore.d.ts +1 -1
- package/dist/types/store/index.d.ts +5 -13
- package/dist/types/store/locks/appstate.lock.d.ts +3 -0
- package/dist/types/store/locks/auth.lock.d.ts +3 -0
- package/dist/types/store/locks/contact.lock.d.ts +3 -0
- package/dist/types/store/locks/device-list.lock.d.ts +2 -0
- package/dist/types/store/locks/message.lock.d.ts +3 -0
- package/dist/types/store/locks/participants.lock.d.ts +2 -0
- package/dist/types/store/locks/privacy-token.lock.d.ts +2 -0
- package/dist/types/store/locks/retry.lock.d.ts +2 -0
- package/dist/types/store/locks/sender-key.lock.d.ts +3 -0
- package/dist/types/store/locks/signal.lock.d.ts +3 -0
- package/dist/types/store/locks/thread.lock.d.ts +3 -0
- package/dist/types/store/providers/memory/appstate.store.d.ts +3 -1
- package/dist/types/store/providers/memory/contact.store.d.ts +1 -0
- package/dist/types/store/providers/memory/device-list.store.d.ts +0 -3
- package/dist/types/store/providers/memory/message.store.d.ts +1 -0
- package/dist/types/store/providers/memory/participants.store.d.ts +0 -1
- package/dist/types/store/providers/memory/privacy-token.store.d.ts +13 -0
- package/dist/types/store/providers/memory/retry.store.d.ts +8 -0
- package/dist/types/store/providers/memory/sender-key.store.d.ts +0 -1
- package/dist/types/store/providers/memory/signal.store.d.ts +8 -1
- package/dist/types/store/providers/memory/thread.store.d.ts +1 -0
- package/dist/types/store/types.d.ts +49 -58
- package/dist/types/transport/WaWebSocket.d.ts +3 -1
- package/dist/types/transport/binary/constants.d.ts +0 -30
- package/dist/types/transport/binary/index.d.ts +0 -1
- package/dist/types/transport/index.d.ts +2 -1
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +0 -1
- package/dist/types/transport/node/WaNodeOrchestrator.d.ts +3 -4
- package/dist/types/transport/node/WaNodeTransport.d.ts +0 -9
- package/dist/types/transport/node/builders/business.d.ts +29 -0
- package/dist/types/transport/node/builders/global.d.ts +102 -0
- package/dist/types/transport/node/builders/group.d.ts +4 -6
- package/dist/types/transport/node/builders/index.d.ts +7 -3
- package/dist/types/transport/node/builders/message.d.ts +20 -30
- package/dist/types/transport/node/builders/pairing.d.ts +0 -2
- package/dist/types/transport/node/builders/privacy-token.d.ts +9 -0
- package/dist/types/transport/node/builders/privacy.d.ts +7 -0
- package/dist/types/transport/node/builders/profile.d.ts +8 -0
- package/dist/types/transport/node/builders/retry.d.ts +2 -5
- package/dist/types/transport/node/builders/usync.d.ts +21 -0
- package/dist/types/transport/node/helpers.d.ts +13 -0
- package/dist/types/transport/node/usync.d.ts +2 -0
- package/dist/types/transport/noise/WaFrameCodec.d.ts +3 -0
- package/dist/types/transport/noise/WaNoiseSession.d.ts +4 -2
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +4 -2
- package/dist/types/transport/proxy.d.ts +6 -0
- package/dist/types/transport/stream/parse.d.ts +0 -1
- package/dist/types/transport/types.d.ts +18 -1
- package/dist/types/util/bytes.d.ts +5 -0
- package/dist/types/util/index.d.ts +5 -0
- package/dist/types/util/primitives.d.ts +2 -0
- package/dist/util/bytes.js +72 -46
- package/dist/util/coercion.js +6 -14
- package/dist/util/index.js +23 -0
- package/dist/util/primitives.js +42 -14
- package/package.json +52 -9
- package/proto/index.js +1 -1
- package/dist/crypto/core/constants.js +0 -4
- package/dist/crypto/core/encoding.js +0 -29
- package/dist/esm/crypto/core/constants.js +0 -1
- package/dist/esm/crypto/core/encoding.js +0 -25
- package/dist/esm/retry/outbound.js +0 -83
- package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +0 -37
- package/dist/esm/store/providers/sqlite/appstate.store.js +0 -169
- package/dist/esm/store/providers/sqlite/auth.store.js +0 -176
- package/dist/esm/store/providers/sqlite/connection.js +0 -240
- package/dist/esm/store/providers/sqlite/contact.store.js +0 -61
- package/dist/esm/store/providers/sqlite/device-list.store.js +0 -155
- package/dist/esm/store/providers/sqlite/message.store.js +0 -119
- package/dist/esm/store/providers/sqlite/migrations.js +0 -347
- package/dist/esm/store/providers/sqlite/participants.store.js +0 -85
- package/dist/esm/store/providers/sqlite/retry.store.js +0 -144
- package/dist/esm/store/providers/sqlite/sender-key.store.js +0 -203
- package/dist/esm/store/providers/sqlite/signal.store.js +0 -353
- package/dist/esm/store/providers/sqlite/thread.store.js +0 -72
- package/dist/esm/util/base64.js +0 -18
- package/dist/esm/util/signal-address.js +0 -5
- package/dist/retry/outbound.js +0 -88
- package/dist/store/providers/sqlite/BaseSqliteStore.js +0 -41
- package/dist/store/providers/sqlite/appstate.store.js +0 -173
- package/dist/store/providers/sqlite/auth.store.js +0 -180
- package/dist/store/providers/sqlite/connection.js +0 -276
- package/dist/store/providers/sqlite/contact.store.js +0 -65
- package/dist/store/providers/sqlite/device-list.store.js +0 -159
- package/dist/store/providers/sqlite/message.store.js +0 -123
- package/dist/store/providers/sqlite/migrations.js +0 -350
- package/dist/store/providers/sqlite/participants.store.js +0 -89
- package/dist/store/providers/sqlite/retry.store.js +0 -148
- package/dist/store/providers/sqlite/sender-key.store.js +0 -207
- package/dist/store/providers/sqlite/signal.store.js +0 -357
- package/dist/store/providers/sqlite/thread.store.js +0 -76
- package/dist/types/appstate/store/sqlite.d.ts +0 -21
- package/dist/types/crypto/core/constants.d.ts +0 -1
- package/dist/types/crypto/core/encoding.d.ts +0 -11
- package/dist/types/retry/outbound.d.ts +0 -4
- package/dist/types/store/providers/sqlite/BaseSqliteStore.d.ts +0 -12
- package/dist/types/store/providers/sqlite/appstate.store.d.ts +0 -15
- package/dist/types/store/providers/sqlite/auth.store.d.ts +0 -10
- package/dist/types/store/providers/sqlite/connection.d.ts +0 -10
- package/dist/types/store/providers/sqlite/contact.store.d.ts +0 -10
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -18
- package/dist/types/store/providers/sqlite/message.store.d.ts +0 -11
- package/dist/types/store/providers/sqlite/migrations.d.ts +0 -3
- package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -13
- package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -16
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -25
- package/dist/types/store/providers/sqlite/signal.store.d.ts +0 -46
- package/dist/types/store/providers/sqlite/thread.store.d.ts +0 -11
- package/dist/types/util/base64.d.ts +0 -4
- package/dist/types/util/signal-address.d.ts +0 -2
- package/dist/util/base64.js +0 -24
- package/dist/util/signal-address.js +0 -8
- /package/dist/types/transport/node/builders/{accountSync.d.ts → account-sync.d.ts} +0 -0
|
@@ -11,8 +11,8 @@ export declare class WaNodeOrchestrator {
|
|
|
11
11
|
private readonly sendNodeFn;
|
|
12
12
|
private readonly defaultTimeoutMs;
|
|
13
13
|
private readonly hostDomain;
|
|
14
|
-
private
|
|
15
|
-
private
|
|
14
|
+
private idGenerator;
|
|
15
|
+
private idGeneratorReady;
|
|
16
16
|
private readonly pendingQueries;
|
|
17
17
|
constructor(options: WaNodeOrchestratorOptions);
|
|
18
18
|
hasPending(): boolean;
|
|
@@ -22,7 +22,6 @@ export declare class WaNodeOrchestrator {
|
|
|
22
22
|
sendNode(node: BinaryNode): Promise<void>;
|
|
23
23
|
query(node: BinaryNode, timeoutMs?: number): Promise<BinaryNode>;
|
|
24
24
|
private withAutoId;
|
|
25
|
-
private
|
|
26
|
-
private generateStanzaPrefix;
|
|
25
|
+
private getIdGenerator;
|
|
27
26
|
}
|
|
28
27
|
export {};
|
|
@@ -2,21 +2,12 @@ import { EventEmitter } from 'node:events';
|
|
|
2
2
|
import type { Logger } from '../../infra/log/types';
|
|
3
3
|
import type { BinaryNode } from '../types';
|
|
4
4
|
import type { WaComms } from '../WaComms';
|
|
5
|
-
interface NodeTransportEventMap {
|
|
6
|
-
readonly frame_in: (frame: Uint8Array) => void;
|
|
7
|
-
readonly frame_out: (frame: Uint8Array) => void;
|
|
8
|
-
readonly node_in: (node: BinaryNode, frame: Uint8Array) => void;
|
|
9
|
-
readonly node_out: (node: BinaryNode, frame: Uint8Array) => void;
|
|
10
|
-
readonly decode_error: (error: Error, frame: Uint8Array) => void;
|
|
11
|
-
}
|
|
12
5
|
export declare class WaNodeTransport extends EventEmitter {
|
|
13
6
|
private readonly logger;
|
|
14
7
|
private comms;
|
|
15
8
|
constructor(logger?: Logger);
|
|
16
|
-
on<K extends keyof NodeTransportEventMap>(event: K, listener: NodeTransportEventMap[K]): this;
|
|
17
9
|
bindComms(comms: WaComms | null): void;
|
|
18
10
|
sendNode(node: BinaryNode): Promise<void>;
|
|
19
11
|
dispatchIncomingFrame(frame: Uint8Array, onNode: (node: BinaryNode) => Promise<void> | void): Promise<void>;
|
|
20
12
|
private shouldIncludeTraceXml;
|
|
21
13
|
}
|
|
22
|
-
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { BinaryNode } from '../../types';
|
|
2
|
+
export declare const WA_BUSINESS_PROFILE_VERSION = 116;
|
|
3
|
+
export interface WaEditBusinessProfileInput {
|
|
4
|
+
readonly address?: string;
|
|
5
|
+
readonly description?: string;
|
|
6
|
+
readonly email?: string;
|
|
7
|
+
readonly websites?: readonly {
|
|
8
|
+
readonly url: string;
|
|
9
|
+
}[];
|
|
10
|
+
readonly categories?: readonly {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
}[];
|
|
13
|
+
readonly businessHours?: {
|
|
14
|
+
readonly timezone?: string;
|
|
15
|
+
readonly config: readonly {
|
|
16
|
+
readonly dayOfWeek: string;
|
|
17
|
+
readonly mode: string;
|
|
18
|
+
readonly openTime?: number;
|
|
19
|
+
readonly closeTime?: number;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
readonly latitude?: number;
|
|
23
|
+
readonly longitude?: number;
|
|
24
|
+
}
|
|
25
|
+
export declare function buildGetBusinessProfileIq(jids: readonly string[], version?: number): BinaryNode;
|
|
26
|
+
export declare function buildEditBusinessProfileIq(input: WaEditBusinessProfileInput): BinaryNode;
|
|
27
|
+
export declare function buildGetVerifiedNameIq(jid: string): BinaryNode;
|
|
28
|
+
export declare function buildUpdateCoverPhotoIq(id: string, timestamp: string, token: string): BinaryNode;
|
|
29
|
+
export declare function buildDeleteCoverPhotoIq(id: string): BinaryNode;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { BinaryNode } from '../../types';
|
|
2
|
+
export type BuildAckNodeInput = {
|
|
3
|
+
readonly kind: 'notification';
|
|
4
|
+
readonly node: BinaryNode;
|
|
5
|
+
readonly typeOverride?: string;
|
|
6
|
+
readonly includeParticipant?: boolean;
|
|
7
|
+
readonly includeType?: boolean;
|
|
8
|
+
readonly content?: BinaryNode[];
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'message';
|
|
11
|
+
readonly node: BinaryNode;
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly to: string;
|
|
14
|
+
readonly from?: string | null;
|
|
15
|
+
readonly typeOverride?: string;
|
|
16
|
+
readonly participant?: string;
|
|
17
|
+
readonly recipient?: string;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: 'receipt';
|
|
20
|
+
readonly node: BinaryNode;
|
|
21
|
+
readonly retryType?: boolean;
|
|
22
|
+
readonly typeOverride?: string;
|
|
23
|
+
readonly includeParticipant?: boolean;
|
|
24
|
+
readonly includeRecipient?: boolean;
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: 'aggregate_message';
|
|
27
|
+
readonly to: string;
|
|
28
|
+
readonly ids: readonly string[];
|
|
29
|
+
readonly recipient?: string;
|
|
30
|
+
readonly participant?: string;
|
|
31
|
+
readonly type?: string;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: 'nack';
|
|
34
|
+
readonly stanzaTag: string;
|
|
35
|
+
readonly id: string;
|
|
36
|
+
readonly to: string;
|
|
37
|
+
readonly type?: string;
|
|
38
|
+
readonly participant?: string;
|
|
39
|
+
readonly error: number | string;
|
|
40
|
+
readonly failureReason?: number;
|
|
41
|
+
} | {
|
|
42
|
+
readonly kind: 'custom';
|
|
43
|
+
readonly ackClass: string;
|
|
44
|
+
readonly to: string;
|
|
45
|
+
readonly id?: string;
|
|
46
|
+
readonly type?: string;
|
|
47
|
+
readonly participant?: string;
|
|
48
|
+
readonly recipient?: string;
|
|
49
|
+
readonly from?: string;
|
|
50
|
+
readonly error?: number | string;
|
|
51
|
+
readonly content?: BinaryNode[];
|
|
52
|
+
};
|
|
53
|
+
export declare function buildAckNode(input: BuildAckNodeInput): BinaryNode;
|
|
54
|
+
export type BuildReceiptNodeInput = {
|
|
55
|
+
readonly kind: 'delivery';
|
|
56
|
+
readonly node: BinaryNode;
|
|
57
|
+
readonly id: string;
|
|
58
|
+
readonly to: string;
|
|
59
|
+
} | {
|
|
60
|
+
readonly kind: 'retry_custom';
|
|
61
|
+
readonly id: string;
|
|
62
|
+
readonly to: string;
|
|
63
|
+
readonly participant?: string;
|
|
64
|
+
readonly recipient?: string;
|
|
65
|
+
readonly categoryPeer?: boolean;
|
|
66
|
+
readonly content: BinaryNode[];
|
|
67
|
+
} | {
|
|
68
|
+
readonly kind: 'retry';
|
|
69
|
+
readonly node: BinaryNode;
|
|
70
|
+
readonly id: string;
|
|
71
|
+
readonly to: string;
|
|
72
|
+
readonly retryCount?: number;
|
|
73
|
+
} | {
|
|
74
|
+
readonly kind: 'outbound';
|
|
75
|
+
readonly id: string;
|
|
76
|
+
readonly to: string;
|
|
77
|
+
readonly type?: string;
|
|
78
|
+
readonly participant?: string;
|
|
79
|
+
readonly recipient?: string;
|
|
80
|
+
readonly category?: string;
|
|
81
|
+
readonly from?: string;
|
|
82
|
+
readonly t?: string;
|
|
83
|
+
readonly peerParticipantPn?: string;
|
|
84
|
+
readonly listIds?: readonly string[];
|
|
85
|
+
readonly content?: BinaryNode[];
|
|
86
|
+
} | {
|
|
87
|
+
readonly kind: 'server_error';
|
|
88
|
+
readonly id: string;
|
|
89
|
+
readonly to: string;
|
|
90
|
+
readonly categoryPeer?: boolean;
|
|
91
|
+
readonly encryptCiphertext: Uint8Array;
|
|
92
|
+
readonly encryptIv: Uint8Array;
|
|
93
|
+
readonly rmrJid?: string;
|
|
94
|
+
readonly rmrFromMe?: boolean | string;
|
|
95
|
+
readonly rmrParticipant?: string;
|
|
96
|
+
} | {
|
|
97
|
+
readonly kind: 'custom';
|
|
98
|
+
readonly attrs: Readonly<Record<string, string>>;
|
|
99
|
+
readonly content?: BinaryNode[];
|
|
100
|
+
};
|
|
101
|
+
export declare function buildReceiptNode(input: BuildReceiptNodeInput): BinaryNode;
|
|
102
|
+
export declare function buildIqResultNode(iqNode: BinaryNode): BinaryNode;
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import type { BinaryNode } from '../../types';
|
|
2
|
-
|
|
2
|
+
export declare function buildCreateGroupIq(input: {
|
|
3
3
|
readonly subject: string;
|
|
4
4
|
readonly participants: readonly string[];
|
|
5
5
|
readonly description?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function buildCreateGroupIq(input: BuildCreateGroupIqInput): BinaryNode;
|
|
6
|
+
}): BinaryNode;
|
|
8
7
|
type GroupParticipantAction = 'add' | 'remove' | 'promote' | 'demote';
|
|
9
|
-
|
|
8
|
+
export declare function buildGroupParticipantChangeIq(input: {
|
|
10
9
|
readonly groupJid: string;
|
|
11
10
|
readonly action: GroupParticipantAction;
|
|
12
11
|
readonly participants: readonly string[];
|
|
13
|
-
}
|
|
14
|
-
export declare function buildGroupParticipantChangeIq(input: BuildGroupParticipantChangeIqInput): BinaryNode;
|
|
12
|
+
}): BinaryNode;
|
|
15
13
|
export declare function buildLeaveGroupIq(groupJids: readonly string[]): BinaryNode;
|
|
16
14
|
export {};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
export { buildAccountBlocklistSyncIq, buildAccountDevicesSyncIq, buildAccountPictureSyncIq, buildAccountPrivacySyncIq, buildClearDirtyBitsIq, buildGroupsDirtySyncIq, buildNewsletterMetadataSyncIq } from '../../node/builders/
|
|
2
|
-
export { buildCompanionFinishRequestNode, buildCompanionHelloRequestNode, buildGetCountryCodeRequestNode
|
|
1
|
+
export { buildAccountBlocklistSyncIq, buildAccountDevicesSyncIq, buildAccountPictureSyncIq, buildAccountPrivacySyncIq, buildClearDirtyBitsIq, buildGroupsDirtySyncIq, buildNewsletterMetadataSyncIq } from '../../node/builders/account-sync';
|
|
2
|
+
export { buildCompanionFinishRequestNode, buildCompanionHelloRequestNode, buildGetCountryCodeRequestNode } from '../../node/builders/pairing';
|
|
3
|
+
export { buildAckNode, buildReceiptNode, buildIqResultNode } from '../../node/builders/global';
|
|
3
4
|
export { buildMediaConnIq } from '../../node/builders/media';
|
|
4
|
-
export { buildDirectMessageFanoutNode,
|
|
5
|
+
export { buildDirectMessageFanoutNode, buildGroupRetryMessageNode, buildGroupSenderKeyMessageNode, buildMetaNode } from '../../node/builders/message';
|
|
5
6
|
export { buildRetryReceiptNode } from '../../node/builders/retry';
|
|
6
7
|
export { buildMissingPreKeysFetchIq, buildPreKeyUploadIq, buildSignedPreKeyRotateIq } from '../../node/builders/prekeys';
|
|
7
8
|
export { buildCreateGroupIq, buildGroupParticipantChangeIq, buildLeaveGroupIq } from '../../node/builders/group';
|
|
9
|
+
export { buildUsyncIq, buildUsyncUserNode, type BuildUsyncIqInput, type BuildUsyncUserNodeInput, type WaUsyncContext, type WaUsyncMode } from '../../node/builders/usync';
|
|
10
|
+
export { buildDeleteProfilePictureIq, buildGetProfilePictureIq, buildGetStatusUsyncQueryNodes, buildSetProfilePictureIq, type WaProfilePictureType } from '../../node/builders/profile';
|
|
11
|
+
export { buildDeleteCoverPhotoIq, buildEditBusinessProfileIq, buildGetBusinessProfileIq, buildGetVerifiedNameIq, buildUpdateCoverPhotoIq, WA_BUSINESS_PROFILE_VERSION, type WaEditBusinessProfileInput } from '../../node/builders/business';
|
|
@@ -4,33 +4,26 @@ interface EncryptedParticipant {
|
|
|
4
4
|
readonly encType: 'msg' | 'pkmsg';
|
|
5
5
|
readonly ciphertext: Uint8Array;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
type DirectMessageFanoutInput = {
|
|
8
8
|
readonly to: string;
|
|
9
9
|
readonly type: string;
|
|
10
10
|
readonly id?: string;
|
|
11
|
+
readonly edit?: string;
|
|
11
12
|
readonly participants: readonly EncryptedParticipant[];
|
|
12
13
|
readonly deviceIdentity?: Uint8Array;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
readonly phash?: string;
|
|
20
|
-
readonly addressingMode?: 'pn' | 'lid';
|
|
21
|
-
readonly participants: readonly EncryptedParticipant[];
|
|
22
|
-
readonly deviceIdentity?: Uint8Array;
|
|
23
|
-
}
|
|
24
|
-
interface BuildGroupDirectMessageNodeInput {
|
|
25
|
-
readonly to: string;
|
|
26
|
-
readonly type: string;
|
|
27
|
-
readonly id?: string;
|
|
14
|
+
readonly reportingNode?: BinaryNode;
|
|
15
|
+
readonly privacyTokenNode?: BinaryNode;
|
|
16
|
+
readonly metaNode?: BinaryNode;
|
|
17
|
+
readonly mediatype?: string;
|
|
18
|
+
};
|
|
19
|
+
type GroupMessageFanoutInput = DirectMessageFanoutInput & {
|
|
28
20
|
readonly phash?: string;
|
|
29
21
|
readonly addressingMode?: 'pn' | 'lid';
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
};
|
|
23
|
+
type GroupSenderKeyMessageInput = GroupMessageFanoutInput & {
|
|
24
|
+
readonly groupCiphertext: Uint8Array;
|
|
25
|
+
};
|
|
26
|
+
type GroupRetryMessageInput = {
|
|
34
27
|
readonly to: string;
|
|
35
28
|
readonly type: string;
|
|
36
29
|
readonly id: string;
|
|
@@ -38,15 +31,12 @@ interface BuildGroupRetryMessageNodeInput {
|
|
|
38
31
|
readonly addressingMode: 'pn' | 'lid';
|
|
39
32
|
readonly encType: 'msg' | 'pkmsg';
|
|
40
33
|
readonly ciphertext: Uint8Array;
|
|
34
|
+
readonly retryCount: number;
|
|
41
35
|
readonly deviceIdentity?: Uint8Array;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
export declare function
|
|
45
|
-
export declare function
|
|
46
|
-
export declare function
|
|
47
|
-
export declare function
|
|
48
|
-
export declare function buildInboundRetryReceiptNode(messageNode: BinaryNode, id: string, to: string, meJid?: string | null, retryCount?: number): BinaryNode;
|
|
49
|
-
export declare function buildInboundRetryReceiptAckNode(receiptNode: BinaryNode): BinaryNode;
|
|
50
|
-
export declare function buildInboundReceiptAckNode(receiptNode: BinaryNode): BinaryNode;
|
|
51
|
-
export declare function buildGroupRetryMessageNode(input: BuildGroupRetryMessageNodeInput): BinaryNode;
|
|
36
|
+
readonly mediatype?: string;
|
|
37
|
+
};
|
|
38
|
+
export declare function buildDirectMessageFanoutNode(input: GroupMessageFanoutInput): BinaryNode;
|
|
39
|
+
export declare function buildGroupSenderKeyMessageNode(input: GroupSenderKeyMessageInput): BinaryNode;
|
|
40
|
+
export declare function buildGroupRetryMessageNode(input: GroupRetryMessageInput): BinaryNode;
|
|
41
|
+
export declare function buildMetaNode(attrs: Record<string, string>): BinaryNode;
|
|
52
42
|
export {};
|
|
@@ -14,5 +14,3 @@ export declare function buildCompanionFinishRequestNode(args: {
|
|
|
14
14
|
readonly companionIdentityPublic: Uint8Array;
|
|
15
15
|
readonly ref: Uint8Array;
|
|
16
16
|
}): BinaryNode;
|
|
17
|
-
export declare function buildNotificationAckNode(node: BinaryNode, typeOverride?: string): BinaryNode;
|
|
18
|
-
export declare function buildIqResultNode(iqNode: BinaryNode): BinaryNode;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BinaryNode } from '../../types';
|
|
2
|
+
export interface BuildPrivacyTokenIqInput {
|
|
3
|
+
readonly jid: string;
|
|
4
|
+
readonly timestampS: number;
|
|
5
|
+
readonly type?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function buildPrivacyTokenIqNode(input: BuildPrivacyTokenIqInput): BinaryNode;
|
|
8
|
+
export declare function buildTcTokenMessageNode(token: Uint8Array): BinaryNode;
|
|
9
|
+
export declare function buildCsTokenMessageNode(hash: Uint8Array): BinaryNode;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type WaPrivacyCategory, type WaPrivacyValue } from '../../../protocol/privacy';
|
|
2
|
+
import type { BinaryNode } from '../../types';
|
|
3
|
+
export declare function buildGetPrivacySettingsIq(): BinaryNode;
|
|
4
|
+
export declare function buildSetPrivacyCategoryIq(category: WaPrivacyCategory, value: WaPrivacyValue): BinaryNode;
|
|
5
|
+
export declare function buildGetPrivacyDisallowedListIq(category: WaPrivacyCategory): BinaryNode;
|
|
6
|
+
export declare function buildGetBlocklistIq(): BinaryNode;
|
|
7
|
+
export declare function buildBlocklistChangeIq(jid: string, action: 'block' | 'unblock'): BinaryNode;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BinaryNode } from '../../types';
|
|
2
|
+
export type WaProfilePictureType = 'preview' | 'image';
|
|
3
|
+
export declare function buildGetProfilePictureIq(targetJid: string, type?: WaProfilePictureType, existingId?: string): BinaryNode;
|
|
4
|
+
export declare function buildSetProfilePictureIq(imageBytes: Uint8Array, targetJid?: string): BinaryNode;
|
|
5
|
+
export declare function buildDeleteProfilePictureIq(targetJid?: string): BinaryNode;
|
|
6
|
+
export declare function buildSetStatusIq(text: string): BinaryNode;
|
|
7
|
+
export declare function buildGetDisappearingModeUsyncQueryNode(): BinaryNode;
|
|
8
|
+
export declare function buildGetStatusUsyncQueryNodes(): readonly BinaryNode[];
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { WaRetryKeyBundle } from '../../../retry/types';
|
|
2
2
|
import type { BinaryNode } from '../../types';
|
|
3
|
-
|
|
3
|
+
export declare function buildRetryReceiptNode(input: {
|
|
4
4
|
readonly stanzaId: string;
|
|
5
5
|
readonly to: string;
|
|
6
6
|
readonly participant?: string;
|
|
7
7
|
readonly recipient?: string;
|
|
8
|
-
readonly from?: string;
|
|
9
8
|
readonly originalMsgId: string;
|
|
10
9
|
readonly retryCount: number;
|
|
11
10
|
readonly t: string;
|
|
@@ -13,6 +12,4 @@ interface BuildRetryReceiptNodeInput {
|
|
|
13
12
|
readonly error?: number;
|
|
14
13
|
readonly categoryPeer?: boolean;
|
|
15
14
|
readonly keys?: WaRetryKeyBundle;
|
|
16
|
-
}
|
|
17
|
-
export declare function buildRetryReceiptNode(input: BuildRetryReceiptNodeInput): BinaryNode;
|
|
18
|
-
export {};
|
|
15
|
+
}): BinaryNode;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WA_USYNC_CONTEXTS, WA_USYNC_MODES } from '../../../protocol/constants';
|
|
2
|
+
import type { BinaryNode } from '../../types';
|
|
3
|
+
export type WaUsyncMode = (typeof WA_USYNC_MODES)[keyof typeof WA_USYNC_MODES];
|
|
4
|
+
export type WaUsyncContext = (typeof WA_USYNC_CONTEXTS)[keyof typeof WA_USYNC_CONTEXTS];
|
|
5
|
+
export interface BuildUsyncUserNodeInput {
|
|
6
|
+
readonly jid: string;
|
|
7
|
+
readonly attrs?: Readonly<Record<string, string>>;
|
|
8
|
+
readonly content?: BinaryNode['content'];
|
|
9
|
+
}
|
|
10
|
+
export interface BuildUsyncIqInput {
|
|
11
|
+
readonly sid: string;
|
|
12
|
+
readonly queryProtocolNodes: readonly BinaryNode[];
|
|
13
|
+
readonly users: readonly BuildUsyncUserNodeInput[];
|
|
14
|
+
readonly mode?: WaUsyncMode;
|
|
15
|
+
readonly context?: WaUsyncContext;
|
|
16
|
+
readonly index?: string;
|
|
17
|
+
readonly last?: string;
|
|
18
|
+
readonly hostDomain?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function buildUsyncUserNode(input: BuildUsyncUserNodeInput): BinaryNode;
|
|
21
|
+
export declare function buildUsyncIq(input: BuildUsyncIqInput): BinaryNode;
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import type { BinaryNode } from '../types';
|
|
2
|
+
export interface NodeIdGenerator {
|
|
3
|
+
readonly prefix: string;
|
|
4
|
+
next(): string;
|
|
5
|
+
}
|
|
2
6
|
export declare function getNodeChildren(node: BinaryNode): readonly BinaryNode[];
|
|
3
7
|
export declare function findNodeChild(node: BinaryNode, tag: string): BinaryNode | undefined;
|
|
4
8
|
export declare function getFirstNodeChild(node: BinaryNode): BinaryNode | undefined;
|
|
5
9
|
export declare function getNodeChildrenByTag(node: BinaryNode, tag: string): readonly BinaryNode[];
|
|
10
|
+
export declare function getNodeChildrenByTagFromChildren(node: BinaryNode, tag: string): readonly BinaryNode[];
|
|
11
|
+
export declare function getNodeChildrenTags(node: BinaryNode): readonly string[];
|
|
12
|
+
export declare function getNodeChildrenNonEmptyAttrValuesByTag(node: BinaryNode, tag: string, attr: string): readonly string[];
|
|
13
|
+
export declare function getNodeChildrenNonEmptyUtf8ByTag(node: BinaryNode, tag: string, field: string): readonly string[];
|
|
14
|
+
export declare function findNodeChildrenByTags<const TTags extends readonly string[]>(node: BinaryNode, tags: TTags): {
|
|
15
|
+
readonly [Index in keyof TTags]: BinaryNode | undefined;
|
|
16
|
+
};
|
|
6
17
|
export declare function hasNodeChild(node: BinaryNode, tag: string): boolean;
|
|
7
18
|
export declare function decodeNodeContentUtf8OrBytes(value: BinaryNode['content'], field: string): Uint8Array;
|
|
8
19
|
export declare function decodeNodeContentBase64OrBytes(value: BinaryNode['content'], field: string): Uint8Array;
|
|
20
|
+
export declare function formatNodeIdPrefixFromSeed(seed: Uint8Array): string;
|
|
21
|
+
export declare function createNodeIdGenerator(): Promise<NodeIdGenerator>;
|
|
@@ -3,7 +3,10 @@ export declare class WaFrameCodec {
|
|
|
3
3
|
private readonly maxFrameLength;
|
|
4
4
|
private introSent;
|
|
5
5
|
private buffered;
|
|
6
|
+
private bufferedLength;
|
|
6
7
|
constructor(introFrame?: Uint8Array, maxFrameLength?: number);
|
|
8
|
+
private assertFrameLength;
|
|
9
|
+
private appendBuffered;
|
|
7
10
|
encodeFrame(frame: Uint8Array): Uint8Array;
|
|
8
11
|
pushWireChunk(chunk: Uint8Array): readonly Uint8Array[];
|
|
9
12
|
}
|
|
@@ -3,10 +3,11 @@ import type { WaNoiseConfig } from '../types';
|
|
|
3
3
|
export declare class WaNoiseSession {
|
|
4
4
|
private readonly sendWire;
|
|
5
5
|
private readonly logger;
|
|
6
|
-
private
|
|
7
|
-
private
|
|
6
|
+
private writeChain;
|
|
7
|
+
private readChain;
|
|
8
8
|
private frameCodec;
|
|
9
9
|
private handshakeInbox;
|
|
10
|
+
private handshakeInboxHead;
|
|
10
11
|
private handshakeWaiter;
|
|
11
12
|
private handshakeRejecter;
|
|
12
13
|
private pendingDecryptedFrames;
|
|
@@ -19,6 +20,7 @@ export declare class WaNoiseSession {
|
|
|
19
20
|
encryptFrame(frame: Uint8Array): Promise<Uint8Array>;
|
|
20
21
|
pushWireChunk(chunk: Uint8Array): Promise<readonly Uint8Array[]>;
|
|
21
22
|
onSocketClosed(error?: Error): void;
|
|
23
|
+
private decryptFramesBatch;
|
|
22
24
|
reset(): void;
|
|
23
25
|
getServerStaticKey(): Uint8Array | null;
|
|
24
26
|
private fullHandshake;
|
|
@@ -5,6 +5,8 @@ export declare class WaNoiseSocket {
|
|
|
5
5
|
private writeCounter;
|
|
6
6
|
private readCounter;
|
|
7
7
|
constructor(encryptKey: CryptoKey, decryptKey: CryptoKey);
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
reserveWriteNonce(): Uint8Array;
|
|
9
|
+
encrypt(nonce: Uint8Array, frame: Uint8Array, additionalData?: Uint8Array): Promise<Uint8Array>;
|
|
10
|
+
reserveReadNonce(): Uint8Array;
|
|
11
|
+
decrypt(nonce: Uint8Array, frame: Uint8Array, additionalData?: Uint8Array): Promise<Uint8Array>;
|
|
10
12
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WaProxyAgent, WaProxyDispatcher, WaProxyTransport } from './types';
|
|
2
|
+
export declare function isProxyDispatcher(value: unknown): value is WaProxyDispatcher;
|
|
3
|
+
export declare function isProxyAgent(value: unknown): value is WaProxyAgent;
|
|
4
|
+
export declare function isProxyTransport(value: unknown): value is WaProxyTransport;
|
|
5
|
+
export declare function toProxyDispatcher(proxy: WaProxyTransport | undefined): WaProxyDispatcher | undefined;
|
|
6
|
+
export declare function toProxyAgent(proxy: WaProxyTransport | undefined): WaProxyAgent | undefined;
|
|
@@ -18,6 +18,5 @@ export type WaStreamControlNodeResult = {
|
|
|
18
18
|
readonly kind: 'stream_error_other';
|
|
19
19
|
};
|
|
20
20
|
export declare function parseStreamControlNode(node: BinaryNode): WaStreamControlNodeResult | null;
|
|
21
|
-
export declare function parseOptionalInt(value: string | undefined): number | undefined;
|
|
22
21
|
export declare function parseCompanionEncStatic(value: string | undefined, onError?: (error: Error) => void): Uint8Array | undefined;
|
|
23
22
|
export declare function parseSuccessPersistAttributes(node: BinaryNode, onCompanionParseError?: (error: Error) => void): WaSuccessPersistAttributes;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import type { Agent as HttpAgent } from 'node:http';
|
|
2
|
+
import type { Agent as HttpsAgent } from 'node:https';
|
|
1
3
|
import type { SignalKeyPair } from '../crypto/curves/types';
|
|
2
4
|
import type { WaLoginPayloadConfig, WaRegistrationPayloadConfig } from './noise/types';
|
|
5
|
+
export interface WaProxyDispatcher {
|
|
6
|
+
dispatch(...args: readonly unknown[]): unknown;
|
|
7
|
+
}
|
|
8
|
+
export type WaProxyAgent = HttpAgent | HttpsAgent;
|
|
9
|
+
export type WaProxyTransport = WaProxyDispatcher | WaProxyAgent;
|
|
3
10
|
export interface BinaryNode {
|
|
4
11
|
readonly tag: string;
|
|
5
12
|
readonly attrs: Readonly<Record<string, string>>;
|
|
@@ -18,6 +25,8 @@ export interface WaSocketConfig {
|
|
|
18
25
|
readonly urls?: readonly string[];
|
|
19
26
|
readonly protocols?: readonly string[];
|
|
20
27
|
readonly headers?: Readonly<Record<string, string>>;
|
|
28
|
+
readonly dispatcher?: WaProxyDispatcher;
|
|
29
|
+
readonly agent?: WaProxyAgent;
|
|
21
30
|
readonly timeoutIntervalMs?: number;
|
|
22
31
|
}
|
|
23
32
|
export interface WaSocketHandlers {
|
|
@@ -66,6 +75,14 @@ export interface RawWebSocket {
|
|
|
66
75
|
close(code?: number, reason?: string): void;
|
|
67
76
|
send(data: string | ArrayBuffer | Uint8Array): void;
|
|
68
77
|
}
|
|
69
|
-
export
|
|
78
|
+
export interface WaRawWebSocketInit {
|
|
79
|
+
readonly protocols?: string | readonly string[];
|
|
80
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
81
|
+
readonly dispatcher?: WaProxyDispatcher;
|
|
82
|
+
readonly agent?: WaProxyAgent;
|
|
83
|
+
}
|
|
84
|
+
export type RawWebSocketConstructor = new (url: string, protocols?: string | readonly string[] | WaRawWebSocketInit, options?: {
|
|
70
85
|
headers?: Readonly<Record<string, string>>;
|
|
86
|
+
dispatcher?: WaProxyDispatcher;
|
|
87
|
+
agent?: WaProxyAgent;
|
|
71
88
|
}) => RawWebSocket;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
2
|
export declare const TEXT_ENCODER: import("../util").TextEncoder;
|
|
3
3
|
export declare const TEXT_DECODER: import("../util").TextDecoder;
|
|
4
|
+
export declare const ZERO_BYTES: Readonly<Uint8Array>;
|
|
4
5
|
export declare const EMPTY_BYTES: Readonly<Uint8Array<ArrayBuffer>>;
|
|
5
6
|
/**
|
|
6
7
|
* Encodes a Uint8Array to a hex string
|
|
@@ -12,6 +13,10 @@ export declare function bytesToHex(value: Uint8Array): string;
|
|
|
12
13
|
export declare function hexToBytes(value: string): Uint8Array;
|
|
13
14
|
export declare function bytesToBase64(value: Uint8Array): string;
|
|
14
15
|
export declare function base64ToBytes(value: string): Uint8Array;
|
|
16
|
+
export declare function base64ToBytesChecked(value: string, field: string, requireNonEmpty?: boolean): Uint8Array;
|
|
17
|
+
export declare function decodeBase64Url(value: string | undefined, field: string): Uint8Array;
|
|
18
|
+
export declare function assertByteLength(value: Uint8Array, expectedLength: number, errorMessage: string): void;
|
|
19
|
+
export declare function decodeProtoBytes(value: Uint8Array | string | null | undefined, field: string): Uint8Array;
|
|
15
20
|
/**
|
|
16
21
|
* Encodes a Uint8Array to a base64url string (URL-safe, no padding)
|
|
17
22
|
*/
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { bytesToHex, hexToBytes, toBytesView, uint8Equal } from './bytes';
|
|
2
|
+
export { asBytes, asNumber, asOptionalBytes, asOptionalNumber, asOptionalString, asString, resolvePositive, toBoolOrUndef } from './coercion';
|
|
3
|
+
export { normalizeQueryLimit } from './collections';
|
|
4
|
+
export { toSafeNumber } from './primitives';
|
|
5
|
+
export { isBunRuntime } from './runtime';
|
|
@@ -5,3 +5,5 @@ export declare function toSafeNumber(value: number | {
|
|
|
5
5
|
export declare function longToNumber(value: number | {
|
|
6
6
|
toNumber(): number;
|
|
7
7
|
} | null | undefined): number;
|
|
8
|
+
export declare function normalizeNonNegativeInteger(value: number | undefined, fallback: number): number;
|
|
9
|
+
export declare function parseOptionalInt(value: string | undefined): number | undefined;
|