modern_treasury 0.1.0.pre.alpha.17 → 0.1.0.pre.alpha.18

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +635 -0
  4. data/README.md +37 -12
  5. data/SECURITY.md +27 -0
  6. data/lib/modern_treasury/client.rb +3 -2
  7. data/lib/modern_treasury/internal/page.rb +27 -23
  8. data/lib/modern_treasury/internal/transport/base_client.rb +19 -5
  9. data/lib/modern_treasury/internal/transport/pooled_net_requester.rb +20 -7
  10. data/lib/modern_treasury/internal/type/array_of.rb +23 -4
  11. data/lib/modern_treasury/internal/type/base_model.rb +45 -10
  12. data/lib/modern_treasury/internal/type/base_page.rb +1 -0
  13. data/lib/modern_treasury/internal/type/boolean.rb +7 -1
  14. data/lib/modern_treasury/internal/type/converter.rb +66 -17
  15. data/lib/modern_treasury/internal/type/enum.rb +24 -4
  16. data/lib/modern_treasury/internal/type/hash_of.rb +23 -4
  17. data/lib/modern_treasury/internal/type/io_like.rb +77 -0
  18. data/lib/modern_treasury/internal/type/request_parameters.rb +11 -2
  19. data/lib/modern_treasury/internal/type/union.rb +30 -6
  20. data/lib/modern_treasury/internal/type/unknown.rb +7 -1
  21. data/lib/modern_treasury/internal/util.rb +115 -29
  22. data/lib/modern_treasury/internal.rb +5 -1
  23. data/lib/modern_treasury/models/document_create_params.rb +3 -3
  24. data/lib/modern_treasury/models/payment_order_create_params.rb +3 -3
  25. data/lib/modern_treasury/resources/documents.rb +1 -1
  26. data/lib/modern_treasury/version.rb +1 -1
  27. data/lib/modern_treasury.rb +1 -0
  28. data/rbi/lib/modern_treasury/client.rbi +3 -2
  29. data/rbi/lib/modern_treasury/internal/page.rbi +1 -0
  30. data/rbi/lib/modern_treasury/internal/transport/base_client.rbi +1 -0
  31. data/rbi/lib/modern_treasury/internal/transport/pooled_net_requester.rbi +1 -1
  32. data/rbi/lib/modern_treasury/internal/type/array_of.rbi +18 -12
  33. data/rbi/lib/modern_treasury/internal/type/base_model.rbi +13 -3
  34. data/rbi/lib/modern_treasury/internal/type/boolean.rbi +16 -12
  35. data/rbi/lib/modern_treasury/internal/type/converter.rbi +24 -8
  36. data/rbi/lib/modern_treasury/internal/type/enum.rbi +15 -5
  37. data/rbi/lib/modern_treasury/internal/type/hash_of.rbi +18 -12
  38. data/rbi/lib/modern_treasury/internal/type/io_like.rbi +46 -0
  39. data/rbi/lib/modern_treasury/internal/type/union.rbi +11 -3
  40. data/rbi/lib/modern_treasury/internal/type/unknown.rbi +10 -7
  41. data/rbi/lib/modern_treasury/internal/util.rbi +50 -4
  42. data/rbi/lib/modern_treasury/internal.rbi +1 -1
  43. data/rbi/lib/modern_treasury/models/document_create_params.rbi +3 -3
  44. data/rbi/lib/modern_treasury/models/payment_order_create_params.rbi +3 -3
  45. data/rbi/lib/modern_treasury/resources/documents.rbi +1 -1
  46. data/sig/modern_treasury/internal/transport/pooled_net_requester.rbs +1 -1
  47. data/sig/modern_treasury/internal/type/array_of.rbs +7 -2
  48. data/sig/modern_treasury/internal/type/base_model.rbs +7 -2
  49. data/sig/modern_treasury/internal/type/boolean.rbs +5 -2
  50. data/sig/modern_treasury/internal/type/converter.rbs +15 -5
  51. data/sig/modern_treasury/internal/type/enum.rbs +7 -2
  52. data/sig/modern_treasury/internal/type/hash_of.rbs +7 -2
  53. data/sig/modern_treasury/internal/type/io_like.rbs +23 -0
  54. data/sig/modern_treasury/internal/type/union.rbs +7 -2
  55. data/sig/modern_treasury/internal/type/unknown.rbs +5 -2
  56. data/sig/modern_treasury/internal/util.rbs +19 -2
  57. data/sig/modern_treasury/internal.rbs +1 -1
  58. data/sig/modern_treasury/models/document_create_params.rbs +3 -3
  59. data/sig/modern_treasury/models/payment_order_create_params.rbs +3 -3
  60. data/sig/modern_treasury/resources/documents.rbs +1 -1
  61. metadata +8 -2
