httpx 0.7.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +48 -0
- data/README.md +9 -5
- 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_1_0.md +9 -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/lib/httpx.rb +2 -0
- data/lib/httpx/adapters/faraday.rb +1 -1
- data/lib/httpx/altsvc.rb +18 -2
- data/lib/httpx/chainable.rb +9 -8
- data/lib/httpx/connection.rb +177 -72
- data/lib/httpx/connection/http1.rb +44 -13
- data/lib/httpx/connection/http2.rb +77 -34
- data/lib/httpx/domain_name.rb +440 -0
- data/lib/httpx/errors.rb +1 -0
- data/lib/httpx/extensions.rb +23 -3
- data/lib/httpx/headers.rb +2 -2
- data/lib/httpx/io/ssl.rb +11 -4
- data/lib/httpx/io/tcp.rb +16 -5
- data/lib/httpx/io/udp.rb +4 -1
- data/lib/httpx/loggable.rb +6 -6
- data/lib/httpx/options.rb +22 -15
- data/lib/httpx/parser/http1.rb +14 -17
- data/lib/httpx/plugins/compression.rb +49 -64
- data/lib/httpx/plugins/compression/brotli.rb +10 -14
- data/lib/httpx/plugins/compression/deflate.rb +7 -6
- data/lib/httpx/plugins/compression/gzip.rb +45 -17
- data/lib/httpx/plugins/cookies.rb +21 -60
- data/lib/httpx/plugins/cookies/cookie.rb +173 -0
- data/lib/httpx/plugins/cookies/jar.rb +74 -0
- data/lib/httpx/plugins/cookies/set_cookie_parser.rb +142 -0
- data/lib/httpx/plugins/digest_authentication.rb +2 -0
- data/lib/httpx/plugins/expect.rb +12 -1
- data/lib/httpx/plugins/follow_redirects.rb +20 -2
- data/lib/httpx/plugins/h2c.rb +1 -1
- data/lib/httpx/plugins/multipart.rb +0 -8
- data/lib/httpx/plugins/persistent.rb +6 -1
- data/lib/httpx/plugins/proxy.rb +16 -12
- data/lib/httpx/plugins/proxy/http.rb +7 -2
- data/lib/httpx/plugins/proxy/socks4.rb +4 -2
- data/lib/httpx/plugins/proxy/socks5.rb +5 -1
- data/lib/httpx/plugins/push_promise.rb +2 -2
- data/lib/httpx/plugins/rate_limiter.rb +51 -0
- data/lib/httpx/plugins/retries.rb +13 -6
- data/lib/httpx/plugins/stream.rb +109 -13
- data/lib/httpx/pool.rb +13 -15
- data/lib/httpx/registry.rb +2 -1
- data/lib/httpx/request.rb +14 -19
- data/lib/httpx/resolver.rb +7 -8
- data/lib/httpx/resolver/https.rb +22 -5
- data/lib/httpx/resolver/native.rb +27 -33
- data/lib/httpx/resolver/options.rb +2 -2
- data/lib/httpx/resolver/resolver_mixin.rb +1 -1
- data/lib/httpx/response.rb +22 -17
- data/lib/httpx/selector.rb +96 -97
- data/lib/httpx/session.rb +32 -24
- data/lib/httpx/timeout.rb +7 -1
- data/lib/httpx/transcoder/chunker.rb +0 -2
- data/lib/httpx/transcoder/form.rb +0 -6
- data/lib/httpx/transcoder/json.rb +0 -4
- data/lib/httpx/utils.rb +45 -0
- data/lib/httpx/version.rb +1 -1
- data/sig/buffer.rbs +24 -0
- data/sig/callbacks.rbs +14 -0
- data/sig/chainable.rbs +37 -0
- data/sig/connection.rbs +2 -0
- data/sig/connection/http2.rbs +4 -0
- data/sig/domain_name.rbs +17 -0
- data/sig/errors.rbs +3 -0
- data/sig/headers.rbs +42 -0
- data/sig/httpx.rbs +14 -0
- data/sig/loggable.rbs +11 -0
- data/sig/missing.rbs +12 -0
- data/sig/options.rbs +118 -0
- data/sig/parser/http1.rbs +50 -0
- data/sig/plugins/authentication.rbs +11 -0
- data/sig/plugins/basic_authentication.rbs +13 -0
- data/sig/plugins/compression.rbs +55 -0
- data/sig/plugins/compression/brotli.rbs +21 -0
- data/sig/plugins/compression/deflate.rbs +17 -0
- data/sig/plugins/compression/gzip.rbs +29 -0
- data/sig/plugins/cookies.rbs +26 -0
- data/sig/plugins/cookies/cookie.rbs +50 -0
- data/sig/plugins/cookies/jar.rbs +27 -0
- data/sig/plugins/digest_authentication.rbs +33 -0
- data/sig/plugins/expect.rbs +19 -0
- data/sig/plugins/follow_redirects.rbs +37 -0
- data/sig/plugins/h2c.rbs +26 -0
- data/sig/plugins/multipart.rbs +19 -0
- data/sig/plugins/persistent.rbs +17 -0
- data/sig/plugins/proxy.rbs +47 -0
- data/sig/plugins/proxy/http.rbs +14 -0
- data/sig/plugins/proxy/socks4.rbs +33 -0
- data/sig/plugins/proxy/socks5.rbs +36 -0
- data/sig/plugins/proxy/ssh.rbs +18 -0
- data/sig/plugins/push_promise.rbs +22 -0
- data/sig/plugins/rate_limiter.rbs +11 -0
- data/sig/plugins/retries.rbs +48 -0
- data/sig/plugins/stream.rbs +39 -0
- data/sig/pool.rbs +2 -0
- data/sig/registry.rbs +9 -0
- data/sig/request.rbs +61 -0
- data/sig/response.rbs +87 -0
- data/sig/session.rbs +49 -0
- data/sig/test.rbs +9 -0
- data/sig/timeout.rbs +29 -0
- data/sig/transcoder.rbs +16 -0
- data/sig/transcoder/body.rbs +18 -0
- data/sig/transcoder/chunker.rbs +32 -0
- data/sig/transcoder/form.rbs +16 -0
- data/sig/transcoder/json.rbs +14 -0
- metadata +120 -21
data/sig/missing.rbs
ADDED
data/sig/options.rbs
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
module HTTPX
|
2
|
+
class Options
|
3
|
+
# include _ToHash
|
4
|
+
|
5
|
+
WINDOW_SIZE: Integer
|
6
|
+
MAX_BODY_THRESHOLD_SIZE: Integer
|
7
|
+
|
8
|
+
def self.new: (options) -> instance
|
9
|
+
| () -> instance
|
10
|
+
|
11
|
+
# headers
|
12
|
+
attr_reader headers: Headers?
|
13
|
+
def headers=: (headers) -> void
|
14
|
+
def with_headers: (headers) -> instance
|
15
|
+
|
16
|
+
# timeout
|
17
|
+
attr_reader timeout: Timeout?
|
18
|
+
def timeout=: (Hash[Symbol, untyped] | Timeout) -> void
|
19
|
+
def with_timeout: (Hash[Symbol, untyped] | Timeout) -> instance
|
20
|
+
|
21
|
+
# max_concurrent_requests
|
22
|
+
attr_reader max_concurrent_requests: Integer?
|
23
|
+
def max_concurrent_requests=: (Integer) -> void
|
24
|
+
def with_max_concurrent_requests: (Integer) -> instance
|
25
|
+
|
26
|
+
# max_requests
|
27
|
+
attr_reader max_requests: Integer?
|
28
|
+
def max_requests=: (Integer) -> void
|
29
|
+
def with_max_requests: (Integer) -> instance
|
30
|
+
|
31
|
+
# window_size
|
32
|
+
attr_reader window_size: int?
|
33
|
+
def window_size=: (int) -> void
|
34
|
+
def with_window_size: (int) -> instance
|
35
|
+
|
36
|
+
# body_threshold_size
|
37
|
+
attr_reader body_threshold_size: int?
|
38
|
+
def body_threshold_size=: (int) -> void
|
39
|
+
def with_body_threshold_size: (int) -> instance
|
40
|
+
|
41
|
+
# transport
|
42
|
+
attr_reader transport: _ToS?
|
43
|
+
def transport=: (_ToS) -> void
|
44
|
+
def with_transport: (_ToS) -> instance
|
45
|
+
|
46
|
+
# transport_options
|
47
|
+
attr_reader transport_options: Hash[untyped, untyped]?
|
48
|
+
def transport_options=: (Hash[untyped, untyped]) -> void
|
49
|
+
def with_transport_options: (Hash[untyped, untyped]) -> instance
|
50
|
+
|
51
|
+
# params
|
52
|
+
attr_reader params: Transcoder::urlencoded_input?
|
53
|
+
def params=: (Transcoder::urlencoded_input) -> void
|
54
|
+
def with_params: (Transcoder::urlencoded_input) -> instance
|
55
|
+
|
56
|
+
# form
|
57
|
+
attr_reader form: Transcoder::urlencoded_input?
|
58
|
+
def form=: (Transcoder::urlencoded_input) -> void
|
59
|
+
def with_form: (Transcoder::urlencoded_input) -> instance
|
60
|
+
|
61
|
+
# json
|
62
|
+
attr_reader json: _ToJson?
|
63
|
+
def json=: (_ToJson) -> void
|
64
|
+
def with_json: (_ToJson) -> instance
|
65
|
+
|
66
|
+
# body
|
67
|
+
attr_reader body: bodyIO?
|
68
|
+
def body=: (bodyIO) -> void
|
69
|
+
def with_body: (bodyIO) -> instance
|
70
|
+
|
71
|
+
# ssl
|
72
|
+
|
73
|
+
# http2_settings
|
74
|
+
|
75
|
+
# request_class response_class headers_class request_body_class
|
76
|
+
# response_body_class connection_class
|
77
|
+
# resolver_class resolver_options
|
78
|
+
|
79
|
+
# request_class
|
80
|
+
# attr_reader request_class: singleton(Request)
|
81
|
+
# def request_class=: (singleton(Request)) -> void
|
82
|
+
# def with_request_class: (singleton(Request)) -> instance
|
83
|
+
|
84
|
+
# io
|
85
|
+
attr_reader io: _ToIO?
|
86
|
+
def io=: (_ToIO) -> void
|
87
|
+
def with_io: (_ToIO) -> instance
|
88
|
+
|
89
|
+
# fallback_protocol
|
90
|
+
attr_reader fallback_protocol: String?
|
91
|
+
def fallback_protocol=: (String) -> void
|
92
|
+
def with_fallback_protocol: (String) -> instance
|
93
|
+
|
94
|
+
# debug
|
95
|
+
attr_reader debug: _IOLogger?
|
96
|
+
def debug=: (_IOLogger) -> void
|
97
|
+
def with_debug: (_IOLogger) -> instance
|
98
|
+
|
99
|
+
# debug_level
|
100
|
+
attr_reader debug_level: Integer?
|
101
|
+
def debug_level=: (Integer) -> void
|
102
|
+
def with_debug_level: (Integer) -> instance
|
103
|
+
|
104
|
+
# persistent
|
105
|
+
attr_reader persistent: bool?
|
106
|
+
def persistent=: (bool) -> void
|
107
|
+
def with_persistent: (bool) -> instance
|
108
|
+
|
109
|
+
def ==: (untyped other) -> bool
|
110
|
+
def merge: (_ToHash other) -> instance
|
111
|
+
|
112
|
+
private
|
113
|
+
|
114
|
+
def initialize: (options) -> untyped
|
115
|
+
end
|
116
|
+
|
117
|
+
type options = Options | Hash[Symbol | String, untyped]
|
118
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Parser
|
3
|
+
type parsed_headers = Hash[String, Array[String]]
|
4
|
+
|
5
|
+
interface _HTTP1Events
|
6
|
+
|
7
|
+
def on_start: () -> void
|
8
|
+
def on_headers: (parsed_headers) -> void
|
9
|
+
def on_trailers: (parsed_headers) -> void
|
10
|
+
def on_data: (String) -> void
|
11
|
+
def on_complete: () -> void
|
12
|
+
end
|
13
|
+
|
14
|
+
class HTTP1
|
15
|
+
VERSIONS: Array[String]
|
16
|
+
|
17
|
+
def <<: (String chunk) -> void
|
18
|
+
|
19
|
+
def headers: () -> parsed_headers
|
20
|
+
|
21
|
+
def http_version: () -> Array[1 | 0]
|
22
|
+
|
23
|
+
def reset!: () -> void
|
24
|
+
|
25
|
+
def status_code: () -> Integer
|
26
|
+
|
27
|
+
def upgrade?: () -> bool
|
28
|
+
|
29
|
+
def upgrade_data: () -> String
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def initialize: (_HTTP1Events observer) -> untyped
|
34
|
+
|
35
|
+
def nextstate: (Symbol state) -> void
|
36
|
+
|
37
|
+
def no_more_data?: () -> bool
|
38
|
+
|
39
|
+
def parse: () -> void
|
40
|
+
|
41
|
+
def parse_data: () -> void
|
42
|
+
|
43
|
+
def parse_headers: () -> void
|
44
|
+
|
45
|
+
def parse_headline: () -> void
|
46
|
+
|
47
|
+
def prepare_data: (parsed_headers headers) -> void
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module BasicAuthentication
|
4
|
+
# def self.load_dependencies: (singleton(Session)) -> void
|
5
|
+
|
6
|
+
module InstanceMethods
|
7
|
+
def basic_authentication: (string user, string password) -> instance
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
type sessionBasicAuthentication = Plugins::sessionAuthentication & Plugins::Authentication::InstanceMethods
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module Compression
|
4
|
+
extend Registry[Symbol, Class]
|
5
|
+
|
6
|
+
type deflatable = _Reader | _ToS
|
7
|
+
|
8
|
+
interface _Deflater
|
9
|
+
def deflate: (deflatable, _Writer, chunk_size: Integer) -> void
|
10
|
+
| (deflatable, _Writer, chunk_size: Integer) { (String) -> void } -> void
|
11
|
+
end
|
12
|
+
|
13
|
+
interface _Inflater
|
14
|
+
def inflate: (string) -> String
|
15
|
+
|
16
|
+
def initialize: (Numeric bytesize) -> untyped
|
17
|
+
end
|
18
|
+
|
19
|
+
# def self.load_dependencies: (singleton(Session)) -> void
|
20
|
+
|
21
|
+
interface _CompressionOptions
|
22
|
+
def compression_threshold_size: () -> _Integer?
|
23
|
+
def compression_threshold_size=: (int) -> int
|
24
|
+
def with_compression_threshold_size: (int) -> instance
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.extra_options: (Options) -> (Options & _CompressionOptions)
|
28
|
+
|
29
|
+
|
30
|
+
module ResponseBodyMethods
|
31
|
+
@encodings: Array[String]
|
32
|
+
@_deflaters: Array[_Decoder]
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def decompress: (string) -> String
|
37
|
+
end
|
38
|
+
|
39
|
+
class Encoder
|
40
|
+
include Transcoder::_Encoder
|
41
|
+
include _ToS
|
42
|
+
include _Each[String]
|
43
|
+
|
44
|
+
def close: () -> void
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def initialize: (deflatable body, _Deflater deflater) -> untyped
|
49
|
+
def deflate: () -> void
|
50
|
+
| () { (String) -> void } -> void
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module Compression
|
4
|
+
module Brotli
|
5
|
+
# def self.load_dependencies: (singleton(Session)) -> void
|
6
|
+
def self.configure: (*untyped) -> void
|
7
|
+
|
8
|
+
def self?.deflater: () -> _Deflater
|
9
|
+
def self?.decoder: (Numeric bytesize) -> Inflater
|
10
|
+
|
11
|
+
module Deflater
|
12
|
+
extend _Deflater
|
13
|
+
end
|
14
|
+
|
15
|
+
class Inflater
|
16
|
+
include _Inflater
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module Compression
|
4
|
+
module Deflate
|
5
|
+
# def self.load_dependencies: (singleton(Session)) -> void
|
6
|
+
def self.configure: (*untyped) -> void
|
7
|
+
|
8
|
+
def self?.deflater: () -> _Deflater
|
9
|
+
def self?.inflater: (Numeric bytesize) -> GZIP::Inflater
|
10
|
+
|
11
|
+
module Deflater
|
12
|
+
extend _Deflater
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module Compression
|
4
|
+
module GZIP
|
5
|
+
# def self.load_dependencies: (singleton(Session)) -> void
|
6
|
+
def self.configure: (*untyped) -> void
|
7
|
+
|
8
|
+
def self?.deflater: () -> _Deflater
|
9
|
+
def self?.inflater: (Numeric bytesize) -> Inflater
|
10
|
+
|
11
|
+
class Deflater
|
12
|
+
include _Deflater
|
13
|
+
|
14
|
+
@compressed_chunk: String
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def initialize: () -> untyped
|
19
|
+
def write: (string) -> void
|
20
|
+
def compressed_chunk: () -> String
|
21
|
+
end
|
22
|
+
|
23
|
+
class Inflater
|
24
|
+
include _Inflater
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module Cookies
|
4
|
+
type jar = Jar | _Each[cookies]
|
5
|
+
|
6
|
+
interface _CookieOptions
|
7
|
+
def cookies: () -> Jar?
|
8
|
+
def cookies=: (jar) -> Jar
|
9
|
+
def with_cookies: (jar) -> instance
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.extra_options: (Options) -> (Options & _CookieOptions)
|
13
|
+
|
14
|
+
module InstanceMethods
|
15
|
+
def cookies: () -> Jar
|
16
|
+
end
|
17
|
+
|
18
|
+
module HeadersMethods
|
19
|
+
def set_cookie: (Array[Cookie]) -> void
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
type sessionCookies = Session & Plugins::Cookies::InstanceMethods
|
24
|
+
type headersCookies = Headers & Plugins::Cookies::HeadersMethods
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins::Cookies
|
3
|
+
type cookie_attributes = Hash[Symbol | String, top]
|
4
|
+
|
5
|
+
class Cookie
|
6
|
+
include Comparable
|
7
|
+
|
8
|
+
MAX_LENGTH: Integer
|
9
|
+
|
10
|
+
attr_reader domain: DomainName?
|
11
|
+
|
12
|
+
attr_reader path: String
|
13
|
+
|
14
|
+
attr_reader name: String
|
15
|
+
|
16
|
+
attr_reader value: String?
|
17
|
+
|
18
|
+
attr_reader created_at: Time
|
19
|
+
|
20
|
+
def path=: (string) -> void
|
21
|
+
|
22
|
+
def domain=: (string) -> void
|
23
|
+
|
24
|
+
def expires: () -> Time?
|
25
|
+
|
26
|
+
def expired?: () -> bool
|
27
|
+
| (Time) -> bool
|
28
|
+
|
29
|
+
def cookie_value: () -> String
|
30
|
+
alias to_s cookie_value
|
31
|
+
|
32
|
+
def valid_for_uri?: (uri) -> bool
|
33
|
+
|
34
|
+
def self.new: (Cookie) -> untyped
|
35
|
+
| (cookie_attributes) -> untyped
|
36
|
+
| (String, String) -> untyped
|
37
|
+
| (String, String, cookie_attributes) -> untyped
|
38
|
+
|
39
|
+
def self.path_match?: (String, String) -> bool
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def initialize: (cookie_attributes) -> untyped
|
44
|
+
| (String, String) -> untyped
|
45
|
+
| (String, String, cookie_attributes?) -> untyped
|
46
|
+
|
47
|
+
def acceptable_from_uri?: (uri) -> bool
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins::Cookies
|
3
|
+
class Jar
|
4
|
+
type cookie = Cookie | Array[String, String, cookie_attributes] | Array[String, String] | cookie_attributes
|
5
|
+
|
6
|
+
include Enumerable[Cookie]
|
7
|
+
|
8
|
+
@cookies: Array[Cookie]
|
9
|
+
|
10
|
+
def parse: (String) -> void
|
11
|
+
|
12
|
+
def add: (Cookie) -> void
|
13
|
+
| (Cookie, String) -> void
|
14
|
+
|
15
|
+
def []: (uri) -> Array[Cookie]
|
16
|
+
|
17
|
+
def each: (uri) { (Cookie) -> void } -> void
|
18
|
+
| (uri) -> Enumerable[Cookie]
|
19
|
+
| () { (Cookie) -> void } -> void
|
20
|
+
| () -> Enumerable[Cookie]
|
21
|
+
private
|
22
|
+
|
23
|
+
def initialize: () -> void
|
24
|
+
| (_Each[cookie]) -> untyped
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module DigestAuthentication
|
4
|
+
DigestError: singleton(Error)
|
5
|
+
|
6
|
+
interface _DigestOptions
|
7
|
+
def digest: () -> Digest?
|
8
|
+
def digest=: (Digest) -> Digest
|
9
|
+
def with_digest: (Digest) -> instance
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.extra_options: (Options) -> (Options & _DigestOptions)
|
13
|
+
|
14
|
+
def self.load_dependencies: (*untyped) -> void
|
15
|
+
|
16
|
+
module InstanceMethods
|
17
|
+
def digest_authentication: (string user, string password) -> instance
|
18
|
+
end
|
19
|
+
|
20
|
+
class Digest
|
21
|
+
def generate_header: (Request, Response, ?bool?) -> String
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def initialize: (string user, string password) -> untyped
|
26
|
+
def make_cnonce: () -> String
|
27
|
+
def next_nonce: () -> Integer
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
type sessionDigestAuthentication = Plugins::sessionAuthentication & Plugins::Authentication::InstanceMethods
|
32
|
+
end
|
33
|
+
end
|