slidge-whatsapp 0.2.5__cp311-cp311-manylinux_2_36_aarch64.whl → 0.3.0b0__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 +13 -3
- slidge_whatsapp/event.go +135 -60
- slidge_whatsapp/gateway.go +16 -68
- slidge_whatsapp/gateway.py +4 -5
- slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.h +198 -181
- slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.so +0 -0
- slidge_whatsapp/generated/build.py +166 -152
- slidge_whatsapp/generated/whatsapp.c +1804 -1532
- slidge_whatsapp/generated/whatsapp.go +1150 -1039
- slidge_whatsapp/generated/whatsapp.py +1243 -1118
- slidge_whatsapp/generated/whatsapp_go.h +198 -181
- 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 +105 -81
- 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.0b0.dist-info}/METADATA +2 -2
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/RECORD +456 -263
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.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.0b0.dist-info}/LICENSE +0 -0
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package store
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
4
6
|
"go.mau.fi/libsignal/keys/identity"
|
|
5
7
|
"go.mau.fi/libsignal/protocol"
|
|
6
8
|
)
|
|
@@ -14,10 +16,10 @@ type IdentityKey interface {
|
|
|
14
16
|
//
|
|
15
17
|
// Clients should maintain a registration ID, a random number between 1 and 16380
|
|
16
18
|
// that's generated once at install time.
|
|
17
|
-
|
|
19
|
+
GetLocalRegistrationID() uint32
|
|
18
20
|
|
|
19
21
|
// Save a remote client's identity key in our identity store.
|
|
20
|
-
SaveIdentity(address *protocol.SignalAddress, identityKey *identity.Key)
|
|
22
|
+
SaveIdentity(ctx context.Context, address *protocol.SignalAddress, identityKey *identity.Key) error
|
|
21
23
|
|
|
22
24
|
// Verify a remote client's identity key.
|
|
23
25
|
//
|
|
@@ -25,5 +27,5 @@ type IdentityKey interface {
|
|
|
25
27
|
// 'trust on first use'. This means that an identity key is considered 'trusted'
|
|
26
28
|
// if there is no entry for the recipient in the local store, or if it matches the
|
|
27
29
|
// saved key for a recipient in the local store.
|
|
28
|
-
IsTrustedIdentity(address *protocol.SignalAddress, identityKey *identity.Key) bool
|
|
30
|
+
IsTrustedIdentity(ctx context.Context, address *protocol.SignalAddress, identityKey *identity.Key) (bool, error)
|
|
29
31
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package store
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
4
6
|
"go.mau.fi/libsignal/keys/message"
|
|
5
7
|
)
|
|
6
8
|
|
|
@@ -8,14 +10,14 @@ import (
|
|
|
8
10
|
// of message keys.
|
|
9
11
|
type MessageKey interface {
|
|
10
12
|
// Load a local message key by id
|
|
11
|
-
LoadMessageKey(keyID uint32) *message.Keys
|
|
13
|
+
LoadMessageKey(ctx context.Context, keyID uint32) (*message.Keys, error)
|
|
12
14
|
|
|
13
15
|
// Store a local message key
|
|
14
|
-
StoreMessageKey(keyID uint32, key *message.Keys)
|
|
16
|
+
StoreMessageKey(ctx context.Context, keyID uint32, key *message.Keys) error
|
|
15
17
|
|
|
16
18
|
// Check to see if the store contains a message key with id.
|
|
17
|
-
ContainsMessageKey(keyID uint32) bool
|
|
19
|
+
ContainsMessageKey(ctx context.Context, keyID uint32) (bool, error)
|
|
18
20
|
|
|
19
21
|
// Delete a message key from local storage.
|
|
20
|
-
RemoveMessageKey(keyID uint32)
|
|
22
|
+
RemoveMessageKey(ctx context.Context, keyID uint32) error
|
|
21
23
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package store
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
4
6
|
"go.mau.fi/libsignal/state/record"
|
|
5
7
|
)
|
|
6
8
|
|
|
@@ -8,14 +10,14 @@ import (
|
|
|
8
10
|
// of PreKeyRecords
|
|
9
11
|
type PreKey interface {
|
|
10
12
|
// Load a local PreKeyRecord
|
|
11
|
-
LoadPreKey(preKeyID uint32) *record.PreKey
|
|
13
|
+
LoadPreKey(ctx context.Context, preKeyID uint32) (*record.PreKey, error)
|
|
12
14
|
|
|
13
15
|
// Store a local PreKeyRecord
|
|
14
|
-
StorePreKey(preKeyID uint32, preKeyRecord *record.PreKey)
|
|
16
|
+
StorePreKey(ctx context.Context, preKeyID uint32, preKeyRecord *record.PreKey) error
|
|
15
17
|
|
|
16
18
|
// Check to see if the store contains a PreKeyRecord
|
|
17
|
-
ContainsPreKey(preKeyID uint32) bool
|
|
19
|
+
ContainsPreKey(ctx context.Context, preKeyID uint32) (bool, error)
|
|
18
20
|
|
|
19
21
|
// Delete a PreKeyRecord from local storage.
|
|
20
|
-
RemovePreKey(preKeyID uint32)
|
|
22
|
+
RemovePreKey(ctx context.Context, preKeyID uint32) error
|
|
21
23
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package store
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
4
6
|
"go.mau.fi/libsignal/protocol"
|
|
5
7
|
"go.mau.fi/libsignal/state/record"
|
|
6
8
|
)
|
|
@@ -8,10 +10,10 @@ import (
|
|
|
8
10
|
// Session store is an interface for the persistent storage of session
|
|
9
11
|
// state information for remote clients.
|
|
10
12
|
type Session interface {
|
|
11
|
-
LoadSession(address *protocol.SignalAddress) *record.Session
|
|
12
|
-
GetSubDeviceSessions(name string) []uint32
|
|
13
|
-
StoreSession(remoteAddress *protocol.SignalAddress, record *record.Session)
|
|
14
|
-
ContainsSession(remoteAddress *protocol.SignalAddress) bool
|
|
15
|
-
DeleteSession(remoteAddress *protocol.SignalAddress)
|
|
16
|
-
DeleteAllSessions()
|
|
13
|
+
LoadSession(ctx context.Context, address *protocol.SignalAddress) (*record.Session, error)
|
|
14
|
+
GetSubDeviceSessions(ctx context.Context, name string) ([]uint32, error)
|
|
15
|
+
StoreSession(ctx context.Context, remoteAddress *protocol.SignalAddress, record *record.Session) error
|
|
16
|
+
ContainsSession(ctx context.Context, remoteAddress *protocol.SignalAddress) (bool, error)
|
|
17
|
+
DeleteSession(ctx context.Context, remoteAddress *protocol.SignalAddress) error
|
|
18
|
+
DeleteAllSessions(ctx context.Context) error
|
|
17
19
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package store
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
4
6
|
"go.mau.fi/libsignal/state/record"
|
|
5
7
|
)
|
|
6
8
|
|
|
@@ -8,17 +10,17 @@ import (
|
|
|
8
10
|
// store signed PreKeys.
|
|
9
11
|
type SignedPreKey interface {
|
|
10
12
|
// LoadSignedPreKey loads a local SignedPreKeyRecord
|
|
11
|
-
LoadSignedPreKey(signedPreKeyID uint32) *record.SignedPreKey
|
|
13
|
+
LoadSignedPreKey(ctx context.Context, signedPreKeyID uint32) (*record.SignedPreKey, error)
|
|
12
14
|
|
|
13
15
|
// LoadSignedPreKeys loads all local SignedPreKeyRecords
|
|
14
|
-
LoadSignedPreKeys() []*record.SignedPreKey
|
|
16
|
+
LoadSignedPreKeys(ctx context.Context) ([]*record.SignedPreKey, error)
|
|
15
17
|
|
|
16
18
|
// Store a local SignedPreKeyRecord
|
|
17
|
-
StoreSignedPreKey(signedPreKeyID uint32, record *record.SignedPreKey)
|
|
19
|
+
StoreSignedPreKey(ctx context.Context, signedPreKeyID uint32, record *record.SignedPreKey) error
|
|
18
20
|
|
|
19
21
|
// Check to see if store contains the given record
|
|
20
|
-
ContainsSignedPreKey(signedPreKeyID uint32) bool
|
|
22
|
+
ContainsSignedPreKey(ctx context.Context, signedPreKeyID uint32) (bool, error)
|
|
21
23
|
|
|
22
24
|
// Delete a SignedPreKeyRecord from local storage
|
|
23
|
-
RemoveSignedPreKey(signedPreKeyID uint32)
|
|
25
|
+
RemoveSignedPreKey(ctx context.Context, signedPreKeyID uint32) error
|
|
24
26
|
}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// Copyright (c) 2022 Tulir Asokan
|
|
2
|
+
//
|
|
3
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
6
|
+
|
|
7
|
+
package dbutil
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"context"
|
|
11
|
+
"database/sql"
|
|
12
|
+
"errors"
|
|
13
|
+
"fmt"
|
|
14
|
+
"strconv"
|
|
15
|
+
"strings"
|
|
16
|
+
"time"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
// LoggingExecable is a wrapper for anything with database Exec methods (i.e. sql.Conn, sql.DB and sql.Tx)
|
|
20
|
+
// that can preprocess queries (e.g. replacing $ with ? on SQLite) and log query durations.
|
|
21
|
+
type LoggingExecable struct {
|
|
22
|
+
UnderlyingExecable UnderlyingExecable
|
|
23
|
+
db *Database
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type pqError interface {
|
|
27
|
+
Get(k byte) string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type PQErrorWithLine struct {
|
|
31
|
+
Underlying error
|
|
32
|
+
Line string
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
func (pqe *PQErrorWithLine) Error() string {
|
|
36
|
+
return pqe.Underlying.Error()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
func (pqe *PQErrorWithLine) Unwrap() error {
|
|
40
|
+
return pqe.Underlying
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
func addErrorLine(query string, err error) error {
|
|
44
|
+
if err == nil {
|
|
45
|
+
return err
|
|
46
|
+
}
|
|
47
|
+
var pqe pqError
|
|
48
|
+
if !errors.As(err, &pqe) {
|
|
49
|
+
return err
|
|
50
|
+
}
|
|
51
|
+
pos, _ := strconv.Atoi(pqe.Get('P'))
|
|
52
|
+
pos--
|
|
53
|
+
if pos <= 0 {
|
|
54
|
+
return err
|
|
55
|
+
}
|
|
56
|
+
lines := strings.Split(query, "\n")
|
|
57
|
+
for _, line := range lines {
|
|
58
|
+
lineRunes := []rune(line)
|
|
59
|
+
if pos < len(lineRunes)+1 {
|
|
60
|
+
return &PQErrorWithLine{Underlying: err, Line: line}
|
|
61
|
+
}
|
|
62
|
+
pos -= len(lineRunes) + 1
|
|
63
|
+
}
|
|
64
|
+
return err
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
func (le *LoggingExecable) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) {
|
|
68
|
+
start := time.Now()
|
|
69
|
+
query = le.db.mutateQuery(query)
|
|
70
|
+
res, err := le.UnderlyingExecable.ExecContext(ctx, query, args...)
|
|
71
|
+
err = addErrorLine(query, err)
|
|
72
|
+
le.db.Log.QueryTiming(ctx, "Exec", query, args, -1, time.Since(start), err)
|
|
73
|
+
return res, err
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
func (le *LoggingExecable) QueryContext(ctx context.Context, query string, args ...any) (Rows, error) {
|
|
77
|
+
start := time.Now()
|
|
78
|
+
query = le.db.mutateQuery(query)
|
|
79
|
+
rows, err := le.UnderlyingExecable.QueryContext(ctx, query, args...)
|
|
80
|
+
err = addErrorLine(query, err)
|
|
81
|
+
le.db.Log.QueryTiming(ctx, "Query", query, args, -1, time.Since(start), err)
|
|
82
|
+
return &LoggingRows{
|
|
83
|
+
ctx: ctx,
|
|
84
|
+
db: le.db,
|
|
85
|
+
query: query,
|
|
86
|
+
args: args,
|
|
87
|
+
rs: rows,
|
|
88
|
+
start: start,
|
|
89
|
+
}, err
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
func (le *LoggingExecable) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row {
|
|
93
|
+
start := time.Now()
|
|
94
|
+
query = le.db.mutateQuery(query)
|
|
95
|
+
row := le.UnderlyingExecable.QueryRowContext(ctx, query, args...)
|
|
96
|
+
le.db.Log.QueryTiming(ctx, "QueryRow", query, args, -1, time.Since(start), nil)
|
|
97
|
+
return row
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
func (le *LoggingExecable) beginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) {
|
|
101
|
+
txBeginner, ok := le.UnderlyingExecable.(UnderlyingExecutableWithTx)
|
|
102
|
+
if !ok {
|
|
103
|
+
return nil, fmt.Errorf("can't start transaction with a %T", le.UnderlyingExecable)
|
|
104
|
+
}
|
|
105
|
+
return txBeginner.BeginTx(ctx, opts)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// loggingDB is a wrapper for LoggingExecable that allows access to BeginTx.
|
|
109
|
+
//
|
|
110
|
+
// While LoggingExecable has a pointer to the database and could use BeginTx, it's not technically safe since
|
|
111
|
+
// the LoggingExecable could be for a transaction (where BeginTx wouldn't make sense).
|
|
112
|
+
type loggingDB struct {
|
|
113
|
+
LoggingExecable
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
type internalTxnStarter interface {
|
|
117
|
+
beginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
type TxnOptions struct {
|
|
121
|
+
Isolation sql.IsolationLevel
|
|
122
|
+
ReadOnly bool
|
|
123
|
+
Conn Conn
|
|
124
|
+
RetryBegin func(error, int) bool
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
func (ld *loggingDB) BeginTx(ctx context.Context, opts *TxnOptions) (*LoggingTxn, error) {
|
|
128
|
+
if opts == nil {
|
|
129
|
+
opts = &TxnOptions{}
|
|
130
|
+
}
|
|
131
|
+
sqlOpts := &sql.TxOptions{
|
|
132
|
+
Isolation: opts.Isolation,
|
|
133
|
+
ReadOnly: opts.ReadOnly,
|
|
134
|
+
}
|
|
135
|
+
var tx *sql.Tx
|
|
136
|
+
var err error
|
|
137
|
+
start := time.Now()
|
|
138
|
+
for i := 0; ; i++ {
|
|
139
|
+
if opts.Conn != nil {
|
|
140
|
+
tx, err = opts.Conn.beginTx(ctx, sqlOpts)
|
|
141
|
+
} else {
|
|
142
|
+
targetDB := ld.db.RawDB
|
|
143
|
+
if opts.ReadOnly && ld.db.ReadOnlyDB != nil {
|
|
144
|
+
targetDB = ld.db.ReadOnlyDB
|
|
145
|
+
}
|
|
146
|
+
tx, err = targetDB.BeginTx(ctx, sqlOpts)
|
|
147
|
+
}
|
|
148
|
+
if opts.RetryBegin == nil || err == nil || !opts.RetryBegin(err, i) {
|
|
149
|
+
break
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
ld.db.Log.QueryTiming(ctx, "Begin", "", nil, -1, time.Since(start), err)
|
|
153
|
+
if err != nil {
|
|
154
|
+
return nil, err
|
|
155
|
+
}
|
|
156
|
+
return &LoggingTxn{
|
|
157
|
+
LoggingExecable: LoggingExecable{UnderlyingExecable: tx, db: ld.db},
|
|
158
|
+
UnderlyingTx: tx,
|
|
159
|
+
ctx: ctx,
|
|
160
|
+
StartTime: start,
|
|
161
|
+
}, nil
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
type LoggingTxn struct {
|
|
165
|
+
LoggingExecable
|
|
166
|
+
UnderlyingTx *sql.Tx
|
|
167
|
+
ctx context.Context
|
|
168
|
+
|
|
169
|
+
StartTime time.Time
|
|
170
|
+
EndTime time.Time
|
|
171
|
+
noTotalLog bool
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
func (lt *LoggingTxn) Commit() error {
|
|
175
|
+
start := time.Now()
|
|
176
|
+
err := lt.UnderlyingTx.Commit()
|
|
177
|
+
lt.EndTime = time.Now()
|
|
178
|
+
if !lt.noTotalLog {
|
|
179
|
+
lt.db.Log.QueryTiming(lt.ctx, "<Transaction>", "", nil, -1, lt.EndTime.Sub(lt.StartTime), nil)
|
|
180
|
+
}
|
|
181
|
+
lt.db.Log.QueryTiming(lt.ctx, "Commit", "", nil, -1, time.Since(start), err)
|
|
182
|
+
return err
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
func (lt *LoggingTxn) Rollback() error {
|
|
186
|
+
start := time.Now()
|
|
187
|
+
err := lt.UnderlyingTx.Rollback()
|
|
188
|
+
lt.EndTime = time.Now()
|
|
189
|
+
if !lt.noTotalLog {
|
|
190
|
+
lt.db.Log.QueryTiming(lt.ctx, "<Transaction>", "", nil, -1, lt.EndTime.Sub(lt.StartTime), nil)
|
|
191
|
+
}
|
|
192
|
+
lt.db.Log.QueryTiming(lt.ctx, "Rollback", "", nil, -1, time.Since(start), err)
|
|
193
|
+
return err
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
type LoggingRows struct {
|
|
197
|
+
ctx context.Context
|
|
198
|
+
db *Database
|
|
199
|
+
query string
|
|
200
|
+
args []any
|
|
201
|
+
rs Rows
|
|
202
|
+
start time.Time
|
|
203
|
+
nrows int
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
func (lrs *LoggingRows) stopTiming() {
|
|
207
|
+
if !lrs.start.IsZero() {
|
|
208
|
+
lrs.db.Log.QueryTiming(lrs.ctx, "EndRows", lrs.query, lrs.args, lrs.nrows, time.Since(lrs.start), lrs.rs.Err())
|
|
209
|
+
lrs.start = time.Time{}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
func (lrs *LoggingRows) Close() error {
|
|
214
|
+
err := lrs.rs.Close()
|
|
215
|
+
lrs.stopTiming()
|
|
216
|
+
return err
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
func (lrs *LoggingRows) ColumnTypes() ([]*sql.ColumnType, error) {
|
|
220
|
+
return lrs.rs.ColumnTypes()
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
func (lrs *LoggingRows) Columns() ([]string, error) {
|
|
224
|
+
return lrs.rs.Columns()
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
func (lrs *LoggingRows) Err() error {
|
|
228
|
+
return lrs.rs.Err()
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
func (lrs *LoggingRows) Next() bool {
|
|
232
|
+
hasNext := lrs.rs.Next()
|
|
233
|
+
|
|
234
|
+
if !hasNext {
|
|
235
|
+
lrs.stopTiming()
|
|
236
|
+
} else {
|
|
237
|
+
lrs.nrows++
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return hasNext
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
func (lrs *LoggingRows) NextResultSet() bool {
|
|
244
|
+
hasNext := lrs.rs.NextResultSet()
|
|
245
|
+
|
|
246
|
+
if !hasNext {
|
|
247
|
+
lrs.stopTiming()
|
|
248
|
+
} else {
|
|
249
|
+
lrs.nrows++
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
return hasNext
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
func (lrs *LoggingRows) Scan(dest ...any) error {
|
|
256
|
+
return lrs.rs.Scan(dest...)
|
|
257
|
+
}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
// Copyright (c) 2022 Tulir Asokan
|
|
2
|
+
//
|
|
3
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
6
|
+
|
|
7
|
+
package dbutil
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"context"
|
|
11
|
+
"database/sql"
|
|
12
|
+
"fmt"
|
|
13
|
+
"net/url"
|
|
14
|
+
"regexp"
|
|
15
|
+
"strings"
|
|
16
|
+
"time"
|
|
17
|
+
|
|
18
|
+
"go.mau.fi/util/exsync"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
type Dialect int
|
|
22
|
+
|
|
23
|
+
const (
|
|
24
|
+
DialectUnknown Dialect = iota
|
|
25
|
+
Postgres
|
|
26
|
+
SQLite
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
func (dialect Dialect) String() string {
|
|
30
|
+
switch dialect {
|
|
31
|
+
case Postgres:
|
|
32
|
+
return "postgres"
|
|
33
|
+
case SQLite:
|
|
34
|
+
return "sqlite3"
|
|
35
|
+
default:
|
|
36
|
+
return ""
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
func ParseDialect(engine string) (Dialect, error) {
|
|
41
|
+
engine = strings.ToLower(engine)
|
|
42
|
+
|
|
43
|
+
if strings.HasPrefix(engine, "postgres") || engine == "pgx" {
|
|
44
|
+
return Postgres, nil
|
|
45
|
+
} else if strings.HasPrefix(engine, "sqlite") || strings.HasPrefix(engine, "litestream") {
|
|
46
|
+
return SQLite, nil
|
|
47
|
+
} else {
|
|
48
|
+
return DialectUnknown, fmt.Errorf("unknown dialect '%s'", engine)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
type Rows interface {
|
|
53
|
+
Close() error
|
|
54
|
+
ColumnTypes() ([]*sql.ColumnType, error)
|
|
55
|
+
Columns() ([]string, error)
|
|
56
|
+
Err() error
|
|
57
|
+
Next() bool
|
|
58
|
+
NextResultSet() bool
|
|
59
|
+
Scan(...any) error
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type Scannable interface {
|
|
63
|
+
Scan(...any) error
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Expected implementations of Scannable
|
|
67
|
+
var (
|
|
68
|
+
_ Scannable = (*sql.Row)(nil)
|
|
69
|
+
_ Scannable = (Rows)(nil)
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
type UnderlyingExecable interface {
|
|
73
|
+
ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
|
|
74
|
+
QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
|
|
75
|
+
QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
type UnderlyingExecutableWithTx interface {
|
|
79
|
+
UnderlyingExecable
|
|
80
|
+
BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
type Execable interface {
|
|
84
|
+
ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
|
|
85
|
+
QueryContext(ctx context.Context, query string, args ...any) (Rows, error)
|
|
86
|
+
QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
type Conn interface {
|
|
90
|
+
Execable
|
|
91
|
+
internalTxnStarter
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
type Transaction interface {
|
|
95
|
+
Execable
|
|
96
|
+
Commit() error
|
|
97
|
+
Rollback() error
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Expected implementations of Execable
|
|
101
|
+
var (
|
|
102
|
+
_ UnderlyingExecable = (*sql.Tx)(nil)
|
|
103
|
+
_ UnderlyingExecutableWithTx = (*sql.DB)(nil)
|
|
104
|
+
_ UnderlyingExecutableWithTx = (*sql.Conn)(nil)
|
|
105
|
+
_ Execable = (*LoggingExecable)(nil)
|
|
106
|
+
_ Transaction = (*LoggingTxn)(nil)
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
type Database struct {
|
|
110
|
+
LoggingDB loggingDB
|
|
111
|
+
RawDB *sql.DB
|
|
112
|
+
ReadOnlyDB *sql.DB
|
|
113
|
+
Owner string
|
|
114
|
+
VersionTable string
|
|
115
|
+
Log DatabaseLogger
|
|
116
|
+
Dialect Dialect
|
|
117
|
+
UpgradeTable UpgradeTable
|
|
118
|
+
|
|
119
|
+
txnCtxKey contextKey
|
|
120
|
+
txnDeadlockMap *exsync.Set[int64]
|
|
121
|
+
|
|
122
|
+
IgnoreForeignTables bool
|
|
123
|
+
IgnoreUnsupportedDatabase bool
|
|
124
|
+
DeadlockDetection bool
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
var ForceDeadlockDetection bool
|
|
128
|
+
|
|
129
|
+
var positionalParamPattern = regexp.MustCompile(`\$(\d+)`)
|
|
130
|
+
|
|
131
|
+
func (db *Database) mutateQuery(query string) string {
|
|
132
|
+
switch db.Dialect {
|
|
133
|
+
case SQLite:
|
|
134
|
+
return positionalParamPattern.ReplaceAllString(query, "?$1")
|
|
135
|
+
default:
|
|
136
|
+
return query
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
func (db *Database) Child(versionTable string, upgradeTable UpgradeTable, log DatabaseLogger) *Database {
|
|
141
|
+
if log == nil {
|
|
142
|
+
log = db.Log
|
|
143
|
+
}
|
|
144
|
+
return &Database{
|
|
145
|
+
RawDB: db.RawDB,
|
|
146
|
+
LoggingDB: db.LoggingDB,
|
|
147
|
+
Owner: "",
|
|
148
|
+
VersionTable: versionTable,
|
|
149
|
+
UpgradeTable: upgradeTable,
|
|
150
|
+
Log: log,
|
|
151
|
+
Dialect: db.Dialect,
|
|
152
|
+
|
|
153
|
+
txnCtxKey: db.txnCtxKey,
|
|
154
|
+
txnDeadlockMap: db.txnDeadlockMap,
|
|
155
|
+
|
|
156
|
+
IgnoreForeignTables: true,
|
|
157
|
+
IgnoreUnsupportedDatabase: db.IgnoreUnsupportedDatabase,
|
|
158
|
+
DeadlockDetection: db.DeadlockDetection,
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
func NewWithDB(db *sql.DB, rawDialect string) (*Database, error) {
|
|
163
|
+
dialect, err := ParseDialect(rawDialect)
|
|
164
|
+
if err != nil {
|
|
165
|
+
return nil, err
|
|
166
|
+
}
|
|
167
|
+
wrappedDB := &Database{
|
|
168
|
+
RawDB: db,
|
|
169
|
+
Dialect: dialect,
|
|
170
|
+
Log: NoopLogger,
|
|
171
|
+
|
|
172
|
+
IgnoreForeignTables: true,
|
|
173
|
+
VersionTable: "version",
|
|
174
|
+
|
|
175
|
+
txnCtxKey: contextKey(nextContextKeyDatabaseTransaction.Add(1)),
|
|
176
|
+
txnDeadlockMap: exsync.NewSet[int64](),
|
|
177
|
+
|
|
178
|
+
DeadlockDetection: ForceDeadlockDetection,
|
|
179
|
+
}
|
|
180
|
+
wrappedDB.LoggingDB.UnderlyingExecable = db
|
|
181
|
+
wrappedDB.LoggingDB.db = wrappedDB
|
|
182
|
+
return wrappedDB, nil
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
func NewWithDialect(uri, rawDialect string) (*Database, error) {
|
|
186
|
+
db, err := sql.Open(rawDialect, uri)
|
|
187
|
+
if err != nil {
|
|
188
|
+
return nil, err
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return NewWithDB(db, rawDialect)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
type PoolConfig struct {
|
|
195
|
+
Type string `yaml:"type"`
|
|
196
|
+
URI string `yaml:"uri"`
|
|
197
|
+
|
|
198
|
+
MaxOpenConns int `yaml:"max_open_conns"`
|
|
199
|
+
MaxIdleConns int `yaml:"max_idle_conns"`
|
|
200
|
+
|
|
201
|
+
ConnMaxIdleTime string `yaml:"conn_max_idle_time"`
|
|
202
|
+
ConnMaxLifetime string `yaml:"conn_max_lifetime"`
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
type Config struct {
|
|
206
|
+
PoolConfig `yaml:",inline"`
|
|
207
|
+
ReadOnlyPool PoolConfig `yaml:"ro_pool"`
|
|
208
|
+
|
|
209
|
+
DeadlockDetection bool `yaml:"deadlock_detection"`
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
func (db *Database) Close() error {
|
|
213
|
+
err := db.RawDB.Close()
|
|
214
|
+
if db.ReadOnlyDB != nil {
|
|
215
|
+
if err2 := db.ReadOnlyDB.Close(); err2 != nil {
|
|
216
|
+
if err == nil {
|
|
217
|
+
err = fmt.Errorf("closing read-only db failed: %w", err2)
|
|
218
|
+
} else {
|
|
219
|
+
err = fmt.Errorf("%w (closing read-only db also failed: %v)", err, err2)
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return err
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
func (db *Database) Configure(cfg Config) error {
|
|
227
|
+
db.DeadlockDetection = cfg.DeadlockDetection || ForceDeadlockDetection
|
|
228
|
+
|
|
229
|
+
if err := db.configure(db.ReadOnlyDB, cfg.ReadOnlyPool); err != nil {
|
|
230
|
+
return err
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return db.configure(db.RawDB, cfg.PoolConfig)
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
func (db *Database) configure(rawDB *sql.DB, cfg PoolConfig) error {
|
|
237
|
+
if rawDB == nil {
|
|
238
|
+
return nil
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
rawDB.SetMaxOpenConns(cfg.MaxOpenConns)
|
|
242
|
+
rawDB.SetMaxIdleConns(cfg.MaxIdleConns)
|
|
243
|
+
if len(cfg.ConnMaxIdleTime) > 0 {
|
|
244
|
+
maxIdleTimeDuration, err := time.ParseDuration(cfg.ConnMaxIdleTime)
|
|
245
|
+
if err != nil {
|
|
246
|
+
return fmt.Errorf("failed to parse max_conn_idle_time: %w", err)
|
|
247
|
+
}
|
|
248
|
+
rawDB.SetConnMaxIdleTime(maxIdleTimeDuration)
|
|
249
|
+
}
|
|
250
|
+
if len(cfg.ConnMaxLifetime) > 0 {
|
|
251
|
+
maxLifetimeDuration, err := time.ParseDuration(cfg.ConnMaxLifetime)
|
|
252
|
+
if err != nil {
|
|
253
|
+
return fmt.Errorf("failed to parse max_conn_idle_time: %w", err)
|
|
254
|
+
}
|
|
255
|
+
rawDB.SetConnMaxLifetime(maxLifetimeDuration)
|
|
256
|
+
}
|
|
257
|
+
return nil
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
func NewFromConfig(owner string, cfg Config, logger DatabaseLogger) (*Database, error) {
|
|
261
|
+
wrappedDB, err := NewWithDialect(cfg.URI, cfg.Type)
|
|
262
|
+
if err != nil {
|
|
263
|
+
return nil, err
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
wrappedDB.Owner = owner
|
|
267
|
+
if logger != nil {
|
|
268
|
+
wrappedDB.Log = logger
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
if cfg.ReadOnlyPool.MaxOpenConns > 0 {
|
|
272
|
+
if cfg.ReadOnlyPool.Type == "" {
|
|
273
|
+
cfg.ReadOnlyPool.Type = cfg.Type
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
roUri := cfg.ReadOnlyPool.URI
|
|
277
|
+
if roUri == "" {
|
|
278
|
+
uriParts := strings.Split(cfg.URI, "?")
|
|
279
|
+
|
|
280
|
+
qs := url.Values{}
|
|
281
|
+
if len(uriParts) == 2 {
|
|
282
|
+
var err error
|
|
283
|
+
qs, err = url.ParseQuery(uriParts[1])
|
|
284
|
+
if err != nil {
|
|
285
|
+
return nil, err
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
qs.Del("_txlock")
|
|
289
|
+
qs.Del("_auto_vacuum")
|
|
290
|
+
qs.Del("_vacuum")
|
|
291
|
+
}
|
|
292
|
+
qs.Set("_query_only", "true")
|
|
293
|
+
|
|
294
|
+
roUri = uriParts[0] + "?" + qs.Encode()
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
wrappedDB.ReadOnlyDB, err = sql.Open(cfg.ReadOnlyPool.Type, roUri)
|
|
298
|
+
if err != nil {
|
|
299
|
+
return nil, err
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
err = wrappedDB.Configure(cfg)
|
|
304
|
+
if err != nil {
|
|
305
|
+
return nil, err
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return wrappedDB, nil
|
|
309
|
+
}
|