@@ -190,6 +190,7 @@ module ModernTreasury
190
190
  model: ModernTreasury::Internal::Type::Unknown,
191
191
  options: {}
192
192
  ); end
193
+ # @api private
193
194
  sig { returns(String) }
194
195
  def inspect; end
195
196
  end
@@ -35,7 +35,7 @@ module ModernTreasury
35
35
  request: ModernTreasury::Internal::Transport::PooledNetRequester::RequestShape,
36
36
  blk: T.proc.params(arg0: String).void
37
37
  )
38
- .returns(Net::HTTPGenericRequest)
38
+ .returns([Net::HTTPGenericRequest, T.proc.void])
39
39
  end
40
40
  def build_request(request, &blk); end
41
41
  end
@@ -10,11 +10,10 @@ module ModernTreasury
10
10
  include ModernTreasury::Internal::Type::Converter
11
11
 
12
12
  abstract!
13
- final!
14
13
 
15
14
  Elem = type_member(:out)
16
15
 
17
- sig(:final) do
16
+ sig do
18
17
  params(
19
18
  type_info: T.any(
20
19
  ModernTreasury::Internal::AnyHash,
@@ -27,41 +26,44 @@ module ModernTreasury
27
26
  end
28
27
  def self.[](type_info, spec = {}); end
29
28
 
30
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
29
+ sig { params(other: T.anything).returns(T::Boolean) }
31
30
  def ===(other); end
32
31
 
33
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
32
+ sig { params(other: T.anything).returns(T::Boolean) }
34
33
  def ==(other); end
35
34
 
36
35
  # @api private
37
- sig(:final) do
36
+ sig do
38
37
  override
39
38
  .params(
40
39
  value: T.any(T::Array[T.anything], T.anything),
41
- state: ModernTreasury::Internal::Type::Converter::State
40
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
42
41
  )
43
42
  .returns(T.any(T::Array[T.anything], T.anything))
44
43
  end
45
44
  def coerce(value, state:); end
46
45
 
47
46
  # @api private
48
- sig(:final) do
47
+ sig do
49
48
  override
50
- .params(value: T.any(T::Array[T.anything], T.anything))
49
+ .params(
50
+ value: T.any(T::Array[T.anything], T.anything),
51
+ state: ModernTreasury::Internal::Type::Converter::DumpState
52
+ )
51
53
  .returns(T.any(T::Array[T.anything], T.anything))
52
54
  end
53
- def dump(value); end
55
+ def dump(value, state:); end
54
56
 
55
57
  # @api private
56
- sig(:final) { returns(Elem) }
58
+ sig { returns(Elem) }
57
59
  protected def item_type; end
58
60
 
59
61
  # @api private
60
- sig(:final) { returns(T::Boolean) }
62
+ sig { returns(T::Boolean) }
61
63
  protected def nilable?; end
62
64
 
63
65
  # @api private
64
- sig(:final) do
66
+ sig do
65
67
  params(
66
68
  type_info: T.any(
67
69
  ModernTreasury::Internal::AnyHash,
@@ -73,6 +75,10 @@ module ModernTreasury
73
75
  .void
74
76
  end
75
77
  def initialize(type_info, spec = {}); end
78
+
79
+ # @api private
80
+ sig { params(depth: Integer).returns(String) }
81
+ def inspect(depth: 0); end
76
82
  end
77
83
  end
78
84
  end
@@ -126,7 +126,7 @@ module ModernTreasury
126
126
  T::Hash[T.anything, T.anything],
127
127
  T.anything
128
128
  ),
129
- state: ModernTreasury::Internal::Type::Converter::State
129
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
130
130
  )
131
131
  .returns(T.any(T.attached_class, T.anything))
132
132
  end
@@ -135,10 +135,13 @@ module ModernTreasury
135
135
  # @api private
136
136
  sig do
137
137
  override
138
- .params(value: T.any(T.attached_class, T.anything))
138
+ .params(
139
+ value: T.any(T.attached_class, T.anything),
140
+ state: ModernTreasury::Internal::Type::Converter::DumpState
141
+ )
139
142
  .returns(T.any(T::Hash[T.anything, T.anything], T.anything))
140
143
  end
141
- def dump(value); end
144
+ def dump(value, state:); end
142
145
  end
143
146
 
144
147
  # Returns the raw value associated with the given key, if found. Otherwise, nil is
@@ -185,6 +188,13 @@ module ModernTreasury
185
188
  sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(T.attached_class) }
186
189
  def self.new(data = {}); end
187
190
 
191
+ class << self
192
+ # @api private
193
+ sig { params(depth: Integer).returns(String) }
194
+ def inspect(depth: 0); end
195
+ end
196
+
197
+ # @api private
188
198
  sig { returns(String) }
189
199
  def inspect; end
190
200
  end
@@ -10,32 +10,36 @@ module ModernTreasury
10
10
  extend ModernTreasury::Internal::Type::Converter
11
11
 
12
12
  abstract!
13
- final!
14
13
 
15
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
14
+ sig { params(other: T.anything).returns(T::Boolean) }
16
15
  def self.===(other); end
17
16
 
18
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
17
+ sig { params(other: T.anything).returns(T::Boolean) }
19
18
  def self.==(other); end
20
19
 
21
20
  class << self
22
21
  # @api private
23
- sig(:final) do
22
+ sig do
24
23
  override
25
- .params(value: T.any(
26
- T::Boolean,
27
- T.anything
28
- ),
29
- state: ModernTreasury::Internal::Type::Converter::State)
24
+ .params(
25
+ value: T.any(T::Boolean, T.anything),
26
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
27
+ )
30
28
  .returns(T.any(T::Boolean, T.anything))
31
29
  end
32
30
  def coerce(value, state:); end
33
31
 
34
32
  # @api private
35
- sig(:final) do
36
- override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything))
33
+ sig do
34
+ override
35
+ .params(value: T.any(
36
+ T::Boolean,
37
+ T.anything
38
+ ),
39
+ state: ModernTreasury::Internal::Type::Converter::DumpState)
40
+ .returns(T.any(T::Boolean, T.anything))
37
41
  end
