slidge-whatsapp 0.2.5__cp311-cp311-manylinux_2_36_aarch64.whl → 0.3.0__cp311-cp311-manylinux_2_36_aarch64.whl
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.
Potentially problematic release.
This version of slidge-whatsapp might be problematic. Click here for more details.
- slidge_whatsapp/config.py +3 -0
- slidge_whatsapp/contact.py +15 -3
- slidge_whatsapp/event.go +171 -70
- slidge_whatsapp/gateway.go +16 -68
- slidge_whatsapp/gateway.py +4 -5
- slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.h +168 -151
- slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.so +0 -0
- slidge_whatsapp/generated/build.py +142 -128
- slidge_whatsapp/generated/whatsapp.c +1689 -1417
- slidge_whatsapp/generated/whatsapp.go +1011 -900
- slidge_whatsapp/generated/whatsapp.py +1175 -1050
- slidge_whatsapp/generated/whatsapp_go.h +168 -151
- slidge_whatsapp/go.mod +21 -15
- slidge_whatsapp/go.sum +49 -31
- slidge_whatsapp/group.py +34 -30
- slidge_whatsapp/media/media.go +22 -12
- slidge_whatsapp/session.go +106 -82
- slidge_whatsapp/session.py +46 -14
- slidge_whatsapp/vendor/github.com/beeper/argo-go/LICENSE +9 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockreader.go +329 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockwriter.go +417 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/decoder.go +652 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/encoder.go +985 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/header/header.go +135 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/internal/util/util.go +133 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/label/label.go +384 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/label/wiremarkers.go +37 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/bitset/bitset.go +197 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/buf/buf.go +420 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/varint/varint.go +246 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/wire/wire.go +614 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/wirecodec/decode.go +341 -0
- slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn.go +4 -4
- slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_darwin.go +0 -5
- slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_libinit.go +3 -0
- slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols.go +40 -20
- slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/LICENSE +21 -0
- slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/list.go +95 -0
- slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/orderedmap.go +187 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz.go +1 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo.go +3 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_nocgo.go +4 -5
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_darwin.go +11 -1
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_linux.go +10 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_windows.go +12 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/.gitignore +0 -2
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/CHANGELOG.md +44 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/COPYRIGHT.txt +6 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/README.md +14 -17
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi.go +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi2.go +7 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/LICENSE +21 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_amd64/libffi.8.dylib +0 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_arm64/libffi.8.dylib +0 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/windows_amd64/libffi-8.dll +0 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif.go +15 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif_arm64.go +16 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed.go +49 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_amd64.go +10 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_arm64.go +10 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_windows_amd64.go +10 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/ffi.go +53 -15
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/fun.go +10 -2
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/init.go +22 -9
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib.go +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_unix.go +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_windows.go +1 -1
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/README.md +4 -7
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/callback.go +2 -1
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +11545 -6680
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +527 -273
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3.go +57 -23
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.c +4 -0
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.go +4 -0
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go +13 -140
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h +4 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/.gitignore +4 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/LICENSE +202 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/README.md +4 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid.go +35 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_gccgo.go +26 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.c +23 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.go +22 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.go +35 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.s +18 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.go +28 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.s +44 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_slow.go +24 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go +17 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.23.go +38 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.25.go +37 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.5.go +57 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.6.go +43 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.9.go +37 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/CONTRIBUTING.md +43 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/README.md +31 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/console.go +20 -5
- slidge_whatsapp/vendor/github.com/rs/zerolog/log/log.go +131 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/log.go +1 -1
- slidge_whatsapp/vendor/github.com/rs/zerolog/sampler.go +4 -1
- slidge_whatsapp/vendor/github.com/rs/zerolog/writer.go +9 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/LICENSE +19 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/argmap.go +37 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/collections.go +148 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/comment.go +31 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/decode.go +216 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/definition.go +110 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/directive.go +43 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/document.go +89 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/dumper.go +159 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/fragment.go +41 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/operation.go +32 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/path.go +72 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/selection.go +41 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/source.go +19 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/type.go +68 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/value.go +122 -0
- slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupCipher.go +17 -6
- slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupSessionBuilder.go +17 -7
- slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/SenderKeyStore.go +4 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/chain/ChainKey.go +1 -0
- slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKey.go +1 -0
- slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/DefaultLogger.go +2 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.pb.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.pb.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.pb.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/session/Session.go +41 -17
- slidge_whatsapp/vendor/go.mau.fi/libsignal/session/SessionCipher.go +64 -30
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/IdentityKeyStore.go +5 -3
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/MessageKeyStore.go +6 -4
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/PreKeyStore.go +6 -4
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SessionStore.go +8 -6
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignedPreKeyStore.go +7 -5
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/connlog.go +257 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/database.go +309 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/iter.go +233 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/json.go +47 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/log.go +129 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/massinsert.go +164 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/queryhelper.go +137 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/reflectscan.go +30 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/transaction.go +180 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgrades.go +250 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgradetable.go +331 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exerrors/dualerror.go +33 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exerrors/must.go +23 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/cors.go +32 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/handleerrors.go +98 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +36 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/middleware.go +30 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/networkerror.go +38 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exstrings/stringutil.go +104 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/event.go +104 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/returnonce.go +25 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/ringbuffer.go +139 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncmap.go +94 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncset.go +136 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/callermarshal.go +28 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/defaults.go +32 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/generics.go +45 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/writer.go +81 -0
- slidge_whatsapp/vendor/go.mau.fi/util/ptr/ptr.go +43 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.pre-commit-config.yaml +3 -3
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/decode.go +27 -26
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/encode.go +4 -3
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/hash.go +1 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/keys.go +5 -4
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate.go +32 -26
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo-wire-type-store.argo +63 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo.go +62 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/name-to-queryids.json +306 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +42 -8
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/encoder.go +1 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/broadcast.go +5 -4
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/call.go +2 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +134 -55
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +34 -11
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +63 -30
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +78 -34
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/errors.go +4 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +157 -55
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +202 -154
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaconn.go +5 -3
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaretry.go +2 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +448 -138
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/msgsecret.go +106 -31
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/newsletter.go +83 -7
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +83 -43
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair-code.go +9 -6
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair.go +42 -18
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/prekeys.go +9 -5
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/presence.go +17 -7
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/privacysettings.go +10 -11
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/extra.go +7 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.pb.go +983 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.proto +85 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/extra.go +3 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.pb.go +197 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.proto +13 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.pb.go +279 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.proto +21 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.pb.go +137 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.proto +10 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.pb.go +313 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.proto +27 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.pb.go +1299 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.proto +112 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.pb.go +514 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.proto +47 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.pb.go +123 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.proto +7 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/extra.go +3 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.pb.go +720 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.proto +59 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/extra.go +3 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.pb.go +365 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.proto +33 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.pb.go +1238 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.proto +105 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go +39 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +354 -175
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.proto +5 -5
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +170 -15
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +4 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.pb.go +5156 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.proto +516 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go +29 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +13 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.go +344 -31
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.proto +26 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.pb.go → WACompanionReg.pb.go} +211 -89
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.proto → WACompanionReg.proto} +5 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.go +173 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +78 -16
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +5 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +7463 -5180
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +366 -343
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +485 -135
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +17 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go +198 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto +14 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.go +162 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.proto +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.go +32 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.proto +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.go +192 -52
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.proto +8 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.go +60 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/extra.go +7 -6
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.go +39 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.go +61 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go +952 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto +88 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +1802 -453
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +92 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +27 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +59 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +435 -109
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +11 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +563 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +4 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +32 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingfields.json +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingtoken.go +176 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +39 -21
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +267 -79
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +28 -16
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +3 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/noop.go +87 -44
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/signal.go +75 -88
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +86 -65
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/lidmap.go +186 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +314 -170
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +155 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/03-message-secrets.sql +11 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/04-privacy-tokens.sql +8 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/05-account-jid-format.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/06-facebook-uuid.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/07-account-lid.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/08-lid-mapping.sql +5 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/09-decryption-buffer.sql +10 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/10-chat-db-lid-migration-ts.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/upgrades.go +22 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +109 -56
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/botmap.go +210 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/call.go +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +21 -2
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/group.go +15 -6
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/jid.go +9 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +18 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/user.go +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/update.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/upload.go +1 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +59 -37
- slidge_whatsapp/vendor/golang.org/x/crypto/curve25519/curve25519.go +1 -1
- slidge_whatsapp/vendor/golang.org/x/exp/LICENSE +27 -0
- slidge_whatsapp/vendor/golang.org/x/exp/PATENTS +22 -0
- slidge_whatsapp/vendor/golang.org/x/exp/constraints/constraints.go +54 -0
- slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
- slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/.gitignore +2 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/ascii.go +53 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/ciphers.go +641 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/client_conn_pool.go +311 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/config.go +164 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/databuffer.go +149 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/errors.go +145 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/flow.go +120 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +1702 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/gotrack.go +181 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/http2.go +410 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/pipe.go +184 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/server.go +3332 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/transport.go +3233 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/write.go +381 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched.go +251 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_priority.go +451 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_random.go +77 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_roundrobin.go +119 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/go118.go +13 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/idna10.0.0.go +769 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/idna9.0.0.go +717 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/pre_go118.go +11 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/punycode.go +217 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables10.0.0.go +4559 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables11.0.0.go +4653 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables12.0.0.go +4733 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables13.0.0.go +4959 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables9.0.0.go +4486 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trie.go +51 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trie12.0.0.go +30 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trie13.0.0.go +30 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trieval.go +119 -0
- slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
- slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
- slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/request.go +467 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/affinity_linux.go +1 -3
- slidge_whatsapp/vendor/golang.org/x/sys/unix/mkerrors.sh +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin.go +93 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux.go +16 -26
- slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_solaris.go +1 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux.go +47 -16
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +84 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +20 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +84 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +20 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +4 -4
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux.go +168 -12
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +17 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +18 -2
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +17 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +17 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +18 -2
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/windows/security_windows.go +44 -5
- slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall_windows.go +4 -2
- slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows.go +245 -0
- slidge_whatsapp/vendor/golang.org/x/sys/windows/zsyscall_windows.go +491 -482
- slidge_whatsapp/vendor/golang.org/x/text/LICENSE +27 -0
- slidge_whatsapp/vendor/golang.org/x/text/PATENTS +22 -0
- slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule.go +336 -0
- slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +11 -0
- slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +14 -0
- slidge_whatsapp/vendor/golang.org/x/text/transform/transform.go +709 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/core.go +1071 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +1815 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +1887 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +1923 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +1955 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +1781 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/forminfo.go +279 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/iter.go +458 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +7657 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +7693 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +7710 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +7760 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +7637 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +25 -1
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb +0 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +13 -5
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/presence.go +33 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +6 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +81 -19
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +2 -1
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go +8 -37
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/presence.go +0 -3
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe_go121.go → strings_unsafe.go} +0 -2
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/version/version.go +1 -1
- slidge_whatsapp/vendor/google.golang.org/protobuf/proto/merge.go +6 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +10 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe_go121.go → value_unsafe.go} +0 -2
- slidge_whatsapp/vendor/modules.txt +80 -21
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/METADATA +5 -4
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/RECORD +456 -263
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/WHEEL +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi_amd64.go +0 -7
- slidge_whatsapp/vendor/github.com/rs/zerolog/CNAME +0 -1
- slidge_whatsapp/vendor/github.com/rs/zerolog/_config.yml +0 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.raw +0 -23
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw +0 -7
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WAWebProtobufsCompanionReg.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go +0 -296
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go +0 -94
- slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go +0 -98
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/entry_points.txt +0 -0
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info/licenses}/LICENSE +0 -0
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
package whatsmeow
|
|
8
8
|
|
|
9
9
|
import (
|
|
10
|
+
"context"
|
|
10
11
|
"encoding/json"
|
|
11
12
|
"errors"
|
|
13
|
+
"slices"
|
|
12
14
|
|
|
13
15
|
"google.golang.org/protobuf/proto"
|
|
14
16
|
|
|
@@ -20,7 +22,7 @@ import (
|
|
|
20
22
|
"go.mau.fi/whatsmeow/types/events"
|
|
21
23
|
)
|
|
22
24
|
|
|
23
|
-
func (cli *Client) handleEncryptNotification(node *waBinary.Node) {
|
|
25
|
+
func (cli *Client) handleEncryptNotification(ctx context.Context, node *waBinary.Node) {
|
|
24
26
|
from := node.AttrGetter().JID("from")
|
|
25
27
|
if from == types.ServerJID {
|
|
26
28
|
count := node.GetChildByTag("count")
|
|
@@ -32,15 +34,15 @@ func (cli *Client) handleEncryptNotification(node *waBinary.Node) {
|
|
|
32
34
|
}
|
|
33
35
|
cli.Log.Infof("Got prekey count from server: %s", node.XMLString())
|
|
34
36
|
if otksLeft < MinPreKeyCount {
|
|
35
|
-
cli.uploadPreKeys()
|
|
37
|
+
cli.uploadPreKeys(ctx)
|
|
36
38
|
}
|
|
37
39
|
} else if _, ok := node.GetOptionalChildByTag("identity"); ok {
|
|
38
40
|
cli.Log.Debugf("Got identity change for %s: %s, deleting all identities/sessions for that number", from, node.XMLString())
|
|
39
|
-
err := cli.Store.Identities.DeleteAllIdentities(from.User)
|
|
41
|
+
err := cli.Store.Identities.DeleteAllIdentities(ctx, from.User)
|
|
40
42
|
if err != nil {
|
|
41
43
|
cli.Log.Warnf("Failed to delete all identities of %s from store after identity change: %v", from, err)
|
|
42
44
|
}
|
|
43
|
-
err = cli.Store.Sessions.DeleteAllSessions(from.User)
|
|
45
|
+
err = cli.Store.Sessions.DeleteAllSessions(ctx, from.User)
|
|
44
46
|
if err != nil {
|
|
45
47
|
cli.Log.Warnf("Failed to delete all sessions of %s from store after identity change: %v", from, err)
|
|
46
48
|
}
|
|
@@ -51,13 +53,13 @@ func (cli *Client) handleEncryptNotification(node *waBinary.Node) {
|
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
|
|
54
|
-
func (cli *Client) handleAppStateNotification(node *waBinary.Node) {
|
|
56
|
+
func (cli *Client) handleAppStateNotification(ctx context.Context, node *waBinary.Node) {
|
|
55
57
|
for _, collection := range node.GetChildrenByTag("collection") {
|
|
56
58
|
ag := collection.AttrGetter()
|
|
57
59
|
name := appstate.WAPatchName(ag.String("name"))
|
|
58
60
|
version := ag.Uint64("version")
|
|
59
61
|
cli.Log.Debugf("Got server sync notification that app state %s has updated to version %d", name, version)
|
|
60
|
-
err := cli.FetchAppState(name, false, false)
|
|
62
|
+
err := cli.FetchAppState(ctx, name, false, false)
|
|
61
63
|
if errors.Is(err, ErrIQDisconnected) || errors.Is(err, ErrNotConnected) {
|
|
62
64
|
// There are some app state changes right before a remote logout, so stop syncing if we're disconnected.
|
|
63
65
|
cli.Log.Debugf("Failed to sync app state after notification: %v, not trying to sync other states", err)
|
|
@@ -68,7 +70,7 @@ func (cli *Client) handleAppStateNotification(node *waBinary.Node) {
|
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
func (cli *Client) handlePictureNotification(node *waBinary.Node) {
|
|
73
|
+
func (cli *Client) handlePictureNotification(ctx context.Context, node *waBinary.Node) {
|
|
72
74
|
ts := node.AttrGetter().UnixTime("t")
|
|
73
75
|
for _, child := range node.GetChildren() {
|
|
74
76
|
ag := child.AttrGetter()
|
|
@@ -94,16 +96,26 @@ func (cli *Client) handlePictureNotification(node *waBinary.Node) {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
|
|
97
|
-
func (cli *Client) handleDeviceNotification(node *waBinary.Node) {
|
|
99
|
+
func (cli *Client) handleDeviceNotification(ctx context.Context, node *waBinary.Node) {
|
|
98
100
|
cli.userDevicesCacheLock.Lock()
|
|
99
101
|
defer cli.userDevicesCacheLock.Unlock()
|
|
100
102
|
ag := node.AttrGetter()
|
|
101
103
|
from := ag.JID("from")
|
|
104
|
+
fromLID := ag.OptionalJID("lid")
|
|
105
|
+
if fromLID != nil {
|
|
106
|
+
cli.StoreLIDPNMapping(ctx, *fromLID, from)
|
|
107
|
+
}
|
|
102
108
|
cached, ok := cli.userDevicesCache[from]
|
|
103
109
|
if !ok {
|
|
104
110
|
cli.Log.Debugf("No device list cached for %s, ignoring device list notification", from)
|
|
105
111
|
return
|
|
106
112
|
}
|
|
113
|
+
var cachedLID deviceCache
|
|
114
|
+
var cachedLIDHash string
|
|
115
|
+
if fromLID != nil {
|
|
116
|
+
cachedLID = cli.userDevicesCache[*fromLID]
|
|
117
|
+
cachedLIDHash = participantListHashV2(cachedLID.devices)
|
|
118
|
+
}
|
|
107
119
|
cachedParticipantHash := participantListHashV2(cached.devices)
|
|
108
120
|
for _, child := range node.GetChildren() {
|
|
109
121
|
if child.Tag != "add" && child.Tag != "remove" {
|
|
@@ -112,16 +124,24 @@ func (cli *Client) handleDeviceNotification(node *waBinary.Node) {
|
|
|
112
124
|
}
|
|
113
125
|
cag := child.AttrGetter()
|
|
114
126
|
deviceHash := cag.String("device_hash")
|
|
127
|
+
deviceLIDHash := cag.OptionalString("device_lid_hash")
|
|
115
128
|
deviceChild, _ := child.GetOptionalChildByTag("device")
|
|
116
129
|
changedDeviceJID := deviceChild.AttrGetter().JID("jid")
|
|
130
|
+
changedDeviceLID := deviceChild.AttrGetter().OptionalJID("lid")
|
|
117
131
|
switch child.Tag {
|
|
118
132
|
case "add":
|
|
119
133
|
cached.devices = append(cached.devices, changedDeviceJID)
|
|
134
|
+
if changedDeviceLID != nil {
|
|
135
|
+
cachedLID.devices = append(cachedLID.devices, *changedDeviceLID)
|
|
136
|
+
}
|
|
120
137
|
case "remove":
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
138
|
+
cached.devices = slices.DeleteFunc(cached.devices, func(existing types.JID) bool {
|
|
139
|
+
return existing == changedDeviceJID
|
|
140
|
+
})
|
|
141
|
+
if changedDeviceLID != nil {
|
|
142
|
+
cachedLID.devices = slices.DeleteFunc(cachedLID.devices, func(existing types.JID) bool {
|
|
143
|
+
return existing == *changedDeviceLID
|
|
144
|
+
})
|
|
125
145
|
}
|
|
126
146
|
case "update":
|
|
127
147
|
// ???
|
|
@@ -134,10 +154,20 @@ func (cli *Client) handleDeviceNotification(node *waBinary.Node) {
|
|
|
134
154
|
cli.Log.Warnf("%s's device list hash changed from %s to %s (%s). New hash doesn't match (%s)", from, cachedParticipantHash, deviceHash, child.Tag, newParticipantHash)
|
|
135
155
|
delete(cli.userDevicesCache, from)
|
|
136
156
|
}
|
|
157
|
+
if fromLID != nil && changedDeviceLID != nil && deviceLIDHash != "" {
|
|
158
|
+
newLIDParticipantHash := participantListHashV2(cachedLID.devices)
|
|
159
|
+
if newLIDParticipantHash == deviceLIDHash {
|
|
160
|
+
cli.Log.Debugf("%s's device list hash changed from %s to %s (%s). New hash matches", fromLID, cachedLIDHash, deviceLIDHash, child.Tag)
|
|
161
|
+
cli.userDevicesCache[*fromLID] = cachedLID
|
|
162
|
+
} else {
|
|
163
|
+
cli.Log.Warnf("%s's device list hash changed from %s to %s (%s). New hash doesn't match (%s)", fromLID, cachedLIDHash, deviceLIDHash, child.Tag, newLIDParticipantHash)
|
|
164
|
+
delete(cli.userDevicesCache, *fromLID)
|
|
165
|
+
}
|
|
166
|
+
}
|
|
137
167
|
}
|
|
138
168
|
}
|
|
139
169
|
|
|
140
|
-
func (cli *Client) handleFBDeviceNotification(node *waBinary.Node) {
|
|
170
|
+
func (cli *Client) handleFBDeviceNotification(ctx context.Context, node *waBinary.Node) {
|
|
141
171
|
cli.userDevicesCacheLock.Lock()
|
|
142
172
|
defer cli.userDevicesCacheLock.Unlock()
|
|
143
173
|
jid := node.AttrGetter().JID("from")
|
|
@@ -145,7 +175,7 @@ func (cli *Client) handleFBDeviceNotification(node *waBinary.Node) {
|
|
|
145
175
|
cli.userDevicesCache[jid] = userDevices
|
|
146
176
|
}
|
|
147
177
|
|
|
148
|
-
func (cli *Client) handleOwnDevicesNotification(node *waBinary.Node) {
|
|
178
|
+
func (cli *Client) handleOwnDevicesNotification(ctx context.Context, node *waBinary.Node) {
|
|
149
179
|
cli.userDevicesCacheLock.Lock()
|
|
150
180
|
defer cli.userDevicesCacheLock.Unlock()
|
|
151
181
|
ownID := cli.getOwnID().ToNonAD()
|
|
@@ -177,7 +207,7 @@ func (cli *Client) handleOwnDevicesNotification(node *waBinary.Node) {
|
|
|
177
207
|
}
|
|
178
208
|
}
|
|
179
209
|
|
|
180
|
-
func (cli *Client) handleBlocklist(node *waBinary.Node) {
|
|
210
|
+
func (cli *Client) handleBlocklist(ctx context.Context, node *waBinary.Node) {
|
|
181
211
|
ag := node.AttrGetter()
|
|
182
212
|
evt := events.Blocklist{
|
|
183
213
|
Action: events.BlocklistAction(ag.OptionalString("action")),
|
|
@@ -199,29 +229,30 @@ func (cli *Client) handleBlocklist(node *waBinary.Node) {
|
|
|
199
229
|
cli.dispatchEvent(&evt)
|
|
200
230
|
}
|
|
201
231
|
|
|
202
|
-
func (cli *Client) handleAccountSyncNotification(node *waBinary.Node) {
|
|
232
|
+
func (cli *Client) handleAccountSyncNotification(ctx context.Context, node *waBinary.Node) {
|
|
203
233
|
for _, child := range node.GetChildren() {
|
|
204
234
|
switch child.Tag {
|
|
205
235
|
case "privacy":
|
|
206
|
-
cli.handlePrivacySettingsNotification(&child)
|
|
236
|
+
cli.handlePrivacySettingsNotification(ctx, &child)
|
|
207
237
|
case "devices":
|
|
208
|
-
cli.handleOwnDevicesNotification(&child)
|
|
238
|
+
cli.handleOwnDevicesNotification(ctx, &child)
|
|
209
239
|
case "picture":
|
|
210
240
|
cli.dispatchEvent(&events.Picture{
|
|
211
241
|
Timestamp: node.AttrGetter().UnixTime("t"),
|
|
212
242
|
JID: cli.getOwnID().ToNonAD(),
|
|
213
243
|
})
|
|
214
244
|
case "blocklist":
|
|
215
|
-
cli.handleBlocklist(&child)
|
|
245
|
+
cli.handleBlocklist(ctx, &child)
|
|
216
246
|
default:
|
|
217
247
|
cli.Log.Debugf("Unhandled account sync item %s", child.Tag)
|
|
218
248
|
}
|
|
219
249
|
}
|
|
220
250
|
}
|
|
221
251
|
|
|
222
|
-
func (cli *Client) handlePrivacyTokenNotification(node *waBinary.Node) {
|
|
223
|
-
|
|
224
|
-
|
|
252
|
+
func (cli *Client) handlePrivacyTokenNotification(ctx context.Context, node *waBinary.Node) {
|
|
253
|
+
ownJID := cli.getOwnID().ToNonAD()
|
|
254
|
+
ownLID := cli.getOwnLID().ToNonAD()
|
|
255
|
+
if ownJID.IsEmpty() {
|
|
225
256
|
cli.Log.Debugf("Ignoring privacy token notification, session was deleted")
|
|
226
257
|
return
|
|
227
258
|
}
|
|
@@ -240,8 +271,11 @@ func (cli *Client) handlePrivacyTokenNotification(node *waBinary.Node) {
|
|
|
240
271
|
ag := child.AttrGetter()
|
|
241
272
|
if child.Tag != "token" {
|
|
242
273
|
cli.Log.Warnf("privacy_token notification contained unexpected <%s> tag", child.Tag)
|
|
243
|
-
} else if targetUser := ag.JID("jid"); targetUser !=
|
|
244
|
-
|
|
274
|
+
} else if targetUser := ag.JID("jid"); targetUser != ownLID && targetUser != ownJID {
|
|
275
|
+
// Don't log about own privacy tokens for other users
|
|
276
|
+
if sender != ownJID && sender != ownLID {
|
|
277
|
+
cli.Log.Warnf("privacy_token notification contained token for different user %s", targetUser)
|
|
278
|
+
}
|
|
245
279
|
} else if tokenType := ag.String("type"); tokenType != "trusted_contact" {
|
|
246
280
|
cli.Log.Warnf("privacy_token notification contained unexpected token type %s", tokenType)
|
|
247
281
|
} else if token, ok := child.Content.([]byte); !ok {
|
|
@@ -251,7 +285,7 @@ func (cli *Client) handlePrivacyTokenNotification(node *waBinary.Node) {
|
|
|
251
285
|
if !ag.OK() {
|
|
252
286
|
cli.Log.Warnf("privacy_token notification is missing some fields: %v", ag.Error())
|
|
253
287
|
}
|
|
254
|
-
err := cli.Store.PrivacyTokens.PutPrivacyTokens(store.PrivacyToken{
|
|
288
|
+
err := cli.Store.PrivacyTokens.PutPrivacyTokens(ctx, store.PrivacyToken{
|
|
255
289
|
User: sender,
|
|
256
290
|
Token: token,
|
|
257
291
|
Timestamp: timestamp,
|
|
@@ -308,7 +342,7 @@ func (cli *Client) parseNewsletterMessages(node *waBinary.Node) []*types.Newslet
|
|
|
308
342
|
return output
|
|
309
343
|
}
|
|
310
344
|
|
|
311
|
-
func (cli *Client) handleNewsletterNotification(node *waBinary.Node) {
|
|
345
|
+
func (cli *Client) handleNewsletterNotification(ctx context.Context, node *waBinary.Node) {
|
|
312
346
|
ag := node.AttrGetter()
|
|
313
347
|
liveUpdates := node.GetChildByTag("live_updates")
|
|
314
348
|
cli.dispatchEvent(&events.NewsletterLiveUpdate{
|
|
@@ -331,7 +365,7 @@ type newsletterEvent struct {
|
|
|
331
365
|
// _on_state_change -> id, is_requestor, state
|
|
332
366
|
}
|
|
333
367
|
|
|
334
|
-
func (cli *Client) handleMexNotification(node *waBinary.Node) {
|
|
368
|
+
func (cli *Client) handleMexNotification(ctx context.Context, node *waBinary.Node) {
|
|
335
369
|
for _, child := range node.GetChildren() {
|
|
336
370
|
if child.Tag != "update" {
|
|
337
371
|
continue
|
|
@@ -356,7 +390,7 @@ func (cli *Client) handleMexNotification(node *waBinary.Node) {
|
|
|
356
390
|
}
|
|
357
391
|
}
|
|
358
392
|
|
|
359
|
-
func (cli *Client) handleStatusNotification(node *waBinary.Node) {
|
|
393
|
+
func (cli *Client) handleStatusNotification(ctx context.Context, node *waBinary.Node) {
|
|
360
394
|
ag := node.AttrGetter()
|
|
361
395
|
child, found := node.GetOptionalChildByTag("set")
|
|
362
396
|
if !found {
|
|
@@ -376,44 +410,50 @@ func (cli *Client) handleStatusNotification(node *waBinary.Node) {
|
|
|
376
410
|
}
|
|
377
411
|
|
|
378
412
|
func (cli *Client) handleNotification(node *waBinary.Node) {
|
|
413
|
+
ctx := cli.BackgroundEventCtx
|
|
379
414
|
ag := node.AttrGetter()
|
|
380
415
|
notifType := ag.String("type")
|
|
381
416
|
if !ag.OK() {
|
|
382
417
|
return
|
|
383
418
|
}
|
|
384
|
-
|
|
419
|
+
var cancelled bool
|
|
420
|
+
defer cli.maybeDeferredAck(ctx, node)(&cancelled)
|
|
385
421
|
switch notifType {
|
|
386
422
|
case "encrypt":
|
|
387
|
-
go cli.handleEncryptNotification(node)
|
|
423
|
+
go cli.handleEncryptNotification(ctx, node)
|
|
388
424
|
case "server_sync":
|
|
389
|
-
go cli.handleAppStateNotification(node)
|
|
425
|
+
go cli.handleAppStateNotification(ctx, node)
|
|
390
426
|
case "account_sync":
|
|
391
|
-
go cli.handleAccountSyncNotification(node)
|
|
427
|
+
go cli.handleAccountSyncNotification(ctx, node)
|
|
392
428
|
case "devices":
|
|
393
|
-
cli.handleDeviceNotification(node)
|
|
429
|
+
cli.handleDeviceNotification(ctx, node)
|
|
394
430
|
case "fbid:devices":
|
|
395
|
-
cli.handleFBDeviceNotification(node)
|
|
431
|
+
cli.handleFBDeviceNotification(ctx, node)
|
|
396
432
|
case "w:gp2":
|
|
397
|
-
evt, err := cli.parseGroupNotification(node)
|
|
433
|
+
evt, lidPairs, err := cli.parseGroupNotification(node)
|
|
398
434
|
if err != nil {
|
|
399
435
|
cli.Log.Errorf("Failed to parse group notification: %v", err)
|
|
400
436
|
} else {
|
|
401
|
-
cli.
|
|
437
|
+
err = cli.Store.LIDs.PutManyLIDMappings(ctx, lidPairs)
|
|
438
|
+
if err != nil {
|
|
439
|
+
cli.Log.Errorf("Failed to store LID mappings from group notification: %v", err)
|
|
440
|
+
}
|
|
441
|
+
cancelled = cli.dispatchEvent(evt)
|
|
402
442
|
}
|
|
403
443
|
case "picture":
|
|
404
|
-
cli.handlePictureNotification(node)
|
|
444
|
+
cli.handlePictureNotification(ctx, node)
|
|
405
445
|
case "mediaretry":
|
|
406
|
-
cli.handleMediaRetryNotification(node)
|
|
446
|
+
cli.handleMediaRetryNotification(ctx, node)
|
|
407
447
|
case "privacy_token":
|
|
408
|
-
cli.handlePrivacyTokenNotification(node)
|
|
448
|
+
cli.handlePrivacyTokenNotification(ctx, node)
|
|
409
449
|
case "link_code_companion_reg":
|
|
410
|
-
go cli.tryHandleCodePairNotification(node)
|
|
450
|
+
go cli.tryHandleCodePairNotification(ctx, node)
|
|
411
451
|
case "newsletter":
|
|
412
|
-
cli.handleNewsletterNotification(node)
|
|
452
|
+
cli.handleNewsletterNotification(ctx, node)
|
|
413
453
|
case "mex":
|
|
414
|
-
cli.handleMexNotification(node)
|
|
454
|
+
cli.handleMexNotification(ctx, node)
|
|
415
455
|
case "status":
|
|
416
|
-
cli.handleStatusNotification(node)
|
|
456
|
+
cli.handleStatusNotification(ctx, node)
|
|
417
457
|
// Other types: business, disappearing_mode, server, status, pay, psa
|
|
418
458
|
default:
|
|
419
459
|
cli.Log.Debugf("Unhandled notification with type %s", notifType)
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
package whatsmeow
|
|
8
8
|
|
|
9
9
|
import (
|
|
10
|
+
"context"
|
|
10
11
|
"crypto/aes"
|
|
11
12
|
"crypto/cipher"
|
|
12
13
|
"crypto/sha256"
|
|
@@ -86,22 +87,23 @@ func generateCompanionEphemeralKey() (ephemeralKeyPair *keys.KeyPair, ephemeralK
|
|
|
86
87
|
// (the server will validate it and return 400 if it's wrong).
|
|
87
88
|
//
|
|
88
89
|
// See https://faq.whatsapp.com/1324084875126592 for more info
|
|
89
|
-
func (cli *Client) PairPhone(phone string, showPushNotification bool, clientType PairClientType, clientDisplayName string) (string, error) {
|
|
90
|
+
func (cli *Client) PairPhone(ctx context.Context, phone string, showPushNotification bool, clientType PairClientType, clientDisplayName string) (string, error) {
|
|
90
91
|
if cli == nil {
|
|
91
92
|
return "", ErrClientIsNil
|
|
92
93
|
}
|
|
93
94
|
ephemeralKeyPair, ephemeralKey, encodedLinkingCode := generateCompanionEphemeralKey()
|
|
94
95
|
phone = notNumbers.ReplaceAllString(phone, "")
|
|
95
96
|
if len(phone) <= 6 {
|
|
96
|
-
return "",
|
|
97
|
+
return "", ErrPhoneNumberTooShort
|
|
97
98
|
} else if strings.HasPrefix(phone, "0") {
|
|
98
|
-
return "",
|
|
99
|
+
return "", ErrPhoneNumberIsNotInternational
|
|
99
100
|
}
|
|
100
101
|
jid := types.NewJID(phone, types.DefaultUserServer)
|
|
101
102
|
resp, err := cli.sendIQ(infoQuery{
|
|
102
103
|
Namespace: "md",
|
|
103
104
|
Type: iqSet,
|
|
104
105
|
To: types.ServerJID,
|
|
106
|
+
Context: ctx,
|
|
105
107
|
Content: []waBinary.Node{{
|
|
106
108
|
Tag: "link_code_companion_reg",
|
|
107
109
|
Attrs: waBinary.Attrs{
|
|
@@ -139,14 +141,14 @@ func (cli *Client) PairPhone(phone string, showPushNotification bool, clientType
|
|
|
139
141
|
return encodedLinkingCode[0:4] + "-" + encodedLinkingCode[4:], nil
|
|
140
142
|
}
|
|
141
143
|
|
|
142
|
-
func (cli *Client) tryHandleCodePairNotification(parentNode *waBinary.Node) {
|
|
143
|
-
err := cli.handleCodePairNotification(parentNode)
|
|
144
|
+
func (cli *Client) tryHandleCodePairNotification(ctx context.Context, parentNode *waBinary.Node) {
|
|
145
|
+
err := cli.handleCodePairNotification(ctx, parentNode)
|
|
144
146
|
if err != nil {
|
|
145
147
|
cli.Log.Errorf("Failed to handle code pair notification: %s", err)
|
|
146
148
|
}
|
|
147
149
|
}
|
|
148
150
|
|
|
149
|
-
func (cli *Client) handleCodePairNotification(parentNode *waBinary.Node) error {
|
|
151
|
+
func (cli *Client) handleCodePairNotification(ctx context.Context, parentNode *waBinary.Node) error {
|
|
150
152
|
node, ok := parentNode.GetOptionalChildByTag("link_code_companion_reg")
|
|
151
153
|
if !ok {
|
|
152
154
|
return &ElementMissingError{
|
|
@@ -225,6 +227,7 @@ func (cli *Client) handleCodePairNotification(parentNode *waBinary.Node) error {
|
|
|
225
227
|
Namespace: "md",
|
|
226
228
|
Type: iqSet,
|
|
227
229
|
To: types.ServerJID,
|
|
230
|
+
Context: ctx,
|
|
228
231
|
Content: []waBinary.Node{{
|
|
229
232
|
Tag: "link_code_companion_reg",
|
|
230
233
|
Attrs: waBinary.Attrs{
|
|
@@ -8,6 +8,7 @@ package whatsmeow
|
|
|
8
8
|
|
|
9
9
|
import (
|
|
10
10
|
"bytes"
|
|
11
|
+
"context"
|
|
11
12
|
"crypto/hmac"
|
|
12
13
|
"crypto/sha256"
|
|
13
14
|
"encoding/base64"
|
|
@@ -24,6 +25,13 @@ import (
|
|
|
24
25
|
"go.mau.fi/whatsmeow/util/keys"
|
|
25
26
|
)
|
|
26
27
|
|
|
28
|
+
var (
|
|
29
|
+
AdvPrefixAccountSignature = []byte{6, 0}
|
|
30
|
+
AdvPrefixDeviceSignatureGenerate = []byte{6, 1}
|
|
31
|
+
AdvHostedPrefixDeviceIdentityAccountSignature = []byte{6, 5}
|
|
32
|
+
AdvHostedPrefixDeviceIdentityDeviceSignatureVerification = []byte{6, 6}
|
|
33
|
+
)
|
|
34
|
+
|
|
27
35
|
func (cli *Client) handleIQ(node *waBinary.Node) {
|
|
28
36
|
children := node.GetChildren()
|
|
29
37
|
if len(children) != 1 || node.Attrs["from"] != types.ServerJID {
|
|
@@ -82,34 +90,40 @@ func (cli *Client) handlePairSuccess(node *waBinary.Node) {
|
|
|
82
90
|
deviceIdentityBytes, _ := pairSuccess.GetChildByTag("device-identity").Content.([]byte)
|
|
83
91
|
businessName, _ := pairSuccess.GetChildByTag("biz").Attrs["name"].(string)
|
|
84
92
|
jid, _ := pairSuccess.GetChildByTag("device").Attrs["jid"].(types.JID)
|
|
93
|
+
lid, _ := pairSuccess.GetChildByTag("device").Attrs["lid"].(types.JID)
|
|
85
94
|
platform, _ := pairSuccess.GetChildByTag("platform").Attrs["name"].(string)
|
|
86
95
|
|
|
87
96
|
go func() {
|
|
88
|
-
err := cli.handlePair(deviceIdentityBytes, id, businessName, platform, jid)
|
|
97
|
+
err := cli.handlePair(context.TODO(), deviceIdentityBytes, id, businessName, platform, jid, lid)
|
|
89
98
|
if err != nil {
|
|
90
99
|
cli.Log.Errorf("Failed to pair device: %v", err)
|
|
91
100
|
cli.Disconnect()
|
|
92
|
-
cli.dispatchEvent(&events.PairError{ID: jid, BusinessName: businessName, Platform: platform, Error: err})
|
|
101
|
+
cli.dispatchEvent(&events.PairError{ID: jid, LID: lid, BusinessName: businessName, Platform: platform, Error: err})
|
|
93
102
|
} else {
|
|
94
103
|
cli.Log.Infof("Successfully paired %s", cli.Store.ID)
|
|
95
|
-
cli.dispatchEvent(&events.PairSuccess{ID: jid, BusinessName: businessName, Platform: platform})
|
|
104
|
+
cli.dispatchEvent(&events.PairSuccess{ID: jid, LID: lid, BusinessName: businessName, Platform: platform})
|
|
96
105
|
}
|
|
97
106
|
}()
|
|
98
107
|
}
|
|
99
108
|
|
|
100
|
-
func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, platform string, jid types.JID) error {
|
|
109
|
+
func (cli *Client) handlePair(ctx context.Context, deviceIdentityBytes []byte, reqID, businessName, platform string, jid, lid types.JID) error {
|
|
101
110
|
var deviceIdentityContainer waAdv.ADVSignedDeviceIdentityHMAC
|
|
102
111
|
err := proto.Unmarshal(deviceIdentityBytes, &deviceIdentityContainer)
|
|
103
112
|
if err != nil {
|
|
104
113
|
cli.sendPairError(reqID, 500, "internal-error")
|
|
105
114
|
return &PairProtoError{"failed to parse device identity container in pair success message", err}
|
|
106
115
|
}
|
|
116
|
+
isHostedAccount := deviceIdentityContainer.AccountType != nil && *deviceIdentityContainer.AccountType == waAdv.ADVEncryptionType_HOSTED
|
|
107
117
|
|
|
108
118
|
h := hmac.New(sha256.New, cli.Store.AdvSecretKey)
|
|
119
|
+
if isHostedAccount {
|
|
120
|
+
h.Write(AdvHostedPrefixDeviceIdentityAccountSignature)
|
|
121
|
+
}
|
|
109
122
|
h.Write(deviceIdentityContainer.Details)
|
|
123
|
+
|
|
110
124
|
if !bytes.Equal(h.Sum(nil), deviceIdentityContainer.HMAC) {
|
|
111
125
|
cli.Log.Warnf("Invalid HMAC from pair success message")
|
|
112
|
-
cli.sendPairError(reqID, 401, "
|
|
126
|
+
cli.sendPairError(reqID, 401, "hmac-mismatch")
|
|
113
127
|
return ErrPairInvalidDeviceIdentityHMAC
|
|
114
128
|
}
|
|
115
129
|
|
|
@@ -120,12 +134,12 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p
|
|
|
120
134
|
return &PairProtoError{"failed to parse signed device identity in pair success message", err}
|
|
121
135
|
}
|
|
122
136
|
|
|
123
|
-
if !verifyDeviceIdentityAccountSignature(&deviceIdentity, cli.Store.IdentityKey) {
|
|
124
|
-
cli.sendPairError(reqID, 401, "
|
|
137
|
+
if !verifyDeviceIdentityAccountSignature(&deviceIdentity, cli.Store.IdentityKey, isHostedAccount) {
|
|
138
|
+
cli.sendPairError(reqID, 401, "signature-mismatch")
|
|
125
139
|
return ErrPairInvalidDeviceSignature
|
|
126
140
|
}
|
|
127
141
|
|
|
128
|
-
deviceIdentity.DeviceSignature = generateDeviceSignature(&deviceIdentity, cli.Store.IdentityKey)[:]
|
|
142
|
+
deviceIdentity.DeviceSignature = generateDeviceSignature(&deviceIdentity, cli.Store.IdentityKey, isHostedAccount)[:]
|
|
129
143
|
|
|
130
144
|
var deviceIdentityDetails waAdv.ADVDeviceIdentity
|
|
131
145
|
err = proto.Unmarshal(deviceIdentity.Details, &deviceIdentityDetails)
|
|
@@ -141,8 +155,8 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p
|
|
|
141
155
|
|
|
142
156
|
cli.Store.Account = proto.Clone(&deviceIdentity).(*waAdv.ADVSignedDeviceIdentity)
|
|
143
157
|
|
|
144
|
-
|
|
145
|
-
|
|
158
|
+
mainDeviceLID := lid
|
|
159
|
+
mainDeviceLID.Device = 0
|
|
146
160
|
mainDeviceIdentity := *(*[32]byte)(deviceIdentity.AccountSignatureKey)
|
|
147
161
|
deviceIdentity.AccountSignatureKey = nil
|
|
148
162
|
|
|
@@ -153,16 +167,18 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p
|
|
|
153
167
|
}
|
|
154
168
|
|
|
155
169
|
cli.Store.ID = &jid
|
|
170
|
+
cli.Store.LID = lid
|
|
156
171
|
cli.Store.BusinessName = businessName
|
|
157
172
|
cli.Store.Platform = platform
|
|
158
|
-
err = cli.Store.Save()
|
|
173
|
+
err = cli.Store.Save(ctx)
|
|
159
174
|
if err != nil {
|
|
160
175
|
cli.sendPairError(reqID, 500, "internal-error")
|
|
161
176
|
return &PairDatabaseError{"failed to save device store", err}
|
|
162
177
|
}
|
|
163
|
-
|
|
178
|
+
cli.StoreLIDPNMapping(ctx, lid, jid)
|
|
179
|
+
err = cli.Store.Identities.PutIdentity(ctx, mainDeviceLID.SignalAddress().String(), mainDeviceIdentity)
|
|
164
180
|
if err != nil {
|
|
165
|
-
_ = cli.Store.Delete()
|
|
181
|
+
_ = cli.Store.Delete(ctx)
|
|
166
182
|
cli.sendPairError(reqID, 500, "internal-error")
|
|
167
183
|
return &PairDatabaseError{"failed to store main device identity", err}
|
|
168
184
|
}
|
|
@@ -189,7 +205,7 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p
|
|
|
189
205
|
}},
|
|
190
206
|
})
|
|
191
207
|
if err != nil {
|
|
192
|
-
_ = cli.Store.Delete()
|
|
208
|
+
_ = cli.Store.Delete(ctx)
|
|
193
209
|
return fmt.Errorf("failed to send pairing confirmation: %w", err)
|
|
194
210
|
}
|
|
195
211
|
return nil
|
|
@@ -208,7 +224,7 @@ func concatBytes(data ...[]byte) []byte {
|
|
|
208
224
|
return output
|
|
209
225
|
}
|
|
210
226
|
|
|
211
|
-
func verifyDeviceIdentityAccountSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair) bool {
|
|
227
|
+
func verifyDeviceIdentityAccountSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair, isHostedAccount bool) bool {
|
|
212
228
|
if len(deviceIdentity.AccountSignatureKey) != 32 || len(deviceIdentity.AccountSignature) != 64 {
|
|
213
229
|
return false
|
|
214
230
|
}
|
|
@@ -216,12 +232,20 @@ func verifyDeviceIdentityAccountSignature(deviceIdentity *waAdv.ADVSignedDeviceI
|
|
|
216
232
|
signatureKey := ecc.NewDjbECPublicKey(*(*[32]byte)(deviceIdentity.AccountSignatureKey))
|
|
217
233
|
signature := *(*[64]byte)(deviceIdentity.AccountSignature)
|
|
218
234
|
|
|
219
|
-
|
|
235
|
+
prefix := AdvPrefixAccountSignature
|
|
236
|
+
if isHostedAccount {
|
|
237
|
+
prefix = AdvHostedPrefixDeviceIdentityAccountSignature
|
|
238
|
+
}
|
|
239
|
+
message := concatBytes(prefix, deviceIdentity.Details, ikp.Pub[:])
|
|
220
240
|
return ecc.VerifySignature(signatureKey, message, signature)
|
|
221
241
|
}
|
|
222
242
|
|
|
223
|
-
func generateDeviceSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair) *[64]byte {
|
|
224
|
-
|
|
243
|
+
func generateDeviceSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair, isHostedAccount bool) *[64]byte {
|
|
244
|
+
prefix := AdvPrefixDeviceSignatureGenerate
|
|
245
|
+
if isHostedAccount {
|
|
246
|
+
prefix = AdvHostedPrefixDeviceIdentityDeviceSignatureVerification
|
|
247
|
+
}
|
|
248
|
+
message := concatBytes(prefix, deviceIdentity.Details, ikp.Pub[:], deviceIdentity.AccountSignatureKey)
|
|
225
249
|
sig := ecc.CalculateSignature(ecc.NewDjbECPrivateKey(*ikp.Priv), message)
|
|
226
250
|
return &sig
|
|
227
251
|
}
|
|
@@ -29,11 +29,12 @@ const (
|
|
|
29
29
|
MinPreKeyCount = 5
|
|
30
30
|
)
|
|
31
31
|
|
|
32
|
-
func (cli *Client) getServerPreKeyCount() (int, error) {
|
|
32
|
+
func (cli *Client) getServerPreKeyCount(ctx context.Context) (int, error) {
|
|
33
33
|
resp, err := cli.sendIQ(infoQuery{
|
|
34
34
|
Namespace: "encrypt",
|
|
35
35
|
Type: "get",
|
|
36
36
|
To: types.ServerJID,
|
|
37
|
+
Context: ctx,
|
|
37
38
|
Content: []waBinary.Node{
|
|
38
39
|
{Tag: "count"},
|
|
39
40
|
},
|
|
@@ -47,11 +48,11 @@ func (cli *Client) getServerPreKeyCount() (int, error) {
|
|
|
47
48
|
return val, ag.Error()
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
func (cli *Client) uploadPreKeys() {
|
|
51
|
+
func (cli *Client) uploadPreKeys(ctx context.Context) {
|
|
51
52
|
cli.uploadPreKeysLock.Lock()
|
|
52
53
|
defer cli.uploadPreKeysLock.Unlock()
|
|
53
54
|
if cli.lastPreKeyUpload.Add(10 * time.Minute).After(time.Now()) {
|
|
54
|
-
sc, _ := cli.getServerPreKeyCount()
|
|
55
|
+
sc, _ := cli.getServerPreKeyCount(ctx)
|
|
55
56
|
if sc >= WantedPreKeyCount {
|
|
56
57
|
cli.Log.Debugf("Canceling prekey upload request due to likely race condition")
|
|
57
58
|
return
|
|
@@ -59,13 +60,14 @@ func (cli *Client) uploadPreKeys() {
|
|
|
59
60
|
}
|
|
60
61
|
var registrationIDBytes [4]byte
|
|
61
62
|
binary.BigEndian.PutUint32(registrationIDBytes[:], cli.Store.RegistrationID)
|
|
62
|
-
preKeys, err := cli.Store.PreKeys.GetOrGenPreKeys(WantedPreKeyCount)
|
|
63
|
+
preKeys, err := cli.Store.PreKeys.GetOrGenPreKeys(ctx, WantedPreKeyCount)
|
|
63
64
|
if err != nil {
|
|
64
65
|
cli.Log.Errorf("Failed to get prekeys to upload: %v", err)
|
|
65
66
|
return
|
|
66
67
|
}
|
|
67
68
|
cli.Log.Infof("Uploading %d new prekeys to server", len(preKeys))
|
|
68
69
|
_, err = cli.sendIQ(infoQuery{
|
|
70
|
+
Context: ctx,
|
|
69
71
|
Namespace: "encrypt",
|
|
70
72
|
Type: "set",
|
|
71
73
|
To: types.ServerJID,
|
|
@@ -82,11 +84,13 @@ func (cli *Client) uploadPreKeys() {
|
|
|
82
84
|
return
|
|
83
85
|
}
|
|
84
86
|
cli.Log.Debugf("Got response to uploading prekeys")
|
|
85
|
-
err = cli.Store.PreKeys.MarkPreKeysAsUploaded(preKeys[len(preKeys)-1].KeyID)
|
|
87
|
+
err = cli.Store.PreKeys.MarkPreKeysAsUploaded(ctx, preKeys[len(preKeys)-1].KeyID)
|
|
86
88
|
if err != nil {
|
|
87
89
|
cli.Log.Warnf("Failed to mark prekeys as uploaded: %v", err)
|
|
90
|
+
return
|
|
88
91
|
}
|
|
89
92
|
cli.lastPreKeyUpload = time.Now()
|
|
93
|
+
return
|
|
90
94
|
}
|
|
91
95
|
|
|
92
96
|
type preKeyResp struct {
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
package whatsmeow
|
|
8
8
|
|
|
9
9
|
import (
|
|
10
|
+
"context"
|
|
10
11
|
"fmt"
|
|
11
12
|
|
|
12
13
|
waBinary "go.mau.fi/whatsmeow/binary"
|
|
@@ -61,7 +62,9 @@ func (cli *Client) handlePresence(node *waBinary.Node) {
|
|
|
61
62
|
// You should call this at least once after connecting so that the server has your pushname.
|
|
62
63
|
// Otherwise, other users will see "-" as the name.
|
|
63
64
|
func (cli *Client) SendPresence(state types.Presence) error {
|
|
64
|
-
if
|
|
65
|
+
if cli == nil {
|
|
66
|
+
return ErrClientIsNil
|
|
67
|
+
} else if len(cli.Store.PushName) == 0 && cli.MessengerConfig == nil {
|
|
65
68
|
return ErrNoPushName
|
|
66
69
|
}
|
|
67
70
|
if state == types.PresenceAvailable {
|
|
@@ -69,12 +72,16 @@ func (cli *Client) SendPresence(state types.Presence) error {
|
|
|
69
72
|
} else {
|
|
70
73
|
cli.sendActiveReceipts.CompareAndSwap(1, 0)
|
|
71
74
|
}
|
|
75
|
+
attrs := waBinary.Attrs{
|
|
76
|
+
"type": string(state),
|
|
77
|
+
}
|
|
78
|
+
// PushName not set when using WhatsApp for Messenger E2EE
|
|
79
|
+
if cli.MessengerConfig == nil {
|
|
80
|
+
attrs["name"] = cli.Store.PushName
|
|
81
|
+
}
|
|
72
82
|
return cli.sendNode(waBinary.Node{
|
|
73
|
-
Tag:
|
|
74
|
-
Attrs:
|
|
75
|
-
"name": cli.Store.PushName,
|
|
76
|
-
"type": string(state),
|
|
77
|
-
},
|
|
83
|
+
Tag: "presence",
|
|
84
|
+
Attrs: attrs,
|
|
78
85
|
})
|
|
79
86
|
}
|
|
80
87
|
|
|
@@ -87,7 +94,10 @@ func (cli *Client) SendPresence(state types.Presence) error {
|
|
|
87
94
|
//
|
|
88
95
|
// cli.SendPresence(types.PresenceAvailable)
|
|
89
96
|
func (cli *Client) SubscribePresence(jid types.JID) error {
|
|
90
|
-
|
|
97
|
+
if cli == nil {
|
|
98
|
+
return ErrClientIsNil
|
|
99
|
+
}
|
|
100
|
+
privacyToken, err := cli.Store.PrivacyTokens.GetPrivacyToken(context.TODO(), jid)
|
|
91
101
|
if err != nil {
|
|
92
102
|
return fmt.Errorf("failed to get privacy token: %w", err)
|
|
93
103
|
} else if privacyToken == nil {
|