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
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare const WA_CALL_PAYLOAD_TAGS: Readonly<{
|
|
2
|
+
readonly OFFER: "offer";
|
|
3
|
+
readonly OFFER_NOTICE: "offer_notice";
|
|
4
|
+
readonly ACCEPT: "accept";
|
|
5
|
+
readonly PREACCEPT: "preaccept";
|
|
6
|
+
readonly REJECT: "reject";
|
|
7
|
+
readonly TERMINATE: "terminate";
|
|
8
|
+
readonly TRANSPORT: "transport";
|
|
9
|
+
readonly MUTE: "mute";
|
|
10
|
+
readonly VIDEO_STATE: "video_state";
|
|
11
|
+
readonly GROUP_INFO: "group_info";
|
|
12
|
+
readonly GROUP_UPDATE: "group_update";
|
|
13
|
+
readonly ENC_REKEY: "enc_rekey";
|
|
14
|
+
readonly PEER_STATE: "peer_state";
|
|
15
|
+
readonly FLOW_CONTROL: "flow_control";
|
|
16
|
+
readonly WEB_CLIENT: "web_client";
|
|
17
|
+
}>;
|
|
18
|
+
export type WaCallPayloadTag = (typeof WA_CALL_PAYLOAD_TAGS)[keyof typeof WA_CALL_PAYLOAD_TAGS];
|
|
19
|
+
/**
|
|
20
|
+
* Payload tags that wa-web responds to with a `<receipt>` carrying a typed
|
|
21
|
+
* child node (`<offer call-id call-creator/>`, etc.) instead of a plain
|
|
22
|
+
* `<ack class="call"/>`. Source: `WAWebHandleVoipCall.js`.
|
|
23
|
+
*/
|
|
24
|
+
export declare const WA_CALL_RECEIPT_PAYLOAD_TAGS: ReadonlySet<WaCallPayloadTag>;
|
|
25
|
+
export declare const WA_CALL_NODE_ATTRS: Readonly<{
|
|
26
|
+
readonly CALL_ID: "call-id";
|
|
27
|
+
readonly CALL_CREATOR: "call-creator";
|
|
28
|
+
readonly GROUP_JID: "group-jid";
|
|
29
|
+
readonly CALLER_PN: "caller_pn";
|
|
30
|
+
readonly CALLER_COUNTRY_CODE: "caller_country_code";
|
|
31
|
+
readonly USERNAME: "username";
|
|
32
|
+
readonly NOTIFY: "notify";
|
|
33
|
+
readonly SENDER_LID: "sender_lid";
|
|
34
|
+
readonly PLATFORM: "platform";
|
|
35
|
+
readonly VERSION: "version";
|
|
36
|
+
readonly REASON: "reason";
|
|
37
|
+
readonly USER_PN: "user_pn";
|
|
38
|
+
readonly GUEST_NAME: "guest_name";
|
|
39
|
+
}>;
|
|
40
|
+
export declare const WA_CALL_CHILD_TAGS: Readonly<{
|
|
41
|
+
readonly VIDEO: "video";
|
|
42
|
+
readonly SILENCE: "silence";
|
|
43
|
+
readonly GROUP_INFO: "group_info";
|
|
44
|
+
}>;
|
|
@@ -1,16 +1,33 @@
|
|
|
1
1
|
export { getWaCompanionPlatformId, WA_BROWSERS, WA_COMPANION_PLATFORM_IDS } from './browser';
|
|
2
2
|
export { WA_SIGNALING, WA_PAIRING_KDF_INFO } from './auth';
|
|
3
3
|
export { WA_CONNECTION_REASONS, WA_DISCONNECT_REASONS, WA_FAILURE_REASONS, WA_LOGOUT_REASONS, WA_READY_STATES, WA_STREAM_SIGNALING } from './stream';
|
|
4
|
-
export type { WaConnectionCode, WaConnectionOpenReason, WaDisconnectReason, WaFailureReasonCode, WaStreamErrorCode } from './stream';
|
|
4
|
+
export type { WaConnectionCode, WaConnectionOpenReason, WaDisconnectReason, WaFailureReasonCode, WaLogoutReason, WaStreamErrorCode } from './stream';
|
|
5
5
|
export { WA_IQ_TYPES, WA_NODE_TAGS, WA_XMLNS } from './nodes';
|
|
6
|
+
export { WA_CALL_CHILD_TAGS, WA_CALL_NODE_ATTRS, WA_CALL_PAYLOAD_TAGS, WA_CALL_RECEIPT_PAYLOAD_TAGS } from './call';
|
|
7
|
+
export type { WaCallPayloadTag } from './call';
|
|
6
8
|
export { WA_EDIT_ATTRS, WA_ENC_MEDIA_TYPES, WA_EVENT_META_TYPES, WA_MESSAGE_TAGS, WA_MESSAGE_TYPES, WA_POLL_META_TYPES, WA_RETRYABLE_ACK_CODES, WA_STANZA_MSG_TYPES } from './message';
|
|
7
|
-
export {
|
|
9
|
+
export type { WaOutboundReceiptType } from './message';
|
|
10
|
+
export { WA_APP_STATE_COLLECTIONS, WA_APP_STATE_COLLECTION_STATES, WA_APP_STATE_ERROR_CODES, WA_APP_STATE_KDF_INFO, WA_APP_STATE_KEY_TYPES, WA_APP_STATE_SYNC_DATA_TYPE } from './appstate';
|
|
8
11
|
export { getWaMediaHkdfInfo, WA_MEDIA_HKDF_INFO, WA_PREVIEW_MEDIA_HKDF_INFO } from './media';
|
|
9
12
|
export { WA_ACCOUNT_SYNC_PROTOCOLS, WA_DIRTY_PROTOCOLS, WA_DIRTY_TYPES, WA_SUPPORTED_DIRTY_TYPES } from './dirty';
|
|
10
|
-
export { WA_GROUP_NOTIFICATION_TAGS, WA_NOTIFICATION_TYPES } from './notification';
|
|
13
|
+
export { WA_BUSINESS_NOTIFICATION_TAGS, WA_GROUP_NOTIFICATION_TAGS, WA_NEWSLETTER_NOTIFICATION_TAGS, WA_NOTIFICATION_TYPES, WA_REGISTRATION_NOTIFICATION_TAGS } from './notification';
|
|
14
|
+
export { WA_BUSINESS_HOURS_DAYS, WA_BUSINESS_HOURS_MODES } from './business';
|
|
15
|
+
export type { WaBusinessHoursDay, WaBusinessHoursMode } from './business';
|
|
16
|
+
export { WA_CHATSTATE_MEDIA, WA_PRESENCE_LAST_SENTINELS, WA_PRESENCE_TYPES } from './presence';
|
|
17
|
+
export type { WaChatstateMedia, WaPresenceLastSentinel, WaPresenceType } from './presence';
|
|
11
18
|
export { WA_PRIVACY_TOKEN_NOTIFICATION_TYPE, WA_PRIVACY_TOKEN_TAGS, WA_PRIVACY_TOKEN_TYPES, WA_TC_TOKEN_DEFAULTS } from './privacy-token';
|
|
12
19
|
export { WA_PRIVACY_CATEGORIES, WA_PRIVACY_CATEGORY_TO_SETTING, WA_PRIVACY_DISALLOWED_LIST_CATEGORIES, WA_PRIVACY_SETTING_TO_CATEGORY, WA_PRIVACY_TAGS, WA_PRIVACY_VALUES } from './privacy';
|
|
13
20
|
export type { WaPrivacyCategory, WaPrivacySettingName, WaPrivacyValue } from './privacy';
|
|
14
21
|
export { WA_DEFAULTS } from './defaults';
|
|
22
|
+
export { WA_BIZ_BOT_TYPES, WA_BOT_DEFAULT_CAPABILITIES, WA_BOT_HKDF_INFO, WA_BOT_KNOWN_JIDS, WA_BOT_MSG_BODY_TYPES, WA_BOT_MSG_EDIT_TYPES, WA_BOT_MSG_SECRET_BYTES, WA_BOT_NODE_ATTRS, WA_META_NODE_ATTRS_BOT } from './bot';
|
|
23
|
+
export type { WaBizBotType, WaBotMsgBodyType, WaBotMsgEditType } from './bot';
|
|
24
|
+
export { WA_STATUS_DISTRIBUTION_SETTINGS } from './status';
|
|
25
|
+
export type { WaStatusDistributionSetting } from './status';
|
|
26
|
+
export { WA_EMAIL_CONTEXTS, WA_EMAIL_ERROR_CODES, WA_EMAIL_LIMITS, WA_EMAIL_TAGS, WA_EMAIL_XMLNS } from './email';
|
|
27
|
+
export type { WaEmailContext, WaEmailErrorCode } from './email';
|
|
28
|
+
export { AB_PROP_CONFIGS, resolveAbPropNameByCode, WA_ABPROPS_PROTOCOL_VERSION, WA_ABPROPS_REFRESH_BOUNDS } from './abprops';
|
|
29
|
+
export type { AbPropConfigEntry, AbPropName, AbPropType, AbPropValue } from './abprops';
|
|
15
30
|
export { WA_GROUP_PARTICIPANT_TYPES, type WaGroupSetting } from './group';
|
|
16
31
|
export { WA_USYNC_CONTEXTS, WA_USYNC_DEFAULTS, WA_USYNC_MODES } from './usync';
|
|
32
|
+
export { WA_NEWSLETTER_FETCH_KEY_TYPES, WA_NEWSLETTER_MUTE_TYPES, WA_NEWSLETTER_MUTE_VALUES, WA_NEWSLETTER_PICTURE_TYPES, WA_NEWSLETTER_RECEIVE_TYPES, WA_NEWSLETTER_ROLES, WA_NEWSLETTER_SEND_TYPES, WA_NEWSLETTER_STATE_TYPES, WA_NEWSLETTER_VERIFICATION_STATES, WA_NEWSLETTER_VIEW_ROLES } from './newsletter';
|
|
33
|
+
export type { WaNewsletterReceiveType, WaNewsletterRole, WaNewsletterSendType, WaNewsletterStateType } from './newsletter';
|
|
@@ -8,6 +8,9 @@ export declare const WA_DEFAULTS: Readonly<{
|
|
|
8
8
|
readonly HOSTED_DEVICE_ID: 99;
|
|
9
9
|
readonly MSGR_SERVER: "msgr";
|
|
10
10
|
readonly INTEROP_SERVER: "interop";
|
|
11
|
+
readonly NEWSLETTER_SERVER: "newsletter";
|
|
12
|
+
readonly BOT_SERVER: "bot";
|
|
13
|
+
readonly STATUS_BROADCAST_JID: "status@broadcast";
|
|
11
14
|
readonly DEVICE_BROWSER: "firefox";
|
|
12
15
|
readonly DEVICE_PLATFORM: string;
|
|
13
16
|
readonly CHAT_SOCKET_URLS: readonly ["wss://web.whatsapp.com/ws/chat", "wss://web.whatsapp.com:5222/ws/chat"];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const WA_EMAIL_XMLNS = "urn:xmpp:whatsapp:account";
|
|
2
|
+
export declare const WA_EMAIL_TAGS: Readonly<{
|
|
3
|
+
readonly EMAIL: "email";
|
|
4
|
+
readonly EMAIL_ADDRESS: "email_address";
|
|
5
|
+
readonly VERIFY_EMAIL: "verify_email";
|
|
6
|
+
readonly CONFIRM_EMAIL: "confirm_email";
|
|
7
|
+
readonly CONTEXT: "context";
|
|
8
|
+
readonly CODE: "code";
|
|
9
|
+
readonly LG: "lg";
|
|
10
|
+
readonly LC: "lc";
|
|
11
|
+
readonly AUTO_VERIFY: "auto_verify";
|
|
12
|
+
readonly CONFIRMED: "confirmed";
|
|
13
|
+
}>;
|
|
14
|
+
export declare const WA_EMAIL_CONTEXTS: Readonly<{
|
|
15
|
+
readonly ONBOARDING: "onboarding";
|
|
16
|
+
readonly SETTINGS: "settings";
|
|
17
|
+
}>;
|
|
18
|
+
export type WaEmailContext = (typeof WA_EMAIL_CONTEXTS)[keyof typeof WA_EMAIL_CONTEXTS];
|
|
19
|
+
export declare const WA_EMAIL_LIMITS: Readonly<{
|
|
20
|
+
readonly EMAIL_MAX_LENGTH: 320;
|
|
21
|
+
readonly CODE_LENGTH: 6;
|
|
22
|
+
readonly LOCALE_MIN_LENGTH: 2;
|
|
23
|
+
readonly LOCALE_MAX_LENGTH: 3;
|
|
24
|
+
}>;
|
|
25
|
+
export declare const WA_EMAIL_ERROR_CODES: Readonly<{
|
|
26
|
+
readonly FORBIDDEN: 403;
|
|
27
|
+
readonly LOCKOUT: 534;
|
|
28
|
+
readonly CODE_EXPIRED: 535;
|
|
29
|
+
readonly CODE_INCORRECT: 536;
|
|
30
|
+
readonly TOO_MANY_RETRIES: 537;
|
|
31
|
+
}>;
|
|
32
|
+
export type WaEmailErrorCode = (typeof WA_EMAIL_ERROR_CODES)[keyof typeof WA_EMAIL_ERROR_CODES];
|
|
@@ -3,4 +3,4 @@ export declare const WA_GROUP_PARTICIPANT_TYPES: Readonly<{
|
|
|
3
3
|
readonly ADMIN: "admin";
|
|
4
4
|
readonly REGULAR: "participant";
|
|
5
5
|
}>;
|
|
6
|
-
export type WaGroupSetting = 'announcement' | 'restrict' | 'ephemeral' | 'membership_approval_mode';
|
|
6
|
+
export type WaGroupSetting = 'announcement' | 'restrict' | 'ephemeral' | 'membership_approval_mode' | 'allow_non_admin_sub_group_creation' | 'group_history' | 'allow_admin_reports' | 'no_frequently_forwarded';
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './constants';
|
|
2
|
-
export { buildDeviceJid, canonicalizeSignalJid, canonicalizeSignalServer, getLoginIdentity, isHostedDeviceId, isHostedDeviceJid, isHostedServer,
|
|
2
|
+
export { applyDeviceToJid, buildDeviceJid, canonicalizeSignalJid, canonicalizeSignalServer, getLoginIdentity, isBotJid, isBroadcastJid, isGroupJid, isGroupOrBroadcastJid, isHostedDeviceId, isHostedDeviceJid, isHostedServer, isLidJid, isNewsletterJid, isStatusBroadcastJid, isUserJid, normalizeDeviceJid, normalizeRecipientJid, parseJidFull, parsePhoneJid, parseSignalAddressFromJid, signalAddressKey, splitJid, toUserJid } from './jid';
|
|
3
|
+
export type { ParsedJid } from './jid';
|
|
@@ -1,36 +1,115 @@
|
|
|
1
1
|
import type { SignalAddress } from '../signal/types';
|
|
2
|
+
/**
|
|
3
|
+
* Splits a JID into `user` and `server` parts at the `@` separator.
|
|
4
|
+
* Throws if the input does not contain a valid `user@server` shape.
|
|
5
|
+
*/
|
|
2
6
|
export declare function splitJid(jid: string): {
|
|
3
7
|
readonly user: string;
|
|
4
8
|
readonly server: string;
|
|
5
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Normalizes a user-supplied recipient (phone number, group id, or full JID)
|
|
12
|
+
* into a canonical JID. Strings already containing `@` are returned as-is;
|
|
13
|
+
* dashed inputs map to `<input>@g.us` (group); pure-digit inputs map to
|
|
14
|
+
* `<digits>@s.whatsapp.net`.
|
|
15
|
+
*/
|
|
6
16
|
export declare function normalizeRecipientJid(to: string): string;
|
|
17
|
+
/** Returns `true` for JIDs in the `@lid` server (linked-device identity). */
|
|
18
|
+
export declare function isLidJid(jid: string): boolean;
|
|
19
|
+
/** Returns `true` for JIDs in the `@s.whatsapp.net` server (phone-number user JIDs). */
|
|
20
|
+
export declare function isUserJid(jid: string): boolean;
|
|
21
|
+
/** Returns `true` for JIDs in the `@bot` server. */
|
|
22
|
+
export declare function isBotJid(jid: string): boolean;
|
|
23
|
+
/** Returns `true` for JIDs in the `@g.us` server (groups). */
|
|
7
24
|
export declare function isGroupJid(jid: string): boolean;
|
|
25
|
+
/** Returns `true` for JIDs in the `@broadcast` server (broadcast lists). */
|
|
8
26
|
export declare function isBroadcastJid(jid: string): boolean;
|
|
27
|
+
/** Returns `true` for the special `status@broadcast` JID. */
|
|
28
|
+
export declare function isStatusBroadcastJid(jid: string): boolean;
|
|
29
|
+
/** Returns `true` for JIDs in the `@newsletter` server. */
|
|
30
|
+
export declare function isNewsletterJid(jid: string): boolean;
|
|
31
|
+
/** Returns `true` for any group or broadcast JID. */
|
|
9
32
|
export declare function isGroupOrBroadcastJid(jid: string): boolean;
|
|
10
33
|
export interface ParsedJid {
|
|
11
34
|
readonly address: SignalAddress;
|
|
12
35
|
readonly userJid: string;
|
|
13
36
|
readonly normalizedJid: string;
|
|
14
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Parses a JID into a Signal-style `{ user, server, device }` address.
|
|
40
|
+
* `device` is `0` when the JID has no `:device` segment.
|
|
41
|
+
*/
|
|
15
42
|
export declare function parseSignalAddressFromJid(jid: string): SignalAddress;
|
|
43
|
+
/**
|
|
44
|
+
* Parses a JID and returns the Signal address plus the user-only and
|
|
45
|
+
* fully-normalized device JID forms in a single pass.
|
|
46
|
+
*/
|
|
16
47
|
export declare function parseJidFull(jid: string): ParsedJid;
|
|
48
|
+
/**
|
|
49
|
+
* Maps the hosted-account server variants (`hosted` / `hosted.lid`) back to
|
|
50
|
+
* their canonical Signal server (`hostDomain` / `lid`). Other servers are
|
|
51
|
+
* returned unchanged.
|
|
52
|
+
*/
|
|
17
53
|
export declare function canonicalizeSignalServer(server: string, hostDomain?: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Returns the JID rewritten with its server canonicalized via
|
|
56
|
+
* {@link canonicalizeSignalServer} – used to derive the address Signal
|
|
57
|
+
* sessions are keyed by.
|
|
58
|
+
*/
|
|
18
59
|
export declare function canonicalizeSignalJid(jid: string, hostDomain?: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Strips the `:device` segment from a JID, returning the bare `user@server`
|
|
62
|
+
* form. Set `options.canonicalizeSignalServer` to also rewrite hosted servers
|
|
63
|
+
* via {@link canonicalizeSignalServer}.
|
|
64
|
+
*/
|
|
19
65
|
export declare function toUserJid(jid: string, options?: {
|
|
20
66
|
readonly canonicalizeSignalServer?: boolean;
|
|
21
67
|
readonly hostDomain?: string;
|
|
22
68
|
}): string;
|
|
69
|
+
/**
|
|
70
|
+
* Returns the JID in its full device form. JIDs with `device === 0` lose the
|
|
71
|
+
* device segment (`user@server`); all others keep `user:device@server`.
|
|
72
|
+
*/
|
|
23
73
|
export declare function normalizeDeviceJid(jid: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Appends `:device` to a bare user JID. A falsy `device` returns the input
|
|
76
|
+
* unchanged.
|
|
77
|
+
*/
|
|
78
|
+
export declare function applyDeviceToJid(userJid: string, device: number | undefined): string;
|
|
79
|
+
/** Returns `true` when `deviceId` matches the WhatsApp hosted-device id. */
|
|
24
80
|
export declare function isHostedDeviceId(deviceId: number): boolean;
|
|
81
|
+
/** Returns `true` for the hosted server variants (`hosted` and `hosted.lid`). */
|
|
25
82
|
export declare function isHostedServer(server: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Returns `true` when the JID refers to a hosted device – either by server
|
|
85
|
+
* (`@hosted` / `@hosted.lid`) or by a `:HOSTED_DEVICE_ID@…` device segment.
|
|
86
|
+
*/
|
|
26
87
|
export declare function isHostedDeviceJid(jid: string): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Builds a device JID from its parts. When `options.isHosted` is set, the
|
|
90
|
+
* hosted-server variant is selected (preserving LID vs phone) and the canonical
|
|
91
|
+
* hosted device id is used.
|
|
92
|
+
*/
|
|
27
93
|
export declare function buildDeviceJid(user: string, normalizedServer: string, deviceId: number, options?: {
|
|
28
94
|
readonly rawServer?: string;
|
|
29
95
|
readonly isHosted?: boolean;
|
|
30
96
|
}): string;
|
|
97
|
+
/**
|
|
98
|
+
* Extracts the numeric username and device id from the authenticated user's
|
|
99
|
+
* own JID. Throws when either segment is missing, non-numeric, or out of the
|
|
100
|
+
* safe-integer range.
|
|
101
|
+
*/
|
|
31
102
|
export declare function getLoginIdentity(meJid: string): {
|
|
32
103
|
readonly username: number;
|
|
33
104
|
readonly device: number;
|
|
34
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* Builds a `<digits>@s.whatsapp.net` JID from a free-form phone number,
|
|
108
|
+
* stripping non-digit characters. Throws when no digits are found.
|
|
109
|
+
*/
|
|
35
110
|
export declare function parsePhoneJid(input: string): string;
|
|
111
|
+
/**
|
|
112
|
+
* Returns a stable `user|server|device` key for a Signal address, suitable
|
|
113
|
+
* as a Map/Set key.
|
|
114
|
+
*/
|
|
36
115
|
export declare function signalAddressKey(address: SignalAddress): string;
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
export declare const WA_MEDIA_HKDF_INFO: Readonly<{
|
|
2
|
-
readonly document:
|
|
3
|
-
readonly image:
|
|
4
|
-
readonly sticker:
|
|
5
|
-
readonly 'xma-image':
|
|
6
|
-
readonly video:
|
|
7
|
-
readonly gif:
|
|
8
|
-
readonly audio:
|
|
9
|
-
readonly ptt:
|
|
10
|
-
readonly 'md-app-state':
|
|
11
|
-
readonly 'md-msg-hist':
|
|
12
|
-
readonly history:
|
|
2
|
+
readonly document: NodeJS.NonSharedUint8Array;
|
|
3
|
+
readonly image: NodeJS.NonSharedUint8Array;
|
|
4
|
+
readonly sticker: NodeJS.NonSharedUint8Array;
|
|
5
|
+
readonly 'xma-image': NodeJS.NonSharedUint8Array;
|
|
6
|
+
readonly video: NodeJS.NonSharedUint8Array;
|
|
7
|
+
readonly gif: NodeJS.NonSharedUint8Array;
|
|
8
|
+
readonly audio: NodeJS.NonSharedUint8Array;
|
|
9
|
+
readonly ptt: NodeJS.NonSharedUint8Array;
|
|
10
|
+
readonly 'md-app-state': NodeJS.NonSharedUint8Array;
|
|
11
|
+
readonly 'md-msg-hist': NodeJS.NonSharedUint8Array;
|
|
12
|
+
readonly history: NodeJS.NonSharedUint8Array;
|
|
13
|
+
readonly 'sticker-pack': NodeJS.NonSharedUint8Array;
|
|
14
|
+
readonly 'thumbnail-sticker-pack': NodeJS.NonSharedUint8Array;
|
|
15
|
+
readonly 'thumbnail-link': NodeJS.NonSharedUint8Array;
|
|
13
16
|
}>;
|
|
14
|
-
export declare const WA_PREVIEW_MEDIA_HKDF_INFO
|
|
15
|
-
|
|
17
|
+
export declare const WA_PREVIEW_MEDIA_HKDF_INFO: NodeJS.NonSharedUint8Array;
|
|
18
|
+
/**
|
|
19
|
+
* Returns the HKDF `info` bytes used to derive per-media keys for a given
|
|
20
|
+
* media type. Throws for unsupported types – see {@link WA_MEDIA_HKDF_INFO}
|
|
21
|
+
* for the supported set.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getWaMediaHkdfInfo(mediaType: string): Uint8Array;
|
|
@@ -11,6 +11,7 @@ export declare const WA_MESSAGE_TYPES: Readonly<{
|
|
|
11
11
|
readonly ACK_TYPE_ERROR: "error";
|
|
12
12
|
readonly ACK_CLASS_ERROR: "error";
|
|
13
13
|
readonly ACK_CLASS_MESSAGE: "message";
|
|
14
|
+
readonly ACK_CLASS_CALL: "call";
|
|
14
15
|
readonly RECEIPT_TYPE_DELIVERY: "delivery";
|
|
15
16
|
readonly RECEIPT_TYPE_SENDER: "sender";
|
|
16
17
|
readonly RECEIPT_TYPE_INACTIVE: "inactive";
|
|
@@ -22,7 +23,9 @@ export declare const WA_MESSAGE_TYPES: Readonly<{
|
|
|
22
23
|
readonly RECEIPT_TYPE_PEER: "peer_msg";
|
|
23
24
|
readonly RECEIPT_TYPE_SERVER_ERROR: "server-error";
|
|
24
25
|
readonly RECEIPT_TYPE_RETRY: "retry";
|
|
26
|
+
readonly RECEIPT_TYPE_ENC_REKEY_RETRY: "enc_rekey_retry";
|
|
25
27
|
}>;
|
|
28
|
+
export type WaOutboundReceiptType = typeof WA_MESSAGE_TYPES.RECEIPT_TYPE_READ | typeof WA_MESSAGE_TYPES.RECEIPT_TYPE_READ_SELF | typeof WA_MESSAGE_TYPES.RECEIPT_TYPE_PLAYED | typeof WA_MESSAGE_TYPES.RECEIPT_TYPE_PLAYED_SELF | typeof WA_MESSAGE_TYPES.RECEIPT_TYPE_INACTIVE | typeof WA_MESSAGE_TYPES.RECEIPT_TYPE_HISTORY_SYNC;
|
|
26
29
|
export declare const WA_RETRYABLE_ACK_CODES: readonly ["408", "429", "500", "503"];
|
|
27
30
|
export declare const WA_STANZA_MSG_TYPES: Readonly<{
|
|
28
31
|
readonly TEXT: "text";
|
|
@@ -36,6 +39,7 @@ export declare const WA_STANZA_MSG_TYPES: Readonly<{
|
|
|
36
39
|
export declare const WA_EDIT_ATTRS: Readonly<{
|
|
37
40
|
readonly MESSAGE_EDIT: "1";
|
|
38
41
|
readonly PIN_IN_CHAT: "2";
|
|
42
|
+
readonly NEWSLETTER_EDIT: "3";
|
|
39
43
|
readonly SENDER_REVOKE: "7";
|
|
40
44
|
readonly ADMIN_REVOKE: "8";
|
|
41
45
|
}>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export declare const WA_NEWSLETTER_ROLES: Readonly<{
|
|
2
|
+
readonly SUBSCRIBER: "SUBSCRIBER";
|
|
3
|
+
readonly GUEST: "GUEST";
|
|
4
|
+
readonly ADMIN: "ADMIN";
|
|
5
|
+
readonly OWNER: "OWNER";
|
|
6
|
+
}>;
|
|
7
|
+
export type WaNewsletterRole = (typeof WA_NEWSLETTER_ROLES)[keyof typeof WA_NEWSLETTER_ROLES];
|
|
8
|
+
export declare const WA_NEWSLETTER_STATE_TYPES: Readonly<{
|
|
9
|
+
readonly ACTIVE: "ACTIVE";
|
|
10
|
+
readonly SUSPENDED: "SUSPENDED";
|
|
11
|
+
readonly GEOSUSPENDED: "GEOSUSPENDED";
|
|
12
|
+
readonly DELETED: "DELETED";
|
|
13
|
+
readonly NON_EXISTING: "NON_EXISTING";
|
|
14
|
+
}>;
|
|
15
|
+
export type WaNewsletterStateType = (typeof WA_NEWSLETTER_STATE_TYPES)[keyof typeof WA_NEWSLETTER_STATE_TYPES];
|
|
16
|
+
export declare const WA_NEWSLETTER_PICTURE_TYPES: Readonly<{
|
|
17
|
+
readonly IMAGE: "IMAGE";
|
|
18
|
+
readonly PREVIEW: "PREVIEW";
|
|
19
|
+
}>;
|
|
20
|
+
export declare const WA_NEWSLETTER_FETCH_KEY_TYPES: Readonly<{
|
|
21
|
+
readonly JID: "JID";
|
|
22
|
+
readonly INVITE: "INVITE";
|
|
23
|
+
}>;
|
|
24
|
+
export declare const WA_NEWSLETTER_VIEW_ROLES: Readonly<{
|
|
25
|
+
readonly GUEST: "GUEST";
|
|
26
|
+
readonly SUBSCRIBER: "SUBSCRIBER";
|
|
27
|
+
readonly ADMIN: "ADMIN";
|
|
28
|
+
readonly OWNER: "OWNER";
|
|
29
|
+
}>;
|
|
30
|
+
export declare const WA_NEWSLETTER_MUTE_TYPES: Readonly<{
|
|
31
|
+
readonly ADMIN_ACTIVITY: "MUTE_ADMIN_ACTIVITY";
|
|
32
|
+
readonly FOLLOWER_ACTIVITY: "MUTE_FOLLOWER_ACTIVITY";
|
|
33
|
+
}>;
|
|
34
|
+
export declare const WA_NEWSLETTER_MUTE_VALUES: Readonly<{
|
|
35
|
+
readonly ON: "ON";
|
|
36
|
+
readonly OFF: "OFF";
|
|
37
|
+
}>;
|
|
38
|
+
export declare const WA_NEWSLETTER_SEND_TYPES: Readonly<{
|
|
39
|
+
readonly TEXT: "text";
|
|
40
|
+
readonly MEDIA: "media";
|
|
41
|
+
readonly REACTION: "reaction";
|
|
42
|
+
readonly REVOKE: "revoke";
|
|
43
|
+
}>;
|
|
44
|
+
export type WaNewsletterSendType = (typeof WA_NEWSLETTER_SEND_TYPES)[keyof typeof WA_NEWSLETTER_SEND_TYPES];
|
|
45
|
+
export declare const WA_NEWSLETTER_RECEIVE_TYPES: Readonly<{
|
|
46
|
+
readonly TEXT: "NewsletterText";
|
|
47
|
+
readonly MEDIA: "NewsletterMedia";
|
|
48
|
+
readonly REACTION: "NewsletterReaction";
|
|
49
|
+
readonly REACTION_REVOKE: "NewsletterReactionRevoke";
|
|
50
|
+
readonly REVOKE: "NewsletterRevoke";
|
|
51
|
+
readonly EDIT: "NewsletterEdit";
|
|
52
|
+
readonly POLL_CREATION: "NewsletterPollCreation";
|
|
53
|
+
readonly POLL_VOTE: "NewsletterPollVote";
|
|
54
|
+
readonly POLL_RESULT_SNAPSHOT: "NewsletterPollResultSnapshot";
|
|
55
|
+
readonly QUIZ_CREATION: "NewsletterQuizCreation";
|
|
56
|
+
readonly QUESTION: "NewsletterQuestion";
|
|
57
|
+
readonly QUESTION_REPLY: "NewsletterQuestionReply";
|
|
58
|
+
readonly QUESTION_RESPONSE: "NewsletterQuestionResponse";
|
|
59
|
+
readonly WAMO_EMPTY: "NewsletterWAMOEmpty";
|
|
60
|
+
}>;
|
|
61
|
+
export type WaNewsletterReceiveType = (typeof WA_NEWSLETTER_RECEIVE_TYPES)[keyof typeof WA_NEWSLETTER_RECEIVE_TYPES];
|
|
62
|
+
export declare const WA_NEWSLETTER_VERIFICATION_STATES: Readonly<{
|
|
63
|
+
readonly VERIFIED: "VERIFIED";
|
|
64
|
+
readonly UNVERIFIED: "UNVERIFIED";
|
|
65
|
+
}>;
|
|
@@ -32,6 +32,7 @@ export declare const WA_NODE_TAGS: Readonly<{
|
|
|
32
32
|
readonly DESCRIPTION: "description";
|
|
33
33
|
readonly MY_ADDONS: "my_addons";
|
|
34
34
|
readonly KEY: "key";
|
|
35
|
+
readonly OP: "op";
|
|
35
36
|
readonly REGISTRATION: "registration";
|
|
36
37
|
readonly TYPE: "type";
|
|
37
38
|
readonly IDENTITY: "identity";
|
|
@@ -61,6 +62,23 @@ export declare const WA_NODE_TAGS: Readonly<{
|
|
|
61
62
|
readonly EPHEMERAL: "ephemeral";
|
|
62
63
|
readonly MEMBERSHIP_APPROVAL_MODE: "membership_approval_mode";
|
|
63
64
|
readonly GROUP_JOIN: "group_join";
|
|
65
|
+
readonly ABPROPS: "abprops";
|
|
66
|
+
readonly PLAINTEXT: "plaintext";
|
|
67
|
+
readonly PRESENCE: "presence";
|
|
68
|
+
readonly CHATSTATE: "chatstate";
|
|
69
|
+
readonly CALL: "call";
|
|
70
|
+
readonly COMPOSING: "composing";
|
|
71
|
+
readonly PAUSED: "paused";
|
|
72
|
+
readonly BIZ: "biz";
|
|
73
|
+
readonly INTERACTIVE: "interactive";
|
|
74
|
+
readonly NATIVE_FLOW: "native_flow";
|
|
75
|
+
readonly BOT: "bot";
|
|
76
|
+
readonly META: "meta";
|
|
77
|
+
readonly STATUS: "status";
|
|
78
|
+
readonly USERNAME: "username";
|
|
79
|
+
readonly TEXT_STATUS: "text_status";
|
|
80
|
+
readonly DISAPPEARING_MODE: "disappearing_mode";
|
|
81
|
+
readonly BUSINESS: "business";
|
|
64
82
|
}>;
|
|
65
83
|
export declare const WA_IQ_TYPES: Readonly<{
|
|
66
84
|
readonly GET: "get";
|
|
@@ -82,6 +100,12 @@ export declare const WA_XMLNS: Readonly<{
|
|
|
82
100
|
readonly STATUS: "status";
|
|
83
101
|
readonly GROUPS: "w:g2";
|
|
84
102
|
readonly NEWSLETTER: "newsletter";
|
|
103
|
+
readonly TOS: "tos";
|
|
85
104
|
readonly XMPP_PING: "urn:xmpp:ping";
|
|
86
105
|
readonly WHATSAPP_PING: "w:p";
|
|
106
|
+
readonly ABPROPS: "abt";
|
|
107
|
+
readonly MEX: "w:mex";
|
|
108
|
+
readonly BOT: "bot";
|
|
109
|
+
readonly DISAPPEARING_MODE: "disappearing_mode";
|
|
110
|
+
readonly PASSIVE: "passive";
|
|
87
111
|
}>;
|
|
@@ -2,6 +2,26 @@ export declare const WA_NOTIFICATION_TYPES: Readonly<{
|
|
|
2
2
|
readonly GROUP: "w:gp2";
|
|
3
3
|
readonly ENCRYPT: "encrypt";
|
|
4
4
|
readonly DEVICES: "devices";
|
|
5
|
+
readonly SERVER: "server";
|
|
6
|
+
readonly REGISTRATION: "registration";
|
|
7
|
+
readonly NEWSLETTER: "newsletter";
|
|
8
|
+
readonly BUSINESS: "business";
|
|
9
|
+
readonly PICTURE: "picture";
|
|
10
|
+
}>;
|
|
11
|
+
export declare const WA_BUSINESS_NOTIFICATION_TAGS: Readonly<{
|
|
12
|
+
readonly VERIFIED_NAME: "verified_name";
|
|
13
|
+
readonly REMOVE: "remove";
|
|
14
|
+
readonly PROFILE: "profile";
|
|
15
|
+
readonly PRODUCT_CATALOG: "product_catalog";
|
|
16
|
+
readonly SUBSCRIPTIONS: "subscriptions";
|
|
17
|
+
readonly FEATURE_FLAGS: "feature_flags";
|
|
18
|
+
}>;
|
|
19
|
+
export declare const WA_NEWSLETTER_NOTIFICATION_TAGS: Readonly<{
|
|
20
|
+
readonly LIVE_UPDATES: "live_updates";
|
|
21
|
+
}>;
|
|
22
|
+
export declare const WA_REGISTRATION_NOTIFICATION_TAGS: Readonly<{
|
|
23
|
+
readonly WA_OLD_REGISTRATION: "wa_old_registration";
|
|
24
|
+
readonly DEVICE_LOGOUT: "device_logout";
|
|
5
25
|
}>;
|
|
6
26
|
export declare const WA_GROUP_NOTIFICATION_TAGS: Readonly<{
|
|
7
27
|
readonly REMOVE: "remove";
|
|
@@ -49,4 +69,6 @@ export declare const WA_GROUP_NOTIFICATION_TAGS: Readonly<{
|
|
|
49
69
|
readonly GROUP_SAFETY_CHECK: "group_safety_check";
|
|
50
70
|
readonly LIMIT_SHARING_ENABLED: "limit_sharing_enabled";
|
|
51
71
|
readonly MISSING_PARTICIPANT_IDENTIFICATION: "missing_participant_identification";
|
|
72
|
+
readonly GROUP_HISTORY: "group_history";
|
|
73
|
+
readonly NO_GROUP_HISTORY: "no_group_history";
|
|
52
74
|
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const WA_PRESENCE_TYPES: Readonly<{
|
|
2
|
+
readonly AVAILABLE: "available";
|
|
3
|
+
readonly UNAVAILABLE: "unavailable";
|
|
4
|
+
readonly SUBSCRIBE: "subscribe";
|
|
5
|
+
}>;
|
|
6
|
+
export declare const WA_PRESENCE_LAST_SENTINELS: Readonly<{
|
|
7
|
+
readonly DENY: "deny";
|
|
8
|
+
readonly NONE: "none";
|
|
9
|
+
readonly ERROR: "error";
|
|
10
|
+
}>;
|
|
11
|
+
export declare const WA_CHATSTATE_MEDIA: Readonly<{
|
|
12
|
+
readonly AUDIO: "audio";
|
|
13
|
+
}>;
|
|
14
|
+
export type WaPresenceType = (typeof WA_PRESENCE_TYPES)[keyof typeof WA_PRESENCE_TYPES];
|
|
15
|
+
export type WaPresenceLastSentinel = (typeof WA_PRESENCE_LAST_SENTINELS)[keyof typeof WA_PRESENCE_LAST_SENTINELS];
|
|
16
|
+
export type WaChatstateMedia = (typeof WA_CHATSTATE_MEDIA)[keyof typeof WA_CHATSTATE_MEDIA];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const WA_STATUS_DISTRIBUTION_SETTINGS: Readonly<{
|
|
2
|
+
readonly CONTACTS: "contacts";
|
|
3
|
+
readonly ALLOWLIST: "allowlist";
|
|
4
|
+
readonly DENYLIST: "denylist";
|
|
5
|
+
readonly CLOSE_FRIENDS: "close_friends";
|
|
6
|
+
}>;
|
|
7
|
+
export type WaStatusDistributionSetting = (typeof WA_STATUS_DISTRIBUTION_SETTINGS)[keyof typeof WA_STATUS_DISTRIBUTION_SETTINGS];
|
|
@@ -39,6 +39,7 @@ export declare const WA_LOGOUT_REASONS: Readonly<{
|
|
|
39
39
|
readonly WEB_FAIL_ENC_SALT: "web_fail_enc_salt";
|
|
40
40
|
readonly CACHE_STORAGE_OPEN_FAILED: "cache_storage_open_failed";
|
|
41
41
|
}>;
|
|
42
|
+
export type WaLogoutReason = (typeof WA_LOGOUT_REASONS)[keyof typeof WA_LOGOUT_REASONS];
|
|
42
43
|
export declare const WA_STREAM_SIGNALING: Readonly<{
|
|
43
44
|
readonly STREAM_ERROR_TAG: "stream:error";
|
|
44
45
|
readonly XML_STREAM_END_TAG: "xmlstreamend";
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { WaRetryReplayPayload } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Encodes a {@link WaRetryReplayPayload} into the on-disk codec format used
|
|
4
|
+
* by the retry store. Supports the `plaintext`/`encrypted`/`opaque_node` modes.
|
|
5
|
+
*/
|
|
2
6
|
export declare function encodeRetryReplayPayload(payload: WaRetryReplayPayload): Uint8Array;
|
|
7
|
+
/** Inverse of {@link encodeRetryReplayPayload}. Throws on bad magic/version. */
|
|
3
8
|
export declare function decodeRetryReplayPayload(raw: Uint8Array): WaRetryReplayPayload;
|
|
@@ -2,7 +2,7 @@ export { MAX_RETRY_ATTEMPTS, RETRY_KEYS_MIN_COUNT, RETRY_OUTBOUND_TTL_MS, RETRY_
|
|
|
2
2
|
export type { WaRetryReasonCode } from './constants';
|
|
3
3
|
export { mapRetryReasonFromError } from './reason';
|
|
4
4
|
export { parseRetryReceiptRequest, pickRetryStateMax } from './parse';
|
|
5
|
-
export type { WaParsedRetryRequest, WaRetryDecryptFailureContext, WaRetryEncryptedReplayPayload, WaRetryKey, WaRetryKeyBundle, WaRetryOpaqueNodeReplayPayload, WaRetryOutboundMessageRecord, WaRetryOutboundMode, WaRetryOutboundState, WaRetryPlaintextReplayPayload, WaRetryReceiptType, WaRetryReplayPayload, WaRetryStoredReplayPayload
|
|
5
|
+
export type { WaParsedRetryRequest, WaRetryDecryptFailureContext, WaRetryEncryptedReplayPayload, WaRetryKey, WaRetryKeyBundle, WaRetryOpaqueNodeReplayPayload, WaRetryOutboundMessageRecord, WaRetryOutboundMode, WaRetryOutboundState, WaRetryPlaintextReplayPayload, WaRetryReceiptType, WaRetryReplayPayload, WaRetryStoredReplayPayload } from './types';
|
|
6
6
|
export { decodeRetryReplayPayload, encodeRetryReplayPayload } from './codec';
|
|
7
7
|
export { WaRetryReplayService, type WaRetryReplayServiceOptions, type WaRetryResendResult } from './replay';
|
|
8
8
|
export { createOutboundRetryTracker, type OutboundRetryTrackHint, type OutboundRetryTracker } from './tracker';
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { WaParsedRetryRequest, WaRetryOutboundState } from './types';
|
|
2
2
|
import type { BinaryNode } from '../transport/types';
|
|
3
|
+
/**
|
|
4
|
+
* Parses an incoming `receipt` stanza into a {@link WaParsedRetryRequest}.
|
|
5
|
+
* Returns `null` when the stanza is not a retry/rekey-retry receipt; throws
|
|
6
|
+
* when required attrs/children are missing.
|
|
7
|
+
*/
|
|
3
8
|
export declare function parseRetryReceiptRequest(node: BinaryNode, options?: {
|
|
4
9
|
readonly expectedToJids?: readonly string[];
|
|
5
10
|
}): WaParsedRetryRequest | null;
|
|
11
|
+
/**
|
|
12
|
+
* Returns whichever of `left`/`right` represents the more advanced retry
|
|
13
|
+
* state (according to the internal precedence rank).
|
|
14
|
+
*/
|
|
6
15
|
export declare function pickRetryStateMax(left: WaRetryOutboundState, right: WaRetryOutboundState): WaRetryOutboundState;
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import { type WaRetryReasonCode } from './constants';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Maps a decryption/Signal error to the appropriate {@link WaRetryReasonCode}
|
|
4
|
+
* so an outbound retry receipt carries the correct `error` attribute.
|
|
5
|
+
* Returns `undefined` when no known reason matches.
|
|
6
|
+
*/
|
|
7
|
+
export declare function mapRetryReasonFromError(error: unknown): WaRetryReasonCode | undefined;
|
|
@@ -1,26 +1,40 @@
|
|
|
1
|
+
import type { WaAuthCredentials } from '../auth/types';
|
|
1
2
|
import type { Logger } from '../infra/log/types';
|
|
3
|
+
import { type IcdcMeta } from '../message/crypto/icdc';
|
|
2
4
|
import type { WaMessageClient } from '../message/WaMessageClient';
|
|
3
|
-
import { type Proto } from '..';
|
|
4
5
|
import type { WaRetryOutboundMessageRecord } from './types';
|
|
6
|
+
import type { SignalSessionResolver } from '../signal/session/resolver';
|
|
5
7
|
import type { SignalProtocol } from '../signal/session/SignalProtocol';
|
|
6
8
|
export interface WaRetryReplayServiceOptions {
|
|
7
9
|
readonly logger: Logger;
|
|
8
10
|
readonly messageClient: WaMessageClient;
|
|
9
11
|
readonly signalProtocol: SignalProtocol;
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
12
|
+
readonly sessionResolver: SignalSessionResolver;
|
|
13
|
+
readonly getCurrentCredentials: () => WaAuthCredentials | null;
|
|
14
|
+
readonly resolveUserIcdc?: (userJid: string) => Promise<IcdcMeta | null>;
|
|
13
15
|
}
|
|
14
16
|
export type WaRetryResendResult = 'resent' | 'ineligible';
|
|
17
|
+
/**
|
|
18
|
+
* Replays a previously-sent outbound message in response to an incoming
|
|
19
|
+
* retry receipt. Dispatches to plaintext/encrypted/opaque-node handlers
|
|
20
|
+
* based on the stored payload shape.
|
|
21
|
+
*/
|
|
15
22
|
export declare class WaRetryReplayService {
|
|
16
23
|
private readonly options;
|
|
17
24
|
constructor(options: WaRetryReplayServiceOptions);
|
|
25
|
+
/**
|
|
26
|
+
* Resends `outbound` to `requesterJid`. Returns `'resent'` on a fresh
|
|
27
|
+
* send or `'ineligible'` when the cached payload cannot satisfy the
|
|
28
|
+
* request (e.g. requester not in the original device list).
|
|
29
|
+
*/
|
|
18
30
|
resendOutboundMessage(outbound: WaRetryOutboundMessageRecord, requesterJid: string, retryCount: number): Promise<WaRetryResendResult>;
|
|
19
31
|
private resendPlaintextPayload;
|
|
32
|
+
private resolveSignedDeviceIdentity;
|
|
33
|
+
private refreshRetryPlaintext;
|
|
34
|
+
private safeUserJid;
|
|
20
35
|
private resendGroupPlaintextPayload;
|
|
21
36
|
private resendEncryptedPayload;
|
|
22
37
|
private resendOpaquePayload;
|
|
23
|
-
private maybeWrapGroupRetryPlaintextForSelfDevice;
|
|
24
38
|
private isRequesterCurrentAccount;
|
|
25
39
|
private isOpaqueReplayCompatible;
|
|
26
40
|
}
|
|
@@ -5,15 +5,22 @@ import type { WaRetryStore } from '../store/contracts/retry.store';
|
|
|
5
5
|
export type OutboundRetryTrackHint = {
|
|
6
6
|
readonly messageIdHint?: string;
|
|
7
7
|
readonly toJid?: string;
|
|
8
|
-
readonly type: string;
|
|
9
8
|
readonly replayPayload: WaRetryReplayPayload;
|
|
10
|
-
readonly participantJid?: string;
|
|
11
|
-
readonly recipientJid?: string;
|
|
12
9
|
readonly eligibleRequesterDeviceJids?: readonly string[];
|
|
13
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Wraps message publishes and persists a replay record so the
|
|
13
|
+
* {@link WaRetryReplayService} can re-send the message later if a retry
|
|
14
|
+
* receipt arrives.
|
|
15
|
+
*/
|
|
14
16
|
export type OutboundRetryTracker = {
|
|
17
|
+
/**
|
|
18
|
+
* Runs `publish`, then upserts a retry-outbound record built from the
|
|
19
|
+
* tracking `hint`. Returns the publish result unchanged.
|
|
20
|
+
*/
|
|
15
21
|
track(hint: OutboundRetryTrackHint, publish: () => Promise<WaMessagePublishResult>): Promise<WaMessagePublishResult>;
|
|
16
22
|
};
|
|
23
|
+
/** Builds an {@link OutboundRetryTracker} backed by a {@link WaRetryStore}. */
|
|
17
24
|
export declare function createOutboundRetryTracker(options: {
|
|
18
25
|
readonly retryStore: WaRetryStore;
|
|
19
26
|
readonly logger: Logger;
|