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.
- checksums.yaml +7 -0
- data/LICENSE.txt +191 -0
- data/README.md +162 -0
- data/doc/release_notes/0_0_1.md +7 -0
- data/doc/release_notes/0_0_2.md +9 -0
- data/doc/release_notes/0_0_3.md +9 -0
- data/doc/release_notes/0_0_4.md +7 -0
- data/doc/release_notes/0_0_5.md +5 -0
- data/doc/release_notes/0_10_0.md +66 -0
- data/doc/release_notes/0_10_1.md +37 -0
- data/doc/release_notes/0_10_2.md +5 -0
- data/doc/release_notes/0_11_0.md +74 -0
- data/doc/release_notes/0_11_1.md +5 -0
- data/doc/release_notes/0_11_2.md +5 -0
- data/doc/release_notes/0_11_3.md +5 -0
- data/doc/release_notes/0_12_0.md +55 -0
- data/doc/release_notes/0_13_0.md +58 -0
- data/doc/release_notes/0_13_1.md +5 -0
- data/doc/release_notes/0_13_2.md +9 -0
- data/doc/release_notes/0_14_0.md +79 -0
- data/doc/release_notes/0_14_1.md +7 -0
- data/doc/release_notes/0_14_2.md +6 -0
- data/doc/release_notes/0_14_3.md +5 -0
- data/doc/release_notes/0_14_4.md +5 -0
- data/doc/release_notes/0_14_5.md +11 -0
- data/doc/release_notes/0_15_0.md +53 -0
- data/doc/release_notes/0_15_1.md +8 -0
- data/doc/release_notes/0_15_2.md +9 -0
- data/doc/release_notes/0_15_3.md +5 -0
- data/doc/release_notes/0_15_4.md +5 -0
- data/doc/release_notes/0_16_0.md +93 -0
- data/doc/release_notes/0_16_1.md +5 -0
- data/doc/release_notes/0_17_0.md +49 -0
- data/doc/release_notes/0_18_0.md +69 -0
- data/doc/release_notes/0_18_1.md +12 -0
- data/doc/release_notes/0_18_2.md +10 -0
- data/doc/release_notes/0_18_3.md +7 -0
- data/doc/release_notes/0_18_4.md +14 -0
- data/doc/release_notes/0_18_5.md +10 -0
- data/doc/release_notes/0_18_6.md +5 -0
- data/doc/release_notes/0_18_7.md +5 -0
- data/doc/release_notes/0_19_0.md +39 -0
- data/doc/release_notes/0_19_1.md +5 -0
- data/doc/release_notes/0_19_2.md +7 -0
- data/doc/release_notes/0_19_3.md +6 -0
- data/doc/release_notes/0_19_4.md +14 -0
- data/doc/release_notes/0_19_5.md +13 -0
- data/doc/release_notes/0_19_6.md +5 -0
- data/doc/release_notes/0_19_7.md +5 -0
- data/doc/release_notes/0_19_8.md +5 -0
- data/doc/release_notes/0_1_0.md +9 -0
- data/doc/release_notes/0_20_0.md +36 -0
- data/doc/release_notes/0_20_1.md +5 -0
- data/doc/release_notes/0_20_2.md +7 -0
- data/doc/release_notes/0_20_3.md +6 -0
- data/doc/release_notes/0_20_4.md +17 -0
- data/doc/release_notes/0_20_5.md +3 -0
- data/doc/release_notes/0_21_0.md +96 -0
- data/doc/release_notes/0_21_1.md +12 -0
- data/doc/release_notes/0_22_0.md +13 -0
- data/doc/release_notes/0_22_1.md +11 -0
- data/doc/release_notes/0_22_2.md +5 -0
- data/doc/release_notes/0_22_3.md +55 -0
- data/doc/release_notes/0_22_4.md +6 -0
- data/doc/release_notes/0_22_5.md +6 -0
- data/doc/release_notes/0_23_0.md +42 -0
- data/doc/release_notes/0_23_1.md +5 -0
- data/doc/release_notes/0_23_2.md +5 -0
- data/doc/release_notes/0_23_3.md +6 -0
- data/doc/release_notes/0_23_4.md +5 -0
- data/doc/release_notes/0_24_0.md +48 -0
- data/doc/release_notes/0_24_1.md +12 -0
- data/doc/release_notes/0_24_2.md +12 -0
- data/doc/release_notes/0_24_3.md +12 -0
- data/doc/release_notes/0_24_4.md +18 -0
- data/doc/release_notes/0_24_5.md +6 -0
- data/doc/release_notes/0_24_6.md +5 -0
- data/doc/release_notes/0_24_7.md +10 -0
- data/doc/release_notes/0_2_0.md +5 -0
- data/doc/release_notes/0_2_1.md +16 -0
- data/doc/release_notes/0_3_0.md +12 -0
- data/doc/release_notes/0_3_1.md +6 -0
- data/doc/release_notes/0_4_0.md +51 -0
- data/doc/release_notes/0_4_1.md +3 -0
- data/doc/release_notes/0_5_0.md +15 -0
- data/doc/release_notes/0_5_1.md +14 -0
- data/doc/release_notes/0_6_0.md +5 -0
- data/doc/release_notes/0_6_1.md +6 -0
- data/doc/release_notes/0_6_2.md +6 -0
- data/doc/release_notes/0_6_3.md +13 -0
- data/doc/release_notes/0_6_4.md +21 -0
- data/doc/release_notes/0_6_5.md +22 -0
- data/doc/release_notes/0_6_6.md +19 -0
- data/doc/release_notes/0_6_7.md +5 -0
- data/doc/release_notes/0_7_0.md +46 -0
- data/doc/release_notes/0_8_0.md +27 -0
- data/doc/release_notes/0_8_1.md +8 -0
- data/doc/release_notes/0_8_2.md +7 -0
- data/doc/release_notes/0_9_0.md +38 -0
- data/doc/release_notes/1_0_0.md +60 -0
- data/doc/release_notes/1_0_1.md +5 -0
- data/doc/release_notes/1_0_2.md +7 -0
- data/doc/release_notes/1_1_0.md +32 -0
- data/doc/release_notes/1_1_1.md +17 -0
- data/doc/release_notes/1_1_2.md +12 -0
- data/doc/release_notes/1_1_3.md +18 -0
- data/doc/release_notes/1_1_4.md +6 -0
- data/doc/release_notes/1_1_5.md +12 -0
- data/doc/release_notes/1_2_0.md +49 -0
- data/doc/release_notes/1_2_1.md +6 -0
- data/doc/release_notes/1_2_2.md +10 -0
- data/doc/release_notes/1_2_3.md +16 -0
- data/doc/release_notes/1_2_4.md +8 -0
- data/doc/release_notes/1_2_5.md +7 -0
- data/doc/release_notes/1_2_6.md +13 -0
- data/doc/release_notes/1_3_0.md +18 -0
- data/doc/release_notes/1_3_1.md +17 -0
- data/doc/release_notes/1_3_2.md +6 -0
- data/doc/release_notes/1_3_3.md +5 -0
- data/doc/release_notes/1_3_4.md +6 -0
- data/doc/release_notes/1_4_0.md +43 -0
- data/doc/release_notes/1_4_1.md +19 -0
- data/doc/release_notes/1_4_2.md +20 -0
- data/doc/release_notes/1_4_3.md +11 -0
- data/doc/release_notes/1_4_4.md +14 -0
- data/doc/release_notes/1_5_0.md +126 -0
- data/doc/release_notes/1_5_1.md +6 -0
- data/doc/release_notes/1_6_0.md +50 -0
- data/doc/release_notes/1_6_1.md +17 -0
- data/doc/release_notes/1_6_2.md +11 -0
- data/lib/httpx/adapters/datadog.rb +359 -0
- data/lib/httpx/adapters/faraday.rb +303 -0
- data/lib/httpx/adapters/sentry.rb +121 -0
- data/lib/httpx/adapters/webmock.rb +175 -0
- data/lib/httpx/altsvc.rb +163 -0
- data/lib/httpx/base64.rb +27 -0
- data/lib/httpx/buffer.rb +61 -0
- data/lib/httpx/callbacks.rb +35 -0
- data/lib/httpx/chainable.rb +106 -0
- data/lib/httpx/connection/http1.rb +399 -0
- data/lib/httpx/connection/http2.rb +468 -0
- data/lib/httpx/connection.rb +954 -0
- data/lib/httpx/domain_name.rb +145 -0
- data/lib/httpx/errors.rb +111 -0
- data/lib/httpx/extensions.rb +59 -0
- data/lib/httpx/headers.rb +176 -0
- data/lib/httpx/io/ssl.rb +163 -0
- data/lib/httpx/io/tcp.rb +239 -0
- data/lib/httpx/io/udp.rb +62 -0
- data/lib/httpx/io/unix.rb +71 -0
- data/lib/httpx/io.rb +11 -0
- data/lib/httpx/loggable.rb +56 -0
- data/lib/httpx/options.rb +463 -0
- data/lib/httpx/parser/http1.rb +186 -0
- data/lib/httpx/plugins/auth/basic.rb +20 -0
- data/lib/httpx/plugins/auth/digest.rb +102 -0
- data/lib/httpx/plugins/auth/ntlm.rb +35 -0
- data/lib/httpx/plugins/auth/socks5.rb +22 -0
- data/lib/httpx/plugins/auth.rb +25 -0
- data/lib/httpx/plugins/aws_sdk_authentication.rb +111 -0
- data/lib/httpx/plugins/aws_sigv4.rb +239 -0
- data/lib/httpx/plugins/basic_auth.rb +29 -0
- data/lib/httpx/plugins/brotli.rb +50 -0
- data/lib/httpx/plugins/callbacks.rb +127 -0
- data/lib/httpx/plugins/circuit_breaker/circuit.rb +100 -0
- data/lib/httpx/plugins/circuit_breaker/circuit_store.rb +53 -0
- data/lib/httpx/plugins/circuit_breaker.rb +147 -0
- data/lib/httpx/plugins/content_digest.rb +204 -0
- data/lib/httpx/plugins/cookies/cookie.rb +174 -0
- data/lib/httpx/plugins/cookies/jar.rb +95 -0
- data/lib/httpx/plugins/cookies/set_cookie_parser.rb +143 -0
- data/lib/httpx/plugins/cookies.rb +107 -0
- data/lib/httpx/plugins/digest_auth.rb +67 -0
- data/lib/httpx/plugins/expect.rb +120 -0
- data/lib/httpx/plugins/fiber_concurrency.rb +195 -0
- data/lib/httpx/plugins/follow_redirects.rb +233 -0
- data/lib/httpx/plugins/grpc/call.rb +63 -0
- data/lib/httpx/plugins/grpc/grpc_encoding.rb +90 -0
- data/lib/httpx/plugins/grpc/message.rb +55 -0
- data/lib/httpx/plugins/grpc.rb +282 -0
- data/lib/httpx/plugins/h2c.rb +127 -0
- data/lib/httpx/plugins/internal_telemetry.rb +107 -0
- data/lib/httpx/plugins/ntlm_auth.rb +62 -0
- data/lib/httpx/plugins/oauth.rb +183 -0
- data/lib/httpx/plugins/persistent.rb +82 -0
- data/lib/httpx/plugins/proxy/http.rb +184 -0
- data/lib/httpx/plugins/proxy/socks4.rb +135 -0
- data/lib/httpx/plugins/proxy/socks5.rb +194 -0
- data/lib/httpx/plugins/proxy/ssh.rb +94 -0
- data/lib/httpx/plugins/proxy.rb +349 -0
- data/lib/httpx/plugins/push_promise.rb +81 -0
- data/lib/httpx/plugins/query.rb +35 -0
- data/lib/httpx/plugins/rate_limiter.rb +55 -0
- data/lib/httpx/plugins/response_cache/file_store.rb +140 -0
- data/lib/httpx/plugins/response_cache/store.rb +33 -0
- data/lib/httpx/plugins/response_cache.rb +333 -0
- data/lib/httpx/plugins/retries.rb +230 -0
- data/lib/httpx/plugins/ssrf_filter.rb +145 -0
- data/lib/httpx/plugins/stream.rb +183 -0
- data/lib/httpx/plugins/stream_bidi.rb +315 -0
- data/lib/httpx/plugins/upgrade/h2.rb +64 -0
- data/lib/httpx/plugins/upgrade.rb +86 -0
- data/lib/httpx/plugins/webdav.rb +86 -0
- data/lib/httpx/plugins/xml.rb +76 -0
- data/lib/httpx/pmatch_extensions.rb +33 -0
- data/lib/httpx/pool.rb +190 -0
- data/lib/httpx/punycode.rb +22 -0
- data/lib/httpx/request/body.rb +158 -0
- data/lib/httpx/request.rb +328 -0
- data/lib/httpx/resolver/entry.rb +30 -0
- data/lib/httpx/resolver/https.rb +256 -0
- data/lib/httpx/resolver/multi.rb +102 -0
- data/lib/httpx/resolver/native.rb +547 -0
- data/lib/httpx/resolver/resolver.rb +173 -0
- data/lib/httpx/resolver/system.rb +255 -0
- data/lib/httpx/resolver.rb +189 -0
- data/lib/httpx/response/body.rb +242 -0
- data/lib/httpx/response/buffer.rb +115 -0
- data/lib/httpx/response.rb +304 -0
- data/lib/httpx/selector.rb +282 -0
- data/lib/httpx/session.rb +612 -0
- data/lib/httpx/session_extensions.rb +30 -0
- data/lib/httpx/timers.rb +133 -0
- data/lib/httpx/transcoder/body.rb +43 -0
- data/lib/httpx/transcoder/chunker.rb +115 -0
- data/lib/httpx/transcoder/deflate.rb +37 -0
- data/lib/httpx/transcoder/form.rb +68 -0
- data/lib/httpx/transcoder/gzip.rb +71 -0
- data/lib/httpx/transcoder/json.rb +71 -0
- data/lib/httpx/transcoder/multipart/decoder.rb +141 -0
- data/lib/httpx/transcoder/multipart/encoder.rb +120 -0
- data/lib/httpx/transcoder/multipart/mime_type_detector.rb +78 -0
- data/lib/httpx/transcoder/multipart/part.rb +35 -0
- data/lib/httpx/transcoder/multipart.rb +31 -0
- data/lib/httpx/transcoder/utils/body_reader.rb +46 -0
- data/lib/httpx/transcoder/utils/deflater.rb +75 -0
- data/lib/httpx/transcoder.rb +91 -0
- data/lib/httpx/utils.rb +75 -0
- data/lib/httpx/version.rb +5 -0
- data/lib/httpx.rb +66 -0
- data/sig/altsvc.rbs +33 -0
- data/sig/buffer.rbs +27 -0
- data/sig/callbacks.rbs +15 -0
- data/sig/chainable.rbs +55 -0
- data/sig/connection/http1.rbs +85 -0
- data/sig/connection/http2.rbs +116 -0
- data/sig/connection.rbs +169 -0
- data/sig/domain_name.rbs +17 -0
- data/sig/errors.rbs +69 -0
- data/sig/headers.rbs +49 -0
- data/sig/httpx.rbs +27 -0
- data/sig/io/ssl.rbs +27 -0
- data/sig/io/tcp.rbs +72 -0
- data/sig/io/udp.rbs +25 -0
- data/sig/io/unix.rbs +26 -0
- data/sig/io.rbs +3 -0
- data/sig/loggable.rbs +17 -0
- data/sig/options.rbs +202 -0
- data/sig/parser/http1.rbs +59 -0
- data/sig/plugins/auth/basic.rbs +17 -0
- data/sig/plugins/auth/digest.rbs +25 -0
- data/sig/plugins/auth/ntlm.rbs +20 -0
- data/sig/plugins/auth/socks5.rbs +18 -0
- data/sig/plugins/auth.rbs +13 -0
- data/sig/plugins/aws_sdk_authentication.rbs +43 -0
- data/sig/plugins/aws_sigv4.rbs +78 -0
- data/sig/plugins/basic_auth.rbs +15 -0
- data/sig/plugins/brotli.rbs +22 -0
- data/sig/plugins/callbacks.rbs +38 -0
- data/sig/plugins/circuit_breaker.rbs +71 -0
- data/sig/plugins/compression.rbs +57 -0
- data/sig/plugins/content_digest.rbs +51 -0
- data/sig/plugins/cookies/cookie.rbs +55 -0
- data/sig/plugins/cookies/jar.rbs +26 -0
- data/sig/plugins/cookies/set_cookie_parser.rbs +22 -0
- data/sig/plugins/cookies.rbs +28 -0
- data/sig/plugins/digest_auth.rbs +21 -0
- data/sig/plugins/expect.rbs +15 -0
- data/sig/plugins/fiber_concurrency.rbs +51 -0
- data/sig/plugins/follow_redirects.rbs +47 -0
- data/sig/plugins/grpc/call.rbs +23 -0
- data/sig/plugins/grpc/grpc_encoding.rbs +37 -0
- data/sig/plugins/grpc/message.rbs +17 -0
- data/sig/plugins/grpc.rbs +65 -0
- data/sig/plugins/h2c.rbs +27 -0
- data/sig/plugins/ntlm_auth.rbs +21 -0
- data/sig/plugins/oauth.rbs +68 -0
- data/sig/plugins/persistent.rbs +14 -0
- data/sig/plugins/proxy/http.rbs +30 -0
- data/sig/plugins/proxy/socks4.rbs +37 -0
- data/sig/plugins/proxy/socks5.rbs +49 -0
- data/sig/plugins/proxy/ssh.rbs +18 -0
- data/sig/plugins/proxy.rbs +70 -0
- data/sig/plugins/push_promise.rbs +23 -0
- data/sig/plugins/query.rbs +18 -0
- data/sig/plugins/rate_limiter.rbs +13 -0
- data/sig/plugins/response_cache/file_store.rbs +19 -0
- data/sig/plugins/response_cache/store.rbs +13 -0
- data/sig/plugins/response_cache.rbs +86 -0
- data/sig/plugins/retries.rbs +66 -0
- data/sig/plugins/ssrf_filter.rbs +26 -0
- data/sig/plugins/stream.rbs +54 -0
- data/sig/plugins/stream_bidi.rbs +68 -0
- data/sig/plugins/upgrade/h2.rbs +9 -0
- data/sig/plugins/upgrade.rbs +29 -0
- data/sig/plugins/webdav.rbs +23 -0
- data/sig/plugins/xml.rbs +37 -0
- data/sig/pool.rbs +51 -0
- data/sig/punycode.rbs +5 -0
- data/sig/request/body.rbs +34 -0
- data/sig/request.rbs +88 -0
- data/sig/resolver/entry.rbs +13 -0
- data/sig/resolver/https.rbs +45 -0
- data/sig/resolver/multi.rbs +32 -0
- data/sig/resolver/native.rbs +74 -0
- data/sig/resolver/resolver.rbs +64 -0
- data/sig/resolver/system.rbs +34 -0
- data/sig/resolver.rbs +48 -0
- data/sig/response/body.rbs +52 -0
- data/sig/response/buffer.rbs +23 -0
- data/sig/response.rbs +103 -0
- data/sig/selector.rbs +68 -0
- data/sig/session.rbs +104 -0
- data/sig/timers.rbs +54 -0
- data/sig/transcoder/body.rbs +24 -0
- data/sig/transcoder/chunker.rbs +49 -0
- data/sig/transcoder/deflate.rbs +12 -0
- data/sig/transcoder/form.rbs +34 -0
- data/sig/transcoder/gzip.rbs +27 -0
- data/sig/transcoder/json.rbs +28 -0
- data/sig/transcoder/multipart.rbs +103 -0
- data/sig/transcoder/utils/body_reader.rbs +15 -0
- data/sig/transcoder/utils/deflater.rbs +28 -0
- data/sig/transcoder.rbs +43 -0
- data/sig/utils.rbs +19 -0
- 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
|
data/sig/connection.rbs
ADDED
|
@@ -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
|
data/sig/domain_name.rbs
ADDED
|
@@ -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
|