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
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function computeBucket(unixTimeS: number, durationS: number): number;
|
|
2
|
+
export declare function tokenExpirationCutoffS(nowS: number, durationS: number, numBuckets: number): number;
|
|
3
|
+
export declare function isTokenExpired(tokenTimestampS: number, nowS: number, durationS: number, numBuckets: number): boolean;
|
|
4
|
+
export declare function shouldSendNewToken(senderTimestampS: number, nowS: number, senderDurationS: number): boolean;
|
|
5
|
+
export declare function clampDuration(durationS: number, maxDurationS: number): number;
|
|
@@ -2,6 +2,7 @@ import type { AppStateCollectionName } from '../appstate/types';
|
|
|
2
2
|
import type { WaAuthClientOptions, WaAuthCredentials, WaAuthSocketOptions } from '../auth/types';
|
|
3
3
|
import type { WaMessagePublishOptions } from '../message/types';
|
|
4
4
|
import type { Proto } from '..';
|
|
5
|
+
import type { WaConnectionCode, WaConnectionOpenReason, WaDisconnectReason } from '../protocol/stream';
|
|
5
6
|
import type { WaStore } from '../store/types';
|
|
6
7
|
import type { BinaryNode, WaProxyTransport } from '../transport/types';
|
|
7
8
|
export interface WaClientProxyOptions {
|
|
@@ -9,6 +10,19 @@ export interface WaClientProxyOptions {
|
|
|
9
10
|
readonly mediaUpload?: WaProxyTransport;
|
|
10
11
|
readonly mediaDownload?: WaProxyTransport;
|
|
11
12
|
}
|
|
13
|
+
export interface WaLogoutStoreClearOptions {
|
|
14
|
+
readonly auth?: boolean;
|
|
15
|
+
readonly signal?: boolean;
|
|
16
|
+
readonly senderKey?: boolean;
|
|
17
|
+
readonly appState?: boolean;
|
|
18
|
+
readonly retry?: boolean;
|
|
19
|
+
readonly participants?: boolean;
|
|
20
|
+
readonly deviceList?: boolean;
|
|
21
|
+
readonly messages?: boolean;
|
|
22
|
+
readonly threads?: boolean;
|
|
23
|
+
readonly contacts?: boolean;
|
|
24
|
+
readonly privacyToken?: boolean;
|
|
25
|
+
}
|
|
12
26
|
export interface WaClientOptions extends WaAuthClientOptions, WaAuthSocketOptions {
|
|
13
27
|
readonly store: WaStore;
|
|
14
28
|
readonly sessionId: string;
|
|
@@ -24,10 +38,25 @@ export interface WaClientOptions extends WaAuthClientOptions, WaAuthSocketOption
|
|
|
24
38
|
readonly messageAckTimeoutMs?: number;
|
|
25
39
|
readonly messageMaxAttempts?: number;
|
|
26
40
|
readonly messageRetryDelayMs?: number;
|
|
41
|
+
readonly writeBehind?: WaWriteBehindOptions;
|
|
27
42
|
readonly history?: WaHistorySyncOptions;
|
|
28
43
|
readonly chatEvents?: {
|
|
29
44
|
readonly emitSnapshotMutations?: boolean;
|
|
30
45
|
};
|
|
46
|
+
readonly privacyToken?: WaPrivacyTokenOptions;
|
|
47
|
+
readonly logoutStoreClear?: WaLogoutStoreClearOptions;
|
|
48
|
+
}
|
|
49
|
+
export interface WaPrivacyTokenOptions {
|
|
50
|
+
readonly tcTokenDurationS?: number;
|
|
51
|
+
readonly tcTokenNumBuckets?: number;
|
|
52
|
+
readonly tcTokenSenderDurationS?: number;
|
|
53
|
+
readonly tcTokenSenderNumBuckets?: number;
|
|
54
|
+
readonly tcTokenMaxDurationS?: number;
|
|
55
|
+
}
|
|
56
|
+
export interface WaWriteBehindOptions {
|
|
57
|
+
readonly maxPendingKeys?: number;
|
|
58
|
+
readonly maxWriteConcurrency?: number;
|
|
59
|
+
readonly flushTimeoutMs?: number;
|
|
31
60
|
}
|
|
32
61
|
export interface WaHistorySyncOptions {
|
|
33
62
|
readonly enabled?: boolean;
|
|
@@ -47,6 +76,7 @@ export interface WaSignalMessagePublishInput {
|
|
|
47
76
|
export interface WaSendMessageOptions extends WaMessagePublishOptions {
|
|
48
77
|
readonly id?: string;
|
|
49
78
|
readonly expectedIdentity?: Uint8Array;
|
|
79
|
+
readonly subtype?: string;
|
|
50
80
|
}
|
|
51
81
|
export interface WaClearChatOptions {
|
|
52
82
|
readonly deleteStarred?: boolean;
|
|
@@ -201,7 +231,19 @@ export interface WaChatEvent {
|
|
|
201
231
|
readonly locked?: boolean;
|
|
202
232
|
readonly deviceAgentId?: string;
|
|
203
233
|
}
|
|
204
|
-
export type
|
|
234
|
+
export type WaConnectionEvent = {
|
|
235
|
+
readonly status: 'open';
|
|
236
|
+
readonly reason: WaConnectionOpenReason;
|
|
237
|
+
readonly code: null;
|
|
238
|
+
readonly isLogout: false;
|
|
239
|
+
readonly isNewLogin: boolean;
|
|
240
|
+
} | {
|
|
241
|
+
readonly status: 'close';
|
|
242
|
+
readonly reason: WaDisconnectReason;
|
|
243
|
+
readonly code: WaConnectionCode | null;
|
|
244
|
+
readonly isLogout: boolean;
|
|
245
|
+
readonly isNewLogin: false;
|
|
246
|
+
};
|
|
205
247
|
export interface WaClientEventMap {
|
|
206
248
|
readonly auth_qr: (event: {
|
|
207
249
|
readonly qr: string;
|
|
@@ -222,8 +264,7 @@ export interface WaClientEventMap {
|
|
|
222
264
|
readonly client_error: (event: {
|
|
223
265
|
readonly error: Error;
|
|
224
266
|
}) => void;
|
|
225
|
-
readonly
|
|
226
|
-
readonly connection_close: (event: WaEmptyEvent) => void;
|
|
267
|
+
readonly connection: (event: WaConnectionEvent) => void;
|
|
227
268
|
readonly transport_frame_in: (event: {
|
|
228
269
|
readonly frame: Uint8Array;
|
|
229
270
|
}) => void;
|
|
@@ -255,4 +296,11 @@ export interface WaClientEventMap {
|
|
|
255
296
|
readonly group_event: (event: WaGroupEvent) => void;
|
|
256
297
|
readonly chat_event: (event: WaChatEvent) => void;
|
|
257
298
|
readonly history_sync_chunk: (event: WaHistorySyncChunkEvent) => void;
|
|
299
|
+
readonly privacy_token_update: (event: WaPrivacyTokenUpdateEvent) => void;
|
|
300
|
+
}
|
|
301
|
+
export interface WaPrivacyTokenUpdateEvent {
|
|
302
|
+
readonly jid: string;
|
|
303
|
+
readonly timestampS: number;
|
|
304
|
+
readonly type: string;
|
|
305
|
+
readonly source: 'notification' | 'history_sync';
|
|
258
306
|
}
|
|
@@ -6,5 +6,5 @@ export { X25519 } from '../curves/X25519';
|
|
|
6
6
|
export { hkdf, hkdfSplit } from '../core/hkdf';
|
|
7
7
|
export { toSerializedPubKey, toRawPubKey, prependVersion, readVersionedContent } from '../core/keys';
|
|
8
8
|
export { buildNonce } from '../core/nonce';
|
|
9
|
-
export { randomBytesAsync, randomIntAsync } from '../core/random';
|
|
10
|
-
export { type CryptoKey, sha1, sha256, sha512, importAesGcmKey, aesGcmEncrypt, aesGcmDecrypt, importAesCbcKey, aesCbcEncrypt, aesCbcDecrypt, importHmacKey, importHmacSha512Key, hmacSign, pbkdf2DeriveAesCtrKey, aesCtrEncrypt, aesCtrDecrypt
|
|
9
|
+
export { randomBytesAsync, randomFillAsync, randomIntAsync } from '../core/random';
|
|
10
|
+
export { type CryptoKey, sha1, sha256, sha512, importAesGcmKey, aesGcmEncrypt, aesGcmDecrypt, importAesCbcKey, aesCbcEncrypt, aesCbcDecrypt, importHmacKey, importHmacSha512Key, hmacSign, pbkdf2DeriveAesCtrKey, aesCtrEncrypt, aesCtrDecrypt } from '../core/primitives';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Builds a 12-byte nonce for AES-GCM encryption with counter in the last 4 bytes.
|
|
3
|
+
* Allocates a new buffer per call because concurrent Noise encrypt/decrypt operations
|
|
4
|
+
* may hold references to different nonces simultaneously.
|
|
3
5
|
* Throws if counter exceeds uint32 range to prevent nonce reuse.
|
|
4
6
|
*/
|
|
5
7
|
export declare function buildNonce(counter: number): Uint8Array;
|
|
@@ -22,4 +22,3 @@ export declare function hmacSign(key: webcrypto.CryptoKey, data: Uint8Array): Pr
|
|
|
22
22
|
export declare function pbkdf2DeriveAesCtrKey(password: Uint8Array, salt: Uint8Array, iterations: number): Promise<CryptoKey>;
|
|
23
23
|
export declare function aesCtrEncrypt(key: CryptoKey, counter: Uint8Array, plaintext: Uint8Array): Promise<Uint8Array>;
|
|
24
24
|
export declare function aesCtrDecrypt(key: CryptoKey, counter: Uint8Array, ciphertext: Uint8Array): Promise<Uint8Array>;
|
|
25
|
-
export declare function ed25519VerifyRaw(publicKey: Uint8Array, signature: Uint8Array, message: Uint8Array): Promise<boolean>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare function randomBytesAsync(size: number): Promise<Uint8Array>;
|
|
2
|
+
export declare function randomFillAsync(target: Uint8Array, offset?: number, size?: number): Promise<Uint8Array>;
|
|
2
3
|
export declare const randomIntAsync: (min: number, max: number) => Promise<number>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type Fe } from '../math/fe';
|
|
1
2
|
import type { ExtendedPoint } from '../math/types';
|
|
2
3
|
export declare const FIELD_P: bigint;
|
|
3
4
|
export declare const GROUP_L: bigint;
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const FE_TWO_D: Fe;
|
|
6
|
+
export declare const FE_ZERO: Fe;
|
|
7
|
+
export declare const FE_ONE: Fe;
|
|
6
8
|
export declare const BASE_POINT: ExtendedPoint;
|
|
7
9
|
export declare const IDENTITY_POINT: ExtendedPoint;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field element arithmetic for GF(2^255-19).
|
|
3
|
+
* Representation: 16 limbs of 16 bits in Float64Array (tweetnacl style).
|
|
4
|
+
* Hot-path operations are allocation-free using pre-allocated temporaries.
|
|
5
|
+
*/
|
|
6
|
+
export type Fe = Float64Array;
|
|
7
|
+
export declare function fe(): Fe;
|
|
8
|
+
export declare function feCopy(o: Fe, a: Fe): void;
|
|
9
|
+
export declare function feFromBigInt(n: bigint): Fe;
|
|
10
|
+
export declare function feToBigInt(a: Fe): bigint;
|
|
11
|
+
export declare function feFromBytes(o: Fe, s: Uint8Array): void;
|
|
12
|
+
export declare function fePack(o: Uint8Array, n: Fe): void;
|
|
13
|
+
export declare function feAdd(o: Fe, a: Fe, b: Fe): void;
|
|
14
|
+
export declare function feSub(o: Fe, a: Fe, b: Fe): void;
|
|
15
|
+
export declare function feNeg(o: Fe, a: Fe): void;
|
|
16
|
+
/**
|
|
17
|
+
* Fully unrolled field multiplication with folded reduction.
|
|
18
|
+
* Computes o = a * b mod (2^255-19) using negacyclic convolution:
|
|
19
|
+
* t[i] = Σ a[j]*b[i-j] (direct) + 38 * Σ a[j]*b[i+16-j] (wrapped)
|
|
20
|
+
* All values in local variables for register allocation.
|
|
21
|
+
*/
|
|
22
|
+
export declare function feMul(o: Fe, a: Fe, b: Fe): void;
|
|
23
|
+
/**
|
|
24
|
+
* Fully unrolled field squaring with folded reduction and symmetry.
|
|
25
|
+
* Exploits a[j]*a[k] == a[k]*a[j] to halve off-diagonal multiplications.
|
|
26
|
+
* Combined with negacyclic reduction: wrapped terms use a38[k] = 38*a[k].
|
|
27
|
+
*/
|
|
28
|
+
export declare function feSqr(o: Fe, a: Fe): void;
|
|
29
|
+
export declare function feSqrN(o: Fe, a: Fe, n: number): void;
|
|
30
|
+
export declare function feInv(o: Fe, a: Fe): void;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { FIELD_P, GROUP_L } from '../math/constants';
|
|
2
|
-
export { FIELD_P, GROUP_L };
|
|
3
1
|
export declare function mod(value: bigint, modulus?: bigint): bigint;
|
|
4
2
|
export declare function modGroup(value: bigint): bigint;
|
|
5
3
|
export declare function modInv(value: bigint, modulus?: bigint): bigint;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import type { Fe } from '../math/fe';
|
|
1
2
|
export interface ExtendedPoint {
|
|
2
|
-
readonly x:
|
|
3
|
-
readonly y:
|
|
4
|
-
readonly z:
|
|
5
|
-
readonly t:
|
|
3
|
+
readonly x: Fe;
|
|
4
|
+
readonly y: Fe;
|
|
5
|
+
readonly z: Fe;
|
|
6
|
+
readonly t: Fe;
|
|
7
|
+
}
|
|
8
|
+
export interface MutablePoint {
|
|
9
|
+
x: Fe;
|
|
10
|
+
y: Fe;
|
|
11
|
+
z: Fe;
|
|
12
|
+
t: Fe;
|
|
6
13
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export { WaClient } from '@client';
|
|
2
|
-
export type { WaClientEventMap, WaClientOptions, WaClientProxyOptions, WaHistorySyncChunkEvent, WaHistorySyncOptions } from '@client';
|
|
2
|
+
export type { WaClientEventMap, WaClientOptions, WaClientProxyOptions, WaHistorySyncChunkEvent, WaHistorySyncOptions, WaWriteBehindOptions } from '@client';
|
|
3
|
+
export type { WaBlocklistResult, WaPrivacyCoordinator, WaPrivacyDisallowedListResult, WaPrivacySettings } from './client/coordinators/WaPrivacyCoordinator';
|
|
3
4
|
export { ConsoleLogger } from './infra/log/ConsoleLogger';
|
|
4
5
|
export { PinoLogger, createPinoLogger } from './infra/log/PinoLogger';
|
|
5
6
|
export type { PinoLoggerOptions } from './infra/log/PinoLogger';
|
|
6
7
|
export type { Logger, LogLevel } from './infra/log/types';
|
|
7
8
|
export { createStore } from '@store';
|
|
8
|
-
export type { WaAppStateCollectionStoreState, WaAppStateStore, WaAuthStore, WaContactStore,
|
|
9
|
-
export { getLoginIdentity, getWaCompanionPlatformId, getWaMediaHkdfInfo, isGroupJid, normalizeDeviceJid, normalizeRecipientJid, parsePhoneJid, parseSignalAddressFromJid, splitJid, toUserJid, WA_ACCOUNT_SYNC_PROTOCOLS, WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES, WA_APP_STATE_ERROR_CODES, WA_APP_STATE_KDF_INFO, WA_APP_STATE_KEY_TYPES, WA_APP_STATE_SYNC_DATA_TYPE, WA_BROWSERS, WA_COMPANION_PLATFORM_IDS, WA_DEFAULTS, WA_DIRTY_PROTOCOLS, WA_DIRTY_TYPES, WA_DISCONNECT_REASONS, WA_IQ_TYPES, WA_LOGOUT_REASONS, WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_MEDIA_HKDF_INFO, WA_NODE_TAGS, WA_PAIRING_KDF_INFO, WA_PREVIEW_MEDIA_HKDF_INFO, WA_READY_STATES, WA_RETRYABLE_ACK_CODES, WA_SIGNALING, WA_STREAM_SIGNALING, WA_SUPPORTED_DIRTY_TYPES, WA_XMLNS } from '@protocol';
|
|
9
|
+
export type { WaAppStateCollectionStoreState, WaAppStateStore, WaAuthStore, WaContactStore, WaCreateStoreOptions, WaDeviceListSnapshot, WaDeviceListStore, WaMessageStore, WaParticipantsSnapshot, WaParticipantsStore, WaRetryStore, WaSenderKeyStore, WaSignalStore, WaStoredContactRecord, WaStoredMessageRecord, WaStoredThreadRecord, WaStore, WaStoreBackend, WaStoreSession, WaThreadStore } from '@store';
|
|
10
|
+
export { getLoginIdentity, getWaCompanionPlatformId, getWaMediaHkdfInfo, isGroupJid, normalizeDeviceJid, normalizeRecipientJid, parsePhoneJid, parseSignalAddressFromJid, splitJid, toUserJid, WA_ACCOUNT_SYNC_PROTOCOLS, WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES, WA_APP_STATE_ERROR_CODES, WA_APP_STATE_KDF_INFO, WA_APP_STATE_KEY_TYPES, WA_APP_STATE_SYNC_DATA_TYPE, WA_BROWSERS, WA_COMPANION_PLATFORM_IDS, WA_DEFAULTS, WA_DIRTY_PROTOCOLS, WA_DIRTY_TYPES, WA_DISCONNECT_REASONS, WA_IQ_TYPES, WA_LOGOUT_REASONS, WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_MEDIA_HKDF_INFO, WA_NODE_TAGS, WA_PAIRING_KDF_INFO, WA_PREVIEW_MEDIA_HKDF_INFO, WA_READY_STATES, WA_RETRYABLE_ACK_CODES, WA_SIGNALING, WA_STREAM_SIGNALING, WA_SUPPORTED_DIRTY_TYPES, WA_PRIVACY_CATEGORIES, WA_PRIVACY_CATEGORY_TO_SETTING, WA_PRIVACY_DISALLOWED_LIST_CATEGORIES, WA_PRIVACY_SETTING_TO_CATEGORY, WA_PRIVACY_TAGS, WA_PRIVACY_VALUES, WA_XMLNS } from '@protocol';
|
|
11
|
+
export type { WaPrivacyCategory, WaPrivacySettingName, WaPrivacyValue } from '@protocol';
|
|
10
12
|
export { proto } from '.';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface BackgroundQueueOptions<K extends string, V> {
|
|
2
|
+
readonly coalesce?: (previous: V, incoming: V, key: K) => V;
|
|
3
|
+
readonly maxPendingKeys?: number;
|
|
4
|
+
readonly maxWriteConcurrency?: number;
|
|
5
|
+
readonly flushTimeoutMs?: number;
|
|
6
|
+
readonly onError?: (key: K, error: unknown, attempt: number) => void;
|
|
7
|
+
readonly onPressure?: (pendingKeys: number) => void;
|
|
8
|
+
readonly onDiscard?: (key: K, value: V) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface BackgroundQueueFlushResult {
|
|
11
|
+
readonly flushed: number;
|
|
12
|
+
readonly remaining: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class BackgroundQueue<K extends string, V> {
|
|
15
|
+
private readonly writer;
|
|
16
|
+
private readonly coalesce;
|
|
17
|
+
private readonly maxPendingKeys;
|
|
18
|
+
private readonly maxWriteConcurrency;
|
|
19
|
+
private readonly flushTimeoutMs;
|
|
20
|
+
private readonly onError?;
|
|
21
|
+
private readonly onPressure?;
|
|
22
|
+
private readonly onDiscard?;
|
|
23
|
+
private readonly pendingByKey;
|
|
24
|
+
private readonly retryTimersByKey;
|
|
25
|
+
private readonly stateWaiters;
|
|
26
|
+
private drainingPromise;
|
|
27
|
+
private inFlight;
|
|
28
|
+
private flushedCount;
|
|
29
|
+
private shutdownRequested;
|
|
30
|
+
private retryDisabled;
|
|
31
|
+
constructor(writer: (key: K, value: V) => Promise<void>, options?: BackgroundQueueOptions<K, V>);
|
|
32
|
+
enqueue(key: K, value: V): void;
|
|
33
|
+
enqueueAsync(key: K, value: V): Promise<void>;
|
|
34
|
+
private waitForCapacity;
|
|
35
|
+
private addPendingEntry;
|
|
36
|
+
private detachRetryEntry;
|
|
37
|
+
flush(timeoutMs?: number): Promise<BackgroundQueueFlushResult>;
|
|
38
|
+
destroy(timeoutMs?: number): Promise<BackgroundQueueFlushResult>;
|
|
39
|
+
private ensureDrain;
|
|
40
|
+
private drainLoop;
|
|
41
|
+
private takeBatch;
|
|
42
|
+
private processEntry;
|
|
43
|
+
private takeNext;
|
|
44
|
+
private mergeForRetry;
|
|
45
|
+
private retryDelayMs;
|
|
46
|
+
private scheduleRetry;
|
|
47
|
+
private resolveEntry;
|
|
48
|
+
private discardEntry;
|
|
49
|
+
private discardPending;
|
|
50
|
+
private remaining;
|
|
51
|
+
private trackedKeys;
|
|
52
|
+
private notifyStateChange;
|
|
53
|
+
private waitForStateChange;
|
|
54
|
+
private removeStateWaiter;
|
|
55
|
+
private invokeOnError;
|
|
56
|
+
private invokeOnPressure;
|
|
57
|
+
private invokeOnDiscard;
|
|
58
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type SharedExclusiveTask<T> = () => Promise<T>;
|
|
2
|
+
export declare class SharedExclusiveGate {
|
|
3
|
+
private activeShared;
|
|
4
|
+
private pendingExclusive;
|
|
5
|
+
private exclusiveActive;
|
|
6
|
+
private closed;
|
|
7
|
+
private readonly waiters;
|
|
8
|
+
runShared<T>(task: SharedExclusiveTask<T>): Promise<T>;
|
|
9
|
+
private runSharedSlow;
|
|
10
|
+
runExclusive<T>(task: SharedExclusiveTask<T>): Promise<T>;
|
|
11
|
+
close(): Promise<void>;
|
|
12
|
+
private acquireShared;
|
|
13
|
+
private acquireExclusive;
|
|
14
|
+
private notifyStateChange;
|
|
15
|
+
private waitForStateChange;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type StoreTask<T> = () => Promise<T>;
|
|
2
|
+
export declare class StoreLock {
|
|
3
|
+
private readonly chains;
|
|
4
|
+
private closed;
|
|
5
|
+
run<T>(key: string, task: StoreTask<T>): Promise<T>;
|
|
6
|
+
private runInternal;
|
|
7
|
+
runMany<T>(keys: readonly string[], task: StoreTask<T>): Promise<T>;
|
|
8
|
+
shutdown(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
|
-
import type { MediaCryptoType, WaMediaDecryptReadableOptions, WaMediaDecryptionResult, WaMediaDerivedKeys, WaMediaEncryptionResult, WaMediaReadableDecryptionResult, WaMediaReadableEncryptionResult } from './types';
|
|
2
|
+
import type { MediaCryptoType, WaMediaDecryptReadableOptions, WaMediaDecryptionResult, WaMediaDerivedKeys, WaMediaEncryptionResult, WaMediaFileEncryptionResult, WaMediaReadableDecryptionResult, WaMediaReadableEncryptionResult } from './types';
|
|
3
3
|
export declare class WaMediaCrypto {
|
|
4
4
|
static generateMediaKey(): Promise<Uint8Array>;
|
|
5
5
|
static deriveKeys(mediaType: MediaCryptoType, mediaKey: Uint8Array): Promise<WaMediaDerivedKeys>;
|
|
6
6
|
static encryptBytes(mediaType: MediaCryptoType, mediaKey: Uint8Array, plaintext: Uint8Array): Promise<WaMediaEncryptionResult>;
|
|
7
7
|
static decryptBytes(mediaType: MediaCryptoType, mediaKey: Uint8Array, ciphertextHmac: Uint8Array, expectedFileSha256?: Uint8Array, expectedFileEncSha256?: Uint8Array): Promise<WaMediaDecryptionResult>;
|
|
8
8
|
static encryptReadable(mediaType: MediaCryptoType, mediaKey: Uint8Array, plaintext: Readable): Promise<WaMediaReadableEncryptionResult>;
|
|
9
|
-
static
|
|
9
|
+
static encryptToFile(mediaType: MediaCryptoType, mediaKey: Uint8Array, plaintext: Readable): Promise<WaMediaFileEncryptionResult>;
|
|
10
|
+
static cleanupEncryptedFile(filePath: string): Promise<void>;
|
|
10
11
|
static decryptReadable(encrypted: Readable, options: WaMediaDecryptReadableOptions): Promise<WaMediaReadableDecryptionResult>;
|
|
11
12
|
static encryptedLength(plaintextLength: number): number;
|
|
12
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Readable } from 'node:stream';
|
|
2
|
-
import type { MediaCryptoType, WaMediaTransferClientOptions } from './types';
|
|
2
|
+
import type { MediaCryptoType, WaMediaReadableDecryptionResult, WaMediaTransferClientOptions } from './types';
|
|
3
3
|
interface StreamDownloadRequest {
|
|
4
4
|
readonly url?: string;
|
|
5
5
|
readonly directPath?: string;
|
|
@@ -37,6 +37,7 @@ interface EncryptedUploadResult {
|
|
|
37
37
|
readonly mediaKey: Uint8Array;
|
|
38
38
|
readonly fileSha256: Uint8Array;
|
|
39
39
|
readonly fileEncSha256: Uint8Array;
|
|
40
|
+
readonly plaintextLength: number;
|
|
40
41
|
}
|
|
41
42
|
interface EncryptedDownloadRequest extends StreamDownloadRequest {
|
|
42
43
|
readonly mediaType: MediaCryptoType;
|
|
@@ -44,13 +45,6 @@ interface EncryptedDownloadRequest extends StreamDownloadRequest {
|
|
|
44
45
|
readonly fileSha256?: Uint8Array;
|
|
45
46
|
readonly fileEncSha256?: Uint8Array;
|
|
46
47
|
}
|
|
47
|
-
interface EncryptedDownloadStream {
|
|
48
|
-
readonly plaintext: Readable;
|
|
49
|
-
readonly metadata: Promise<{
|
|
50
|
-
readonly fileSha256: Uint8Array;
|
|
51
|
-
readonly fileEncSha256: Uint8Array;
|
|
52
|
-
}>;
|
|
53
|
-
}
|
|
54
48
|
export declare class WaMediaTransferClient {
|
|
55
49
|
private readonly logger?;
|
|
56
50
|
private readonly defaultHosts;
|
|
@@ -68,7 +62,7 @@ export declare class WaMediaTransferClient {
|
|
|
68
62
|
uploadStream(request: StreamUploadRequest): Promise<StreamTransferResponse>;
|
|
69
63
|
uploadEncrypted(request: EncryptedUploadRequest): Promise<EncryptedUploadResult>;
|
|
70
64
|
downloadAndDecrypt(request: EncryptedDownloadRequest): Promise<Uint8Array>;
|
|
71
|
-
downloadAndDecryptStream(request: EncryptedDownloadRequest): Promise<
|
|
65
|
+
downloadAndDecryptStream(request: EncryptedDownloadRequest): Promise<WaMediaReadableDecryptionResult>;
|
|
72
66
|
readResponseBytes(response: StreamTransferResponse, maxBytes?: number): Promise<Uint8Array>;
|
|
73
67
|
private transferRequest;
|
|
74
68
|
private fetchWithDispatcher;
|
|
@@ -77,15 +71,12 @@ export declare class WaMediaTransferClient {
|
|
|
77
71
|
private loadGotModule;
|
|
78
72
|
private toGotTransferResponse;
|
|
79
73
|
private resolveTransferRequest;
|
|
80
|
-
private executeTransfer;
|
|
81
74
|
private prepareEncryptedUpload;
|
|
82
75
|
private assertSuccessfulResponse;
|
|
83
76
|
private requireResponseBody;
|
|
84
77
|
private resolveUrls;
|
|
85
|
-
private readAllBytesWithLimit;
|
|
86
78
|
private fetchWithFallback;
|
|
87
79
|
private createAbortContext;
|
|
88
|
-
private headersToRecord;
|
|
89
80
|
private drainBody;
|
|
90
81
|
}
|
|
91
82
|
export {};
|
|
@@ -7,4 +7,4 @@ export declare const ENC_KEY_END = 48;
|
|
|
7
7
|
export declare const MAC_KEY_START = 48;
|
|
8
8
|
export declare const MAC_KEY_END = 80;
|
|
9
9
|
export declare const HMAC_TRUNCATED_SIZE = 10;
|
|
10
|
-
export declare const MEDIA_UPLOAD_PATHS: Readonly<Record<'image' | 'video' | 'audio' | 'document' | 'sticker' | 'gif' | 'ptt', string>>;
|
|
10
|
+
export declare const MEDIA_UPLOAD_PATHS: Readonly<Record<'image' | 'video' | 'audio' | 'document' | 'sticker' | 'gif' | 'ptt' | 'ptv', string>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { WaMediaTransferClient } from './WaMediaTransferClient';
|
|
2
2
|
export { parseMediaConnResponse } from './conn';
|
|
3
|
-
export type { WaMediaConn
|
|
3
|
+
export type { WaMediaConn } from './types';
|
|
4
4
|
export { WaMediaCrypto } from './WaMediaCrypto';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
2
|
import type { Logger } from '../infra/log/types';
|
|
3
3
|
import type { WaProxyAgent, WaProxyDispatcher } from '../transport/types';
|
|
4
|
-
export type MediaKind = 'image' | 'video' | 'audio' | 'document' | 'sticker';
|
|
5
|
-
export type MediaCryptoType = MediaKind | 'ptt' | 'gif' | '
|
|
4
|
+
export type MediaKind = 'image' | 'video' | 'audio' | 'document' | 'sticker' | 'ptv';
|
|
5
|
+
export type MediaCryptoType = MediaKind | 'ptt' | 'gif' | 'history' | 'md-app-state';
|
|
6
6
|
export interface WaMediaConnHost {
|
|
7
7
|
readonly hostname: string;
|
|
8
8
|
readonly isFallback: boolean;
|
|
@@ -44,6 +44,7 @@ export interface WaMediaReadableEncryptionResult {
|
|
|
44
44
|
readonly metadata: Promise<{
|
|
45
45
|
readonly fileSha256: Uint8Array;
|
|
46
46
|
readonly fileEncSha256: Uint8Array;
|
|
47
|
+
readonly plaintextLength: number;
|
|
47
48
|
}>;
|
|
48
49
|
}
|
|
49
50
|
export interface WaMediaReadableDecryptionResult {
|
|
@@ -53,6 +54,13 @@ export interface WaMediaReadableDecryptionResult {
|
|
|
53
54
|
readonly fileEncSha256: Uint8Array;
|
|
54
55
|
}>;
|
|
55
56
|
}
|
|
57
|
+
export interface WaMediaFileEncryptionResult {
|
|
58
|
+
readonly filePath: string;
|
|
59
|
+
readonly fileSize: number;
|
|
60
|
+
readonly fileSha256: Uint8Array;
|
|
61
|
+
readonly fileEncSha256: Uint8Array;
|
|
62
|
+
readonly plaintextLength: number;
|
|
63
|
+
}
|
|
56
64
|
export interface WaMediaDecryptReadableOptions {
|
|
57
65
|
readonly mediaType: MediaCryptoType;
|
|
58
66
|
readonly mediaKey: Uint8Array;
|
|
@@ -2,3 +2,11 @@ import type { WaSendMediaMessage } from './types';
|
|
|
2
2
|
import type { Proto } from '..';
|
|
3
3
|
export declare function isSendMediaMessage(content: unknown): content is WaSendMediaMessage;
|
|
4
4
|
export declare function resolveMessageTypeAttr(message: Proto.IMessage): string;
|
|
5
|
+
export declare function resolveEditAttr(message: Proto.IMessage, subtype?: string): string | null;
|
|
6
|
+
export declare function resolveEncMediaType(message: Proto.IMessage): string | null;
|
|
7
|
+
export interface MessageMetaAttrs {
|
|
8
|
+
readonly polltype?: string;
|
|
9
|
+
readonly event_type?: string;
|
|
10
|
+
readonly view_once?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function resolveMetaAttrs(message: Proto.IMessage): MessageMetaAttrs | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Proto } from '..';
|
|
2
|
+
import type { SignalAddress } from '../signal/types';
|
|
3
|
+
import type { WaSignalStore } from '../store/contracts/signal.store';
|
|
4
|
+
export interface IcdcMeta {
|
|
5
|
+
readonly keyHash: Uint8Array;
|
|
6
|
+
readonly timestamp: number | undefined;
|
|
7
|
+
}
|
|
8
|
+
export declare function computeDeviceKeyHash(identityKeys: readonly Uint8Array[]): Promise<Uint8Array>;
|
|
9
|
+
export declare function resolveIcdcMeta(deviceJids: readonly string[], signalStore: WaSignalStore, updatedAtMs: number | undefined, localIdentity?: {
|
|
10
|
+
readonly address: SignalAddress;
|
|
11
|
+
readonly pubKey: Uint8Array;
|
|
12
|
+
}): Promise<IcdcMeta | null>;
|
|
13
|
+
export declare function injectDeviceListMetadata(message: Proto.IMessage, senderIcdc: IcdcMeta | null, recipientIcdc: IcdcMeta | null): Proto.IMessage;
|
|
@@ -15,5 +15,4 @@ export interface BuildReportingTokenArtifactsResult {
|
|
|
15
15
|
readonly reportingTokenContent: Uint8Array;
|
|
16
16
|
readonly reportingTokenKey: Uint8Array;
|
|
17
17
|
}
|
|
18
|
-
export declare function buildReportingTokenNode(input: BuildReportingTokenNodeInput): Promise<BinaryNode | null>;
|
|
19
18
|
export declare function buildReportingTokenArtifacts(input: BuildReportingTokenNodeInput): Promise<BuildReportingTokenArtifactsResult | null>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
2
|
import type { Proto } from '..';
|
|
3
3
|
import type { BinaryNode } from '../transport/types';
|
|
4
4
|
export interface WaMessagePublishOptions {
|
|
@@ -21,18 +21,48 @@ export interface WaMessagePublishResult {
|
|
|
21
21
|
readonly ackNode: BinaryNode;
|
|
22
22
|
readonly ack: WaMessageAckMetadata;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
readonly media:
|
|
24
|
+
type MediaInput = Uint8Array | ArrayBuffer | Readable;
|
|
25
|
+
interface WaSendMediaBase {
|
|
26
|
+
readonly media: MediaInput;
|
|
27
27
|
readonly mimetype: string;
|
|
28
|
+
readonly fileLength?: number;
|
|
29
|
+
}
|
|
30
|
+
interface WaSendImageMessage extends WaSendMediaBase {
|
|
31
|
+
readonly type: 'image';
|
|
32
|
+
readonly caption?: string;
|
|
33
|
+
readonly width?: number;
|
|
34
|
+
readonly height?: number;
|
|
35
|
+
}
|
|
36
|
+
interface WaSendVideoMessage extends WaSendMediaBase {
|
|
37
|
+
readonly type: 'video';
|
|
28
38
|
readonly caption?: string;
|
|
29
|
-
readonly fileName?: string;
|
|
30
|
-
readonly ptt?: boolean;
|
|
31
39
|
readonly gifPlayback?: boolean;
|
|
32
40
|
readonly seconds?: number;
|
|
33
41
|
readonly width?: number;
|
|
34
42
|
readonly height?: number;
|
|
35
43
|
}
|
|
44
|
+
interface WaSendPtvMessage extends WaSendMediaBase {
|
|
45
|
+
readonly type: 'ptv';
|
|
46
|
+
readonly seconds?: number;
|
|
47
|
+
readonly width?: number;
|
|
48
|
+
readonly height?: number;
|
|
49
|
+
}
|
|
50
|
+
interface WaSendAudioMessage extends WaSendMediaBase {
|
|
51
|
+
readonly type: 'audio';
|
|
52
|
+
readonly ptt?: boolean;
|
|
53
|
+
readonly seconds?: number;
|
|
54
|
+
}
|
|
55
|
+
interface WaSendDocumentMessage extends WaSendMediaBase {
|
|
56
|
+
readonly type: 'document';
|
|
57
|
+
readonly caption?: string;
|
|
58
|
+
readonly fileName?: string;
|
|
59
|
+
}
|
|
60
|
+
interface WaSendStickerMessage extends WaSendMediaBase {
|
|
61
|
+
readonly type: 'sticker';
|
|
62
|
+
readonly width?: number;
|
|
63
|
+
readonly height?: number;
|
|
64
|
+
}
|
|
65
|
+
export type WaSendMediaMessage = WaSendImageMessage | WaSendVideoMessage | WaSendPtvMessage | WaSendAudioMessage | WaSendDocumentMessage | WaSendStickerMessage;
|
|
36
66
|
export type WaSendMessageContent = string | Proto.IMessage | WaSendMediaMessage;
|
|
37
67
|
export interface WaEncryptedMessageInput {
|
|
38
68
|
readonly to: string;
|
|
@@ -43,16 +73,25 @@ export interface WaEncryptedMessageInput {
|
|
|
43
73
|
readonly encCount?: number;
|
|
44
74
|
readonly id?: string;
|
|
45
75
|
readonly type?: string;
|
|
76
|
+
readonly edit?: string;
|
|
77
|
+
readonly mediatype?: string;
|
|
46
78
|
readonly category?: string;
|
|
47
79
|
readonly pushPriority?: string;
|
|
48
80
|
readonly participant?: string;
|
|
49
81
|
readonly deviceFanout?: string;
|
|
82
|
+
readonly metaNode?: BinaryNode;
|
|
50
83
|
}
|
|
51
84
|
export interface WaSendReceiptInput {
|
|
52
85
|
readonly to: string;
|
|
53
86
|
readonly id: string;
|
|
54
87
|
readonly type?: string;
|
|
55
88
|
readonly participant?: string;
|
|
89
|
+
readonly recipient?: string;
|
|
90
|
+
readonly category?: string;
|
|
56
91
|
readonly from?: string;
|
|
57
92
|
readonly t?: string;
|
|
93
|
+
readonly peerParticipantPn?: string;
|
|
94
|
+
readonly listIds?: readonly string[];
|
|
95
|
+
readonly content?: readonly BinaryNode[];
|
|
58
96
|
}
|
|
97
|
+
export {};
|
|
@@ -32,17 +32,6 @@ export declare const WA_APP_STATE_KDF_INFO: Readonly<{
|
|
|
32
32
|
readonly MUTATION_KEYS: "WhatsApp Mutation Keys";
|
|
33
33
|
readonly PATCH_INTEGRITY: "WhatsApp Patch Integrity";
|
|
34
34
|
}>;
|
|
35
|
-
export declare const WA_APP_STATE_CHAT_MUTATION_ACTIONS: Readonly<{
|
|
36
|
-
readonly STAR: "star";
|
|
37
|
-
readonly MUTE: "mute";
|
|
38
|
-
readonly PIN: "pin_v1";
|
|
39
|
-
readonly ARCHIVE: "archive";
|
|
40
|
-
readonly DELETE_MESSAGE_FOR_ME: "deleteMessageForMe";
|
|
41
|
-
readonly MARK_CHAT_AS_READ: "markChatAsRead";
|
|
42
|
-
readonly CLEAR_CHAT: "clearChat";
|
|
43
|
-
readonly DELETE_CHAT: "deleteChat";
|
|
44
|
-
readonly LOCK_CHAT: "lock";
|
|
45
|
-
}>;
|
|
46
35
|
export declare const WA_APP_STATE_CHAT_MUTATION_SPECS: Readonly<{
|
|
47
36
|
readonly STAR: {
|
|
48
37
|
readonly collection: "regular_high";
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
export { getWaCompanionPlatformId, WA_BROWSERS, WA_COMPANION_PLATFORM_IDS } from './browser';
|
|
2
2
|
export { WA_SIGNALING, WA_PAIRING_KDF_INFO } from './auth';
|
|
3
|
-
export { WA_DISCONNECT_REASONS, WA_LOGOUT_REASONS, WA_READY_STATES, WA_STREAM_SIGNALING } from './stream';
|
|
3
|
+
export { WA_CONNECTION_REASONS, WA_DISCONNECT_REASONS, WA_FAILURE_REASONS, WA_LOGOUT_REASONS, WA_READY_STATES, WA_STREAM_SIGNALING } from './stream';
|
|
4
|
+
export type { WaConnectionCode, WaConnectionOpenReason, WaDisconnectReason, WaFailureReasonCode, WaStreamErrorCode } from './stream';
|
|
4
5
|
export { WA_IQ_TYPES, WA_NODE_TAGS, WA_XMLNS } from './nodes';
|
|
5
|
-
export { WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_RETRYABLE_ACK_CODES } from './message';
|
|
6
|
-
export { WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES,
|
|
6
|
+
export { WA_EDIT_ATTRS, WA_ENC_MEDIA_TYPES, WA_EVENT_META_TYPES, WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_POLL_META_TYPES, WA_RETRYABLE_ACK_CODES, WA_STANZA_MSG_TYPES } from './message';
|
|
7
|
+
export { WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES, WA_APP_STATE_CHAT_MUTATION_SPECS, WA_APP_STATE_ERROR_CODES, WA_APP_STATE_KDF_INFO, WA_APP_STATE_KEY_TYPES, WA_APP_STATE_SYNC_DATA_TYPE } from './appstate';
|
|
7
8
|
export { getWaMediaHkdfInfo, WA_MEDIA_HKDF_INFO, WA_PREVIEW_MEDIA_HKDF_INFO } from './media';
|
|
8
9
|
export { WA_ACCOUNT_SYNC_PROTOCOLS, WA_DIRTY_PROTOCOLS, WA_DIRTY_TYPES, WA_SUPPORTED_DIRTY_TYPES } from './dirty';
|
|
9
10
|
export { WA_GROUP_NOTIFICATION_TAGS, WA_NOTIFICATION_TYPES } from './notification';
|
|
11
|
+
export { WA_PRIVACY_TOKEN_NOTIFICATION_TYPE, WA_PRIVACY_TOKEN_TAGS, WA_PRIVACY_TOKEN_TYPES, WA_TC_TOKEN_DEFAULTS } from './privacy-token';
|
|
12
|
+
export { WA_PRIVACY_CATEGORIES, WA_PRIVACY_CATEGORY_TO_SETTING, WA_PRIVACY_DISALLOWED_LIST_CATEGORIES, WA_PRIVACY_SETTING_TO_CATEGORY, WA_PRIVACY_TAGS, WA_PRIVACY_VALUES } from './privacy';
|
|
13
|
+
export type { WaPrivacyCategory, WaPrivacySettingName, WaPrivacyValue } from './privacy';
|
|
10
14
|
export { WA_DEFAULTS } from './defaults';
|
|
11
15
|
export { WA_GROUP_PARTICIPANT_TYPES, type WaGroupSetting } from './group';
|
|
12
16
|
export { WA_USYNC_CONTEXTS, WA_USYNC_DEFAULTS, WA_USYNC_MODES } from './usync';
|
|
@@ -2,6 +2,12 @@ export declare const WA_DEFAULTS: Readonly<{
|
|
|
2
2
|
readonly HOST_DOMAIN: "s.whatsapp.net";
|
|
3
3
|
readonly GROUP_SERVER: "g.us";
|
|
4
4
|
readonly BROADCAST_SERVER: "broadcast";
|
|
5
|
+
readonly LID_SERVER: "lid";
|
|
6
|
+
readonly HOSTED_SERVER: "hosted";
|
|
7
|
+
readonly HOSTED_LID_SERVER: "hosted.lid";
|
|
8
|
+
readonly HOSTED_DEVICE_ID: 99;
|
|
9
|
+
readonly MSGR_SERVER: "msgr";
|
|
10
|
+
readonly INTEROP_SERVER: "interop";
|
|
5
11
|
readonly DEVICE_BROWSER: "firefox";
|
|
6
12
|
readonly DEVICE_PLATFORM: string;
|
|
7
13
|
readonly CHAT_SOCKET_URLS: readonly ["wss://web.whatsapp.com/ws/chat", "wss://web.whatsapp.com:5222/ws/chat"];
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export * from './constants';
|
|
2
|
-
export { getLoginIdentity, isGroupJid, normalizeDeviceJid, normalizeRecipientJid, parsePhoneJid, parseSignalAddressFromJid, splitJid, toUserJid } from './jid';
|
|
3
|
-
export { WA_USYNC_CONTEXTS, WA_USYNC_DEFAULTS, WA_USYNC_MODES } from './usync';
|
|
2
|
+
export { buildDeviceJid, canonicalizeSignalJid, canonicalizeSignalServer, getLoginIdentity, isHostedDeviceId, isHostedDeviceJid, isHostedServer, isGroupJid, normalizeDeviceJid, normalizeRecipientJid, parsePhoneJid, parseSignalAddressFromJid, splitJid, signalAddressKey, toUserJid } from './jid';
|