zapo-js 0.3.0 → 1.0.1
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/LICENSE +21 -0
- package/README.md +98 -178
- package/dist/appstate/{WaAppStateCrypto.js → crypto/WaAppStateCrypto.js} +58 -49
- package/dist/appstate/index.js +7 -6
- package/dist/appstate/{encoding.js → parsers/encoding.js} +11 -4
- package/dist/appstate/{response-parser.js → parsers/response-parser.js} +20 -8
- package/dist/appstate/{WaAppStateSyncClient.js → sync/WaAppStateSyncClient.js} +174 -53
- package/dist/appstate/utils.js +16 -0
- package/dist/appstate-spec.js +89 -0
- package/dist/auth/WaAuthClient.js +100 -5
- package/dist/auth/credentials-flow.js +20 -8
- package/dist/auth/pairing/WaPairingFlow.js +35 -26
- package/dist/auth/pairing/pairing-code-crypto.js +17 -19
- package/dist/client/WaClient.js +343 -474
- package/dist/client/WaClientFactory.js +281 -78
- package/dist/client/connection/WaConnectionManager.js +28 -11
- package/dist/client/coordinators/WaAbPropsCoordinator.js +1 -2
- package/dist/client/coordinators/WaAppStateMutationCoordinator.js +663 -143
- package/dist/client/coordinators/WaBotCoordinator.js +345 -0
- package/dist/client/coordinators/WaBroadcastListCoordinator.js +20 -0
- package/dist/client/coordinators/WaBusinessCoordinator.js +81 -171
- package/dist/client/coordinators/WaEmailCoordinator.js +1 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +529 -52
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +97 -12
- package/dist/client/coordinators/WaLowLevelCoordinator.js +41 -0
- package/dist/client/coordinators/WaMessageCoordinator.js +365 -0
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +685 -207
- package/dist/client/coordinators/WaNewsletterCoordinator.js +18 -0
- package/dist/client/coordinators/WaPassiveTasksCoordinator.js +17 -4
- package/dist/client/coordinators/WaPresenceCoordinator.js +21 -0
- package/dist/client/coordinators/WaPrivacyCoordinator.js +7 -5
- package/dist/client/coordinators/WaProfileCoordinator.js +220 -49
- package/dist/client/coordinators/WaRetryCoordinator.js +257 -126
- package/dist/client/coordinators/WaStatusCoordinator.js +49 -0
- package/dist/client/coordinators/WaStreamControlCoordinator.js +8 -9
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +7 -6
- package/dist/client/events/appstate-mutation.js +133 -0
- package/dist/client/events/business.js +375 -0
- package/dist/client/events/call.js +58 -0
- package/dist/client/events/chatstate.js +23 -0
- package/dist/client/events/devices.js +15 -16
- package/dist/client/{dirty.js → events/dirty.js} +33 -19
- package/dist/client/events/group.js +13 -24
- package/dist/client/events/identity.js +2 -1
- package/dist/client/events/incoming.js +502 -0
- package/dist/client/events/mex-notification.js +181 -0
- package/dist/client/events/picture.js +33 -0
- package/dist/client/events/presence.js +44 -0
- package/dist/client/events/receipt.js +26 -0
- package/dist/client/media.js +163 -6
- package/dist/client/messaging/fanout.js +9 -10
- package/dist/client/messaging/{participants.js → group-metadata.js} +93 -44
- package/dist/client/messaging/ignore-key.js +132 -0
- package/dist/client/messaging/key-protocol.js +4 -18
- package/dist/client/messaging/link-preview.js +159 -0
- package/dist/client/messaging/messages.js +671 -0
- package/dist/client/newsletter/admin.js +165 -0
- package/dist/client/newsletter/content.js +253 -0
- package/dist/client/newsletter/discovery.js +115 -0
- package/dist/client/newsletter/messaging.js +197 -0
- package/dist/client/newsletter/mex.js +41 -0
- package/dist/client/newsletter/parse.js +217 -0
- package/dist/client/persistence/WriteBehindPersistence.js +31 -4
- package/dist/client/{history-sync.js → persistence/history-sync.js} +125 -18
- package/dist/client/persistence/mailbox.js +104 -0
- package/dist/client/tokens/cs-token.js +11 -17
- package/dist/crypto/core/hkdf.js +12 -12
- package/dist/crypto/core/index.js +6 -8
- package/dist/crypto/core/keys.js +1 -8
- package/dist/crypto/core/nonce.js +12 -12
- package/dist/crypto/core/primitives.js +123 -93
- package/dist/crypto/core/random.js +6 -0
- package/dist/crypto/core/xeddsa.js +11 -9
- package/dist/crypto/curves/Ed25519.js +32 -21
- package/dist/crypto/curves/X25519.js +70 -34
- package/dist/crypto/curves/constants.js +2 -1
- package/dist/crypto/math/constants.js +1 -2
- package/dist/crypto/math/mod.js +0 -33
- package/dist/esm/appstate/{WaAppStateCrypto.js → crypto/WaAppStateCrypto.js} +58 -49
- package/dist/esm/appstate/index.js +5 -5
- package/dist/esm/appstate/{encoding.js → parsers/encoding.js} +11 -4
- package/dist/esm/appstate/{response-parser.js → parsers/response-parser.js} +20 -8
- package/dist/esm/appstate/{WaAppStateSyncClient.js → sync/WaAppStateSyncClient.js} +174 -52
- package/dist/esm/appstate/utils.js +16 -0
- package/dist/esm/appstate-spec.js +79 -0
- package/dist/esm/auth/WaAuthClient.js +100 -5
- package/dist/esm/auth/credentials-flow.js +18 -6
- package/dist/esm/auth/pairing/WaPairingFlow.js +34 -25
- package/dist/esm/auth/pairing/pairing-code-crypto.js +12 -14
- package/dist/esm/client/WaClient.js +345 -476
- package/dist/esm/client/WaClientFactory.js +282 -79
- package/dist/esm/client/connection/WaConnectionManager.js +28 -11
- package/dist/esm/client/coordinators/WaAbPropsCoordinator.js +2 -3
- package/dist/esm/client/coordinators/WaAppStateMutationCoordinator.js +665 -145
- package/dist/esm/client/coordinators/WaBotCoordinator.js +342 -0
- package/dist/esm/client/coordinators/WaBroadcastListCoordinator.js +17 -0
- package/dist/esm/client/coordinators/WaBusinessCoordinator.js +79 -169
- package/dist/esm/client/coordinators/WaEmailCoordinator.js +1 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +532 -55
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +98 -13
- package/dist/esm/client/coordinators/WaLowLevelCoordinator.js +38 -0
- package/dist/esm/client/coordinators/WaMessageCoordinator.js +361 -0
- package/dist/esm/client/coordinators/WaMessageDispatchCoordinator.js +686 -208
- package/dist/esm/client/coordinators/WaNewsletterCoordinator.js +13 -0
- package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +18 -5
- package/dist/esm/client/coordinators/WaPresenceCoordinator.js +18 -0
- package/dist/esm/client/coordinators/WaPrivacyCoordinator.js +7 -5
- package/dist/esm/client/coordinators/WaProfileCoordinator.js +223 -52
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +258 -127
- package/dist/esm/client/coordinators/WaStatusCoordinator.js +46 -0
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +8 -9
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +7 -6
- package/dist/esm/client/events/appstate-mutation.js +130 -0
- package/dist/esm/client/events/business.js +370 -0
- package/dist/esm/client/events/call.js +55 -0
- package/dist/esm/client/events/chatstate.js +20 -0
- package/dist/esm/client/events/devices.js +15 -16
- package/dist/esm/client/{dirty.js → events/dirty.js} +33 -19
- package/dist/esm/client/events/group.js +14 -25
- package/dist/esm/client/events/identity.js +2 -1
- package/dist/esm/client/events/incoming.js +487 -0
- package/dist/esm/client/events/mex-notification.js +178 -0
- package/dist/esm/client/events/picture.js +30 -0
- package/dist/esm/client/events/presence.js +41 -0
- package/dist/esm/client/events/receipt.js +23 -0
- package/dist/esm/client/media.js +158 -8
- package/dist/esm/client/messaging/fanout.js +10 -11
- package/dist/esm/client/messaging/{participants.js → group-metadata.js} +92 -43
- package/dist/esm/client/messaging/ignore-key.js +126 -0
- package/dist/esm/client/messaging/key-protocol.js +3 -17
- package/dist/esm/client/messaging/link-preview.js +156 -0
- package/dist/esm/client/messaging/messages.js +667 -0
- package/dist/esm/client/newsletter/admin.js +162 -0
- package/dist/esm/client/newsletter/content.js +249 -0
- package/dist/esm/client/newsletter/discovery.js +112 -0
- package/dist/esm/client/newsletter/messaging.js +194 -0
- package/dist/esm/client/newsletter/mex.js +37 -0
- package/dist/esm/client/newsletter/parse.js +200 -0
- package/dist/esm/client/persistence/WriteBehindPersistence.js +31 -4
- package/dist/esm/client/{history-sync.js → persistence/history-sync.js} +124 -18
- package/dist/esm/client/persistence/mailbox.js +101 -0
- package/dist/esm/client/tokens/cs-token.js +12 -18
- package/dist/esm/crypto/core/hkdf.js +14 -14
- package/dist/esm/crypto/core/index.js +2 -2
- package/dist/esm/crypto/core/keys.js +1 -7
- package/dist/esm/crypto/core/nonce.js +11 -11
- package/dist/esm/crypto/core/primitives.js +121 -88
- package/dist/esm/crypto/core/random.js +6 -0
- package/dist/esm/crypto/core/xeddsa.js +11 -9
- package/dist/esm/crypto/curves/Ed25519.js +35 -24
- package/dist/esm/crypto/curves/X25519.js +72 -36
- package/dist/esm/crypto/curves/constants.js +1 -0
- package/dist/esm/crypto/math/constants.js +1 -2
- package/dist/esm/crypto/math/mod.js +0 -32
- package/dist/esm/index.js +7 -2
- package/dist/esm/infra/log/ConsoleLogger.js +30 -6
- package/dist/esm/infra/log/PinoLogger.js +64 -0
- package/dist/esm/infra/log/types.js +4 -2
- package/dist/esm/infra/perf/BackgroundQueue.js +55 -13
- package/dist/esm/media/constants.js +33 -2
- package/dist/esm/media/crypto/WaMediaCrypto.js +374 -0
- package/dist/esm/media/index.js +4 -3
- package/dist/esm/media/sticker/sticker-pack.js +133 -0
- package/dist/esm/media/{WaMediaTransferClient.js → transfer/WaMediaTransferClient.js} +37 -6
- package/dist/esm/media/{conn.js → transfer/conn.js} +10 -5
- package/dist/esm/message/WaMessageClient.js +46 -15
- package/dist/esm/message/addons/link-preview/builder.js +36 -0
- package/dist/esm/message/addons/link-preview/detect.js +55 -0
- package/dist/esm/message/addons/link-preview/fetcher.js +391 -0
- package/dist/esm/message/addons/link-preview/types.js +1 -0
- package/dist/esm/message/context-info.js +123 -0
- package/dist/esm/message/{addon-crypto.js → crypto/addon-crypto.js} +68 -10
- package/dist/esm/message/{icdc.js → crypto/icdc.js} +5 -7
- package/dist/esm/message/crypto/phash.js +133 -0
- package/dist/esm/message/{reporting-token.js → crypto/reporting-token.js} +6 -6
- package/dist/esm/message/{use-case-secret.js → crypto/use-case-secret.js} +20 -3
- package/dist/esm/message/{content.js → encode/content.js} +176 -7
- package/dist/esm/message/encode/media-payload.js +42 -0
- package/dist/esm/message/{padding.js → encode/padding.js} +9 -3
- package/dist/esm/message/index.js +2 -2
- package/dist/esm/message/kinds/bot.js +111 -0
- package/dist/esm/message/kinds/newsletter.js +244 -0
- package/dist/esm/message/kinds/sticker-pack.js +29 -0
- package/dist/esm/message/{ack.js → primitives/ack.js} +8 -1
- package/dist/esm/message/{incoming.js → primitives/incoming.js} +215 -31
- package/dist/esm/message/primitives/peer-data-operation.js +93 -0
- package/dist/esm/mex.js +1 -0
- package/dist/esm/protocol/abprops.js +10 -0
- package/dist/esm/protocol/appstate.js +6 -30
- package/dist/esm/protocol/auth.js +3 -2
- package/dist/esm/protocol/bot.js +77 -0
- package/dist/esm/protocol/browser.js +8 -0
- package/dist/esm/protocol/business.js +19 -0
- package/dist/esm/protocol/call.js +48 -0
- package/dist/esm/protocol/constants.js +8 -2
- package/dist/esm/protocol/defaults.js +3 -0
- package/dist/esm/protocol/index.js +1 -1
- package/dist/esm/protocol/jid.js +102 -5
- package/dist/esm/protocol/media.js +25 -12
- package/dist/esm/protocol/message.js +4 -1
- package/dist/esm/protocol/newsletter.js +61 -0
- package/dist/esm/protocol/nodes.js +22 -2
- package/dist/esm/protocol/notification.js +18 -2
- package/dist/esm/protocol/presence.js +13 -0
- package/dist/esm/protocol/status.js +6 -0
- package/dist/esm/retry/codec.js +5 -0
- package/dist/esm/retry/parse.js +20 -38
- package/dist/esm/retry/reason.js +5 -0
- package/dist/esm/retry/replay.js +131 -37
- package/dist/esm/retry/tracker.js +4 -8
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +69 -20
- package/dist/esm/signal/api/SignalDigestSyncApi.js +7 -2
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +9 -0
- package/dist/esm/signal/api/SignalMissingPreKeysSyncApi.js +24 -63
- package/dist/esm/signal/api/SignalRotateKeyApi.js +10 -0
- package/dist/esm/signal/api/SignalSessionSyncApi.js +23 -51
- package/dist/esm/signal/api/codec.js +52 -1
- package/dist/esm/signal/api/prekeys.js +4 -0
- package/dist/esm/signal/{crypto → attestation}/WaAdvSignature.js +5 -6
- package/dist/esm/signal/constants.js +3 -0
- package/dist/esm/signal/encoding.js +6 -289
- package/dist/esm/signal/group/SenderKeyChain.js +18 -33
- package/dist/esm/signal/group/SenderKeyManager.js +25 -8
- package/dist/esm/signal/group/encoding.js +96 -0
- package/dist/esm/signal/index.js +4 -1
- package/dist/esm/signal/registration/encoding.js +34 -0
- package/dist/esm/signal/registration/keygen.js +10 -0
- package/dist/esm/signal/registration/utils.js +8 -1
- package/dist/esm/signal/session/SignalProtocol.js +113 -11
- package/dist/esm/signal/session/SignalRatchet.js +29 -58
- package/dist/esm/signal/session/SignalSession.js +7 -14
- package/dist/esm/signal/session/encoding.js +173 -0
- package/dist/esm/signal/session/resolver.js +139 -30
- package/dist/esm/store/cache/identity.cache.js +75 -0
- package/dist/esm/store/cache/privacy-token.cache.js +57 -0
- package/dist/esm/store/cache/sender-key.cache.js +101 -0
- package/dist/esm/store/cache/session.cache.js +92 -0
- package/dist/esm/store/contracts/group-metadata.store.js +1 -0
- package/dist/esm/store/createStore.js +91 -37
- package/dist/esm/store/index.js +15 -14
- package/dist/esm/store/locks/contact.lock.js +1 -0
- package/dist/esm/store/locks/device-list.lock.js +1 -0
- package/dist/esm/store/locks/group-metadata.lock.js +20 -0
- package/dist/esm/store/locks/pre-key.lock.js +4 -1
- package/dist/esm/store/{providers/memory → memory}/appstate.store.js +5 -5
- package/dist/esm/store/memory/auth.store.js +24 -0
- package/dist/esm/store/memory/contact.store.js +79 -0
- package/dist/esm/store/memory/device-list.store.js +103 -0
- package/dist/esm/store/{providers/memory/participants.store.js → memory/group-metadata.store.js} +22 -13
- package/dist/esm/store/{providers/memory → memory}/identity.store.js +3 -3
- package/dist/esm/store/{providers/memory → memory}/message-secret.store.js +17 -8
- package/dist/esm/store/{providers/memory → memory}/message.store.js +2 -2
- package/dist/esm/store/{providers/memory → memory}/pre-key.store.js +2 -2
- package/dist/esm/store/{providers/memory → memory}/privacy-token.store.js +1 -1
- package/dist/esm/store/{providers/memory → memory}/retry.store.js +28 -7
- package/dist/esm/store/{providers/memory → memory}/sender-key.store.js +3 -3
- package/dist/esm/store/{providers/memory → memory}/session.store.js +3 -3
- package/dist/esm/store/{providers/memory → memory}/thread.store.js +2 -2
- package/dist/esm/store/noop.store.js +6 -4
- package/dist/esm/transport/WaComms.js +14 -5
- package/dist/esm/transport/WaWebSocket.js +32 -8
- package/dist/esm/transport/binary/constants.js +10 -4
- package/dist/esm/transport/binary/decoder.js +21 -15
- package/dist/esm/transport/binary/encoder.js +96 -21
- package/dist/esm/transport/binary/tokens.js +12 -12
- package/dist/esm/transport/index.js +1 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +18 -4
- package/dist/esm/transport/node/WaMobileTcpSocket.js +6 -0
- package/dist/esm/transport/node/WaNodeOrchestrator.js +9 -5
- package/dist/esm/transport/node/WaNodeTransport.js +13 -0
- package/dist/esm/transport/node/builders/abprops.js +2 -2
- package/dist/esm/transport/node/builders/account-sync.js +7 -15
- package/dist/esm/transport/node/builders/bot.js +38 -0
- package/dist/esm/transport/node/builders/business.js +30 -30
- package/dist/esm/transport/node/builders/chatstate.js +28 -0
- package/dist/esm/transport/node/builders/community.js +53 -0
- package/dist/esm/transport/node/builders/device.js +2 -2
- package/dist/esm/transport/node/builders/email.js +6 -5
- package/dist/esm/transport/node/builders/global.js +1 -1
- package/dist/esm/transport/node/builders/group.js +114 -4
- package/dist/esm/transport/node/builders/media.js +2 -2
- package/dist/esm/transport/node/builders/message.js +83 -49
- package/dist/esm/transport/node/builders/newsletter.js +176 -0
- package/dist/esm/transport/node/builders/passive.js +7 -0
- package/dist/esm/transport/node/builders/prekeys.js +4 -4
- package/dist/esm/transport/node/builders/presence.js +27 -1
- package/dist/esm/transport/node/builders/privacy-token.js +2 -2
- package/dist/esm/transport/node/builders/privacy.js +6 -6
- package/dist/esm/transport/node/builders/profile.js +28 -8
- package/dist/esm/transport/node/builders/tos.js +58 -0
- package/dist/esm/transport/node/builders/usync.js +51 -2
- package/dist/esm/transport/node/helpers.js +3 -1
- package/dist/esm/transport/node/mex/argo-decoder.js +2 -2
- package/dist/esm/transport/node/mex/client.js +22 -0
- package/dist/esm/transport/node/query.js +17 -0
- package/dist/esm/transport/node/usync.js +12 -0
- package/dist/esm/transport/noise/WaClientPayload.js +8 -8
- package/dist/esm/transport/noise/WaMobileClientPayload.js +5 -0
- package/dist/esm/transport/noise/WaNoiseCert.js +5 -0
- package/dist/esm/transport/noise/WaNoiseHandshake.js +27 -25
- package/dist/esm/transport/noise/WaNoiseSession.js +39 -59
- package/dist/esm/transport/noise/WaNoiseSocket.js +19 -13
- package/dist/esm/transport/noise/constants.js +0 -1
- package/dist/esm/transport/proxy.js +5 -0
- package/dist/esm/transport/stream/parse.js +3 -7
- package/dist/esm/transport/wa-web-version-fetcher.js +91 -0
- package/dist/esm/util/async.js +4 -0
- package/dist/esm/util/bytes.js +37 -2
- package/dist/esm/util/clock.js +15 -0
- package/dist/esm/util/coercion.js +45 -3
- package/dist/esm/util/collections.js +11 -0
- package/dist/esm/util/index.js +2 -2
- package/dist/esm/util/primitives.js +19 -0
- package/dist/esm/util/runtime.js +5 -0
- package/dist/esm/version-spec.js +1 -0
- package/dist/index.js +35 -5
- package/dist/infra/log/ConsoleLogger.js +30 -6
- package/dist/infra/log/PinoLogger.js +64 -0
- package/dist/infra/log/types.js +4 -2
- package/dist/infra/perf/BackgroundQueue.js +55 -13
- package/dist/media/constants.js +34 -3
- package/dist/media/crypto/WaMediaCrypto.js +378 -0
- package/dist/media/index.js +9 -4
- package/dist/media/sticker/sticker-pack.js +136 -0
- package/dist/media/{WaMediaTransferClient.js → transfer/WaMediaTransferClient.js} +37 -6
- package/dist/media/{conn.js → transfer/conn.js} +10 -5
- package/dist/message/WaMessageClient.js +46 -15
- package/dist/message/addons/link-preview/builder.js +39 -0
- package/dist/message/addons/link-preview/detect.js +58 -0
- package/dist/message/addons/link-preview/fetcher.js +394 -0
- package/dist/message/addons/link-preview/types.js +2 -0
- package/dist/message/context-info.js +129 -0
- package/dist/message/{addon-crypto.js → crypto/addon-crypto.js} +68 -10
- package/dist/message/{icdc.js → crypto/icdc.js} +5 -7
- package/dist/message/crypto/phash.js +136 -0
- package/dist/message/{reporting-token.js → crypto/reporting-token.js} +6 -6
- package/dist/message/{use-case-secret.js → crypto/use-case-secret.js} +20 -3
- package/dist/message/{content.js → encode/content.js} +192 -7
- package/dist/message/encode/media-payload.js +45 -0
- package/dist/message/{padding.js → encode/padding.js} +9 -3
- package/dist/message/index.js +2 -2
- package/dist/message/kinds/bot.js +120 -0
- package/dist/message/kinds/newsletter.js +248 -0
- package/dist/message/kinds/sticker-pack.js +34 -0
- package/dist/message/{ack.js → primitives/ack.js} +8 -1
- package/dist/message/{incoming.js → primitives/incoming.js} +216 -31
- package/dist/message/primitives/peer-data-operation.js +96 -0
- package/dist/mex.js +6 -0
- package/dist/proto.js +1 -1
- package/dist/protocol/abprops.js +10 -0
- package/dist/protocol/appstate.js +7 -31
- package/dist/protocol/auth.js +3 -2
- package/dist/protocol/bot.js +81 -0
- package/dist/protocol/browser.js +8 -0
- package/dist/protocol/business.js +22 -0
- package/dist/protocol/call.js +51 -0
- package/dist/protocol/constants.js +39 -3
- package/dist/protocol/defaults.js +3 -0
- package/dist/protocol/index.js +12 -3
- package/dist/protocol/jid.js +107 -5
- package/dist/protocol/media.js +25 -12
- package/dist/protocol/message.js +4 -1
- package/dist/protocol/newsletter.js +64 -0
- package/dist/protocol/nodes.js +22 -2
- package/dist/protocol/notification.js +19 -3
- package/dist/protocol/presence.js +16 -0
- package/dist/protocol/status.js +9 -0
- package/dist/retry/codec.js +5 -0
- package/dist/retry/parse.js +16 -34
- package/dist/retry/reason.js +5 -0
- package/dist/retry/replay.js +130 -36
- package/dist/retry/tracker.js +3 -7
- package/dist/signal/api/SignalDeviceSyncApi.js +67 -18
- package/dist/signal/api/SignalDigestSyncApi.js +7 -2
- package/dist/signal/api/SignalIdentitySyncApi.js +9 -0
- package/dist/signal/api/SignalMissingPreKeysSyncApi.js +21 -60
- package/dist/signal/api/SignalRotateKeyApi.js +10 -0
- package/dist/signal/api/SignalSessionSyncApi.js +20 -48
- package/dist/signal/api/codec.js +52 -0
- package/dist/signal/api/prekeys.js +4 -0
- package/dist/signal/{crypto → attestation}/WaAdvSignature.js +6 -8
- package/dist/signal/constants.js +4 -1
- package/dist/signal/encoding.js +5 -303
- package/dist/signal/group/SenderKeyChain.js +18 -33
- package/dist/signal/group/SenderKeyCodec.js +2 -2
- package/dist/signal/group/SenderKeyManager.js +26 -9
- package/dist/signal/group/encoding.js +101 -0
- package/dist/signal/index.js +13 -10
- package/dist/signal/registration/encoding.js +39 -0
- package/dist/signal/registration/keygen.js +11 -1
- package/dist/signal/registration/utils.js +8 -1
- package/dist/signal/session/SignalProtocol.js +113 -11
- package/dist/signal/session/SignalRatchet.js +26 -56
- package/dist/signal/session/SignalSerializer.js +2 -2
- package/dist/signal/session/SignalSession.js +7 -15
- package/dist/signal/session/encoding.js +183 -0
- package/dist/signal/session/resolver.js +139 -30
- package/dist/store/cache/identity.cache.js +78 -0
- package/dist/store/cache/privacy-token.cache.js +60 -0
- package/dist/store/cache/sender-key.cache.js +104 -0
- package/dist/store/cache/session.cache.js +95 -0
- package/dist/store/contracts/group-metadata.store.js +2 -0
- package/dist/store/createStore.js +90 -36
- package/dist/store/index.js +18 -16
- package/dist/store/locks/contact.lock.js +1 -0
- package/dist/store/locks/device-list.lock.js +1 -0
- package/dist/store/locks/group-metadata.lock.js +23 -0
- package/dist/store/locks/pre-key.lock.js +4 -1
- package/dist/store/{providers/memory → memory}/appstate.store.js +5 -5
- package/dist/store/memory/auth.store.js +28 -0
- package/dist/store/memory/contact.store.js +83 -0
- package/dist/store/memory/device-list.store.js +107 -0
- package/dist/store/{providers/memory/participants.store.js → memory/group-metadata.store.js} +24 -15
- package/dist/store/{providers/memory → memory}/identity.store.js +3 -3
- package/dist/store/{providers/memory → memory}/message-secret.store.js +17 -8
- package/dist/store/{providers/memory → memory}/message.store.js +2 -2
- package/dist/store/{providers/memory → memory}/pre-key.store.js +2 -2
- package/dist/store/{providers/memory → memory}/privacy-token.store.js +1 -1
- package/dist/store/{providers/memory → memory}/retry.store.js +28 -7
- package/dist/store/{providers/memory → memory}/sender-key.store.js +3 -3
- package/dist/store/{providers/memory → memory}/session.store.js +3 -3
- package/dist/store/{providers/memory → memory}/thread.store.js +2 -2
- package/dist/store/noop.store.js +7 -5
- package/dist/transport/WaComms.js +14 -5
- package/dist/transport/WaWebSocket.js +32 -8
- package/dist/transport/binary/constants.js +11 -5
- package/dist/transport/binary/decoder.js +24 -18
- package/dist/transport/binary/encoder.js +109 -34
- package/dist/transport/binary/tokens.js +12 -12
- package/dist/transport/index.js +3 -1
- package/dist/transport/keepalive/WaKeepAlive.js +18 -4
- package/dist/transport/node/WaMobileTcpSocket.js +6 -0
- package/dist/transport/node/WaNodeOrchestrator.js +9 -5
- package/dist/transport/node/WaNodeTransport.js +13 -0
- package/dist/transport/node/builders/abprops.js +1 -1
- package/dist/transport/node/builders/account-sync.js +7 -16
- package/dist/transport/node/builders/bot.js +43 -0
- package/dist/transport/node/builders/business.js +31 -31
- package/dist/transport/node/builders/chatstate.js +31 -0
- package/dist/transport/node/builders/community.js +59 -0
- package/dist/transport/node/builders/device.js +1 -1
- package/dist/transport/node/builders/email.js +6 -5
- package/dist/transport/node/builders/global.js +2 -2
- package/dist/transport/node/builders/group.js +121 -3
- package/dist/transport/node/builders/media.js +1 -1
- package/dist/transport/node/builders/message.js +84 -49
- package/dist/transport/node/builders/newsletter.js +183 -0
- package/dist/transport/node/builders/passive.js +10 -0
- package/dist/transport/node/builders/prekeys.js +3 -3
- package/dist/transport/node/builders/presence.js +28 -1
- package/dist/transport/node/builders/privacy-token.js +1 -1
- package/dist/transport/node/builders/privacy.js +5 -5
- package/dist/transport/node/builders/profile.js +30 -7
- package/dist/transport/node/builders/tos.js +63 -0
- package/dist/transport/node/builders/usync.js +52 -1
- package/dist/transport/node/helpers.js +3 -2
- package/dist/transport/node/mex/argo-decoder.js +2 -2
- package/dist/transport/node/mex/client.js +23 -0
- package/dist/transport/node/query.js +17 -0
- package/dist/transport/node/usync.js +13 -0
- package/dist/transport/noise/WaClientPayload.js +9 -9
- package/dist/transport/noise/WaMobileClientPayload.js +6 -1
- package/dist/transport/noise/WaNoiseCert.js +7 -2
- package/dist/transport/noise/WaNoiseHandshake.js +26 -24
- package/dist/transport/noise/WaNoiseSession.js +41 -61
- package/dist/transport/noise/WaNoiseSocket.js +19 -13
- package/dist/transport/noise/constants.js +1 -2
- package/dist/transport/proxy.js +5 -0
- package/dist/transport/stream/parse.js +3 -7
- package/dist/transport/wa-web-version-fetcher.js +94 -0
- package/dist/types/appstate/constants.d.ts +1 -1
- package/dist/types/appstate/{WaAppStateCrypto.d.ts → crypto/WaAppStateCrypto.d.ts} +26 -9
- package/dist/types/appstate/index.d.ts +5 -5
- package/dist/types/appstate/{encoding.d.ts → parsers/encoding.d.ts} +8 -1
- package/dist/types/appstate/{response-parser.d.ts → parsers/response-parser.d.ts} +13 -3
- package/dist/types/appstate/sync/WaAppStateSyncClient.d.ts +105 -0
- package/dist/types/appstate/types.d.ts +1 -1
- package/dist/types/appstate/utils.d.ts +18 -2
- package/dist/types/appstate-spec.d.ts +24 -0
- package/dist/types/auth/WaAuthClient.d.ts +89 -3
- package/dist/types/auth/credentials-flow.d.ts +4 -3
- package/dist/types/auth/pairing/pairing-code-crypto.d.ts +0 -1
- package/dist/types/auth/types.d.ts +49 -2
- package/dist/types/client/WaClient.d.ts +178 -71
- package/dist/types/client/WaClientFactory.d.ts +30 -5
- package/dist/types/client/connection/WaConnectionManager.d.ts +4 -2
- package/dist/types/client/connection/WaReceiptQueue.d.ts +1 -1
- package/dist/types/client/coordinators/WaAppStateMutationCoordinator.d.ts +215 -5
- package/dist/types/client/coordinators/WaBotCoordinator.d.ts +117 -0
- package/dist/types/client/coordinators/WaBroadcastListCoordinator.d.ts +39 -0
- package/dist/types/client/coordinators/WaBusinessCoordinator.d.ts +44 -43
- package/dist/types/client/coordinators/WaEmailCoordinator.d.ts +16 -0
- package/dist/types/client/coordinators/WaGroupCoordinator.d.ts +311 -9
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +11 -4
- package/dist/types/client/coordinators/WaLowLevelCoordinator.d.ts +47 -0
- package/dist/types/client/coordinators/WaMessageCoordinator.d.ts +232 -0
- package/dist/types/client/coordinators/WaMessageDispatchCoordinator.d.ts +55 -32
- package/dist/types/client/coordinators/WaNewsletterCoordinator.d.ts +13 -0
- package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +4 -3
- package/dist/types/client/coordinators/WaPresenceCoordinator.d.ts +27 -0
- package/dist/types/client/coordinators/WaPrivacyCoordinator.d.ts +27 -0
- package/dist/types/client/coordinators/WaProfileCoordinator.d.ts +113 -0
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +19 -17
- package/dist/types/client/coordinators/WaStatusCoordinator.d.ts +42 -0
- package/dist/types/client/coordinators/WaTrustedContactTokenCoordinator.d.ts +5 -1
- package/dist/types/client/events/abprops.d.ts +2 -1
- package/dist/types/client/events/appstate-mutation.d.ts +3 -0
- package/dist/types/client/events/business.d.ts +10 -0
- package/dist/types/client/events/call.d.ts +31 -0
- package/dist/types/client/events/chatstate.d.ts +9 -0
- package/dist/types/client/events/devices.d.ts +5 -4
- package/dist/types/client/{dirty.d.ts → events/dirty.d.ts} +4 -3
- package/dist/types/client/events/group.d.ts +2 -1
- package/dist/types/client/events/identity.d.ts +2 -1
- package/dist/types/client/{incoming.d.ts → events/incoming.d.ts} +27 -4
- package/dist/types/client/events/mex-notification.d.ts +6 -0
- package/dist/types/client/events/picture.d.ts +8 -0
- package/dist/types/client/events/presence.d.ts +28 -0
- package/dist/types/client/events/receipt.d.ts +14 -0
- package/dist/types/client/events/registration.d.ts +4 -3
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/media.d.ts +35 -1
- package/dist/types/client/messaging/fanout.d.ts +2 -2
- package/dist/types/client/messaging/group-metadata.d.ts +19 -0
- package/dist/types/client/messaging/ignore-key.d.ts +11 -0
- package/dist/types/client/messaging/key-protocol.d.ts +9 -7
- package/dist/types/client/messaging/link-preview.d.ts +19 -0
- package/dist/types/client/messaging/messages.d.ts +28 -0
- package/dist/types/client/newsletter/admin.d.ts +71 -0
- package/dist/types/client/newsletter/content.d.ts +42 -0
- package/dist/types/client/newsletter/discovery.d.ts +33 -0
- package/dist/types/client/newsletter/messaging.d.ts +66 -0
- package/dist/types/client/newsletter/mex.d.ts +14 -0
- package/dist/types/client/newsletter/parse.d.ts +19 -0
- package/dist/types/client/newsletter/types.d.ts +190 -0
- package/dist/types/client/persistence/WriteBehindPersistence.d.ts +12 -1
- package/dist/types/client/persistence/history-sync.d.ts +29 -0
- package/dist/types/client/{mailbox.d.ts → persistence/mailbox.d.ts} +4 -4
- package/dist/types/client/tokens/cs-token.d.ts +1 -3
- package/dist/types/client/types.d.ts +844 -72
- package/dist/types/crypto/core/hkdf.d.ts +10 -2
- package/dist/types/crypto/core/index.d.ts +2 -2
- package/dist/types/crypto/core/keys.d.ts +0 -4
- package/dist/types/crypto/core/nonce.d.ts +4 -5
- package/dist/types/crypto/core/primitives.d.ts +31 -20
- package/dist/types/crypto/core/random.d.ts +6 -0
- package/dist/types/crypto/core/xeddsa.d.ts +9 -0
- package/dist/types/crypto/curves/Ed25519.d.ts +7 -1
- package/dist/types/crypto/curves/X25519.d.ts +20 -1
- package/dist/types/crypto/curves/constants.d.ts +4 -3
- package/dist/types/crypto/curves/types.d.ts +0 -5
- package/dist/types/crypto/math/constants.d.ts +0 -1
- package/dist/types/crypto/math/mod.d.ts +0 -1
- package/dist/types/index.d.ts +34 -8
- package/dist/types/infra/log/ConsoleLogger.d.ts +18 -1
- package/dist/types/infra/log/PinoLogger.d.ts +55 -1
- package/dist/types/infra/log/types.d.ts +6 -0
- package/dist/types/infra/perf/BackgroundQueue.d.ts +19 -0
- package/dist/types/media/constants.d.ts +7 -2
- package/dist/types/media/crypto/WaMediaCrypto.d.ts +59 -0
- package/dist/types/media/index.d.ts +7 -5
- package/dist/types/media/processor.d.ts +27 -5
- package/dist/types/media/sticker/sticker-pack.d.ts +6 -0
- package/dist/types/media/{WaMediaTransferClient.d.ts → transfer/WaMediaTransferClient.d.ts} +30 -1
- package/dist/types/media/transfer/conn.d.ts +7 -0
- package/dist/types/media/types.d.ts +1 -2
- package/dist/types/message/WaMessageClient.d.ts +14 -0
- package/dist/types/message/addons/link-preview/builder.d.ts +13 -0
- package/dist/types/message/addons/link-preview/detect.d.ts +5 -0
- package/dist/types/message/addons/link-preview/fetcher.d.ts +13 -0
- package/dist/types/message/addons/link-preview/types.d.ts +51 -0
- package/dist/types/message/context-info.d.ts +66 -0
- package/dist/types/message/{addon-crypto.d.ts → crypto/addon-crypto.d.ts} +27 -5
- package/dist/types/message/{icdc.d.ts → crypto/icdc.d.ts} +4 -4
- package/dist/types/message/{phash.d.ts → crypto/phash.d.ts} +1 -1
- package/dist/types/message/{reporting-token.d.ts → crypto/reporting-token.d.ts} +2 -2
- package/dist/types/message/{use-case-secret.d.ts → crypto/use-case-secret.d.ts} +17 -1
- package/dist/types/message/encode/content.d.ts +43 -0
- package/dist/types/message/{device-sent.d.ts → encode/device-sent.d.ts} +1 -1
- package/dist/types/message/encode/media-payload.d.ts +12 -0
- package/dist/types/message/index.d.ts +2 -2
- package/dist/types/message/kinds/bot.d.ts +31 -0
- package/dist/types/message/kinds/newsletter.d.ts +12 -0
- package/dist/types/message/kinds/sticker-pack.d.ts +6 -0
- package/dist/types/message/{ack.d.ts → primitives/ack.d.ts} +1 -1
- package/dist/types/message/primitives/incoming.d.ts +21 -0
- package/dist/types/message/primitives/peer-data-operation.d.ts +23 -0
- package/dist/types/message/types.d.ts +209 -11
- package/dist/types/mex.d.ts +2 -0
- package/dist/types/proto.d.ts +2 -2
- package/dist/types/protocol/abprops.d.ts +9 -0
- package/dist/types/protocol/appstate.d.ts +4 -49
- package/dist/types/protocol/auth.d.ts +2 -2
- package/dist/types/protocol/bot.d.ts +45 -0
- package/dist/types/protocol/browser.d.ts +8 -0
- package/dist/types/protocol/business.d.ts +21 -0
- package/dist/types/protocol/call.d.ts +44 -0
- package/dist/types/protocol/constants.d.ts +16 -3
- package/dist/types/protocol/defaults.d.ts +3 -0
- package/dist/types/protocol/group.d.ts +1 -1
- package/dist/types/protocol/index.d.ts +2 -1
- package/dist/types/protocol/jid.d.ts +78 -0
- package/dist/types/protocol/media.d.ts +21 -13
- package/dist/types/protocol/message.d.ts +4 -0
- package/dist/types/protocol/newsletter.d.ts +65 -0
- package/dist/types/protocol/nodes.d.ts +20 -0
- package/dist/types/protocol/notification.d.ts +16 -0
- package/dist/types/protocol/presence.d.ts +16 -0
- package/dist/types/protocol/status.d.ts +7 -0
- package/dist/types/retry/codec.d.ts +5 -0
- package/dist/types/retry/index.d.ts +1 -1
- package/dist/types/retry/parse.d.ts +9 -0
- package/dist/types/retry/reason.d.ts +5 -0
- package/dist/types/retry/replay.d.ts +19 -5
- package/dist/types/retry/tracker.d.ts +10 -3
- package/dist/types/retry/types.d.ts +3 -8
- package/dist/types/signal/api/SignalDeviceSyncApi.d.ts +20 -0
- package/dist/types/signal/api/SignalDigestSyncApi.d.ts +10 -0
- package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +9 -0
- package/dist/types/signal/api/SignalMissingPreKeysSyncApi.d.ts +8 -0
- package/dist/types/signal/api/SignalRotateKeyApi.d.ts +10 -0
- package/dist/types/signal/api/SignalSessionSyncApi.d.ts +13 -0
- package/dist/types/signal/api/codec.d.ts +20 -0
- package/dist/types/signal/api/constants.d.ts +1 -1
- package/dist/types/signal/api/prekeys.d.ts +4 -0
- package/dist/types/signal/{crypto → attestation}/WaAdvSignature.d.ts +2 -2
- package/dist/types/signal/attestation/constants.d.ts +4 -0
- package/dist/types/signal/constants.d.ts +7 -4
- package/dist/types/signal/encoding.d.ts +6 -68
- package/dist/types/signal/group/SenderKeyChain.d.ts +1 -1
- package/dist/types/signal/group/SenderKeyManager.d.ts +18 -1
- package/dist/types/signal/group/encoding.d.ts +25 -0
- package/dist/types/signal/index.d.ts +4 -1
- package/dist/types/signal/registration/encoding.d.ts +30 -0
- package/dist/types/signal/registration/keygen.d.ts +10 -0
- package/dist/types/signal/registration/utils.d.ts +5 -0
- package/dist/types/signal/session/SignalProtocol.d.ts +55 -0
- package/dist/types/signal/session/SignalRatchet.d.ts +2 -3
- package/dist/types/signal/session/SignalSession.d.ts +0 -1
- package/dist/types/signal/session/encoding.d.ts +28 -0
- package/dist/types/signal/session/resolver.d.ts +14 -0
- package/dist/types/signal/types.d.ts +1 -1
- package/dist/types/store/cache/identity.cache.d.ts +15 -0
- package/dist/types/store/cache/privacy-token.cache.d.ts +15 -0
- package/dist/types/store/cache/sender-key.cache.d.ts +18 -0
- package/dist/types/store/cache/session.cache.d.ts +23 -0
- package/dist/types/store/contracts/contact.store.d.ts +14 -0
- package/dist/types/store/contracts/device-list.store.d.ts +13 -0
- package/dist/types/store/contracts/group-metadata.store.d.ts +14 -0
- package/dist/types/store/contracts/message.store.d.ts +0 -2
- package/dist/types/store/createStore.d.ts +54 -2
- package/dist/types/store/index.d.ts +17 -16
- package/dist/types/store/locks/group-metadata.lock.d.ts +2 -0
- package/dist/types/store/{providers/memory → memory}/appstate.store.d.ts +2 -2
- package/dist/types/store/memory/auth.store.d.ts +18 -0
- package/dist/types/store/{providers/memory → memory}/contact.store.d.ts +6 -1
- package/dist/types/store/{providers/memory → memory}/device-list.store.d.ts +15 -2
- package/dist/types/store/memory/group-metadata.store.d.ts +27 -0
- package/dist/types/store/{providers/memory → memory}/identity.store.d.ts +2 -2
- package/dist/types/store/{providers/memory → memory}/message-secret.store.d.ts +12 -2
- package/dist/types/store/{providers/memory → memory}/message.store.d.ts +1 -1
- package/dist/types/store/{providers/memory → memory}/pre-key.store.d.ts +2 -2
- package/dist/types/store/{providers/memory → memory}/privacy-token.store.d.ts +1 -1
- package/dist/types/store/{providers/memory → memory}/retry.store.d.ts +16 -3
- package/dist/types/store/{providers/memory → memory}/sender-key.store.d.ts +2 -2
- package/dist/types/store/{providers/memory → memory}/session.store.d.ts +2 -2
- package/dist/types/store/{providers/memory → memory}/signal.store.d.ts +2 -2
- package/dist/types/store/{providers/memory → memory}/thread.store.d.ts +1 -1
- package/dist/types/store/noop.store.d.ts +2 -2
- package/dist/types/store/types.d.ts +250 -6
- package/dist/types/transport/WaComms.d.ts +5 -0
- package/dist/types/transport/WaWebSocket.d.ts +5 -0
- package/dist/types/transport/binary/constants.d.ts +8 -2
- package/dist/types/transport/binary/decoder.d.ts +5 -0
- package/dist/types/transport/binary/encoder.d.ts +5 -0
- package/dist/types/transport/binary/tokens.d.ts +6 -6
- package/dist/types/transport/index.d.ts +3 -1
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +7 -0
- package/dist/types/transport/node/WaMobileTcpSocket.d.ts +6 -0
- package/dist/types/transport/node/WaNodeOrchestrator.d.ts +5 -0
- package/dist/types/transport/node/WaNodeTransport.d.ts +13 -0
- package/dist/types/transport/node/builders/account-sync.d.ts +1 -2
- package/dist/types/transport/node/builders/bot.d.ts +4 -0
- package/dist/types/transport/node/builders/business.d.ts +21 -4
- package/dist/types/transport/node/builders/chatstate.d.ts +11 -0
- package/dist/types/transport/node/builders/community.d.ts +17 -0
- package/dist/types/transport/node/builders/group.d.ts +44 -2
- package/dist/types/transport/node/builders/message.d.ts +11 -6
- package/dist/types/transport/node/builders/newsletter.d.ts +73 -0
- package/dist/types/transport/node/builders/passive.d.ts +3 -0
- package/dist/types/transport/node/builders/presence.d.ts +8 -1
- package/dist/types/transport/node/builders/profile.d.ts +3 -0
- package/dist/types/transport/node/builders/tos.d.ts +12 -0
- package/dist/types/transport/node/builders/usync.d.ts +16 -0
- package/dist/types/transport/node/helpers.d.ts +1 -2
- package/dist/types/transport/node/mex/client.d.ts +12 -1
- package/dist/types/transport/node/query.d.ts +19 -1
- package/dist/types/transport/node/usync.d.ts +3 -0
- package/dist/types/transport/noise/WaMobileClientPayload.d.ts +6 -1
- package/dist/types/transport/noise/WaNoiseCert.d.ts +5 -0
- package/dist/types/transport/noise/WaNoiseHandshake.d.ts +12 -6
- package/dist/types/transport/noise/WaNoiseSession.d.ts +0 -1
- package/dist/types/transport/noise/WaNoiseSocket.d.ts +12 -6
- package/dist/types/transport/noise/constants.d.ts +4 -5
- package/dist/types/transport/noise/types.d.ts +1 -1
- package/dist/types/transport/proxy.d.ts +5 -0
- package/dist/types/transport/types.d.ts +14 -7
- package/dist/types/transport/wa-web-version-fetcher.d.ts +44 -0
- package/dist/types/util/async.d.ts +4 -0
- package/dist/types/util/bytes.d.ts +36 -1
- package/dist/types/util/clock.d.ts +6 -0
- package/dist/types/util/coercion.d.ts +25 -0
- package/dist/types/util/collections.d.ts +8 -0
- package/dist/types/util/index.d.ts +2 -2
- package/dist/types/util/primitives.d.ts +11 -0
- package/dist/types/util/runtime.d.ts +5 -0
- package/dist/types/version-spec.d.ts +1 -0
- package/dist/util/async.js +4 -0
- package/dist/util/bytes.js +37 -2
- package/dist/util/clock.js +18 -0
- package/dist/util/coercion.js +48 -3
- package/dist/util/collections.js +12 -0
- package/dist/util/index.js +7 -1
- package/dist/util/primitives.js +20 -0
- package/dist/util/runtime.js +5 -0
- package/dist/version-spec.js +5 -0
- package/package.json +32 -8
- package/spec/appstate/index.d.ts +188 -0
- package/spec/appstate/index.js +850 -0
- package/spec/mex/index.d.ts +4172 -0
- package/spec/mex/index.js +261 -0
- package/spec/proto/index.d.ts +16305 -0
- package/spec/proto/index.js +1 -0
- package/spec/version/index.d.ts +4 -0
- package/spec/version/index.js +9 -0
- package/spec/version/version.json +3 -0
- package/dist/client/events/chat.js +0 -227
- package/dist/client/incoming.js +0 -306
- package/dist/client/mailbox.js +0 -66
- package/dist/client/messages.js +0 -305
- package/dist/esm/client/events/chat.js +0 -224
- package/dist/esm/client/incoming.js +0 -296
- package/dist/esm/client/mailbox.js +0 -63
- package/dist/esm/client/messages.js +0 -301
- package/dist/esm/media/WaMediaCrypto.js +0 -499
- package/dist/esm/message/phash.js +0 -47
- package/dist/esm/store/locks/participants.lock.js +0 -20
- package/dist/esm/store/providers/memory/contact.store.js +0 -28
- package/dist/esm/store/providers/memory/device-list.store.js +0 -67
- package/dist/esm/transport/node/mex/persist-ids.js +0 -10
- package/dist/media/WaMediaCrypto.js +0 -503
- package/dist/message/phash.js +0 -50
- package/dist/store/locks/participants.lock.js +0 -23
- package/dist/store/providers/memory/contact.store.js +0 -32
- package/dist/store/providers/memory/device-list.store.js +0 -71
- package/dist/transport/node/mex/persist-ids.js +0 -13
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +0 -70
- package/dist/types/client/events/chat.d.ts +0 -3
- package/dist/types/client/history-sync.d.ts +0 -20
- package/dist/types/client/messages.d.ts +0 -18
- package/dist/types/client/messaging/participants.d.ts +0 -13
- package/dist/types/media/WaMediaCrypto.d.ts +0 -22
- package/dist/types/media/conn.d.ts +0 -3
- package/dist/types/message/content.d.ts +0 -14
- package/dist/types/message/incoming.d.ts +0 -18
- package/dist/types/signal/crypto/constants.d.ts +0 -4
- package/dist/types/store/contracts/participants.store.d.ts +0 -13
- package/dist/types/store/locks/participants.lock.d.ts +0 -2
- package/dist/types/store/providers/memory/participants.store.d.ts +0 -17
- package/dist/types/transport/node/mex/persist-ids.d.ts +0 -14
- package/proto/index.d.ts +0 -10903
- package/proto/index.js +0 -1
- /package/dist/{store/contracts/participants.store.js → client/newsletter/types.js} +0 -0
- /package/dist/esm/{store/contracts/participants.store.js → client/newsletter/types.js} +0 -0
- /package/dist/esm/message/{device-sent.js → encode/device-sent.js} +0 -0
- /package/dist/esm/signal/{crypto → attestation}/constants.js +0 -0
- /package/dist/esm/store/{providers/memory → memory}/signal.store.js +0 -0
- /package/dist/message/{device-sent.js → encode/device-sent.js} +0 -0
- /package/dist/signal/{crypto → attestation}/constants.js +0 -0
- /package/dist/store/{providers/memory → memory}/signal.store.js +0 -0
- /package/dist/types/message/{padding.d.ts → encode/padding.d.ts} +0 -0
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
2
|
+
import type { WaIncomingMessageEvent } from '../types';
|
|
1
3
|
import type { Logger } from '../../infra/log/types';
|
|
4
|
+
import type { IcdcMeta } from '../../message/crypto/icdc';
|
|
5
|
+
import type { PeerDataOperationRequester } from '../../message/primitives/peer-data-operation';
|
|
2
6
|
import type { WaMessageClient } from '../../message/WaMessageClient';
|
|
3
|
-
import { type Proto } from '../..';
|
|
4
7
|
import type { WaRetryDecryptFailureContext } from '../../retry/types';
|
|
5
8
|
import type { SignalDeviceSyncApi } from '../../signal/api/SignalDeviceSyncApi';
|
|
6
9
|
import type { SignalMissingPreKeysSyncApi } from '../../signal/api/SignalMissingPreKeysSyncApi';
|
|
10
|
+
import type { SignalSessionResolver } from '../../signal/session/resolver';
|
|
7
11
|
import type { SignalProtocol } from '../../signal/session/SignalProtocol';
|
|
8
12
|
import type { WaPreKeyStore } from '../../store/contracts/pre-key.store';
|
|
9
13
|
import type { WaRetryStore } from '../../store/contracts/retry.store';
|
|
@@ -19,39 +23,34 @@ interface WaRetryCoordinatorOptions {
|
|
|
19
23
|
readonly sessionStore: WaSessionStore;
|
|
20
24
|
readonly senderKeyStore: WaSenderKeyStore;
|
|
21
25
|
readonly signalProtocol: SignalProtocol;
|
|
26
|
+
readonly sessionResolver: SignalSessionResolver;
|
|
22
27
|
readonly signalDeviceSync: SignalDeviceSyncApi;
|
|
23
28
|
readonly signalMissingPreKeysSync: SignalMissingPreKeysSyncApi;
|
|
24
29
|
readonly messageClient: WaMessageClient;
|
|
25
30
|
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
26
|
-
readonly
|
|
27
|
-
|
|
28
|
-
readonly
|
|
31
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
32
|
+
/** Refresh device-list ICDC for the given user jid; passed through to retry replay. */
|
|
33
|
+
readonly resolveUserIcdc?: (userJid: string) => Promise<IcdcMeta | null>;
|
|
34
|
+
readonly peerDataOperation?: PeerDataOperationRequester;
|
|
35
|
+
readonly emitIncomingMessage?: (event: WaIncomingMessageEvent) => void;
|
|
29
36
|
}
|
|
30
37
|
export declare class WaRetryCoordinator {
|
|
31
|
-
private readonly
|
|
32
|
-
private readonly retryStore;
|
|
38
|
+
private readonly deps;
|
|
33
39
|
private readonly retryTtlMs;
|
|
34
|
-
private readonly signalStore;
|
|
35
|
-
private readonly preKeyStore;
|
|
36
|
-
private readonly sessionStore;
|
|
37
|
-
private readonly senderKeyStore;
|
|
38
|
-
private readonly signalProtocol;
|
|
39
|
-
private readonly signalDeviceSync;
|
|
40
|
-
private readonly signalMissingPreKeysSync;
|
|
41
40
|
private readonly retryReplayService;
|
|
42
|
-
private readonly sendNode;
|
|
43
|
-
private readonly getCurrentMeJid;
|
|
44
|
-
private readonly getCurrentMeLid;
|
|
45
|
-
private readonly getCurrentSignedIdentity;
|
|
46
41
|
private readonly retryProcessingByMessageId;
|
|
47
42
|
private readonly retrySessionBaseKeys;
|
|
48
43
|
private nextRetryCleanupAtMs;
|
|
44
|
+
private readonly placeholderInFlight;
|
|
45
|
+
private placeholderQueue;
|
|
46
|
+
private placeholderTimer;
|
|
49
47
|
constructor(options: WaRetryCoordinatorOptions);
|
|
50
48
|
onDecryptFailure(context: WaRetryDecryptFailureContext, error: unknown): Promise<boolean>;
|
|
51
49
|
handleIncomingRetryReceipt(receiptNode: BinaryNode): Promise<void>;
|
|
52
50
|
private isRetryReceiptNode;
|
|
53
51
|
private prepareDecryptFailureRetry;
|
|
54
52
|
private sendDecryptFailureRetryReceipt;
|
|
53
|
+
private resolvePeerRetryRecipient;
|
|
55
54
|
private handleParsedRetryRequest;
|
|
56
55
|
private processRetryRequest;
|
|
57
56
|
private prepareRetryResend;
|
|
@@ -71,5 +70,8 @@ export declare class WaRetryCoordinator {
|
|
|
71
70
|
private setRetrySessionBaseKey;
|
|
72
71
|
private getRetrySessionBaseKey;
|
|
73
72
|
private cleanupRetrySessionBaseKeys;
|
|
73
|
+
private isSenderFromOwnAccount;
|
|
74
|
+
private enqueuePlaceholderResend;
|
|
75
|
+
private flushPlaceholderBatch;
|
|
74
76
|
}
|
|
75
77
|
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { WaAppStateMutationCoordinator, WaSetStatusPrivacyInput } from '../coordinators/WaAppStateMutationCoordinator';
|
|
2
|
+
import type { WaSendMessageOptions } from '../types';
|
|
3
|
+
import type { WaMessageBuildResult, WaMessagePublishResult, WaSendMessageContent } from '../../message/types';
|
|
4
|
+
import { type Proto } from '../../proto';
|
|
5
|
+
import type { WaStatusDistributionSetting } from '../../protocol/status';
|
|
6
|
+
export interface WaStatusCoordinatorOptions {
|
|
7
|
+
readonly appStateMutations: WaAppStateMutationCoordinator;
|
|
8
|
+
readonly buildMessageContent: (content: WaSendMessageContent) => Promise<WaMessageBuildResult>;
|
|
9
|
+
readonly publishStatusMessage: (input: {
|
|
10
|
+
readonly message: Proto.IMessage;
|
|
11
|
+
readonly recipients: readonly string[];
|
|
12
|
+
readonly statusSetting?: WaStatusDistributionSetting;
|
|
13
|
+
readonly options?: WaSendMessageOptions;
|
|
14
|
+
}) => Promise<WaMessagePublishResult>;
|
|
15
|
+
}
|
|
16
|
+
export interface WaSendStatusInput {
|
|
17
|
+
readonly content: WaSendMessageContent;
|
|
18
|
+
readonly recipients: readonly string[];
|
|
19
|
+
readonly statusSetting?: WaStatusDistributionSetting;
|
|
20
|
+
readonly options?: WaSendMessageOptions;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Coordinates the status-broadcast surface: distribution privacy, per-contact
|
|
24
|
+
* mute, send, and revoke. Accessed via {@link WaClient.status}.
|
|
25
|
+
*/
|
|
26
|
+
export interface WaStatusCoordinator {
|
|
27
|
+
/** Updates the account-wide status privacy setting (see {@link WaSetStatusPrivacyInput}). */
|
|
28
|
+
readonly setPrivacy: (input: WaSetStatusPrivacyInput) => Promise<void>;
|
|
29
|
+
/** Mutes or unmutes a specific contact's status broadcasts. */
|
|
30
|
+
readonly setUserMuted: (jid: string, muted: boolean) => Promise<void>;
|
|
31
|
+
/** Publishes a status broadcast to the given recipients. */
|
|
32
|
+
readonly send: (input: WaSendStatusInput) => Promise<WaMessagePublishResult>;
|
|
33
|
+
/** Revokes a previously-published status broadcast. */
|
|
34
|
+
readonly revokeStatus: (input: {
|
|
35
|
+
readonly messageId: string;
|
|
36
|
+
readonly recipients: readonly string[];
|
|
37
|
+
readonly statusSetting?: WaStatusDistributionSetting;
|
|
38
|
+
readonly options?: WaSendMessageOptions;
|
|
39
|
+
}) => Promise<WaMessagePublishResult>;
|
|
40
|
+
}
|
|
41
|
+
/** Builds a {@link WaStatusCoordinator} from its dependencies. */
|
|
42
|
+
export declare function createStatusCoordinator(options: WaStatusCoordinatorOptions): WaStatusCoordinator;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
1
2
|
import type { ParsedPrivacyToken } from '../events/privacy-token';
|
|
2
3
|
import type { WaClientEventMap } from '../types';
|
|
3
4
|
import type { Logger } from '../../infra/log/types';
|
|
4
5
|
import type { WaPrivacyTokenStore } from '../../store/contracts/privacy-token.store';
|
|
5
6
|
import type { BinaryNode } from '../../transport/types';
|
|
7
|
+
import type { ServerClock } from '../../util/clock';
|
|
6
8
|
type WaTrustedContactTokenRuntime = {
|
|
7
9
|
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
8
10
|
readonly emitEvent: <K extends keyof WaClientEventMap>(event: K, ...args: Parameters<WaClientEventMap[K]>) => void;
|
|
9
|
-
readonly
|
|
11
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
10
12
|
};
|
|
11
13
|
interface WaTrustedContactTokenConfig {
|
|
12
14
|
readonly durationS: number;
|
|
@@ -19,6 +21,7 @@ export declare class WaTrustedContactTokenCoordinator {
|
|
|
19
21
|
private readonly logger;
|
|
20
22
|
private readonly store;
|
|
21
23
|
private readonly runtime;
|
|
24
|
+
private readonly serverClock;
|
|
22
25
|
private readonly baseConfig;
|
|
23
26
|
private readonly getConfigOverrides;
|
|
24
27
|
private readonly csTokenGenerator;
|
|
@@ -29,6 +32,7 @@ export declare class WaTrustedContactTokenCoordinator {
|
|
|
29
32
|
readonly logger: Logger;
|
|
30
33
|
readonly store: WaPrivacyTokenStore;
|
|
31
34
|
readonly runtime: WaTrustedContactTokenRuntime;
|
|
35
|
+
readonly serverClock: ServerClock;
|
|
32
36
|
readonly durationS?: number;
|
|
33
37
|
readonly numBuckets?: number;
|
|
34
38
|
readonly senderDurationS?: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BinaryNode } from '../../transport/types';
|
|
2
|
-
|
|
2
|
+
interface AbPropResponseEntry {
|
|
3
3
|
readonly configCode: number;
|
|
4
4
|
readonly configValue: string | null;
|
|
5
5
|
}
|
|
@@ -12,3 +12,4 @@ export interface AbPropSyncResult {
|
|
|
12
12
|
readonly props: readonly AbPropResponseEntry[];
|
|
13
13
|
}
|
|
14
14
|
export declare function parseAbPropsIqResult(node: BinaryNode): AbPropSyncResult;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WaBusinessEvent, WaBusinessProfileResult, WaIncomingUnhandledStanzaEvent, WaVerifiedNameResult } from '../types';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
interface WaParseBusinessNotificationResult {
|
|
4
|
+
readonly events: readonly WaBusinessEvent[];
|
|
5
|
+
readonly unhandled: readonly WaIncomingUnhandledStanzaEvent[];
|
|
6
|
+
}
|
|
7
|
+
export declare function parseVerifiedNameNode(node: BinaryNode): WaVerifiedNameResult | null;
|
|
8
|
+
export declare function parseBusinessProfileNode(node: BinaryNode): WaBusinessProfileResult | null;
|
|
9
|
+
export declare function parseBusinessNotificationEvents(notificationNode: BinaryNode): WaParseBusinessNotificationResult;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type WaCallPayloadTag } from '../../protocol/call';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
export type WaCallType = WaCallPayloadTag | 'unknown';
|
|
4
|
+
export interface WaCallGroupParticipant {
|
|
5
|
+
/** Primary participant addressing inside the call – typically a LID. */
|
|
6
|
+
readonly jid: string;
|
|
7
|
+
readonly userPnJid?: string;
|
|
8
|
+
readonly username?: string;
|
|
9
|
+
/** Display name for unregistered guests dialled into the call. */
|
|
10
|
+
readonly guestName?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ParsedCall {
|
|
13
|
+
readonly type: WaCallType;
|
|
14
|
+
readonly payloadTag?: string;
|
|
15
|
+
readonly callId?: string;
|
|
16
|
+
readonly callCreatorJid?: string;
|
|
17
|
+
readonly senderLidJid?: string;
|
|
18
|
+
readonly callerPnJid?: string;
|
|
19
|
+
readonly groupJid?: string;
|
|
20
|
+
readonly isVideo: boolean;
|
|
21
|
+
readonly callerUsername?: string;
|
|
22
|
+
readonly callerCountryCode?: string;
|
|
23
|
+
readonly callerPushName?: string;
|
|
24
|
+
readonly peerPlatform?: string;
|
|
25
|
+
readonly peerAppVersion?: string;
|
|
26
|
+
readonly timestampSeconds?: number;
|
|
27
|
+
readonly endTimestampSeconds?: number;
|
|
28
|
+
readonly silenceReason?: string;
|
|
29
|
+
readonly groupInfo?: readonly WaCallGroupParticipant[];
|
|
30
|
+
}
|
|
31
|
+
export declare function parseCallNode(node: BinaryNode): ParsedCall;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChatstateMedia, ChatstateState } from '../../transport/node/builders/chatstate';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
interface ParsedChatstate {
|
|
4
|
+
readonly state: ChatstateState;
|
|
5
|
+
readonly media?: ChatstateMedia;
|
|
6
|
+
readonly participantJid?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function parseChatstateNode(node: BinaryNode): ParsedChatstate | null;
|
|
9
|
+
export {};
|
|
@@ -5,16 +5,17 @@ export declare const DEVICE_NOTIFICATION_ACTIONS: Readonly<{
|
|
|
5
5
|
readonly UPDATE: "update";
|
|
6
6
|
}>;
|
|
7
7
|
export type DeviceNotificationAction = (typeof DEVICE_NOTIFICATION_ACTIONS)[keyof typeof DEVICE_NOTIFICATION_ACTIONS];
|
|
8
|
-
|
|
8
|
+
interface DeviceNotificationDevice {
|
|
9
9
|
readonly deviceId: number;
|
|
10
10
|
readonly keyIndex: number | null;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
interface DeviceNotification {
|
|
13
13
|
readonly action: DeviceNotificationAction;
|
|
14
14
|
readonly stanzaId: string;
|
|
15
15
|
readonly fromJid: string;
|
|
16
|
-
readonly lid: string |
|
|
17
|
-
readonly hash: string |
|
|
16
|
+
readonly lid: string | null;
|
|
17
|
+
readonly hash: string | null;
|
|
18
18
|
readonly devices: readonly DeviceNotificationDevice[];
|
|
19
19
|
}
|
|
20
20
|
export declare function parseDeviceNotification(node: BinaryNode): DeviceNotification | null;
|
|
21
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { WaAuthCredentials } from '
|
|
2
|
-
import type { Logger } from '
|
|
3
|
-
import type { BinaryNode } from '
|
|
1
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
2
|
+
import type { Logger } from '../../infra/log/types';
|
|
3
|
+
import type { BinaryNode } from '../../transport/types';
|
|
4
4
|
export interface WaDirtyBit {
|
|
5
5
|
readonly type: string;
|
|
6
6
|
readonly timestamp: number;
|
|
@@ -14,6 +14,7 @@ interface WaDirtySyncRuntime {
|
|
|
14
14
|
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
15
15
|
readonly syncAppState: () => Promise<void>;
|
|
16
16
|
readonly generateUsyncSid: () => Promise<string>;
|
|
17
|
+
readonly newsletterListSubscribed?: () => Promise<unknown>;
|
|
17
18
|
}
|
|
18
19
|
export declare function parseDirtyBits(nodes: readonly BinaryNode[], logger: Logger): readonly WaDirtyBit[];
|
|
19
20
|
export declare function handleDirtyBits(runtime: WaDirtySyncRuntime, dirtyBits: readonly WaDirtyBit[]): Promise<void>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { WaGroupEvent, WaGroupEventParticipant, WaIncomingUnhandledStanzaEvent } from '../types';
|
|
2
2
|
import type { BinaryNode } from '../../transport/types';
|
|
3
|
-
|
|
3
|
+
interface WaParseGroupNotificationResult {
|
|
4
4
|
readonly events: readonly WaGroupEvent[];
|
|
5
5
|
readonly unhandled: readonly WaIncomingUnhandledStanzaEvent[];
|
|
6
6
|
}
|
|
7
7
|
export declare function parseParticipants(node: BinaryNode): readonly WaGroupEventParticipant[];
|
|
8
8
|
export declare function parseGroupNotificationEvents(notificationNode: BinaryNode): WaParseGroupNotificationResult;
|
|
9
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BinaryNode } from '../../transport/types';
|
|
2
|
-
|
|
2
|
+
interface IdentityChangeNotification {
|
|
3
3
|
readonly fromJid: string;
|
|
4
4
|
readonly stanzaId: string;
|
|
5
5
|
readonly displayName: string | undefined;
|
|
@@ -7,3 +7,4 @@ export interface IdentityChangeNotification {
|
|
|
7
7
|
readonly offline: string | undefined;
|
|
8
8
|
}
|
|
9
9
|
export declare function parseIdentityChangeNotification(node: BinaryNode): IdentityChangeNotification | null;
|
|
10
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
1
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
2
|
+
import type { WaAccountTakeoverNoticeEvent, WaBusinessEvent, WaGroupEvent, WaIncomingBaseEvent, WaIncomingCallEvent, WaIncomingFailureEvent, WaIncomingNotificationEvent, WaIncomingReceiptEvent, WaIncomingUnhandledStanzaEvent, WaMexNotificationEvent, WaPictureEvent, WaRegistrationCodeEvent } from '../types';
|
|
3
|
+
import type { Logger } from '../../infra/log/types';
|
|
4
|
+
import type { WaConnectionCode, WaDisconnectReason } from '../../protocol/stream';
|
|
5
|
+
import type { BinaryNode } from '../../transport/types';
|
|
5
6
|
interface IncomingAckRuntime {
|
|
6
7
|
readonly logger: Logger;
|
|
7
8
|
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
@@ -20,6 +21,7 @@ type IncomingFailureHandlerOptions = {
|
|
|
20
21
|
};
|
|
21
22
|
type IncomingNotificationHandlerOptions = IncomingAckRuntime & {
|
|
22
23
|
readonly emitIncomingNotification: (event: WaIncomingNotificationEvent) => void;
|
|
24
|
+
readonly emitMexNotification: (event: WaMexNotificationEvent) => void;
|
|
23
25
|
readonly emitUnhandledStanza: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
24
26
|
readonly syncAppState?: () => Promise<void>;
|
|
25
27
|
};
|
|
@@ -27,16 +29,37 @@ type IncomingGroupNotificationHandlerOptions = IncomingAckRuntime & {
|
|
|
27
29
|
readonly emitGroupEvent: (event: WaGroupEvent) => void;
|
|
28
30
|
readonly emitUnhandledStanza: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
29
31
|
};
|
|
32
|
+
type IncomingBusinessNotificationHandlerOptions = IncomingAckRuntime & {
|
|
33
|
+
readonly emitBusinessEvent: (event: WaBusinessEvent) => void;
|
|
34
|
+
readonly emitUnhandledStanza: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
35
|
+
};
|
|
36
|
+
type IncomingPictureNotificationHandlerOptions = IncomingAckRuntime & {
|
|
37
|
+
readonly emitPictureEvent: (event: WaPictureEvent) => void;
|
|
38
|
+
readonly emitUnhandledStanza: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
39
|
+
};
|
|
30
40
|
type IncomingRegistrationNotificationHandlerOptions = IncomingAckRuntime & {
|
|
31
41
|
readonly emitRegistrationCode: (event: WaRegistrationCodeEvent) => void;
|
|
32
42
|
readonly emitAccountTakeoverNotice: (event: WaAccountTakeoverNoticeEvent) => void;
|
|
33
43
|
};
|
|
44
|
+
type IncomingCallHandlerOptions = IncomingAckRuntime & {
|
|
45
|
+
readonly emitIncomingCall: (event: WaIncomingCallEvent) => void;
|
|
46
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Builds the inbound ack for `message`/`receipt`/`notification` tags. Returns
|
|
50
|
+
* `null` for other tags or when required attrs are missing.
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildInboundAck(node: BinaryNode): BinaryNode | null;
|
|
34
53
|
export declare function createIncomingBaseEvent(node: BinaryNode): WaIncomingBaseEvent;
|
|
54
|
+
export declare function sendSafeAck(logger: Logger, sendNode: (node: BinaryNode) => Promise<void>, node: BinaryNode): Promise<void>;
|
|
35
55
|
export declare function createIncomingReceiptHandler(options: IncomingReceiptHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
36
56
|
export declare function createIncomingFailureHandler(options: IncomingFailureHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
37
57
|
export declare function createIncomingNotificationHandler(options: IncomingNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
38
58
|
export declare function createIncomingRegistrationNotificationHandler(options: IncomingRegistrationNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
59
|
+
export declare function createIncomingBusinessNotificationHandler(options: IncomingBusinessNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
39
60
|
export declare function createIncomingGroupNotificationHandler(options: IncomingGroupNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
61
|
+
export declare function createIncomingPictureNotificationHandler(options: IncomingPictureNotificationHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
62
|
+
export declare function createIncomingCallHandler(options: IncomingCallHandlerOptions): (node: BinaryNode) => Promise<boolean>;
|
|
40
63
|
export declare function createInfoBulletinNotificationEvent(node: BinaryNode, type: string, details?: Readonly<Record<string, unknown>>): WaIncomingNotificationEvent;
|
|
41
64
|
export declare function createUnhandledIncomingNodeEvent(node: BinaryNode, reason?: string): WaIncomingUnhandledStanzaEvent;
|
|
42
65
|
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WaIncomingBaseEvent, WaMexNotificationEvent } from '../types';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
type DistributiveOmit<T, K extends keyof never> = T extends unknown ? Omit<T, K> : never;
|
|
4
|
+
export type WaMexNotificationParsed = DistributiveOmit<WaMexNotificationEvent, keyof WaIncomingBaseEvent>;
|
|
5
|
+
export declare function parseMexNotification(node: BinaryNode): WaMexNotificationParsed | null;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WaIncomingUnhandledStanzaEvent, WaPictureEvent } from '../types';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
interface WaParsePictureNotificationResult {
|
|
4
|
+
readonly events: readonly WaPictureEvent[];
|
|
5
|
+
readonly unhandled: readonly WaIncomingUnhandledStanzaEvent[];
|
|
6
|
+
}
|
|
7
|
+
export declare function parsePictureNotificationEvents(node: BinaryNode): WaParsePictureNotificationResult;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { WA_PRESENCE_TYPES } from '../../protocol/presence';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
export type IncomingPresenceType = typeof WA_PRESENCE_TYPES.AVAILABLE | typeof WA_PRESENCE_TYPES.UNAVAILABLE;
|
|
4
|
+
export type PresenceLastSeen =
|
|
5
|
+
/** Numeric `last` attr the peer disclosed. */
|
|
6
|
+
{
|
|
7
|
+
readonly kind: 'timestamp';
|
|
8
|
+
readonly unixSeconds: number;
|
|
9
|
+
}
|
|
10
|
+
/** Peer's privacy settings hide last-seen from this account (WA `deny` sentinel). */
|
|
11
|
+
| {
|
|
12
|
+
readonly kind: 'privacy_denied';
|
|
13
|
+
}
|
|
14
|
+
/** Peer has never been online since the contact was added (WA `none` sentinel). */
|
|
15
|
+
| {
|
|
16
|
+
readonly kind: 'never_online';
|
|
17
|
+
}
|
|
18
|
+
/** WA `error` sentinel or an unparseable `last` value. */
|
|
19
|
+
| {
|
|
20
|
+
readonly kind: 'unknown';
|
|
21
|
+
};
|
|
22
|
+
interface ParsedPresence {
|
|
23
|
+
readonly type: IncomingPresenceType;
|
|
24
|
+
readonly lastSeen?: PresenceLastSeen;
|
|
25
|
+
readonly groupOnlineCount?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare function parsePresenceNode(node: BinaryNode): ParsedPresence;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface ReceiptTarget {
|
|
2
|
+
readonly chatJid: string;
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly senderJid?: string;
|
|
5
|
+
readonly isGroupChat?: boolean;
|
|
6
|
+
readonly isBroadcastChat?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface AggregatedReceiptGroup {
|
|
9
|
+
readonly jid: string;
|
|
10
|
+
readonly ids: readonly string[];
|
|
11
|
+
readonly participant?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function aggregateReceiptTargets(targets: readonly ReceiptTarget[]): readonly AggregatedReceiptGroup[];
|
|
14
|
+
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { BinaryNode } from '../../transport/types';
|
|
2
|
-
|
|
2
|
+
interface ParsedRegistrationCode {
|
|
3
3
|
readonly kind: 'registration_code';
|
|
4
4
|
readonly code: string;
|
|
5
5
|
readonly expiryTimestampMs: number;
|
|
6
6
|
readonly fromDeviceId: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface ParsedAccountTakeoverNotice {
|
|
9
9
|
readonly kind: 'account_takeover_notice';
|
|
10
10
|
readonly serverToken: string;
|
|
11
11
|
readonly attemptTimestampMs: number;
|
|
@@ -13,5 +13,6 @@ export interface ParsedAccountTakeoverNotice {
|
|
|
13
13
|
readonly newDevicePlatform?: string;
|
|
14
14
|
readonly newDeviceAppVersion?: string;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
type ParsedRegistrationNotification = ParsedRegistrationCode | ParsedAccountTakeoverNotice | null;
|
|
17
17
|
export declare function parseRegistrationNotification(node: BinaryNode): ParsedRegistrationNotification;
|
|
18
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { WaClient } from './WaClient';
|
|
2
|
-
export type { WaAppStateMessageKey,
|
|
2
|
+
export type { WaAppStateMessageKey, WaAppStateMutationEvent, WaAppStateMutationSource, WaClearChatOptions, WaConnectionEvent, WaDeleteChatOptions, WaDeleteMessageForMeOptions, WaLogoutStoreClearOptions } from './types';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Readable } from 'node:stream';
|
|
2
2
|
import type { WaMediaOptions } from './types';
|
|
3
3
|
import type { Logger } from '../infra/log/types';
|
|
4
|
+
import type { WaMediaTransferClient } from '../media/transfer/WaMediaTransferClient';
|
|
5
|
+
import type { WaMediaConn } from '../media/types';
|
|
4
6
|
import type { WaSendMediaMessage } from '../message/types';
|
|
5
7
|
export interface ProcessedMediaFields {
|
|
6
8
|
readonly jpegThumbnail?: Uint8Array;
|
|
@@ -20,12 +22,44 @@ interface WebpAnimInfo {
|
|
|
20
22
|
export declare function parseWebpAnimation(data: Uint8Array): WebpAnimInfo | null;
|
|
21
23
|
export declare function isReadableStream(value: unknown): value is Readable;
|
|
22
24
|
export declare function cleanupTempFile(filePath: string): Promise<void>;
|
|
25
|
+
export interface StreamFileMetrics {
|
|
26
|
+
readonly fileSha256: Uint8Array;
|
|
27
|
+
readonly byteLength: number;
|
|
28
|
+
}
|
|
29
|
+
export type WaUploadMediaSource = Uint8Array | string | Readable;
|
|
30
|
+
export declare function selectMediaUploadHost(mediaConn: WaMediaConn): string;
|
|
31
|
+
export declare function buildMediaUploadUrl(host: string, path: string, auth: string, fileSha256: Uint8Array, mediaId?: string): string;
|
|
32
|
+
export declare function assertMediaUploadStatus(status: number, label: string): void;
|
|
33
|
+
export declare function parseMediaUploadJsonBody<T>(body: Uint8Array, label: string): T;
|
|
34
|
+
export interface PlaintextMediaUploadDeps {
|
|
35
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
36
|
+
readonly mediaConn: WaMediaConn;
|
|
37
|
+
readonly logger: Logger;
|
|
38
|
+
}
|
|
39
|
+
export interface PlaintextMediaUploadInput {
|
|
40
|
+
readonly source: WaUploadMediaSource;
|
|
41
|
+
readonly path: string;
|
|
42
|
+
readonly mimetype?: string;
|
|
43
|
+
readonly logLabel?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface PlaintextMediaUploadResult {
|
|
46
|
+
readonly responseBytes: Uint8Array;
|
|
47
|
+
readonly status: number;
|
|
48
|
+
readonly fileSha256: Uint8Array;
|
|
49
|
+
readonly byteLength: number;
|
|
50
|
+
readonly mediaId: string;
|
|
51
|
+
}
|
|
52
|
+
export declare function performPlaintextMediaUpload(deps: PlaintextMediaUploadDeps, input: PlaintextMediaUploadInput): Promise<PlaintextMediaUploadResult>;
|
|
23
53
|
export interface ResolvedMediaInputs {
|
|
24
54
|
readonly processorInput?: Uint8Array | string;
|
|
25
55
|
readonly uploadMedia: Uint8Array | Readable;
|
|
26
56
|
readonly tempFilePath?: string;
|
|
27
57
|
}
|
|
28
58
|
export declare function resolveMediaInputs(shouldProcess: boolean, raw: Uint8Array | ArrayBuffer | Readable | string): Promise<ResolvedMediaInputs>;
|
|
59
|
+
export declare function shouldNormalizeVoiceNote(media: WaMediaOptions | undefined, content: WaSendMediaMessage): content is WaSendMediaMessage & {
|
|
60
|
+
type: 'audio';
|
|
61
|
+
};
|
|
29
62
|
export declare function hasMediaProcessingTasks(media: WaMediaOptions | undefined, content: WaSendMediaMessage): boolean;
|
|
63
|
+
export declare function getScopedMediaLogger(parent: Logger): Logger;
|
|
30
64
|
export declare function runMediaProcessor(media: WaMediaOptions | undefined, input: Uint8Array | string | undefined, content: WaSendMediaMessage, logger: Logger): Promise<ProcessedMediaFields>;
|
|
31
65
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
1
2
|
import type { Logger } from '../../infra/log/types';
|
|
2
3
|
import type { SignalDeviceSyncApi } from '../../signal/api/SignalDeviceSyncApi';
|
|
3
4
|
export type DeviceFanoutResolver = {
|
|
@@ -8,7 +9,6 @@ export type DeviceFanoutResolver = {
|
|
|
8
9
|
};
|
|
9
10
|
export declare function createDeviceFanoutResolver(options: {
|
|
10
11
|
readonly signalDeviceSync: SignalDeviceSyncApi;
|
|
11
|
-
readonly
|
|
12
|
-
readonly getCurrentMeLid: () => string | null | undefined;
|
|
12
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
13
13
|
readonly logger: Logger;
|
|
14
14
|
}): DeviceFanoutResolver;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WaGroupEvent } from '../types';
|
|
2
|
+
import type { Logger } from '../../infra/log/types';
|
|
3
|
+
import type { WaGroupMetadataStore } from '../../store/contracts/group-metadata.store';
|
|
4
|
+
export type GroupMetadataQueryResult = {
|
|
5
|
+
readonly participants: readonly string[];
|
|
6
|
+
readonly ephemeral?: number;
|
|
7
|
+
};
|
|
8
|
+
export type GroupMetadataCache = {
|
|
9
|
+
resolveParticipantUsers(groupJid: string): Promise<readonly string[]>;
|
|
10
|
+
refreshParticipantUsers(groupJid: string): Promise<readonly string[]>;
|
|
11
|
+
getEphemeral(groupJid: string): Promise<number | null>;
|
|
12
|
+
resolveEphemeral(groupJid: string): Promise<number | null>;
|
|
13
|
+
mutateFromGroupEvent(event: WaGroupEvent): Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
export declare function createGroupMetadataCache(options: {
|
|
16
|
+
readonly groupMetadataStore: WaGroupMetadataStore;
|
|
17
|
+
readonly queryGroupMetadata: (groupJid: string) => Promise<GroupMetadataQueryResult>;
|
|
18
|
+
readonly logger: Logger;
|
|
19
|
+
}): GroupMetadataCache;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WaIgnoreKey, WaIgnoreKeyContext, WaIgnoreKeyPredicate, WaIncomingStanzaFilter } from '../types';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
export declare function validateIgnoreKey(d: WaIgnoreKey): void;
|
|
4
|
+
/**
|
|
5
|
+
* Builds the parsed context handed to a {@link WaIgnoreKeyPredicate}. Returns
|
|
6
|
+
* `null` when the node's tag is not one of the addressable kinds (`<iq>`, etc.).
|
|
7
|
+
*/
|
|
8
|
+
export declare function extractIgnoreKeyContext(node: BinaryNode, meJid: string | null | undefined): WaIgnoreKeyContext | null;
|
|
9
|
+
/** Pure matcher. Exported for direct testing without a coordinator. */
|
|
10
|
+
export declare function matchesIgnoreKey(node: BinaryNode, d: WaIgnoreKey, meJid: string | null | undefined): boolean;
|
|
11
|
+
export declare function createIgnoreKeyFilter(input: WaIgnoreKey | WaIgnoreKeyPredicate, getMeJid: () => string | null | undefined): WaIncomingStanzaFilter;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import type { WaAppStateSyncKey } from '../../appstate/types';
|
|
2
|
+
import type { WaAuthCredentials } from '../../auth/types';
|
|
2
3
|
import type { DeviceFanoutResolver } from '../messaging/fanout';
|
|
3
|
-
import type { WaSignalMessagePublishInput } from '../types';
|
|
4
4
|
import type { Logger } from '../../infra/log/types';
|
|
5
|
-
import type {
|
|
6
|
-
|
|
5
|
+
import type { WaMessagePublishResult } from '../../message/types';
|
|
6
|
+
import { type Proto } from '../../proto';
|
|
7
|
+
export type PublishProtocolMessageToDeviceFn = (deviceJid: string, protocolMessage: Proto.Message.IProtocolMessage, options?: {
|
|
8
|
+
readonly id?: string;
|
|
9
|
+
readonly pushPriority?: 'high' | 'high_force';
|
|
10
|
+
}) => Promise<WaMessagePublishResult>;
|
|
7
11
|
export type AppStateSyncKeyProtocol = {
|
|
8
12
|
requestKeys(keyIds: readonly Uint8Array[]): Promise<readonly string[]>;
|
|
9
13
|
sendKeyShare(toDeviceJid: string, keys: readonly WaAppStateSyncKey[], missingKeyIds?: readonly Uint8Array[]): Promise<void>;
|
|
10
14
|
};
|
|
11
15
|
export declare function createAppStateSyncKeyProtocol(options: {
|
|
12
|
-
readonly
|
|
16
|
+
readonly publishProtocolMessageToDevice: PublishProtocolMessageToDeviceFn;
|
|
13
17
|
readonly fanoutResolver: DeviceFanoutResolver;
|
|
14
|
-
readonly
|
|
15
|
-
readonly getCurrentMeLid: () => string | null | undefined;
|
|
18
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
16
19
|
readonly logger: Logger;
|
|
17
20
|
}): AppStateSyncKeyProtocol;
|
|
18
|
-
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { WaMediaTransferClient } from '../../media/transfer/WaMediaTransferClient';
|
|
3
|
+
import type { WaMediaConn } from '../../media/types';
|
|
4
|
+
import type { WaLinkPreviewThumbnailFields } from '../../message/addons/link-preview/builder';
|
|
5
|
+
import type { WaLinkPreviewFetcher, WaLinkPreviewOptions, WaLinkPreviewOverride, WaLinkPreviewResolved } from '../../message/addons/link-preview/types';
|
|
6
|
+
import type { ServerClock } from '../../util/clock';
|
|
7
|
+
export interface ResolveLinkPreviewDeps {
|
|
8
|
+
readonly logger: Logger;
|
|
9
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
10
|
+
readonly getMediaConn: () => Promise<WaMediaConn>;
|
|
11
|
+
readonly fetcher: WaLinkPreviewFetcher;
|
|
12
|
+
readonly options: WaLinkPreviewOptions;
|
|
13
|
+
readonly serverClock: ServerClock;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolvedLinkPreviewResult {
|
|
16
|
+
readonly resolved: WaLinkPreviewResolved;
|
|
17
|
+
readonly thumbnailFields: WaLinkPreviewThumbnailFields;
|
|
18
|
+
}
|
|
19
|
+
export declare function resolveLinkPreview(text: string, perMessage: boolean | WaLinkPreviewOverride | undefined, deps: ResolveLinkPreviewDeps): Promise<ResolvedLinkPreviewResult | null>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ResolvedLinkPreviewResult } from '../messaging/link-preview';
|
|
2
|
+
import type { WaMediaOptions } from '../types';
|
|
3
|
+
import type { Logger } from '../../infra/log/types';
|
|
4
|
+
import type { WaMediaTransferClient } from '../../media/transfer/WaMediaTransferClient';
|
|
5
|
+
import type { WaMediaConn } from '../../media/types';
|
|
6
|
+
import type { WaMessageBuildResult, WaSendMessageContent, WaSendTextMessage } from '../../message/types';
|
|
7
|
+
import type { BinaryNode } from '../../transport/types';
|
|
8
|
+
import type { ServerClock } from '../../util/clock';
|
|
9
|
+
export interface WaMediaMessageOptions {
|
|
10
|
+
readonly logger: Logger;
|
|
11
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
12
|
+
readonly iqTimeoutMs?: number;
|
|
13
|
+
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
14
|
+
readonly getMediaConnCache: () => WaMediaConn | null;
|
|
15
|
+
readonly setMediaConnCache: (mediaConn: WaMediaConn | null) => void;
|
|
16
|
+
readonly serverClock: ServerClock;
|
|
17
|
+
readonly media?: WaMediaOptions;
|
|
18
|
+
readonly linkPreviewResolver?: (content: WaSendTextMessage) => Promise<ResolvedLinkPreviewResult | null>;
|
|
19
|
+
}
|
|
20
|
+
export interface WaBuildMessageContext {
|
|
21
|
+
readonly to: string;
|
|
22
|
+
/** Outgoing stanza id, pre-resolved. Required for addon-crypto kinds (poll-vote, event-response). */
|
|
23
|
+
readonly outgoingStanzaId?: string;
|
|
24
|
+
/** Current me jid (used as modificationSender for addon crypto). */
|
|
25
|
+
readonly meJid?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function buildMediaMessageContent(options: WaMediaMessageOptions, content: WaSendMessageContent, ctx?: WaBuildMessageContext): Promise<WaMessageBuildResult>;
|
|
28
|
+
export declare function getMediaConn(options: WaMediaMessageOptions, forceRefresh?: boolean): Promise<WaMediaConn>;
|