38
- def dump(value); end
42
+ def dump(value, state:); end
39
43
  end
40
44
  end
41
45
  end
@@ -7,7 +7,7 @@ module ModernTreasury
7
7
  module Converter
8
8
  Input = T.type_alias { T.any(ModernTreasury::Internal::Type::Converter, T::Class[T.anything]) }
9
9
 
10
- State =
10
+ CoerceState =
11
11
  T.type_alias do
12
12
  {
13
13
  strictness: T.any(T::Boolean, Symbol),
@@ -16,17 +16,27 @@ module ModernTreasury
16
16
  }
17
17
  end
18
18
 
19
+ DumpState = T.type_alias { {can_retry: T::Boolean} }
20
+
19
21
  # @api private
20
22
  sig do
21
23
  overridable
22
- .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::State)
24
+ .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::CoerceState)
23
25
  .returns(T.anything)
24
26
  end
25
27
  def coerce(value, state:); end
26
28
 
27
29
  # @api private
28
- sig { overridable.params(value: T.anything).returns(T.anything) }
29
- def dump(value); end
30
+ sig do
31
+ overridable
32
+ .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::DumpState)
33
+ .returns(T.anything)
34
+ end
35
+ def dump(value, state:); end
36
+
37
+ # @api private
38
+ sig { params(depth: Integer).returns(String) }
39
+ def inspect(depth: 0); end
30
40
 
