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,10 +1,17 @@
|
|
|
1
1
|
import { type WaGroupSetting } from '../../protocol/group';
|
|
2
|
+
import { type WaGroupMemberAddMode, type WaGroupMemberLinkMode, type WaGroupMemberShareGroupHistoryMode } from '../../transport/node/builders/group';
|
|
3
|
+
import { type WaMexQuerySocket } from '../../transport/node/mex/client';
|
|
2
4
|
import type { BinaryNode } from '../../transport/types';
|
|
3
5
|
export interface WaGroupParticipant {
|
|
4
6
|
readonly jid: string;
|
|
5
7
|
readonly type: string;
|
|
6
8
|
readonly isAdmin: boolean;
|
|
7
9
|
readonly isSuperAdmin: boolean;
|
|
10
|
+
readonly lid?: string;
|
|
11
|
+
readonly phoneNumber?: string;
|
|
12
|
+
readonly displayName?: string;
|
|
13
|
+
readonly username?: string;
|
|
14
|
+
readonly expirationSeconds?: number;
|
|
8
15
|
}
|
|
9
16
|
export interface WaGroupMetadata {
|
|
10
17
|
readonly jid: string;
|
|
@@ -12,37 +19,332 @@ export interface WaGroupMetadata {
|
|
|
12
19
|
readonly subjectOwner?: string;
|
|
13
20
|
readonly subjectTime?: number;
|
|
14
21
|
readonly owner?: string;
|
|
22
|
+
/** PN-form jid of the group creator when the group is LID-addressed (`creator_pn`). */
|
|
23
|
+
readonly ownerPhoneNumber?: string;
|
|
24
|
+
/** Username handle of the group creator when set (`creator_username`). */
|
|
25
|
+
readonly ownerUsername?: string;
|
|
26
|
+
/** ISO country code of the group creator when set (`creator_country_code`). */
|
|
27
|
+
readonly ownerCountryCode?: string;
|
|
15
28
|
readonly creation?: number;
|
|
16
29
|
readonly desc?: string;
|
|
17
30
|
readonly descId?: string;
|
|
18
31
|
readonly descOwner?: string;
|
|
32
|
+
readonly descTime?: number;
|
|
19
33
|
readonly restrict: boolean;
|
|
20
34
|
readonly announce: boolean;
|
|
21
35
|
readonly ephemeral?: number;
|
|
36
|
+
readonly ephemeralTrigger?: number;
|
|
22
37
|
readonly size?: number;
|
|
38
|
+
readonly addressingMode?: 'lid' | 'pn';
|
|
39
|
+
readonly isParentGroup: boolean;
|
|
40
|
+
readonly isClosedCommunity: boolean;
|
|
41
|
+
readonly defaultSubgroup: boolean;
|
|
42
|
+
readonly generalSubgroup: boolean;
|
|
43
|
+
readonly hiddenSubgroup: boolean;
|
|
44
|
+
readonly allowNonAdminSubGroupCreation: boolean;
|
|
45
|
+
readonly membershipApprovalEnabled: boolean;
|
|
46
|
+
readonly noFrequentlyForwarded: boolean;
|
|
47
|
+
readonly support: boolean;
|
|
48
|
+
readonly suspended: boolean;
|
|
49
|
+
readonly incognito: boolean;
|
|
50
|
+
readonly allowAdminReports: boolean;
|
|
51
|
+
readonly autoAddDisabled: boolean;
|
|
52
|
+
readonly groupHistory: boolean;
|
|
53
|
+
readonly capi: boolean;
|
|
54
|
+
readonly groupSafetyCheck: boolean;
|
|
55
|
+
readonly participantLabelEnabled: boolean;
|
|
56
|
+
readonly limitSharingEnabled: boolean;
|
|
57
|
+
readonly evolutionVersion?: number;
|
|
58
|
+
readonly memberAddMode?: string;
|
|
59
|
+
readonly memberLinkMode?: string;
|
|
60
|
+
readonly memberShareGroupHistoryMode?: string;
|
|
61
|
+
readonly growthLockedExpiration?: number;
|
|
62
|
+
readonly appealStatus?: 'approved' | 'in_review' | 'none' | 'rejected';
|
|
63
|
+
readonly appealUpdateTime?: number;
|
|
64
|
+
readonly linkedParentJid?: string;
|
|
23
65
|
readonly participants: readonly WaGroupParticipant[];
|
|
24
66
|
}
|
|
67
|
+
export interface WaMembershipRequest {
|
|
68
|
+
readonly jid: string;
|
|
69
|
+
readonly requestor?: string;
|
|
70
|
+
readonly requestorPhone?: string;
|
|
71
|
+
readonly requestorUsername?: string;
|
|
72
|
+
readonly parentGroupJid?: string;
|
|
73
|
+
readonly requestTime: number;
|
|
74
|
+
readonly requestMethod?: string;
|
|
75
|
+
}
|
|
25
76
|
export interface WaGroupCreateOptions {
|
|
26
77
|
readonly description?: string;
|
|
78
|
+
readonly linkedParentJid?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface WaCommunityCreateOptions {
|
|
81
|
+
readonly description?: string;
|
|
82
|
+
readonly membershipApprovalMode?: 'open' | 'request_required';
|
|
83
|
+
readonly allowNonAdminSubGroupCreation?: boolean;
|
|
84
|
+
readonly createGeneralChat?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface WaCommunitySubGroupResult {
|
|
87
|
+
readonly jid: string;
|
|
88
|
+
readonly error?: number;
|
|
89
|
+
}
|
|
90
|
+
export interface WaLinkSubGroupsResult {
|
|
91
|
+
readonly linkedJids: readonly string[];
|
|
92
|
+
readonly failed: readonly WaCommunitySubGroupResult[];
|
|
93
|
+
}
|
|
94
|
+
export interface WaUnlinkSubGroupsResult {
|
|
95
|
+
readonly unlinkedJids: readonly string[];
|
|
96
|
+
readonly failed: readonly WaCommunitySubGroupResult[];
|
|
97
|
+
}
|
|
98
|
+
export interface WaCommunitySubGroup {
|
|
99
|
+
readonly jid: string;
|
|
100
|
+
readonly subject?: string;
|
|
101
|
+
readonly subjectTime?: number;
|
|
102
|
+
readonly defaultSubgroup: boolean;
|
|
103
|
+
readonly generalSubgroup: boolean;
|
|
104
|
+
readonly hiddenSubgroup: boolean;
|
|
105
|
+
readonly membershipApprovalEnabled: boolean;
|
|
106
|
+
readonly pendingMembershipRequests: number;
|
|
107
|
+
}
|
|
108
|
+
export interface WaCommunitySubGroupSuggestion {
|
|
109
|
+
readonly jid: string;
|
|
110
|
+
readonly subject: string | null;
|
|
111
|
+
readonly description: string | null;
|
|
112
|
+
readonly creator: string | null;
|
|
113
|
+
readonly creationTime: number | null;
|
|
114
|
+
readonly participantCount: number | null;
|
|
115
|
+
readonly isExistingGroup: boolean;
|
|
116
|
+
readonly hiddenGroup: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface WaCommunitySubGroupsResult {
|
|
119
|
+
readonly communityJid: string;
|
|
120
|
+
readonly announcementGroup: WaCommunitySubGroup | null;
|
|
121
|
+
readonly subGroups: readonly WaCommunitySubGroup[];
|
|
122
|
+
}
|
|
123
|
+
export interface WaGroupSuspensionAppealResult {
|
|
124
|
+
readonly success: boolean;
|
|
125
|
+
readonly responseCode: string | null;
|
|
126
|
+
readonly errorMessage: string | null;
|
|
127
|
+
readonly appealCreationTime: number | null;
|
|
128
|
+
}
|
|
129
|
+
export interface WaGroupInviteParticipantSample {
|
|
130
|
+
readonly jid: string;
|
|
131
|
+
readonly phoneNumber?: string;
|
|
132
|
+
readonly type?: string;
|
|
133
|
+
}
|
|
134
|
+
export interface WaGroupInviteInfo extends GroupCommons {
|
|
135
|
+
readonly hiddenGroup: boolean;
|
|
136
|
+
readonly defaultSubgroup: boolean;
|
|
137
|
+
readonly generalChat: boolean;
|
|
138
|
+
readonly hasCapi: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Sample of participants returned alongside the invite preview - WhatsApp
|
|
141
|
+
* trims this list (admins/recent members), it is not the full roster.
|
|
142
|
+
* Call {@link WaGroupCoordinator.queryGroupMetadata} after joining for
|
|
143
|
+
* the complete list.
|
|
144
|
+
*/
|
|
145
|
+
readonly participants: readonly WaGroupInviteParticipantSample[];
|
|
146
|
+
}
|
|
147
|
+
export interface WaRevokeInviteResult {
|
|
148
|
+
readonly code: string;
|
|
149
|
+
/**
|
|
150
|
+
* Participants that joined via the now-revoked code and that the server
|
|
151
|
+
* surfaced in the response (typically with `code: 404` meaning the
|
|
152
|
+
* invite they used is gone). Empty when nobody was affected.
|
|
153
|
+
*/
|
|
154
|
+
readonly affectedParticipants: readonly WaParticipantActionResult[];
|
|
155
|
+
}
|
|
156
|
+
export type WaParticipantActionStatus = 'ok' | 'error';
|
|
157
|
+
export interface WaParticipantActionResult {
|
|
158
|
+
readonly jid: string;
|
|
159
|
+
readonly status: WaParticipantActionStatus;
|
|
160
|
+
/** HTTP-style numeric code returned by the server (`200`, `403`, `409`, ...). */
|
|
161
|
+
readonly code: number;
|
|
162
|
+
/** PN-form JID the server resolved for the participant (when addressing-mode is LID). */
|
|
163
|
+
readonly phoneNumber?: string;
|
|
164
|
+
/** Username (handle) the server resolved for the participant, when set. */
|
|
165
|
+
readonly username?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Optional content children attached to the participant outcome. Some
|
|
168
|
+
* partial failures (`409: gone`, `408: not-allowed`, ...) carry extra
|
|
169
|
+
* tags that hint at how to recover.
|
|
170
|
+
*/
|
|
171
|
+
readonly raw: BinaryNode;
|
|
27
172
|
}
|
|
28
173
|
interface WaGroupCoordinatorOptions {
|
|
29
174
|
readonly queryWithContext: (context: string, node: BinaryNode, timeoutMs?: number, contextData?: Readonly<Record<string, unknown>>) => Promise<BinaryNode>;
|
|
175
|
+
readonly mexSocket?: WaMexQuerySocket;
|
|
30
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Coordinates group and community queries/mutations. Accessed via
|
|
179
|
+
* {@link WaClient.group}. Community sub-APIs (`fetchSubGroups`,
|
|
180
|
+
* `isInternalGroup`, `transferCommunityOwnership`, `fetchSubgroupSuggestions`,
|
|
181
|
+
* `submitGroupSuspensionAppeal`) require an active MEX transport and throw
|
|
182
|
+
* when unavailable.
|
|
183
|
+
*/
|
|
31
184
|
export interface WaGroupCoordinator {
|
|
185
|
+
/** Fetches the full metadata for `groupJid`. */
|
|
32
186
|
readonly queryGroupMetadata: (groupJid: string) => Promise<WaGroupMetadata>;
|
|
187
|
+
/** Lists every group the current account participates in. */
|
|
33
188
|
readonly queryAllGroups: () => Promise<readonly WaGroupMetadata[]>;
|
|
34
|
-
|
|
35
|
-
|
|
189
|
+
/**
|
|
190
|
+
* Resolves a group invite `code` (the path segment of a
|
|
191
|
+
* `chat.whatsapp.com/<code>` URL) into a preview of the group: subject,
|
|
192
|
+
* size, ephemeral timer, description, and a trimmed participant sample.
|
|
193
|
+
* The sample is NOT the full roster - call {@link queryGroupMetadata}
|
|
194
|
+
* after joining for the complete list.
|
|
195
|
+
*/
|
|
196
|
+
readonly queryGroupInviteInfo: (code: string) => Promise<WaGroupInviteInfo>;
|
|
197
|
+
/**
|
|
198
|
+
* Creates a new group with `subject` and the given participant JIDs.
|
|
199
|
+
* The creator is auto-added as admin; do **not** include your own JID
|
|
200
|
+
* in `participants`. The returned metadata includes the participant
|
|
201
|
+
* list - partial failures surface as participants with `type: 'error'`
|
|
202
|
+
* or are filtered out by the server; inspect against the original
|
|
203
|
+
* `participants` to spot rejections.
|
|
204
|
+
*/
|
|
205
|
+
readonly createGroup: (subject: string, participants: readonly string[], options?: WaGroupCreateOptions) => Promise<WaGroupMetadata>;
|
|
206
|
+
/** Renames the group. */
|
|
36
207
|
readonly setSubject: (groupJid: string, subject: string) => Promise<void>;
|
|
208
|
+
/** Sets or clears the group description; pass `null` to remove it. */
|
|
37
209
|
readonly setDescription: (groupJid: string, description: string | null, prevDescId?: string) => Promise<void>;
|
|
210
|
+
/** Toggles a named group setting (announce / restrict / ephemeral / ...). */
|
|
38
211
|
readonly setSetting: (groupJid: string, setting: WaGroupSetting, enabled: boolean) => Promise<void>;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
readonly
|
|
45
|
-
|
|
212
|
+
/**
|
|
213
|
+
* Sets who can add members to the group. `admin_add` restricts adds to
|
|
214
|
+
* admins; `all_member_add` lets any participant add. Group admin
|
|
215
|
+
* operation - non-admins receive a `403 not-authorized` error.
|
|
216
|
+
*/
|
|
217
|
+
readonly setMemberAddMode: (groupJid: string, mode: WaGroupMemberAddMode) => Promise<void>;
|
|
218
|
+
/**
|
|
219
|
+
* Sets who can share/forward the group invite link. `admin_link`
|
|
220
|
+
* restricts to admins; `all_member_link` lets any participant share.
|
|
221
|
+
* Group admin operation.
|
|
222
|
+
*/
|
|
223
|
+
readonly setMemberLinkMode: (groupJid: string, mode: WaGroupMemberLinkMode) => Promise<void>;
|
|
224
|
+
/**
|
|
225
|
+
* Sets whether new members see prior chat history. `admin_share` hides
|
|
226
|
+
* history; `all_member_share` exposes the message backlog when someone
|
|
227
|
+
* joins. Group admin operation.
|
|
228
|
+
*/
|
|
229
|
+
readonly setMemberShareGroupHistoryMode: (groupJid: string, mode: WaGroupMemberShareGroupHistoryMode) => Promise<void>;
|
|
230
|
+
/**
|
|
231
|
+
* Sets the per-group disappearing-message lifetime in seconds (`0`
|
|
232
|
+
* disables, `86400` = 24h, `604800` = 7d, `7776000` = 90d). Use this
|
|
233
|
+
* to pick a duration; `setSetting('ephemeral', false)` is the explicit
|
|
234
|
+
* disable path. `trigger` is the WhatsApp ephemeral-trigger code -
|
|
235
|
+
* leave unset unless you know the protocol value to pass through.
|
|
236
|
+
* Group admin operation.
|
|
237
|
+
*/
|
|
238
|
+
readonly setEphemeralDuration: (groupJid: string, expirationSeconds: number, trigger?: number) => Promise<void>;
|
|
239
|
+
/**
|
|
240
|
+
* Adds the given participant JIDs to the group. The IQ as a whole
|
|
241
|
+
* succeeds even when some invitees fail (blocked you, privacy settings
|
|
242
|
+
* disallow add, already a member, etc.) - inspect the returned per-jid
|
|
243
|
+
* results: `status: 'ok'` (code 200) means the invite landed,
|
|
244
|
+
* everything else carries the server's HTTP-style `code`.
|
|
245
|
+
*/
|
|
246
|
+
readonly addParticipants: (groupJid: string, participants: readonly string[]) => Promise<readonly WaParticipantActionResult[]>;
|
|
247
|
+
/** Removes the given participant JIDs. Same per-jid result shape as {@link addParticipants}. */
|
|
248
|
+
readonly removeParticipants: (groupJid: string, participants: readonly string[]) => Promise<readonly WaParticipantActionResult[]>;
|
|
249
|
+
/** Promotes participants to admins. Same per-jid result shape as {@link addParticipants}. */
|
|
250
|
+
readonly promoteParticipants: (groupJid: string, participants: readonly string[]) => Promise<readonly WaParticipantActionResult[]>;
|
|
251
|
+
/** Demotes admins back to regular participants. Same per-jid result shape as {@link addParticipants}. */
|
|
252
|
+
readonly demoteParticipants: (groupJid: string, participants: readonly string[]) => Promise<readonly WaParticipantActionResult[]>;
|
|
253
|
+
/** Leaves one or more groups (batched in a single IQ). */
|
|
254
|
+
readonly leaveGroup: (groupJids: readonly string[]) => Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Fetches the current invite code for `groupJid` (the path segment of the
|
|
257
|
+
* `chat.whatsapp.com/<code>` link) without rotating it. Group admin
|
|
258
|
+
* operation - non-admins receive a `403 not-authorized` error. Use
|
|
259
|
+
* {@link revokeInvite} to issue a fresh code and invalidate the old one.
|
|
260
|
+
*/
|
|
261
|
+
readonly queryInviteCode: (groupJid: string) => Promise<string>;
|
|
262
|
+
/**
|
|
263
|
+
* Revokes the current invite link. The server rotates the code
|
|
264
|
+
* immediately - every previously-shared `chat.whatsapp.com/<code>` link
|
|
265
|
+
* stops working. Returns the freshly-issued code.
|
|
266
|
+
*/
|
|
267
|
+
readonly revokeInvite: (groupJid: string) => Promise<WaRevokeInviteResult>;
|
|
268
|
+
/**
|
|
269
|
+
* Joins a group using its invite `code` (the path segment of a
|
|
270
|
+
* `chat.whatsapp.com/<code>` URL). Throws if the code is expired,
|
|
271
|
+
* revoked, the group is full, or the current account is already a
|
|
272
|
+
* member. Returns the joined group's metadata.
|
|
273
|
+
*/
|
|
274
|
+
readonly joinGroupViaInvite: (code: string) => Promise<WaGroupMetadata>;
|
|
275
|
+
/**
|
|
276
|
+
* Creates a community (parent group). Defaults to request-required
|
|
277
|
+
* membership unless `membershipApprovalMode === 'open'`.
|
|
278
|
+
*/
|
|
279
|
+
readonly createCommunity: (subject: string, options?: WaCommunityCreateOptions) => Promise<WaGroupMetadata>;
|
|
280
|
+
/** Deactivates (deletes) a community. */
|
|
281
|
+
readonly deactivateCommunity: (communityJid: string) => Promise<void>;
|
|
282
|
+
/** Links existing groups as sub-groups of `communityJid`. */
|
|
283
|
+
readonly linkSubGroups: (communityJid: string, subGroupJids: readonly string[]) => Promise<WaLinkSubGroupsResult>;
|
|
284
|
+
/**
|
|
285
|
+
* Unlinks sub-groups from a community. Set `removeOrphanedMembers` to
|
|
286
|
+
* also evict members that no longer belong to any linked group.
|
|
287
|
+
*/
|
|
288
|
+
readonly unlinkSubGroups: (communityJid: string, subGroupJids: readonly string[], options?: {
|
|
289
|
+
readonly removeOrphanedMembers?: boolean;
|
|
290
|
+
}) => Promise<WaUnlinkSubGroupsResult>;
|
|
291
|
+
/** Returns the merged participant list across all groups in a community. */
|
|
292
|
+
readonly queryLinkedGroupsParticipants: (communityJid: string) => Promise<readonly WaGroupParticipant[]>;
|
|
293
|
+
/** Lists sub-groups (and announcement group) of a community via MEX. */
|
|
294
|
+
readonly fetchSubGroups: (communityJid: string) => Promise<WaCommunitySubGroupsResult>;
|
|
295
|
+
/** Lists pending membership-approval requests for the group. */
|
|
296
|
+
readonly queryMembershipApprovalRequests: (groupJid: string) => Promise<readonly WaMembershipRequest[]>;
|
|
297
|
+
/** Approves the listed pending join requests. */
|
|
298
|
+
readonly approveMembershipRequests: (groupJid: string, participantJids: readonly string[]) => Promise<void>;
|
|
299
|
+
/** Rejects the listed pending join requests. */
|
|
300
|
+
readonly rejectMembershipRequests: (groupJid: string, participantJids: readonly string[]) => Promise<void>;
|
|
301
|
+
/** Cancels the current account's own pending join requests in the group. */
|
|
302
|
+
readonly cancelMembershipRequests: (groupJid: string, participantJids: readonly string[]) => Promise<void>;
|
|
303
|
+
/**
|
|
304
|
+
* Joins a linked sub-group of a community the account already belongs
|
|
305
|
+
* to. The IQ result carries no group payload (wa-web only validates the
|
|
306
|
+
* envelope) - call {@link queryGroupMetadata} on `subGroupJid` after
|
|
307
|
+
* this resolves to get the full metadata for the newly-joined group.
|
|
308
|
+
*/
|
|
309
|
+
readonly joinLinkedGroup: (communityJid: string, subGroupJid: string, options?: {
|
|
310
|
+
readonly type?: string;
|
|
311
|
+
}) => Promise<void>;
|
|
312
|
+
/** Returns `true` when the group is flagged as an internal WhatsApp group. */
|
|
313
|
+
readonly isInternalGroup: (groupJid: string) => Promise<boolean>;
|
|
314
|
+
/** Transfers community ownership to `newOwnerJid` (superadmin handoff). */
|
|
315
|
+
readonly transferCommunityOwnership: (communityJid: string, newOwnerJid: string) => Promise<void>;
|
|
316
|
+
/** Lists suggested sub-groups for a community, anchored on a hint group. */
|
|
317
|
+
readonly fetchSubgroupSuggestions: (communityJid: string, hintSubgroupJid: string) => Promise<readonly WaCommunitySubGroupSuggestion[]>;
|
|
318
|
+
/**
|
|
319
|
+
* Submits a suspension appeal for the group. `responseCode === 'SUCCESS'`
|
|
320
|
+
* or `'APPEAL_ALREADY_EXISTS'` are reported as successful.
|
|
321
|
+
*/
|
|
322
|
+
readonly submitGroupSuspensionAppeal: (groupJid: string, options?: {
|
|
323
|
+
readonly reason?: string | null;
|
|
324
|
+
readonly debugInfo?: string;
|
|
325
|
+
}) => Promise<WaGroupSuspensionAppealResult>;
|
|
326
|
+
}
|
|
327
|
+
interface GroupCommons {
|
|
328
|
+
readonly jid: string;
|
|
329
|
+
readonly subject: string;
|
|
330
|
+
readonly size?: number;
|
|
331
|
+
readonly creation?: number;
|
|
332
|
+
readonly subjectOwner?: string;
|
|
333
|
+
/** PN-form jid of the subject owner when the group is LID-addressed (`s_o_pn`). */
|
|
334
|
+
readonly subjectOwnerPhoneNumber?: string;
|
|
335
|
+
/** Username handle of the subject owner when set (`s_o_username`). */
|
|
336
|
+
readonly subjectOwnerUsername?: string;
|
|
337
|
+
readonly subjectTime?: number;
|
|
338
|
+
readonly addressingMode?: 'lid' | 'pn';
|
|
339
|
+
readonly desc?: string;
|
|
340
|
+
readonly descId?: string;
|
|
341
|
+
readonly descOwner?: string;
|
|
342
|
+
readonly descTime?: number;
|
|
343
|
+
readonly ephemeral?: number;
|
|
344
|
+
readonly ephemeralTrigger?: number;
|
|
345
|
+
readonly linkedParentJid?: string;
|
|
346
|
+
readonly membershipApprovalEnabled: boolean;
|
|
46
347
|
}
|
|
348
|
+
/** Builds a {@link WaGroupCoordinator} backed by the given IQ query function and optional MEX socket. */
|
|
47
349
|
export declare function createGroupCoordinator(options: WaGroupCoordinatorOptions): WaGroupCoordinator;
|
|
48
350
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { WaSuccessPersistAttributes } from '../../auth/types';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import type { WaAuthCredentials, WaSuccessPersistAttributes } from '../../auth/types';
|
|
2
|
+
import type { WaOfflineResumeCoordinator } from '../coordinators/WaOfflineResumeCoordinator';
|
|
3
|
+
import type { WaDirtyBit } from '../events/dirty';
|
|
4
|
+
import type { WaAccountTakeoverNoticeEvent, WaBusinessEvent, WaGroupEvent, WaIncomingCallEvent, WaIncomingChatstateEvent, WaIncomingErrorStanzaEvent, WaIncomingFailureEvent, WaIncomingNodeHandlerRegistration, WaIncomingNotificationEvent, WaIncomingPresenceEvent, WaIncomingReceiptEvent, WaIncomingStanzaFilter, WaIncomingUnhandledStanzaEvent, WaMexNotificationEvent, WaPictureEvent, WaRegistrationCodeEvent } from '../types';
|
|
4
5
|
import type { Logger } from '../../infra/log/types';
|
|
5
6
|
import type { WaConnectionCode, WaDisconnectReason } from '../../protocol/stream';
|
|
6
7
|
import { type WaStreamControlNodeResult } from '../../transport/stream/parse';
|
|
@@ -26,10 +27,16 @@ interface WaIncomingNodeRuntime {
|
|
|
26
27
|
readonly emitIncomingPresence: (event: WaIncomingPresenceEvent) => void;
|
|
27
28
|
readonly emitIncomingChatstate: (event: WaIncomingChatstateEvent) => void;
|
|
28
29
|
readonly emitIncomingCall: (event: WaIncomingCallEvent) => void;
|
|
30
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
29
31
|
readonly emitIncomingFailure: (event: WaIncomingFailureEvent) => void;
|
|
30
|
-
readonly emitIncomingErrorStanza: (event:
|
|
32
|
+
readonly emitIncomingErrorStanza: (event: WaIncomingErrorStanzaEvent) => void;
|
|
31
33
|
readonly emitIncomingNotification: (event: WaIncomingNotificationEvent) => void;
|
|
34
|
+
readonly emitMexNotification: (event: WaMexNotificationEvent) => void;
|
|
35
|
+
readonly emitRegistrationCode: (event: WaRegistrationCodeEvent) => void;
|
|
36
|
+
readonly emitAccountTakeoverNotice: (event: WaAccountTakeoverNoticeEvent) => void;
|
|
32
37
|
readonly emitGroupEvent: (event: WaGroupEvent) => void;
|
|
38
|
+
readonly emitBusinessEvent: (event: WaBusinessEvent) => void;
|
|
39
|
+
readonly emitPictureEvent: (event: WaPictureEvent) => void;
|
|
33
40
|
readonly emitUnhandledIncomingNode: (event: WaIncomingUnhandledStanzaEvent) => void;
|
|
34
41
|
readonly syncAppState: () => Promise<void>;
|
|
35
42
|
readonly stopComms: () => void;
|
|
@@ -41,14 +48,19 @@ interface WaIncomingNodeRuntime {
|
|
|
41
48
|
interface WaIncomingNodeCoordinatorOptions {
|
|
42
49
|
readonly logger: Logger;
|
|
43
50
|
readonly runtime: WaIncomingNodeRuntime;
|
|
51
|
+
readonly offlineResume: WaOfflineResumeCoordinator;
|
|
44
52
|
}
|
|
45
53
|
export declare class WaIncomingNodeCoordinator {
|
|
46
54
|
private readonly logger;
|
|
47
55
|
private readonly runtime;
|
|
56
|
+
private readonly offlineResume;
|
|
48
57
|
private readonly nodeHandlerRegistry;
|
|
58
|
+
private readonly stanzaFilters;
|
|
49
59
|
private mediaConnWarmupPromise;
|
|
50
60
|
constructor(options: WaIncomingNodeCoordinatorOptions);
|
|
51
61
|
handleIncomingNode(node: BinaryNode): Promise<void>;
|
|
62
|
+
registerIncomingStanzaFilter(filter: WaIncomingStanzaFilter): () => void;
|
|
63
|
+
private applyStanzaFilters;
|
|
52
64
|
registerIncomingHandler(registration: WaIncomingNodeHandlerRegistration): () => void;
|
|
53
65
|
unregisterIncomingHandler(registration: WaIncomingNodeHandlerRegistration): boolean;
|
|
54
66
|
private dispatchIncomingNode;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { WaReceiptQueue } from '../connection/WaReceiptQueue';
|
|
2
|
+
import type { WaIncomingNodeCoordinator } from '../coordinators/WaIncomingNodeCoordinator';
|
|
3
|
+
import type { WaIncomingNodeHandlerRegistration, WaIncomingStanzaFilter } from '../types';
|
|
4
|
+
import type { Logger } from '../../infra/log/types';
|
|
5
|
+
import type { WaNodeOrchestrator } from '../../transport/node/WaNodeOrchestrator';
|
|
6
|
+
import type { BinaryNode } from '../../transport/types';
|
|
7
|
+
/**
|
|
8
|
+
* Raw escape hatch for sending nodes, issuing IQs, and registering custom
|
|
9
|
+
* incoming-node handlers/filters. Accessed via {@link WaClient.lowlevel}.
|
|
10
|
+
*/
|
|
11
|
+
export interface WaLowLevelCoordinator {
|
|
12
|
+
/**
|
|
13
|
+
* Sends a raw stanza. Failures that look like a transient receipt-send
|
|
14
|
+
* issue are buffered to the receipt queue and logged instead of thrown.
|
|
15
|
+
*/
|
|
16
|
+
readonly sendNode: (node: BinaryNode) => Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Sends an IQ stanza and awaits the matching response (within `timeoutMs`).
|
|
19
|
+
* Throws when the client is not connected.
|
|
20
|
+
*/
|
|
21
|
+
readonly query: (node: BinaryNode, timeoutMs?: number, options?: {
|
|
22
|
+
readonly useSystemId?: boolean;
|
|
23
|
+
}) => Promise<BinaryNode>;
|
|
24
|
+
/**
|
|
25
|
+
* Registers a handler for incoming nodes that match the registration's
|
|
26
|
+
* tag/subtype filter. Returns an `unregister` function.
|
|
27
|
+
*/
|
|
28
|
+
readonly registerIncomingHandler: (registration: WaIncomingNodeHandlerRegistration) => () => void;
|
|
29
|
+
/** Removes a previously-registered incoming handler; returns `true` on success. */
|
|
30
|
+
readonly unregisterIncomingHandler: (registration: WaIncomingNodeHandlerRegistration) => boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Registers an incoming-stanza filter (runs before the typed handlers).
|
|
33
|
+
* Returns an `unregister` function.
|
|
34
|
+
*/
|
|
35
|
+
readonly registerIncomingStanzaFilter: (filter: WaIncomingStanzaFilter) => () => void;
|
|
36
|
+
}
|
|
37
|
+
interface WaLowLevelCoordinatorOptions {
|
|
38
|
+
readonly logger: Logger;
|
|
39
|
+
readonly nodeOrchestrator: WaNodeOrchestrator;
|
|
40
|
+
readonly incomingNode: WaIncomingNodeCoordinator;
|
|
41
|
+
readonly receiptQueue: WaReceiptQueue;
|
|
42
|
+
readonly isConnected: () => boolean;
|
|
43
|
+
readonly defaultIqTimeoutMs?: number;
|
|
44
|
+
}
|
|
45
|
+
/** Builds a {@link WaLowLevelCoordinator} from its transport dependencies. */
|
|
46
|
+
export declare function createLowLevelCoordinator(options: WaLowLevelCoordinatorOptions): WaLowLevelCoordinator;
|
|
47
|
+
export {};
|