slidge-whatsapp 0.2.5__cp312-cp312-manylinux_2_36_aarch64.whl → 0.2.6__cp312-cp312-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 (320) hide show
  1. slidge_whatsapp/config.py +3 -0
  2. slidge_whatsapp/event.go +23 -24
  3. slidge_whatsapp/gateway.go +13 -9
  4. slidge_whatsapp/gateway.py +2 -2
  5. slidge_whatsapp/generated/_whatsapp.cpython-312-aarch64-linux-gnu.h +169 -169
  6. slidge_whatsapp/generated/_whatsapp.cpython-312-aarch64-linux-gnu.so +0 -0
  7. slidge_whatsapp/generated/build.py +135 -135
  8. slidge_whatsapp/generated/whatsapp.c +1455 -1455
  9. slidge_whatsapp/generated/whatsapp.go +737 -737
  10. slidge_whatsapp/generated/whatsapp.py +1038 -1038
  11. slidge_whatsapp/generated/whatsapp_go.h +169 -169
  12. slidge_whatsapp/go.mod +15 -12
  13. slidge_whatsapp/go.sum +41 -29
  14. slidge_whatsapp/media/media.go +16 -10
  15. slidge_whatsapp/session.go +73 -66
  16. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn.go +4 -4
  17. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_darwin.go +0 -5
  18. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_libinit.go +3 -0
  19. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols.go +40 -20
  20. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/CHANGELOG.md +14 -1
  21. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/ffi.go +2 -2
  22. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/fun.go +10 -2
  23. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib.go +1 -1
  24. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_unix.go +1 -1
  25. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_windows.go +1 -1
  26. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/README.md +2 -7
  27. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/callback.go +2 -1
  28. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +8510 -5090
  29. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +344 -150
  30. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3.go +57 -23
  31. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.c +4 -0
  32. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.go +4 -0
  33. slidge_whatsapp/vendor/github.com/petermattis/goid/.gitignore +4 -0
  34. slidge_whatsapp/vendor/github.com/petermattis/goid/LICENSE +202 -0
  35. slidge_whatsapp/vendor/github.com/petermattis/goid/README.md +4 -0
  36. slidge_whatsapp/vendor/github.com/petermattis/goid/goid.go +35 -0
  37. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_gccgo.go +26 -0
  38. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.c +23 -0
  39. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.go +22 -0
  40. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.go +35 -0
  41. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.s +18 -0
  42. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.go +28 -0
  43. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.s +44 -0
  44. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_slow.go +24 -0
  45. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go +17 -0
  46. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.23.go +38 -0
  47. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.5.go +57 -0
  48. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.6.go +43 -0
  49. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.9.go +37 -0
  50. slidge_whatsapp/vendor/github.com/rs/zerolog/CONTRIBUTING.md +43 -0
  51. slidge_whatsapp/vendor/github.com/rs/zerolog/README.md +31 -0
  52. slidge_whatsapp/vendor/github.com/rs/zerolog/console.go +20 -5
  53. slidge_whatsapp/vendor/github.com/rs/zerolog/log/log.go +131 -0
  54. slidge_whatsapp/vendor/github.com/rs/zerolog/log.go +1 -1
  55. slidge_whatsapp/vendor/github.com/rs/zerolog/sampler.go +4 -1
  56. slidge_whatsapp/vendor/github.com/rs/zerolog/writer.go +9 -0
  57. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupCipher.go +17 -6
  58. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupSessionBuilder.go +17 -7
  59. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/SenderKeyStore.go +4 -2
  60. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/chain/ChainKey.go +1 -0
  61. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKey.go +1 -0
  62. slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/DefaultLogger.go +2 -2
  63. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.pb.go +3 -2
  64. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.pb.go +3 -2
  65. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.pb.go +3 -2
  66. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/Session.go +41 -17
  67. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/SessionCipher.go +64 -30
  68. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/IdentityKeyStore.go +5 -3
  69. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/MessageKeyStore.go +6 -4
  70. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/PreKeyStore.go +6 -4
  71. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SessionStore.go +8 -6
  72. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignedPreKeyStore.go +7 -5
  73. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/connlog.go +257 -0
  74. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/database.go +309 -0
  75. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/iter.go +233 -0
  76. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/json.go +47 -0
  77. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/log.go +129 -0
  78. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/massinsert.go +164 -0
  79. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/queryhelper.go +137 -0
  80. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/reflectscan.go +30 -0
  81. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/transaction.go +180 -0
  82. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgrades.go +250 -0
  83. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgradetable.go +331 -0
  84. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/dualerror.go +33 -0
  85. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/must.go +23 -0
  86. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/cors.go +32 -0
  87. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/handleerrors.go +64 -0
  88. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +41 -0
  89. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/middleware.go +30 -0
  90. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/networkerror.go +37 -0
  91. slidge_whatsapp/vendor/go.mau.fi/util/exsync/event.go +88 -0
  92. slidge_whatsapp/vendor/go.mau.fi/util/exsync/returnonce.go +25 -0
  93. slidge_whatsapp/vendor/go.mau.fi/util/exsync/ringbuffer.go +139 -0
  94. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncmap.go +94 -0
  95. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncset.go +136 -0
  96. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/callermarshal.go +28 -0
  97. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/defaults.go +32 -0
  98. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/generics.go +45 -0
  99. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/writer.go +81 -0
  100. slidge_whatsapp/vendor/go.mau.fi/util/ptr/ptr.go +43 -0
  101. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/decode.go +27 -26
  102. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/encode.go +4 -3
  103. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/keys.go +5 -4
  104. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate.go +27 -25
  105. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +3 -2
  106. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/broadcast.go +5 -4
  107. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +60 -15
  108. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +25 -9
  109. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +45 -19
  110. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +52 -28
  111. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/errors.go +1 -0
  112. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +59 -29
  113. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +166 -146
  114. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +2 -2
  115. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaconn.go +5 -3
  116. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaretry.go +2 -1
  117. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +270 -111
  118. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/msgsecret.go +118 -31
  119. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +67 -36
  120. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair-code.go +7 -4
  121. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair.go +42 -18
  122. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/prekeys.go +9 -5
  123. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/presence.go +2 -1
  124. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/privacysettings.go +10 -11
  125. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go +39 -9
  126. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +354 -175
  127. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.proto +5 -5
  128. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +158 -15
  129. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +1 -0
  130. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go +29 -9
  131. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +13 -9
  132. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.go +344 -31
  133. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.proto +26 -0
  134. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.pb.go → WACompanionReg.pb.go} +170 -84
  135. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.proto → WACompanionReg.proto} +1 -1
  136. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.go +173 -9
  137. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +78 -16
  138. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +5 -0
  139. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +6747 -2230
  140. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +294 -43
  141. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +456 -135
  142. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +14 -0
  143. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.go +162 -9
  144. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.proto +1 -0
  145. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.go +32 -9
  146. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.proto +1 -0
  147. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.go +192 -52
  148. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.proto +8 -0
  149. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.go +60 -9
  150. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.go +39 -9
  151. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.go +61 -9
  152. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +1051 -382
  153. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +32 -0
  154. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +27 -9
  155. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +59 -9
  156. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +382 -78
  157. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +8 -0
  158. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +555 -9
  159. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +2 -0
  160. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +13 -3
  161. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +29 -19
  162. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +244 -73
  163. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +27 -16
  164. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +3 -1
  165. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/noop.go +85 -43
  166. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/signal.go +75 -88
  167. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +79 -61
  168. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/lidmap.go +186 -0
  169. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +291 -167
  170. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +153 -0
  171. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/03-message-secrets.sql +11 -0
  172. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/04-privacy-tokens.sql +8 -0
  173. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/05-account-jid-format.sql +2 -0
  174. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/06-facebook-uuid.sql +2 -0
  175. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/07-account-lid.sql +2 -0
  176. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/08-lid-mapping.sql +5 -0
  177. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/09-decryption-buffer.sql +10 -0
  178. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/upgrades.go +22 -0
  179. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +105 -56
  180. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/botmap.go +210 -0
  181. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +8 -0
  182. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/group.go +15 -6
  183. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/jid.go +7 -8
  184. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +17 -0
  185. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/update.go +3 -2
  186. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/upload.go +1 -1
  187. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +45 -29
  188. slidge_whatsapp/vendor/golang.org/x/exp/LICENSE +27 -0
  189. slidge_whatsapp/vendor/golang.org/x/exp/PATENTS +22 -0
  190. slidge_whatsapp/vendor/golang.org/x/exp/constraints/constraints.go +54 -0
  191. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
  192. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
  193. slidge_whatsapp/vendor/golang.org/x/net/http2/.gitignore +2 -0
  194. slidge_whatsapp/vendor/golang.org/x/net/http2/ascii.go +53 -0
  195. slidge_whatsapp/vendor/golang.org/x/net/http2/ciphers.go +641 -0
  196. slidge_whatsapp/vendor/golang.org/x/net/http2/client_conn_pool.go +311 -0
  197. slidge_whatsapp/vendor/golang.org/x/net/http2/config.go +122 -0
  198. slidge_whatsapp/vendor/golang.org/x/net/http2/config_go124.go +61 -0
  199. slidge_whatsapp/vendor/golang.org/x/net/http2/config_pre_go124.go +16 -0
  200. slidge_whatsapp/vendor/golang.org/x/net/http2/databuffer.go +149 -0
  201. slidge_whatsapp/vendor/golang.org/x/net/http2/errors.go +145 -0
  202. slidge_whatsapp/vendor/golang.org/x/net/http2/flow.go +120 -0
  203. slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +1702 -0
  204. slidge_whatsapp/vendor/golang.org/x/net/http2/gotrack.go +170 -0
  205. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
  206. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
  207. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
  208. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
  209. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
  210. slidge_whatsapp/vendor/golang.org/x/net/http2/http2.go +432 -0
  211. slidge_whatsapp/vendor/golang.org/x/net/http2/pipe.go +184 -0
  212. slidge_whatsapp/vendor/golang.org/x/net/http2/server.go +3350 -0
  213. slidge_whatsapp/vendor/golang.org/x/net/http2/timer.go +20 -0
  214. slidge_whatsapp/vendor/golang.org/x/net/http2/transport.go +3287 -0
  215. slidge_whatsapp/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
  216. slidge_whatsapp/vendor/golang.org/x/net/http2/write.go +381 -0
  217. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched.go +251 -0
  218. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_priority.go +451 -0
  219. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_random.go +77 -0
  220. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_roundrobin.go +119 -0
  221. slidge_whatsapp/vendor/golang.org/x/net/idna/go118.go +13 -0
  222. slidge_whatsapp/vendor/golang.org/x/net/idna/idna10.0.0.go +769 -0
  223. slidge_whatsapp/vendor/golang.org/x/net/idna/idna9.0.0.go +717 -0
  224. slidge_whatsapp/vendor/golang.org/x/net/idna/pre_go118.go +11 -0
  225. slidge_whatsapp/vendor/golang.org/x/net/idna/punycode.go +217 -0
  226. slidge_whatsapp/vendor/golang.org/x/net/idna/tables10.0.0.go +4559 -0
  227. slidge_whatsapp/vendor/golang.org/x/net/idna/tables11.0.0.go +4653 -0
  228. slidge_whatsapp/vendor/golang.org/x/net/idna/tables12.0.0.go +4733 -0
  229. slidge_whatsapp/vendor/golang.org/x/net/idna/tables13.0.0.go +4959 -0
  230. slidge_whatsapp/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
  231. slidge_whatsapp/vendor/golang.org/x/net/idna/tables9.0.0.go +4486 -0
  232. slidge_whatsapp/vendor/golang.org/x/net/idna/trie.go +51 -0
  233. slidge_whatsapp/vendor/golang.org/x/net/idna/trie12.0.0.go +30 -0
  234. slidge_whatsapp/vendor/golang.org/x/net/idna/trie13.0.0.go +30 -0
  235. slidge_whatsapp/vendor/golang.org/x/net/idna/trieval.go +119 -0
  236. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
  237. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
  238. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/request.go +467 -0
  239. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin.go +148 -1
  240. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux.go +16 -26
  241. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +84 -0
  242. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +20 -0
  243. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +84 -0
  244. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +20 -0
  245. slidge_whatsapp/vendor/golang.org/x/sys/windows/security_windows.go +44 -5
  246. slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall_windows.go +4 -2
  247. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows.go +239 -0
  248. slidge_whatsapp/vendor/golang.org/x/sys/windows/zsyscall_windows.go +9 -0
  249. slidge_whatsapp/vendor/golang.org/x/text/LICENSE +27 -0
  250. slidge_whatsapp/vendor/golang.org/x/text/PATENTS +22 -0
  251. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule.go +336 -0
  252. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +11 -0
  253. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +14 -0
  254. slidge_whatsapp/vendor/golang.org/x/text/transform/transform.go +709 -0
  255. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
  256. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
  257. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/core.go +1071 -0
  258. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
  259. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +1815 -0
  260. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +1887 -0
  261. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +1923 -0
  262. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +1955 -0
  263. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
  264. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +1781 -0
  265. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
  266. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
  267. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/forminfo.go +279 -0
  268. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
  269. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/iter.go +458 -0
  270. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
  271. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
  272. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +7657 -0
  273. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +7693 -0
  274. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +7710 -0
  275. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +7760 -0
  276. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
  277. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +7637 -0
  278. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
  279. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
  280. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb +0 -0
  281. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +3 -0
  282. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +16 -0
  283. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe_go121.go → strings_unsafe.go} +0 -2
  284. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/version/version.go +1 -1
  285. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/merge.go +6 -0
  286. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +2 -0
  287. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe_go121.go → value_unsafe.go} +0 -2
  288. slidge_whatsapp/vendor/modules.txt +38 -13
  289. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.2.6.dist-info}/METADATA +1 -1
  290. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.2.6.dist-info}/RECORD +293 -180
  291. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.2.6.dist-info}/WHEEL +1 -1
  292. slidge_whatsapp/vendor/github.com/rs/zerolog/CNAME +0 -1
  293. slidge_whatsapp/vendor/github.com/rs/zerolog/_config.yml +0 -1
  294. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.raw +0 -0
  295. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw +0 -0
  296. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw +0 -0
  297. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.raw +0 -23
  298. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw +0 -7
  299. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.raw +0 -0
  300. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WAWebProtobufsCompanionReg.pb.raw +0 -0
  301. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.raw +0 -0
  302. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw +0 -0
  303. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.raw +0 -0
  304. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw +0 -0
  305. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.raw +0 -0
  306. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.raw +0 -0
  307. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.raw +0 -0
  308. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.raw +0 -0
  309. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.raw +0 -0
  310. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.raw +0 -0
  311. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.raw +0 -0
  312. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.raw +0 -0
  313. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw +0 -0
  314. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.raw +0 -0
  315. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.raw +0 -0
  316. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go +0 -296
  317. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go +0 -94
  318. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go +0 -98
  319. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.2.6.dist-info}/LICENSE +0 -0
  320. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.2.6.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,54 @@