31
41
  class << self
32
42
  # @api private
@@ -61,7 +71,7 @@ module ModernTreasury
61
71
  params(
62
72
  target: ModernTreasury::Internal::Type::Converter::Input,
63
73
  value: T.anything,
64
- state: ModernTreasury::Internal::Type::Converter::State
74
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
65
75
  )
66
76
  .returns(T.anything)
67
77
  end
@@ -93,10 +103,16 @@ module ModernTreasury
93
103
  sig do
94
104
  params(
95
105
  target: ModernTreasury::Internal::Type::Converter::Input,
96
- value: T.anything
97
- ).returns(T.anything)
106
+ value: T.anything,
107
+ state: ModernTreasury::Internal::Type::Converter::DumpState
108
+ )
109
+ .returns(T.anything)
98
110
  end
99
- def self.dump(target, value); end
111
+ def self.dump(target, value, state: {can_retry: true}); end
112
+
113
+ # @api private
114
+ sig { params(target: T.anything, depth: Integer).returns(String) }
115
+ def self.inspect(target, depth:); end
100
116
  end
101
117
  end
102
118
  end
@@ -38,21 +38,31 @@ module ModernTreasury
38
38
  #
39
39
  # Unlike with primitives, `Enum` additionally validates that the value is a member
40
40
  # of the enum.
41
+ sig do
42
+ override
43
+ .params(
44
+ value: T.any(String, Symbol, T.anything),
45
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
46
+ )
47
+ .returns(T.any(Symbol, T.anything))
48
+ end
49
+ def coerce(value, state:); end
50
+
51
+ # @api private
41
52
  sig do
42
53
  override
43
54
  .params(value: T.any(
44
- String,
45
55
  Symbol,
46
56
  T.anything
47
57
  ),
48
- state: ModernTreasury::Internal::Type::Converter::State)
58
+ state: ModernTreasury::Internal::Type::Converter::DumpState)
49
59
  .returns(T.any(Symbol, T.anything))
50
60
  end
51
- def coerce(value, state:); end
61
+ def dump(value, state:); end
52
62
 
53
63
  # @api private
54
- sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
55
- def dump(value); end
64
+ sig { params(depth: Integer).returns(String) }
65
+ def inspect(depth: 0); end
56
66
  end
57
67
  end
58
68
  end
@@ -10,11 +10,10 @@ module ModernTreasury
10
10
  include ModernTreasury::Internal::Type::Converter
11
11
 
12
12
  abstract!
13
- final!
14
13
 
15
14
  Elem = type_member(:out)
16
15
 
