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
@@ -0,0 +1,709 @@
1
+ // Copyright 2013 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // Package transform provides reader and writer wrappers that transform the
6
+ // bytes passing through as well as various transformations. Example
7
+ // transformations provided by other packages include normalization and
8
+ // conversion between character sets.
9
+ package transform // import "golang.org/x/text/transform"
10
+
11
+ import (
12
+ "bytes"
13
+ "errors"
14
+ "io"
15
+ "unicode/utf8"
16
+ )
17
+
18
+ var (
19
+ // ErrShortDst means that the destination buffer was too short to
20
+ // receive all of the transformed bytes.
21
+ ErrShortDst = errors.New("transform: short destination buffer")
22
+
23
+ // ErrShortSrc means that the source buffer has insufficient data to
24
+ // complete the transformation.
25
+ ErrShortSrc = errors.New("transform: short source buffer")
26
+
27
+ // ErrEndOfSpan means that the input and output (the transformed input)
28
+ // are not identical.
29
+ ErrEndOfSpan = errors.New("transform: input and output are not identical")
30
+
31
+ // errInconsistentByteCount means that Transform returned success (nil
32
+ // error) but also returned nSrc inconsistent with the src argument.
33
+ errInconsistentByteCount = errors.New("transform: inconsistent byte count returned")
34
+
35
+ // errShortInternal means that an internal buffer is not large enough
36
+ // to make progress and the Transform operation must be aborted.
37
+ errShortInternal = errors.New("transform: short internal buffer")
38
+ )
39
+
40
+ // Transformer transforms bytes.
41
+ type Transformer interface {
42
+ // Transform writes to dst the transformed bytes read from src, and
43
+ // returns the number of dst bytes written and src bytes read. The
44
+ // atEOF argument tells whether src represents the last bytes of the
45
+ // input.
46
+ //
47
+ // Callers should always process the nDst bytes produced and account
48
+ // for the nSrc bytes consumed before considering the error err.
49
+ //
50
+ // A nil error means that all of the transformed bytes (whether freshly
51
+ // transformed from src or left over from previous Transform calls)
52
+ // were written to dst. A nil error can be returned regardless of
53
+ // whether atEOF is true. If err is nil then nSrc must equal len(src);
54
+ // the converse is not necessarily true.
55
+ //
56
+ // ErrShortDst means that dst was too short to receive all of the
57
+ // transformed bytes. ErrShortSrc means that src had insufficient data
58
+ // to complete the transformation. If both conditions apply, then
59
+ // either error may be returned. Other than the error conditions listed
60
+ // here, implementations are free to report other errors that arise.
61
+ Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)
62
+
63
+ // Reset resets the state and allows a Transformer to be reused.
64
+ Reset()
65
+ }
66
+
67
+ // SpanningTransformer extends the Transformer interface with a Span method
68
+ // that determines how much of the input already conforms to the Transformer.
69
+ type SpanningTransformer interface {
70
+ Transformer
71
+
72
+ // Span returns a position in src such that transforming src[:n] results in
73
+ // identical output src[:n] for these bytes. It does not necessarily return
74
+ // the largest such n. The atEOF argument tells whether src represents the
75
+ // last bytes of the input.
76
+ //
77
+ // Callers should always account for the n bytes consumed before
78
+ // considering the error err.
79
+ //
80
+ // A nil error means that all input bytes are known to be identical to the
81
+ // output produced by the Transformer. A nil error can be returned
82
+ // regardless of whether atEOF is true. If err is nil, then n must
83
+ // equal len(src); the converse is not necessarily true.
84
+ //
85
+ // ErrEndOfSpan means that the Transformer output may differ from the
86
+ // input after n bytes. Note that n may be len(src), meaning that the output
87
+ // would contain additional bytes after otherwise identical output.
88
+ // ErrShortSrc means that src had insufficient data to determine whether the
89
+ // remaining bytes would change. Other than the error conditions listed
90
+ // here, implementations are free to report other errors that arise.
91
+ //
92
+ // Calling Span can modify the Transformer state as a side effect. In
93
+ // effect, it does the transformation just as calling Transform would, only
94
+ // without copying to a destination buffer and only up to a point it can
95
+ // determine the input and output bytes are the same. This is obviously more
96
+ // limited than calling Transform, but can be more efficient in terms of
97
+ // copying and allocating buffers. Calls to Span and Transform may be
98
+ // interleaved.
99
+ Span(src []byte, atEOF bool) (n int, err error)
100
+ }
101
+
102
+ // NopResetter can be embedded by implementations of Transformer to add a nop
103
+ // Reset method.
104
+ type NopResetter struct{}
105
+
106
+ // Reset implements the Reset method of the Transformer interface.
107
+ func (NopResetter) Reset() {}
108
+
109
+ // Reader wraps another io.Reader by transforming the bytes read.
110
+ type Reader struct {
111
+ r io.Reader
112
+ t Transformer
113
+ err error
114
+
115
+ // dst[dst0:dst1] contains bytes that have been transformed by t but
116
+ // not yet copied out via Read.
117
+ dst []byte
118
+ dst0, dst1 int
119
+
120
+ // src[src0:src1] contains bytes that have been read from r but not
121
+ // yet transformed through t.
122
+ src []byte
123
+ src0, src1 int
124
+
125
+ // transformComplete is whether the transformation is complete,
126
+ // regardless of whether or not it was successful.
127
+ transformComplete bool
128
+ }
129
+
130
+ const defaultBufSize = 4096
131
+
132
+ // NewReader returns a new Reader that wraps r by transforming the bytes read
133
+ // via t. It calls Reset on t.
134
+ func NewReader(r io.Reader, t Transformer) *Reader {
135
+ t.Reset()
136
+ return &Reader{
137
+ r: r,
138
+ t: t,
139
+ dst: make([]byte, defaultBufSize),
140
+ src: make([]byte, defaultBufSize),
141
+ }
142
+ }
143
+
144
+ // Read implements the io.Reader interface.
145
+ func (r *Reader) Read(p []byte) (int, error) {
146
+ n, err := 0, error(nil)
147
+ for {
148
+ // Copy out any transformed bytes and return the final error if we are done.
149
+ if r.dst0 != r.dst1 {
150
+ n = copy(p, r.dst[r.dst0:r.dst1])
151
+ r.dst0 += n
152
+ if r.dst0 == r.dst1 && r.transformComplete {
153
+ return n, r.err
154
+ }
155
+ return n, nil
156
+ } else if r.transformComplete {
157
+ return 0, r.err
158
+ }
159
+
160
+ // Try to transform some source bytes, or to flush the transformer if we
161
+ // are out of source bytes. We do this even if r.r.Read returned an error.
162
+ // As the io.Reader documentation says, "process the n > 0 bytes returned
163
+ // before considering the error".
164
+ if r.src0 != r.src1 || r.err != nil {
165
+ r.dst0 = 0
166
+ r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)
167
+ r.src0 += n
168
+
169
+ switch {
170
+ case err == nil:
171
+ if r.src0 != r.src1 {
172
+ r.err = errInconsistentByteCount
173
+ }
174
+ // The Transform call was successful; we are complete if we
175
+ // cannot read more bytes into src.
176
+ r.transformComplete = r.err != nil
177
+ continue
178
+ case err == ErrShortDst && (r.dst1 != 0 || n != 0):
179
+ // Make room in dst by copying out, and try again.
180
+ continue
181
+ case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:
182
+ // Read more bytes into src via the code below, and try again.
183
+ default:
184
+ r.transformComplete = true
185
+ // The reader error (r.err) takes precedence over the
186
+ // transformer error (err) unless r.err is nil or io.EOF.
187
+ if r.err == nil || r.err == io.EOF {
188
+ r.err = err
189
+ }
190
+ continue
191
+ }
192
+ }
193
+
194
+ // Move any untransformed source bytes to the start of the buffer
195
+ // and read more bytes.
196
+ if r.src0 != 0 {
197
+ r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])
198
+ }
199
+ n, r.err = r.r.Read(r.src[r.src1:])
200
+ r.src1 += n
201
+ }
202
+ }
203
+
204
+ // TODO: implement ReadByte (and ReadRune??).
205
+
206
+ // Writer wraps another io.Writer by transforming the bytes read.
207
+ // The user needs to call Close to flush unwritten bytes that may
208
+ // be buffered.
209
+ type Writer struct {
210
+ w io.Writer
211
+ t Transformer
212
+ dst []byte
213
+
214
+ // src[:n] contains bytes that have not yet passed through t.
215
+ src []byte
216
+ n int
217
+ }
218
+
219
+ // NewWriter returns a new Writer that wraps w by transforming the bytes written
220
+ // via t. It calls Reset on t.
221
+ func NewWriter(w io.Writer, t Transformer) *Writer {
222
+ t.Reset()
223
+ return &Writer{
224
+ w: w,
225
+ t: t,
226
+ dst: make([]byte, defaultBufSize),
227
+ src: make([]byte, defaultBufSize),
228
+ }
229
+ }
230
+
231
+ // Write implements the io.Writer interface. If there are not enough
232
+ // bytes available to complete a Transform, the bytes will be buffered
233
+ // for the next write. Call Close to convert the remaining bytes.
234
+ func (w *Writer) Write(data []byte) (n int, err error) {
235
+ src := data
236
+ if w.n > 0 {
237
+ // Append bytes from data to the last remainder.
238
+ // TODO: limit the amount copied on first try.
239
+ n = copy(w.src[w.n:], data)
240
+ w.n += n
241
+ src = w.src[:w.n]
242
+ }
243
+ for {
244
+ nDst, nSrc, err := w.t.Transform(w.dst, src, false)
245
+ if _, werr := w.w.Write(w.dst[:nDst]); werr != nil {
246
+ return n, werr
247
+ }
248
+ src = src[nSrc:]
249
+ if w.n == 0 {
250
+ n += nSrc
251
+ } else if len(src) <= n {
252
+ // Enough bytes from w.src have been consumed. We make src point
253
+ // to data instead to reduce the copying.
254
+ w.n = 0
255
+ n -= len(src)
256
+ src = data[n:]
257
+ if n < len(data) && (err == nil || err == ErrShortSrc) {
258
+ continue
259
+ }
260
+ }
261
+ switch err {
262
+ case ErrShortDst:
263
+ // This error is okay as long as we are making progress.
264
+ if nDst > 0 || nSrc > 0 {
265
+ continue
266
+ }
267
+ case ErrShortSrc:
268
+ if len(src) < len(w.src) {
269
+ m := copy(w.src, src)
270
+ // If w.n > 0, bytes from data were already copied to w.src and n
271
+ // was already set to the number of bytes consumed.
272
+ if w.n == 0 {
273
+ n += m
274
+ }
275
+ w.n = m
276
+ err = nil
277
+ } else if nDst > 0 || nSrc > 0 {
278
+ // Not enough buffer to store the remainder. Keep processing as
279
+ // long as there is progress. Without this case, transforms that
280
+ // require a lookahead larger than the buffer may result in an
281
+ // error. This is not something one may expect to be common in
282
+ // practice, but it may occur when buffers are set to small
283
+ // sizes during testing.
284
+ continue
285
+ }
286
+ case nil:
287
+ if w.n > 0 {
288
+ err = errInconsistentByteCount
289
+ }
290
+ }
291
+ return n, err
292
+ }
293
+ }
294
+
295
+ // Close implements the io.Closer interface.
296
+ func (w *Writer) Close() error {
297
+ src := w.src[:w.n]
298
+ for {
299
+ nDst, nSrc, err := w.t.Transform(w.dst, src, true)
300
+ if _, werr := w.w.Write(w.dst[:nDst]); werr != nil {
301
+ return werr
302
+ }
303
+ if err != ErrShortDst {
304
+ return err
305
+ }
306
+ src = src[nSrc:]
307
+ }
308
+ }
309
+
310
+ type nop struct{ NopResetter }
311
+
312
+ func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
313
+ n := copy(dst, src)
314
+ if n < len(src) {
315
+ err = ErrShortDst
316
+ }
317
+ return n, n, err
318
+ }
319
+
320
+ func (nop) Span(src []byte, atEOF bool) (n int, err error) {
321
+ return len(src), nil
322
+ }
323
+
324
+ type discard struct{ NopResetter }
325
+
326
+ func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
327
+ return 0, len(src), nil
328
+ }
329
+
330
+ var (
331
+ // Discard is a Transformer for which all Transform calls succeed
332
+ // by consuming all bytes and writing nothing.
333
+ Discard Transformer = discard{}
334
+
335
+ // Nop is a SpanningTransformer that copies src to dst.
336
+ Nop SpanningTransformer = nop{}
337
+ )
338
+
339
+ // chain is a sequence of links. A chain with N Transformers has N+1 links and
340
+ // N+1 buffers. Of those N+1 buffers, the first and last are the src and dst
341
+ // buffers given to chain.Transform and the middle N-1 buffers are intermediate
342
+ // buffers owned by the chain. The i'th link transforms bytes from the i'th
343
+ // buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer
344
+ // chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).
345
+ type chain struct {
346
+ link []link
347
+ err error
348
+ // errStart is the index at which the error occurred plus 1. Processing
349
+ // errStart at this level at the next call to Transform. As long as
350
+ // errStart > 0, chain will not consume any more source bytes.
351
+ errStart int
352
+ }
353
+
354
+ func (c *chain) fatalError(errIndex int, err error) {
355
+ if i := errIndex + 1; i > c.errStart {
356
+ c.errStart = i
357
+ c.err = err
358
+ }
359
+ }
360
+
361
+ type link struct {
362
+ t Transformer
363
+ // b[p:n] holds the bytes to be transformed by t.
364
+ b []byte
365
+ p int
366
+ n int
367
+ }
368
+
369
+ func (l *link) src() []byte {
370
+ return l.b[l.p:l.n]
371
+ }
372
+
373
+ func (l *link) dst() []byte {
374
+ return l.b[l.n:]
375
+ }
376
+
377
+ // Chain returns a Transformer that applies t in sequence.
378
+ func Chain(t ...Transformer) Transformer {
379
+ if len(t) == 0 {
380
+ return nop{}
381
+ }
382
+ c := &chain{link: make([]link, len(t)+1)}
383
+ for i, tt := range t {
384
+ c.link[i].t = tt
385
+ }
386
+ // Allocate intermediate buffers.
387
+ b := make([][defaultBufSize]byte, len(t)-1)
388
+ for i := range b {
389
+ c.link[i+1].b = b[i][:]
390
+ }
391
+ return c
392
+ }
393
+
394
+ // Reset resets the state of Chain. It calls Reset on all the Transformers.
395
+ func (c *chain) Reset() {
396
+ for i, l := range c.link {
397
+ if l.t != nil {
398
+ l.t.Reset()
399
+ }
400
+ c.link[i].p, c.link[i].n = 0, 0
401
+ }
402
+ }
403
+
404
+ // TODO: make chain use Span (is going to be fun to implement!)
405
+
406
+ // Transform applies the transformers of c in sequence.
407
+ func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
408
+ // Set up src and dst in the chain.
409
+ srcL := &c.link[0]
410
+ dstL := &c.link[len(c.link)-1]
411
+ srcL.b, srcL.p, srcL.n = src, 0, len(src)
412
+ dstL.b, dstL.n = dst, 0
413
+ var lastFull, needProgress bool // for detecting progress
414
+
415
+ // i is the index of the next Transformer to apply, for i in [low, high].
416
+ // low is the lowest index for which c.link[low] may still produce bytes.
417
+ // high is the highest index for which c.link[high] has a Transformer.
418
+ // The error returned by Transform determines whether to increase or
419
+ // decrease i. We try to completely fill a buffer before converting it.
420
+ for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {
421
+ in, out := &c.link[i], &c.link[i+1]
422
+ nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)
423
+ out.n += nDst
424
+ in.p += nSrc
425
+ if i > 0 && in.p == in.n {
426
+ in.p, in.n = 0, 0
427
+ }
428
+ needProgress, lastFull = lastFull, false
429
+ switch err0 {
430
+ case ErrShortDst:
431
+ // Process the destination buffer next. Return if we are already
432
+ // at the high index.
433
+ if i == high {
434
+ return dstL.n, srcL.p, ErrShortDst
435
+ }
436
+ if out.n != 0 {
437
+ i++
438
+ // If the Transformer at the next index is not able to process any
439
+ // source bytes there is nothing that can be done to make progress
440
+ // and the bytes will remain unprocessed. lastFull is used to
441
+ // detect this and break out of the loop with a fatal error.
442
+ lastFull = true
443
+ continue
444
+ }
445
+ // The destination buffer was too small, but is completely empty.
446
+ // Return a fatal error as this transformation can never complete.
447
+ c.fatalError(i, errShortInternal)
448
+ case ErrShortSrc:
449
+ if i == 0 {
450
+ // Save ErrShortSrc in err. All other errors take precedence.
451
+ err = ErrShortSrc
452
+ break
453
+ }
454
+ // Source bytes were depleted before filling up the destination buffer.
455
+ // Verify we made some progress, move the remaining bytes to the errStart
456
+ // and try to get more source bytes.
457
+ if needProgress && nSrc == 0 || in.n-in.p == len(in.b) {
458
+ // There were not enough source bytes to proceed while the source
459
+ // buffer cannot hold any more bytes. Return a fatal error as this
460
+ // transformation can never complete.
461
+ c.fatalError(i, errShortInternal)
462
+ break
463
+ }
464
+ // in.b is an internal buffer and we can make progress.
465
+ in.p, in.n = 0, copy(in.b, in.src())
466
+ fallthrough
467
+ case nil:
468
+ // if i == low, we have depleted the bytes at index i or any lower levels.
469
+ // In that case we increase low and i. In all other cases we decrease i to
470
+ // fetch more bytes before proceeding to the next index.
471
+ if i > low {
472
+ i--
473
+ continue
474
+ }
475
+ default:
476
+ c.fatalError(i, err0)
477
+ }
478
+ // Exhausted level low or fatal error: increase low and continue
479
+ // to process the bytes accepted so far.
480
+ i++
481
+ low = i
482
+ }
483
+
484
+ // If c.errStart > 0, this means we found a fatal error. We will clear
485
+ // all upstream buffers. At this point, no more progress can be made
486
+ // downstream, as Transform would have bailed while handling ErrShortDst.
487
+ if c.errStart > 0 {
488
+ for i := 1; i < c.errStart; i++ {
489
+ c.link[i].p, c.link[i].n = 0, 0
490
+ }
491
+ err, c.errStart, c.err = c.err, 0, nil
492
+ }
493
+ return dstL.n, srcL.p, err
494
+ }
495
+
496
+ // Deprecated: Use runes.Remove instead.
497
+ func RemoveFunc(f func(r rune) bool) Transformer {
498
+ return removeF(f)
499
+ }
500
+
501
+ type removeF func(r rune) bool
502
+
503
+ func (removeF) Reset() {}
504
+
505
+ // Transform implements the Transformer interface.
506
+ func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
507
+ for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {
508
+
509
+ if r = rune(src[0]); r < utf8.RuneSelf {
510
+ sz = 1
511
+ } else {
512
+ r, sz = utf8.DecodeRune(src)
513
+
514
+ if sz == 1 {
515
+ // Invalid rune.
516
+ if !atEOF && !utf8.FullRune(src) {
517
+ err = ErrShortSrc
518
+ break
519
+ }
520
+ // We replace illegal bytes with RuneError. Not doing so might
521
+ // otherwise turn a sequence of invalid UTF-8 into valid UTF-8.
522
+ // The resulting byte sequence may subsequently contain runes
523
+ // for which t(r) is true that were passed unnoticed.
524
+ if !t(r) {
525
+ if nDst+3 > len(dst) {
526
+ err = ErrShortDst
527
+ break
528
+ }
529
+ nDst += copy(dst[nDst:], "\uFFFD")
530
+ }
531
+ nSrc++
532
+ continue
533
+ }
534
+ }
535
+
536
+ if !t(r) {
537
+ if nDst+sz > len(dst) {
538
+ err = ErrShortDst
539
+ break
540
+ }
541
+ nDst += copy(dst[nDst:], src[:sz])
542
+ }
543
+ nSrc += sz
544
+ }
545
+ return
546
+ }
547
+
548
+ // grow returns a new []byte that is longer than b, and copies the first n bytes
549
+ // of b to the start of the new slice.
550
+ func grow(b []byte, n int) []byte {
551
+ m := len(b)
552
+ if m <= 32 {
553
+ m = 64
554
+ } else if m <= 256 {
555
+ m *= 2
556
+ } else {
557
+ m += m >> 1
558
+ }
559
+ buf := make([]byte, m)
560
+ copy(buf, b[:n])
561
+ return buf
562
+ }
563
+
564
+ const initialBufSize = 128
565
+
566
+ // String returns a string with the result of converting s[:n] using t, where
567
+ // n <= len(s). If err == nil, n will be len(s). It calls Reset on t.
568
+ func String(t Transformer, s string) (result string, n int, err error) {
569
+ t.Reset()
570
+ if s == "" {
571
+ // Fast path for the common case for empty input. Results in about a
572
+ // 86% reduction of running time for BenchmarkStringLowerEmpty.
573
+ if _, _, err := t.Transform(nil, nil, true); err == nil {
574
+ return "", 0, nil
575
+ }
576
+ }
577
+
578
+ // Allocate only once. Note that both dst and src escape when passed to
579
+ // Transform.
580
+ buf := [2 * initialBufSize]byte{}
581
+ dst := buf[:initialBufSize:initialBufSize]
582
+ src := buf[initialBufSize : 2*initialBufSize]
583
+
584
+ // The input string s is transformed in multiple chunks (starting with a
585
+ // chunk size of initialBufSize). nDst and nSrc are per-chunk (or
586
+ // per-Transform-call) indexes, pDst and pSrc are overall indexes.
587
+ nDst, nSrc := 0, 0
588
+ pDst, pSrc := 0, 0
589
+
590
+ // pPrefix is the length of a common prefix: the first pPrefix bytes of the
591
+ // result will equal the first pPrefix bytes of s. It is not guaranteed to
592
+ // be the largest such value, but if pPrefix, len(result) and len(s) are
593
+ // all equal after the final transform (i.e. calling Transform with atEOF
594
+ // being true returned nil error) then we don't need to allocate a new
595
+ // result string.
596
+ pPrefix := 0
597
+ for {
598
+ // Invariant: pDst == pPrefix && pSrc == pPrefix.
599
+
600
+ n := copy(src, s[pSrc:])
601
+ nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))
602
+ pDst += nDst
603
+ pSrc += nSrc
604
+
605
+ // TODO: let transformers implement an optional Spanner interface, akin
606
+ // to norm's QuickSpan. This would even allow us to avoid any allocation.
607
+ if !bytes.Equal(dst[:nDst], src[:nSrc]) {
608
+ break
609
+ }
610
+ pPrefix = pSrc
611
+ if err == ErrShortDst {
612
+ // A buffer can only be short if a transformer modifies its input.
613
+ break
614
+ } else if err == ErrShortSrc {
615
+ if nSrc == 0 {
616
+ // No progress was made.
617
+ break
618
+ }
619
+ // Equal so far and !atEOF, so continue checking.
620
+ } else if err != nil || pPrefix == len(s) {
621
+ return string(s[:pPrefix]), pPrefix, err
622
+ }
623
+ }
624
+ // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.
625
+
626
+ // We have transformed the first pSrc bytes of the input s to become pDst
627
+ // transformed bytes. Those transformed bytes are discontiguous: the first
628
+ // pPrefix of them equal s[:pPrefix] and the last nDst of them equal
629
+ // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so
630
+ // that they become one contiguous slice: dst[:pDst].
631
+ if pPrefix != 0 {
632
+ newDst := dst
633
+ if pDst > len(newDst) {
634
+ newDst = make([]byte, len(s)+nDst-nSrc)
635
+ }
636
+ copy(newDst[pPrefix:pDst], dst[:nDst])
637
+ copy(newDst[:pPrefix], s[:pPrefix])
638
+ dst = newDst
639
+ }
640
+
641
+ // Prevent duplicate Transform calls with atEOF being true at the end of
642
+ // the input. Also return if we have an unrecoverable error.
643
+ if (err == nil && pSrc == len(s)) ||
644
+ (err != nil && err != ErrShortDst && err != ErrShortSrc) {
645
+ return string(dst[:pDst]), pSrc, err
646
+ }
647
+
648
+ // Transform the remaining input, growing dst and src buffers as necessary.
649
+ for {
650
+ n := copy(src, s[pSrc:])
651
+ atEOF := pSrc+n == len(s)
652
+ nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF)
653
+ pDst += nDst
654
+ pSrc += nSrc
655
+
656
+ // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can
657
+ // make progress. This may avoid excessive allocations.
658
+ if err == ErrShortDst {
659
+ if nDst == 0 {
660
+ dst = grow(dst, pDst)
661
+ }
662
+ } else if err == ErrShortSrc {
663
+ if atEOF {
664
+ return string(dst[:pDst]), pSrc, err
665
+ }
666
+ if nSrc == 0 {
667
+ src = grow(src, 0)
668
+ }
669
+ } else if err != nil || pSrc == len(s) {
670
+ return string(dst[:pDst]), pSrc, err
671
+ }
672
+ }
673
+ }
674
+
675
+ // Bytes returns a new byte slice with the result of converting b[:n] using t,
676
+ // where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.
677
+ func Bytes(t Transformer, b []byte) (result []byte, n int, err error) {
678
+ return doAppend(t, 0, make([]byte, len(b)), b)
679
+ }
680
+
681
+ // Append appends the result of converting src[:n] using t to dst, where
682
+ // n <= len(src), If err == nil, n will be len(src). It calls Reset on t.
683
+ func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {
684
+ if len(dst) == cap(dst) {
685
+ n := len(src) + len(dst) // It is okay for this to be 0.
686
+ b := make([]byte, n)
687
+ dst = b[:copy(b, dst)]
688
+ }
689
+ return doAppend(t, len(dst), dst[:cap(dst)], src)
690
+ }
691
+
692
+ func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {
693
+ t.Reset()
694
+ pSrc := 0
695
+ for {
696
+ nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)
697
+ pDst += nDst
698
+ pSrc += nSrc
699
+ if err != ErrShortDst {
700
+ return dst[:pDst], pSrc, err
701
+ }
702
+
703
+ // Grow the destination buffer, but do not grow as long as we can make
704
+ // progress. This may avoid excessive allocations.
705
+ if nDst == 0 {
706
+ dst = grow(dst, pDst)
707
+ }
708
+ }
709
+ }