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
slidge_whatsapp/config.py CHANGED
@@ -21,6 +21,9 @@ DB_PATH__DOC = (
21
21
  "${SLIDGE_HOME_DIR}/whatsapp/whatsapp.db"
22
22
  )
23
23
 
24
+ DB_PARAMS = "?_foreign_keys=true"
25
+ DB_PARAMS__DOC = "Additional parameters to pass to database connection string."
26
+
24
27
  ALWAYS_SYNC_ROSTER = False
25
28
  ALWAYS_SYNC_ROSTER__DOC = (
26
29
  "Whether or not to perform a full sync of the WhatsApp roster on startup."
@@ -2,6 +2,7 @@ from datetime import datetime, timezone
2
2
  from typing import TYPE_CHECKING
3
3
 
4
4
  from slidge import LegacyContact, LegacyRoster
5
+ from slidge.util.types import Avatar
5
6
  from slixmpp.exceptions import XMPPError
6
7
 
7
8
  from . import config
@@ -28,6 +29,12 @@ class Contact(LegacyContact[str]):
28
29
  else:
29
30
  self.online(last_seen=last_seen)
30
31
 
32
+ async def update_info(self) -> None:
33
+ if whatsapp.IsAnonymousJID(self.legacy_id):
34
+ self.log.error(
35
+ "Contact for anonymous participant added: %s", self.legacy_id
36
+ )
37
+
31
38
 
32
39
  class Roster(LegacyRoster[str, Contact]):
33
40
  session: "Session"
@@ -54,9 +61,12 @@ class Roster(LegacyRoster[str, Contact]):
54
61
  contact.name = data.Name
55
62
  contact.is_friend = True
56
63
  try:
57
- avatar = self.session.whatsapp.GetAvatar(data.JID, contact.avatar or "")
58
- if avatar.URL and contact.avatar != avatar.ID:
59
- await contact.set_avatar(avatar.URL, avatar.ID)
64
+ unique_id = ""
65
+ if contact.avatar is not None:
66
+ unique_id = contact.avatar.unique_id or ""
67
+ avatar = self.session.whatsapp.GetAvatar(data.JID, unique_id)
68
+ if avatar.URL and unique_id != avatar.ID:
69
+ await contact.set_avatar(Avatar(url=avatar.URL, unique_id=avatar.ID))
60
70
  elif avatar.URL == "" and avatar.ID == "":
61
71
  await contact.set_avatar(None)
62
72
  except RuntimeError as err:
@@ -67,6 +77,8 @@ class Roster(LegacyRoster[str, Contact]):
67
77
  return contact
68
78
 
69
79
  async def legacy_id_to_jid_username(self, legacy_id: str) -> str:
80
+ if not "@" in legacy_id:
81
+ raise XMPPError("item-not-found", "Invalid contact ID, not a JID")
70
82
  return "+" + legacy_id[: legacy_id.find("@")]
71
83
 
72
84
  async def jid_username_to_legacy_id(self, jid_username: str) -> str:
slidge_whatsapp/event.go CHANGED
@@ -5,6 +5,7 @@ import (
5
5
  "context"
6
6
  "fmt"
7
7
  "mime"
8
+ "slices"
8
9
  "strings"
9
10
 
10
11
  // Internal packages.
@@ -45,6 +46,7 @@ type EventPayload struct {
45
46
  QRCode string
46
47
  PairDeviceID string
47
48
  Connect Connect
49
+ LoggedOut LoggedOut
48
50
  Contact Contact
49
51
  Presence Presence
50
52
  Message Message
@@ -65,6 +67,11 @@ type Connect struct {
65
67
  Error string // The connection error, if any.
66
68
  }
67
69
 
70
+ // LoggedOut repreents event data related to an explicit or implicit log-out event.
71
+ type LoggedOut struct {
72
+ Reason string // The human-readable reason for logging out, if any.
73
+ }
74
+
68
75
  // A Avatar represents a small image set for a Contact or Group.
69
76
  type Avatar struct {
70
77
  ID string // The unique ID for this avatar, used for persistent caching.
@@ -81,10 +88,25 @@ type Contact struct {
81
88
  // NewContactEvent returns event data meant for [Session.propagateEvent] for the contact information
82
89
  // given. Unknown or invalid contact information will return an [EventUnknown] event with nil data.
83
90
  func newContactEvent(jid types.JID, info types.ContactInfo) (EventKind, *EventPayload) {
84
- var contact = Contact{
85
- JID: jid.ToNonAD().String(),
91
+ contact := newContact(jid, info)
92
+ if contact.JID == "" {
93
+ return EventUnknown, nil
94
+ }
95
+
96
+ return EventContact, &EventPayload{Contact: contact}
97
+ }
98
+
99
+ // NewContact returns a concrete [Contact] instance for the JID and additional information given.
100
+ // In cases where a valid contact can't be returned, [Contact.JID] will be left empty.
101
+ func newContact(jid types.JID, info types.ContactInfo) Contact {
102
+ // Don't instantiate hidden contacts, as these are better handled as group participants
103
+ if jid.Server == types.HiddenUserServer {
104
+ return Contact{}
86
105
  }
87
106
 
107
+ // Find valid contact name from list of alternatives, or return empty contact if none could
108
+ // be found.
109
+ var contact = Contact{JID: jid.ToNonAD().String()}
88
110
  for _, n := range []string{info.FullName, info.FirstName, info.BusinessName, info.PushName} {
89
111
  if n != "" {
90
112
  contact.Name = n
@@ -92,12 +114,11 @@ func newContactEvent(jid types.JID, info types.ContactInfo) (EventKind, *EventPa
92
114
  }
93
115
  }
94
116
 
95
- // Don't attempt to synchronize contacts with no user-readable name.
96
117
  if contact.Name == "" {
97
- return EventUnknown, nil
118
+ return Contact{}
98
119
  }
99
120
 
100
- return EventContact, &EventPayload{Contact: contact}
121
+ return contact
101
122
  }
102
123
 
103
124
  // PresenceKind represents the different kinds of activity states possible in WhatsApp.
@@ -121,6 +142,10 @@ type Presence struct {
121
142
  // NewPresenceEvent returns event data meant for [Session.propagateEvent] for the primitive presence
122
143
  // event given.
123
144
  func newPresenceEvent(evt *events.Presence) (EventKind, *EventPayload) {
145
+ if evt.From.Server == types.HiddenUserServer {
146
+ return EventUnknown, nil
147
+ }
148
+
124
149
  var presence = Presence{
125
150
  JID: evt.From.ToNonAD().String(),
126
151
  Kind: PresenceAvailable,
@@ -168,9 +193,11 @@ type Message struct {
168
193
  Location Location // The location metadata for messages, if any.
169
194
  Poll Poll // The multiple-choice poll contained in the message, if any.
170
195
  Album Album // The image album message, if any.
196
+ GroupInvite Group // Group information for the invite group included in this message, if any.
171
197
  MentionJIDs []string // A list of JIDs mentioned in this message, if any.
172
198
  Receipts []Receipt // The receipt statuses for the message, typically provided alongside historical messages.
173
199
  Reactions []Message // Reactions attached to message, typically provided alongside historical messages.
200
+ IsHistory bool // Whether or not the message is derived from message history.
174
201
  }
175
202
 
176
203
  // A Attachment represents additional binary data (e.g. images, videos, documents) provided alongside
@@ -252,13 +279,13 @@ type Album struct {
252
279
 
253
280
  // NewMessageEvent returns event data meant for [Session.propagateEvent] for the primive message
254
281
  // event given. Unknown or invalid messages will return an [EventUnknown] event with nil data.
255
- func newMessageEvent(client *whatsmeow.Client, evt *events.Message) (EventKind, *EventPayload) {
282
+ func newMessageEvent(ctx context.Context, client *whatsmeow.Client, evt *events.Message) (EventKind, *EventPayload) {
256
283
  // Set basic data for message, to be potentially amended depending on the concrete version of
257
284
  // the underlying message.
258
285
  var message = Message{
259
286
  Kind: MessagePlain,
260
287
  ID: evt.Info.ID,
261
- JID: evt.Info.Sender.ToNonAD().String(),
288
+ JID: getPreferredJID(ctx, client, evt.Info.Sender, evt.Info.SenderAlt).ToNonAD().String(),
262
289
  Body: evt.Message.GetConversation(),
263
290
  Timestamp: evt.Info.Timestamp.Unix(),
264
291
  IsCarbon: evt.Info.IsFromMe,
@@ -358,7 +385,7 @@ func newMessageEvent(client *whatsmeow.Client, evt *events.Message) (EventKind,
358
385
  }
359
386
 
360
387
  // Handle message attachments, if any.
361
- if attach, context, err := getMessageAttachments(client, evt.Message); err != nil {
388
+ if attach, context, err := getMessageAttachments(ctx, client, evt.Message); err != nil {
362
389
  client.Log.Errorf("Failed getting message attachments: %s", err)
363
390
  return EventUnknown, nil
364
391
  } else if len(attach) > 0 {
@@ -376,7 +403,18 @@ func newMessageEvent(client *whatsmeow.Client, evt *events.Message) (EventKind,
376
403
  message.Body = e.GetText()
377
404
  }
378
405
 
379
- message = getMessageWithContext(message, e.GetContextInfo())
406
+ // Handle group-chat invite link in text message.
407
+ if code, ok := strings.CutPrefix(e.GetMatchedText(), whatsmeow.InviteLinkPrefix); ok {
408
+ if info, err := client.GetGroupInfoFromLink(e.GetMatchedText()); err != nil {
409
+ client.Log.Errorf("Failed getting group info from invite: %s", err)
410
+ } else if _, err := client.JoinGroupWithLink(code); err != nil {
411
+ client.Log.Errorf("Failed joining group with invite: %s", err)
412
+ } else {
413
+ message.GroupInvite = newGroup(ctx, client, info)
414
+ }
415
+ } else {
416
+ message = getMessageWithContext(message, e.GetContextInfo())
417
+ }
380
418
  }
381
419
 
382
420
  // Ignore obviously invalid messages.
@@ -412,7 +450,7 @@ func getMessageWithContext(message Message, info *waE2E.ContextInfo) Message {
412
450
 
413
451
  // GetMessageAttachments fetches and decrypts attachments (images, audio, video, or documents) sent
414
452
  // via WhatsApp. Any failures in retrieving any attachment will return an error immediately.
415
- func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]Attachment, *waE2E.ContextInfo, error) {
453
+ func getMessageAttachments(ctx context.Context, client *whatsmeow.Client, message *waE2E.Message) ([]Attachment, *waE2E.ContextInfo, error) {
416
454
  var result []Attachment
417
455
  var info *waE2E.ContextInfo
418
456
  var convertSpec *media.Spec
@@ -422,6 +460,7 @@ func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]
422
460
  message.GetVideoMessage(),
423
461
  message.GetDocumentMessage(),
424
462
  message.GetStickerMessage(),
463
+ message.GetPtvMessage(),
425
464
  }
426
465
 
427
466
  for _, msg := range kinds {
@@ -450,7 +489,7 @@ func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]
450
489
  }
451
490
 
452
491
  // Attempt to download and decrypt raw attachment data, if any.
453
- data, err := client.Download(msg)
492
+ data, err := client.Download(ctx, msg)
454
493
  if err != nil {
455
494
  return nil, nil, err
456
495
  }
@@ -459,8 +498,10 @@ func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]
459
498
 
460
499
  // Convert incoming data if a specification has been given, ignoring any errors that occur.
461
500
  if convertSpec != nil {
462
- data, err = media.Convert(context.Background(), a.Data, convertSpec)
463
- if err == nil {
501
+ data, err = media.Convert(ctx, a.Data, convertSpec)
502
+ if err != nil {
503
+ client.Log.Warnf("failed to convert incoming attachment: %s", err)
504
+ } else {
464
505
  a.Data, a.MIME = data, string(convertSpec.MIME)
465
506
  }
466
507
  }
@@ -557,7 +598,7 @@ var (
557
598
  //
558
599
  // If the input MIME type is unknown, or conversion is impossible, the given attachment is not
559
600
  // changed.
560
- func convertAttachment(attach *Attachment) error {
601
+ func convertAttachment(ctx context.Context, attach *Attachment) error {
561
602
  var detectedMIME media.MIMEType
562
603
  if t := media.DetectMIMEType(attach.Data); t != media.TypeUnknown {
563
604
  detectedMIME = t
@@ -567,8 +608,6 @@ func convertAttachment(attach *Attachment) error {
567
608
  }
568
609
 
569
610
  var spec media.Spec
570
- var ctx = context.Background()
571
-
572
611
  switch detectedMIME {
573
612
  case media.TypePNG, media.TypeWebP:
574
613
  // Convert common image formats to JPEG for inline preview.
@@ -648,6 +687,10 @@ func convertAttachment(attach *Attachment) error {
648
687
  }
649
688
 
650
689
  attach.Data, attach.MIME = data, string(spec.MIME)
690
+ if i := strings.LastIndexByte(attach.Filename, '.'); i != -1 {
691
+ attach.Filename = attach.Filename[:i] + extensionByType(attach.MIME)
692
+ }
693
+
651
694
  return nil
652
695
  }
653
696
 
@@ -666,12 +709,10 @@ var knownMediaTypes = map[string]whatsmeow.MediaType{
666
709
  // type specified within. Attachments are handled as generic file uploads unless they're of a
667
710
  // specific format; in addition, certain MIME types may be automatically converted to a
668
711
  // well-supported type via FFmpeg (if available).
669
- func uploadAttachment(client *whatsmeow.Client, attach *Attachment) (*waE2E.Message, error) {
670
- var ctx = context.Background()
712
+ func uploadAttachment(ctx context.Context, client *whatsmeow.Client, attach *Attachment) (*waE2E.Message, error) {
671
713
  var originalMIME = attach.MIME
672
-
673
- if err := convertAttachment(attach); err != nil {
674
- client.Log.Warnf("failed to auto-convert attachment: %s", err)
714
+ if err := convertAttachment(ctx, attach); err != nil {
715
+ client.Log.Warnf("failed to convert outgoing attachment: %s", err)
675
716
  }
676
717
 
677
718
  mediaType := knownMediaTypes[getBaseMediaType(attach.MIME)]
@@ -833,7 +874,7 @@ func getBaseMediaType(typ string) string {
833
874
  //
834
875
  // Typically, this will return [EventMessage] events with appropriate [Message] payloads; unknown or
835
876
  // invalid messages will return an [EventUnknown] event with nil data.
836
- func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (EventKind, *EventPayload) {
877
+ func newEventFromHistory(ctx context.Context, client *whatsmeow.Client, info *waWeb.WebMessageInfo) (EventKind, *EventPayload) {
837
878
  // Handle message as group message is remote JID is a group JID in the absence of any other,
838
879
  // specific signal, or don't handle at all if no group JID is found.
839
880
  var jid = info.GetKey().GetRemoteJID()
@@ -850,10 +891,15 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
850
891
  Body: info.GetMessage().GetConversation(),
851
892
  Timestamp: int64(info.GetMessageTimestamp()),
852
893
  IsCarbon: info.GetKey().GetFromMe(),
894
+ IsHistory: true,
853
895
  }
854
896
 
855
897
  if info.Participant != nil {
856
- message.JID = info.GetParticipant()
898
+ jid, err := types.ParseJID(info.GetParticipant())
899
+ if err != nil {
900
+ return EventUnknown, nil
901
+ }
902
+ message.JID = getPreferredJID(ctx, client, jid).ToNonAD().String()
857
903
  } else if info.GetKey().GetFromMe() {
858
904
  message.JID = client.Store.ID.ToNonAD().String()
859
905
  } else {
@@ -868,9 +914,13 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
868
914
  case waWeb.WebMessageInfo_CIPHERTEXT:
869
915
  return EventUnknown, nil
870
916
  case waWeb.WebMessageInfo_CALL_MISSED_VOICE, waWeb.WebMessageInfo_CALL_MISSED_VIDEO:
917
+ jid, err := types.ParseJID(info.GetKey().GetParticipant())
918
+ if err != nil {
919
+ return EventUnknown, nil
920
+ }
871
921
  return EventCall, &EventPayload{Call: Call{
872
922
  State: CallMissed,
873
- JID: info.GetKey().GetRemoteJID(),
923
+ JID: getPreferredJID(ctx, client, jid).ToNonAD().String(),
874
924
  Timestamp: int64(info.GetMessageTimestamp()),
875
925
  }}
876
926
  case waWeb.WebMessageInfo_REVOKE:
@@ -886,10 +936,14 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
886
936
  // Handle emoji reaction to existing message.
887
937
  for _, r := range info.GetReactions() {
888
938
  if r.GetText() != "" {
939
+ jid, err := types.ParseJID(r.GetKey().GetParticipant())
940
+ if err != nil {
941
+ continue
942
+ }
889
943
  message.Reactions = append(message.Reactions, Message{
890
944
  Kind: MessageReaction,
891
945
  ID: r.GetKey().GetID(),
892
- JID: r.GetKey().GetRemoteJID(),
946
+ JID: getPreferredJID(ctx, client, jid).ToNonAD().String(),
893
947
  Body: r.GetText(),
894
948
  Timestamp: r.GetSenderTimestampMS() / 1000,
895
949
  IsCarbon: r.GetKey().GetFromMe(),
@@ -898,7 +952,7 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
898
952
  }
899
953
 
900
954
  // Handle message attachments, if any.
901
- if attach, context, err := getMessageAttachments(client, info.GetMessage()); err != nil {
955
+ if attach, context, err := getMessageAttachments(ctx, client, info.GetMessage()); err != nil {
902
956
  client.Log.Errorf("Failed getting message attachments: %s", err)
903
957
  return EventUnknown, nil
904
958
  } else if len(attach) > 0 {
@@ -915,7 +969,15 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
915
969
  if client.Store.ID.ToNonAD().String() == r.GetUserJID() {
916
970
  continue
917
971
  }
918
- var receipt = Receipt{MessageIDs: []string{message.ID}, JID: r.GetUserJID(), GroupJID: message.GroupJID}
972
+ jid, err := types.ParseJID(r.GetUserJID())
973
+ if err != nil {
974
+ continue
975
+ }
976
+ var receipt = Receipt{
977
+ JID: getPreferredJID(ctx, client, jid).ToNonAD().String(),
978
+ GroupJID: message.GroupJID,
979
+ MessageIDs: []string{message.ID},
980
+ }
919
981
  switch info.GetStatus() {
920
982
  case waWeb.WebMessageInfo_DELIVERY_ACK:
921
983
  receipt.Kind = ReceiptDelivered
@@ -933,7 +995,6 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
933
995
  if message.Body == "" {
934
996
  message.Body = e.GetText()
935
997
  }
936
-
937
998
  message = getMessageWithContext(message, e.GetContextInfo())
938
999
  }
939
1000
 
@@ -966,10 +1027,12 @@ type ChatState struct {
966
1027
 
967
1028
  // NewChatStateEvent returns event data meant for [Session.propagateEvent] for the primitive
968
1029
  // chat-state event given.
969
- func newChatStateEvent(evt *events.ChatPresence) (EventKind, *EventPayload) {
970
- var state = ChatState{JID: evt.MessageSource.Sender.ToNonAD().String()}
971
- if evt.MessageSource.IsGroup {
972
- state.GroupJID = evt.MessageSource.Chat.ToNonAD().String()
1030
+ func newChatStateEvent(ctx context.Context, client *whatsmeow.Client, evt *events.ChatPresence) (EventKind, *EventPayload) {
1031
+ var state = ChatState{
1032
+ JID: getPreferredJID(ctx, client, evt.Sender, evt.SenderAlt).ToNonAD().String(),
1033
+ }
1034
+ if evt.IsGroup {
1035
+ state.GroupJID = evt.Chat.ToNonAD().String()
973
1036
  }
974
1037
  switch evt.State {
975
1038
  case types.ChatPresenceComposing:
@@ -1004,24 +1067,24 @@ type Receipt struct {
1004
1067
 
1005
1068
  // NewReceiptEvent returns event data meant for [Session.propagateEvent] for the primive receipt
1006
1069
  // event given. Unknown or invalid receipts will return an [EventUnknown] event with nil data.
1007
- func newReceiptEvent(evt *events.Receipt) (EventKind, *EventPayload) {
1070
+ func newReceiptEvent(ctx context.Context, client *whatsmeow.Client, evt *events.Receipt) (EventKind, *EventPayload) {
1008
1071
  var receipt = Receipt{
1009
- MessageIDs: append([]string{}, evt.MessageIDs...),
1010
- JID: evt.MessageSource.Sender.ToNonAD().String(),
1072
+ MessageIDs: slices.Clone(evt.MessageIDs),
1073
+ JID: getPreferredJID(ctx, client, evt.Sender, evt.SenderAlt).ToNonAD().String(),
1011
1074
  Timestamp: evt.Timestamp.Unix(),
1012
- IsCarbon: evt.MessageSource.IsFromMe,
1075
+ IsCarbon: evt.IsFromMe,
1013
1076
  }
1014
1077
 
1015
1078
  if len(receipt.MessageIDs) == 0 {
1016
1079
  return EventUnknown, nil
1017
1080
  }
1018
1081
 
1019
- if evt.MessageSource.Chat.Server == types.BroadcastServer {
1020
- receipt.JID = evt.MessageSource.BroadcastListOwner.ToNonAD().String()
1021
- } else if evt.MessageSource.IsGroup {
1022
- receipt.GroupJID = evt.MessageSource.Chat.ToNonAD().String()
1082
+ if evt.Chat.Server == types.BroadcastServer {
1083
+ receipt.JID = evt.BroadcastListOwner.ToNonAD().String()
1084
+ } else if evt.IsGroup {
1085
+ receipt.GroupJID = evt.Chat.ToNonAD().String()
1023
1086
  } else if receipt.IsCarbon {
1024
- receipt.JID = evt.MessageSource.Chat.ToNonAD().String()
1087
+ receipt.JID = evt.Chat.ToNonAD().String()
1025
1088
  }
1026
1089
 
1027
1090
  switch evt.Type {
@@ -1054,14 +1117,15 @@ type Group struct {
1054
1117
  Subject GroupSubject // The longer-form, user-defined description for this group.
1055
1118
  Nickname string // Our own nickname in this group-chat.
1056
1119
  Participants []GroupParticipant // The list of participant contacts for this group, including ourselves.
1120
+ InviteCode string // The code for inviting members to this group-chat.
1057
1121
  }
1058
1122
 
1059
1123
  // A GroupSubject represents the user-defined group description and attached metadata thereof, for a
1060
1124
  // given [Group].
1061
1125
  type GroupSubject struct {
1062
- Subject string // The user-defined group description.
1063
- SetAt int64 // The exact time this group description was set at, as a timestamp.
1064
- SetByJID string // The JID of the user that set the subject.
1126
+ Subject string // The user-defined group description.
1127
+ SetAt int64 // The exact time this group description was set at, as a timestamp.
1128
+ SetBy string // The name of the user that set the subject.
1065
1129
  }
1066
1130
 
1067
1131
  // GroupParticipantAction represents the distinct set of actions that can be taken when encountering
@@ -1091,10 +1155,11 @@ func (a GroupParticipantAction) toParticipantChange() whatsmeow.ParticipantChang
1091
1155
  }
1092
1156
 
1093
1157
  // A GroupParticipant represents a contact who is currently joined in a given group. Participants in
1094
- // WhatsApp can always be derived back to their individual [Contact]; there are no anonymous groups
1158
+ // WhatsApp can generally be derived back to their individual [Contact]; there are no anonymous groups
1095
1159
  // in WhatsApp.
1096
1160
  type GroupParticipant struct {
1097
1161
  JID string // The WhatsApp JID for this participant.
1162
+ Nickname string // The user-set name for this participant, typically only set for anonymous participants.
1098
1163
  Affiliation GroupAffiliation // The set of priviledges given to this specific participant.
1099
1164
  Action GroupParticipantAction // The specific action to take for this participant; typically to add.
1100
1165
  }
@@ -1102,59 +1167,67 @@ type GroupParticipant struct {
1102
1167
  // NewGroupParticipant returns a [GroupParticipant], filling fields from the internal participant
1103
1168
  // type. This is a no-op if [types.GroupParticipant.Error] is non-zero, and other fields may only
1104
1169
  // be set optionally.
1105
- func newGroupParticipant(p types.GroupParticipant) GroupParticipant {
1106
- if p.Error > 0 {
1170
+ func newGroupParticipant(ctx context.Context, client *whatsmeow.Client, participant types.GroupParticipant) GroupParticipant {
1171
+ if participant.Error > 0 {
1107
1172
  return GroupParticipant{}
1108
1173
  }
1109
- var affiliation = GroupAffiliationNone
1110
- if p.IsSuperAdmin {
1111
- affiliation = GroupAffiliationOwner
1112
- } else if p.IsAdmin {
1113
- affiliation = GroupAffiliationAdmin
1174
+ var jid = getPreferredJID(ctx, client, participant.JID, participant.PhoneNumber)
1175
+ var p = GroupParticipant{
1176
+ JID: jid.ToNonAD().String(),
1177
+ }
1178
+ if participant.IsSuperAdmin {
1179
+ p.Affiliation = GroupAffiliationOwner
1180
+ } else if participant.IsAdmin {
1181
+ p.Affiliation = GroupAffiliationAdmin
1114
1182
  }
1115
- return GroupParticipant{
1116
- JID: p.JID.ToNonAD().String(),
1117
- Affiliation: affiliation,
1183
+ if IsAnonymousJID(p.JID) {
1184
+ if c, err := client.Store.Contacts.GetContact(ctx, participant.JID); err == nil {
1185
+ p.Nickname = c.PushName
1186
+ }
1118
1187
  }
1188
+ return p
1119
1189
  }
1120
1190
 
1121
1191
  // NewGroupEvent returns event data meant for [Session.propagateEvent] for the primive group event
1122
1192
  // given. Group data returned by this function can be partial, and callers should take care to only
1123
1193
  // handle non-empty values.
1124
- func newGroupEvent(evt *events.GroupInfo) (EventKind, *EventPayload) {
1194
+ func newGroupEvent(ctx context.Context, client *whatsmeow.Client, evt *events.GroupInfo) (EventKind, *EventPayload) {
1125
1195
  var group = Group{JID: evt.JID.ToNonAD().String()}
1126
1196
  if evt.Name != nil {
1127
1197
  group.Name = evt.Name.Name
1128
1198
  }
1129
1199
  if evt.Topic != nil {
1200
+ topicJID := getPreferredJID(ctx, client, evt.Topic.TopicSetBy, evt.Topic.TopicSetByPN)
1130
1201
  group.Subject = GroupSubject{
1131
- Subject: evt.Topic.Topic,
1132
- SetAt: evt.Topic.TopicSetAt.Unix(),
1133
- SetByJID: evt.Topic.TopicSetBy.ToNonAD().String(),
1202
+ Subject: evt.Topic.Topic,
1203
+ SetAt: evt.Topic.TopicSetAt.Unix(),
1204
+ }
1205
+ if c, err := client.Store.Contacts.GetContact(ctx, topicJID); err == nil {
1206
+ group.Subject.SetBy = c.PushName
1134
1207
  }
1135
1208
  }
1136
1209
  for _, p := range evt.Join {
1137
1210
  group.Participants = append(group.Participants, GroupParticipant{
1138
- JID: p.ToNonAD().String(),
1211
+ JID: getPreferredJID(ctx, client, p).ToNonAD().String(),
1139
1212
  Action: GroupParticipantActionAdd,
1140
1213
  })
1141
1214
  }
1142
1215
  for _, p := range evt.Leave {
1143
1216
  group.Participants = append(group.Participants, GroupParticipant{
1144
- JID: p.ToNonAD().String(),
1217
+ JID: getPreferredJID(ctx, client, p).ToNonAD().String(),
1145
1218
  Action: GroupParticipantActionRemove,
1146
1219
  })
1147
1220
  }
1148
1221
  for _, p := range evt.Promote {
1149
1222
  group.Participants = append(group.Participants, GroupParticipant{
1150
- JID: p.ToNonAD().String(),
1223
+ JID: getPreferredJID(ctx, client, p).ToNonAD().String(),
1151
1224
  Action: GroupParticipantActionPromote,
1152
1225
  Affiliation: GroupAffiliationAdmin,
1153
1226
  })
1154
1227
  }
1155
1228
  for _, p := range evt.Demote {
1156
1229
  group.Participants = append(group.Participants, GroupParticipant{
1157
- JID: p.ToNonAD().String(),
1230
+ JID: getPreferredJID(ctx, client, p).ToNonAD().String(),
1158
1231
  Action: GroupParticipantActionDemote,
1159
1232
  Affiliation: GroupAffiliationNone,
1160
1233
  })
@@ -1165,26 +1238,32 @@ func newGroupEvent(evt *events.GroupInfo) (EventKind, *EventPayload) {
1165
1238
  // NewGroup returns a concrete [Group] for the primitive data given. This function will generally
1166
1239
  // populate fields with as much data as is available from the remote, and is therefore should not
1167
1240
  // be called when partial data is to be returned.
1168
- func newGroup(client *whatsmeow.Client, info *types.GroupInfo) Group {
1241
+ func newGroup(ctx context.Context, client *whatsmeow.Client, info *types.GroupInfo) Group {
1169
1242
  var participants []GroupParticipant
1170
1243
  for i := range info.Participants {
1171
- p := newGroupParticipant(info.Participants[i])
1244
+ p := newGroupParticipant(ctx, client, info.Participants[i])
1172
1245
  if p.JID == "" {
1173
1246
  continue
1174
1247
  }
1175
1248
  participants = append(participants, p)
1176
1249
  }
1177
- return Group{
1250
+
1251
+ var topicJID = getPreferredJID(ctx, client, info.TopicSetBy, info.TopicSetByPN)
1252
+ var group = Group{
1178
1253
  JID: info.JID.ToNonAD().String(),
1179
- Name: info.GroupName.Name,
1254
+ Name: info.Name,
1180
1255
  Subject: GroupSubject{
1181
- Subject: info.Topic,
1182
- SetAt: info.TopicSetAt.Unix(),
1183
- SetByJID: info.TopicSetBy.ToNonAD().String(),
1256
+ Subject: info.Topic,
1257
+ SetAt: info.TopicSetAt.Unix(),
1184
1258
  },
1185
1259
  Nickname: client.Store.PushName,
1186
1260
  Participants: participants,
1187
1261
  }
1262
+ if c, err := client.Store.Contacts.GetContact(ctx, topicJID); err == nil {
1263
+ group.Subject.SetBy = c.PushName
1264
+ }
1265
+
1266
+ return group
1188
1267
  }
1189
1268
 
1190
1269
  // CallState represents the state of the call to synchronize with.
@@ -1229,3 +1308,25 @@ func newCallEvent(state CallState, meta types.BasicCallMeta) (EventKind, *EventP
1229
1308
  Timestamp: meta.Timestamp.Unix(),
1230
1309
  }}
1231
1310
  }
1311
+
1312
+ // GetPreferredJID returns one of the [type.JID] values for the given senders, preferring the first
1313
+ // non-empty, non-hidden sender; if none are found, mappings from LID to JID are tried, or otherwise,
1314
+ // the first JID given is returned.
1315
+ func getPreferredJID(ctx context.Context, client *whatsmeow.Client, def types.JID, alt ...types.JID) types.JID {
1316
+ var jids = append([]types.JID{def}, alt...)
1317
+ for _, s := range jids {
1318
+ if !s.IsEmpty() && s.Server != types.HiddenUserServer {
1319
+ return s
1320
+ }
1321
+ }
1322
+
1323
+ for _, s := range jids {
1324
+ if !s.IsEmpty() && s.Server == types.HiddenUserServer {
1325
+ if p, _ := client.Store.LIDs.GetPNForLID(ctx, s); !p.IsEmpty() {
1326
+ return p
1327
+ }
1328
+ }
1329
+ }
1330
+
1331
+ return def
1332
+ }