17
- sig(:final) do
16
+ sig do
18
17
  params(
19
18
  type_info: T.any(
20
19
  ModernTreasury::Internal::AnyHash,
@@ -27,41 +26,44 @@ module ModernTreasury
27
26
  end
28
27
  def self.[](type_info, spec = {}); end
29
28
 
30
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
29
+ sig { params(other: T.anything).returns(T::Boolean) }
31
30
  def ===(other); end
32
31
 
33
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
32
+ sig { params(other: T.anything).returns(T::Boolean) }
34
33
  def ==(other); end
35
34
 
36
35
  # @api private
37
- sig(:final) do
36
+ sig do
38
37
  override
39
38
  .params(
40
39
  value: T.any(T::Hash[T.anything, T.anything], T.anything),
41
- state: ModernTreasury::Internal::Type::Converter::State
40
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
42
41
  )
43
42
  .returns(T.any(ModernTreasury::Internal::AnyHash, T.anything))
44
43
  end
45
44
  def coerce(value, state:); end
46
45
 
47
46
  # @api private
48
- sig(:final) do
47
+ sig do
49
48
  override
50
- .params(value: T.any(T::Hash[T.anything, T.anything], T.anything))
49
+ .params(
50
+ value: T.any(T::Hash[T.anything, T.anything], T.anything),
51
+ state: ModernTreasury::Internal::Type::Converter::DumpState
52
+ )
51
53
  .returns(T.any(ModernTreasury::Internal::AnyHash, T.anything))
52
54
  end
53
- def dump(value); end
55
+ def dump(value, state:); end
54
56
 
55
57
  # @api private
56
- sig(:final) { returns(Elem) }
58
+ sig { returns(Elem) }
57
59
  protected def item_type; end
58
60
 
59
61
  # @api private
60
- sig(:final) { returns(T::Boolean) }
62
+ sig { returns(T::Boolean) }
61
63
  protected def nilable?; end
62
64
 
63
65
  # @api private
64
- sig(:final) do
66
+ sig do
65
67
  params(
66
68
  type_info: T.any(
67
69
  ModernTreasury::Internal::AnyHash,
@@ -73,6 +75,10 @@ module ModernTreasury
73
75
  .void
74
76
  end
75
77
  def initialize(type_info, spec = {}); end
78
+
79
+ # @api private
80
+ sig { params(depth: Integer).returns(String) }
81
+ def inspect(depth: 0); end
76
82
  end
77
83
  end
78
84
  end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module ModernTreasury
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # Either `Pathname` or `StringIO`.
9
+ class IOLike
10
+ extend ModernTreasury::Internal::Type::Converter
11
+
12
+ abstract!
13
+
14
+ sig { params(other: T.anything).returns(T::Boolean) }
15
+ def self.===(other); end
16
+
17
+ sig { params(other: T.anything).returns(T::Boolean) }
18
+ def self.==(other); end
19
+
20
+ class << self
21
+ # @api private
22
+ sig do
23
+ override
24
+ .params(
25
+ value: T.any(StringIO, String, T.anything),
26
+ state: ModernTreasury::Internal::Type::Converter::CoerceState
27
+ )
28
+ .returns(T.any(StringIO, T.anything))
29
+ end
30
+ def coerce(value, state:); end
31
+
32
+ # @api private
33
+ sig do
34
+ override
35
+ .params(
36
+ value: T.any(Pathname, StringIO, IO, String, T.anything),
37
+ state: ModernTreasury::Internal::Type::Converter::DumpState
38
+ )
39
+ .returns(T.any(Pathname, StringIO, IO, String, T.anything))
40
+ end
41
+ def dump(value, state:); end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -55,14 +55,22 @@ module ModernTreasury
55
55
  # @api private
56
56
  sig do
57
57
  override
58
- .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::State)
58
+ .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::CoerceState)
59
59
  .returns(T.anything)
60
60
  end
61
61
  def coerce(value, state:); end
62
62
 
63
63
  # @api private
64
- sig { override.params(value: T.anything).returns(T.anything) }
65
- def dump(value); end
64
+ sig do
65
+ override
66
+ .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::DumpState)
67
+ .returns(T.anything)
68
+ end
69
+ def dump(value, state:); end
70
+
71
+ # @api private
72
+ sig { params(depth: Integer).returns(String) }
73
+ def inspect(depth: 0); end
66
74
  end
67
75
  end
68
76
  end
@@ -10,26 +10,29 @@ module ModernTreasury
10
10
  extend ModernTreasury::Internal::Type::Converter
11
11
 
12
12
  abstract!
13
- final!
14
13
 
15
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
14
+ sig { params(other: T.anything).returns(T::Boolean) }
16
15
  def self.===(other); end
17
16
 
18
- sig(:final) { params(other: T.anything).returns(T::Boolean) }
17
+ sig { params(other: T.anything).returns(T::Boolean) }
19
18
  def self.==(other); end
20
19
 
21
20
  class << self
22
21
  # @api private
23
- sig(:final) do
22
+ sig do
24
23
  override
25
- .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::State)
24
+ .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::CoerceState)
26
25
  .returns(T.anything)
27
26
  end
28
27
  def coerce(value, state:); end
29
28
 
30
29
  # @api private
31
- sig(:final) { override.params(value: T.anything).returns(T.anything) }
32
- def dump(value); end
30
+ sig do
31
+ override
32
+ .params(value: T.anything, state: ModernTreasury::Internal::Type::Converter::DumpState)
33
+ .returns(T.anything)
34
+ end
35
+ def dump(value, state:); end
33
36
  end
