zapo-js 0.2.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +103 -179
- package/dist/appstate/{WaAppStateCrypto.js → crypto/WaAppStateCrypto.js} +79 -62
- package/dist/appstate/index.js +8 -7
- package/dist/appstate/{encoding.js → parsers/encoding.js} +11 -4
- package/dist/appstate/{WaAppStateSyncResponseParser.js → parsers/response-parser.js} +20 -8
- package/dist/appstate/{WaAppStateSyncClient.js → sync/WaAppStateSyncClient.js} +246 -88
- package/dist/appstate/utils.js +16 -0
- package/dist/appstate-spec.js +89 -0
- package/dist/auth/WaAuthClient.js +117 -13
- package/dist/auth/credentials-flow.js +207 -0
- package/dist/auth/pairing/WaPairingFlow.js +53 -47
- package/dist/auth/pairing/pairing-code-crypto.js +91 -0
- package/dist/client/WaClient.js +369 -460
- package/dist/client/WaClientFactory.js +377 -93
- package/dist/client/connection/WaConnectionManager.js +31 -11
- package/dist/client/coordinators/WaAbPropsCoordinator.js +140 -0
- 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 -180
- package/dist/client/coordinators/WaEmailCoordinator.js +64 -0
- package/dist/client/coordinators/WaGroupCoordinator.js +529 -52
- package/dist/client/coordinators/WaIncomingNodeCoordinator.js +130 -20
- package/dist/client/coordinators/WaLowLevelCoordinator.js +41 -0
- package/dist/client/coordinators/WaMessageCoordinator.js +365 -0
- package/dist/client/coordinators/WaMessageDispatchCoordinator.js +724 -216
- package/dist/client/coordinators/WaNewsletterCoordinator.js +18 -0
- package/dist/client/coordinators/WaOfflineResumeCoordinator.js +114 -0
- package/dist/client/coordinators/WaPassiveTasksCoordinator.js +53 -22
- package/dist/client/coordinators/WaPresenceCoordinator.js +21 -0
- package/dist/client/coordinators/WaPrivacyCoordinator.js +7 -5
- package/dist/client/coordinators/WaProfileCoordinator.js +223 -50
- package/dist/client/coordinators/WaRetryCoordinator.js +256 -123
- package/dist/client/coordinators/WaStatusCoordinator.js +49 -0
- package/dist/client/coordinators/WaStreamControlCoordinator.js +6 -6
- package/dist/client/coordinators/WaTrustedContactTokenCoordinator.js +29 -10
- package/dist/client/events/abprops.js +43 -0
- 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} +34 -20
- 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/privacy-token.js +1 -2
- package/dist/client/events/receipt.js +26 -0
- package/dist/client/events/registration.js +42 -0
- package/dist/client/media.js +400 -0
- package/dist/client/messaging/fanout.js +9 -10
- package/dist/client/messaging/{participants.js → group-metadata.js} +73 -35
- package/dist/client/messaging/ignore-key.js +132 -0
- package/dist/client/messaging/key-protocol.js +3 -17
- 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 +9 -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 +9 -9
- package/dist/crypto/core/xeddsa.js +59 -0
- package/dist/crypto/curves/Ed25519.js +32 -21
- package/dist/crypto/curves/X25519.js +71 -17
- package/dist/crypto/curves/constants.js +3 -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} +72 -55
- package/dist/esm/appstate/index.js +5 -5
- package/dist/esm/appstate/{encoding.js → parsers/encoding.js} +11 -4
- package/dist/esm/appstate/{WaAppStateSyncResponseParser.js → parsers/response-parser.js} +20 -8
- package/dist/esm/appstate/{WaAppStateSyncClient.js → sync/WaAppStateSyncClient.js} +235 -76
- package/dist/esm/appstate/utils.js +16 -0
- package/dist/esm/appstate-spec.js +79 -0
- package/dist/esm/auth/WaAuthClient.js +114 -10
- package/dist/esm/auth/credentials-flow.js +202 -0
- package/dist/esm/auth/pairing/WaPairingFlow.js +52 -46
- package/dist/esm/auth/pairing/pairing-code-crypto.js +85 -0
- package/dist/esm/client/WaClient.js +372 -463
- package/dist/esm/client/WaClientFactory.js +380 -96
- package/dist/esm/client/connection/WaConnectionManager.js +31 -11
- package/dist/esm/client/coordinators/WaAbPropsCoordinator.js +136 -0
- 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 +78 -177
- package/dist/esm/client/coordinators/WaEmailCoordinator.js +61 -0
- package/dist/esm/client/coordinators/WaGroupCoordinator.js +532 -55
- package/dist/esm/client/coordinators/WaIncomingNodeCoordinator.js +132 -22
- 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 +719 -211
- package/dist/esm/client/coordinators/WaNewsletterCoordinator.js +13 -0
- package/dist/esm/client/coordinators/WaOfflineResumeCoordinator.js +110 -0
- package/dist/esm/client/coordinators/WaPassiveTasksCoordinator.js +54 -23
- 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 +226 -53
- package/dist/esm/client/coordinators/WaRetryCoordinator.js +258 -125
- package/dist/esm/client/coordinators/WaStatusCoordinator.js +46 -0
- package/dist/esm/client/coordinators/WaStreamControlCoordinator.js +6 -6
- package/dist/esm/client/coordinators/WaTrustedContactTokenCoordinator.js +31 -12
- package/dist/esm/client/events/abprops.js +40 -0
- 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} +34 -20
- 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/privacy-token.js +1 -2
- package/dist/esm/client/events/receipt.js +23 -0
- package/dist/esm/client/events/registration.js +39 -0
- package/dist/esm/client/media.js +384 -0
- package/dist/esm/client/messaging/fanout.js +10 -11
- package/dist/esm/client/messaging/{participants.js → group-metadata.js} +72 -34
- 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 +3 -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 +8 -7
- package/dist/esm/crypto/core/xeddsa.js +55 -0
- package/dist/esm/crypto/curves/Ed25519.js +35 -24
- package/dist/esm/crypto/curves/X25519.js +74 -20
- package/dist/esm/crypto/curves/constants.js +2 -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/infra/perf/StoreLock.js +7 -4
- package/dist/esm/media/constants.js +35 -2
- package/dist/esm/media/crypto/WaMediaCrypto.js +374 -0
- package/dist/esm/media/index.js +4 -3
- package/dist/esm/media/processor.js +1 -0
- package/dist/esm/media/sticker/sticker-pack.js +133 -0
- package/dist/esm/media/{WaMediaTransferClient.js → transfer/WaMediaTransferClient.js} +84 -196
- 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/crypto/addon-crypto.js +244 -0
- package/dist/esm/message/{icdc.js → crypto/icdc.js} +11 -13
- package/dist/esm/message/crypto/phash.js +133 -0
- package/dist/esm/message/{reporting-token.js → crypto/reporting-token.js} +7 -7
- package/dist/esm/message/{use-case-secret.js → crypto/use-case-secret.js} +21 -4
- package/dist/esm/message/{content.js → encode/content.js} +183 -8
- 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/primitives/incoming.js +511 -0
- package/dist/esm/message/primitives/peer-data-operation.js +93 -0
- package/dist/esm/mex.js +1 -0
- package/dist/esm/protocol/abprops.js +169 -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 +22 -0
- package/dist/esm/protocol/business.js +19 -0
- package/dist/esm/protocol/call.js +48 -0
- package/dist/esm/protocol/constants.js +10 -2
- package/dist/esm/protocol/defaults.js +3 -0
- package/dist/esm/protocol/email.js +30 -0
- package/dist/esm/protocol/index.js +1 -1
- package/dist/esm/protocol/jid.js +142 -11
- 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 +26 -2
- package/dist/esm/protocol/notification.js +24 -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 +6 -1
- package/dist/esm/retry/replay.js +131 -37
- package/dist/esm/retry/tracker.js +4 -8
- package/dist/esm/signal/api/SignalDeviceSyncApi.js +71 -21
- package/dist/esm/signal/api/SignalDigestSyncApi.js +15 -8
- package/dist/esm/signal/api/SignalIdentitySyncApi.js +13 -4
- 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/attestation/WaAdvSignature.js +17 -0
- package/dist/esm/signal/{crypto → attestation}/constants.js +0 -4
- package/dist/esm/signal/constants.js +3 -0
- package/dist/esm/signal/encoding.js +6 -332
- package/dist/esm/signal/group/SenderKeyChain.js +20 -35
- package/dist/esm/signal/group/SenderKeyCodec.js +5 -6
- package/dist/esm/signal/group/SenderKeyManager.js +37 -17
- 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 +12 -3
- package/dist/esm/signal/registration/utils.js +8 -2
- package/dist/esm/signal/session/SignalProtocol.js +129 -26
- package/dist/esm/signal/session/SignalRatchet.js +46 -64
- package/dist/esm/signal/session/SignalSerializer.js +5 -6
- package/dist/esm/signal/session/SignalSession.js +14 -19
- package/dist/esm/signal/session/encoding.js +173 -0
- package/dist/esm/signal/session/resolver.js +144 -35
- 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/contracts/identity.store.js +1 -0
- package/dist/esm/store/contracts/message-secret.store.js +1 -0
- package/dist/esm/store/contracts/pre-key.store.js +1 -0
- package/dist/esm/store/contracts/session.store.js +1 -0
- package/dist/esm/store/createStore.js +129 -39
- package/dist/esm/store/index.js +15 -10
- 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/identity.lock.js +16 -0
- package/dist/esm/store/locks/message-secret.lock.js +17 -0
- package/dist/esm/store/locks/pre-key.lock.js +27 -0
- package/dist/esm/store/locks/session.lock.js +19 -0
- package/dist/esm/store/locks/signal.lock.js +0 -24
- 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} +24 -12
- package/dist/esm/store/memory/identity.store.js +31 -0
- package/dist/esm/store/memory/message-secret.store.js +90 -0
- package/dist/esm/store/{providers/memory → memory}/message.store.js +2 -2
- package/dist/esm/store/memory/pre-key.store.js +97 -0
- package/dist/esm/store/{providers/memory → memory}/privacy-token.store.js +1 -1
- package/dist/esm/store/{providers/memory → memory}/retry.store.js +49 -14
- package/dist/esm/store/{providers/memory → memory}/sender-key.store.js +3 -3
- package/dist/esm/store/memory/session.store.js +45 -0
- package/dist/esm/store/memory/signal.store.js +36 -0
- package/dist/esm/store/{providers/memory → memory}/thread.store.js +2 -2
- package/dist/esm/store/noop.store.js +26 -4
- package/dist/esm/transport/WaComms.js +18 -8
- package/dist/esm/transport/WaWebSocket.js +41 -9
- 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 +7 -0
- package/dist/esm/transport/keepalive/WaKeepAlive.js +35 -12
- package/dist/esm/transport/node/WaMobileTcpSocket.js +120 -0
- package/dist/esm/transport/node/WaNodeOrchestrator.js +26 -13
- package/dist/esm/transport/node/WaNodeTransport.js +13 -0
- package/dist/esm/transport/node/builders/abprops.js +20 -0
- 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 +11 -0
- package/dist/esm/transport/node/builders/email.js +66 -0
- 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/offline.js +14 -0
- package/dist/esm/transport/node/builders/passive.js +7 -0
- package/dist/esm/transport/node/builders/prekeys.js +40 -43
- package/dist/esm/transport/node/builders/presence.js +39 -0
- package/dist/esm/transport/node/builders/privacy-token.js +19 -23
- 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/retry.js +1 -1
- 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 +27 -1
- package/dist/esm/transport/node/mex/argo-decoder.js +152 -0
- package/dist/esm/transport/node/mex/client.js +105 -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 +23 -18
- package/dist/esm/transport/noise/WaFrameCodec.js +2 -2
- package/dist/esm/transport/noise/WaMobileClientPayload.js +58 -0
- package/dist/esm/transport/noise/WaNoiseCert.js +14 -27
- package/dist/esm/transport/noise/WaNoiseHandshake.js +27 -25
- package/dist/esm/transport/noise/WaNoiseSession.js +48 -67
- 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 +31 -1
- 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/infra/perf/StoreLock.js +7 -4
- package/dist/media/constants.js +36 -3
- package/dist/media/crypto/WaMediaCrypto.js +378 -0
- package/dist/media/index.js +9 -4
- package/dist/media/processor.js +2 -0
- package/dist/media/sticker/sticker-pack.js +136 -0
- package/dist/media/{WaMediaTransferClient.js → transfer/WaMediaTransferClient.js} +87 -229
- 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/crypto/addon-crypto.js +254 -0
- package/dist/message/{icdc.js → crypto/icdc.js} +11 -13
- package/dist/message/crypto/phash.js +136 -0
- package/dist/message/{reporting-token.js → crypto/reporting-token.js} +7 -7
- package/dist/message/{use-case-secret.js → crypto/use-case-secret.js} +21 -4
- package/dist/message/{content.js → encode/content.js} +200 -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} +225 -38
- 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 +173 -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 +23 -0
- package/dist/protocol/business.js +22 -0
- package/dist/protocol/call.js +51 -0
- package/dist/protocol/constants.js +51 -3
- package/dist/protocol/defaults.js +3 -0
- package/dist/protocol/email.js +33 -0
- package/dist/protocol/index.js +12 -3
- package/dist/protocol/jid.js +148 -11
- 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 +26 -2
- package/dist/protocol/notification.js +25 -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 +6 -1
- package/dist/retry/replay.js +129 -35
- package/dist/retry/tracker.js +3 -7
- package/dist/signal/api/SignalDeviceSyncApi.js +69 -19
- package/dist/signal/api/SignalDigestSyncApi.js +14 -7
- package/dist/signal/api/SignalIdentitySyncApi.js +13 -4
- 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/attestation/WaAdvSignature.js +26 -0
- package/dist/signal/{crypto → attestation}/constants.js +1 -5
- package/dist/signal/constants.js +4 -1
- package/dist/signal/encoding.js +5 -341
- package/dist/signal/group/SenderKeyChain.js +19 -34
- package/dist/signal/group/SenderKeyCodec.js +4 -5
- package/dist/signal/group/SenderKeyManager.js +36 -16
- 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 -2
- package/dist/signal/registration/utils.js +8 -2
- package/dist/signal/session/SignalProtocol.js +128 -25
- package/dist/signal/session/SignalRatchet.js +41 -60
- package/dist/signal/session/SignalSerializer.js +5 -6
- package/dist/signal/session/SignalSession.js +13 -19
- package/dist/signal/session/encoding.js +183 -0
- package/dist/signal/session/resolver.js +144 -35
- 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/contracts/identity.store.js +2 -0
- package/dist/store/contracts/message-secret.store.js +2 -0
- package/dist/store/contracts/pre-key.store.js +2 -0
- package/dist/store/contracts/session.store.js +2 -0
- package/dist/store/createStore.js +128 -38
- package/dist/store/index.js +22 -12
- 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/identity.lock.js +19 -0
- package/dist/store/locks/message-secret.lock.js +20 -0
- package/dist/store/locks/pre-key.lock.js +30 -0
- package/dist/store/locks/session.lock.js +22 -0
- package/dist/store/locks/signal.lock.js +0 -24
- 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} +26 -14
- package/dist/store/memory/identity.store.js +35 -0
- package/dist/store/memory/message-secret.store.js +94 -0
- package/dist/store/{providers/memory → memory}/message.store.js +2 -2
- package/dist/store/memory/pre-key.store.js +101 -0
- package/dist/store/{providers/memory → memory}/privacy-token.store.js +1 -1
- package/dist/store/{providers/memory → memory}/retry.store.js +49 -14
- package/dist/store/{providers/memory → memory}/sender-key.store.js +3 -3
- package/dist/store/memory/session.store.js +49 -0
- package/dist/store/memory/signal.store.js +40 -0
- package/dist/store/{providers/memory → memory}/thread.store.js +2 -2
- package/dist/store/noop.store.js +27 -5
- package/dist/transport/WaComms.js +18 -8
- package/dist/transport/WaWebSocket.js +41 -9
- 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 +19 -1
- package/dist/transport/keepalive/WaKeepAlive.js +35 -12
- package/dist/transport/node/WaMobileTcpSocket.js +124 -0
- package/dist/transport/node/WaNodeOrchestrator.js +25 -12
- package/dist/transport/node/WaNodeTransport.js +13 -0
- package/dist/transport/node/builders/abprops.js +23 -0
- 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 +14 -0
- package/dist/transport/node/builders/email.js +73 -0
- package/dist/transport/node/builders/global.js +1 -1
- 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/offline.js +17 -0
- package/dist/transport/node/builders/passive.js +10 -0
- package/dist/transport/node/builders/prekeys.js +38 -41
- package/dist/transport/node/builders/presence.js +43 -0
- package/dist/transport/node/builders/privacy-token.js +18 -22
- package/dist/transport/node/builders/privacy.js +5 -5
- package/dist/transport/node/builders/profile.js +30 -7
- package/dist/transport/node/builders/retry.js +1 -1
- package/dist/transport/node/builders/tos.js +63 -0
- package/dist/transport/node/builders/usync.js +52 -1
- package/dist/transport/node/helpers.js +28 -1
- package/dist/transport/node/mex/argo-decoder.js +189 -0
- package/dist/transport/node/mex/client.js +109 -0
- package/dist/transport/node/query.js +17 -0
- package/dist/transport/node/usync.js +13 -0
- package/dist/transport/noise/WaClientPayload.js +22 -17
- package/dist/transport/noise/WaFrameCodec.js +1 -1
- package/dist/transport/noise/WaMobileClientPayload.js +61 -0
- package/dist/transport/noise/WaNoiseCert.js +13 -26
- package/dist/transport/noise/WaNoiseHandshake.js +25 -23
- package/dist/transport/noise/WaNoiseSession.js +47 -66
- package/dist/transport/noise/WaNoiseSocket.js +18 -12
- 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} +29 -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/{WaAppStateSyncResponseParser.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 +17 -1
- package/dist/types/appstate-spec.d.ts +24 -0
- package/dist/types/auth/WaAuthClient.d.ts +95 -3
- package/dist/types/auth/credentials-flow.d.ts +21 -0
- package/dist/types/auth/pairing/WaPairingFlow.d.ts +3 -2
- package/dist/types/auth/pairing/{WaPairingCodeCrypto.d.ts → pairing-code-crypto.d.ts} +5 -1
- package/dist/types/auth/types.d.ts +88 -1
- package/dist/types/client/WaClient.d.ts +183 -65
- package/dist/types/client/WaClientFactory.d.ts +40 -9
- 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/WaAbPropsCoordinator.d.ts +26 -0
- 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 +45 -44
- package/dist/types/client/coordinators/WaEmailCoordinator.d.ts +40 -0
- package/dist/types/client/coordinators/WaGroupCoordinator.d.ts +311 -9
- package/dist/types/client/coordinators/WaIncomingNodeCoordinator.d.ts +16 -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 +65 -29
- package/dist/types/client/coordinators/WaNewsletterCoordinator.d.ts +13 -0
- package/dist/types/client/coordinators/WaOfflineResumeCoordinator.d.ts +31 -0
- package/dist/types/client/coordinators/WaPassiveTasksCoordinator.d.ts +15 -3
- package/dist/types/client/coordinators/WaPresenceCoordinator.d.ts +27 -0
- package/dist/types/client/coordinators/WaPrivacyCoordinator.d.ts +28 -1
- package/dist/types/client/coordinators/WaProfileCoordinator.d.ts +117 -2
- package/dist/types/client/coordinators/WaRetryCoordinator.d.ts +23 -15
- package/dist/types/client/coordinators/WaStatusCoordinator.d.ts +42 -0
- package/dist/types/client/coordinators/WaTrustedContactTokenCoordinator.d.ts +16 -2
- package/dist/types/client/events/abprops.d.ts +15 -0
- 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} +7 -4
- package/dist/types/client/events/group.d.ts +2 -1
- package/dist/types/client/events/identity.d.ts +2 -1
- package/dist/types/client/events/incoming.d.ts +65 -0
- 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 +18 -0
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/media.d.ts +65 -0
- 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 +13 -2
- package/dist/types/client/persistence/history-sync.d.ts +29 -0
- package/dist/types/client/persistence/mailbox.d.ts +12 -0
- package/dist/types/client/tokens/cs-token.d.ts +1 -3
- package/dist/types/client/types.d.ts +926 -55
- package/dist/types/crypto/core/hkdf.d.ts +10 -2
- package/dist/types/crypto/core/index.d.ts +3 -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 +7 -1
- package/dist/types/crypto/core/xeddsa.d.ts +11 -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 -2
- package/dist/types/crypto/curves/types.d.ts +0 -5
- package/dist/types/crypto/index.d.ts +1 -0
- 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 +32 -5
- package/dist/types/infra/log/ConsoleLogger.d.ts +19 -2
- package/dist/types/infra/log/PinoLogger.d.ts +56 -2
- package/dist/types/infra/log/types.d.ts +6 -0
- package/dist/types/infra/perf/BackgroundQueue.d.ts +19 -0
- package/dist/types/infra/perf/StoreLock.d.ts +1 -0
- package/dist/types/media/constants.d.ts +9 -2
- package/dist/types/media/crypto/WaMediaCrypto.d.ts +59 -0
- package/dist/types/media/index.d.ts +7 -4
- package/dist/types/media/processor.d.ts +50 -0
- package/dist/types/media/sticker/sticker-pack.d.ts +6 -0
- package/dist/types/media/{WaMediaTransferClient.d.ts → transfer/WaMediaTransferClient.d.ts} +33 -12
- package/dist/types/media/transfer/conn.d.ts +7 -0
- package/dist/types/media/types.d.ts +10 -5
- 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/crypto/addon-crypto.d.ts +78 -0
- package/dist/types/message/{icdc.d.ts → crypto/icdc.d.ts} +6 -6
- 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 +218 -28
- package/dist/types/mex.d.ts +2 -0
- package/dist/types/proto.d.ts +2 -2
- package/dist/types/protocol/abprops.d.ts +151 -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 +9 -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 +20 -3
- package/dist/types/protocol/defaults.d.ts +3 -0
- package/dist/types/protocol/email.d.ts +32 -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 +79 -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 +24 -0
- package/dist/types/protocol/notification.d.ts +22 -0
- package/dist/types/protocol/presence.d.ts +16 -0
- package/dist/types/protocol/status.d.ts +7 -0
- package/dist/types/protocol/stream.d.ts +1 -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 +6 -1
- 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 +13 -0
- package/dist/types/signal/api/SignalIdentitySyncApi.d.ts +12 -3
- 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 -4
- 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 -62
- package/dist/types/signal/group/SenderKeyChain.d.ts +2 -2
- package/dist/types/signal/group/SenderKeyManager.d.ts +24 -2
- 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 +7 -1
- package/dist/types/signal/session/SignalProtocol.d.ts +66 -2
- package/dist/types/signal/session/SignalRatchet.d.ts +2 -3
- package/dist/types/signal/session/SignalSerializer.d.ts +2 -1
- 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 +18 -2
- package/dist/types/signal/types.d.ts +16 -4
- 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/identity.store.d.ts +11 -0
- package/dist/types/store/contracts/message-secret.store.d.ts +16 -0
- package/dist/types/store/contracts/message.store.d.ts +0 -2
- package/dist/types/store/contracts/pre-key.store.d.ts +13 -0
- package/dist/types/store/contracts/session.store.d.ts +14 -0
- package/dist/types/store/contracts/signal.store.d.ts +1 -34
- package/dist/types/store/createStore.d.ts +54 -2
- package/dist/types/store/index.d.ts +22 -13
- package/dist/types/store/locks/group-metadata.lock.d.ts +2 -0
- package/dist/types/store/locks/identity.lock.d.ts +3 -0
- package/dist/types/store/locks/message-secret.lock.d.ts +3 -0
- package/dist/types/store/locks/pre-key.lock.d.ts +3 -0
- package/dist/types/store/locks/session.lock.d.ts +3 -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/memory/identity.store.d.ts +18 -0
- package/dist/types/store/memory/message-secret.store.d.ts +31 -0
- package/dist/types/store/{providers/memory → memory}/message.store.d.ts +1 -1
- package/dist/types/store/memory/pre-key.store.d.ts +23 -0
- 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 +23 -4
- package/dist/types/store/{providers/memory → memory}/sender-key.store.d.ts +2 -2
- package/dist/types/store/memory/session.store.d.ts +21 -0
- package/dist/types/store/memory/signal.store.d.ts +16 -0
- package/dist/types/store/{providers/memory → memory}/thread.store.d.ts +1 -1
- package/dist/types/store/noop.store.d.ts +6 -2
- package/dist/types/store/types.d.ts +271 -7
- package/dist/types/transport/WaComms.d.ts +5 -0
- package/dist/types/transport/WaWebSocket.d.ts +6 -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 +9 -0
- package/dist/types/transport/keepalive/WaKeepAlive.d.ts +11 -1
- package/dist/types/transport/node/WaMobileTcpSocket.d.ts +24 -0
- package/dist/types/transport/node/WaNodeOrchestrator.d.ts +11 -2
- package/dist/types/transport/node/WaNodeTransport.d.ts +13 -0
- package/dist/types/transport/node/builders/abprops.d.ts +5 -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/device.d.ts +2 -0
- package/dist/types/transport/node/builders/email.d.ts +11 -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/offline.d.ts +2 -0
- package/dist/types/transport/node/builders/passive.d.ts +3 -0
- package/dist/types/transport/node/builders/prekeys.d.ts +4 -3
- package/dist/types/transport/node/builders/presence.d.ts +13 -0
- 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 +3 -1
- package/dist/types/transport/node/mex/argo-decoder.d.ts +11 -0
- package/dist/types/transport/node/mex/client.d.ts +29 -0
- 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 +34 -0
- package/dist/types/transport/noise/WaNoiseCert.d.ts +12 -1
- package/dist/types/transport/noise/WaNoiseHandshake.d.ts +12 -6
- package/dist/types/transport/noise/WaNoiseSession.d.ts +1 -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/proxy.d.ts +5 -0
- package/dist/types/transport/types.d.ts +15 -0
- 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 +37 -11
- 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/auth/flow/WaAuthCredentialsFlow.js +0 -130
- package/dist/auth/pairing/WaPairingCodeCrypto.js +0 -77
- package/dist/auth/pairing/constants.js +0 -5
- package/dist/client/connection/WaKeyShareCoordinator.js +0 -63
- package/dist/client/events/chat.js +0 -227
- package/dist/client/incoming.js +0 -269
- package/dist/client/mailbox.js +0 -50
- package/dist/client/messages.js +0 -228
- package/dist/esm/auth/flow/WaAuthCredentialsFlow.js +0 -125
- package/dist/esm/auth/pairing/WaPairingCodeCrypto.js +0 -73
- package/dist/esm/auth/pairing/constants.js +0 -2
- package/dist/esm/client/connection/WaKeyShareCoordinator.js +0 -59
- package/dist/esm/client/events/chat.js +0 -224
- package/dist/esm/client/incoming.js +0 -260
- package/dist/esm/client/mailbox.js +0 -47
- package/dist/esm/client/messages.js +0 -224
- package/dist/esm/media/WaMediaCrypto.js +0 -304
- package/dist/esm/message/addon-crypto.js +0 -59
- package/dist/esm/message/incoming.js +0 -325
- package/dist/esm/message/phash.js +0 -27
- package/dist/esm/signal/crypto/WaAdvSignature.js +0 -64
- 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 -64
- package/dist/esm/store/providers/memory/signal.store.js +0 -199
- package/dist/esm/transport/node/builders/index.js +0 -11
- package/dist/media/WaMediaCrypto.js +0 -308
- package/dist/message/addon-crypto.js +0 -65
- package/dist/message/phash.js +0 -30
- package/dist/signal/crypto/WaAdvSignature.js +0 -76
- 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 -68
- package/dist/store/providers/memory/signal.store.js +0 -203
- package/dist/transport/node/builders/index.js +0 -51
- package/dist/types/appstate/WaAppStateSyncClient.d.ts +0 -66
- package/dist/types/auth/flow/WaAuthCredentialsFlow.d.ts +0 -14
- package/dist/types/auth/pairing/constants.d.ts +0 -2
- package/dist/types/client/connection/WaKeyShareCoordinator.d.ts +0 -14
- package/dist/types/client/events/chat.d.ts +0 -3
- package/dist/types/client/history-sync.d.ts +0 -20
- package/dist/types/client/incoming.d.ts +0 -37
- package/dist/types/client/mailbox.d.ts +0 -10
- package/dist/types/client/messages.d.ts +0 -16
- package/dist/types/client/messaging/participants.d.ts +0 -13
- package/dist/types/media/WaMediaCrypto.d.ts +0 -13
- package/dist/types/media/conn.d.ts +0 -3
- package/dist/types/message/addon-crypto.d.ts +0 -25
- package/dist/types/message/content.d.ts +0 -12
- package/dist/types/message/incoming.d.ts +0 -18
- package/dist/types/signal/crypto/constants.d.ts +0 -5
- 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/store/providers/memory/signal.store.d.ts +0 -58
- package/dist/types/transport/node/builders/index.d.ts +0 -11
- 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/message/{device-sent.js → encode/device-sent.js} +0 -0
- /package/dist/types/message/{padding.d.ts → encode/padding.d.ts} +0 -0
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
2
|
-
import type { MediaCryptoType, WaMediaReadableDecryptionResult, WaMediaTransferClientOptions } from '
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
|
+
import type { MediaCryptoType, WaMediaReadableDecryptionResult, WaMediaTransferClientOptions } from '../types';
|
|
3
3
|
interface StreamDownloadRequest {
|
|
4
4
|
readonly url?: string;
|
|
5
5
|
readonly directPath?: string;
|
|
6
6
|
readonly hosts?: readonly string[];
|
|
7
7
|
readonly headers?: Readonly<Record<string, string>>;
|
|
8
|
-
readonly dispatcher?: WaMediaTransferClientOptions['defaultDownloadDispatcher'];
|
|
9
8
|
readonly agent?: WaMediaTransferClientOptions['defaultDownloadAgent'];
|
|
10
9
|
readonly timeoutMs?: number;
|
|
11
10
|
readonly signal?: AbortSignal;
|
|
@@ -45,31 +44,53 @@ interface EncryptedDownloadRequest extends StreamDownloadRequest {
|
|
|
45
44
|
readonly fileSha256?: Uint8Array;
|
|
46
45
|
readonly fileEncSha256?: Uint8Array;
|
|
47
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Streaming media uploader/downloader. Handles host failover, encryption
|
|
49
|
+
* (`WaMediaCrypto`), and MAC verification. Used internally by the message
|
|
50
|
+
* coordinator and exposed for direct media transfer use cases.
|
|
51
|
+
*/
|
|
48
52
|
export declare class WaMediaTransferClient {
|
|
49
53
|
private readonly logger?;
|
|
50
54
|
private readonly defaultHosts;
|
|
51
55
|
private readonly defaultTimeoutMs;
|
|
52
56
|
private readonly defaultMaxReadBytes;
|
|
53
57
|
private readonly defaultHeaders;
|
|
54
|
-
private readonly defaultUploadDispatcher;
|
|
55
|
-
private readonly defaultDownloadDispatcher;
|
|
56
58
|
private readonly defaultUploadAgent;
|
|
57
59
|
private readonly defaultDownloadAgent;
|
|
58
|
-
private
|
|
60
|
+
private readonly skipMacVerification;
|
|
59
61
|
constructor(options?: WaMediaTransferClientOptions);
|
|
62
|
+
/**
|
|
63
|
+
* Streams an encrypted media payload from the first responsive media host.
|
|
64
|
+
* Returns the raw transfer response – caller is responsible for piping the body.
|
|
65
|
+
*/
|
|
60
66
|
downloadStream(request: StreamDownloadRequest): Promise<StreamTransferResponse>;
|
|
67
|
+
/** Convenience wrapper: downloads the encrypted body and returns it as a Uint8Array. */
|
|
61
68
|
downloadBytes(request: StreamDownloadRequest): Promise<Uint8Array>;
|
|
69
|
+
/**
|
|
70
|
+
* Uploads a raw (already-encrypted or plaintext) body to the requested
|
|
71
|
+
* media URL. Returns the server's transfer response unchanged.
|
|
72
|
+
*/
|
|
62
73
|
uploadStream(request: StreamUploadRequest): Promise<StreamTransferResponse>;
|
|
74
|
+
/**
|
|
75
|
+
* Encrypts the plaintext body with the per-`mediaType` HKDF keys (a new
|
|
76
|
+
* media key is generated when none is supplied) and uploads it. Returns
|
|
77
|
+
* the upload response plus the derived key/hashes for the message stanza.
|
|
78
|
+
*/
|
|
63
79
|
uploadEncrypted(request: EncryptedUploadRequest): Promise<EncryptedUploadResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Downloads an encrypted media payload, decrypts it, and verifies the MAC
|
|
82
|
+
* + file SHA-256s. Returns the decrypted bytes.
|
|
83
|
+
*/
|
|
64
84
|
downloadAndDecrypt(request: EncryptedDownloadRequest): Promise<Uint8Array>;
|
|
85
|
+
/**
|
|
86
|
+
* Streaming variant of {@link downloadAndDecrypt}: returns a `plaintext`
|
|
87
|
+
* Readable plus a `metadata` promise that resolves after the stream ends
|
|
88
|
+
* with the verified hashes (or rejects on MAC/size failure).
|
|
89
|
+
*/
|
|
65
90
|
downloadAndDecryptStream(request: EncryptedDownloadRequest): Promise<WaMediaReadableDecryptionResult>;
|
|
91
|
+
/** Drains a streaming response body to a Uint8Array (respects `maxBytes`). */
|
|
66
92
|
readResponseBytes(response: StreamTransferResponse, maxBytes?: number): Promise<Uint8Array>;
|
|
67
|
-
private
|
|
68
|
-
private fetchWithDispatcher;
|
|
69
|
-
private toFetchTransferResponse;
|
|
70
|
-
private gotWithAgent;
|
|
71
|
-
private loadGotModule;
|
|
72
|
-
private toGotTransferResponse;
|
|
93
|
+
private httpRequest;
|
|
73
94
|
private resolveTransferRequest;
|
|
74
95
|
private prepareEncryptedUpload;
|
|
75
96
|
private assertSuccessfulResponse;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WaMediaConn } from '../types';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
|
+
/**
|
|
4
|
+
* Parses a `media_conn` IQ response into a {@link WaMediaConn} (auth token,
|
|
5
|
+
* absolute expiry, and host list). Throws on missing auth/ttl/hosts.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseMediaConnResponse(node: BinaryNode, nowMs: number): WaMediaConn;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
2
|
import type { Logger } from '../infra/log/types';
|
|
3
|
-
import type { WaProxyAgent
|
|
3
|
+
import type { WaProxyAgent } from '../transport/types';
|
|
4
4
|
export type MediaKind = 'image' | 'video' | 'audio' | 'document' | 'sticker' | 'ptv';
|
|
5
|
-
export type MediaCryptoType = MediaKind | 'ptt' | 'gif' | 'history' | 'md-app-state';
|
|
5
|
+
export type MediaCryptoType = MediaKind | 'ptt' | 'gif' | 'history' | 'md-app-state' | 'md-msg-hist' | 'xma-image' | 'sticker-pack' | 'thumbnail-sticker-pack' | 'thumbnail-link';
|
|
6
6
|
export interface WaMediaConnHost {
|
|
7
7
|
readonly hostname: string;
|
|
8
8
|
readonly isFallback: boolean;
|
|
@@ -18,21 +18,21 @@ export interface WaMediaTransferClientOptions {
|
|
|
18
18
|
readonly defaultTimeoutMs?: number;
|
|
19
19
|
readonly defaultMaxReadBytes?: number;
|
|
20
20
|
readonly defaultHeaders?: Readonly<Record<string, string>>;
|
|
21
|
-
readonly defaultUploadDispatcher?: WaProxyDispatcher;
|
|
22
|
-
readonly defaultDownloadDispatcher?: WaProxyDispatcher;
|
|
23
21
|
readonly defaultUploadAgent?: WaProxyAgent;
|
|
24
22
|
readonly defaultDownloadAgent?: WaProxyAgent;
|
|
23
|
+
readonly skipMacVerification?: boolean;
|
|
25
24
|
}
|
|
26
25
|
export interface WaMediaDerivedKeys {
|
|
27
26
|
readonly iv: Uint8Array;
|
|
28
27
|
readonly encKey: Uint8Array;
|
|
29
28
|
readonly macKey: Uint8Array;
|
|
30
|
-
readonly refKey: Uint8Array;
|
|
31
29
|
}
|
|
32
30
|
export interface WaMediaEncryptionResult {
|
|
33
31
|
readonly ciphertextHmac: Uint8Array;
|
|
34
32
|
readonly fileSha256: Uint8Array;
|
|
35
33
|
readonly fileEncSha256: Uint8Array;
|
|
34
|
+
readonly streamingSidecar?: Uint8Array;
|
|
35
|
+
readonly firstFrameSidecar?: Uint8Array;
|
|
36
36
|
}
|
|
37
37
|
export interface WaMediaDecryptionResult {
|
|
38
38
|
readonly plaintext: Uint8Array;
|
|
@@ -45,6 +45,8 @@ export interface WaMediaReadableEncryptionResult {
|
|
|
45
45
|
readonly fileSha256: Uint8Array;
|
|
46
46
|
readonly fileEncSha256: Uint8Array;
|
|
47
47
|
readonly plaintextLength: number;
|
|
48
|
+
readonly streamingSidecar?: Uint8Array;
|
|
49
|
+
readonly firstFrameSidecar?: Uint8Array;
|
|
48
50
|
}>;
|
|
49
51
|
}
|
|
50
52
|
export interface WaMediaReadableDecryptionResult {
|
|
@@ -60,10 +62,13 @@ export interface WaMediaFileEncryptionResult {
|
|
|
60
62
|
readonly fileSha256: Uint8Array;
|
|
61
63
|
readonly fileEncSha256: Uint8Array;
|
|
62
64
|
readonly plaintextLength: number;
|
|
65
|
+
readonly streamingSidecar?: Uint8Array;
|
|
66
|
+
readonly firstFrameSidecar?: Uint8Array;
|
|
63
67
|
}
|
|
64
68
|
export interface WaMediaDecryptReadableOptions {
|
|
65
69
|
readonly mediaType: MediaCryptoType;
|
|
66
70
|
readonly mediaKey: Uint8Array;
|
|
67
71
|
readonly expectedFileSha256?: Uint8Array;
|
|
68
72
|
readonly expectedFileEncSha256?: Uint8Array;
|
|
73
|
+
readonly skipMacVerification?: boolean;
|
|
69
74
|
}
|
|
@@ -9,6 +9,11 @@ interface WaMessageClientOptions {
|
|
|
9
9
|
readonly defaultMaxAttempts?: number;
|
|
10
10
|
readonly defaultRetryDelayMs?: number;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Low-level message-publishing client. Sends pre-built message/receipt nodes,
|
|
14
|
+
* handles ack timeouts and retry on negative-ack failures, and is the
|
|
15
|
+
* transport hook used by {@link WaMessageCoordinator}.
|
|
16
|
+
*/
|
|
12
17
|
export declare class WaMessageClient {
|
|
13
18
|
private readonly logger;
|
|
14
19
|
private readonly sendNode;
|
|
@@ -17,11 +22,20 @@ export declare class WaMessageClient {
|
|
|
17
22
|
private readonly defaultMaxAttempts;
|
|
18
23
|
private readonly defaultRetryDelayMs;
|
|
19
24
|
constructor(options: WaMessageClientOptions);
|
|
25
|
+
/**
|
|
26
|
+
* Publishes a `<message>` stanza and awaits its ack/receipt, retrying on
|
|
27
|
+
* retryable negative-ack errors up to `maxAttempts`. Returns the ack
|
|
28
|
+
* metadata extracted from the server response.
|
|
29
|
+
*/
|
|
20
30
|
publishNode(node: BinaryNode, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
31
|
+
/** Builds the encrypted message envelope from `input` and publishes it via {@link publishNode}. */
|
|
21
32
|
publishEncrypted(input: WaEncryptedMessageInput, options?: WaMessagePublishOptions): Promise<WaMessagePublishResult>;
|
|
33
|
+
/** Fire-and-forget variant: sends a `<message>` stanza without awaiting an ack. */
|
|
22
34
|
sendMessageNode(node: BinaryNode): Promise<void>;
|
|
35
|
+
/** Builds and sends an encrypted message envelope without awaiting an ack. */
|
|
23
36
|
sendEncrypted(input: WaEncryptedMessageInput): Promise<void>;
|
|
24
37
|
private buildEncryptedMessageNode;
|
|
38
|
+
/** Builds and sends a `<receipt>` stanza (delivery/read/played/etc.). */
|
|
25
39
|
sendReceipt(input: WaSendReceiptInput): Promise<void>;
|
|
26
40
|
private isRetryablePublishError;
|
|
27
41
|
private extractAckMetadata;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Proto } from '../../..';
|
|
2
|
+
import type { WaLinkPreviewResolved } from './types';
|
|
3
|
+
export interface WaLinkPreviewThumbnailFields {
|
|
4
|
+
readonly jpegThumbnail?: Uint8Array;
|
|
5
|
+
readonly thumbnailDirectPath?: string;
|
|
6
|
+
readonly thumbnailSha256?: Uint8Array;
|
|
7
|
+
readonly thumbnailEncSha256?: Uint8Array;
|
|
8
|
+
readonly mediaKey?: Uint8Array;
|
|
9
|
+
readonly mediaKeyTimestamp?: number;
|
|
10
|
+
readonly thumbnailWidth?: number;
|
|
11
|
+
readonly thumbnailHeight?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildExtendedTextWithPreview(text: string, resolved: WaLinkPreviewResolved, thumbnailFields: WaLinkPreviewThumbnailFields): Proto.IMessage;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WaMediaTransferClient } from '../../../media/transfer/WaMediaTransferClient';
|
|
2
|
+
import type { WaProxyTransport } from '../../../transport/types';
|
|
3
|
+
import type { WaLinkPreviewFetcher } from './types';
|
|
4
|
+
export interface DefaultLinkPreviewFetcherOptions {
|
|
5
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
6
|
+
readonly userAgent?: string;
|
|
7
|
+
readonly fetchTimeoutMs?: number;
|
|
8
|
+
readonly maxHtmlBytes?: number;
|
|
9
|
+
readonly maxThumbnailBytes?: number;
|
|
10
|
+
readonly allowPrivateHosts?: boolean;
|
|
11
|
+
readonly proxy?: WaProxyTransport;
|
|
12
|
+
}
|
|
13
|
+
export declare function createDefaultLinkPreviewFetcher(options: DefaultLinkPreviewFetcherOptions): WaLinkPreviewFetcher;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
|
+
import type { Logger } from '../../../infra/log/types';
|
|
3
|
+
import type { proto } from '../../..';
|
|
4
|
+
import type { WaProxyTransport } from '../../../transport/types';
|
|
5
|
+
export type WaLinkPreviewType = proto.Message.ExtendedTextMessage.PreviewType;
|
|
6
|
+
export interface WaLinkPreviewThumbnailBytes {
|
|
7
|
+
readonly bytes: Uint8Array;
|
|
8
|
+
readonly width?: number;
|
|
9
|
+
readonly height?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface WaLinkPreviewThumbnailStream {
|
|
12
|
+
readonly stream: Readable;
|
|
13
|
+
readonly contentLength: number;
|
|
14
|
+
readonly width?: number;
|
|
15
|
+
readonly height?: number;
|
|
16
|
+
}
|
|
17
|
+
export type WaLinkPreviewThumbnailInput = WaLinkPreviewThumbnailBytes | WaLinkPreviewThumbnailStream;
|
|
18
|
+
export interface WaLinkPreviewOverride {
|
|
19
|
+
readonly matchedText?: string;
|
|
20
|
+
readonly title?: string;
|
|
21
|
+
readonly description?: string;
|
|
22
|
+
readonly previewType?: WaLinkPreviewType;
|
|
23
|
+
readonly thumbnail?: WaLinkPreviewThumbnailInput;
|
|
24
|
+
}
|
|
25
|
+
export interface WaLinkPreviewResolved {
|
|
26
|
+
readonly matchedText: string;
|
|
27
|
+
readonly title?: string;
|
|
28
|
+
readonly description?: string;
|
|
29
|
+
readonly previewType: WaLinkPreviewType;
|
|
30
|
+
readonly thumbnail?: WaLinkPreviewThumbnailInput;
|
|
31
|
+
}
|
|
32
|
+
export interface WaLinkPreviewFetchInput {
|
|
33
|
+
readonly url: URL;
|
|
34
|
+
readonly matchedText: string;
|
|
35
|
+
readonly logger: Logger;
|
|
36
|
+
readonly signal?: AbortSignal;
|
|
37
|
+
}
|
|
38
|
+
export interface WaLinkPreviewFetcher {
|
|
39
|
+
fetch(input: WaLinkPreviewFetchInput): Promise<WaLinkPreviewResolved | null>;
|
|
40
|
+
}
|
|
41
|
+
export interface WaLinkPreviewOptions {
|
|
42
|
+
readonly enabled?: boolean;
|
|
43
|
+
readonly fetchTimeoutMs?: number;
|
|
44
|
+
readonly uploadHqThumbnail?: boolean;
|
|
45
|
+
readonly allowPrivateHosts?: boolean;
|
|
46
|
+
readonly maxHtmlBytes?: number;
|
|
47
|
+
readonly maxThumbnailBytes?: number;
|
|
48
|
+
readonly userAgent?: string;
|
|
49
|
+
readonly proxy?: WaProxyTransport;
|
|
50
|
+
readonly fetcher?: WaLinkPreviewFetcher;
|
|
51
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Proto } from '..';
|
|
2
|
+
export interface WaSendContextInfo {
|
|
3
|
+
readonly quotedMessageId?: string;
|
|
4
|
+
readonly quotedParticipant?: string;
|
|
5
|
+
readonly quotedRemoteJid?: string;
|
|
6
|
+
readonly quotedMessage?: Proto.IMessage;
|
|
7
|
+
readonly isForwarded?: boolean;
|
|
8
|
+
readonly forwardingScore?: number;
|
|
9
|
+
readonly mentionedJids?: readonly string[];
|
|
10
|
+
readonly isSpoiler?: boolean;
|
|
11
|
+
readonly expirationSeconds?: number;
|
|
12
|
+
readonly groupSubject?: string;
|
|
13
|
+
readonly parentGroupJid?: string;
|
|
14
|
+
readonly raw?: Proto.IContextInfo;
|
|
15
|
+
}
|
|
16
|
+
export interface WaQuoteRef {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly participant?: string;
|
|
19
|
+
readonly remoteJid?: string;
|
|
20
|
+
readonly message?: Proto.IMessage;
|
|
21
|
+
}
|
|
22
|
+
export declare function buildContextInfoProto(input: WaSendContextInfo): Proto.IContextInfo;
|
|
23
|
+
export declare function applyContextInfo(message: Proto.IMessage, ctx: WaSendContextInfo | null | undefined): Proto.IMessage;
|
|
24
|
+
/**
|
|
25
|
+
* Reads the disappearing-message TTL (`contextInfo.expiration`) from the first
|
|
26
|
+
* submessage that carries it. Unwraps `ephemeralMessage` if present. Returns
|
|
27
|
+
* `undefined` when no submessage has an `expiration` set.
|
|
28
|
+
*/
|
|
29
|
+
export declare function pickIncomingExpirationSeconds(message: Proto.IMessage | undefined): number | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Anything that identifies a quoted message. Accepts a {@link WaQuoteRef}, a
|
|
32
|
+
* {@link WaMessageKey} (bare proto key), or a full incoming message event (its
|
|
33
|
+
* `key` + `message` are read). All fields are optional structurally — the
|
|
34
|
+
* public `quote` option type enforces the concrete shape.
|
|
35
|
+
*/
|
|
36
|
+
type WaQuoteSource = {
|
|
37
|
+
readonly key?: {
|
|
38
|
+
readonly id?: string;
|
|
39
|
+
readonly remoteJid?: string;
|
|
40
|
+
readonly participant?: string;
|
|
41
|
+
readonly fromMe?: boolean;
|
|
42
|
+
};
|
|
43
|
+
readonly id?: string;
|
|
44
|
+
readonly remoteJid?: string;
|
|
45
|
+
readonly participant?: string;
|
|
46
|
+
readonly message?: Proto.IMessage;
|
|
47
|
+
};
|
|
48
|
+
type WaForwardSource = boolean | {
|
|
49
|
+
readonly score?: number;
|
|
50
|
+
};
|
|
51
|
+
export interface WaSendContextResolveInput {
|
|
52
|
+
readonly contentLevel?: WaSendContextInfo;
|
|
53
|
+
readonly optionsLevel?: WaSendContextInfo;
|
|
54
|
+
readonly quote?: WaQuoteSource;
|
|
55
|
+
readonly forward?: WaForwardSource;
|
|
56
|
+
readonly mentions?: readonly string[];
|
|
57
|
+
/**
|
|
58
|
+
* LID-form self user JID. Used as the DM-quote `participant` fallback when
|
|
59
|
+
* the quoted message is `fromMe` and no explicit participant was provided.
|
|
60
|
+
* Mirrors wa-web's `getSender(msg)` (returns `msg.from`, which for 1:1 is
|
|
61
|
+
* `fromMe ? me : peer`).
|
|
62
|
+
*/
|
|
63
|
+
readonly meLid?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare function resolveSendContextInfo(input: WaSendContextResolveInput): WaSendContextInfo | null;
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { WaAddonKind } from '../../client/types';
|
|
2
|
+
import { WA_USE_CASE_SECRET_MODIFICATION_TYPES } from '../crypto/use-case-secret';
|
|
3
|
+
import { type Proto } from '../..';
|
|
4
|
+
import type { WaMessageSecretEntry, WaMessageSecretStore } from '../../store/contracts/message-secret.store';
|
|
5
|
+
import type { WaMessageStore } from '../../store/contracts/message.store';
|
|
6
|
+
type WaAddonBytes = Uint8Array | ArrayBuffer | ArrayBufferView;
|
|
7
|
+
type ModificationType = (typeof WA_USE_CASE_SECRET_MODIFICATION_TYPES)[keyof typeof WA_USE_CASE_SECRET_MODIFICATION_TYPES];
|
|
8
|
+
/** Returns `true` when an addon kind binds its AES-GCM ciphertext to additional data (polls + event responses). */
|
|
9
|
+
export declare function shouldUseAddonAdditionalData(modificationType: ModificationType): boolean;
|
|
10
|
+
/** Builds the canonical AES-GCM `additionalData` bytes for an addon (stanza id + NUL + sender). */
|
|
11
|
+
export declare function buildAddonAdditionalData(stanzaId: string, addOnSenderJid: string): Uint8Array;
|
|
12
|
+
/** Encrypts an addon payload (poll vote, reaction, edit, ...) with the per-use-case secret. */
|
|
13
|
+
export declare function encryptAddonPayload(input: {
|
|
14
|
+
readonly messageSecret: WaAddonBytes;
|
|
15
|
+
readonly stanzaId: string;
|
|
16
|
+
readonly parentMsgOriginalSender: string;
|
|
17
|
+
readonly modificationSender: string;
|
|
18
|
+
readonly modificationType: ModificationType;
|
|
19
|
+
readonly payload: WaAddonBytes;
|
|
20
|
+
readonly iv: WaAddonBytes;
|
|
21
|
+
readonly additionalData?: WaAddonBytes;
|
|
22
|
+
}): Promise<Uint8Array>;
|
|
23
|
+
/** Decrypts an addon payload encrypted with {@link encryptAddonPayload}. */
|
|
24
|
+
export declare function decryptAddonPayload(input: {
|
|
25
|
+
readonly messageSecret: WaAddonBytes;
|
|
26
|
+
readonly stanzaId: string;
|
|
27
|
+
readonly parentMsgOriginalSender: string;
|
|
28
|
+
readonly modificationSender: string;
|
|
29
|
+
readonly modificationType: ModificationType;
|
|
30
|
+
readonly ciphertext: WaAddonBytes;
|
|
31
|
+
readonly iv: WaAddonBytes;
|
|
32
|
+
readonly additionalData?: WaAddonBytes;
|
|
33
|
+
}): Promise<Uint8Array>;
|
|
34
|
+
export interface WaIdentifiedEncAddon {
|
|
35
|
+
readonly kind: WaAddonKind;
|
|
36
|
+
readonly targetMessageKey: Proto.IMessageKey;
|
|
37
|
+
readonly encPayload: Uint8Array;
|
|
38
|
+
readonly encIv: Uint8Array;
|
|
39
|
+
readonly modificationType: ModificationType;
|
|
40
|
+
readonly raw: Proto.IMessage;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Inspects a message and, when it contains an encrypted addon (reaction,
|
|
44
|
+
* poll vote, edit, comment, event response, ...), returns the parsed
|
|
45
|
+
* envelope with its kind and target message key. Returns `null` otherwise.
|
|
46
|
+
*/
|
|
47
|
+
export declare function identifyEncryptedAddon(message: Proto.IMessage): WaIdentifiedEncAddon | null;
|
|
48
|
+
export type WaDecodedAddon = {
|
|
49
|
+
readonly kind: 'reaction';
|
|
50
|
+
readonly reaction: Proto.Message.IReactionMessage;
|
|
51
|
+
} | {
|
|
52
|
+
readonly kind: 'poll_vote';
|
|
53
|
+
readonly pollVote: Proto.Message.IPollVoteMessage;
|
|
54
|
+
readonly selectedOptionNames: readonly string[] | null;
|
|
55
|
+
} | {
|
|
56
|
+
readonly kind: 'event_response';
|
|
57
|
+
readonly eventResponse: Proto.Message.IEventResponseMessage;
|
|
58
|
+
} | {
|
|
59
|
+
readonly kind: 'comment';
|
|
60
|
+
readonly comment: Proto.Message.ICommentMessage;
|
|
61
|
+
} | {
|
|
62
|
+
readonly kind: 'message_edit';
|
|
63
|
+
readonly message: Proto.IMessage;
|
|
64
|
+
} | {
|
|
65
|
+
readonly kind: 'event_edit';
|
|
66
|
+
readonly message: Proto.IMessage;
|
|
67
|
+
} | {
|
|
68
|
+
readonly kind: 'poll_edit';
|
|
69
|
+
readonly message: Proto.IMessage;
|
|
70
|
+
} | {
|
|
71
|
+
readonly kind: 'poll_add_option';
|
|
72
|
+
readonly message: Proto.IMessage;
|
|
73
|
+
};
|
|
74
|
+
/** Decodes the decrypted addon plaintext into its typed protobuf message based on `kind`. */
|
|
75
|
+
export declare function decodeAddonPlaintext(kind: WaAddonKind, plaintext: Uint8Array): WaDecodedAddon;
|
|
76
|
+
export declare function resolveParentMessageSecret(targetMessageId: string, messageSecretStore: WaMessageSecretStore, messageStore: WaMessageStore): Promise<WaMessageSecretEntry | null>;
|
|
77
|
+
export declare function resolvePollOptionNames(selectedOptions: readonly Uint8Array[], pollCreationMessageId: string, messageStore: WaMessageStore): Promise<readonly string[] | null>;
|
|
78
|
+
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { Proto } from '
|
|
2
|
-
import type { SignalAddress } from '
|
|
3
|
-
import type {
|
|
1
|
+
import type { Proto } from '../..';
|
|
2
|
+
import type { SignalAddress } from '../../signal/types';
|
|
3
|
+
import type { WaIdentityStore } from '../../store/contracts/identity.store';
|
|
4
4
|
export interface IcdcMeta {
|
|
5
5
|
readonly keyHash: Uint8Array;
|
|
6
6
|
readonly timestamp: number | undefined;
|
|
7
7
|
}
|
|
8
|
-
export declare function computeDeviceKeyHash(identityKeys: readonly Uint8Array[]):
|
|
9
|
-
export declare function resolveIcdcMeta(deviceJids: readonly string[],
|
|
8
|
+
export declare function computeDeviceKeyHash(identityKeys: readonly Uint8Array[], hashLength?: number): Uint8Array;
|
|
9
|
+
export declare function resolveIcdcMeta(deviceJids: readonly string[], identityStore: WaIdentityStore, updatedAtMs: number | undefined, localIdentity?: {
|
|
10
10
|
readonly address: SignalAddress;
|
|
11
11
|
readonly pubKey: Uint8Array;
|
|
12
|
-
}): Promise<IcdcMeta | null>;
|
|
12
|
+
}, hashLength?: number): Promise<IcdcMeta | null>;
|
|
13
13
|
export declare function injectDeviceListMetadata(message: Proto.IMessage, senderIcdc: IcdcMeta | null, recipientIcdc: IcdcMeta | null): Proto.IMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function computePhashV2(participants: readonly string[]):
|
|
1
|
+
export declare function computePhashV2(participants: readonly string[]): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type Proto } from '
|
|
2
|
-
import type { BinaryNode } from '
|
|
1
|
+
import { type Proto } from '../..';
|
|
2
|
+
import type { BinaryNode } from '../../transport/types';
|
|
3
3
|
export declare const WA_REPORTING_TOKEN_VERSION = 2;
|
|
4
4
|
export interface BuildReportingTokenNodeInput {
|
|
5
5
|
readonly message: Proto.IMessage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Proto } from '
|
|
1
|
+
import type { Proto } from '../..';
|
|
2
2
|
export declare const WA_MESSAGE_SECRET_BYTES = 32;
|
|
3
3
|
export declare const WA_USE_CASE_SECRET_MODIFICATION_TYPES: Readonly<{
|
|
4
4
|
readonly POLL_VOTE: "Poll Vote";
|
|
@@ -8,9 +8,25 @@ export declare const WA_USE_CASE_SECRET_MODIFICATION_TYPES: Readonly<{
|
|
|
8
8
|
readonly EVENT_RESPONSE: "Event Response";
|
|
9
9
|
readonly EVENT_EDIT_ENCRYPTED: "Event Edit";
|
|
10
10
|
readonly MESSAGE_EDIT: "Message Edit";
|
|
11
|
+
readonly POLL_EDIT_ENCRYPTED: "Poll Edit";
|
|
12
|
+
readonly POLL_ADD_OPTION: "Poll Add Option";
|
|
11
13
|
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Validates that `messageSecret` is exactly 32 bytes and returns it as a
|
|
16
|
+
* zero-copy Uint8Array view (throws otherwise).
|
|
17
|
+
*/
|
|
12
18
|
export declare function assertMessageSecret(messageSecret: Uint8Array | ArrayBuffer | ArrayBufferView, context?: string): Uint8Array;
|
|
19
|
+
/**
|
|
20
|
+
* Returns `message` unchanged when a message secret is already present;
|
|
21
|
+
* otherwise generates a fresh 32-byte secret and attaches it under
|
|
22
|
+
* `messageContextInfo.messageSecret`.
|
|
23
|
+
*/
|
|
13
24
|
export declare function ensureMessageSecret(message: Proto.IMessage): Promise<Proto.IMessage>;
|
|
25
|
+
/**
|
|
26
|
+
* Derives the per-use-case secret (poll vote, reaction, edit, ...) via HKDF
|
|
27
|
+
* over `messageSecret` and the canonical `stanzaId + sender + sender +
|
|
28
|
+
* modificationType` info string.
|
|
29
|
+
*/
|
|
14
30
|
export declare function createUseCaseSecret(input: {
|
|
15
31
|
readonly messageSecret: Uint8Array | ArrayBuffer | ArrayBufferView;
|
|
16
32
|
readonly stanzaId: string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { WaMessageKey, WaMessageTargetInput, WaSendEventMessage, WaSendEventResponseMessage, WaSendKeepMessage, WaSendMediaMessage, WaSendPinMessage, WaSendPollMessage, WaSendPollVoteMessage, WaSendReactionMessage, WaSendRevokeMessage, WaSendTextMessage } from '../types';
|
|
2
|
+
import { type Proto } from '../..';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the content-type key of a message - `'conversation'`,
|
|
5
|
+
* `'imageMessage'`, `'extendedTextMessage'`, etc. - or `undefined` for an empty
|
|
6
|
+
* message. `senderKeyDistributionMessage` is skipped so group messages report
|
|
7
|
+
* their real payload type rather than the piggy-backed sender-key.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getContentType(content: Proto.IMessage | undefined): keyof Proto.IMessage | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Normalizes a reply/edit/reaction/revoke/pin target into a {@link WaMessageKey}:
|
|
12
|
+
* an explicit key is returned as-is, while a received `message` event
|
|
13
|
+
* ({@link WaMessageRef}, identified by its `rawNode`) yields its pre-computed
|
|
14
|
+
* `key`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveMessageTarget(ref: WaMessageTargetInput): WaMessageKey;
|
|
17
|
+
export declare function isSendMediaMessage(content: unknown): content is WaSendMediaMessage;
|
|
18
|
+
export declare function isSendTextMessage(content: unknown): content is WaSendTextMessage;
|
|
19
|
+
export declare function isSendReactionMessage(content: unknown): content is WaSendReactionMessage;
|
|
20
|
+
export declare function isSendRevokeMessage(content: unknown): content is WaSendRevokeMessage;
|
|
21
|
+
export declare function isSendPinMessage(content: unknown): content is WaSendPinMessage;
|
|
22
|
+
export declare function isSendKeepMessage(content: unknown): content is WaSendKeepMessage;
|
|
23
|
+
export declare function isSendPollMessage(content: unknown): content is WaSendPollMessage;
|
|
24
|
+
export declare function isSendPollVoteMessage(content: unknown): content is WaSendPollVoteMessage;
|
|
25
|
+
export declare function isSendEventMessage(content: unknown): content is WaSendEventMessage;
|
|
26
|
+
export declare function isSendEventResponseMessage(content: unknown): content is WaSendEventResponseMessage;
|
|
27
|
+
export declare function isSendAddonCryptoMessage(content: unknown): content is WaSendPollVoteMessage | WaSendEventResponseMessage;
|
|
28
|
+
export declare function supportsViewOnce(message: Proto.IMessage): boolean;
|
|
29
|
+
export declare function wrapAsViewOnce(message: Proto.IMessage): Proto.IMessage;
|
|
30
|
+
export declare function unwrapMessage(message: Proto.IMessage): Proto.IMessage;
|
|
31
|
+
export declare function resolveMessageTypeAttr(message: Proto.IMessage): string;
|
|
32
|
+
export declare function resolveDecryptFailAttr(message: Proto.IMessage): 'hide' | undefined;
|
|
33
|
+
export declare function needsSecretPersistence(message: Proto.IMessage): boolean;
|
|
34
|
+
export declare function resolveEditAttr(message: Proto.IMessage): string | null;
|
|
35
|
+
export declare function resolveEncMediaType(message: Proto.IMessage): string | null;
|
|
36
|
+
export type WaButtonAddonKind = 'list' | 'interactive';
|
|
37
|
+
export declare function resolveButtonAddonKind(message: Proto.IMessage): WaButtonAddonKind | null;
|
|
38
|
+
export interface MessageMetaAttrs {
|
|
39
|
+
readonly polltype?: string;
|
|
40
|
+
readonly event_type?: string;
|
|
41
|
+
readonly view_once?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function resolveMetaAttrs(message: Proto.IMessage): MessageMetaAttrs | null;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Proto } from '
|
|
1
|
+
import type { Proto } from '../..';
|
|
2
2
|
export declare function wrapDeviceSentMessage(message: Proto.IMessage, destinationJid: string): Proto.IMessage;
|
|
3
3
|
export declare function unwrapDeviceSentMessage(message: Proto.IMessage): Proto.IMessage | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MediaCryptoType } from '../../media/types';
|
|
2
|
+
import type { Proto } from '../..';
|
|
3
|
+
export interface WaResolvedMediaPayload {
|
|
4
|
+
readonly mediaType: MediaCryptoType;
|
|
5
|
+
readonly directPath: string;
|
|
6
|
+
readonly mediaKey: Uint8Array;
|
|
7
|
+
readonly fileSha256?: Uint8Array;
|
|
8
|
+
readonly fileEncSha256?: Uint8Array;
|
|
9
|
+
readonly mimetype?: string;
|
|
10
|
+
readonly fileLength?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function resolveMediaPayload(message: Proto.IMessage | null | undefined): WaResolvedMediaPayload | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { proto, type Proto } from '../..';
|
|
2
|
+
export declare function genBotMsgSecret(messageSecret: Uint8Array | ArrayBufferView): Uint8Array;
|
|
3
|
+
export declare function deriveBotChunkKey(input: {
|
|
4
|
+
readonly botMsgSecret: Uint8Array | ArrayBufferView;
|
|
5
|
+
readonly saltId: string;
|
|
6
|
+
readonly targetSenderJid: string;
|
|
7
|
+
readonly authorJid: string;
|
|
8
|
+
}): Uint8Array;
|
|
9
|
+
export interface DecryptBotChunkInput {
|
|
10
|
+
readonly parentMessageSecret: Uint8Array | ArrayBufferView;
|
|
11
|
+
readonly saltId: string;
|
|
12
|
+
readonly targetSenderJid: string;
|
|
13
|
+
readonly authorJid: string;
|
|
14
|
+
readonly encIv: Uint8Array | ArrayBufferView;
|
|
15
|
+
readonly encPayload: Uint8Array | ArrayBufferView;
|
|
16
|
+
}
|
|
17
|
+
export declare function decryptBotChunk(input: DecryptBotChunkInput): Uint8Array;
|
|
18
|
+
export interface WaBotMetadataInput {
|
|
19
|
+
readonly personaId?: string;
|
|
20
|
+
readonly invokerJid?: string;
|
|
21
|
+
readonly capabilities?: readonly proto.BotCapabilityMetadata.BotCapabilityType[];
|
|
22
|
+
}
|
|
23
|
+
export declare function attachBotMetadata(message: Proto.IMessage, input: WaBotMetadataInput): Proto.IMessage;
|
|
24
|
+
export interface WaBotThreadInput {
|
|
25
|
+
readonly aiThreadId: string;
|
|
26
|
+
readonly remoteJid: string;
|
|
27
|
+
readonly threadType?: proto.AIThreadInfo.AIThreadClientInfo.AIThreadType;
|
|
28
|
+
}
|
|
29
|
+
export declare function attachBotThread(message: Proto.IMessage, input: WaBotThreadInput): Proto.IMessage;
|
|
30
|
+
export declare function extractInvokedBotJid(message: Proto.IMessage): string | null;
|
|
31
|
+
export declare function buildBotInvokeProtoCopy(message: Proto.IMessage, botMessageSecret?: Uint8Array): Proto.IMessage;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WaIncomingMessageEvent, WaIncomingNewsletterMessageUpdateEvent, WaIncomingUnhandledStanzaEvent } from '../../client/types';
|
|
2
|
+
import type { Logger } from '../../infra/log/types';
|
|
3
|
+
import type { BinaryNode } from '../../transport/types';
|
|
4
|
+
interface ProcessNewsletterMessageOptions {
|
|
5
|
+
readonly logger: Logger;
|
|
6
|
+
readonly emitIncomingMessage?: (event: WaIncomingMessageEvent) => void;
|
|
7
|
+
readonly emitNewsletterMessageUpdate?: (event: WaIncomingNewsletterMessageUpdateEvent) => void;
|
|
8
|
+
readonly emitUnhandledStanza?: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function processNewsletterLiveUpdates(notification: BinaryNode, options: ProcessNewsletterMessageOptions): void;
|
|
11
|
+
export declare function processIncomingNewsletterMessage(node: BinaryNode, options: ProcessNewsletterMessageOptions): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type StickerPackZipEntry } from '../../media/sticker/sticker-pack';
|
|
2
|
+
import type { WaSendStickerPackMessage } from '../types';
|
|
3
|
+
import type { Proto } from '../..';
|
|
4
|
+
export declare function validateStickerPackInput(content: WaSendStickerPackMessage): void;
|
|
5
|
+
export declare function toStickerPackZipEntries(content: WaSendStickerPackMessage): StickerPackZipEntry[];
|
|
6
|
+
export declare function toStickerPackProtoStickers(content: WaSendStickerPackMessage): Proto.Message.StickerPackMessage.ISticker[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BinaryNode } from '
|
|
1
|
+
import type { BinaryNode } from '../../transport/types';
|
|
2
2
|
export declare function isAckOrReceiptNode(node: BinaryNode): boolean;
|
|
3
3
|
export declare function isNegativeAckNode(node: BinaryNode): boolean;
|
|
4
4
|
export declare function isRetryableNegativeAck(node: BinaryNode): boolean;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { WaIncomingMessageEvent, WaIncomingNewsletterMessageUpdateEvent, WaIncomingUnhandledStanzaEvent } from '../../client/types';
|
|
2
|
+
import type { Logger } from '../../infra/log/types';
|
|
3
|
+
import { proto } from '../..';
|
|
4
|
+
import type { WaRetryDecryptFailureContext } from '../../retry/types';
|
|
5
|
+
import type { SenderKeyManager } from '../../signal/group/SenderKeyManager';
|
|
6
|
+
import type { SignalProtocol } from '../../signal/session/SignalProtocol';
|
|
7
|
+
import type { BinaryNode } from '../../transport/types';
|
|
8
|
+
interface WaIncomingMessageAckHandlerOptions {
|
|
9
|
+
readonly logger: Logger;
|
|
10
|
+
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
11
|
+
readonly getMeJid?: () => string | null | undefined;
|
|
12
|
+
readonly signalProtocol?: SignalProtocol;
|
|
13
|
+
readonly senderKeyManager?: SenderKeyManager;
|
|
14
|
+
readonly onDecryptFailure?: (context: WaRetryDecryptFailureContext, error: unknown) => Promise<boolean>;
|
|
15
|
+
readonly emitIncomingMessage?: (event: WaIncomingMessageEvent) => void;
|
|
16
|
+
readonly emitNewsletterMessageUpdate?: (event: WaIncomingNewsletterMessageUpdateEvent) => void;
|
|
17
|
+
readonly emitUnhandledStanza?: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function buildRecoveredIncomingEvent(webMessageInfo: proto.IWebMessageInfo): WaIncomingMessageEvent;
|
|
20
|
+
export declare function handleIncomingMessageAck(node: BinaryNode, options: WaIncomingMessageAckHandlerOptions): Promise<boolean>;
|
|
21
|
+
export {};
|