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.

Files changed (484) hide show
  1. slidge_whatsapp/config.py +3 -0
  2. slidge_whatsapp/contact.py +15 -3
  3. slidge_whatsapp/event.go +171 -70
  4. slidge_whatsapp/gateway.go +16 -68
  5. slidge_whatsapp/gateway.py +4 -5
  6. slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.h +168 -151
  7. slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.so +0 -0
  8. slidge_whatsapp/generated/build.py +142 -128
  9. slidge_whatsapp/generated/whatsapp.c +1689 -1417
  10. slidge_whatsapp/generated/whatsapp.go +1011 -900
  11. slidge_whatsapp/generated/whatsapp.py +1175 -1050
  12. slidge_whatsapp/generated/whatsapp_go.h +168 -151
  13. slidge_whatsapp/go.mod +21 -15
  14. slidge_whatsapp/go.sum +49 -31
  15. slidge_whatsapp/group.py +34 -30
  16. slidge_whatsapp/media/media.go +22 -12
  17. slidge_whatsapp/session.go +106 -82
  18. slidge_whatsapp/session.py +46 -14
  19. slidge_whatsapp/vendor/github.com/beeper/argo-go/LICENSE +9 -0
  20. slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockreader.go +329 -0
  21. slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockwriter.go +417 -0
  22. slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/decoder.go +652 -0
  23. slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/encoder.go +985 -0
  24. slidge_whatsapp/vendor/github.com/beeper/argo-go/header/header.go +135 -0
  25. slidge_whatsapp/vendor/github.com/beeper/argo-go/internal/util/util.go +133 -0
  26. slidge_whatsapp/vendor/github.com/beeper/argo-go/label/label.go +384 -0
  27. slidge_whatsapp/vendor/github.com/beeper/argo-go/label/wiremarkers.go +37 -0
  28. slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/bitset/bitset.go +197 -0
  29. slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/buf/buf.go +420 -0
  30. slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/varint/varint.go +246 -0
  31. slidge_whatsapp/vendor/github.com/beeper/argo-go/wire/wire.go +614 -0
  32. slidge_whatsapp/vendor/github.com/beeper/argo-go/wirecodec/decode.go +341 -0
  33. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn.go +4 -4
  34. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_darwin.go +0 -5
  35. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_libinit.go +3 -0
  36. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols.go +40 -20
  37. slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/LICENSE +21 -0
  38. slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/list.go +95 -0
  39. slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/orderedmap.go +187 -0
  40. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz.go +1 -0
  41. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo.go +3 -0
  42. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_nocgo.go +4 -5
  43. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_darwin.go +11 -1
  44. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_linux.go +10 -0
  45. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_windows.go +12 -0
  46. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/.gitignore +0 -2
  47. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/CHANGELOG.md +44 -1
  48. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/COPYRIGHT.txt +6 -1
  49. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/README.md +14 -17
  50. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi.go +1 -1
  51. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi2.go +7 -0
  52. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/LICENSE +21 -0
  53. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_amd64/libffi.8.dylib +0 -0
  54. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_arm64/libffi.8.dylib +0 -0
  55. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/windows_amd64/libffi-8.dll +0 -0
  56. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif.go +15 -0
  57. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif_arm64.go +16 -0
  58. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed.go +49 -0
  59. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_amd64.go +10 -0
  60. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_arm64.go +10 -0
  61. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_windows_amd64.go +10 -0
  62. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/ffi.go +53 -15
  63. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/fun.go +10 -2
  64. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/init.go +22 -9
  65. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib.go +1 -1
  66. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_unix.go +1 -1
  67. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_windows.go +1 -1
  68. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/README.md +4 -7
  69. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/callback.go +2 -1
  70. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +11545 -6680
  71. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +527 -273
  72. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3.go +57 -23
  73. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.c +4 -0
  74. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.go +4 -0
  75. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go +13 -140
  76. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h +4 -0
  77. slidge_whatsapp/vendor/github.com/petermattis/goid/.gitignore +4 -0
  78. slidge_whatsapp/vendor/github.com/petermattis/goid/LICENSE +202 -0
  79. slidge_whatsapp/vendor/github.com/petermattis/goid/README.md +4 -0
  80. slidge_whatsapp/vendor/github.com/petermattis/goid/goid.go +35 -0
  81. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_gccgo.go +26 -0
  82. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.c +23 -0
  83. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.go +22 -0
  84. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.go +35 -0
  85. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.s +18 -0
  86. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.go +28 -0
  87. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.s +44 -0
  88. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_slow.go +24 -0
  89. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go +17 -0
  90. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.23.go +38 -0
  91. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.25.go +37 -0
  92. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.5.go +57 -0
  93. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.6.go +43 -0
  94. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.9.go +37 -0
  95. slidge_whatsapp/vendor/github.com/rs/zerolog/CONTRIBUTING.md +43 -0
  96. slidge_whatsapp/vendor/github.com/rs/zerolog/README.md +31 -0
  97. slidge_whatsapp/vendor/github.com/rs/zerolog/console.go +20 -5
  98. slidge_whatsapp/vendor/github.com/rs/zerolog/log/log.go +131 -0
  99. slidge_whatsapp/vendor/github.com/rs/zerolog/log.go +1 -1
  100. slidge_whatsapp/vendor/github.com/rs/zerolog/sampler.go +4 -1
  101. slidge_whatsapp/vendor/github.com/rs/zerolog/writer.go +9 -0
  102. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/LICENSE +19 -0
  103. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/argmap.go +37 -0
  104. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/collections.go +148 -0
  105. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/comment.go +31 -0
  106. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/decode.go +216 -0
  107. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/definition.go +110 -0
  108. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/directive.go +43 -0
  109. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/document.go +89 -0
  110. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/dumper.go +159 -0
  111. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/fragment.go +41 -0
  112. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/operation.go +32 -0
  113. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/path.go +72 -0
  114. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/selection.go +41 -0
  115. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/source.go +19 -0
  116. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/type.go +68 -0
  117. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/value.go +122 -0
  118. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupCipher.go +17 -6
  119. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupSessionBuilder.go +17 -7
  120. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/SenderKeyStore.go +4 -2
  121. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/chain/ChainKey.go +1 -0
  122. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKey.go +1 -0
  123. slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/DefaultLogger.go +2 -2
  124. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.pb.go +3 -2
  125. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.pb.go +3 -2
  126. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.pb.go +3 -2
  127. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/Session.go +41 -17
  128. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/SessionCipher.go +64 -30
  129. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/IdentityKeyStore.go +5 -3
  130. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/MessageKeyStore.go +6 -4
  131. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/PreKeyStore.go +6 -4
  132. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SessionStore.go +8 -6
  133. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignedPreKeyStore.go +7 -5
  134. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/connlog.go +257 -0
  135. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/database.go +309 -0
  136. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/iter.go +233 -0
  137. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/json.go +47 -0
  138. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/log.go +129 -0
  139. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/massinsert.go +164 -0
  140. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/queryhelper.go +137 -0
  141. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/reflectscan.go +30 -0
  142. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/transaction.go +180 -0
  143. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgrades.go +250 -0
  144. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgradetable.go +331 -0
  145. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/dualerror.go +33 -0
  146. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/must.go +23 -0
  147. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/cors.go +32 -0
  148. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/handleerrors.go +98 -0
  149. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +36 -0
  150. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/middleware.go +30 -0
  151. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/networkerror.go +38 -0
  152. slidge_whatsapp/vendor/go.mau.fi/util/exstrings/stringutil.go +104 -0
  153. slidge_whatsapp/vendor/go.mau.fi/util/exsync/event.go +104 -0
  154. slidge_whatsapp/vendor/go.mau.fi/util/exsync/returnonce.go +25 -0
  155. slidge_whatsapp/vendor/go.mau.fi/util/exsync/ringbuffer.go +139 -0
  156. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncmap.go +94 -0
  157. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncset.go +136 -0
  158. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/callermarshal.go +28 -0
  159. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/defaults.go +32 -0
  160. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/generics.go +45 -0
  161. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/writer.go +81 -0
  162. slidge_whatsapp/vendor/go.mau.fi/util/ptr/ptr.go +43 -0
  163. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.pre-commit-config.yaml +3 -3
  164. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/decode.go +27 -26
  165. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/encode.go +4 -3
  166. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/hash.go +1 -1
  167. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/keys.go +5 -4
  168. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate.go +32 -26
  169. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo-wire-type-store.argo +63 -0
  170. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo.go +62 -0
  171. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/name-to-queryids.json +306 -0
  172. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +42 -8
  173. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/encoder.go +1 -1
  174. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/broadcast.go +5 -4
  175. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/call.go +2 -1
  176. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +134 -55
  177. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +34 -11
  178. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +63 -30
  179. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +78 -34
  180. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/errors.go +4 -0
  181. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +157 -55
  182. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +202 -154
  183. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +3 -2
  184. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaconn.go +5 -3
  185. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaretry.go +2 -1
  186. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +448 -138
  187. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/msgsecret.go +106 -31
  188. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/newsletter.go +83 -7
  189. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +83 -43
  190. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair-code.go +9 -6
  191. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair.go +42 -18
  192. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/prekeys.go +9 -5
  193. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/presence.go +17 -7
  194. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/privacysettings.go +10 -11
  195. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/extra.go +7 -0
  196. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.pb.go +983 -0
  197. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.proto +85 -0
  198. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/extra.go +3 -0
  199. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.pb.go +197 -0
  200. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.proto +13 -0
  201. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.pb.go +279 -0
  202. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.proto +21 -0
  203. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.pb.go +137 -0
  204. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.proto +10 -0
  205. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.pb.go +313 -0
  206. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.proto +27 -0
  207. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.pb.go +1299 -0
  208. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.proto +112 -0
  209. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.pb.go +514 -0
  210. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.proto +47 -0
  211. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.pb.go +123 -0
  212. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.proto +7 -0
  213. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/extra.go +3 -0
  214. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.pb.go +720 -0
  215. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.proto +59 -0
  216. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/extra.go +3 -0
  217. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.pb.go +365 -0
  218. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.proto +33 -0
  219. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.pb.go +1238 -0
  220. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.proto +105 -0
  221. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go +39 -9
  222. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +354 -175
  223. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.proto +5 -5
  224. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +170 -15
  225. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +4 -0
  226. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.pb.go +5156 -0
  227. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.proto +516 -0
  228. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go +29 -9
  229. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +13 -9
  230. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.go +344 -31
  231. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.proto +26 -0
  232. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.pb.go → WACompanionReg.pb.go} +211 -89
  233. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.proto → WACompanionReg.proto} +5 -1
  234. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.go +173 -9
  235. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +78 -16
  236. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +5 -0
  237. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +7463 -5180
  238. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +366 -343
  239. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +485 -135
  240. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +17 -0
  241. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go +198 -0
  242. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto +14 -0
  243. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.go +162 -9
  244. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.proto +1 -0
  245. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.go +32 -9
  246. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.proto +1 -0
  247. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.go +192 -52
  248. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.proto +8 -0
  249. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.go +60 -9
  250. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/extra.go +7 -6
  251. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.go +39 -9
  252. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.go +61 -9
  253. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go +952 -0
  254. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto +88 -0
  255. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +1802 -453
  256. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +92 -0
  257. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +27 -9
  258. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +59 -9
  259. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +435 -109
  260. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +11 -0
  261. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +563 -9
  262. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +4 -0
  263. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +32 -9
  264. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingfields.json +1 -0
  265. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingtoken.go +176 -0
  266. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +39 -21
  267. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +267 -79
  268. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +28 -16
  269. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +3 -1
  270. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/noop.go +87 -44
  271. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/signal.go +75 -88
  272. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +86 -65
  273. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/lidmap.go +186 -0
  274. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +314 -170
  275. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +155 -0
  276. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/03-message-secrets.sql +11 -0
  277. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/04-privacy-tokens.sql +8 -0
  278. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/05-account-jid-format.sql +2 -0
  279. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/06-facebook-uuid.sql +2 -0
  280. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/07-account-lid.sql +2 -0
  281. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/08-lid-mapping.sql +5 -0
  282. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/09-decryption-buffer.sql +10 -0
  283. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/10-chat-db-lid-migration-ts.sql +2 -0
  284. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/upgrades.go +22 -0
  285. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +109 -56
  286. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/botmap.go +210 -0
  287. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/call.go +1 -0
  288. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +21 -2
  289. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/group.go +15 -6
  290. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/jid.go +9 -9
  291. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +18 -0
  292. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/user.go +2 -0
  293. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/update.go +3 -2
  294. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/upload.go +1 -1
  295. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +59 -37
  296. slidge_whatsapp/vendor/golang.org/x/crypto/curve25519/curve25519.go +1 -1
  297. slidge_whatsapp/vendor/golang.org/x/exp/LICENSE +27 -0
  298. slidge_whatsapp/vendor/golang.org/x/exp/PATENTS +22 -0
  299. slidge_whatsapp/vendor/golang.org/x/exp/constraints/constraints.go +54 -0
  300. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
  301. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
  302. slidge_whatsapp/vendor/golang.org/x/net/http2/.gitignore +2 -0
  303. slidge_whatsapp/vendor/golang.org/x/net/http2/ascii.go +53 -0
  304. slidge_whatsapp/vendor/golang.org/x/net/http2/ciphers.go +641 -0
  305. slidge_whatsapp/vendor/golang.org/x/net/http2/client_conn_pool.go +311 -0
  306. slidge_whatsapp/vendor/golang.org/x/net/http2/config.go +164 -0
  307. slidge_whatsapp/vendor/golang.org/x/net/http2/databuffer.go +149 -0
  308. slidge_whatsapp/vendor/golang.org/x/net/http2/errors.go +145 -0
  309. slidge_whatsapp/vendor/golang.org/x/net/http2/flow.go +120 -0
  310. slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +1702 -0
  311. slidge_whatsapp/vendor/golang.org/x/net/http2/gotrack.go +181 -0
  312. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
  313. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
  314. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
  315. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
  316. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
  317. slidge_whatsapp/vendor/golang.org/x/net/http2/http2.go +410 -0
  318. slidge_whatsapp/vendor/golang.org/x/net/http2/pipe.go +184 -0
  319. slidge_whatsapp/vendor/golang.org/x/net/http2/server.go +3332 -0
  320. slidge_whatsapp/vendor/golang.org/x/net/http2/transport.go +3233 -0
  321. slidge_whatsapp/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
  322. slidge_whatsapp/vendor/golang.org/x/net/http2/write.go +381 -0
  323. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched.go +251 -0
  324. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_priority.go +451 -0
  325. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_random.go +77 -0
  326. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_roundrobin.go +119 -0
  327. slidge_whatsapp/vendor/golang.org/x/net/idna/go118.go +13 -0
  328. slidge_whatsapp/vendor/golang.org/x/net/idna/idna10.0.0.go +769 -0
  329. slidge_whatsapp/vendor/golang.org/x/net/idna/idna9.0.0.go +717 -0
  330. slidge_whatsapp/vendor/golang.org/x/net/idna/pre_go118.go +11 -0
  331. slidge_whatsapp/vendor/golang.org/x/net/idna/punycode.go +217 -0
  332. slidge_whatsapp/vendor/golang.org/x/net/idna/tables10.0.0.go +4559 -0
  333. slidge_whatsapp/vendor/golang.org/x/net/idna/tables11.0.0.go +4653 -0
  334. slidge_whatsapp/vendor/golang.org/x/net/idna/tables12.0.0.go +4733 -0
  335. slidge_whatsapp/vendor/golang.org/x/net/idna/tables13.0.0.go +4959 -0
  336. slidge_whatsapp/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
  337. slidge_whatsapp/vendor/golang.org/x/net/idna/tables9.0.0.go +4486 -0
  338. slidge_whatsapp/vendor/golang.org/x/net/idna/trie.go +51 -0
  339. slidge_whatsapp/vendor/golang.org/x/net/idna/trie12.0.0.go +30 -0
  340. slidge_whatsapp/vendor/golang.org/x/net/idna/trie13.0.0.go +30 -0
  341. slidge_whatsapp/vendor/golang.org/x/net/idna/trieval.go +119 -0
  342. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
  343. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
  344. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/request.go +467 -0
  345. slidge_whatsapp/vendor/golang.org/x/sys/unix/affinity_linux.go +1 -3
  346. slidge_whatsapp/vendor/golang.org/x/sys/unix/mkerrors.sh +3 -0
  347. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin.go +93 -0
  348. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux.go +16 -26
  349. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_solaris.go +1 -1
  350. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux.go +47 -16
  351. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +3 -0
  352. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +3 -0
  353. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +3 -0
  354. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +3 -0
  355. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +3 -0
  356. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +3 -0
  357. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +3 -0
  358. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +3 -0
  359. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +3 -0
  360. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +3 -0
  361. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +3 -0
  362. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +3 -0
  363. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +3 -0
  364. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +3 -0
  365. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +3 -0
  366. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +84 -0
  367. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +20 -0
  368. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +84 -0
  369. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +20 -0
  370. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +4 -4
  371. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +1 -0
  372. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +1 -0
  373. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +1 -0
  374. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +1 -0
  375. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +1 -0
  376. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +1 -0
  377. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +1 -0
  378. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +1 -0
  379. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +1 -0
  380. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +1 -0
  381. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +1 -0
  382. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +1 -0
  383. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +1 -0
  384. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +1 -0
  385. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +1 -0
  386. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux.go +168 -12
  387. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +17 -1
  388. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +16 -0
  389. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +18 -2
  390. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +16 -0
  391. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +16 -0
  392. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +17 -1
  393. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +16 -0
  394. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +16 -0
  395. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +17 -1
  396. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +18 -2
  397. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +16 -0
  398. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +16 -0
  399. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +16 -0
  400. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +16 -0
  401. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +16 -0
  402. slidge_whatsapp/vendor/golang.org/x/sys/windows/security_windows.go +44 -5
  403. slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall_windows.go +4 -2
  404. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows.go +245 -0
  405. slidge_whatsapp/vendor/golang.org/x/sys/windows/zsyscall_windows.go +491 -482
  406. slidge_whatsapp/vendor/golang.org/x/text/LICENSE +27 -0
  407. slidge_whatsapp/vendor/golang.org/x/text/PATENTS +22 -0
  408. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule.go +336 -0
  409. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +11 -0
  410. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +14 -0
  411. slidge_whatsapp/vendor/golang.org/x/text/transform/transform.go +709 -0
  412. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
  413. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
  414. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/core.go +1071 -0
  415. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
  416. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +1815 -0
  417. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +1887 -0
  418. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +1923 -0
  419. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +1955 -0
  420. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
  421. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +1781 -0
  422. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
  423. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
  424. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/forminfo.go +279 -0
  425. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
  426. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/iter.go +458 -0
  427. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
  428. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
  429. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +7657 -0
  430. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +7693 -0
  431. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +7710 -0
  432. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +7760 -0
  433. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
  434. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +7637 -0
  435. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
  436. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
  437. slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +25 -1
  438. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb +0 -0
  439. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +13 -5
  440. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/presence.go +33 -0
  441. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +6 -0
  442. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +81 -19
  443. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +2 -1
  444. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go +8 -37
  445. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/presence.go +0 -3
  446. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe_go121.go → strings_unsafe.go} +0 -2
  447. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/version/version.go +1 -1
  448. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/merge.go +6 -0
  449. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +10 -0
  450. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe_go121.go → value_unsafe.go} +0 -2
  451. slidge_whatsapp/vendor/modules.txt +80 -21
  452. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/METADATA +5 -4
  453. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/RECORD +456 -263
  454. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/WHEEL +1 -1
  455. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi_amd64.go +0 -7
  456. slidge_whatsapp/vendor/github.com/rs/zerolog/CNAME +0 -1
  457. slidge_whatsapp/vendor/github.com/rs/zerolog/_config.yml +0 -1
  458. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.raw +0 -0
  459. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw +0 -0
  460. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw +0 -0
  461. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.raw +0 -23
  462. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw +0 -7
  463. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.raw +0 -0
  464. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WAWebProtobufsCompanionReg.pb.raw +0 -0
  465. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.raw +0 -0
  466. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw +0 -0
  467. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.raw +0 -0
  468. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw +0 -0
  469. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.raw +0 -0
  470. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.raw +0 -0
  471. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.raw +0 -0
  472. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.raw +0 -0
  473. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.raw +0 -0
  474. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.raw +0 -0
  475. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.raw +0 -0
  476. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.raw +0 -0
  477. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw +0 -0
  478. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.raw +0 -0
  479. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.raw +0 -0
  480. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go +0 -296
  481. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go +0 -94
  482. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go +0 -98
  483. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0.dist-info}/entry_points.txt +0 -0
  484. {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
- for i, jid := range cached.devices {
122
- if jid == changedDeviceJID {
123
- cached.devices = append(cached.devices[:i], cached.devices[i+1:]...)
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
- ownID := cli.getOwnID().ToNonAD()
224
- if ownID.IsEmpty() {
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 != ownID {
244
- cli.Log.Warnf("privacy_token notification contained token for different user %s", targetUser)
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
- defer cli.maybeDeferredAck(node)()
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.dispatchEvent(evt)
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 "", fmt.Errorf("phone number too short")
97
+ return "", ErrPhoneNumberTooShort
97
98
  } else if strings.HasPrefix(phone, "0") {
98
- return "", fmt.Errorf("international phone number required (must not start with 0)")
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, "not-authorized")
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, "not-authorized")
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
- mainDeviceJID := jid
145
- mainDeviceJID.Device = 0
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
- err = cli.Store.Identities.PutIdentity(mainDeviceJID.SignalAddress().String(), mainDeviceIdentity)
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
- message := concatBytes([]byte{6, 0}, deviceIdentity.Details, ikp.Pub[:])
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
- message := concatBytes([]byte{6, 1}, deviceIdentity.Details, ikp.Pub[:], deviceIdentity.AccountSignatureKey)
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 len(cli.Store.PushName) == 0 {
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: "presence",
74
- Attrs: waBinary.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
- privacyToken, err := cli.Store.PrivacyTokens.GetPrivacyToken(jid)
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 {