zapo-js 0.1.2 → 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 +12 -4
- package/dist/appstate/WaAppStateCrypto.js +1 -1
- package/dist/appstate/WaAppStateSyncClient.js +138 -93
- package/dist/appstate/{store/sqlite.js → encoding.js} +13 -8
- package/dist/appstate/index.js +8 -6
- package/dist/appstate/utils.js +0 -5
- package/dist/auth/WaAuthClient.js +36 -47
- package/dist/auth/flow/WaAuthCredentialsFlow.js +7 -7
- package/dist/auth/index.js +1 -6
- package/dist/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/auth/pairing/WaPairingFlow.js +13 -3
- package/dist/client/WaClient.js +225 -101
- package/dist/client/WaClientFactory.js +294 -44
- package/dist/client/connection/WaConnectionManager.js +19 -10
- package/dist/client/coordinators/WaBusinessCoordinator.js +241 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +11 -7
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +1 -0
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +292 -99
- 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 +179 -27
- package/dist/client/coordinators/WaStreamControlCoordinator.js +18 -11
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +166 -0
- package/dist/client/dirty.js +40 -20
- package/dist/client/events/devices.js +72 -0
- package/dist/client/events/group.js +3 -11
- package/dist/client/events/identity.js +22 -0
- package/dist/client/events/privacy-token.js +39 -0
- package/dist/client/history-sync.js +50 -9
- package/dist/client/incoming.js +37 -7
- package/dist/client/mailbox.js +24 -23
- package/dist/client/messages.js +107 -31
- package/dist/client/messaging/fanout.js +21 -11
- package/dist/client/messaging/participants.js +6 -4
- 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/index.js +2 -2
- package/dist/crypto/core/keys.js +4 -4
- package/dist/crypto/core/nonce.js +2 -0
- package/dist/crypto/core/primitives.js +0 -8
- package/dist/crypto/core/random.js +22 -0
- package/dist/crypto/curves/X25519.js +25 -6
- package/dist/crypto/index.js +3 -0
- 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 +1 -1
- package/dist/esm/appstate/WaAppStateSyncClient.js +138 -93
- 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 +2 -5
- package/dist/esm/auth/WaAuthClient.js +36 -47
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +7 -7
- package/dist/esm/auth/index.js +0 -2
- package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +6 -4
- package/dist/esm/auth/pairing/WaPairingFlow.js +14 -4
- package/dist/esm/client/WaClient.js +225 -101
- package/dist/esm/client/WaClientFactory.js +295 -45
- package/dist/esm/client/connection/WaConnectionManager.js +19 -10
- package/dist/esm/client/coordinators/WaBusinessCoordinator.js +238 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +11 -7
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +1 -0
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +295 -102
- 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 +181 -29
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +19 -12
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +162 -0
- package/dist/esm/client/dirty.js +40 -20
- package/dist/esm/client/events/devices.js +68 -0
- package/dist/esm/client/events/group.js +3 -11
- 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 +50 -9
- package/dist/esm/client/incoming.js +38 -8
- package/dist/esm/client/mailbox.js +24 -23
- package/dist/esm/client/messages.js +108 -32
- package/dist/esm/client/messaging/fanout.js +22 -12
- package/dist/esm/client/messaging/participants.js +6 -4
- 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/index.js +2 -2
- package/dist/esm/crypto/core/keys.js +1 -1
- package/dist/esm/crypto/core/nonce.js +2 -0
- package/dist/esm/crypto/core/primitives.js +0 -7
- package/dist/esm/crypto/core/random.js +22 -1
- package/dist/esm/crypto/curves/X25519.js +25 -6
- package/dist/esm/crypto/index.js +1 -0
- 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/perf/BackgroundQueue.js +478 -0
- package/dist/esm/infra/perf/BoundedTaskQueue.js +3 -1
- 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 +95 -13
- package/dist/esm/media/WaMediaTransferClient.js +39 -47
- package/dist/esm/media/constants.js +2 -1
- package/dist/esm/message/WaMessageClient.js +26 -19
- package/dist/esm/message/content.js +195 -9
- package/dist/esm/message/icdc.js +76 -0
- package/dist/esm/message/incoming.js +24 -12
- package/dist/esm/message/phash.js +3 -1
- package/dist/esm/message/reporting-token.js +14 -27
- package/dist/esm/protocol/appstate.js +9 -40
- package/dist/esm/protocol/browser.js +10 -18
- package/dist/esm/protocol/constants.js +5 -3
- package/dist/esm/protocol/defaults.js +6 -0
- package/dist/esm/protocol/index.js +1 -2
- package/dist/esm/protocol/jid.js +105 -36
- package/dist/esm/protocol/message.js +61 -1
- package/dist/esm/protocol/nodes.js +2 -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/retry/codec.js +216 -0
- package/dist/esm/retry/constants.js +1 -1
- package/dist/esm/retry/index.js +2 -2
- package/dist/esm/retry/parse.js +50 -30
- package/dist/esm/retry/replay.js +11 -7
- package/dist/esm/retry/tracker.js +50 -12
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +49 -32
- package/dist/esm/signal/api/SignalDigestSyncApi.js +13 -9
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +26 -11
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +18 -7
- package/dist/esm/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/esm/signal/api/SignalSessionSyncApi.js +16 -7
- 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 +12 -6
- package/dist/esm/signal/{store/sqlite.js → encoding.js} +78 -24
- package/dist/esm/signal/group/SenderKeyCodec.js +3 -2
- package/dist/esm/signal/group/SenderKeyManager.js +125 -106
- package/dist/esm/signal/index.js +1 -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 +150 -74
- package/dist/esm/signal/session/resolver.js +137 -102
- package/dist/esm/store/contracts/privacy-token.store.js +1 -0
- package/dist/esm/store/createStore.js +101 -187
- 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 +1 -1
- package/dist/esm/store/providers/memory/appstate.store.js +22 -24
- package/dist/esm/store/providers/memory/device-list.store.js +10 -5
- 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 +6 -1
- package/dist/esm/store/providers/memory/signal.store.js +36 -19
- package/dist/esm/transport/WaComms.js +3 -1
- package/dist/esm/transport/WaWebSocket.js +0 -6
- package/dist/esm/transport/binary/constants.js +0 -30
- package/dist/esm/transport/binary/decoder.js +4 -4
- package/dist/esm/transport/binary/encoder.js +8 -15
- package/dist/esm/transport/binary/index.js +0 -1
- package/dist/esm/transport/node/WaNodeOrchestrator.js +25 -19
- 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 +5 -2
- package/dist/esm/transport/node/builders/message.js +63 -239
- package/dist/esm/transport/node/builders/pairing.js +0 -24
- 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 +6 -2
- package/dist/esm/transport/node/helpers.js +19 -1
- package/dist/esm/transport/node/usync.js +3 -33
- package/dist/esm/transport/node/xml.js +35 -14
- package/dist/esm/transport/noise/WaClientPayload.js +10 -10
- package/dist/esm/transport/noise/WaNoiseCert.js +3 -3
- package/dist/esm/transport/noise/WaNoiseSession.js +64 -23
- package/dist/esm/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/esm/transport/stream/parse.js +8 -4
- package/dist/esm/util/bytes.js +22 -18
- package/dist/esm/util/index.js +5 -0
- package/dist/esm/util/primitives.js +3 -2
- package/dist/index.js +7 -1
- package/dist/infra/perf/BackgroundQueue.js +482 -0
- package/dist/infra/perf/BoundedTaskQueue.js +3 -1
- 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 +94 -12
- package/dist/media/WaMediaTransferClient.js +39 -47
- package/dist/media/constants.js +2 -1
- package/dist/message/WaMessageClient.js +26 -19
- package/dist/message/content.js +198 -9
- package/dist/message/icdc.js +81 -0
- package/dist/message/incoming.js +24 -12
- package/dist/message/phash.js +3 -1
- package/dist/message/reporting-token.js +14 -28
- package/dist/protocol/appstate.js +10 -41
- package/dist/protocol/browser.js +10 -18
- package/dist/protocol/constants.js +21 -2
- package/dist/protocol/defaults.js +6 -0
- package/dist/protocol/index.js +8 -5
- package/dist/protocol/jid.js +111 -36
- package/dist/protocol/message.js +62 -2
- package/dist/protocol/nodes.js +2 -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/retry/codec.js +220 -0
- package/dist/retry/constants.js +1 -1
- package/dist/retry/index.js +5 -5
- package/dist/retry/parse.js +51 -30
- package/dist/retry/replay.js +10 -6
- package/dist/retry/tracker.js +50 -12
- package/dist/signal/api/SignalDeviceSyncApi.js +48 -31
- package/dist/signal/api/SignalDigestSyncApi.js +13 -9
- package/dist/signal/api/SignalIdentitySyncApi.js +25 -10
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +17 -6
- package/dist/signal/api/SignalRotateKeyApi.js +4 -2
- package/dist/signal/api/SignalSessionSyncApi.js +16 -7
- package/dist/signal/api/result-map.js +13 -0
- package/dist/signal/constants.js +1 -5
- package/dist/signal/crypto/WaAdvSignature.js +11 -5
- package/dist/signal/{store/sqlite.js → encoding.js} +79 -25
- package/dist/signal/group/SenderKeyCodec.js +4 -3
- package/dist/signal/group/SenderKeyManager.js +125 -106
- package/dist/signal/index.js +13 -1
- package/dist/signal/registration/keygen.js +6 -2
- package/dist/signal/registration/utils.js +1 -0
- package/dist/signal/session/SignalProtocol.js +150 -74
- package/dist/signal/session/resolver.js +135 -100
- package/dist/store/contracts/privacy-token.store.js +2 -0
- package/dist/store/createStore.js +101 -187
- 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 +1 -1
- package/dist/store/providers/memory/appstate.store.js +22 -24
- package/dist/store/providers/memory/device-list.store.js +10 -5
- 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 +6 -1
- package/dist/store/providers/memory/signal.store.js +36 -19
- package/dist/transport/WaComms.js +3 -1
- package/dist/transport/WaWebSocket.js +0 -6
- package/dist/transport/binary/constants.js +1 -31
- package/dist/transport/binary/decoder.js +4 -4
- package/dist/transport/binary/encoder.js +8 -15
- package/dist/transport/binary/index.js +0 -4
- package/dist/transport/node/WaNodeOrchestrator.js +24 -18
- 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 +18 -9
- package/dist/transport/node/builders/message.js +64 -245
- package/dist/transport/node/builders/pairing.js +0 -26
- 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 +6 -2
- package/dist/transport/node/helpers.js +20 -1
- package/dist/transport/node/usync.js +2 -32
- package/dist/transport/node/xml.js +35 -14
- package/dist/transport/noise/WaClientPayload.js +13 -13
- package/dist/transport/noise/WaNoiseCert.js +2 -2
- package/dist/transport/noise/WaNoiseSession.js +64 -23
- package/dist/transport/noise/WaNoiseSocket.js +8 -4
- package/dist/transport/stream/parse.js +7 -3
- 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 -2
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +1 -1
- package/dist/types/auth/index.d.ts +0 -2
- package/dist/types/auth/types.d.ts +1 -0
- package/dist/types/client/WaClient.d.ts +27 -12
- package/dist/types/client/WaClientFactory.d.ts +12 -4
- package/dist/types/client/connection/WaConnectionManager.d.ts +2 -0
- package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +57 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +3 -1
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +14 -0
- 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 +6 -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/events/devices.d.ts +20 -0
- 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/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 +51 -3
- package/dist/types/crypto/core/index.d.ts +2 -2
- 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 +1 -0
- package/dist/types/crypto/index.d.ts +1 -0
- 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/perf/BackgroundQueue.d.ts +58 -0
- 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 +3 -12
- 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 +10 -2
- package/dist/types/message/content.d.ts +8 -0
- package/dist/types/message/icdc.d.ts +13 -0
- package/dist/types/message/reporting-token.d.ts +0 -1
- package/dist/types/message/types.d.ts +45 -6
- package/dist/types/protocol/appstate.d.ts +0 -11
- package/dist/types/protocol/constants.d.ts +7 -3
- package/dist/types/protocol/defaults.d.ts +6 -0
- package/dist/types/protocol/index.d.ts +1 -2
- package/dist/types/protocol/jid.d.ts +19 -2
- package/dist/types/protocol/message.d.ts +60 -0
- package/dist/types/protocol/nodes.d.ts +2 -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/retry/codec.d.ts +3 -0
- package/dist/types/retry/index.d.ts +3 -3
- package/dist/types/retry/parse.d.ts +5 -2
- package/dist/types/retry/tracker.d.ts +1 -0
- package/dist/types/retry/types.d.ts +6 -1
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +2 -1
- 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/SenderKeyManager.d.ts +10 -5
- package/dist/types/signal/index.d.ts +2 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +10 -4
- package/dist/types/signal/session/resolver.d.ts +7 -2
- package/dist/types/store/contracts/appstate.store.d.ts +1 -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/signal.store.d.ts +7 -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 +1 -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/signal.store.d.ts +2 -1
- package/dist/types/store/types.d.ts +49 -61
- package/dist/types/transport/WaWebSocket.d.ts +0 -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/node/WaNodeOrchestrator.d.ts +3 -4
- 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/index.d.ts +5 -2
- package/dist/types/transport/node/builders/message.d.ts +8 -7
- 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 +0 -1
- package/dist/types/transport/node/helpers.d.ts +5 -0
- package/dist/types/transport/noise/WaNoiseSession.d.ts +3 -2
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +4 -2
- package/dist/types/util/bytes.d.ts +1 -1
- package/dist/types/util/index.d.ts +5 -0
- package/dist/types/util/primitives.d.ts +0 -1
- package/dist/util/bytes.js +22 -18
- package/dist/util/index.js +23 -0
- package/dist/util/primitives.js +2 -2
- package/package.json +29 -7
- package/proto/index.js +1 -1
- package/dist/crypto/core/constants.js +0 -4
- package/dist/esm/crypto/core/constants.js +0 -1
- package/dist/esm/retry/outbound.js +0 -82
- package/dist/esm/store/providers/sqlite/BaseSqliteStore.js +0 -37
- package/dist/esm/store/providers/sqlite/appstate.store.js +0 -250
- package/dist/esm/store/providers/sqlite/auth.store.js +0 -176
- package/dist/esm/store/providers/sqlite/connection.js +0 -245
- package/dist/esm/store/providers/sqlite/contact.store.js +0 -74
- package/dist/esm/store/providers/sqlite/device-list.store.js +0 -127
- package/dist/esm/store/providers/sqlite/message.store.js +0 -132
- package/dist/esm/store/providers/sqlite/migrations.js +0 -347
- package/dist/esm/store/providers/sqlite/participants.store.js +0 -77
- package/dist/esm/store/providers/sqlite/retry.store.js +0 -141
- package/dist/esm/store/providers/sqlite/sender-key.store.js +0 -198
- package/dist/esm/store/providers/sqlite/signal.store.js +0 -435
- package/dist/esm/store/providers/sqlite/table-names.js +0 -107
- package/dist/esm/store/providers/sqlite/thread.store.js +0 -85
- package/dist/retry/outbound.js +0 -87
- package/dist/store/providers/sqlite/BaseSqliteStore.js +0 -41
- package/dist/store/providers/sqlite/appstate.store.js +0 -254
- package/dist/store/providers/sqlite/auth.store.js +0 -180
- package/dist/store/providers/sqlite/connection.js +0 -281
- package/dist/store/providers/sqlite/contact.store.js +0 -78
- package/dist/store/providers/sqlite/device-list.store.js +0 -131
- package/dist/store/providers/sqlite/message.store.js +0 -136
- package/dist/store/providers/sqlite/migrations.js +0 -350
- package/dist/store/providers/sqlite/participants.store.js +0 -81
- package/dist/store/providers/sqlite/retry.store.js +0 -145
- package/dist/store/providers/sqlite/sender-key.store.js +0 -202
- package/dist/store/providers/sqlite/signal.store.js +0 -439
- package/dist/store/providers/sqlite/table-names.js +0 -113
- package/dist/store/providers/sqlite/thread.store.js +0 -89
- package/dist/types/appstate/store/sqlite.d.ts +0 -7
- package/dist/types/crypto/core/constants.d.ts +0 -1
- 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 -17
- 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 -12
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -15
- package/dist/types/store/providers/sqlite/message.store.d.ts +0 -13
- package/dist/types/store/providers/sqlite/migrations.d.ts +0 -3
- package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -12
- package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -15
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -24
- package/dist/types/store/providers/sqlite/signal.store.d.ts +0 -53
- package/dist/types/store/providers/sqlite/table-names.d.ts +0 -5
- package/dist/types/store/providers/sqlite/thread.store.d.ts +0 -13
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
export { WaAuthSqliteStore } from './providers/sqlite/auth.store';
|
|
3
|
-
export { WaAppStateSqliteStore } from './providers/sqlite/appstate.store';
|
|
1
|
+
export type { WaCreateStoreOptions, WaStore, WaStoreBackend, WaCacheDomain, WaStoreDomain, WaStoreMemoryLimitSelection, WaStoreSession } from './types';
|
|
4
2
|
export { createStore } from './createStore';
|
|
5
3
|
export type { WaAuthStore } from './contracts/auth.store';
|
|
6
4
|
export type { WaContactStore, WaStoredContactRecord } from './contracts/contact.store';
|
|
7
5
|
export type { WaDeviceListSnapshot, WaDeviceListStore } from './contracts/device-list.store';
|
|
8
6
|
export type { WaMessageStore, WaStoredMessageRecord } from './contracts/message.store';
|
|
9
7
|
export type { WaParticipantsSnapshot, WaParticipantsStore } from './contracts/participants.store';
|
|
10
|
-
export type { WaAppStateCollectionStoreState, WaAppStateStore } from './contracts/appstate.store';
|
|
8
|
+
export type { WaAppStateCollectionStateUpdate, WaAppStateCollectionStoreState, WaAppStateStore } from './contracts/appstate.store';
|
|
11
9
|
export type { WaSenderKeyStore } from './contracts/sender-key.store';
|
|
12
|
-
export type { WaSignalStore } from './contracts/signal.store';
|
|
10
|
+
export type { WaSignalMetaSnapshot, WaSignalStore } from './contracts/signal.store';
|
|
13
11
|
export type { WaRetryStore } from './contracts/retry.store';
|
|
14
12
|
export type { WaStoredThreadRecord, WaThreadStore } from './contracts/thread.store';
|
|
15
|
-
export {
|
|
16
|
-
export { SenderKeySqliteStore } from './providers/sqlite/sender-key.store';
|
|
17
|
-
export { WaRetrySqliteStore } from './providers/sqlite/retry.store';
|
|
18
|
-
export { WaParticipantsSqliteStore } from './providers/sqlite/participants.store';
|
|
19
|
-
export { WaDeviceListSqliteStore } from './providers/sqlite/device-list.store';
|
|
13
|
+
export type { WaPrivacyTokenStore, WaStoredPrivacyTokenRecord } from './contracts/privacy-token.store';
|
|
20
14
|
export { WaAppStateMemoryStore } from './providers/memory/appstate.store';
|
|
21
15
|
export { WaSignalMemoryStore } from './providers/memory/signal.store';
|
|
22
16
|
export { SenderKeyMemoryStore } from './providers/memory/sender-key.store';
|
|
@@ -26,6 +20,4 @@ export { WaDeviceListMemoryStore } from './providers/memory/device-list.store';
|
|
|
26
20
|
export { WaContactMemoryStore } from './providers/memory/contact.store';
|
|
27
21
|
export { WaMessageMemoryStore } from './providers/memory/message.store';
|
|
28
22
|
export { WaThreadMemoryStore } from './providers/memory/thread.store';
|
|
29
|
-
export {
|
|
30
|
-
export { WaMessageSqliteStore } from './providers/sqlite/message.store';
|
|
31
|
-
export { WaThreadSqliteStore } from './providers/sqlite/thread.store';
|
|
23
|
+
export { WaPrivacyTokenMemoryStore } from './providers/memory/privacy-token.store';
|
|
@@ -12,7 +12,7 @@ export declare class WaAppStateMemoryStore implements WaAppStateStore {
|
|
|
12
12
|
constructor(initial?: WaAppStateStoreData, options?: WaAppStateMemoryStoreOptions);
|
|
13
13
|
exportData(): Promise<WaAppStateStoreData>;
|
|
14
14
|
upsertSyncKeys(keys: readonly WaAppStateSyncKey[]): Promise<number>;
|
|
15
|
-
|
|
15
|
+
getSyncKeysBatch(keyIds: readonly Uint8Array[]): Promise<readonly (WaAppStateSyncKey | null)[]>;
|
|
16
16
|
getSyncKeyData(keyId: Uint8Array): Promise<Uint8Array | null>;
|
|
17
17
|
getSyncKeyDataBatch(keyIds: readonly Uint8Array[]): Promise<readonly (Uint8Array | null)[]>;
|
|
18
18
|
getActiveSyncKey(): Promise<WaAppStateSyncKey | null>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WaPrivacyTokenStore, WaStoredPrivacyTokenRecord } from '../../contracts/privacy-token.store';
|
|
2
|
+
export declare class WaPrivacyTokenMemoryStore implements WaPrivacyTokenStore {
|
|
3
|
+
private readonly records;
|
|
4
|
+
private readonly maxEntries;
|
|
5
|
+
constructor(maxEntries?: number);
|
|
6
|
+
upsert(record: WaStoredPrivacyTokenRecord): Promise<void>;
|
|
7
|
+
upsertBatch(records: readonly WaStoredPrivacyTokenRecord[]): Promise<void>;
|
|
8
|
+
getByJid(jid: string): Promise<WaStoredPrivacyTokenRecord | null>;
|
|
9
|
+
deleteByJid(jid: string): Promise<number>;
|
|
10
|
+
clear(): Promise<void>;
|
|
11
|
+
destroy(): Promise<void>;
|
|
12
|
+
private mergeRecord;
|
|
13
|
+
}
|
|
@@ -2,14 +2,22 @@ import type { WaRetryOutboundMessageRecord, WaRetryOutboundState } from '../../.
|
|
|
2
2
|
import type { WaRetryStore } from '../../contracts/retry.store';
|
|
3
3
|
export declare class WaRetryMemoryStore implements WaRetryStore {
|
|
4
4
|
private readonly outboundMessages;
|
|
5
|
+
private readonly eligibleSets;
|
|
5
6
|
private readonly inboundCounters;
|
|
6
7
|
private readonly ttlMs;
|
|
7
8
|
private readonly cleanupTimer;
|
|
8
9
|
constructor(ttlMs?: number);
|
|
9
10
|
getTtlMs(): number;
|
|
11
|
+
supportsRawReplayPayload(): boolean;
|
|
12
|
+
getOutboundRequesterStatus(messageId: string, requesterDeviceJid: string): Promise<{
|
|
13
|
+
readonly eligible: boolean;
|
|
14
|
+
readonly delivered: boolean;
|
|
15
|
+
} | null>;
|
|
10
16
|
upsertOutboundMessage(record: WaRetryOutboundMessageRecord): Promise<void>;
|
|
17
|
+
deleteOutboundMessage(messageId: string): Promise<number>;
|
|
11
18
|
getOutboundMessage(messageId: string): Promise<WaRetryOutboundMessageRecord | null>;
|
|
12
19
|
updateOutboundMessageState(messageId: string, state: WaRetryOutboundState, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
20
|
+
markOutboundRequesterDelivered(messageId: string, requesterDeviceJid: string, updatedAtMs: number, expiresAtMs: number): Promise<void>;
|
|
13
21
|
incrementInboundCounter(messageId: string, requesterJid: string, _updatedAtMs: number, expiresAtMs: number): Promise<number>;
|
|
14
22
|
cleanupExpired(nowMs: number): Promise<number>;
|
|
15
23
|
clear(): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PreKeyRecord, RegistrationInfo, SignalAddress, SignalSessionRecord, SignedPreKeyRecord } from '../../../signal/types';
|
|
2
|
-
import type { WaSignalStore as WaSignalStoreContract } from '../../contracts/signal.store';
|
|
2
|
+
import type { WaSignalMetaSnapshot, WaSignalStore as WaSignalStoreContract } from '../../contracts/signal.store';
|
|
3
3
|
export interface WaSignalMemoryStoreOptions {
|
|
4
4
|
readonly maxPreKeys?: number;
|
|
5
5
|
readonly maxSessions?: number;
|
|
@@ -35,6 +35,7 @@ export declare class WaSignalMemoryStore implements WaSignalStoreContract {
|
|
|
35
35
|
markKeyAsUploaded(keyId: number): Promise<void>;
|
|
36
36
|
setServerHasPreKeys(value: boolean): Promise<void>;
|
|
37
37
|
getServerHasPreKeys(): Promise<boolean>;
|
|
38
|
+
getSignalMeta(): Promise<WaSignalMetaSnapshot>;
|
|
38
39
|
hasSession(address: SignalAddress): Promise<boolean>;
|
|
39
40
|
hasSessions(addresses: readonly SignalAddress[]): Promise<readonly boolean[]>;
|
|
40
41
|
getSession(address: SignalAddress): Promise<SignalSessionRecord | null>;
|
|
@@ -4,20 +4,14 @@ import type { WaContactStore } from './contracts/contact.store';
|
|
|
4
4
|
import type { WaDeviceListStore } from './contracts/device-list.store';
|
|
5
5
|
import type { WaMessageStore } from './contracts/message.store';
|
|
6
6
|
import type { WaParticipantsStore } from './contracts/participants.store';
|
|
7
|
+
import type { WaPrivacyTokenStore } from './contracts/privacy-token.store';
|
|
7
8
|
import type { WaRetryStore } from './contracts/retry.store';
|
|
8
9
|
import type { WaSenderKeyStore } from './contracts/sender-key.store';
|
|
9
10
|
import type { WaSignalStore } from './contracts/signal.store';
|
|
10
11
|
import type { WaThreadStore } from './contracts/thread.store';
|
|
11
|
-
export type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export interface WaSqliteStorageOptions {
|
|
15
|
-
readonly path: string;
|
|
16
|
-
readonly sessionId: string;
|
|
17
|
-
readonly driver?: WaSqliteDriver;
|
|
18
|
-
readonly pragmas?: Readonly<Record<string, string | number>>;
|
|
19
|
-
readonly tableNames?: WaSqliteTableNameOverrides;
|
|
20
|
-
}
|
|
12
|
+
export type WithDestroyLifecycle<T> = T & {
|
|
13
|
+
readonly destroy?: () => Promise<void>;
|
|
14
|
+
};
|
|
21
15
|
export interface WaStoreSession {
|
|
22
16
|
readonly auth: WaAuthStore;
|
|
23
17
|
readonly signal: WaSignalStore;
|
|
@@ -29,6 +23,7 @@ export interface WaStoreSession {
|
|
|
29
23
|
readonly messages: WaMessageStore;
|
|
30
24
|
readonly threads: WaThreadStore;
|
|
31
25
|
readonly contacts: WaContactStore;
|
|
26
|
+
readonly privacyToken: WaPrivacyTokenStore;
|
|
32
27
|
destroyCaches(): Promise<void>;
|
|
33
28
|
destroy(): Promise<void>;
|
|
34
29
|
}
|
|
@@ -37,30 +32,50 @@ export interface WaStore {
|
|
|
37
32
|
destroyCaches(): Promise<void>;
|
|
38
33
|
destroy(): Promise<void>;
|
|
39
34
|
}
|
|
40
|
-
export interface
|
|
41
|
-
readonly
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
readonly
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
readonly participantsMs?: number;
|
|
57
|
-
readonly deviceListMs?: number;
|
|
35
|
+
export interface WaStoreBackend {
|
|
36
|
+
readonly stores: {
|
|
37
|
+
readonly auth: (sessionId: string) => WaAuthStore;
|
|
38
|
+
readonly signal: (sessionId: string) => WaSignalStore;
|
|
39
|
+
readonly senderKey: (sessionId: string) => WaSenderKeyStore;
|
|
40
|
+
readonly appState: (sessionId: string) => WaAppStateStore;
|
|
41
|
+
readonly messages: (sessionId: string) => WaMessageStore;
|
|
42
|
+
readonly threads: (sessionId: string) => WaThreadStore;
|
|
43
|
+
readonly contacts: (sessionId: string) => WaContactStore;
|
|
44
|
+
readonly privacyToken: (sessionId: string) => WaPrivacyTokenStore;
|
|
45
|
+
};
|
|
46
|
+
readonly caches: {
|
|
47
|
+
readonly retry: (sessionId: string) => WaRetryStore;
|
|
48
|
+
readonly participants: (sessionId: string) => WaParticipantsStore;
|
|
49
|
+
readonly deviceList: (sessionId: string) => WaDeviceListStore;
|
|
50
|
+
};
|
|
58
51
|
}
|
|
59
|
-
export
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
readonly
|
|
63
|
-
readonly
|
|
52
|
+
export type WaStoreDomain = keyof WaStoreBackend['stores'];
|
|
53
|
+
export type WaCacheDomain = keyof WaStoreBackend['caches'];
|
|
54
|
+
export interface WaCreateStoreOptions<B extends string = string> {
|
|
55
|
+
readonly backends?: Readonly<Record<B, WaStoreBackend>>;
|
|
56
|
+
readonly providers?: {
|
|
57
|
+
readonly auth?: B | 'memory';
|
|
58
|
+
readonly signal?: B | 'memory';
|
|
59
|
+
readonly senderKey?: B | 'memory';
|
|
60
|
+
readonly appState?: B | 'memory';
|
|
61
|
+
readonly messages?: B | 'memory' | 'none';
|
|
62
|
+
readonly threads?: B | 'memory' | 'none';
|
|
63
|
+
readonly contacts?: B | 'memory' | 'none';
|
|
64
|
+
readonly privacyToken?: B | 'memory';
|
|
65
|
+
};
|
|
66
|
+
readonly cacheProviders?: {
|
|
67
|
+
readonly retry?: B | 'memory';
|
|
68
|
+
readonly participants?: B | 'memory' | 'none';
|
|
69
|
+
readonly deviceList?: B | 'memory' | 'none';
|
|
70
|
+
};
|
|
71
|
+
readonly memory?: {
|
|
72
|
+
readonly limits?: WaStoreMemoryLimitSelection;
|
|
73
|
+
readonly cacheTtlMs?: {
|
|
74
|
+
readonly retryMs?: number;
|
|
75
|
+
readonly participantsMs?: number;
|
|
76
|
+
readonly deviceListMs?: number;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
64
79
|
}
|
|
65
80
|
export interface WaStoreMemoryLimitSelection {
|
|
66
81
|
readonly appStateSyncKeys?: number;
|
|
@@ -75,32 +90,5 @@ export interface WaStoreMemoryLimitSelection {
|
|
|
75
90
|
readonly messages?: number;
|
|
76
91
|
readonly threads?: number;
|
|
77
92
|
readonly contacts?: number;
|
|
78
|
-
|
|
79
|
-
export type WaStoreDomainValueOrFactory<T> = T | ((sessionId: string) => T);
|
|
80
|
-
export interface WaCreateStoreCustomProviders {
|
|
81
|
-
readonly auth?: WaStoreDomainValueOrFactory<WaAuthStore>;
|
|
82
|
-
readonly signal?: WaStoreDomainValueOrFactory<WaSignalStore>;
|
|
83
|
-
readonly senderKey?: WaStoreDomainValueOrFactory<WaSenderKeyStore>;
|
|
84
|
-
readonly appState?: WaStoreDomainValueOrFactory<WaAppStateStore>;
|
|
85
|
-
readonly messages?: WaStoreDomainValueOrFactory<WaMessageStore>;
|
|
86
|
-
readonly threads?: WaStoreDomainValueOrFactory<WaThreadStore>;
|
|
87
|
-
readonly contacts?: WaStoreDomainValueOrFactory<WaContactStore>;
|
|
88
|
-
}
|
|
89
|
-
export interface WaCreateStoreCustomCacheProviders {
|
|
90
|
-
readonly retry?: WaStoreDomainValueOrFactory<WaRetryStore>;
|
|
91
|
-
readonly participants?: WaStoreDomainValueOrFactory<WaParticipantsStore>;
|
|
92
|
-
readonly deviceList?: WaStoreDomainValueOrFactory<WaDeviceListStore>;
|
|
93
|
-
}
|
|
94
|
-
export interface WaCreateStoreOptions {
|
|
95
|
-
readonly sqlite?: Omit<WaSqliteStorageOptions, 'sessionId'> & {
|
|
96
|
-
readonly batchSizes?: WaStoreSqliteBatchSizeSelection;
|
|
97
|
-
};
|
|
98
|
-
readonly memory?: {
|
|
99
|
-
readonly limits?: WaStoreMemoryLimitSelection;
|
|
100
|
-
};
|
|
101
|
-
readonly providers?: WaStoreProviderSelection;
|
|
102
|
-
readonly cacheProviders?: WaStoreCacheProviderSelection;
|
|
103
|
-
readonly cacheTtlMs?: WaStoreCacheTtlSelection;
|
|
104
|
-
readonly custom?: WaCreateStoreCustomProviders;
|
|
105
|
-
readonly customCache?: WaCreateStoreCustomCacheProviders;
|
|
93
|
+
readonly privacyTokens?: number;
|
|
106
94
|
}
|
|
@@ -15,7 +15,6 @@ export declare class WaWebSocket {
|
|
|
15
15
|
setHandlers(handlers: WaSocketHandlers): void;
|
|
16
16
|
isOpen(): boolean;
|
|
17
17
|
isConnecting(): boolean;
|
|
18
|
-
getReadyState(): number;
|
|
19
18
|
open(): Promise<SocketOpenInfo>;
|
|
20
19
|
close(code?: number, reason?: string): Promise<SocketCloseInfo | null>;
|
|
21
20
|
send(data: string | ArrayBuffer | Uint8Array): Promise<void>;
|
|
@@ -17,33 +17,3 @@ export declare const NIBBLE_ALPHABET: readonly string[];
|
|
|
17
17
|
export declare const HEX_ALPHABET: readonly string[];
|
|
18
18
|
export declare const SINGLE_BYTE_TOKEN_MAP: ReadonlyMap<string, number>;
|
|
19
19
|
export declare const DICTIONARY_TOKEN_MAPS: readonly ReadonlyMap<string, number>[];
|
|
20
|
-
export declare const WAP_ENCODE_CONSTANTS: Readonly<{
|
|
21
|
-
LIST_EMPTY: 0;
|
|
22
|
-
LIST_8: 248;
|
|
23
|
-
LIST_16: 249;
|
|
24
|
-
JID_PAIR: 250;
|
|
25
|
-
HEX_8: 251;
|
|
26
|
-
BINARY_8: 252;
|
|
27
|
-
BINARY_20: 253;
|
|
28
|
-
BINARY_32: 254;
|
|
29
|
-
NIBBLE_8: 255;
|
|
30
|
-
DICTIONARY_0: 236;
|
|
31
|
-
DICTIONARY_3: 239;
|
|
32
|
-
}>;
|
|
33
|
-
export declare const WAP_DECODE_CONSTANTS: Readonly<{
|
|
34
|
-
LIST_EMPTY: 0;
|
|
35
|
-
LIST_8: 248;
|
|
36
|
-
LIST_16: 249;
|
|
37
|
-
JID_PAIR: 250;
|
|
38
|
-
JID_FB: 246;
|
|
39
|
-
JID_INTEROP: 245;
|
|
40
|
-
JID_U: 247;
|
|
41
|
-
HEX_8: 251;
|
|
42
|
-
BINARY_8: 252;
|
|
43
|
-
BINARY_20: 253;
|
|
44
|
-
BINARY_32: 254;
|
|
45
|
-
NIBBLE_8: 255;
|
|
46
|
-
DICTIONARY_0: 236;
|
|
47
|
-
DICTIONARY_3: 239;
|
|
48
|
-
STREAM_END: 2;
|
|
49
|
-
}>;
|
|
@@ -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 {};
|
|
@@ -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,8 +1,11 @@
|
|
|
1
1
|
export { buildAccountBlocklistSyncIq, buildAccountDevicesSyncIq, buildAccountPictureSyncIq, buildAccountPrivacySyncIq, buildClearDirtyBitsIq, buildGroupsDirtySyncIq, buildNewsletterMetadataSyncIq } from '../../node/builders/account-sync';
|
|
2
|
-
export { buildCompanionFinishRequestNode, buildCompanionHelloRequestNode, buildGetCountryCodeRequestNode
|
|
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';
|
|
8
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';
|
|
@@ -8,9 +8,13 @@ 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
|
readonly reportingNode?: BinaryNode;
|
|
15
|
+
readonly privacyTokenNode?: BinaryNode;
|
|
16
|
+
readonly metaNode?: BinaryNode;
|
|
17
|
+
readonly mediatype?: string;
|
|
14
18
|
};
|
|
15
19
|
type GroupMessageFanoutInput = DirectMessageFanoutInput & {
|
|
16
20
|
readonly phash?: string;
|
|
@@ -27,15 +31,12 @@ type GroupRetryMessageInput = {
|
|
|
27
31
|
readonly addressingMode: 'pn' | 'lid';
|
|
28
32
|
readonly encType: 'msg' | 'pkmsg';
|
|
29
33
|
readonly ciphertext: Uint8Array;
|
|
34
|
+
readonly retryCount: number;
|
|
30
35
|
readonly deviceIdentity?: Uint8Array;
|
|
36
|
+
readonly mediatype?: string;
|
|
31
37
|
};
|
|
32
|
-
export declare function buildDirectMessageFanoutNode(input:
|
|
38
|
+
export declare function buildDirectMessageFanoutNode(input: GroupMessageFanoutInput): BinaryNode;
|
|
33
39
|
export declare function buildGroupSenderKeyMessageNode(input: GroupSenderKeyMessageInput): BinaryNode;
|
|
34
|
-
export declare function buildGroupDirectMessageNode(input: GroupMessageFanoutInput): BinaryNode;
|
|
35
|
-
export declare function buildInboundMessageAckNode(messageNode: BinaryNode, id: string, to: string, meJid: string | null | undefined): BinaryNode;
|
|
36
|
-
export declare function buildInboundDeliveryReceiptNode(messageNode: BinaryNode, id: string, to: string): BinaryNode;
|
|
37
|
-
export declare function buildInboundRetryReceiptNode(messageNode: BinaryNode, id: string, to: string, meJid?: string | null, retryCount?: number): BinaryNode;
|
|
38
|
-
export declare function buildInboundRetryReceiptAckNode(receiptNode: BinaryNode): BinaryNode;
|
|
39
|
-
export declare function buildInboundReceiptAckNode(receiptNode: BinaryNode): BinaryNode;
|
|
40
40
|
export declare function buildGroupRetryMessageNode(input: GroupRetryMessageInput): BinaryNode;
|
|
41
|
+
export declare function buildMetaNode(attrs: Record<string, string>): BinaryNode;
|
|
41
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,4 +1,8 @@
|
|
|
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;
|
|
@@ -14,3 +18,4 @@ export declare function hasNodeChild(node: BinaryNode, tag: string): boolean;
|
|
|
14
18
|
export declare function decodeNodeContentUtf8OrBytes(value: BinaryNode['content'], field: string): Uint8Array;
|
|
15
19
|
export declare function decodeNodeContentBase64OrBytes(value: BinaryNode['content'], field: string): Uint8Array;
|
|
16
20
|
export declare function formatNodeIdPrefixFromSeed(seed: Uint8Array): string;
|
|
21
|
+
export declare function createNodeIdGenerator(): Promise<NodeIdGenerator>;
|
|
@@ -3,8 +3,8 @@ 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
10
|
private handshakeInboxHead;
|
|
@@ -20,6 +20,7 @@ export declare class WaNoiseSession {
|
|
|
20
20
|
encryptFrame(frame: Uint8Array): Promise<Uint8Array>;
|
|
21
21
|
pushWireChunk(chunk: Uint8Array): Promise<readonly Uint8Array[]>;
|
|
22
22
|
onSocketClosed(error?: Error): void;
|
|
23
|
+
private decryptFramesBatch;
|
|
23
24
|
reset(): void;
|
|
24
25
|
getServerStaticKey(): Uint8Array | null;
|
|
25
26
|
private fullHandshake;
|