zapo-js 0.1.1 → 0.1.2
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 +8 -0
- package/dist/appstate/WaAppStateCrypto.js +18 -25
- package/dist/appstate/WaAppStateSyncClient.js +181 -114
- package/dist/appstate/WaAppStateSyncResponseParser.js +16 -5
- package/dist/appstate/constants.js +4 -3
- package/dist/appstate/utils.js +10 -30
- package/dist/auth/WaAuthClient.js +48 -55
- package/dist/auth/flow/WaAuthCredentialsFlow.js +21 -14
- package/dist/auth/index.js +1 -3
- package/dist/auth/pairing/WaPairingFlow.js +21 -23
- package/dist/auth/pairing/WaQrFlow.js +37 -24
- package/dist/client/WaClient.js +103 -276
- package/dist/client/WaClientFactory.js +227 -110
- package/dist/client/connection/WaConnectionManager.js +292 -0
- package/dist/client/connection/WaKeyShareCoordinator.js +63 -0
- package/dist/client/connection/WaReceiptQueue.js +51 -0
- package/dist/client/coordinators/WaAppStateMutationCoordinator.js +471 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +27 -17
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +20 -27
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +231 -686
- package/dist/client/coordinators/WaRetryCoordinator.js +70 -37
- package/dist/client/dirty.js +35 -29
- package/dist/client/events/chat.js +4 -3
- package/dist/client/events/group.js +59 -36
- package/dist/client/history-sync.js +53 -63
- package/dist/client/incoming.js +23 -20
- package/dist/client/mailbox.js +8 -8
- package/dist/client/messages.js +4 -4
- package/dist/client/messaging/fanout.js +189 -0
- package/dist/client/messaging/key-protocol.js +130 -0
- package/dist/client/messaging/participants.js +191 -0
- package/dist/crypto/core/hkdf.js +3 -8
- package/dist/crypto/core/index.js +1 -4
- package/dist/crypto/core/keys.js +2 -3
- package/dist/crypto/core/primitives.js +12 -15
- package/dist/crypto/core/random.js +7 -26
- package/dist/crypto/curves/Ed25519.js +7 -8
- package/dist/crypto/curves/X25519.js +13 -16
- package/dist/crypto/index.js +0 -5
- package/dist/esm/appstate/WaAppStateCrypto.js +6 -13
- package/dist/esm/appstate/WaAppStateSyncClient.js +174 -107
- package/dist/esm/appstate/WaAppStateSyncResponseParser.js +17 -6
- package/dist/esm/appstate/constants.js +3 -2
- package/dist/esm/appstate/utils.js +8 -27
- package/dist/esm/auth/WaAuthClient.js +48 -55
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +21 -14
- package/dist/esm/auth/index.js +0 -1
- package/dist/esm/auth/pairing/WaPairingFlow.js +14 -16
- package/dist/esm/auth/pairing/WaQrFlow.js +37 -24
- package/dist/esm/client/WaClient.js +103 -276
- package/dist/esm/client/WaClientFactory.js +227 -110
- package/dist/esm/client/connection/WaConnectionManager.js +288 -0
- package/dist/esm/client/connection/WaKeyShareCoordinator.js +59 -0
- package/dist/esm/client/connection/WaReceiptQueue.js +47 -0
- package/dist/esm/client/coordinators/WaAppStateMutationCoordinator.js +467 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +20 -10
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +20 -27
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +232 -687
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +71 -38
- package/dist/esm/client/dirty.js +30 -24
- package/dist/esm/client/events/chat.js +4 -3
- package/dist/esm/client/events/group.js +50 -28
- package/dist/esm/client/history-sync.js +50 -60
- package/dist/esm/client/incoming.js +23 -20
- package/dist/esm/client/mailbox.js +8 -8
- package/dist/esm/client/messages.js +1 -1
- package/dist/esm/client/messaging/fanout.js +186 -0
- package/dist/esm/client/messaging/key-protocol.js +127 -0
- package/dist/esm/client/messaging/participants.js +188 -0
- package/dist/esm/crypto/core/hkdf.js +3 -8
- package/dist/esm/crypto/core/index.js +0 -1
- package/dist/esm/crypto/core/keys.js +2 -3
- package/dist/esm/crypto/core/primitives.js +12 -15
- package/dist/esm/crypto/core/random.js +6 -25
- package/dist/esm/crypto/curves/Ed25519.js +4 -5
- package/dist/esm/crypto/curves/X25519.js +10 -13
- package/dist/esm/crypto/index.js +0 -2
- package/dist/esm/infra/log/ConsoleLogger.js +18 -17
- package/dist/esm/infra/log/PinoLogger.js +15 -9
- package/dist/esm/infra/log/types.js +11 -1
- package/dist/esm/infra/perf/BoundedTaskQueue.js +13 -17
- package/dist/esm/media/WaMediaCrypto.js +2 -4
- package/dist/esm/media/WaMediaTransferClient.js +226 -58
- package/dist/esm/media/conn.js +10 -6
- package/dist/esm/media/constants.js +4 -1
- package/dist/esm/message/WaMessageClient.js +4 -13
- package/dist/esm/message/ack.js +6 -6
- package/dist/esm/message/addon-crypto.js +59 -0
- package/dist/esm/message/incoming.js +106 -111
- package/dist/esm/message/index.js +2 -0
- package/dist/esm/message/reporting-token.js +438 -0
- package/dist/esm/message/use-case-secret.js +49 -0
- package/dist/esm/protocol/appstate.js +58 -0
- package/dist/esm/protocol/constants.js +2 -1
- package/dist/esm/protocol/index.js +2 -10
- package/dist/esm/protocol/jid.js +63 -51
- package/dist/esm/protocol/media.js +3 -3
- package/dist/esm/protocol/nodes.js +2 -0
- package/dist/esm/protocol/usync.js +11 -0
- package/dist/esm/retry/index.js +1 -0
- package/dist/esm/retry/outbound.js +4 -5
- package/dist/esm/retry/parse.js +58 -76
- package/dist/esm/retry/replay.js +48 -49
- package/dist/esm/retry/tracker.js +56 -0
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +249 -82
- package/dist/esm/signal/api/SignalDigestSyncApi.js +6 -1
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +49 -34
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +70 -62
- package/dist/esm/signal/api/SignalSessionSyncApi.js +23 -30
- package/dist/esm/signal/crypto/WaAdvSignature.js +3 -5
- package/dist/esm/signal/group/SenderKeyChain.js +28 -23
- package/dist/esm/signal/group/SenderKeyCodec.js +2 -4
- package/dist/esm/signal/group/SenderKeyManager.js +26 -16
- package/dist/esm/signal/index.js +1 -0
- package/dist/esm/signal/session/SignalProtocol.js +49 -14
- package/dist/esm/signal/session/SignalRatchet.js +24 -15
- package/dist/esm/signal/session/SignalSession.js +14 -9
- package/dist/esm/signal/session/resolver.js +186 -0
- package/dist/esm/signal/store/sqlite.js +16 -37
- package/dist/esm/store/createStore.js +16 -18
- package/dist/esm/store/noop.store.js +3 -6
- package/dist/esm/store/providers/memory/appstate.store.js +30 -6
- package/dist/esm/store/providers/memory/contact.store.js +5 -0
- package/dist/esm/store/providers/memory/device-list.store.js +3 -30
- package/dist/esm/store/providers/memory/message.store.js +11 -5
- package/dist/esm/store/providers/memory/participants.store.js +1 -8
- package/dist/esm/store/providers/memory/sender-key.store.js +5 -7
- package/dist/esm/store/providers/memory/signal.store.js +13 -1
- package/dist/esm/store/providers/memory/thread.store.js +5 -0
- package/dist/esm/store/providers/sqlite/appstate.store.js +82 -1
- package/dist/esm/store/providers/sqlite/connection.js +18 -13
- package/dist/esm/store/providers/sqlite/contact.store.js +31 -18
- package/dist/esm/store/providers/sqlite/device-list.store.js +7 -35
- package/dist/esm/store/providers/sqlite/message.store.js +45 -32
- package/dist/esm/store/providers/sqlite/migrations.js +1 -1
- package/dist/esm/store/providers/sqlite/participants.store.js +1 -9
- package/dist/esm/store/providers/sqlite/retry.store.js +8 -11
- package/dist/esm/store/providers/sqlite/sender-key.store.js +25 -30
- package/dist/esm/store/providers/sqlite/signal.store.js +104 -22
- package/dist/esm/store/providers/sqlite/table-names.js +107 -0
- package/dist/esm/store/providers/sqlite/thread.store.js +35 -22
- package/dist/esm/transport/WaComms.js +25 -23
- package/dist/esm/transport/WaWebSocket.js +115 -12
- package/dist/esm/transport/binary/decoder.js +4 -4
- package/dist/esm/transport/binary/encoder.js +12 -4
- package/dist/esm/transport/index.js +1 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +2 -8
- package/dist/esm/transport/node/WaNodeOrchestrator.js +2 -4
- package/dist/esm/transport/node/WaNodeTransport.js +0 -3
- package/dist/esm/transport/node/builders/{accountSync.js → account-sync.js} +16 -36
- package/dist/esm/transport/node/builders/index.js +2 -1
- package/dist/esm/transport/node/builders/message.js +9 -0
- package/dist/esm/transport/node/builders/pairing.js +4 -5
- package/dist/esm/transport/node/builders/usync.js +41 -0
- package/dist/esm/transport/node/helpers.js +107 -5
- package/dist/esm/transport/node/usync.js +35 -0
- package/dist/esm/transport/noise/WaFrameCodec.js +48 -33
- package/dist/esm/transport/noise/WaNoiseCert.js +3 -6
- package/dist/esm/transport/noise/WaNoiseSession.js +17 -10
- package/dist/esm/transport/proxy.js +27 -0
- package/dist/esm/transport/stream/parse.js +13 -48
- package/dist/esm/util/bytes.js +50 -32
- package/dist/esm/util/coercion.js +6 -14
- package/dist/esm/util/primitives.js +39 -14
- package/dist/infra/log/ConsoleLogger.js +18 -17
- package/dist/infra/log/PinoLogger.js +15 -9
- package/dist/infra/log/types.js +12 -0
- package/dist/infra/perf/BoundedTaskQueue.js +13 -17
- package/dist/media/WaMediaCrypto.js +1 -3
- package/dist/media/WaMediaTransferClient.js +259 -58
- package/dist/media/conn.js +10 -6
- package/dist/media/constants.js +4 -1
- package/dist/message/WaMessageClient.js +5 -14
- package/dist/message/ack.js +6 -6
- package/dist/message/addon-crypto.js +65 -0
- package/dist/message/incoming.js +104 -109
- package/dist/message/index.js +2 -0
- package/dist/message/reporting-token.js +443 -0
- package/dist/message/use-case-secret.js +55 -0
- package/dist/protocol/appstate.js +59 -1
- package/dist/protocol/constants.js +7 -1
- package/dist/protocol/index.js +20 -42
- package/dist/protocol/jid.js +64 -51
- package/dist/protocol/media.js +3 -3
- package/dist/protocol/nodes.js +2 -0
- package/dist/protocol/usync.js +14 -0
- package/dist/retry/index.js +3 -1
- package/dist/retry/outbound.js +6 -7
- package/dist/retry/parse.js +57 -75
- package/dist/retry/replay.js +46 -47
- package/dist/retry/tracker.js +59 -0
- package/dist/signal/api/SignalDeviceSyncApi.js +247 -80
- package/dist/signal/api/SignalDigestSyncApi.js +6 -1
- package/dist/signal/api/SignalIdentitySyncApi.js +49 -34
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +67 -59
- package/dist/signal/api/SignalSessionSyncApi.js +23 -30
- package/dist/signal/crypto/WaAdvSignature.js +2 -4
- package/dist/signal/group/SenderKeyChain.js +27 -22
- package/dist/signal/group/SenderKeyCodec.js +1 -3
- package/dist/signal/group/SenderKeyManager.js +26 -16
- package/dist/signal/index.js +3 -1
- package/dist/signal/session/SignalProtocol.js +49 -14
- package/dist/signal/session/SignalRatchet.js +24 -15
- package/dist/signal/session/SignalSession.js +14 -9
- package/dist/signal/session/resolver.js +189 -0
- package/dist/signal/store/sqlite.js +16 -37
- package/dist/store/createStore.js +16 -18
- package/dist/store/noop.store.js +3 -6
- package/dist/store/providers/memory/appstate.store.js +28 -4
- package/dist/store/providers/memory/contact.store.js +5 -0
- package/dist/store/providers/memory/device-list.store.js +3 -30
- package/dist/store/providers/memory/message.store.js +11 -5
- package/dist/store/providers/memory/participants.store.js +1 -8
- package/dist/store/providers/memory/sender-key.store.js +8 -10
- package/dist/store/providers/memory/signal.store.js +21 -9
- package/dist/store/providers/memory/thread.store.js +5 -0
- package/dist/store/providers/sqlite/appstate.store.js +81 -0
- package/dist/store/providers/sqlite/connection.js +18 -13
- package/dist/store/providers/sqlite/contact.store.js +31 -18
- package/dist/store/providers/sqlite/device-list.store.js +7 -35
- package/dist/store/providers/sqlite/message.store.js +45 -32
- package/dist/store/providers/sqlite/migrations.js +1 -1
- package/dist/store/providers/sqlite/participants.store.js +1 -9
- package/dist/store/providers/sqlite/retry.store.js +8 -11
- package/dist/store/providers/sqlite/sender-key.store.js +24 -29
- package/dist/store/providers/sqlite/signal.store.js +105 -23
- package/dist/store/providers/sqlite/table-names.js +113 -0
- package/dist/store/providers/sqlite/thread.store.js +35 -22
- package/dist/transport/WaComms.js +27 -25
- package/dist/transport/WaWebSocket.js +148 -12
- package/dist/transport/binary/decoder.js +4 -4
- package/dist/transport/binary/encoder.js +12 -4
- package/dist/transport/index.js +7 -1
- package/dist/transport/keepalive/WaKeepAlive.js +1 -7
- package/dist/transport/node/WaNodeOrchestrator.js +2 -4
- package/dist/transport/node/WaNodeTransport.js +0 -3
- package/dist/transport/node/builders/{accountSync.js → account-sync.js} +15 -35
- package/dist/transport/node/builders/index.js +12 -9
- package/dist/transport/node/builders/message.js +9 -0
- package/dist/transport/node/builders/pairing.js +4 -5
- package/dist/transport/node/builders/usync.js +45 -0
- package/dist/transport/node/helpers.js +112 -4
- package/dist/transport/node/usync.js +38 -0
- package/dist/transport/noise/WaFrameCodec.js +47 -32
- package/dist/transport/noise/WaNoiseCert.js +5 -8
- package/dist/transport/noise/WaNoiseSession.js +17 -10
- package/dist/transport/proxy.js +34 -0
- package/dist/transport/stream/parse.js +17 -53
- package/dist/types/appstate/WaAppStateCrypto.d.ts +0 -1
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +5 -2
- package/dist/types/appstate/constants.d.ts +1 -0
- package/dist/types/appstate/store/sqlite.d.ts +4 -18
- package/dist/types/appstate/utils.d.ts +0 -1
- package/dist/types/auth/WaAuthClient.d.ts +10 -12
- package/dist/types/auth/index.d.ts +0 -2
- package/dist/types/auth/pairing/WaQrFlow.d.ts +1 -1
- package/dist/types/auth/types.d.ts +6 -9
- package/dist/types/client/WaClient.d.ts +27 -25
- package/dist/types/client/WaClientFactory.d.ts +22 -23
- package/dist/types/client/connection/WaConnectionManager.d.ts +64 -0
- package/dist/types/client/connection/WaKeyShareCoordinator.d.ts +14 -0
- package/dist/types/client/connection/WaReceiptQueue.d.ts +13 -0
- package/dist/types/client/coordinators/WaAppStateMutationCoordinator.d.ts +46 -0
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +0 -1
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +18 -41
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +2 -0
- package/dist/types/client/dirty.d.ts +1 -0
- package/dist/types/client/events/group.d.ts +2 -1
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/messaging/fanout.d.ts +14 -0
- package/dist/types/client/messaging/key-protocol.d.ts +18 -0
- package/dist/types/client/messaging/participants.d.ts +13 -0
- package/dist/types/client/types.d.ts +24 -1
- package/dist/types/crypto/core/hkdf.d.ts +0 -6
- package/dist/types/crypto/core/index.d.ts +0 -1
- package/dist/types/crypto/core/random.d.ts +1 -7
- package/dist/types/crypto/index.d.ts +0 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/infra/log/ConsoleLogger.d.ts +2 -1
- package/dist/types/infra/log/PinoLogger.d.ts +1 -1
- package/dist/types/infra/log/types.d.ts +1 -0
- package/dist/types/infra/perf/BoundedTaskQueue.d.ts +1 -1
- package/dist/types/media/WaMediaTransferClient.d.ts +13 -3
- package/dist/types/media/types.d.ts +5 -0
- package/dist/types/message/addon-crypto.d.ts +25 -0
- package/dist/types/message/index.d.ts +2 -0
- package/dist/types/message/reporting-token.d.ts +19 -0
- package/dist/types/message/use-case-secret.d.ts +20 -0
- package/dist/types/protocol/appstate.d.ts +58 -0
- package/dist/types/protocol/constants.d.ts +2 -1
- package/dist/types/protocol/index.d.ts +2 -10
- package/dist/types/protocol/jid.d.ts +3 -3
- package/dist/types/protocol/nodes.d.ts +2 -0
- package/dist/types/protocol/usync.d.ts +11 -0
- package/dist/types/retry/index.d.ts +1 -0
- package/dist/types/retry/replay.d.ts +0 -4
- package/dist/types/retry/tracker.d.ts +19 -0
- package/dist/types/retry/types.d.ts +4 -3
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +13 -1
- package/dist/types/signal/group/SenderKeyCodec.d.ts +4 -6
- package/dist/types/signal/index.d.ts +1 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +9 -0
- package/dist/types/signal/session/resolver.d.ts +17 -0
- package/dist/types/store/contracts/appstate.store.d.ts +3 -0
- package/dist/types/store/contracts/contact.store.d.ts +1 -0
- package/dist/types/store/contracts/device-list.store.d.ts +0 -3
- package/dist/types/store/contracts/message.store.d.ts +1 -0
- package/dist/types/store/contracts/participants.store.d.ts +0 -1
- package/dist/types/store/contracts/sender-key.store.d.ts +0 -1
- package/dist/types/store/contracts/signal.store.d.ts +6 -0
- package/dist/types/store/contracts/thread.store.d.ts +1 -0
- package/dist/types/store/index.d.ts +1 -1
- package/dist/types/store/providers/memory/appstate.store.d.ts +2 -0
- package/dist/types/store/providers/memory/contact.store.d.ts +1 -0
- package/dist/types/store/providers/memory/device-list.store.d.ts +0 -3
- package/dist/types/store/providers/memory/message.store.d.ts +1 -0
- package/dist/types/store/providers/memory/participants.store.d.ts +0 -1
- package/dist/types/store/providers/memory/sender-key.store.d.ts +0 -1
- package/dist/types/store/providers/memory/signal.store.d.ts +6 -0
- package/dist/types/store/providers/memory/thread.store.d.ts +1 -0
- package/dist/types/store/providers/sqlite/appstate.store.d.ts +2 -0
- package/dist/types/store/providers/sqlite/contact.store.d.ts +2 -0
- package/dist/types/store/providers/sqlite/device-list.store.d.ts +0 -3
- package/dist/types/store/providers/sqlite/message.store.d.ts +2 -0
- package/dist/types/store/providers/sqlite/participants.store.d.ts +0 -1
- package/dist/types/store/providers/sqlite/retry.store.d.ts +0 -1
- package/dist/types/store/providers/sqlite/sender-key.store.d.ts +0 -1
- package/dist/types/store/providers/sqlite/signal.store.d.ts +7 -0
- package/dist/types/store/providers/sqlite/table-names.d.ts +5 -0
- package/dist/types/store/providers/sqlite/thread.store.d.ts +2 -0
- package/dist/types/store/types.d.ts +3 -0
- package/dist/types/transport/WaWebSocket.d.ts +3 -0
- package/dist/types/transport/index.d.ts +2 -1
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +0 -1
- package/dist/types/transport/node/WaNodeTransport.d.ts +0 -9
- package/dist/types/transport/node/builders/group.d.ts +4 -6
- package/dist/types/transport/node/builders/index.d.ts +2 -1
- package/dist/types/transport/node/builders/message.d.ts +14 -25
- package/dist/types/transport/node/builders/retry.d.ts +2 -4
- package/dist/types/transport/node/builders/usync.d.ts +21 -0
- package/dist/types/transport/node/helpers.d.ts +8 -0
- package/dist/types/transport/node/usync.d.ts +2 -0
- package/dist/types/transport/noise/WaFrameCodec.d.ts +3 -0
- package/dist/types/transport/noise/WaNoiseSession.d.ts +1 -0
- package/dist/types/transport/proxy.d.ts +6 -0
- package/dist/types/transport/stream/parse.d.ts +0 -1
- package/dist/types/transport/types.d.ts +18 -1
- package/dist/types/util/bytes.d.ts +5 -0
- package/dist/types/util/primitives.d.ts +3 -0
- package/dist/util/bytes.js +55 -33
- package/dist/util/coercion.js +6 -14
- package/dist/util/primitives.js +42 -14
- package/package.json +26 -5
- package/dist/crypto/core/encoding.js +0 -29
- package/dist/esm/crypto/core/encoding.js +0 -25
- package/dist/esm/util/base64.js +0 -18
- package/dist/esm/util/signal-address.js +0 -5
- package/dist/types/crypto/core/encoding.d.ts +0 -11
- package/dist/types/util/base64.d.ts +0 -4
- package/dist/types/util/signal-address.d.ts +0 -2
- package/dist/util/base64.js +0 -24
- package/dist/util/signal-address.js +0 -8
- /package/dist/types/transport/node/builders/{accountSync.d.ts → account-sync.d.ts} +0 -0
|
@@ -1,10 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.WaWebSocket = void 0;
|
|
4
37
|
const ConsoleLogger_1 = require("../infra/log/ConsoleLogger");
|
|
5
38
|
const constants_1 = require("../protocol/constants");
|
|
6
39
|
const bytes_1 = require("../util/bytes");
|
|
7
40
|
const primitives_1 = require("../util/primitives");
|
|
41
|
+
const WS_OPTIONAL_MODULE = 'ws';
|
|
42
|
+
function asOptionalNodeWsConstructor(loaded) {
|
|
43
|
+
if (loaded && typeof loaded === 'object') {
|
|
44
|
+
const direct = loaded.WebSocket;
|
|
45
|
+
if (typeof direct === 'function') {
|
|
46
|
+
return direct;
|
|
47
|
+
}
|
|
48
|
+
const fallback = loaded.default;
|
|
49
|
+
if (typeof fallback === 'function') {
|
|
50
|
+
return fallback;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (typeof loaded === 'function') {
|
|
54
|
+
return loaded;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
async function loadOptionalNodeWsConstructor() {
|
|
59
|
+
try {
|
|
60
|
+
const loaded = await Promise.resolve(`${WS_OPTIONAL_MODULE}`).then(s => __importStar(require(s)));
|
|
61
|
+
const constructor = asOptionalNodeWsConstructor(loaded);
|
|
62
|
+
if (constructor) {
|
|
63
|
+
return constructor;
|
|
64
|
+
}
|
|
65
|
+
throw new Error('invalid ws module export');
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
const normalized = (0, primitives_1.toError)(error);
|
|
69
|
+
const code = normalized.code;
|
|
70
|
+
const message = normalized.message ?? '';
|
|
71
|
+
const isModuleNotFound = (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') &&
|
|
72
|
+
(message.includes(`'${WS_OPTIONAL_MODULE}'`) ||
|
|
73
|
+
message.includes(`"${WS_OPTIONAL_MODULE}"`));
|
|
74
|
+
if (isModuleNotFound) {
|
|
75
|
+
throw new Error('optional dependency "ws" is not installed. Install with: npm i ws');
|
|
76
|
+
}
|
|
77
|
+
throw normalized;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
8
80
|
function resolveWebSocketConstructor() {
|
|
9
81
|
const ctor = globalThis
|
|
10
82
|
.WebSocket;
|
|
@@ -16,12 +88,13 @@ function resolveWebSocketConstructor() {
|
|
|
16
88
|
function resolveSocketUrls(config) {
|
|
17
89
|
const preferredUrls = config.urls;
|
|
18
90
|
if (preferredUrls && preferredUrls.length > 0) {
|
|
19
|
-
|
|
91
|
+
const unique = [];
|
|
92
|
+
for (const url of preferredUrls)
|
|
93
|
+
if (unique.indexOf(url) === -1)
|
|
94
|
+
unique.push(url);
|
|
95
|
+
return Object.freeze(unique);
|
|
20
96
|
}
|
|
21
|
-
|
|
22
|
-
return Object.freeze([config.url]);
|
|
23
|
-
}
|
|
24
|
-
return constants_1.WA_DEFAULTS.CHAT_SOCKET_URLS;
|
|
97
|
+
return config.url ? Object.freeze([config.url]) : constants_1.WA_DEFAULTS.CHAT_SOCKET_URLS;
|
|
25
98
|
}
|
|
26
99
|
function resolveSocketRuntime() {
|
|
27
100
|
const maybeNodeProcess = globalThis.process;
|
|
@@ -44,6 +117,7 @@ class WaWebSocket {
|
|
|
44
117
|
this.handlers = {};
|
|
45
118
|
this.socket = null;
|
|
46
119
|
this.closeWaiter = null;
|
|
120
|
+
this.nodeWsCtorPromise = null;
|
|
47
121
|
}
|
|
48
122
|
setHandlers(handlers) {
|
|
49
123
|
this.handlers = handlers;
|
|
@@ -147,7 +221,7 @@ class WaWebSocket {
|
|
|
147
221
|
socket.send(data);
|
|
148
222
|
}
|
|
149
223
|
async openSingle(url) {
|
|
150
|
-
const pending = this.createPendingSocket(url);
|
|
224
|
+
const pending = await this.createPendingSocket(url);
|
|
151
225
|
return new Promise((resolve, reject) => {
|
|
152
226
|
this.bindPendingSocket(pending, {
|
|
153
227
|
onOpen: () => {
|
|
@@ -169,7 +243,20 @@ class WaWebSocket {
|
|
|
169
243
|
});
|
|
170
244
|
}
|
|
171
245
|
async openConcurrently(urls) {
|
|
172
|
-
const
|
|
246
|
+
const setupResults = await Promise.allSettled(urls.map((url) => this.createPendingSocket(url)));
|
|
247
|
+
const pendingSockets = [];
|
|
248
|
+
let setupError = null;
|
|
249
|
+
for (const result of setupResults) {
|
|
250
|
+
if (result.status === 'fulfilled') {
|
|
251
|
+
pendingSockets.push(result.value);
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
setupError = setupError ?? (0, primitives_1.toError)(result.reason);
|
|
255
|
+
}
|
|
256
|
+
if (setupError) {
|
|
257
|
+
this.releasePendingSocketsAfterSetupFailure(pendingSockets);
|
|
258
|
+
throw setupError;
|
|
259
|
+
}
|
|
173
260
|
return new Promise((resolve, reject) => {
|
|
174
261
|
let done = false;
|
|
175
262
|
let failedCount = 0;
|
|
@@ -213,6 +300,14 @@ class WaWebSocket {
|
|
|
213
300
|
}
|
|
214
301
|
});
|
|
215
302
|
}
|
|
303
|
+
releasePendingSocketsAfterSetupFailure(entries) {
|
|
304
|
+
for (const entry of entries) {
|
|
305
|
+
if (!this.settlePendingSocket(entry)) {
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
this.closeSocketSafe(entry.socket, 1000, 'connect_setup_failed');
|
|
309
|
+
}
|
|
310
|
+
}
|
|
216
311
|
bindRuntimeHandlers(socket) {
|
|
217
312
|
socket.onmessage = (event) => {
|
|
218
313
|
void this.handleMessage(event.data);
|
|
@@ -260,8 +355,8 @@ class WaWebSocket {
|
|
|
260
355
|
}
|
|
261
356
|
return null;
|
|
262
357
|
}
|
|
263
|
-
createPendingSocket(url) {
|
|
264
|
-
const socket = this.createRawSocket(url);
|
|
358
|
+
async createPendingSocket(url) {
|
|
359
|
+
const socket = await this.createRawSocket(url);
|
|
265
360
|
socket.binaryType = 'arraybuffer';
|
|
266
361
|
this.connectingSockets.add(socket);
|
|
267
362
|
return {
|
|
@@ -354,12 +449,53 @@ class WaWebSocket {
|
|
|
354
449
|
// no-op
|
|
355
450
|
}
|
|
356
451
|
}
|
|
357
|
-
createRawSocket(url) {
|
|
452
|
+
async createRawSocket(url) {
|
|
358
453
|
const headers = this.config.headers;
|
|
359
|
-
|
|
360
|
-
|
|
454
|
+
const dispatcher = this.config.dispatcher;
|
|
455
|
+
const agent = this.config.agent;
|
|
456
|
+
let hasHeaders = false;
|
|
457
|
+
if (headers) {
|
|
458
|
+
for (const key in headers) {
|
|
459
|
+
if (Object.prototype.hasOwnProperty.call(headers, key)) {
|
|
460
|
+
hasHeaders = true;
|
|
461
|
+
break;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
if (this.socketRuntime === 'node' && agent) {
|
|
466
|
+
const nodeWsCtor = await this.resolveNodeWsConstructor();
|
|
467
|
+
return new nodeWsCtor(url, this.config.protocols, {
|
|
468
|
+
headers,
|
|
469
|
+
agent
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
if (this.socketRuntime === 'node' && (hasHeaders || dispatcher || agent)) {
|
|
473
|
+
const globalWebSocketCtor = globalThis.WebSocket;
|
|
474
|
+
if (globalWebSocketCtor && this.webSocketCtor === globalWebSocketCtor) {
|
|
475
|
+
const init = {
|
|
476
|
+
protocols: this.config.protocols,
|
|
477
|
+
headers,
|
|
478
|
+
dispatcher,
|
|
479
|
+
agent
|
|
480
|
+
};
|
|
481
|
+
return new this.webSocketCtor(url, init);
|
|
482
|
+
}
|
|
483
|
+
return new this.webSocketCtor(url, this.config.protocols, {
|
|
484
|
+
headers,
|
|
485
|
+
dispatcher,
|
|
486
|
+
agent
|
|
487
|
+
});
|
|
361
488
|
}
|
|
362
489
|
return new this.webSocketCtor(url, this.config.protocols);
|
|
363
490
|
}
|
|
491
|
+
async resolveNodeWsConstructor() {
|
|
492
|
+
if (!this.nodeWsCtorPromise) {
|
|
493
|
+
this.nodeWsCtorPromise = loadOptionalNodeWsConstructor().catch((error) => {
|
|
494
|
+
this.nodeWsCtorPromise = null;
|
|
495
|
+
throw error;
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
return this.nodeWsCtorPromise;
|
|
499
|
+
}
|
|
364
500
|
}
|
|
365
501
|
exports.WaWebSocket = WaWebSocket;
|
|
@@ -242,10 +242,10 @@ function decodeNodeInternal(reader) {
|
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
return
|
|
245
|
+
const node = content === null || content === undefined
|
|
246
|
+
? { tag: tagValue, attrs }
|
|
247
|
+
: { tag: tagValue, attrs, content };
|
|
248
|
+
return node;
|
|
249
249
|
}
|
|
250
250
|
function decodeBinaryNode(data) {
|
|
251
251
|
const reader = new ByteReader(data);
|
|
@@ -171,14 +171,22 @@ function writeListSize(size, writer) {
|
|
|
171
171
|
writer.writeUint16(size);
|
|
172
172
|
}
|
|
173
173
|
function writeNodeInternal(node, writer) {
|
|
174
|
-
|
|
174
|
+
let attrsLen = 0;
|
|
175
|
+
for (const key in node.attrs) {
|
|
176
|
+
if (Object.prototype.hasOwnProperty.call(node.attrs, key)) {
|
|
177
|
+
attrsLen += 1;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
175
180
|
const hasContent = node.content !== null && node.content !== undefined;
|
|
176
|
-
const listSize = 1 +
|
|
181
|
+
const listSize = 1 + attrsLen * 2 + (hasContent ? 1 : 0);
|
|
177
182
|
writeListSize(listSize, writer);
|
|
178
183
|
writeString(node.tag, writer);
|
|
179
|
-
for (const
|
|
184
|
+
for (const key in node.attrs) {
|
|
185
|
+
if (!Object.prototype.hasOwnProperty.call(node.attrs, key)) {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
180
188
|
writeString(key, writer);
|
|
181
|
-
writeString(
|
|
189
|
+
writeString(node.attrs[key], writer);
|
|
182
190
|
}
|
|
183
191
|
if (!hasContent) {
|
|
184
192
|
return;
|
package/dist/transport/index.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.queryWithContext = exports.parseIqError = exports.buildIqNode = exports.assertIqResult = exports.WaNodeTransport = exports.WaNodeOrchestrator = exports.WaKeepAlive = exports.WaWebSocket = exports.WaComms = void 0;
|
|
3
|
+
exports.queryWithContext = exports.parseIqError = exports.buildIqNode = exports.assertIqResult = exports.WaNodeTransport = exports.WaNodeOrchestrator = exports.WaKeepAlive = exports.WaWebSocket = exports.WaComms = exports.toProxyDispatcher = exports.toProxyAgent = exports.isProxyTransport = exports.isProxyDispatcher = exports.isProxyAgent = void 0;
|
|
4
|
+
var proxy_1 = require("./proxy");
|
|
5
|
+
Object.defineProperty(exports, "isProxyAgent", { enumerable: true, get: function () { return proxy_1.isProxyAgent; } });
|
|
6
|
+
Object.defineProperty(exports, "isProxyDispatcher", { enumerable: true, get: function () { return proxy_1.isProxyDispatcher; } });
|
|
7
|
+
Object.defineProperty(exports, "isProxyTransport", { enumerable: true, get: function () { return proxy_1.isProxyTransport; } });
|
|
8
|
+
Object.defineProperty(exports, "toProxyAgent", { enumerable: true, get: function () { return proxy_1.toProxyAgent; } });
|
|
9
|
+
Object.defineProperty(exports, "toProxyDispatcher", { enumerable: true, get: function () { return proxy_1.toProxyDispatcher; } });
|
|
4
10
|
var WaComms_1 = require("./WaComms");
|
|
5
11
|
Object.defineProperty(exports, "WaComms", { enumerable: true, get: function () { return WaComms_1.WaComms; } });
|
|
6
12
|
var WaWebSocket_1 = require("./WaWebSocket");
|
|
@@ -15,7 +15,7 @@ class WaKeepAlive {
|
|
|
15
15
|
this.timeoutMs = options.timeoutMs ?? constants_1.WA_DEFAULTS.DEAD_SOCKET_TIMEOUT_MS;
|
|
16
16
|
this.hostDomain = options.hostDomain ?? constants_1.WA_DEFAULTS.HOST_DOMAIN;
|
|
17
17
|
this.jitterRatio = this.normalizeJitterRatio(options.jitterRatio);
|
|
18
|
-
this.minJitterMs =
|
|
18
|
+
this.minJitterMs = (0, primitives_1.normalizeNonNegativeInteger)(options.minJitterMs, KEEPALIVE_DEFAULT_MIN_JITTER_MS);
|
|
19
19
|
this.timer = null;
|
|
20
20
|
this.generation = 0;
|
|
21
21
|
this.inFlight = false;
|
|
@@ -113,12 +113,6 @@ class WaKeepAlive {
|
|
|
113
113
|
const normalized = value;
|
|
114
114
|
return Math.min(Math.max(normalized, 0), KEEPALIVE_MAX_JITTER_RATIO);
|
|
115
115
|
}
|
|
116
|
-
normalizeMinJitterMs(value) {
|
|
117
|
-
if (!Number.isFinite(value)) {
|
|
118
|
-
return KEEPALIVE_DEFAULT_MIN_JITTER_MS;
|
|
119
|
-
}
|
|
120
|
-
return Math.max(0, Math.trunc(value));
|
|
121
|
-
}
|
|
122
116
|
computeNextDelayMs() {
|
|
123
117
|
if (this.intervalMs <= 0) {
|
|
124
118
|
return 0;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WaNodeOrchestrator = void 0;
|
|
4
4
|
const constants_1 = require("../../protocol/constants");
|
|
5
5
|
const primitives_1 = require("../../util/primitives");
|
|
6
|
+
const helpers_1 = require("./helpers");
|
|
6
7
|
class WaNodeOrchestrator {
|
|
7
8
|
constructor(options) {
|
|
8
9
|
this.logger = options.logger;
|
|
@@ -136,10 +137,7 @@ class WaNodeOrchestrator {
|
|
|
136
137
|
return this.stanzaPrefix;
|
|
137
138
|
}
|
|
138
139
|
generateStanzaPrefix() {
|
|
139
|
-
const
|
|
140
|
-
const left = seed[0] * 256 + seed[1];
|
|
141
|
-
const right = seed[2] * 256 + seed[3];
|
|
142
|
-
const prefix = `${left}.${right}-`;
|
|
140
|
+
const prefix = (0, helpers_1.formatNodeIdPrefixFromSeed)(crypto.getRandomValues(new Uint8Array(4)));
|
|
143
141
|
this.logger.debug('generated stanza prefix', { prefix });
|
|
144
142
|
return prefix;
|
|
145
143
|
}
|
|
@@ -12,9 +12,6 @@ class WaNodeTransport extends node_events_1.EventEmitter {
|
|
|
12
12
|
this.logger = logger;
|
|
13
13
|
this.comms = null;
|
|
14
14
|
}
|
|
15
|
-
on(event, listener) {
|
|
16
|
-
return super.on(event, listener);
|
|
17
|
-
}
|
|
18
15
|
bindComms(comms) {
|
|
19
16
|
this.comms = comms;
|
|
20
17
|
this.logger.debug('node transport bindComms', { connected: comms !== null });
|
|
@@ -8,44 +8,24 @@ exports.buildGroupsDirtySyncIq = buildGroupsDirtySyncIq;
|
|
|
8
8
|
exports.buildNewsletterMetadataSyncIq = buildNewsletterMetadataSyncIq;
|
|
9
9
|
exports.buildClearDirtyBitsIq = buildClearDirtyBitsIq;
|
|
10
10
|
const constants_1 = require("../../../protocol/constants");
|
|
11
|
+
const usync_1 = require("../../node/builders/usync");
|
|
11
12
|
const query_1 = require("../../node/query");
|
|
12
13
|
function buildAccountDevicesSyncIq(userJids, sid) {
|
|
13
|
-
return (0,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
context: constants_1.WA_NODE_TAGS.NOTIFICATION
|
|
22
|
-
},
|
|
23
|
-
content: [
|
|
24
|
-
{
|
|
25
|
-
tag: constants_1.WA_NODE_TAGS.QUERY,
|
|
26
|
-
attrs: {},
|
|
27
|
-
content: [
|
|
28
|
-
{
|
|
29
|
-
tag: constants_1.WA_NODE_TAGS.DEVICES,
|
|
30
|
-
attrs: {
|
|
31
|
-
version: '2'
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
tag: constants_1.WA_NODE_TAGS.LIST,
|
|
38
|
-
attrs: {},
|
|
39
|
-
content: userJids.map((jid) => ({
|
|
40
|
-
tag: constants_1.WA_NODE_TAGS.USER,
|
|
41
|
-
attrs: {
|
|
42
|
-
jid
|
|
43
|
-
}
|
|
44
|
-
}))
|
|
14
|
+
return (0, usync_1.buildUsyncIq)({
|
|
15
|
+
sid,
|
|
16
|
+
context: constants_1.WA_USYNC_CONTEXTS.NOTIFICATION,
|
|
17
|
+
queryProtocolNodes: [
|
|
18
|
+
{
|
|
19
|
+
tag: constants_1.WA_NODE_TAGS.DEVICES,
|
|
20
|
+
attrs: {
|
|
21
|
+
version: '2'
|
|
45
22
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
users: userJids.map((jid) => ({
|
|
26
|
+
jid
|
|
27
|
+
}))
|
|
28
|
+
});
|
|
49
29
|
}
|
|
50
30
|
function buildAccountPictureSyncIq(meJid) {
|
|
51
31
|
return (0, query_1.buildIqNode)('get', constants_1.WA_DEFAULTS.HOST_DOMAIN, constants_1.WA_XMLNS.PROFILE_PICTURE, [
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildLeaveGroupIq = exports.buildGroupParticipantChangeIq = exports.buildCreateGroupIq = exports.buildSignedPreKeyRotateIq = exports.buildPreKeyUploadIq = exports.buildMissingPreKeysFetchIq = exports.buildRetryReceiptNode = exports.buildInboundRetryReceiptAckNode = exports.buildInboundRetryReceiptNode = exports.buildInboundReceiptAckNode = exports.buildInboundMessageAckNode = exports.buildInboundDeliveryReceiptNode = exports.buildGroupSenderKeyMessageNode = exports.buildGroupRetryMessageNode = exports.buildGroupDirectMessageNode = exports.buildDirectMessageFanoutNode = exports.buildMediaConnIq = exports.buildNotificationAckNode = exports.buildIqResultNode = exports.buildGetCountryCodeRequestNode = exports.buildCompanionHelloRequestNode = exports.buildCompanionFinishRequestNode = exports.buildNewsletterMetadataSyncIq = exports.buildGroupsDirtySyncIq = exports.buildClearDirtyBitsIq = exports.buildAccountPrivacySyncIq = exports.buildAccountPictureSyncIq = exports.buildAccountDevicesSyncIq = exports.buildAccountBlocklistSyncIq = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "buildAccountBlocklistSyncIq", { enumerable: true, get: function () { return
|
|
6
|
-
Object.defineProperty(exports, "buildAccountDevicesSyncIq", { enumerable: true, get: function () { return
|
|
7
|
-
Object.defineProperty(exports, "buildAccountPictureSyncIq", { enumerable: true, get: function () { return
|
|
8
|
-
Object.defineProperty(exports, "buildAccountPrivacySyncIq", { enumerable: true, get: function () { return
|
|
9
|
-
Object.defineProperty(exports, "buildClearDirtyBitsIq", { enumerable: true, get: function () { return
|
|
10
|
-
Object.defineProperty(exports, "buildGroupsDirtySyncIq", { enumerable: true, get: function () { return
|
|
11
|
-
Object.defineProperty(exports, "buildNewsletterMetadataSyncIq", { enumerable: true, get: function () { return
|
|
3
|
+
exports.buildUsyncUserNode = exports.buildUsyncIq = exports.buildLeaveGroupIq = exports.buildGroupParticipantChangeIq = exports.buildCreateGroupIq = exports.buildSignedPreKeyRotateIq = exports.buildPreKeyUploadIq = exports.buildMissingPreKeysFetchIq = exports.buildRetryReceiptNode = exports.buildInboundRetryReceiptAckNode = exports.buildInboundRetryReceiptNode = exports.buildInboundReceiptAckNode = exports.buildInboundMessageAckNode = exports.buildInboundDeliveryReceiptNode = exports.buildGroupSenderKeyMessageNode = exports.buildGroupRetryMessageNode = exports.buildGroupDirectMessageNode = exports.buildDirectMessageFanoutNode = exports.buildMediaConnIq = exports.buildNotificationAckNode = exports.buildIqResultNode = exports.buildGetCountryCodeRequestNode = exports.buildCompanionHelloRequestNode = exports.buildCompanionFinishRequestNode = exports.buildNewsletterMetadataSyncIq = exports.buildGroupsDirtySyncIq = exports.buildClearDirtyBitsIq = exports.buildAccountPrivacySyncIq = exports.buildAccountPictureSyncIq = exports.buildAccountDevicesSyncIq = exports.buildAccountBlocklistSyncIq = void 0;
|
|
4
|
+
var account_sync_1 = require("../../node/builders/account-sync");
|
|
5
|
+
Object.defineProperty(exports, "buildAccountBlocklistSyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountBlocklistSyncIq; } });
|
|
6
|
+
Object.defineProperty(exports, "buildAccountDevicesSyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountDevicesSyncIq; } });
|
|
7
|
+
Object.defineProperty(exports, "buildAccountPictureSyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountPictureSyncIq; } });
|
|
8
|
+
Object.defineProperty(exports, "buildAccountPrivacySyncIq", { enumerable: true, get: function () { return account_sync_1.buildAccountPrivacySyncIq; } });
|
|
9
|
+
Object.defineProperty(exports, "buildClearDirtyBitsIq", { enumerable: true, get: function () { return account_sync_1.buildClearDirtyBitsIq; } });
|
|
10
|
+
Object.defineProperty(exports, "buildGroupsDirtySyncIq", { enumerable: true, get: function () { return account_sync_1.buildGroupsDirtySyncIq; } });
|
|
11
|
+
Object.defineProperty(exports, "buildNewsletterMetadataSyncIq", { enumerable: true, get: function () { return account_sync_1.buildNewsletterMetadataSyncIq; } });
|
|
12
12
|
var pairing_1 = require("../../node/builders/pairing");
|
|
13
13
|
Object.defineProperty(exports, "buildCompanionFinishRequestNode", { enumerable: true, get: function () { return pairing_1.buildCompanionFinishRequestNode; } });
|
|
14
14
|
Object.defineProperty(exports, "buildCompanionHelloRequestNode", { enumerable: true, get: function () { return pairing_1.buildCompanionHelloRequestNode; } });
|
|
@@ -37,3 +37,6 @@ var group_1 = require("../../node/builders/group");
|
|
|
37
37
|
Object.defineProperty(exports, "buildCreateGroupIq", { enumerable: true, get: function () { return group_1.buildCreateGroupIq; } });
|
|
38
38
|
Object.defineProperty(exports, "buildGroupParticipantChangeIq", { enumerable: true, get: function () { return group_1.buildGroupParticipantChangeIq; } });
|
|
39
39
|
Object.defineProperty(exports, "buildLeaveGroupIq", { enumerable: true, get: function () { return group_1.buildLeaveGroupIq; } });
|
|
40
|
+
var usync_1 = require("../../node/builders/usync");
|
|
41
|
+
Object.defineProperty(exports, "buildUsyncIq", { enumerable: true, get: function () { return usync_1.buildUsyncIq; } });
|
|
42
|
+
Object.defineProperty(exports, "buildUsyncUserNode", { enumerable: true, get: function () { return usync_1.buildUsyncUserNode; } });
|
|
@@ -50,6 +50,9 @@ function buildDirectMessageFanoutNode(input) {
|
|
|
50
50
|
content: input.deviceIdentity
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
|
+
if (input.reportingNode) {
|
|
54
|
+
content.push(input.reportingNode);
|
|
55
|
+
}
|
|
53
56
|
return {
|
|
54
57
|
tag: constants_1.WA_MESSAGE_TAGS.MESSAGE,
|
|
55
58
|
attrs,
|
|
@@ -108,6 +111,9 @@ function buildGroupSenderKeyMessageNode(input) {
|
|
|
108
111
|
content: input.deviceIdentity
|
|
109
112
|
});
|
|
110
113
|
}
|
|
114
|
+
if (input.reportingNode) {
|
|
115
|
+
content.push(input.reportingNode);
|
|
116
|
+
}
|
|
111
117
|
return {
|
|
112
118
|
tag: constants_1.WA_MESSAGE_TAGS.MESSAGE,
|
|
113
119
|
attrs,
|
|
@@ -160,6 +166,9 @@ function buildGroupDirectMessageNode(input) {
|
|
|
160
166
|
content: input.deviceIdentity
|
|
161
167
|
});
|
|
162
168
|
}
|
|
169
|
+
if (input.reportingNode) {
|
|
170
|
+
content.push(input.reportingNode);
|
|
171
|
+
}
|
|
163
172
|
return {
|
|
164
173
|
tag: constants_1.WA_MESSAGE_TAGS.MESSAGE,
|
|
165
174
|
attrs,
|
|
@@ -6,8 +6,7 @@ exports.buildCompanionFinishRequestNode = buildCompanionFinishRequestNode;
|
|
|
6
6
|
exports.buildNotificationAckNode = buildNotificationAckNode;
|
|
7
7
|
exports.buildIqResultNode = buildIqResultNode;
|
|
8
8
|
const constants_1 = require("../../../protocol/constants");
|
|
9
|
-
const
|
|
10
|
-
const NOTIFICATION_CLASS = constants_1.WA_NODE_TAGS.NOTIFICATION;
|
|
9
|
+
const bytes_1 = require("../../../util/bytes");
|
|
11
10
|
function buildCompanionHelloRequestNode(args) {
|
|
12
11
|
return {
|
|
13
12
|
tag: constants_1.WA_NODE_TAGS.IQ,
|
|
@@ -50,7 +49,7 @@ function buildCompanionHelloRequestNode(args) {
|
|
|
50
49
|
{
|
|
51
50
|
tag: 'link_code_pairing_nonce',
|
|
52
51
|
attrs: {},
|
|
53
|
-
content:
|
|
52
|
+
content: bytes_1.ZERO_BYTES
|
|
54
53
|
}
|
|
55
54
|
]
|
|
56
55
|
}
|
|
@@ -114,8 +113,8 @@ function buildCompanionFinishRequestNode(args) {
|
|
|
114
113
|
function buildNotificationAckNode(node, typeOverride) {
|
|
115
114
|
const attrs = {
|
|
116
115
|
to: node.attrs.from ?? constants_1.WA_DEFAULTS.HOST_DOMAIN,
|
|
117
|
-
class:
|
|
118
|
-
type: typeOverride ?? node.attrs.type ??
|
|
116
|
+
class: constants_1.WA_NODE_TAGS.NOTIFICATION,
|
|
117
|
+
type: typeOverride ?? node.attrs.type ?? constants_1.WA_NODE_TAGS.NOTIFICATION
|
|
119
118
|
};
|
|
120
119
|
if (node.attrs.id) {
|
|
121
120
|
attrs.id = node.attrs.id;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildUsyncUserNode = buildUsyncUserNode;
|
|
4
|
+
exports.buildUsyncIq = buildUsyncIq;
|
|
5
|
+
const constants_1 = require("../../../protocol/constants");
|
|
6
|
+
const query_1 = require("../../node/query");
|
|
7
|
+
function buildUsyncUserNode(input) {
|
|
8
|
+
return {
|
|
9
|
+
tag: constants_1.WA_NODE_TAGS.USER,
|
|
10
|
+
attrs: {
|
|
11
|
+
...input.attrs,
|
|
12
|
+
jid: input.jid
|
|
13
|
+
},
|
|
14
|
+
...(input.content !== undefined ? { content: input.content } : {})
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function buildUsyncIq(input) {
|
|
18
|
+
if (input.queryProtocolNodes.length === 0) {
|
|
19
|
+
throw new Error('usync query must include at least one protocol node');
|
|
20
|
+
}
|
|
21
|
+
return (0, query_1.buildIqNode)('get', input.hostDomain ?? constants_1.WA_DEFAULTS.HOST_DOMAIN, constants_1.WA_XMLNS.USYNC, [
|
|
22
|
+
{
|
|
23
|
+
tag: constants_1.WA_NODE_TAGS.USYNC,
|
|
24
|
+
attrs: {
|
|
25
|
+
sid: input.sid,
|
|
26
|
+
index: input.index ?? constants_1.WA_USYNC_DEFAULTS.INDEX,
|
|
27
|
+
last: input.last ?? constants_1.WA_USYNC_DEFAULTS.LAST,
|
|
28
|
+
mode: input.mode ?? constants_1.WA_USYNC_MODES.QUERY,
|
|
29
|
+
context: input.context ?? constants_1.WA_USYNC_CONTEXTS.INTERACTIVE
|
|
30
|
+
},
|
|
31
|
+
content: [
|
|
32
|
+
{
|
|
33
|
+
tag: constants_1.WA_NODE_TAGS.QUERY,
|
|
34
|
+
attrs: {},
|
|
35
|
+
content: [...input.queryProtocolNodes]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
tag: constants_1.WA_NODE_TAGS.LIST,
|
|
39
|
+
attrs: {},
|
|
40
|
+
content: input.users.map((user) => buildUsyncUserNode(user))
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
]);
|
|
45
|
+
}
|