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
@@ -29,12 +29,15 @@ import (
29
29
  "google.golang.org/protobuf/proto"
30
30
 
31
31
  waBinary "go.mau.fi/whatsmeow/binary"
32
+ "go.mau.fi/whatsmeow/proto/waBotMetadata"
32
33
  "go.mau.fi/whatsmeow/proto/waCommon"
33
34
  "go.mau.fi/whatsmeow/proto/waE2E"
34
35
  "go.mau.fi/whatsmeow/types"
35
36
  "go.mau.fi/whatsmeow/types/events"
36
37
  )
37
38
 
39
+ const WebMessageIDPrefix = "3EB0"
40
+
38
41
  // GenerateMessageID generates a random string that can be used as a message ID on WhatsApp.
39
42
  //
40
43
  // msgID := cli.GenerateMessageID()
@@ -52,7 +55,7 @@ func (cli *Client) GenerateMessageID() types.MessageID {
52
55
  }
53
56
  data = append(data, random.Bytes(16)...)
54
57
  hash := sha256.Sum256(data)
55
- return "3EB0" + strings.ToUpper(hex.EncodeToString(hash[:9]))
58
+ return WebMessageIDPrefix + strings.ToUpper(hex.EncodeToString(hash[:9]))
56
59
  }
57
60
 
