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
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type WaNewsletterMexDeps } from '../newsletter/mex';
|
|
2
|
+
import type { WaNewsletterAdminInfo, WaNewsletterAdminInviteInput, WaNewsletterAdminInviteResult, WaNewsletterCapability, WaNewsletterCapabilityExposure, WaNewsletterCreateInput, WaNewsletterFollowersOptions, WaNewsletterFollowersPage, WaNewsletterInsightMetricRequest, WaNewsletterMetadata, WaNewsletterPollVoter, WaNewsletterReactionSenders, WaNewsletterUpdateInput } from '../newsletter/types';
|
|
3
|
+
import type { WaMexOperationResponses } from '../../mex';
|
|
4
|
+
import { type WaTosQueryResult } from '../../transport/node/builders/tos';
|
|
5
|
+
/** Admin-side newsletter operations (create/update/delete + insights). */
|
|
6
|
+
export interface WaNewsletterAdminOps {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new newsletter the current account will own. **Auto-accepts
|
|
9
|
+
* the newsletter-creation TOS** before issuing the create IQ (no manual
|
|
10
|
+
* {@link acceptTos} call needed). `input.picture` is uploaded as JPEG
|
|
11
|
+
* bytes inline (not via the media transfer path) - keep it small.
|
|
12
|
+
*/
|
|
13
|
+
readonly create: (input: WaNewsletterCreateInput) => Promise<WaNewsletterMetadata>;
|
|
14
|
+
/** Updates the newsletter's editable fields (name/description/picture). */
|
|
15
|
+
readonly update: (newsletterJid: string, input: WaNewsletterUpdateInput) => Promise<WaNewsletterMetadata>;
|
|
16
|
+
/**
|
|
17
|
+
* Permanently deletes the newsletter. **Irreversible** - followers are
|
|
18
|
+
* detached, message history is dropped server-side, and the JID is
|
|
19
|
+
* burned (you can't re-create with the same name and recover anything).
|
|
20
|
+
*/
|
|
21
|
+
readonly delete: (newsletterJid: string) => Promise<void>;
|
|
22
|
+
/** Returns the admin-only metadata view for the newsletter. */
|
|
23
|
+
readonly fetchAdminInfo: (newsletterJid: string) => Promise<WaNewsletterAdminInfo>;
|
|
24
|
+
/** Returns the set of admin capabilities currently granted to the account. */
|
|
25
|
+
readonly fetchAdminCapabilities: (newsletterJid: string) => Promise<ReadonlySet<WaNewsletterCapability>>;
|
|
26
|
+
/** Lists newsletter followers (paged). */
|
|
27
|
+
readonly fetchFollowers: (newsletterJid: string, options?: WaNewsletterFollowersOptions) => Promise<WaNewsletterFollowersPage>;
|
|
28
|
+
/** Fetches admin analytics for the requested metric set. */
|
|
29
|
+
readonly fetchInsights: (newsletterJid: string, metrics: readonly WaNewsletterInsightMetricRequest[]) => Promise<WaMexOperationResponses['FetchNewsletterInsights'] | null>;
|
|
30
|
+
/** Fetches the moderation reports raised against owned newsletters. */
|
|
31
|
+
readonly fetchReports: () => Promise<WaMexOperationResponses['FetchNewsletterReports'] | null>;
|
|
32
|
+
/** Returns JIDs of pending admin invites for the newsletter. */
|
|
33
|
+
readonly fetchPendingInvites: (newsletterJid: string) => Promise<readonly string[]>;
|
|
34
|
+
/** Fetches any moderation enforcement state applied to the newsletter. */
|
|
35
|
+
readonly fetchEnforcements: (newsletterJid: string) => Promise<WaMexOperationResponses['FetchNewsletterEnforcements'] | null>;
|
|
36
|
+
/** Lists voters of a newsletter poll, grouped by selected option. */
|
|
37
|
+
readonly fetchPollVoters: (input: {
|
|
38
|
+
readonly newsletterJid: string;
|
|
39
|
+
readonly messageServerId: number;
|
|
40
|
+
readonly voteHash: string;
|
|
41
|
+
readonly limit?: number;
|
|
42
|
+
}) => Promise<ReadonlyMap<string, readonly WaNewsletterPollVoter[]>>;
|
|
43
|
+
/** Lists reaction senders for a newsletter message, grouped by emoji. */
|
|
44
|
+
readonly fetchMessageReactionSenders: (input: {
|
|
45
|
+
readonly newsletterJid: string;
|
|
46
|
+
readonly messageServerId: number;
|
|
47
|
+
}) => Promise<readonly WaNewsletterReactionSenders[]>;
|
|
48
|
+
/** Reports newsletter capability exposures back to the server for telemetry. */
|
|
49
|
+
readonly logExposures: (exposures: readonly WaNewsletterCapabilityExposure[]) => Promise<void>;
|
|
50
|
+
/** Transfers newsletter ownership to a previously-invited admin. */
|
|
51
|
+
readonly changeOwner: (input: WaNewsletterAdminInviteInput) => Promise<void>;
|
|
52
|
+
/** Demotes an admin back to a regular follower. */
|
|
53
|
+
readonly demoteAdmin: (input: WaNewsletterAdminInviteInput) => Promise<void>;
|
|
54
|
+
/** Sends an admin invite to a user; returns the invite envelope/expiry. */
|
|
55
|
+
readonly createAdminInvite: (input: WaNewsletterAdminInviteInput) => Promise<WaNewsletterAdminInviteResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Accepts a pending admin invite on the current account.
|
|
58
|
+
* **Auto-accepts the admin-invite TOS** before the accept IQ.
|
|
59
|
+
* Throws when no invite exists or it has been revoked / expired -
|
|
60
|
+
* check {@link fetchPendingInvites} from the inviter side first.
|
|
61
|
+
*/
|
|
62
|
+
readonly acceptAdminInvite: (newsletterJid: string) => Promise<void>;
|
|
63
|
+
/** Revokes a previously-sent admin invite. */
|
|
64
|
+
readonly revokeAdminInvite: (input: WaNewsletterAdminInviteInput) => Promise<void>;
|
|
65
|
+
/** Returns the TOS acceptance state for the given notice ids. */
|
|
66
|
+
readonly queryTosState: (noticeIds: readonly string[]) => Promise<WaTosQueryResult>;
|
|
67
|
+
/** Accepts the given TOS notice ids on behalf of the current account. */
|
|
68
|
+
readonly acceptTos: (noticeIds: readonly string[]) => Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
/** Builds the admin operation set. */
|
|
71
|
+
export declare function createAdminOps(deps: WaNewsletterMexDeps): WaNewsletterAdminOps;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type WaUploadMediaSource } from '../media';
|
|
2
|
+
import type { Logger } from '../../infra/log/types';
|
|
3
|
+
import { type NewsletterMediaKind } from '../../media/constants';
|
|
4
|
+
import type { WaMediaTransferClient } from '../../media/transfer/WaMediaTransferClient';
|
|
5
|
+
import type { WaMediaConn } from '../../media/types';
|
|
6
|
+
import { type WaSendContextInfo } from '../../message/context-info';
|
|
7
|
+
import type { WaSendMessageContent } from '../../message/types';
|
|
8
|
+
export type WaNewsletterUploadMedia = WaUploadMediaSource;
|
|
9
|
+
export interface WaNewsletterUploadInput {
|
|
10
|
+
readonly mediaKind: NewsletterMediaKind;
|
|
11
|
+
readonly media: WaNewsletterUploadMedia;
|
|
12
|
+
readonly mimetype: string;
|
|
13
|
+
readonly mediaConn: WaMediaConn;
|
|
14
|
+
}
|
|
15
|
+
export interface WaNewsletterUploadResult {
|
|
16
|
+
readonly url: string;
|
|
17
|
+
readonly directPath: string;
|
|
18
|
+
readonly handle?: string;
|
|
19
|
+
readonly metadataUrl?: string;
|
|
20
|
+
readonly thumbnailDirectPath?: string;
|
|
21
|
+
readonly thumbnailSha256?: Uint8Array;
|
|
22
|
+
readonly fileSha256: Uint8Array;
|
|
23
|
+
readonly fileLength: number;
|
|
24
|
+
readonly mediaId: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function uploadNewsletterMedia(options: {
|
|
27
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
28
|
+
readonly logger: Logger;
|
|
29
|
+
}, input: WaNewsletterUploadInput): Promise<WaNewsletterUploadResult>;
|
|
30
|
+
export type WaNewsletterContentKind = 'text' | 'media' | 'poll-creation';
|
|
31
|
+
export interface WaNewsletterBuiltContent {
|
|
32
|
+
readonly kind: WaNewsletterContentKind;
|
|
33
|
+
readonly plaintext: Uint8Array;
|
|
34
|
+
readonly mediaType: string | null;
|
|
35
|
+
readonly upload: WaNewsletterUploadResult | null;
|
|
36
|
+
}
|
|
37
|
+
export interface BuildNewsletterContentOptions {
|
|
38
|
+
readonly logger: Logger;
|
|
39
|
+
readonly mediaTransfer?: WaMediaTransferClient;
|
|
40
|
+
readonly getMediaConn?: () => Promise<WaMediaConn>;
|
|
41
|
+
}
|
|
42
|
+
export declare function buildNewsletterMessageContent(options: BuildNewsletterContentOptions, content: WaSendMessageContent, ctx?: WaSendContextInfo | null): Promise<WaNewsletterBuiltContent>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type WaNewsletterMexDeps } from '../newsletter/mex';
|
|
2
|
+
import type { WaNewsletterDehydratedMetadata, WaNewsletterDirectoryCategoriesPreviewOptions, WaNewsletterDirectoryCategoryPreview, WaNewsletterDirectoryListOptions, WaNewsletterDirectoryResults, WaNewsletterDirectorySearchOptions, WaNewsletterFetchOptions, WaNewsletterMetadata, WaNewsletterRecommendedOptions, WaNewsletterSimilarOptions } from '../newsletter/types';
|
|
3
|
+
import { WA_NEWSLETTER_VIEW_ROLES } from '../../protocol/newsletter';
|
|
4
|
+
/** Discovery-side newsletter operations (lookup, search, recommendations). */
|
|
5
|
+
export interface WaNewsletterDiscoveryOps {
|
|
6
|
+
/** Fetches the full metadata for a newsletter by JID. */
|
|
7
|
+
readonly fetch: (newsletterJid: string, options?: WaNewsletterFetchOptions) => Promise<WaNewsletterMetadata>;
|
|
8
|
+
/** Fetches the full metadata for a newsletter by invite code. */
|
|
9
|
+
readonly fetchByInvite: (inviteCode: string, options?: WaNewsletterFetchOptions) => Promise<WaNewsletterMetadata>;
|
|
10
|
+
/** Lists newsletters the current account is subscribed to. */
|
|
11
|
+
readonly listSubscribed: (options?: {
|
|
12
|
+
readonly fetchWamoSub?: boolean;
|
|
13
|
+
}) => Promise<readonly WaNewsletterMetadata[]>;
|
|
14
|
+
/** Searches the public newsletter directory by text/categories. */
|
|
15
|
+
readonly searchDirectory: (options?: WaNewsletterDirectorySearchOptions) => Promise<WaNewsletterDirectoryResults>;
|
|
16
|
+
/** Lists newsletters recommended for the current account. */
|
|
17
|
+
readonly fetchRecommended: (options?: WaNewsletterRecommendedOptions) => Promise<readonly WaNewsletterMetadata[]>;
|
|
18
|
+
/** Lists newsletters similar to `newsletterJid`. */
|
|
19
|
+
readonly fetchSimilar: (newsletterJid: string, options?: WaNewsletterSimilarOptions) => Promise<readonly WaNewsletterMetadata[]>;
|
|
20
|
+
/** Paged directory listing scoped by country/category. */
|
|
21
|
+
readonly fetchDirectoryList: (options: WaNewsletterDirectoryListOptions) => Promise<WaNewsletterDirectoryResults>;
|
|
22
|
+
/** Preview cards for the directory categories carousel. */
|
|
23
|
+
readonly fetchDirectoryCategoriesPreview: (options: WaNewsletterDirectoryCategoriesPreviewOptions) => Promise<readonly WaNewsletterDirectoryCategoryPreview[]>;
|
|
24
|
+
/** Resolves which of the given URL domains support link previews. */
|
|
25
|
+
readonly fetchIsDomainPreviewable: (domains: readonly string[]) => Promise<ReadonlyMap<string, boolean>>;
|
|
26
|
+
/** Lightweight metadata fetch (no full image / followers). */
|
|
27
|
+
readonly fetchDehydrated: (keyOrInvite: string, options?: {
|
|
28
|
+
readonly viewRole?: keyof typeof WA_NEWSLETTER_VIEW_ROLES;
|
|
29
|
+
readonly fetchWamoSub?: boolean;
|
|
30
|
+
}) => Promise<WaNewsletterDehydratedMetadata>;
|
|
31
|
+
}
|
|
32
|
+
/** Builds the discovery operation set. */
|
|
33
|
+
export declare function createDiscoveryOps(deps: WaNewsletterMexDeps): WaNewsletterDiscoveryOps;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type WaNewsletterMexDeps } from '../newsletter/mex';
|
|
2
|
+
import type { WaNewsletterMuteInput, WaNewsletterReactInput, WaNewsletterRevokeInput, WaNewsletterSendOptions, WaNewsletterSendResult, WaNewsletterViewReceiptInput, WaNewsletterVotePollInput } from '../newsletter/types';
|
|
3
|
+
import type { WaMediaTransferClient } from '../../media/transfer/WaMediaTransferClient';
|
|
4
|
+
import type { WaMediaConn } from '../../media/types';
|
|
5
|
+
import type { WaMessagePublishOptions, WaMessagePublishResult, WaSendMessageContent } from '../../message/types';
|
|
6
|
+
import type { BinaryNode } from '../../transport/types';
|
|
7
|
+
export interface WaNewsletterMessagingDeps extends WaNewsletterMexDeps {
|
|
8
|
+
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
9
|
+
readonly publishMessageNode: (node: BinaryNode, options?: WaMessagePublishOptions) => Promise<WaMessagePublishResult>;
|
|
10
|
+
readonly generateStanzaId: () => Promise<string>;
|
|
11
|
+
readonly mediaTransfer?: WaMediaTransferClient;
|
|
12
|
+
readonly getMediaConn?: () => Promise<WaMediaConn>;
|
|
13
|
+
}
|
|
14
|
+
/** Newsletter messaging operations (send, react, fetch, follow). */
|
|
15
|
+
export interface WaNewsletterMessagingOps {
|
|
16
|
+
/** Publishes a message to the newsletter. */
|
|
17
|
+
readonly send: (newsletterJid: string, content: WaSendMessageContent, options?: WaNewsletterSendOptions) => Promise<WaNewsletterSendResult>;
|
|
18
|
+
/** Edits a previously-published newsletter message. */
|
|
19
|
+
readonly editMessage: (newsletterJid: string, parentMessageId: string, content: WaSendMessageContent) => Promise<WaNewsletterSendResult>;
|
|
20
|
+
/** Reacts (or clears the reaction) on a newsletter message. */
|
|
21
|
+
readonly react: (input: WaNewsletterReactInput) => Promise<{
|
|
22
|
+
readonly stanzaId: string;
|
|
23
|
+
}>;
|
|
24
|
+
/** Revokes a previously-published newsletter message. */
|
|
25
|
+
readonly revoke: (input: WaNewsletterRevokeInput) => Promise<{
|
|
26
|
+
readonly stanzaId: string;
|
|
27
|
+
}>;
|
|
28
|
+
/** Casts a vote on a newsletter poll. */
|
|
29
|
+
readonly votePoll: (input: WaNewsletterVotePollInput) => Promise<{
|
|
30
|
+
readonly stanzaId: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** Sends a view-receipt notification for a newsletter message. */
|
|
33
|
+
readonly sendViewReceipt: (input: WaNewsletterViewReceiptInput) => Promise<{
|
|
34
|
+
readonly stanzaId: string;
|
|
35
|
+
}>;
|
|
36
|
+
/** Fetches a page of newsletter messages. */
|
|
37
|
+
readonly fetchMessages: (input: {
|
|
38
|
+
readonly newsletterJid: string;
|
|
39
|
+
readonly count: number;
|
|
40
|
+
readonly before?: number;
|
|
41
|
+
readonly after?: number;
|
|
42
|
+
readonly viewRole?: string;
|
|
43
|
+
}) => Promise<BinaryNode>;
|
|
44
|
+
/** Fetches edits/reactions/poll updates for newsletter messages in a range. */
|
|
45
|
+
readonly fetchMessageUpdates: (input: {
|
|
46
|
+
readonly newsletterJid: string;
|
|
47
|
+
readonly count: number;
|
|
48
|
+
readonly since?: number;
|
|
49
|
+
readonly before?: number;
|
|
50
|
+
readonly after?: number;
|
|
51
|
+
}) => Promise<BinaryNode>;
|
|
52
|
+
/**
|
|
53
|
+
* Subscribes to live updates for the newsletter and returns the
|
|
54
|
+
* server-granted subscription duration.
|
|
55
|
+
*/
|
|
56
|
+
readonly subscribeLiveUpdates: (newsletterJid: string) => Promise<{
|
|
57
|
+
readonly durationSeconds: number;
|
|
58
|
+
}>;
|
|
59
|
+
/** Follows the newsletter on the current account. */
|
|
60
|
+
readonly follow: (newsletterJid: string) => Promise<void>;
|
|
61
|
+
/** Unfollows the newsletter on the current account. */
|
|
62
|
+
readonly unfollow: (newsletterJid: string) => Promise<void>;
|
|
63
|
+
/** Mutes or unmutes the newsletter (per {@link WaNewsletterMuteInput}). */
|
|
64
|
+
readonly mute: (input: WaNewsletterMuteInput) => Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
export declare function createMessagingOps(deps: WaNewsletterMessagingDeps): WaNewsletterMessagingOps;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Logger } from '../../infra/log/types';
|
|
2
|
+
import type { WaMexOperationResponses, WaMexOperationVariables } from '../../mex';
|
|
3
|
+
import type { AbPropName } from '../../protocol/abprops';
|
|
4
|
+
import { type WaMexOpKey, type WaMexQuerySocket } from '../../transport/node/mex/client';
|
|
5
|
+
import type { BinaryNode } from '../../transport/types';
|
|
6
|
+
export type WaNewsletterTosKind = 'creation' | 'consumer' | 'admin_invite';
|
|
7
|
+
export interface WaNewsletterMexDeps {
|
|
8
|
+
readonly mexSocket: WaMexQuerySocket;
|
|
9
|
+
readonly queryWithContext?: (context: string, node: BinaryNode, timeoutMs?: number) => Promise<BinaryNode>;
|
|
10
|
+
readonly getAbPropString?: (name: AbPropName) => string;
|
|
11
|
+
readonly logger: Logger;
|
|
12
|
+
}
|
|
13
|
+
export declare function runMex<K extends WaMexOpKey>(deps: WaNewsletterMexDeps, opKey: K, variables: WaMexOperationVariables[K]): Promise<WaMexOperationResponses[K] | null>;
|
|
14
|
+
export declare function ensureTosAccepted(deps: WaNewsletterMexDeps, kind: WaNewsletterTosKind): Promise<void>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WaNewsletterAdminInfo, WaNewsletterAdminInviteResult, WaNewsletterCapability, WaNewsletterDehydratedMetadata, WaNewsletterDirectoryCategoryPreview, WaNewsletterDirectoryResults, WaNewsletterFollowersPage, WaNewsletterMetadata, WaNewsletterPollVoter, WaNewsletterReactionSenders } from '../newsletter/types';
|
|
2
|
+
import type { WaMexOperationResponses } from '../../mex';
|
|
3
|
+
type WaNewsletterMetadataEnvelope = NonNullable<WaMexOperationResponses['FetchNewsletter']['xwa2_newsletter']>;
|
|
4
|
+
export declare function parseNewsletterMetadata(envelope: WaNewsletterMetadataEnvelope | null | undefined): WaNewsletterMetadata;
|
|
5
|
+
export declare function parseAdminInfo(data: WaMexOperationResponses['FetchNewsletterAdminInfo'] | null): WaNewsletterAdminInfo;
|
|
6
|
+
export declare function parseAdminCapabilities(data: WaMexOperationResponses['FetchNewsletterAdminCapabilities'] | null): ReadonlySet<WaNewsletterCapability>;
|
|
7
|
+
export declare function parsePendingInvites(data: WaMexOperationResponses['FetchNewsletterPendingInvites'] | null): readonly string[];
|
|
8
|
+
export declare function parseFollowers(data: WaMexOperationResponses['FetchNewsletterFollowers'] | null): WaNewsletterFollowersPage;
|
|
9
|
+
export declare function parseDirectorySearch(data: WaMexOperationResponses['FetchNewsletterDirectorySearchResults'] | null): WaNewsletterDirectoryResults;
|
|
10
|
+
export declare function parseDirectoryList(data: WaMexOperationResponses['FetchNewsletterDirectoryList'] | null): WaNewsletterDirectoryResults;
|
|
11
|
+
export declare function parseRecommended(data: WaMexOperationResponses['FetchRecommendedNewsletters'] | null): readonly WaNewsletterMetadata[];
|
|
12
|
+
export declare function parseSimilar(data: WaMexOperationResponses['FetchSimilarNewsletters'] | null): readonly WaNewsletterMetadata[];
|
|
13
|
+
export declare function parseDomainsPreviewable(data: WaMexOperationResponses['FetchNewsletterIsDomainPreviewable'] | null): ReadonlyMap<string, boolean>;
|
|
14
|
+
export declare function parseDirectoryCategoriesPreview(data: WaMexOperationResponses['FetchNewsletterDirectoryCategoriesPreview'] | null): readonly WaNewsletterDirectoryCategoryPreview[];
|
|
15
|
+
export declare function parseDehydratedMetadata(data: WaMexOperationResponses['FetchNewsletterDehydrated'] | null): WaNewsletterDehydratedMetadata;
|
|
16
|
+
export declare function parseAdminInviteResult(data: WaMexOperationResponses['CreateNewsletterAdminInvite'] | null): WaNewsletterAdminInviteResult;
|
|
17
|
+
export declare function parseReactionSenders(data: WaMexOperationResponses['FetchNewsletterMessageReactionSenderList'] | null): readonly WaNewsletterReactionSenders[];
|
|
18
|
+
export declare function parsePollVoters(data: WaMexOperationResponses['FetchNewsletterPollVoters'] | null): ReadonlyMap<string, readonly WaNewsletterPollVoter[]>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import type { WaSendContextInfo } from '../../message/context-info';
|
|
2
|
+
import type { WaMessagePublishResult } from '../../message/types';
|
|
3
|
+
import type { WaMexOperationResponses } from '../../mex';
|
|
4
|
+
import type { WA_NEWSLETTER_VIEW_ROLES, WaNewsletterRole, WaNewsletterStateType } from '../../protocol/newsletter';
|
|
5
|
+
export type WaNewsletterCapability = NonNullable<NonNullable<WaMexOperationResponses['FetchNewsletterAdminCapabilities']['xwa2_newsletter_admin']>['capabilities']>[number];
|
|
6
|
+
export interface WaNewsletterPicture {
|
|
7
|
+
readonly url?: string;
|
|
8
|
+
readonly directPath?: string;
|
|
9
|
+
readonly id?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface WaNewsletterMetadata {
|
|
12
|
+
readonly jid: string;
|
|
13
|
+
readonly state: WaNewsletterStateType;
|
|
14
|
+
readonly creationTime?: number;
|
|
15
|
+
readonly name?: string;
|
|
16
|
+
readonly nameUpdateTime?: number;
|
|
17
|
+
readonly description?: string;
|
|
18
|
+
readonly descriptionUpdateTime?: number;
|
|
19
|
+
readonly picture?: WaNewsletterPicture;
|
|
20
|
+
readonly preview?: WaNewsletterPicture;
|
|
21
|
+
readonly invite?: string;
|
|
22
|
+
readonly handle?: string;
|
|
23
|
+
readonly subscribersCount?: number;
|
|
24
|
+
readonly verification?: string;
|
|
25
|
+
readonly viewerRole?: WaNewsletterRole;
|
|
26
|
+
readonly mutedAdmin?: boolean;
|
|
27
|
+
readonly mutedFollower?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface WaNewsletterFetchOptions {
|
|
30
|
+
readonly fetchViewerMetadata?: boolean;
|
|
31
|
+
readonly fetchCreationTime?: boolean;
|
|
32
|
+
readonly fetchFullImage?: boolean;
|
|
33
|
+
readonly fetchWamoSub?: boolean;
|
|
34
|
+
readonly viewRole?: keyof typeof WA_NEWSLETTER_VIEW_ROLES;
|
|
35
|
+
}
|
|
36
|
+
export interface WaNewsletterInsightMetricRequest {
|
|
37
|
+
readonly id: number;
|
|
38
|
+
readonly type: string;
|
|
39
|
+
readonly group_by?: {
|
|
40
|
+
readonly number_of_days?: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export interface WaNewsletterDirectorySearchOptions {
|
|
44
|
+
readonly searchText?: string;
|
|
45
|
+
readonly startCursor?: string;
|
|
46
|
+
readonly limit?: number;
|
|
47
|
+
readonly categories?: readonly string[];
|
|
48
|
+
}
|
|
49
|
+
export type WaNewsletterDirectoryView = 'RECOMMENDED' | 'NEW' | 'POPULAR' | 'FEATURED' | 'TRENDING';
|
|
50
|
+
export interface WaNewsletterDirectoryListOptions {
|
|
51
|
+
readonly view: WaNewsletterDirectoryView;
|
|
52
|
+
readonly countryCodes?: readonly string[];
|
|
53
|
+
readonly categories?: readonly string[];
|
|
54
|
+
readonly startCursor?: string;
|
|
55
|
+
readonly limit?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface WaNewsletterRecommendedOptions {
|
|
58
|
+
readonly limit?: number;
|
|
59
|
+
readonly countryCodes?: readonly string[];
|
|
60
|
+
}
|
|
61
|
+
export interface WaNewsletterSimilarOptions {
|
|
62
|
+
readonly limit?: number;
|
|
63
|
+
readonly countryCodes?: readonly string[];
|
|
64
|
+
}
|
|
65
|
+
export interface WaNewsletterFollowersOptions {
|
|
66
|
+
readonly count?: number;
|
|
67
|
+
}
|
|
68
|
+
export interface WaNewsletterDirectoryCategoriesPreviewOptions {
|
|
69
|
+
readonly categories: readonly string[];
|
|
70
|
+
readonly countryCode?: string;
|
|
71
|
+
readonly perCategoryLimit?: number;
|
|
72
|
+
}
|
|
73
|
+
export interface WaNewsletterCapabilityExposure {
|
|
74
|
+
readonly newsletterJid: string;
|
|
75
|
+
readonly capability: WaNewsletterCapability;
|
|
76
|
+
}
|
|
77
|
+
export interface WaNewsletterCreateInput {
|
|
78
|
+
readonly name: string;
|
|
79
|
+
readonly description?: string;
|
|
80
|
+
readonly picture?: Uint8Array;
|
|
81
|
+
}
|
|
82
|
+
export interface WaNewsletterUpdateInput {
|
|
83
|
+
readonly name?: string;
|
|
84
|
+
readonly description?: string;
|
|
85
|
+
readonly picture?: Uint8Array | null;
|
|
86
|
+
readonly reactionCodesSetting?: string;
|
|
87
|
+
}
|
|
88
|
+
export interface WaNewsletterMuteInput {
|
|
89
|
+
readonly newsletterJid: string;
|
|
90
|
+
readonly mute: boolean;
|
|
91
|
+
readonly type?: 'admin' | 'follower';
|
|
92
|
+
}
|
|
93
|
+
export interface WaNewsletterAdminInviteInput {
|
|
94
|
+
readonly newsletterJid: string;
|
|
95
|
+
readonly userJid: string;
|
|
96
|
+
}
|
|
97
|
+
export interface WaNewsletterAdminInviteResult {
|
|
98
|
+
readonly inviteId?: string;
|
|
99
|
+
readonly expirationTime?: number;
|
|
100
|
+
}
|
|
101
|
+
export interface WaNewsletterSendOptions {
|
|
102
|
+
readonly stanzaId?: string;
|
|
103
|
+
readonly contextInfo?: WaSendContextInfo | null;
|
|
104
|
+
/**
|
|
105
|
+
* Extra attributes merged into the outgoing `<message>` stanza. Keys provided
|
|
106
|
+
* here override protocol-managed ones (`to`, `id`, `type`, `edit`, ...) -
|
|
107
|
+
* use with care: bad overrides can break the send.
|
|
108
|
+
*/
|
|
109
|
+
readonly additionalAttributes?: Readonly<Record<string, string>>;
|
|
110
|
+
}
|
|
111
|
+
export type WaNewsletterSendResult = WaMessagePublishResult;
|
|
112
|
+
export interface WaNewsletterReactInput {
|
|
113
|
+
readonly newsletterJid: string;
|
|
114
|
+
readonly parentMessageServerId: number;
|
|
115
|
+
readonly reactionCode: string;
|
|
116
|
+
readonly stanzaId?: string;
|
|
117
|
+
readonly revoke?: boolean;
|
|
118
|
+
}
|
|
119
|
+
export interface WaNewsletterRevokeInput {
|
|
120
|
+
readonly newsletterJid: string;
|
|
121
|
+
readonly originalMessageId: string;
|
|
122
|
+
}
|
|
123
|
+
export interface WaNewsletterVotePollInput {
|
|
124
|
+
readonly newsletterJid: string;
|
|
125
|
+
readonly parentMessageServerId: number;
|
|
126
|
+
readonly votes: readonly Uint8Array[];
|
|
127
|
+
readonly stanzaId?: string;
|
|
128
|
+
readonly contentType?: string;
|
|
129
|
+
}
|
|
130
|
+
export interface WaNewsletterViewReceiptInput {
|
|
131
|
+
readonly newsletterJid: string;
|
|
132
|
+
readonly itemServerIds: readonly number[];
|
|
133
|
+
readonly stanzaId?: string;
|
|
134
|
+
}
|
|
135
|
+
export interface WaNewsletterAdminInfo {
|
|
136
|
+
readonly adminCount?: number;
|
|
137
|
+
readonly adminProfile: WaNewsletterAdminProfile | null;
|
|
138
|
+
}
|
|
139
|
+
export interface WaNewsletterAdminProfile {
|
|
140
|
+
readonly id?: string;
|
|
141
|
+
readonly name?: string;
|
|
142
|
+
readonly pictureId?: string;
|
|
143
|
+
readonly pictureDirectPath?: string;
|
|
144
|
+
}
|
|
145
|
+
export interface WaNewsletterFollower {
|
|
146
|
+
readonly id: string;
|
|
147
|
+
readonly displayName?: string;
|
|
148
|
+
readonly role?: WaNewsletterRole;
|
|
149
|
+
readonly phoneJid?: string;
|
|
150
|
+
readonly username?: string;
|
|
151
|
+
readonly followTime?: number;
|
|
152
|
+
readonly adminProfile: WaNewsletterAdminProfile | null;
|
|
153
|
+
}
|
|
154
|
+
export interface WaPageInfo {
|
|
155
|
+
readonly hasNextPage?: boolean;
|
|
156
|
+
readonly hasPreviousPage?: boolean;
|
|
157
|
+
readonly startCursor?: string;
|
|
158
|
+
readonly endCursor?: string;
|
|
159
|
+
}
|
|
160
|
+
export interface WaNewsletterFollowersPage {
|
|
161
|
+
readonly followers: readonly WaNewsletterFollower[];
|
|
162
|
+
}
|
|
163
|
+
export interface WaNewsletterDirectoryResults {
|
|
164
|
+
readonly results: readonly WaNewsletterMetadata[];
|
|
165
|
+
readonly pageInfo?: WaPageInfo;
|
|
166
|
+
}
|
|
167
|
+
export interface WaNewsletterDirectoryCategoryPreview {
|
|
168
|
+
readonly category: string;
|
|
169
|
+
readonly categoryTitle?: string;
|
|
170
|
+
readonly newsletters: readonly WaNewsletterMetadata[];
|
|
171
|
+
}
|
|
172
|
+
export interface WaNewsletterDehydratedMetadata {
|
|
173
|
+
readonly jid: string;
|
|
174
|
+
readonly subscribersCount?: number;
|
|
175
|
+
readonly verification?: string;
|
|
176
|
+
readonly reactionCodesSetting?: string;
|
|
177
|
+
readonly wamoSubPlanId?: string;
|
|
178
|
+
readonly wamoSubStatus?: string;
|
|
179
|
+
}
|
|
180
|
+
export interface WaNewsletterReactionSenders {
|
|
181
|
+
readonly reactionCode: string;
|
|
182
|
+
readonly senders: readonly {
|
|
183
|
+
readonly id: string;
|
|
184
|
+
readonly profileUrl?: string;
|
|
185
|
+
}[];
|
|
186
|
+
}
|
|
187
|
+
export interface WaNewsletterPollVoter {
|
|
188
|
+
readonly id: string;
|
|
189
|
+
readonly time?: number;
|
|
190
|
+
}
|
|
@@ -18,9 +18,20 @@ export interface WriteBehindDrainResult {
|
|
|
18
18
|
}
|
|
19
19
|
export declare class WriteBehindPersistence {
|
|
20
20
|
private readonly logger;
|
|
21
|
-
private readonly
|
|
21
|
+
private readonly stores;
|
|
22
|
+
private readonly options;
|
|
23
|
+
private queues;
|
|
22
24
|
private readonly flushTimeoutMs;
|
|
25
|
+
private destroyed;
|
|
23
26
|
constructor(stores: WriteBehindStores, logger: Logger, options?: WaWriteBehindOptions);
|
|
27
|
+
private buildQueues;
|
|
28
|
+
/**
|
|
29
|
+
* Re-arm the queues after a previous {@link destroy} call. Idempotent —
|
|
30
|
+
* a no-op when the persistence is already live. Used by `WaClient.connect`
|
|
31
|
+
* to recover from a logout/clear-stored-state cycle without leaking the
|
|
32
|
+
* old destroyed queues into the next session.
|
|
33
|
+
*/
|
|
34
|
+
restart(): void;
|
|
24
35
|
persistMessage(record: WaStoredMessageRecord): void;
|
|
25
36
|
persistMessageAsync(record: WaStoredMessageRecord): Promise<void>;
|
|
26
37
|
persistThread(record: WaStoredThreadRecord): void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { WriteBehindPersistence } from '../persistence/WriteBehindPersistence';
|
|
2
|
+
import type { WaClientEventMap } from '../types';
|
|
3
|
+
import type { Logger } from '../../infra/log/types';
|
|
4
|
+
import type { WaMediaTransferClient } from '../../media/transfer/WaMediaTransferClient';
|
|
5
|
+
import { type Proto } from '../../proto';
|
|
6
|
+
interface WaHistorySyncDeps {
|
|
7
|
+
readonly logger: Logger;
|
|
8
|
+
readonly mediaTransfer: WaMediaTransferClient;
|
|
9
|
+
readonly writeBehind: WriteBehindPersistence;
|
|
10
|
+
readonly emitEvent: <K extends keyof WaClientEventMap>(event: K, ...args: Parameters<WaClientEventMap[K]>) => void;
|
|
11
|
+
readonly onPrivacyTokens?: (conversations: readonly {
|
|
12
|
+
readonly jid: string;
|
|
13
|
+
readonly tcToken?: Uint8Array | null;
|
|
14
|
+
readonly tcTokenTimestamp?: number | null;
|
|
15
|
+
readonly tcTokenSenderTimestamp?: number | null;
|
|
16
|
+
}[]) => Promise<void>;
|
|
17
|
+
readonly onNctSalt?: (salt: Uint8Array) => Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Invoked once per recognized chunk after it has been fully processed (or
|
|
20
|
+
* after the early-return for `INITIAL_STATUS_V3` and other recognized-but-
|
|
21
|
+
* unhandled types). The WaClient wires this to the `hist_sync` receipt
|
|
22
|
+
* stanza required by wa-web so the primary device does not keep resending
|
|
23
|
+
* the same chunk.
|
|
24
|
+
*/
|
|
25
|
+
readonly onProcessed?: (syncType: Proto.Message.HistorySyncType) => Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export declare function runHistorySyncNotification(deps: WaHistorySyncDeps, notification: Proto.Message.IHistorySyncNotification): Promise<void>;
|
|
28
|
+
export declare function processHistorySyncNotification(deps: WaHistorySyncDeps, notification: Proto.Message.IHistorySyncNotification): Promise<void>;
|
|
29
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { WriteBehindPersistence } from '
|
|
2
|
-
import type { WaIncomingMessageEvent } from '
|
|
3
|
-
import type { Logger } from '
|
|
4
|
-
import type { WaMessageSecretStore } from '
|
|
1
|
+
import type { WriteBehindPersistence } from '../persistence/WriteBehindPersistence';
|
|
2
|
+
import type { WaIncomingMessageEvent } from '../types';
|
|
3
|
+
import type { Logger } from '../../infra/log/types';
|
|
4
|
+
import type { WaMessageSecretStore } from '../../store/contracts/message-secret.store';
|
|
5
5
|
interface WaPersistIncomingMailboxOptions {
|
|
6
6
|
readonly logger: Logger;
|
|
7
7
|
readonly writeBehind: WriteBehindPersistence;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export declare class CsTokenGenerator {
|
|
2
|
-
private cachedKey;
|
|
3
2
|
private cachedSalt;
|
|
4
3
|
private readonly cache;
|
|
5
4
|
constructor();
|
|
6
|
-
generate(nctSalt: Uint8Array, accountLid: string):
|
|
5
|
+
generate(nctSalt: Uint8Array, accountLid: string): Uint8Array;
|
|
7
6
|
invalidate(): void;
|
|
8
7
|
private isSameSalt;
|
|
9
|
-
private resolveKey;
|
|
10
8
|
}
|