httpx-patched 1.6.2.1

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.
Files changed (336) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +191 -0
  3. data/README.md +162 -0
  4. data/doc/release_notes/0_0_1.md +7 -0
  5. data/doc/release_notes/0_0_2.md +9 -0
  6. data/doc/release_notes/0_0_3.md +9 -0
  7. data/doc/release_notes/0_0_4.md +7 -0
  8. data/doc/release_notes/0_0_5.md +5 -0
  9. data/doc/release_notes/0_10_0.md +66 -0
  10. data/doc/release_notes/0_10_1.md +37 -0
  11. data/doc/release_notes/0_10_2.md +5 -0
  12. data/doc/release_notes/0_11_0.md +74 -0
  13. data/doc/release_notes/0_11_1.md +5 -0
  14. data/doc/release_notes/0_11_2.md +5 -0
  15. data/doc/release_notes/0_11_3.md +5 -0
  16. data/doc/release_notes/0_12_0.md +55 -0
  17. data/doc/release_notes/0_13_0.md +58 -0
  18. data/doc/release_notes/0_13_1.md +5 -0
  19. data/doc/release_notes/0_13_2.md +9 -0
  20. data/doc/release_notes/0_14_0.md +79 -0
  21. data/doc/release_notes/0_14_1.md +7 -0
  22. data/doc/release_notes/0_14_2.md +6 -0
  23. data/doc/release_notes/0_14_3.md +5 -0
  24. data/doc/release_notes/0_14_4.md +5 -0
  25. data/doc/release_notes/0_14_5.md +11 -0
  26. data/doc/release_notes/0_15_0.md +53 -0
  27. data/doc/release_notes/0_15_1.md +8 -0
  28. data/doc/release_notes/0_15_2.md +9 -0
  29. data/doc/release_notes/0_15_3.md +5 -0
  30. data/doc/release_notes/0_15_4.md +5 -0
  31. data/doc/release_notes/0_16_0.md +93 -0
  32. data/doc/release_notes/0_16_1.md +5 -0
  33. data/doc/release_notes/0_17_0.md +49 -0
  34. data/doc/release_notes/0_18_0.md +69 -0
  35. data/doc/release_notes/0_18_1.md +12 -0
  36. data/doc/release_notes/0_18_2.md +10 -0
  37. data/doc/release_notes/0_18_3.md +7 -0
  38. data/doc/release_notes/0_18_4.md +14 -0
  39. data/doc/release_notes/0_18_5.md +10 -0
  40. data/doc/release_notes/0_18_6.md +5 -0
  41. data/doc/release_notes/0_18_7.md +5 -0
  42. data/doc/release_notes/0_19_0.md +39 -0
  43. data/doc/release_notes/0_19_1.md +5 -0
  44. data/doc/release_notes/0_19_2.md +7 -0
  45. data/doc/release_notes/0_19_3.md +6 -0
  46. data/doc/release_notes/0_19_4.md +14 -0
  47. data/doc/release_notes/0_19_5.md +13 -0
  48. data/doc/release_notes/0_19_6.md +5 -0
  49. data/doc/release_notes/0_19_7.md +5 -0
  50. data/doc/release_notes/0_19_8.md +5 -0
  51. data/doc/release_notes/0_1_0.md +9 -0
  52. data/doc/release_notes/0_20_0.md +36 -0
  53. data/doc/release_notes/0_20_1.md +5 -0
  54. data/doc/release_notes/0_20_2.md +7 -0
  55. data/doc/release_notes/0_20_3.md +6 -0
  56. data/doc/release_notes/0_20_4.md +17 -0
  57. data/doc/release_notes/0_20_5.md +3 -0
  58. data/doc/release_notes/0_21_0.md +96 -0
  59. data/doc/release_notes/0_21_1.md +12 -0
  60. data/doc/release_notes/0_22_0.md +13 -0
  61. data/doc/release_notes/0_22_1.md +11 -0
  62. data/doc/release_notes/0_22_2.md +5 -0
  63. data/doc/release_notes/0_22_3.md +55 -0
  64. data/doc/release_notes/0_22_4.md +6 -0
  65. data/doc/release_notes/0_22_5.md +6 -0
  66. data/doc/release_notes/0_23_0.md +42 -0
  67. data/doc/release_notes/0_23_1.md +5 -0
  68. data/doc/release_notes/0_23_2.md +5 -0
  69. data/doc/release_notes/0_23_3.md +6 -0
  70. data/doc/release_notes/0_23_4.md +5 -0
  71. data/doc/release_notes/0_24_0.md +48 -0
  72. data/doc/release_notes/0_24_1.md +12 -0
  73. data/doc/release_notes/0_24_2.md +12 -0
  74. data/doc/release_notes/0_24_3.md +12 -0
  75. data/doc/release_notes/0_24_4.md +18 -0
  76. data/doc/release_notes/0_24_5.md +6 -0
  77. data/doc/release_notes/0_24_6.md +5 -0
  78. data/doc/release_notes/0_24_7.md +10 -0
  79. data/doc/release_notes/0_2_0.md +5 -0
  80. data/doc/release_notes/0_2_1.md +16 -0
  81. data/doc/release_notes/0_3_0.md +12 -0
  82. data/doc/release_notes/0_3_1.md +6 -0
  83. data/doc/release_notes/0_4_0.md +51 -0
  84. data/doc/release_notes/0_4_1.md +3 -0
  85. data/doc/release_notes/0_5_0.md +15 -0
  86. data/doc/release_notes/0_5_1.md +14 -0
  87. data/doc/release_notes/0_6_0.md +5 -0
  88. data/doc/release_notes/0_6_1.md +6 -0
  89. data/doc/release_notes/0_6_2.md +6 -0
  90. data/doc/release_notes/0_6_3.md +13 -0
  91. data/doc/release_notes/0_6_4.md +21 -0
  92. data/doc/release_notes/0_6_5.md +22 -0
  93. data/doc/release_notes/0_6_6.md +19 -0
  94. data/doc/release_notes/0_6_7.md +5 -0
  95. data/doc/release_notes/0_7_0.md +46 -0
  96. data/doc/release_notes/0_8_0.md +27 -0
  97. data/doc/release_notes/0_8_1.md +8 -0
  98. data/doc/release_notes/0_8_2.md +7 -0
  99. data/doc/release_notes/0_9_0.md +38 -0
  100. data/doc/release_notes/1_0_0.md +60 -0
  101. data/doc/release_notes/1_0_1.md +5 -0
  102. data/doc/release_notes/1_0_2.md +7 -0
  103. data/doc/release_notes/1_1_0.md +32 -0
  104. data/doc/release_notes/1_1_1.md +17 -0
  105. data/doc/release_notes/1_1_2.md +12 -0
  106. data/doc/release_notes/1_1_3.md +18 -0
  107. data/doc/release_notes/1_1_4.md +6 -0
  108. data/doc/release_notes/1_1_5.md +12 -0
  109. data/doc/release_notes/1_2_0.md +49 -0
  110. data/doc/release_notes/1_2_1.md +6 -0
  111. data/doc/release_notes/1_2_2.md +10 -0
  112. data/doc/release_notes/1_2_3.md +16 -0
  113. data/doc/release_notes/1_2_4.md +8 -0
  114. data/doc/release_notes/1_2_5.md +7 -0
  115. data/doc/release_notes/1_2_6.md +13 -0
  116. data/doc/release_notes/1_3_0.md +18 -0
  117. data/doc/release_notes/1_3_1.md +17 -0
  118. data/doc/release_notes/1_3_2.md +6 -0
  119. data/doc/release_notes/1_3_3.md +5 -0
  120. data/doc/release_notes/1_3_4.md +6 -0
  121. data/doc/release_notes/1_4_0.md +43 -0
  122. data/doc/release_notes/1_4_1.md +19 -0
  123. data/doc/release_notes/1_4_2.md +20 -0
  124. data/doc/release_notes/1_4_3.md +11 -0
  125. data/doc/release_notes/1_4_4.md +14 -0
  126. data/doc/release_notes/1_5_0.md +126 -0
  127. data/doc/release_notes/1_5_1.md +6 -0
  128. data/doc/release_notes/1_6_0.md +50 -0
  129. data/doc/release_notes/1_6_1.md +17 -0
  130. data/doc/release_notes/1_6_2.md +11 -0
  131. data/lib/httpx/adapters/datadog.rb +359 -0
  132. data/lib/httpx/adapters/faraday.rb +303 -0
  133. data/lib/httpx/adapters/sentry.rb +121 -0
  134. data/lib/httpx/adapters/webmock.rb +175 -0
  135. data/lib/httpx/altsvc.rb +163 -0
  136. data/lib/httpx/base64.rb +27 -0
  137. data/lib/httpx/buffer.rb +61 -0
  138. data/lib/httpx/callbacks.rb +35 -0
  139. data/lib/httpx/chainable.rb +106 -0
  140. data/lib/httpx/connection/http1.rb +399 -0
  141. data/lib/httpx/connection/http2.rb +468 -0
  142. data/lib/httpx/connection.rb +954 -0
  143. data/lib/httpx/domain_name.rb +145 -0
  144. data/lib/httpx/errors.rb +111 -0
  145. data/lib/httpx/extensions.rb +59 -0
  146. data/lib/httpx/headers.rb +176 -0
  147. data/lib/httpx/io/ssl.rb +163 -0
  148. data/lib/httpx/io/tcp.rb +239 -0
  149. data/lib/httpx/io/udp.rb +62 -0
  150. data/lib/httpx/io/unix.rb +71 -0
  151. data/lib/httpx/io.rb +11 -0
  152. data/lib/httpx/loggable.rb +56 -0
  153. data/lib/httpx/options.rb +463 -0
  154. data/lib/httpx/parser/http1.rb +186 -0
  155. data/lib/httpx/plugins/auth/basic.rb +20 -0
  156. data/lib/httpx/plugins/auth/digest.rb +102 -0
  157. data/lib/httpx/plugins/auth/ntlm.rb +35 -0
  158. data/lib/httpx/plugins/auth/socks5.rb +22 -0
  159. data/lib/httpx/plugins/auth.rb +25 -0
  160. data/lib/httpx/plugins/aws_sdk_authentication.rb +111 -0
  161. data/lib/httpx/plugins/aws_sigv4.rb +239 -0
  162. data/lib/httpx/plugins/basic_auth.rb +29 -0
  163. data/lib/httpx/plugins/brotli.rb +50 -0
  164. data/lib/httpx/plugins/callbacks.rb +127 -0
  165. data/lib/httpx/plugins/circuit_breaker/circuit.rb +100 -0
  166. data/lib/httpx/plugins/circuit_breaker/circuit_store.rb +53 -0
  167. data/lib/httpx/plugins/circuit_breaker.rb +147 -0
  168. data/lib/httpx/plugins/content_digest.rb +204 -0
  169. data/lib/httpx/plugins/cookies/cookie.rb +174 -0
  170. data/lib/httpx/plugins/cookies/jar.rb +95 -0
  171. data/lib/httpx/plugins/cookies/set_cookie_parser.rb +143 -0
  172. data/lib/httpx/plugins/cookies.rb +107 -0
  173. data/lib/httpx/plugins/digest_auth.rb +67 -0
  174. data/lib/httpx/plugins/expect.rb +120 -0
  175. data/lib/httpx/plugins/fiber_concurrency.rb +195 -0
  176. data/lib/httpx/plugins/follow_redirects.rb +233 -0
  177. data/lib/httpx/plugins/grpc/call.rb +63 -0
  178. data/lib/httpx/plugins/grpc/grpc_encoding.rb +90 -0
  179. data/lib/httpx/plugins/grpc/message.rb +55 -0
  180. data/lib/httpx/plugins/grpc.rb +282 -0
  181. data/lib/httpx/plugins/h2c.rb +127 -0
  182. data/lib/httpx/plugins/internal_telemetry.rb +107 -0
  183. data/lib/httpx/plugins/ntlm_auth.rb +62 -0
  184. data/lib/httpx/plugins/oauth.rb +183 -0
  185. data/lib/httpx/plugins/persistent.rb +82 -0
  186. data/lib/httpx/plugins/proxy/http.rb +184 -0
  187. data/lib/httpx/plugins/proxy/socks4.rb +135 -0
  188. data/lib/httpx/plugins/proxy/socks5.rb +194 -0
  189. data/lib/httpx/plugins/proxy/ssh.rb +94 -0
  190. data/lib/httpx/plugins/proxy.rb +349 -0
  191. data/lib/httpx/plugins/push_promise.rb +81 -0
  192. data/lib/httpx/plugins/query.rb +35 -0
  193. data/lib/httpx/plugins/rate_limiter.rb +55 -0
  194. data/lib/httpx/plugins/response_cache/file_store.rb +140 -0
  195. data/lib/httpx/plugins/response_cache/store.rb +33 -0
  196. data/lib/httpx/plugins/response_cache.rb +333 -0
  197. data/lib/httpx/plugins/retries.rb +230 -0
  198. data/lib/httpx/plugins/ssrf_filter.rb +145 -0
  199. data/lib/httpx/plugins/stream.rb +183 -0
  200. data/lib/httpx/plugins/stream_bidi.rb +315 -0
  201. data/lib/httpx/plugins/upgrade/h2.rb +64 -0
  202. data/lib/httpx/plugins/upgrade.rb +86 -0
  203. data/lib/httpx/plugins/webdav.rb +86 -0
  204. data/lib/httpx/plugins/xml.rb +76 -0
  205. data/lib/httpx/pmatch_extensions.rb +33 -0
  206. data/lib/httpx/pool.rb +190 -0
  207. data/lib/httpx/punycode.rb +22 -0
  208. data/lib/httpx/request/body.rb +158 -0
  209. data/lib/httpx/request.rb +328 -0
  210. data/lib/httpx/resolver/entry.rb +30 -0
  211. data/lib/httpx/resolver/https.rb +256 -0
  212. data/lib/httpx/resolver/multi.rb +102 -0
  213. data/lib/httpx/resolver/native.rb +547 -0
  214. data/lib/httpx/resolver/resolver.rb +173 -0
  215. data/lib/httpx/resolver/system.rb +255 -0
  216. data/lib/httpx/resolver.rb +189 -0
  217. data/lib/httpx/response/body.rb +242 -0
  218. data/lib/httpx/response/buffer.rb +115 -0
  219. data/lib/httpx/response.rb +304 -0
  220. data/lib/httpx/selector.rb +282 -0
  221. data/lib/httpx/session.rb +612 -0
  222. data/lib/httpx/session_extensions.rb +30 -0
  223. data/lib/httpx/timers.rb +133 -0
  224. data/lib/httpx/transcoder/body.rb +43 -0
  225. data/lib/httpx/transcoder/chunker.rb +115 -0
  226. data/lib/httpx/transcoder/deflate.rb +37 -0
  227. data/lib/httpx/transcoder/form.rb +68 -0
  228. data/lib/httpx/transcoder/gzip.rb +71 -0
  229. data/lib/httpx/transcoder/json.rb +71 -0
  230. data/lib/httpx/transcoder/multipart/decoder.rb +141 -0
  231. data/lib/httpx/transcoder/multipart/encoder.rb +120 -0
  232. data/lib/httpx/transcoder/multipart/mime_type_detector.rb +78 -0
  233. data/lib/httpx/transcoder/multipart/part.rb +35 -0
  234. data/lib/httpx/transcoder/multipart.rb +31 -0
  235. data/lib/httpx/transcoder/utils/body_reader.rb +46 -0
  236. data/lib/httpx/transcoder/utils/deflater.rb +75 -0
  237. data/lib/httpx/transcoder.rb +91 -0
  238. data/lib/httpx/utils.rb +75 -0
  239. data/lib/httpx/version.rb +5 -0
  240. data/lib/httpx.rb +66 -0
  241. data/sig/altsvc.rbs +33 -0
  242. data/sig/buffer.rbs +27 -0
  243. data/sig/callbacks.rbs +15 -0
  244. data/sig/chainable.rbs +55 -0
  245. data/sig/connection/http1.rbs +85 -0
  246. data/sig/connection/http2.rbs +116 -0
  247. data/sig/connection.rbs +169 -0
  248. data/sig/domain_name.rbs +17 -0
  249. data/sig/errors.rbs +69 -0
  250. data/sig/headers.rbs +49 -0
  251. data/sig/httpx.rbs +27 -0
  252. data/sig/io/ssl.rbs +27 -0
  253. data/sig/io/tcp.rbs +72 -0
  254. data/sig/io/udp.rbs +25 -0
  255. data/sig/io/unix.rbs +26 -0
  256. data/sig/io.rbs +3 -0
  257. data/sig/loggable.rbs +17 -0
  258. data/sig/options.rbs +202 -0
  259. data/sig/parser/http1.rbs +59 -0
  260. data/sig/plugins/auth/basic.rbs +17 -0
  261. data/sig/plugins/auth/digest.rbs +25 -0
  262. data/sig/plugins/auth/ntlm.rbs +20 -0
  263. data/sig/plugins/auth/socks5.rbs +18 -0
  264. data/sig/plugins/auth.rbs +13 -0
  265. data/sig/plugins/aws_sdk_authentication.rbs +43 -0
  266. data/sig/plugins/aws_sigv4.rbs +78 -0
  267. data/sig/plugins/basic_auth.rbs +15 -0
  268. data/sig/plugins/brotli.rbs +22 -0
  269. data/sig/plugins/callbacks.rbs +38 -0
  270. data/sig/plugins/circuit_breaker.rbs +71 -0
  271. data/sig/plugins/compression.rbs +57 -0
  272. data/sig/plugins/content_digest.rbs +51 -0
  273. data/sig/plugins/cookies/cookie.rbs +55 -0
  274. data/sig/plugins/cookies/jar.rbs +26 -0
  275. data/sig/plugins/cookies/set_cookie_parser.rbs +22 -0
  276. data/sig/plugins/cookies.rbs +28 -0
  277. data/sig/plugins/digest_auth.rbs +21 -0
  278. data/sig/plugins/expect.rbs +15 -0
  279. data/sig/plugins/fiber_concurrency.rbs +51 -0
  280. data/sig/plugins/follow_redirects.rbs +47 -0
  281. data/sig/plugins/grpc/call.rbs +23 -0
  282. data/sig/plugins/grpc/grpc_encoding.rbs +37 -0
  283. data/sig/plugins/grpc/message.rbs +17 -0
  284. data/sig/plugins/grpc.rbs +65 -0
  285. data/sig/plugins/h2c.rbs +27 -0
  286. data/sig/plugins/ntlm_auth.rbs +21 -0
  287. data/sig/plugins/oauth.rbs +68 -0
  288. data/sig/plugins/persistent.rbs +14 -0
  289. data/sig/plugins/proxy/http.rbs +30 -0
  290. data/sig/plugins/proxy/socks4.rbs +37 -0
  291. data/sig/plugins/proxy/socks5.rbs +49 -0
  292. data/sig/plugins/proxy/ssh.rbs +18 -0
  293. data/sig/plugins/proxy.rbs +70 -0
  294. data/sig/plugins/push_promise.rbs +23 -0
  295. data/sig/plugins/query.rbs +18 -0
  296. data/sig/plugins/rate_limiter.rbs +13 -0
  297. data/sig/plugins/response_cache/file_store.rbs +19 -0
  298. data/sig/plugins/response_cache/store.rbs +13 -0
  299. data/sig/plugins/response_cache.rbs +86 -0
  300. data/sig/plugins/retries.rbs +66 -0
  301. data/sig/plugins/ssrf_filter.rbs +26 -0
  302. data/sig/plugins/stream.rbs +54 -0
  303. data/sig/plugins/stream_bidi.rbs +68 -0
  304. data/sig/plugins/upgrade/h2.rbs +9 -0
  305. data/sig/plugins/upgrade.rbs +29 -0
  306. data/sig/plugins/webdav.rbs +23 -0
  307. data/sig/plugins/xml.rbs +37 -0
  308. data/sig/pool.rbs +51 -0
  309. data/sig/punycode.rbs +5 -0
  310. data/sig/request/body.rbs +34 -0
  311. data/sig/request.rbs +88 -0
  312. data/sig/resolver/entry.rbs +13 -0
  313. data/sig/resolver/https.rbs +45 -0
  314. data/sig/resolver/multi.rbs +32 -0
  315. data/sig/resolver/native.rbs +74 -0
  316. data/sig/resolver/resolver.rbs +64 -0
  317. data/sig/resolver/system.rbs +34 -0
  318. data/sig/resolver.rbs +48 -0
  319. data/sig/response/body.rbs +52 -0
  320. data/sig/response/buffer.rbs +23 -0
  321. data/sig/response.rbs +103 -0
  322. data/sig/selector.rbs +68 -0
  323. data/sig/session.rbs +104 -0
  324. data/sig/timers.rbs +54 -0
  325. data/sig/transcoder/body.rbs +24 -0
  326. data/sig/transcoder/chunker.rbs +49 -0
  327. data/sig/transcoder/deflate.rbs +12 -0
  328. data/sig/transcoder/form.rbs +34 -0
  329. data/sig/transcoder/gzip.rbs +27 -0
  330. data/sig/transcoder/json.rbs +28 -0
  331. data/sig/transcoder/multipart.rbs +103 -0
  332. data/sig/transcoder/utils/body_reader.rbs +15 -0
  333. data/sig/transcoder/utils/deflater.rbs +28 -0
  334. data/sig/transcoder.rbs +43 -0
  335. data/sig/utils.rbs +19 -0
  336. metadata +518 -0