1
+ // Copyright 2021 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 constraints defines a set of useful constraints to be used
6
+ // with type parameters.
7
+ package constraints
8
+
9
+ import "cmp"
10
+
11
+ // Signed is a constraint that permits any signed integer type.
12
+ // If future releases of Go add new predeclared signed integer types,
13
+ // this constraint will be modified to include them.
14
+ type Signed interface {
15
+ ~int | ~int8 | ~int16 | ~int32 | ~int64
16
+ }
17
+
18
+ // Unsigned is a constraint that permits any unsigned integer type.
19
+ // If future releases of Go add new predeclared unsigned integer types,
20
+ // this constraint will be modified to include them.
21
+ type Unsigned interface {
22
+ ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
23
+ }
24
+
25
+ // Integer is a constraint that permits any integer type.
26
+ // If future releases of Go add new predeclared integer types,
27
+ // this constraint will be modified to include them.
28
+ type Integer interface {
29
+ Signed | Unsigned
30
+ }
31
+
32
+ // Float is a constraint that permits any floating-point type.
33
+ // If future releases of Go add new predeclared floating-point types,
34
+ // this constraint will be modified to include them.
35
+ type Float interface {
36
+ ~float32 | ~float64
37
+ }
38
+
39
+ // Complex is a constraint that permits any complex numeric type.
40
+ // If future releases of Go add new predeclared complex numeric types,
41
+ // this constraint will be modified to include them.
42
+ type Complex interface {
43
+ ~complex64 | ~complex128
44
+ }
45
+
46
+ // Ordered is a constraint that permits any ordered type: any type
47
+ // that supports the operators < <= >= >.
48
+ // If future releases of Go add new ordered types,
49
+ // this constraint will be modified to include them.
50
+ //
51
+ // This type is redundant since Go 1.21 introduced [cmp.Ordered].
52
+ //
53
+ //go:fix inline
54
+ type Ordered = cmp.Ordered
@@ -0,0 +1,50 @@
1
+ // Copyright 2018 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 httpguts provides functions implementing various details
6
+ // of the HTTP specification.
7
+ //
8
+ // This package is shared by the standard library (which vendors it)
9
+ // and x/net/http2. It comes with no API stability promise.
10
+ package httpguts
11
+
12
+ import (
13
+ "net/textproto"
14
+ "strings"
15
+ )
16
+
17
+ // ValidTrailerHeader reports whether name is a valid header field name to appear
18
+ // in trailers.
19
+ // See RFC 7230, Section 4.1.2
20
+ func ValidTrailerHeader(name string) bool {
21
+ name = textproto.CanonicalMIMEHeaderKey(name)
22
+ if strings.HasPrefix(name, "If-") || badTrailer[name] {
23
+ return false
24
+ }
25
+ return true
26
+ }
27
+
28
+ var badTrailer = map[string]bool{
29
+ "Authorization": true,
30
+ "Cache-Control": true,
31
+ "Connection": true,
32
+ "Content-Encoding": true,
33
+ "Content-Length": true,
34
+ "Content-Range": true,
35
+ "Content-Type": true,
36
+ "Expect": true,
37
+ "Host": true,
38
+ "Keep-Alive": true,
39
+ "Max-Forwards": true,
40
+ "Pragma": true,
41
+ "Proxy-Authenticate": true,
42
+ "Proxy-Authorization": true,
43
+ "Proxy-Connection": true,
44
+ "Range": true,
45
+ "Realm": true,
46
+ "Te": true,
47
+ "Trailer": true,
48
+ "Transfer-Encoding": true,
49
+ "Www-Authenticate": true,
50
+ }
@@ -0,0 +1,347 @@
1
+ // Copyright 2016 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 httpguts
6
+
7
+ import (
8
+ "net"
9
+ "strings"
10
+ "unicode/utf8"
11
+
12
+ "golang.org/x/net/idna"
13
+ )
14
+
15
+ var isTokenTable = [256]bool{
16
+ '!': true,
17
+ '#': true,
18
+ '$': true,
19
+ '%': true,
20
+ '&': true,
21
+ '\'': true,
22
+ '*': true,
23
+ '+': true,
24
+ '-': true,
25
+ '.': true,
26
+ '0': true,
27
+ '1': true,
28
+ '2': true,
29
+ '3': true,
30
+ '4': true,
31
+ '5': true,
32
+ '6': true,
33
+ '7': true,
34
+ '8': true,
35
+ '9': true,
36
+ 'A': true,
37
+ 'B': true,
38
+ 'C': true,
39
+ 'D': true,
40
+ 'E': true,
41
+ 'F': true,
42
+ 'G': true,
43
+ 'H': true,
44
+ 'I': true,
45
+ 'J': true,
46
+ 'K': true,
47
+ 'L': true,
48
+ 'M': true,
49
+ 'N': true,
50
+ 'O': true,
51
+ 'P': true,
52
+ 'Q': true,
53
+ 'R': true,
54
+ 'S': true,
55
+ 'T': true,
56
+ 'U': true,
57
+ 'W': true,
58
+ 'V': true,
59
+ 'X': true,
60
+ 'Y': true,
61
+ 'Z': true,
62
+ '^': true,
63
+ '_': true,
64
+ '`': true,
65
+ 'a': true,
66
+ 'b': true,
67
+ 'c': true,
68
+ 'd': true,
69
+ 'e': true,
70
+ 'f': true,
71
+ 'g': true,
72
+ 'h': true,
73
+ 'i': true,
74
+ 'j': true,
75
+ 'k': true,
76
+ 'l': true,
77
+ 'm': true,
78
+ 'n': true,
79
+ 'o': true,
80
+ 'p': true,
81
+ 'q': true,
82
+ 'r': true,
83
+ 's': true,
84
+ 't': true,
85
+ 'u': true,
86
+ 'v': true,
87
+ 'w': true,
88
+ 'x': true,
89
+ 'y': true,
90
+ 'z': true,
91
+ '|': true,
92
+ '~': true,
93
+ }
94
+
95
+ func IsTokenRune(r rune) bool {
96
+ return r < utf8.RuneSelf && isTokenTable[byte(r)]
97
+ }
98
+
99
+ // HeaderValuesContainsToken reports whether any string in values
100
+ // contains the provided token, ASCII case-insensitively.
101
+ func HeaderValuesContainsToken(values []string, token string) bool {
102
+ for _, v := range values {
103
+ if headerValueContainsToken(v, token) {
104
+ return true
105
+ }
106
+ }
107
+ return false
108
+ }
109
+
110
+ // isOWS reports whether b is an optional whitespace byte, as defined
111
+ // by RFC 7230 section 3.2.3.
112
+ func isOWS(b byte) bool { return b == ' ' || b == '\t' }
113
+
114
+ // trimOWS returns x with all optional whitespace removes from the
115
+ // beginning and end.
116
+ func trimOWS(x string) string {
117
+ // TODO: consider using strings.Trim(x, " \t") instead,
118
+ // if and when it's fast enough. See issue 10292.
119
+ // But this ASCII-only code will probably always beat UTF-8
120
+ // aware code.
121
+ for len(x) > 0 && isOWS(x[0]) {
122
+ x = x[1:]
123
+ }
124
+ for len(x) > 0 && isOWS(x[len(x)-1]) {
125
+ x = x[:len(x)-1]
126
+ }
127
+ return x
128
+ }
129
+
130
+ // headerValueContainsToken reports whether v (assumed to be a
131
+ // 0#element, in the ABNF extension described in RFC 7230 section 7)
132
+ // contains token amongst its comma-separated tokens, ASCII
133
+ // case-insensitively.
134
+ func headerValueContainsToken(v string, token string) bool {
135
+ for comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') {
136
+ if tokenEqual(trimOWS(v[:comma]), token) {
137
+ return true
138
+ }
139
+ v = v[comma+1:]
140
+ }
141
+ return tokenEqual(trimOWS(v), token)
142
+ }
143
+
144
+ // lowerASCII returns the ASCII lowercase version of b.
145
+ func lowerASCII(b byte) byte {
146
+ if 'A' <= b && b <= 'Z' {
147
+ return b + ('a' - 'A')
148
+ }
149
+ return b
150
+ }
151
+
152
+ // tokenEqual reports whether t1 and t2 are equal, ASCII case-insensitively.
153
+ func tokenEqual(t1, t2 string) bool {
154
+ if len(t1) != len(t2) {
155
+ return false
156
+ }
157
+ for i, b := range t1 {
158
+ if b >= utf8.RuneSelf {
159
+ // No UTF-8 or non-ASCII allowed in tokens.
160
+ return false
161
+ }
162
+ if lowerASCII(byte(b)) != lowerASCII(t2[i]) {
163
+ return false
164
+ }
165
+ }
166
+ return true
167
+ }
168
+
169
+ // isLWS reports whether b is linear white space, according
170
+ // to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
171
+ //
172
+ // LWS = [CRLF] 1*( SP | HT )
173
+ func isLWS(b byte) bool { return b == ' ' || b == '\t' }
174
+
175
+ // isCTL reports whether b is a control byte, according
176
+ // to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
177
+ //
178
+ // CTL = <any US-ASCII control character
179
+ // (octets 0 - 31) and DEL (127)>
180
+ func isCTL(b byte) bool {
181
+ const del = 0x7f // a CTL
182
+ return b < ' ' || b == del
183
+ }
184
+
185
+ // ValidHeaderFieldName reports whether v is a valid HTTP/1.x header name.
186
+ // HTTP/2 imposes the additional restriction that uppercase ASCII
187
+ // letters are not allowed.
188
+ //
189
+ // RFC 7230 says:
190
+ //
191
+ // header-field = field-name ":" OWS field-value OWS
192
+ // field-name = token
193
+ // token = 1*tchar
194
+ // tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /
195
+ // "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
196
+ func ValidHeaderFieldName(v string) bool {
197
+ if len(v) == 0 {
198
+ return false
199
+ }
200
+ for i := 0; i < len(v); i++ {
201
+ if !isTokenTable[v[i]] {
202
+ return false
203
+ }
204
+ }
205
+ return true
206
+ }
207
+
208
+ // ValidHostHeader reports whether h is a valid host header.
209
+ func ValidHostHeader(h string) bool {
210
+ // The latest spec is actually this:
211
+ //
212
+ // http://tools.ietf.org/html/rfc7230#section-5.4
213
+ // Host = uri-host [ ":" port ]
214
+ //
215
+ // Where uri-host is:
216
+ // http://tools.ietf.org/html/rfc3986#section-3.2.2
217
+ //
218
+ // But we're going to be much more lenient for now and just
219
+ // search for any byte that's not a valid byte in any of those
220
+ // expressions.
221
+ for i := 0; i < len(h); i++ {
222
+ if !validHostByte[h[i]] {
223
+ return false
224
+ }
225
+ }
226
+ return true
227
+ }
228
+
229
+ // See the validHostHeader comment.
230
+ var validHostByte = [256]bool{
231
+ '0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true,
232
+ '8': true, '9': true,
233
+
234
+ 'a': true, 'b': true, 'c': true, 'd': true, 'e': true, 'f': true, 'g': true, 'h': true,
235
+ 'i': true, 'j': true, 'k': true, 'l': true, 'm': true, 'n': true, 'o': true, 'p': true,
236
+ 'q': true, 'r': true, 's': true, 't': true, 'u': true, 'v': true, 'w': true, 'x': true,
237
+ 'y': true, 'z': true,
238
+
239
+ 'A': true, 'B': true, 'C': true, 'D': true, 'E': true, 'F': true, 'G': true, 'H': true,
240
+ 'I': true, 'J': true, 'K': true, 'L': true, 'M': true, 'N': true, 'O': true, 'P': true,
241
+ 'Q': true, 'R': true, 'S': true, 'T': true, 'U': true, 'V': true, 'W': true, 'X': true,
242
+ 'Y': true, 'Z': true,
243
+
244
+ '!': true, // sub-delims
245
+ '$': true, // sub-delims
246
+ '%': true, // pct-encoded (and used in IPv6 zones)
247
+ '&': true, // sub-delims
248
+ '(': true, // sub-delims
249
+ ')': true, // sub-delims
250
+ '*': true, // sub-delims
251
+ '+': true, // sub-delims
252
+ ',': true, // sub-delims
253
+ '-': true, // unreserved
254
+ '.': true, // unreserved
255
+ ':': true, // IPv6address + Host expression's optional port
256
+ ';': true, // sub-delims
257
+ '=': true, // sub-delims
258
+ '[': true,
259
+ '\'': true, // sub-delims
260
+ ']': true,
261
+ '_': true, // unreserved
262
+ '~': true, // unreserved
263
+ }
264
+
265
+ // ValidHeaderFieldValue reports whether v is a valid "field-value" according to
266
+ // http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 :
267
+ //
268
+ // message-header = field-name ":" [ field-value ]
269
+ // field-value = *( field-content | LWS )
270
+ // field-content = <the OCTETs making up the field-value
271
+ // and consisting of either *TEXT or combinations
272
+ // of token, separators, and quoted-string>
273
+ //
274
+ // http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 :
275
+ //
276
+ // TEXT = <any OCTET except CTLs,
277
+ // but including LWS>
278
+ // LWS = [CRLF] 1*( SP | HT )
279
+ // CTL = <any US-ASCII control character
280
+ // (octets 0 - 31) and DEL (127)>
281
+ //
282
+ // RFC 7230 says:
283
+ //
284
+ // field-value = *( field-content / obs-fold )
285
+ // obj-fold = N/A to http2, and deprecated
286
+ // field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
287
+ // field-vchar = VCHAR / obs-text
288
+ // obs-text = %x80-FF
289
+ // VCHAR = "any visible [USASCII] character"
290
+ //
291
+ // http2 further says: "Similarly, HTTP/2 allows header field values
292
+ // that are not valid. While most of the values that can be encoded
293
+ // will not alter header field parsing, carriage return (CR, ASCII
294
+ // 0xd), line feed (LF, ASCII 0xa), and the zero character (NUL, ASCII
295
+ // 0x0) might be exploited by an attacker if they are translated
296
+ // verbatim. Any request or response that contains a character not
297
+ // permitted in a header field value MUST be treated as malformed
298
+ // (Section 8.1.2.6). Valid characters are defined by the
299
+ // field-content ABNF rule in Section 3.2 of [RFC7230]."
300
+ //
301
+ // This function does not (yet?) properly handle the rejection of
302
+ // strings that begin or end with SP or HTAB.
303
+ func ValidHeaderFieldValue(v string) bool {
304
+ for i := 0; i < len(v); i++ {
305
+ b := v[i]
306
+ if isCTL(b) && !isLWS(b) {
307
+ return false
308
+ }
309
+ }
310
+ return true
311
+ }
312
+
313
+ func isASCII(s string) bool {
314
+ for i := 0; i < len(s); i++ {
315
+ if s[i] >= utf8.RuneSelf {
316
+ return false
317
+ }
318
+ }
319
+ return true
320
+ }
321
+
322
+ // PunycodeHostPort returns the IDNA Punycode version
323
+ // of the provided "host" or "host:port" string.
324
+ func PunycodeHostPort(v string) (string, error) {
325
+ if isASCII(v) {
326
+ return v, nil
327
+ }
328
+
329
+ host, port, err := net.SplitHostPort(v)
330
+ if err != nil {
331
+ // The input 'v' argument was just a "host" argument,
332
+ // without a port. This error should not be returned
333
+ // to the caller.
334
+ host = v
335
+ port = ""
336
+ }
337
+ host, err = idna.ToASCII(host)
338
+ if err != nil {
339
+ // Non-UTF-8? Not representable in Punycode, in any
340
+ // case.
341
+ return "", err
342
+ }
343
+ if port == "" {
344
+ return host, nil
345
+ }
346
+ return net.JoinHostPort(host, port), nil
347
+ }
@@ -0,0 +1,2 @@
1
+ *~
2
+ h2i/h2i
@@ -0,0 +1,53 @@
1
+ // Copyright 2021 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 http2
6
+
7
+ import "strings"
8
+
9
+ // The HTTP protocols are defined in terms of ASCII, not Unicode. This file
10
+ // contains helper functions which may use Unicode-aware functions which would
11
+ // otherwise be unsafe and could introduce vulnerabilities if used improperly.
12
+
13
+ // asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t
14
+ // are equal, ASCII-case-insensitively.
15
+ func asciiEqualFold(s, t string) bool {
16
+ if len(s) != len(t) {
17
+ return false
18
+ }
19
+ for i := 0; i < len(s); i++ {
20
+ if lower(s[i]) != lower(t[i]) {
21
+ return false
22
+ }
23
+ }
24
+ return true
25
+ }
26
+
27
+ // lower returns the ASCII lowercase version of b.
28
+ func lower(b byte) byte {
29
+ if 'A' <= b && b <= 'Z' {
30
+ return b + ('a' - 'A')
31
+ }
32
+ return b
33
+ }
34
+
35
+ // isASCIIPrint returns whether s is ASCII and printable according to
36
+ // https://tools.ietf.org/html/rfc20#section-4.2.
37
+ func isASCIIPrint(s string) bool {
38
+ for i := 0; i < len(s); i++ {
39
+ if s[i] < ' ' || s[i] > '~' {
40
+ return false
41
+ }
42
+ }
43
+ return true
44
+ }
45
+
46
+ // asciiToLower returns the lowercase version of s if s is ASCII and printable,
47
+ // and whether or not it was.
48
+ func asciiToLower(s string) (lower string, ok bool) {
49
+ if !isASCIIPrint(s) {
50
+ return "", false
51
+ }
52
+ return strings.ToLower(s), true
53
+ }