58
61
  func GenerateFacebookMessageID() int64 {
@@ -67,7 +70,7 @@ func GenerateFacebookMessageID() int64 {
67
70
  //
68
71
  // Deprecated: WhatsApp web has switched to using a hash of the current timestamp, user id and random bytes. Use Client.GenerateMessageID instead.
69
72
  func GenerateMessageID() types.MessageID {
70
- return "3EB0" + strings.ToUpper(hex.EncodeToString(random.Bytes(8)))
73
+ return WebMessageIDPrefix + strings.ToUpper(hex.EncodeToString(random.Bytes(8)))
71
74
  }
72
75
 
73
76
  type MessageDebugTimings struct {
@@ -114,6 +117,10 @@ type SendResponse struct {
114
117
 
115
118
  // Message handling duration, used for debugging
116
119
  DebugTimings MessageDebugTimings
120
+
121
+ // The identity the message was sent with (LID or PN)
122
+ // This is currently not reliable in all cases.
123
+ Sender types.JID
117
124
  }
118
125
 
119
126
  // SendRequestExtra contains the optional parameters for SendMessage.
@@ -140,6 +147,8 @@ type SendRequestExtra struct {
140
147
  Timeout time.Duration
141
148
  // When sending media to newsletters, the Handle field returned by the file upload.
142
149
  MediaHandle string
150
+
151
+ Meta *types.MsgMetaInfo
143
152
  }
144
153
 
145
154
  // SendMessage sends the given message.
@@ -215,19 +224,21 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E
215
224
  }
216
225
 
217
226
  isBotMode := isInlineBotMode || to.IsBot()
218
- var botNode *waBinary.Node
227
+ needsMessageSecret := isBotMode || cli.shouldIncludeReportingToken(message)
228
+ var extraParams nodeExtraParams
219
229
 
220
- if isBotMode {
230
+ if needsMessageSecret {
221
231
  if message.MessageContextInfo == nil {
222
232
  message.MessageContextInfo = &waE2E.MessageContextInfo{}
223
233
  }
224
-
225
234
  if message.MessageContextInfo.MessageSecret == nil {
226
235
  message.MessageContextInfo.MessageSecret = random.Bytes(32)
227
236
  }
237
+ }
228
238
 
239
+ if isBotMode {
229
240
  if message.MessageContextInfo.BotMetadata == nil {
230
- message.MessageContextInfo.BotMetadata = &waE2E.BotMetadata{
241
+ message.MessageContextInfo.BotMetadata = &waBotMetadata.BotMetadata{
231
242
  PersonaID: proto.String("867051314767696$760019659443059"),
232
243
  }
233
244
  }
@@ -261,8 +272,8 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E
261
272
  return
262
273
  }
263
274
 
264
- participantNodes, _ := cli.encryptMessageForDevices(ctx, []types.JID{req.InlineBotJID}, ownID, resp.ID, messagePlaintext, nil, waBinary.Attrs{})
265
- botNode = &waBinary.Node{
275
+ participantNodes, _ := cli.encryptMessageForDevices(ctx, []types.JID{req.InlineBotJID}, resp.ID, messagePlaintext, nil, waBinary.Attrs{})
276
+ extraParams.botNode = &waBinary.Node{
266
277
  Tag: "bot",
267
278
  Attrs: nil,
268
279
  Content: participantNodes,
@@ -270,6 +281,53 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E
270
281
  }
271
282
  }
272
283
 
284
+ var groupParticipants []types.JID
285
+ if to.Server == types.GroupServer || to.Server == types.BroadcastServer {
286
+ start := time.Now()
287
+ if to.Server == types.GroupServer {
288
+ var cachedData *groupMetaCache
289
+ cachedData, err = cli.getCachedGroupData(ctx, to)
290
+ if err != nil {
291
+ err = fmt.Errorf("failed to get group members: %w", err)
292
+ return
293
+ }
294
+ groupParticipants = cachedData.Members
295
+ // TODO this is fairly hacky, is there a proper way to determine which identity the message is sent with?
296
+ if cachedData.AddressingMode == types.AddressingModeLID {
297
+ ownID = cli.getOwnLID()
298
+ extraParams.addressingMode = types.AddressingModeLID
299
+ } else if cachedData.CommunityAnnouncementGroup && req.Meta != nil {
300
+ ownID = cli.getOwnLID()
301
+ // Why is this set to PN?
302
+ extraParams.addressingMode = types.AddressingModePN
303
+ }
304
+ } else {
305
+ groupParticipants, err = cli.getBroadcastListParticipants(ctx, to)
306
+ if err != nil {
307
+ err = fmt.Errorf("failed to get broadcast list members: %w", err)
308
+ return
309
+ }
310
+ }
311
+ resp.DebugTimings.GetParticipants = time.Since(start)
312
+ } else if to.Server == types.HiddenUserServer {
313
+ ownID = cli.getOwnLID()
314
+ }
315
+ if req.Meta != nil {
316
+ extraParams.metaNode = &waBinary.Node{
317
+ Tag: "meta",
318
+ Attrs: waBinary.Attrs{},
319
+ }
320
+ if req.Meta.DeprecatedLIDSession != nil {
321
+ extraParams.metaNode.Attrs["deprecated_lid_session"] = *req.Meta.DeprecatedLIDSession
322
+ }
323
+ if req.Meta.ThreadMessageID != "" {
324
+ extraParams.metaNode.Attrs["thread_msg_id"] = req.Meta.ThreadMessageID
325
+ extraParams.metaNode.Attrs["thread_msg_sender_jid"] = req.Meta.ThreadMessageSenderJID
326
+ }
327
+ }
328
+
329
+ resp.Sender = ownID
330
+
273
331
  start := time.Now()
274
332
  // Sending multiple messages at a time can cause weird issues and makes it harder to retry safely
275
333
  cli.messageSendLock.Lock()
@@ -283,7 +341,7 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E
283
341
  }
284
342
 
285
343
  if message.GetMessageContextInfo().GetMessageSecret() != nil {
286
- err = cli.Store.MsgSecrets.PutMessageSecret(to, ownID, req.ID, message.GetMessageContextInfo().GetMessageSecret())
344
+ err = cli.Store.MsgSecrets.PutMessageSecret(ctx, to, ownID, req.ID, message.GetMessageContextInfo().GetMessageSecret())
287
345
  if err != nil {
288
346
  cli.Log.Warnf("Failed to store message secret key for outgoing message %s: %v", req.ID, err)
289
347
  } else {
@@ -294,12 +352,12 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E
294
352
  var data []byte
295
353
  switch to.Server {
296
354
  case types.GroupServer, types.BroadcastServer:
297
- phash, data, err = cli.sendGroup(ctx, to, ownID, req.ID, message, &resp.DebugTimings, botNode)
298
- case types.DefaultUserServer:
355
+ phash, data, err = cli.sendGroup(ctx, ownID, to, groupParticipants, req.ID, message, &resp.DebugTimings, extraParams)
356
+ case types.DefaultUserServer, types.BotServer, types.HiddenUserServer:
299
357
  if req.Peer {
300
- data, err = cli.sendPeerMessage(to, req.ID, message, &resp.DebugTimings)
358
+ data, err = cli.sendPeerMessage(ctx, to, req.ID, message, &resp.DebugTimings)
301
359
  } else {
302
- data, err = cli.sendDM(ctx, to, ownID, req.ID, message, &resp.DebugTimings, botNode)
360
+ data, err = cli.sendDM(ctx, ownID, to, req.ID, message, &resp.DebugTimings, extraParams)
303
361
  }
304
362
  case types.NewsletterServer:
305
363
  data, err = cli.sendNewsletter(to, req.ID, message, req.MediaHandle, &resp.DebugTimings)
@@ -348,9 +406,9 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E
348
406
  if len(expectedPHash) > 0 && phash != expectedPHash {
349
407
  cli.Log.Warnf("Server returned different participant list hash when sending to %s. Some devices may not have received the message.", to)
350
408
  // TODO also invalidate device list caches
351
- cli.groupParticipantsCacheLock.Lock()
352
- delete(cli.groupParticipantsCache, to)
353
- cli.groupParticipantsCacheLock.Unlock()
409
+ cli.groupCacheLock.Lock()
410
+ delete(cli.groupCache, to)
411
+ cli.groupCacheLock.Unlock()
354
412
  }
355
413
  return
356
414
  }
@@ -373,9 +431,9 @@ func (cli *Client) BuildMessageKey(chat, sender types.JID, id types.MessageID) *
373
431
  ID: proto.String(id),
374
432
  RemoteJID: proto.String(chat.String()),
375
433
  }
376
- if !sender.IsEmpty() && sender.User != cli.getOwnID().User {
434
+ if !sender.IsEmpty() && sender.User != cli.getOwnID().User && sender.User != cli.getOwnLID().User {
377
435
  key.FromMe = proto.Bool(false)
378
- if chat.Server != types.DefaultUserServer && chat.Server != types.MessengerServer {
436
+ if chat.Server != types.DefaultUserServer && chat.Server != types.HiddenUserServer && chat.Server != types.MessengerServer {
379
437
  key.Participant = proto.String(sender.ToNonAD().String())
380
438
  }
381
439
  }
@@ -521,13 +579,14 @@ func ParseDisappearingTimerString(val string) (time.Duration, bool) {
521
579
  // and in groups the server will just reject the change. You can use the DisappearingTimer<Duration> constants for convenience.
522
580
  //
523
581
  // In groups, the server will echo the change as a notification, so it'll show up as a *events.GroupInfo update.
524
- func (cli *Client) SetDisappearingTimer(chat types.JID, timer time.Duration) (err error) {
582
+ func (cli *Client) SetDisappearingTimer(chat types.JID, timer time.Duration, settingTS time.Time) (err error) {
525
583
  switch chat.Server {
526
- case types.DefaultUserServer:
584
+ case types.DefaultUserServer, types.HiddenUserServer:
527
585
  _, err = cli.SendMessage(context.TODO(), chat, &waE2E.Message{
528
586
  ProtocolMessage: &waE2E.ProtocolMessage{
529
- Type: waE2E.ProtocolMessage_EPHEMERAL_SETTING.Enum(),
530
- EphemeralExpiration: proto.Uint32(uint32(timer.Seconds())),
587
+ Type: waE2E.ProtocolMessage_EPHEMERAL_SETTING.Enum(),
588
+ EphemeralExpiration: proto.Uint32(uint32(timer.Seconds())),
589
+ EphemeralSettingTimestamp: proto.Int64(settingTS.Unix()),
531
590
  },
532
591
  })
533
592
  case types.GroupServer:
@@ -561,7 +620,13 @@ func participantListHashV2(participants []types.JID) string {
561
620
  return fmt.Sprintf("2:%s", base64.RawStdEncoding.EncodeToString(hash[:6]))
562
621
  }
563
622
 
564
- func (cli *Client) sendNewsletter(to types.JID, id types.MessageID, message *waE2E.Message, mediaID string, timings *MessageDebugTimings) ([]byte, error) {
623
+ func (cli *Client) sendNewsletter(
624
+ to types.JID,
625
+ id types.MessageID,
626
+ message *waE2E.Message,
627
+ mediaID string,
628
+ timings *MessageDebugTimings,
629
+ ) ([]byte, error) {
565
630
  attrs := waBinary.Attrs{
566
631
  "to": to,
567
632
  "id": id,
@@ -588,8 +653,10 @@ func (cli *Client) sendNewsletter(to types.JID, id types.MessageID, message *waE
588
653
  Content: plaintext,
589
654
  Attrs: waBinary.Attrs{},
590
655
  }
591
- if mediaType := getMediaTypeFromMessage(message); mediaType != "" {
592
- plaintextNode.Attrs["mediatype"] = mediaType
656
+ if message != nil {
657
+ if mediaType := getMediaTypeFromMessage(message); mediaType != "" {
658
+ plaintextNode.Attrs["mediatype"] = mediaType
659
+ }
593
660
  }
594
661
  node := waBinary.Node{
595
662
  Tag: "message",
@@ -605,24 +672,23 @@ func (cli *Client) sendNewsletter(to types.JID, id types.MessageID, message *waE
605
672
  return data, nil
606
673
  }
607
674
 
608
- func (cli *Client) sendGroup(ctx context.Context, to, ownID types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings, botNode *waBinary.Node) (string, []byte, error) {
609
- var participants []types.JID
610
- var err error
675
+ type nodeExtraParams struct {
676
+ botNode *waBinary.Node
677
+ metaNode *waBinary.Node
678
+ addressingMode types.AddressingMode
679
+ }
680
+
681
+ func (cli *Client) sendGroup(
682
+ ctx context.Context,
683
+ ownID,
684
+ to types.JID,
685
+ participants []types.JID,
686
+ id types.MessageID,
687
+ message *waE2E.Message,
688
+ timings *MessageDebugTimings,
689
+ extraParams nodeExtraParams,
690
+ ) (string, []byte, error) {
611
691
  start := time.Now()
612
- if to.Server == types.GroupServer {
613
- participants, err = cli.getGroupMembers(ctx, to)
614
- if err != nil {
615
- return "", nil, fmt.Errorf("failed to get group members: %w", err)
616
- }
617
- } else {
618
- // TODO use context
619
- participants, err = cli.getBroadcastListParticipants(to)
620
- if err != nil {
621
- return "", nil, fmt.Errorf("failed to get broadcast list members: %w", err)
622
- }
623
- }
624
- timings.GetParticipants = time.Since(start)
625
- start = time.Now()
626
692
  plaintext, _, err := marshalMessage(to, message)
627
693
  timings.Marshal = time.Since(start)
628
694
  if err != nil {
@@ -631,8 +697,8 @@ func (cli *Client) sendGroup(ctx context.Context, to, ownID types.JID, id types.
631
697
 
632
698
  start = time.Now()
633
699
  builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer)
634
- senderKeyName := protocol.NewSenderKeyName(to.String(), ownID.SignalAddress())
635
- signalSKDMessage, err := builder.Create(senderKeyName)
700
+ senderKeyName := protocol.NewSenderKeyName(to.String(), cli.getOwnLID().SignalAddress())
701
+ signalSKDMessage, err := builder.Create(ctx, senderKeyName)
636
702
  if err != nil {
637
703
  return "", nil, fmt.Errorf("failed to create sender key distribution message to send %s to %s: %w", id, to, err)
638
704
  }
@@ -648,14 +714,16 @@ func (cli *Client) sendGroup(ctx context.Context, to, ownID types.JID, id types.
648
714
  }
649
715
 
650
716
  cipher := groups.NewGroupCipher(builder, senderKeyName, cli.Store)
651
- encrypted, err := cipher.Encrypt(padMessage(plaintext))
717
+ encrypted, err := cipher.Encrypt(ctx, padMessage(plaintext))
652
718
  if err != nil {
653
719
  return "", nil, fmt.Errorf("failed to encrypt group message to send %s to %s: %w", id, to, err)
654
720
  }
655
721
  ciphertext := encrypted.SignedSerialize()
656
722
  timings.GroupEncrypt = time.Since(start)
657
723
 
658
- node, allDevices, err := cli.prepareMessageNode(ctx, to, ownID, id, message, participants, skdPlaintext, nil, timings, botNode)
724
+ node, allDevices, err := cli.prepareMessageNode(
725
+ ctx, to, id, message, participants, skdPlaintext, nil, timings, extraParams,
726
+ )
659
727
  if err != nil {
660
728
  return "", nil, err
661
729
  }
@@ -671,6 +739,9 @@ func (cli *Client) sendGroup(ctx context.Context, to, ownID types.JID, id types.
671
739
  skMsg.Attrs["mediatype"] = mediaType
672
740
  }
673
741
  node.Content = append(node.GetChildren(), skMsg)
742
+ if cli.shouldIncludeReportingToken(message) && message.GetMessageContextInfo().GetMessageSecret() != nil {
743
+ node.Content = append(node.GetChildren(), cli.getMessageReportingToken(plaintext, message, ownID, to, id))
744
+ }
674
745
 
675
746
  start = time.Now()
676
747
  data, err := cli.sendNodeAndGetData(*node)
@@ -681,8 +752,14 @@ func (cli *Client) sendGroup(ctx context.Context, to, ownID types.JID, id types.
681
752
  return phash, data, nil
682
753
  }
683
754
 
684
- func (cli *Client) sendPeerMessage(to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) ([]byte, error) {
685
- node, err := cli.preparePeerMessageNode(to, id, message, timings)
755
+ func (cli *Client) sendPeerMessage(
756
+ ctx context.Context,
757
+ to types.JID,
758
+ id types.MessageID,
759
+ message *waE2E.Message,
760
+ timings *MessageDebugTimings,
761
+ ) ([]byte, error) {
762
+ node, err := cli.preparePeerMessageNode(ctx, to, id, message, timings)
686
763
  if err != nil {
687
764
  return nil, err
688
765
  }
@@ -695,7 +772,15 @@ func (cli *Client) sendPeerMessage(to types.JID, id types.MessageID, message *wa
695
772
  return data, nil
696
773
  }
697
774
 
698
- func (cli *Client) sendDM(ctx context.Context, to, ownID types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings, botNode *waBinary.Node) ([]byte, error) {
775
+ func (cli *Client) sendDM(
776
+ ctx context.Context,
777
+ ownID,
778
+ to types.JID,
779
+ id types.MessageID,
780
+ message *waE2E.Message,
781
+ timings *MessageDebugTimings,
782
+ extraParams nodeExtraParams,
783
+ ) ([]byte, error) {
699
784
  start := time.Now()
700
785
  messagePlaintext, deviceSentMessagePlaintext, err := marshalMessage(to, message)
701
786
  timings.Marshal = time.Since(start)
@@ -703,10 +788,27 @@ func (cli *Client) sendDM(ctx context.Context, to, ownID types.JID, id types.Mes
703
788
  return nil, err
704
789
  }
705
790
 
706
- node, _, err := cli.prepareMessageNode(ctx, to, ownID, id, message, []types.JID{to, ownID.ToNonAD()}, messagePlaintext, deviceSentMessagePlaintext, timings, botNode)
791
+ node, _, err := cli.prepareMessageNode(
792
+ ctx, to, id, message, []types.JID{to, ownID.ToNonAD()},
793
+ messagePlaintext, deviceSentMessagePlaintext, timings, extraParams,
794
+ )
707
795
  if err != nil {
708
796
  return nil, err
709
797
  }
798
+
799
+ if cli.shouldIncludeReportingToken(message) && message.GetMessageContextInfo().GetMessageSecret() != nil {
800
+ node.Content = append(node.GetChildren(), cli.getMessageReportingToken(messagePlaintext, message, ownID, to, id))
801
+ }
802
+
803
+ if tcToken, err := cli.Store.PrivacyTokens.GetPrivacyToken(ctx, to); err != nil {
804
+ cli.Log.Warnf("Failed to get privacy token for %s: %v", to, err)
805
+ } else if tcToken != nil {
806
+ node.Content = append(node.GetChildren(), waBinary.Node{
807
+ Tag: "tctoken",
808
+ Content: tcToken.Token,
809
+ })
810
+ }
811
+
710
812
  start = time.Now()
711
813
  data, err := cli.sendNodeAndGetData(*node)
712
814
  timings.Send = time.Since(start)
@@ -730,7 +832,7 @@ func getTypeFromMessage(msg *waE2E.Message) string {
730
832
  return getTypeFromMessage(msg.EphemeralMessage.Message)
731
833
  case msg.DocumentWithCaptionMessage != nil:
732
834
  return getTypeFromMessage(msg.DocumentWithCaptionMessage.Message)
733
- case msg.ReactionMessage != nil:
835
+ case msg.ReactionMessage != nil, msg.EncReactionMessage != nil:
734
836
  return "reaction"
735
837
  case msg.PollCreationMessage != nil, msg.PollUpdateMessage != nil:
736
838
  return "poll"
@@ -868,7 +970,13 @@ func getEditAttribute(msg *waE2E.Message) types.EditAttribute {
868
970
  return types.EditAttributeEmpty
869
971
  }
870
972
 
871
- func (cli *Client) preparePeerMessageNode(to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) (*waBinary.Node, error) {
973
+ func (cli *Client) preparePeerMessageNode(
974
+ ctx context.Context,
975
+ to types.JID,
976
+ id types.MessageID,
977
+ message *waE2E.Message,
978
+ timings *MessageDebugTimings,
979
+ ) (*waBinary.Node, error) {
872
980
  attrs := waBinary.Attrs{
873
981
  "id": id,
874
982
  "type": "text",
@@ -885,8 +993,15 @@ func (cli *Client) preparePeerMessageNode(to types.JID, id types.MessageID, mess
885
993
  err = fmt.Errorf("failed to marshal message: %w", err)
886
994
  return nil, err
887
995
  }
996
+ encryptionIdentity := to
997
+ if to.Server == types.DefaultUserServer {
998
+ encryptionIdentity, err = cli.Store.LIDs.GetLIDForPN(ctx, to)
999
+ if err != nil {
1000
+ return nil, fmt.Errorf("failed to get LID for PN %s: %w", to, err)
1001
+ }
1002
+ }
888
1003
  start = time.Now()
889
- encrypted, isPreKey, err := cli.encryptMessageForDevice(plaintext, to, nil, nil)
1004
+ encrypted, isPreKey, err := cli.encryptMessageForDevice(ctx, plaintext, encryptionIdentity, nil, nil)
890
1005
  timings.PeerEncrypt = time.Since(start)
891
1006
  if err != nil {
892
1007
  return nil, fmt.Errorf("failed to encrypt peer message for %s: %v", to, err)
@@ -902,7 +1017,13 @@ func (cli *Client) preparePeerMessageNode(to types.JID, id types.MessageID, mess
902
1017
  }, nil
903
1018
  }
904
1019
 
905
- func (cli *Client) getMessageContent(baseNode waBinary.Node, message *waE2E.Message, msgAttrs waBinary.Attrs, includeIdentity bool, botNode *waBinary.Node) []waBinary.Node {
1020
+ func (cli *Client) getMessageContent(
1021
+ baseNode waBinary.Node,
1022
+ message *waE2E.Message,
1023
+ msgAttrs waBinary.Attrs,
1024
+ includeIdentity bool,
1025
+ extraParams nodeExtraParams,
1026
+ ) []waBinary.Node {
906
1027
  content := []waBinary.Node{baseNode}
907
1028
  if includeIdentity {
908
1029
  content = append(content, cli.makeDeviceIdentityNode())
@@ -920,8 +1041,11 @@ func (cli *Client) getMessageContent(baseNode waBinary.Node, message *waE2E.Mess
920
1041
  })
921
1042
  }
922
1043
 
923
- if botNode != nil {
924
- content = append(content, *botNode)
1044
+ if extraParams.botNode != nil {
1045
+ content = append(content, *extraParams.botNode)
1046
+ }
1047
+ if extraParams.metaNode != nil {
1048
+ content = append(content, *extraParams.metaNode)
925
1049
  }
926
1050
 
927
1051
  if buttonType := getButtonTypeFromMessage(message); buttonType != "" {
@@ -936,7 +1060,16 @@ func (cli *Client) getMessageContent(baseNode waBinary.Node, message *waE2E.Mess
936
1060
  return content
937
1061
  }
938
1062
 
939
- func (cli *Client) prepareMessageNode(ctx context.Context, to, ownID types.JID, id types.MessageID, message *waE2E.Message, participants []types.JID, plaintext, dsmPlaintext []byte, timings *MessageDebugTimings, botNode *waBinary.Node) (*waBinary.Node, []types.JID, error) {
1063
+ func (cli *Client) prepareMessageNode(
1064
+ ctx context.Context,
1065
+ to types.JID,
1066
+ id types.MessageID,
1067
+ message *waE2E.Message,
1068
+ participants []types.JID,
1069
+ plaintext, dsmPlaintext []byte,
1070
+ timings *MessageDebugTimings,
1071
+ extraParams nodeExtraParams,
1072
+ ) (*waBinary.Node, []types.JID, error) {
940
1073
  start := time.Now()
941
1074
  allDevices, err := cli.GetUserDevicesContext(ctx, participants)
942
1075
  timings.GetDevices = time.Since(start)
@@ -955,6 +1088,10 @@ func (cli *Client) prepareMessageNode(ctx context.Context, to, ownID types.JID,
955
1088
  "type": msgType,
956
1089
  "to": to,
957
1090
  }
1091
+ // TODO this is a very hacky hack for announcement group messages, why is it pn anyway?
1092
+ if extraParams.addressingMode != "" {
1093
+ attrs["addressing_mode"] = string(extraParams.addressingMode)
1094
+ }
958
1095
  if editAttr := getEditAttribute(message); editAttr != "" {
959
1096
  attrs["edit"] = string(editAttr)
960
1097
  encAttrs["decrypt-fail"] = string(events.DecryptFailHide)
@@ -964,16 +1101,20 @@ func (cli *Client) prepareMessageNode(ctx context.Context, to, ownID types.JID,
964
1101
  }
965
1102
 
966
1103
  start = time.Now()
967
- participantNodes, includeIdentity := cli.encryptMessageForDevices(ctx, allDevices, ownID, id, plaintext, dsmPlaintext, encAttrs)
1104
+ participantNodes, includeIdentity := cli.encryptMessageForDevices(
1105
+ ctx, allDevices, id, plaintext, dsmPlaintext, encAttrs,
1106
+ )
968
1107
  timings.PeerEncrypt = time.Since(start)
969
1108
  participantNode := waBinary.Node{
970
1109
  Tag: "participants",
971
1110
  Content: participantNodes,
972
1111
  }
973
1112
  return &waBinary.Node{
974
- Tag: "message",
975
- Attrs: attrs,
976
- Content: cli.getMessageContent(participantNode, message, attrs, includeIdentity, botNode),
1113
+ Tag: "message",
1114
+ Attrs: attrs,
1115
+ Content: cli.getMessageContent(
1116
+ participantNode, message, attrs, includeIdentity, extraParams,
1117
+ ),
977
1118
  }, allDevices, nil
978
1119
  }
979
1120
 
@@ -993,6 +1134,7 @@ func marshalMessage(to types.JID, message *waE2E.Message) (plaintext, dsmPlainte
993
1134
  DestinationJID: proto.String(to.String()),
994
1135
  Message: message,
995
1136
  },
1137
+ MessageContextInfo: message.MessageContextInfo,
996
1138
  })
997
1139
  if err != nil {
998
1140
  err = fmt.Errorf("failed to marshal message (for own devices): %w", err)
@@ -1014,23 +1156,46 @@ func (cli *Client) makeDeviceIdentityNode() waBinary.Node {
1014
1156
  }
1015
1157
  }
1016
1158
 
1017
- func (cli *Client) encryptMessageForDevices(ctx context.Context, allDevices []types.JID, ownID types.JID, id string, msgPlaintext, dsmPlaintext []byte, encAttrs waBinary.Attrs) ([]waBinary.Node, bool) {
1159
+ func (cli *Client) encryptMessageForDevices(
1160
+ ctx context.Context,
1161
+ allDevices []types.JID,
1162
+ id string,
1163
+ msgPlaintext, dsmPlaintext []byte,
1164
+ encAttrs waBinary.Attrs,
1165
+ ) ([]waBinary.Node, bool) {
1166
+ ownJID := cli.getOwnID()
1167
+ ownLID := cli.getOwnLID()
1018
1168
  includeIdentity := false
1019
1169
  participantNodes := make([]waBinary.Node, 0, len(allDevices))
1020
- var retryDevices []types.JID
1170
+ var retryDevices, retryEncryptionIdentities []types.JID
1021
1171
  for _, jid := range allDevices {
1022
1172
  plaintext := msgPlaintext
1023
- if jid.User == ownID.User && dsmPlaintext != nil {
1024
- if jid == ownID {
1173
+ if (jid.User == ownJID.User || jid.User == ownLID.User) && dsmPlaintext != nil {
1174
+ if jid == ownJID || jid == ownLID {
1025
1175
  continue
1026
1176
  }
1027
1177
  plaintext = dsmPlaintext
1028
1178
  }
1029
- encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(plaintext, jid, nil, encAttrs)
1179
+ encryptionIdentity := jid
1180
+ if jid.Server == types.DefaultUserServer {
1181
+ lidForPN, err := cli.Store.LIDs.GetLIDForPN(ctx, jid)
1182
+ if err != nil {
1183
+ cli.Log.Warnf("Failed to get LID for %s: %v", jid, err)
1184
+ } else if !lidForPN.IsEmpty() {
1185
+ cli.migrateSessionStore(ctx, jid, lidForPN)
1186
+ encryptionIdentity = lidForPN
1187
+ }
1188
+ }
1189
+
1190
+ encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(
1191
+ ctx, plaintext, jid, encryptionIdentity, nil, encAttrs,
1192
+ )
1030
1193
  if errors.Is(err, ErrNoSession) {
1031
1194
  retryDevices = append(retryDevices, jid)
1195
+ retryEncryptionIdentities = append(retryEncryptionIdentities, encryptionIdentity)
1032
1196
  continue
1033
1197
  } else if err != nil {
1198
+ // TODO return these errors if it's a fatal one (like context cancellation or database)
1034
1199
  cli.Log.Warnf("Failed to encrypt %s for %s: %v", id, jid, err)
1035
1200
  continue
1036
1201
  }
@@ -1045,18 +1210,21 @@ func (cli *Client) encryptMessageForDevices(ctx context.Context, allDevices []ty
1045
1210
  if err != nil {
1046
1211
  cli.Log.Warnf("Failed to fetch prekeys for %v to retry encryption: %v", retryDevices, err)
1047
1212
  } else {
1048
- for _, jid := range retryDevices {
1213
+ for i, jid := range retryDevices {
1049
1214
  resp := bundles[jid]
1050
1215
  if resp.err != nil {
1051
1216
  cli.Log.Warnf("Failed to fetch prekey for %s: %v", jid, resp.err)
1052
1217
  continue
1053
1218
  }
1054
1219
  plaintext := msgPlaintext
1055
- if jid.User == ownID.User && dsmPlaintext != nil {
1220
+ if (jid.User == ownJID.User || jid.User == ownLID.User) && dsmPlaintext != nil {
1056
1221
  plaintext = dsmPlaintext
1057
1222
  }
1058
- encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(plaintext, jid, resp.bundle, encAttrs)
1223
+ encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(
1224
+ ctx, plaintext, jid, retryEncryptionIdentities[i], resp.bundle, encAttrs,
1225
+ )
1059
1226
  if err != nil {
1227
+ // TODO return these errors if it's a fatal one (like context cancellation or database)
1060
1228
  cli.Log.Warnf("Failed to encrypt %s for %s (retry): %v", id, jid, err)
1061
1229
  continue
1062
1230
  }
@@ -1070,14 +1238,23 @@ func (cli *Client) encryptMessageForDevices(ctx context.Context, allDevices []ty
1070
1238
  return participantNodes, includeIdentity
1071
1239
  }
1072
1240
 
1073
- func (cli *Client) encryptMessageForDeviceAndWrap(plaintext []byte, to types.JID, bundle *prekey.Bundle, encAttrs waBinary.Attrs) (*waBinary.Node, bool, error) {
1074
- node, includeDeviceIdentity, err := cli.encryptMessageForDevice(plaintext, to, bundle, encAttrs)
1241
+ func (cli *Client) encryptMessageForDeviceAndWrap(
1242
+ ctx context.Context,
1243
+ plaintext []byte,
1244
+ wireIdentity,
1245
+ encryptionIdentity types.JID,
1246
+ bundle *prekey.Bundle,
1247
+ encAttrs waBinary.Attrs,
1248
+ ) (*waBinary.Node, bool, error) {
1249
+ node, includeDeviceIdentity, err := cli.encryptMessageForDevice(
1250
+ ctx, plaintext, encryptionIdentity, bundle, encAttrs,
1251
+ )
1075
1252
  if err != nil {
1076
1253
  return nil, false, err
1077
1254
  }
1078
1255
  return &waBinary.Node{
1079
1256
  Tag: "to",
1080
- Attrs: waBinary.Attrs{"jid": to},
1257
+ Attrs: waBinary.Attrs{"jid": wireIdentity},
1081
1258
  Content: []waBinary.Node{*node},
1082
1259
  }, includeDeviceIdentity, nil
1083
1260
  }
@@ -1088,24 +1265,35 @@ func copyAttrs(from, to waBinary.Attrs) {
1088
1265
  }
1089
1266
  }
1090
1267
 
1091
- func (cli *Client) encryptMessageForDevice(plaintext []byte, to types.JID, bundle *prekey.Bundle, extraAttrs waBinary.Attrs) (*waBinary.Node, bool, error) {
1268
+ func (cli *Client) encryptMessageForDevice(
1269
+ ctx context.Context,
1270
+ plaintext []byte,
1271
+ to types.JID,
1272
+ bundle *prekey.Bundle,
1273
+ extraAttrs waBinary.Attrs,
1274
+ ) (*waBinary.Node, bool, error) {
1092
1275
  builder := session.NewBuilderFromSignal(cli.Store, to.SignalAddress(), pbSerializer)
1093
1276
  if bundle != nil {
1094
1277
  cli.Log.Debugf("Processing prekey bundle for %s", to)
1095
- err := builder.ProcessBundle(bundle)
1278
+ err := builder.ProcessBundle(ctx, bundle)
1096
1279
  if cli.AutoTrustIdentity && errors.Is(err, signalerror.ErrUntrustedIdentity) {
1097
1280
  cli.Log.Warnf("Got %v error while trying to process prekey bundle for %s, clearing stored identity and retrying", err, to)
1098
- cli.clearUntrustedIdentity(to)
1099
- err = builder.ProcessBundle(bundle)
1281
+ err = cli.clearUntrustedIdentity(ctx, to)
1282
+ if err != nil {
1283
+ return nil, false, fmt.Errorf("failed to clear untrusted identity: %w", err)
1284
+ }
1285
+ err = builder.ProcessBundle(ctx, bundle)
1100
1286
  }
1101
1287
  if err != nil {
1102
1288
  return nil, false, fmt.Errorf("failed to process prekey bundle: %w", err)
1103
1289
  }
1104
- } else if !cli.Store.ContainsSession(to.SignalAddress()) {
1105
- return nil, false, ErrNoSession
1290
+ } else if contains, err := cli.Store.ContainsSession(ctx, to.SignalAddress()); err != nil {
1291
+ return nil, false, err
1292
+ } else if !contains {
1293
+ return nil, false, fmt.Errorf("%w with %s", ErrNoSession, to.SignalAddress().String())
1106
1294
  }
1107
1295
  cipher := session.NewCipher(builder, to.SignalAddress())
1108
- ciphertext, err := cipher.Encrypt(padMessage(plaintext))
1296
+ ciphertext, err := cipher.Encrypt(ctx, padMessage(plaintext))
1109
1297
  if err != nil {
1110
1298
  return nil, false, fmt.Errorf("cipher encryption failed: %w", err)
1111
1299
  }