data/sig/callbacks.rbs ADDED
@@ -0,0 +1,15 @@
1
+ module HTTPX
2
+ interface _Callable
3
+ def call: (*untyped) -> void
4
+ end
5
+
6
+ module Callbacks
7
+ def on: (Symbol) { (*untyped) -> void } -> ^(*untyped) -> void
8
+ def once: (Symbol) { (*untyped) -> void } -> ^(*untyped) -> void
9
+ def emit: (Symbol, *untyped) -> void
10
+
11
+ def callbacks_for?: (Symbol) -> boolish
12
+ def callbacks: () -> Hash[Symbol, Array[_Callable]]
13
+ | (Symbol) -> Array[_Callable]
14
+ end
15
+ end
data/sig/chainable.rbs ADDED
@@ -0,0 +1,55 @@
1
+ module HTTPX
2
+ module Chainable
3
+ def request: (*Request, **untyped) -> Array[response]
4
+ | (Request, **untyped) -> response
5
+ | (verb, uri | [uri], **untyped) -> response
6
+ | (Array[[verb, uri] | [verb, uri, request_params]], **untyped) -> Array[response]
7
+ | (verb, _Each[uri | [uri, request_params]], **untyped) -> Array[response]
8
+
9
+ def accept: (String) -> Session
10
+ def wrap: () { (Session) -> void } -> void
11
+
12
+ def with: (options) -> Session
13
+ | (options) { (Session) -> void } -> void
14
+
15
+ def plugin: (:auth, ?options) -> Plugins::sessionAuthorization
16
+ | (:basic_auth, ?options) -> Plugins::sessionBasicAuth
17
+ | (:digest_auth, ?options) -> Plugins::sessionDigestAuth
18
+ | (:ntlm_auth, ?options) -> Plugins::sessionNTLMAuth
19
+ | (:aws_sdk_authentication, ?options) -> Plugins::sessionAwsSdkAuthentication
20
+ | (:brotli, ?options) -> Session
21
+ | (:cookies, ?options) -> Plugins::sessionCookies
22
+ | (:expect, ?options) -> Session
23
+ | (:follow_redirects, ?options) -> Plugins::sessionFollowRedirects
24
+ | (:upgrade, ?options) -> Plugins::sessionUpgrade
25
+ | (:h2c, ?options) -> Plugins::sessionUpgrade
26
+ | (:h2, ?options) -> Plugins::sessionUpgrade
27
+ | (:fiber_concurrency, ?options) -> Plugins::sessionFiberConcurrency
28
+ | (:persistent, ?options) -> Plugins::sessionPersistent
29
+ | (:proxy, ?options) -> (Plugins::sessionProxy & Plugins::httpProxy)
30
+ | (:push_promise, ?options) -> Plugins::sessionPushPromise
31
+ | (:retries, ?options) -> Plugins::sessionRetries
32
+ | (:rate_limiter, ?options) -> Session
33
+ | (:stream, ?options) -> Plugins::sessionStream
34
+ | (:stream_bidi, ?options) -> Plugins::sessionStreamBidi
35
+ | (:aws_sigv4, ?options) -> Plugins::awsSigV4Session
36
+ | (:grpc, ?options) -> Plugins::grpcSession
37
+ | (:response_cache, ?options) -> Plugins::sessionResponseCache
38
+ | (:circuit_breaker, ?options) -> Plugins::sessionCircuitBreaker
39
+ | (:oauth, ?options) -> Plugins::sessionOAuth
40
+ | (:callbacks, ?options) -> Plugins::sessionCallbacks
41
+ | (:content_digest, ?options) -> Plugins::sessionContentDigest
42
+ | (:ssrf_filter, ?options) -> Plugins::sessionSsrf
43
+ | (:webdav, ?options) -> Plugins::sessionWebDav
44
+ | (:xml, ?options) -> Plugins::sessionXML
45
+ | (:query, ?options) -> Plugins::sessionQuery
46
+ | (Symbol | Module, ?options) { (Class) -> void } -> Session
47
+ | (Symbol | Module, ?options) -> Session
48
+
49
+ private
50
+
51
+ def default_options: () -> Options
52
+ def branch: (options) -> Session
53
+ | (options) { (Session) -> void } -> Session
54
+ end
55
+ end
@@ -0,0 +1,85 @@
1
+ module HTTPX
2
+ class Connection::HTTP1
3
+ include Callbacks
4
+ include Loggable
5
+
6
+ UPCASED: Hash[String, String]
7
+ MAX_REQUESTS: Integer
8
+ CRLF: String
9
+
10
+ attr_reader pending: Array[Request]
11
+ attr_reader requests: Array[Request]
12
+
13
+ attr_accessor max_concurrent_requests: Integer
14
+
15
+ @options: Options
16
+ @max_requests: Integer
17
+ @parser: Parser::HTTP1
18
+ @buffer: Buffer
19
+ @version: [Integer, Integer]
20
+ @handshake_completed: bool
21
+ @pipelining: bool
22
+
23
+ @request: Request?
24
+
25
+ def interests: () -> io_interests?
26
+
27
+ def reset: () -> void
28
+
29
+ def close: () -> void
30
+
31
+ def empty?: () -> bool
32
+
33
+ def exhausted?: () -> bool
34
+
35
+ def <<: (string) -> void
36
+
37
+ def send: (Request) -> void
38
+
39
+ def consume: () -> void
40
+
41
+ def handle_error: (StandardError ex, ?Request? request) -> void
42
+
43
+ def on_start: () -> void
44
+
45
+ def on_headers: (Hash[String, Array[String]] headers) -> void
46
+
47
+ def on_trailers: (Hash[String, Array[String]] headers) -> void
48
+
49
+ def on_data: (String chunk) -> void
50
+
51
+ def on_complete: () -> void
52
+
53
+ def dispatch: () -> void
54
+
55
+ def ping: () -> void
56
+
57
+ def waiting_for_ping?: () -> bool
58
+
59
+ def timeout: () -> Numeric?
60
+
61
+ private
62
+
63
+ def initialize: (Buffer buffer, Options options) -> untyped
64
+
65
+ def manage_connection: (Request request, Response response) -> void
66
+
67
+ def disable: () -> void
68
+
69
+ def disable_pipelining: () -> void
70
+
71
+ def set_protocol_headers: (Request request) -> _Each[[String, String]]
72
+
73
+ def handle: (Request request) -> void
74
+
75
+ def join_headers: (Request request) -> void
76
+
77
+ def join_trailers: (Request request) -> void
78
+
79
+ def join_headers2: (_Each[[String, String]] headers) -> void
80
+
81
+ def join_body: (Request request) -> void
82
+
83
+ def capitalized: (String field) -> String
84
+ end
85
+ end
@@ -0,0 +1,116 @@
1
+ module HTTPX
2
+ class Connection::HTTP2
3
+ include Callbacks
4
+ include Loggable
5
+
6
+ MAX_CONCURRENT_REQUESTS: Integer
7
+
8
+ attr_reader streams: Hash[Request, ::HTTP2::Stream]
9
+ attr_reader pending: Array[Request]
10
+
11
+ @connection: HTTP2::Client
12
+ @options: Options
13
+ @settings: Hash[Symbol, Integer | bool]
14
+ @max_concurrent_requests: Integer
15
+ @max_requests: Integer
16
+ @drains: Hash[Request, String]
17
+ @pings: Array[String]
18
+ @buffer: Buffer
19
+ @handshake_completed: bool
20
+ @wait_for_handshake: bool
21
+
22
+ def interests: () -> io_interests?
23
+
24
+ def close: () -> void
25
+
26
+ def empty?: () -> bool
27
+
28
+ def exhausted?: () -> bool
29
+
30
+ def <<: (string) -> void
31
+
32
+ def send: (Request request, ?bool head) -> bool
33
+
34
+ def consume: () -> void
35
+
36
+ def handle_error: (StandardError ex, ?Request? request) -> void
37
+
38
+ def ping: () -> void
39
+
40
+ def waiting_for_ping?: () -> bool
41
+
42
+ alias reset init_connection
43
+
44
+ def timeout: () -> Numeric?
45
+
46
+ private
47
+
48
+ def initialize: (Buffer buffer, Options options) -> untyped
49
+
50
+ def can_buffer_more_requests?: () -> bool
51
+
52
+ def send_pending: () -> void
53
+
54
+ def set_protocol_headers: (Request) -> _Each[[String, String]]
55
+
56
+ def handle: (Request request, ::HTTP2::Stream stream) -> void
57
+
58
+ def init_connection: () -> void
59
+
60
+ def handle_stream: (::HTTP2::Stream stream, Request request) -> void
61
+
62
+ def join_headline: (Request request) -> String
63
+
64
+ def join_headers: (::HTTP2::Stream stream, Request request) -> void
65
+
66
+ def join_trailers: (::HTTP2::Stream stream, Request request) -> void
67
+
68
+ def join_body: (::HTTP2::Stream stream, Request request) -> void
69
+
70
+ def send_chunk: (Request request, ::HTTP2::Stream stream, String chunk, String? next_chunk) -> void
71
+
72
+ def end_stream?: (Request request, String? next_chunk) -> void
73
+
74
+ def on_stream_headers: (::HTTP2::Stream stream, Request request, Array[[String, String]] headers) -> void
75
+
76
+ def on_stream_trailers: (::HTTP2::Stream stream, Response response, Array[[String, String]] headers) -> void
77
+
78
+ def on_stream_data: (::HTTP2::Stream stream, Request request, String data) -> void
79
+
80
+ def on_stream_refuse: (::HTTP2::Stream stream, Request request, StandardError error) -> void
81
+
82
+ def on_stream_close: (::HTTP2::Stream stream, Request request, (Symbol | StandardError)? error) -> void
83
+
84
+ def on_frame: (string bytes) -> void
85
+
86
+ def on_settings: (*untyped) -> void
87
+
88
+ def on_close: (Integer last_frame, Symbol? error, String? payload) -> void
89
+
90
+ def on_frame_sent: (::HTTP2::frame) -> void
91
+
92
+ def on_frame_received: (::HTTP2::frame) -> void
93
+
94
+ def on_altsvc: (String origin, ::HTTP2::frame) -> void
95
+
96
+ def on_promise: (::HTTP2::Stream) -> void
97
+
98
+ def on_origin: (String) -> void
99
+
100
+ def on_pong: (string ping) -> void
101
+
102
+ def teardown: (?Request? request) -> void
103
+
104
+ class Error < ::HTTPX::Error
105
+ def initialize: (Integer id, Symbol | StandardError error) -> void
106
+ end
107
+
108
+ class GoawayError < Error
109
+ def initialize: (?Symbol code) -> void
110
+ end
111
+
112
+ class PingError < Error
113
+ def initialize: () -> void
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,169 @@
1
+ module HTTPX
2
+ class Connection
3
+ interface _Parser
4
+
5
+ def on: (Symbol) { (*untyped) -> void } -> void
6
+ def empty?: () -> bool
7
+ # def exhausted?: () -> bool
8
+ def close: () -> void
9
+ def consume: () -> void
10
+ def <<: (string) -> void
11
+ # def send: (Request) -> void
12
+ # def ping: () -> void
13
+ # def timeout: () -> (Integer | Float)
14
+
15
+ end
16
+
17
+ extend Forwardable
18
+ include Loggable
19
+ include Callbacks
20
+
21
+
22
+ attr_reader type: io_type
23
+ attr_reader io: TCP | SSL | UNIX | nil
24
+ attr_reader origin: http_uri
25
+ attr_reader origins: Array[String]
26
+ attr_reader state: Symbol
27
+ attr_reader pending: Array[Request]
28
+ attr_reader options: Options
29
+ attr_reader ssl_session: OpenSSL::SSL::Session?
30
+ attr_reader sibling: instance?
31
+ attr_writer current_selector: Selector?
32
+ attr_accessor current_session: Session?
33
+ attr_accessor family: Integer?
34
+
35
+
36
+ @window_size: Integer
37
+ @read_buffer: Buffer
38
+ @write_buffer: Buffer
39
+ @inflight: Integer
40
+ @keep_alive_timeout: Numeric?
41
+ @timeout: Numeric?
42
+ @current_timeout: Numeric?
43
+ @parser: Object & _Parser
44
+ @connected_at: Float
45
+ @response_received_at: Float
46
+ @exhausted: bool
47
+ @cloned: bool
48
+ @coalesced_connection: instance?
49
+ @sibling: instance?
50
+ @main_sibling: bool
51
+
52
+
53
+ def addresses: () -> Array[Resolver::Entry]?
54
+
55
+ def peer: () -> URI::Generic
56
+
57
+ def addresses=: (Array[Resolver::Entry] addresses) -> void
58
+
59
+ def send: (Request request) -> void
60
+
61
+ def addresses?: () -> boolish
62
+
63
+ def match?: (URI::Generic uri, Options options) -> bool
64
+
65
+ def mergeable?: (Connection connection) -> bool
66
+
67
+ def coalesce!: (instance connection) -> void
68
+
69
+ def coalescable?: (Connection connection) -> bool
70
+
71
+ def create_idle: (?Hash[Symbol, untyped] options) -> instance
72
+
73
+ def merge: (Connection connection) -> void
74
+
75
+ def purge_pending: () { (Request request) -> void } -> void
76
+
77
+ def connecting?: () -> bool
78
+
79
+ def io_connected?: () -> bool
80
+
81
+ def inflight?: () -> boolish
82
+
83
+ def interests: () -> io_interests?
84
+
85
+ def to_io: () -> IO
86
+
87
+ def call: () -> void
88
+
89
+ def terminate: () -> void
90
+
91
+ def close: () -> void
92
+
93
+ def force_reset: (?bool cloned) -> void
94
+
95
+ def reset: () -> void
96
+
97
+ def timeout: () -> Numeric?
98
+
99
+ def idling: () -> void
100
+
101
+ def used?: () -> boolish
102
+
103
+ def deactivate: () -> void
104
+
105
+ def open?: () -> bool
106
+
107
+ def handle_socket_timeout: (Numeric interval) -> void
108
+
109
+ def sibling=: (instance? connection) -> void
110
+
111
+ def handle_connect_error: (StandardError error) -> void
112
+
113
+ def disconnect: () -> void
114
+
115
+ private
116
+
117
+ def initialize: (http_uri uri, Options options) -> void
118
+
119
+ def initialize_type: (http_uri uri, Options options) -> io_type
120
+
121
+ def connect: () -> void
122
+
123
+ def exhausted?: () -> boolish
124
+
125
+ def consume: () -> void
126
+
127
+ def send_pending: () -> void
128
+
129
+ def parser: () -> (Object & _Parser)
130
+
131
+ def send_request_to_parser: (Request request) -> void
132
+
133
+ def build_parser: (?String protocol) -> (Object & _Parser)
134
+
135
+ def set_parser_callbacks: (HTTP1 | HTTP2 parser) -> void
136
+
137
+ def transition: (Symbol nextstate) -> void
138
+
139
+ def handle_transition: (Symbol nextstate) -> void
140
+
141
+ def build_altsvc_connection: (URI::Generic alt_origin, String origin, Hash[String, String] alt_params) -> void
142
+
143
+ def build_socket: (?Array[Resolver::Entry]? addrs) -> (TCP | SSL | UNIX)
144
+
145
+ def on_error: (HTTPX::TimeoutError | Error | StandardError error, ?Request? request) -> void
146
+
147
+ def handle_error: (StandardError error, ?Request? request) -> void
148
+
149
+ def close_sibling: () -> void
150
+
151
+ def purge_after_closed: () -> void
152
+
153
+ def set_request_timeouts: (Request request) -> void
154
+
155
+ def set_request_read_timeout: (Request request) -> void
156
+
157
+ def set_request_write_timeout: (Request request) -> void
158
+
159
+ def set_request_request_timeout: (Request request) -> void
160
+
161
+ def write_timeout_callback: (Request request, Numeric write_timeout) -> void
162
+
163
+ def read_timeout_callback: (Request request, Numeric read_timeout, ?singleton(RequestTimeoutError) error_type) -> void
164
+
165
+ def set_request_timeout: (Symbol label, Request request, Numeric timeout, Symbol start_event, Symbol | Array[Symbol] finish_events) { () -> void } -> void
166
+
167
+ def parser_type: (String protocol) -> (singleton(HTTP1) | singleton(HTTP2))
168
+ end
169
+ end
@@ -0,0 +1,17 @@
1
+ module HTTPX
2
+ class DomainName
3
+ type domain = string | DomainName
4
+
5
+ include Comparable
6
+
7
+ def normalize: (String) -> String
8
+
9
+ def cookie_domain?: (domain, ?bool?) -> bool
10
+
11
+ def self.new: (domain) -> untyped
12
+
13
+ private
14
+
15
+ def initialize: (string) -> untyped
16
+ end
17
+ end
data/sig/errors.rbs ADDED
@@ -0,0 +1,69 @@
1
+ module HTTPX
2
+ class Error < StandardError
3
+ end
4
+
5
+ class UnsupportedSchemeError < Error
6
+ end
7
+
8
+ class ConnectionError < Error
9
+ end
10
+
11
+ class TimeoutError < Error
12
+ attr_reader timeout: Numeric
13
+
14
+ def to_connection_error: () -> ConnectTimeoutError
15
+ private
16
+
17
+ def initialize: (Numeric timeout, String message) -> untyped
18
+ end
19
+
20
+ class PoolTimeoutError < TimeoutError
21
+ end
22
+
23
+ class ConnectTimeoutError < TimeoutError
24
+ end
25
+
26
+ class SettingsTimeoutError < TimeoutError
27
+ end
28
+
29
+ class ResolveTimeoutError < TimeoutError
30
+ end
31
+
32
+ class RequestTimeoutError < TimeoutError
33
+ attr_reader request: Request
34
+ attr_reader response: response?
35
+
36
+ def initialize: (Request request, response? response, Numeric timeout) -> void
37
+ end
38
+
39
+ class ReadTimeoutError < RequestTimeoutError
40
+ end
41
+
42
+ class WriteTimeoutError < RequestTimeoutError
43
+ end
44
+
45
+ class OperationTimeoutError < TimeoutError
46
+ end
47
+
48
+ class ResolveError < Error
49
+ end
50
+
51
+ class HTTPError < Error
52
+ attr_reader response: Response
53
+
54
+ def status: () -> Integer
55
+
56
+ private
57
+
58
+ def initialize: (Response response) -> void
59
+ end
60
+
61
+ class NativeResolveError < ResolveError
62
+ attr_accessor connection: Connection?
63
+ attr_reader host: String
64
+
65
+ private
66
+
67
+ def initialize: (Connection connection, String hostname, ?String message) -> untyped
68
+ end
69
+ end
data/sig/headers.rbs ADDED
@@ -0,0 +1,49 @@
1
+ module HTTPX
2
+ class Headers
3
+ include _ToS
4
+
5
+ @headers: Hash[String, Array[_ToS]]
6
+
7
+ def self.new: (?untyped headers) -> instance
8
+
9
+ def ==: (untyped other) -> bool
10
+
11
+ def []: (String field) -> String?
12
+ def []=: (String field, headers_value value) -> void
13
+
14
+ def add: (String field, String value) -> void
15
+ def delete: (String field) -> Array[_ToS]?
16
+
17
+ def each: (?_Each[[String, String]]? extra_headers) { (String k, String v) -> void } -> void
18
+ | (?_Each[[String, String]]? extra_headers) -> Enumerable[[String, String]]
19
+
20
+ def get: (String field) -> Array[_ToS]
21
+ def key?: (String downcased_key) -> bool
22
+
23
+ def merge: (_Each[[String, headers_value]] other) -> Headers
24
+
25
+ def empty?: () -> bool
26
+
27
+ def to_a: () -> Array[[String, String]]
28
+
29
+ def to_hash: () -> Hash[String, String]
30
+
31
+ alias to_h to_hash
32
+
33
+ def inspect: () -> String
34
+
35
+ private
36
+
37
+ def initialize: (?(headers_input | instance)?) -> void
38
+
39
+ def array_value: (headers_value value) -> Array[_ToS]
40
+
41
+ def downcased: (header_field field) -> String
42
+ end
43
+
44
+ type header_field = string | _ToS
45
+ type headers_value = _ToS | Array[_ToS]
46
+ type headers_hash = Hash[header_field, headers_value]
47
+ type headers_input = headers_hash | Array[[header_field, headers_value]]
48
+ type headers = Headers | headers_input
49
+ end
data/sig/httpx.rbs ADDED
@@ -0,0 +1,27 @@
1
+ module HTTPX
2
+ extend Chainable
3
+
4
+ EMPTY: Array[untyped]
5
+ EMPTY_HASH: Hash[untyped, untyped]
6
+
7
+ VERSION: String
8
+
9
+ type http_uri = URI::HTTP | URI::HTTPS
10
+ type uri = http_uri | string
11
+ type generic_uri = String | URI::Generic
12
+
13
+ type verb = String
14
+
15
+ type request_params = Hash[Symbol, untyped]
16
+
17
+ type ip_family = Integer #Socket::AF_INET6 | Socket::AF_INET
18
+
19
+ module Plugins
20
+ self.@plugins: Hash[Symbol, Module]
21
+ self.@plugins_mutex: Thread::Mutex
22
+
23
+ def self?.load_plugin: (Symbol name) -> Module
24
+
25
+ def self?.register_plugin: (Symbol, Module) -> void
26
+ end
27
+ end
data/sig/io/ssl.rbs ADDED
@@ -0,0 +1,27 @@
1
+ module HTTPX
2
+
3
+ class TLSError < OpenSSL::SSL::SSLError
4
+ end
5
+
6
+ class SSL < TCP
7
+ TLS_OPTIONS: Hash[Symbol, untyped]
8
+
9
+ @ctx: OpenSSL::SSL::SSLContext
10
+ @verify_hostname: bool
11
+
12
+ attr_writer ssl_session: OpenSSL::SSL::Session?
13
+
14
+ # TODO: lift when https://github.com/ruby/rbs/issues/1497 fixed
15
+ # def initialize: (URI::Generic origin, Array[Resolver::Entry]? addresses, options options) ?{ (self) -> void } -> void
16
+
17
+ def session_new_cb: { (OpenSSL::SSL::Session sess) -> void } -> void
18
+ def can_verify_peer?: () -> bool
19
+
20
+ def verify_hostname: (String host) -> bool
21
+
22
+ def ssl_session_expired?: () -> boolish
23
+
24
+ # :nocov:
25
+ def try_ssl_connect: () -> void
26
+ end
27
+ end
data/sig/io/tcp.rbs ADDED
@@ -0,0 +1,72 @@
1
+ module HTTPX
2
+ class TCP
3
+ include Loggable
4
+
5
+ attr_reader ip: Resolver::Entry?
6
+
7
+ attr_reader port: Integer
8
+
9
+ attr_reader addresses: Array[Resolver::Entry]
10
+
11
+ attr_reader state: Symbol
12
+
13
+ attr_reader interests: io_interests
14
+
15
+ alias host ip
16
+
17
+ @io: Socket
18
+
19
+ @hostname: String
20
+
21
+ @options: Options
22
+
23
+ @fallback_protocol: String
24
+
25
+ @keep_open: bool
26
+
27
+ @ip_index: Integer
28
+
29
+ # TODO: lift when https://github.com/ruby/rbs/issues/1497 fixed
30
+ def initialize: (URI::Generic origin, Array[Resolver::Entry]? addresses, Options options) ?{ (instance) -> void } -> void
31
+
32
+ def add_addresses: (Array[Resolver::Entry] addrs) -> void
33
+
34
+ def addresses?: () -> bool
35
+
36
+ def to_io: () -> IO
37
+
38
+ def protocol: () -> String
39
+
40
+ def connect: () -> void
41
+
42
+ private
43
+
44
+ # :nocov:
45
+ def try_connect: () -> void
46
+
47
+ public
48
+
49
+ def read: (Integer size, ?(Buffer | String) buffer) -> (0 | nil | untyped)
50
+
51
+ def write: (Buffer buffer) -> Integer?
52
+
53
+ def close: () -> void
54
+
55
+ def connected?: () -> bool
56
+
57
+ def closed?: () -> bool
58
+
59
+ # :nocov:
60
+ def inspect: () -> ::String
61
+
62
+ private
63
+
64
+ def build_socket: () -> Socket
65
+
66
+ def transition: (Symbol nextstate) -> void
67
+
68
+ def do_transition: (Symbol nextstate) -> void
69
+
70
+ def log_transition_state: (Symbol nextstate) -> void
71
+ end
72
+ end