34
37
  end
35
38
  end
@@ -145,10 +145,34 @@ module ModernTreasury
145
145
  def normalized_headers(*headers); end
146
146
  end
147
147
 
148
+ # @api private
149
+ class SerializationAdapter
150
+ sig { returns(T.any(Pathname, IO)) }
151
+ attr_reader :inner
152
+
153
+ sig { params(a: T.anything).returns(String) }
154
+ def to_json(*a); end
155
+
156
+ sig { params(a: T.anything).returns(String) }
157
+ def to_yaml(*a); end
158
+
159
+ # @api private
160
+ sig { params(inner: T.any(Pathname, IO)).returns(T.attached_class) }
161
+ def self.new(inner); end
162
+ end
163
+
148
164
  # @api private
149
165
  #
150
166
  # An adapter that satisfies the IO interface required by `::IO.copy_stream`
151
167
  class ReadIOAdapter
168
+ # @api private
169
+ sig { returns(T.nilable(T::Boolean)) }
170
+ def close?; end
171
+
172
+ # @api private
173
+ sig { void }
174
+ def close; end
175
+
152
176
  # @api private
153
177
  sig { params(max_len: T.nilable(Integer)).returns(String) }
154
178
  private def read_enum(max_len); end
@@ -160,12 +184,12 @@ module ModernTreasury
160
184
  # @api private
161
185
  sig do
162
186
  params(
163
- stream: T.any(String, IO, StringIO, T::Enumerable[String]),
187
+ src: T.any(String, Pathname, StringIO, T::Enumerable[String]),
164
188
  blk: T.proc.params(arg0: String).void
165
189
  )
166
190
  .returns(T.attached_class)
167
191
  end
168
- def self.new(stream, &blk); end
192
+ def self.new(src, &blk); end
169
193
  end
170
194
 
171
195
  class << self
@@ -176,9 +200,16 @@ module ModernTreasury
176
200
  class << self
177
201
  # @api private
178
202
  sig do
179
- params(y: Enumerator::Yielder, boundary: String, key: T.any(Symbol, String), val: T.anything).void
203
+ params(
204
+ y: Enumerator::Yielder,
205
+ boundary: String,
206
+ key: T.any(Symbol, String),
207
+ val: T.anything,
208
+ closing: T::Array[T.proc.void]
209
+ )
210
+ .void
180
211
  end
181
- private def write_multipart_chunk(y, boundary:, key:, val:); end
212
+ private def write_multipart_chunk(y, boundary:, key:, val:, closing:); end
182
213
 
183
214
  # @api private
184
215
  sig { params(body: T.anything).returns([String, T::Enumerable[String]]) }
@@ -189,6 +220,14 @@ module ModernTreasury
189
220
  def encode_content(headers, body); end
190
221
 
191
222
  # @api private
223
+ #
224
+ # https://www.iana.org/assignments/character-sets/character-sets.xhtml
225
+ sig { params(content_type: String, text: String).void }
226
+ def force_charset!(content_type, text:); end
227
+
228
+ # @api private
229
+ #
230
+ # Assumes each chunk in stream has `Encoding::BINARY`.
192
231
  sig do
193
232
  params(
194
233
  headers: T.any(T::Hash[String, String], Net::HTTPHeader),
@@ -237,12 +276,19 @@ module ModernTreasury
237
276
 
238
277
  class << self
239
278
  # @api private
279
+ #
280
+ # Assumes Strings have been forced into having `Encoding::BINARY`.
281
+ #
282
+ # This decoder is responsible for reassembling lines split across multiple
283
+ # fragments.
240
284
  sig { params(enum: T::Enumerable[String]).returns(T::Enumerable[String]) }
241
285
  def decode_lines(enum); end
242
286
 
243
287
  # @api private
244
288
  #
245
289
  # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
290
+ #
291
+ # Assumes that `lines` has been decoded with `#decode_lines`.
246
292
  sig do
247
293
  params(lines: T::Enumerable[String])
248
294
  .returns(T::Enumerable[ModernTreasury::Internal::Util::ServerSentEvent])
@@ -7,6 +7,6 @@ module ModernTreasury
7
7
  # this alias might be refined in the future.
8
8
  AnyHash = T.type_alias { T::Hash[Symbol, T.anything] }
9
9
 
10
- OMIT = T.let(T.anything, T.anything)
10
+ OMIT = T.let(Object.new.freeze, T.anything)
11
11
  end
12
12
  end
@@ -13,7 +13,7 @@ module ModernTreasury
13
13
  sig { returns(ModernTreasury::Models::DocumentCreateParams::DocumentableType::OrSymbol) }
14
14
  attr_accessor :documentable_type
15
15
 
16
- sig { returns(T.any(IO, StringIO)) }
16
+ sig { returns(T.any(Pathname, StringIO)) }
17
17
  attr_accessor :file
18
18
 
19
19
  # A category given to the document, can be `null`.
@@ -27,7 +27,7 @@ module ModernTreasury
27
27
  params(
28
28
  documentable_id: String,
29
29
  documentable_type: ModernTreasury::Models::DocumentCreateParams::DocumentableType::OrSymbol,
30
- file: T.any(IO, StringIO),
30
+ file: T.any(Pathname, StringIO),
31
31
  document_type: String,
32
32
  request_options: T.any(ModernTreasury::RequestOptions, ModernTreasury::Internal::AnyHash)
33
33
  )
@@ -41,7 +41,7 @@ module ModernTreasury
41
41
  {
42
42
  documentable_id: String,
43
43
  documentable_type: ModernTreasury::Models::DocumentCreateParams::DocumentableType::OrSymbol,
44
- file: T.any(IO, StringIO),
44
+ file: T.any(Pathname, StringIO),
45
45
  document_type: String,
46
46
  request_options: ModernTreasury::RequestOptions
47
47
  }
@@ -473,7 +473,7 @@ module ModernTreasury
473
473
  sig { returns(ModernTreasury::Models::PaymentOrderCreateParams::Document::DocumentableType::OrSymbol) }
474
474
  attr_accessor :documentable_type
475
475
 
476
- sig { returns(T.any(IO, StringIO)) }
476
+ sig { returns(T.any(Pathname, StringIO)) }
477
477
  attr_accessor :file
478
478
 
479
479
  # A category given to the document, can be `null`.
@@ -487,7 +487,7 @@ module ModernTreasury
487
487
  params(
488
488
  documentable_id: String,
489
489
  documentable_type: ModernTreasury::Models::PaymentOrderCreateParams::Document::DocumentableType::OrSymbol,
490
- file: T.any(IO, StringIO),
490
+ file: T.any(Pathname, StringIO),
491
491
  document_type: String
492
492
  )
493
493
  .returns(T.attached_class)
@@ -500,7 +500,7 @@ module ModernTreasury
500
500
  {
501
501
  documentable_id: String,
502
502
  documentable_type: ModernTreasury::Models::PaymentOrderCreateParams::Document::DocumentableType::OrSymbol,
503
- file: T.any(IO, StringIO),
503
+ file: T.any(Pathname, StringIO),
504
504
  document_type: String
505
505
  }
506
506
  )
@@ -8,7 +8,7 @@ module ModernTreasury
8
8
  params(
9
9
  documentable_id: String,
10
10
  documentable_type: ModernTreasury::Models::DocumentCreateParams::DocumentableType::OrSymbol,
11
- file: T.any(IO, StringIO),
11
+ file: T.any(Pathname, StringIO),
12
12
  document_type: String,
13
13
  request_options: T.nilable(T.any(ModernTreasury::RequestOptions, ModernTreasury::Internal::AnyHash))
14
14
  )
@@ -21,7 +21,7 @@ module ModernTreasury
21
21
  ModernTreasury::Internal::Transport::PooledNetRequester::request request
22
22
  ) {
23
23
  (String arg0) -> void
24
- } -> top
24
+ } -> [top, (^-> void)]
25
25
 
26
26
  private def with_pool: (
27
27
  URI::Generic url,