whatsapp_sdk 0.3.0 → 0.4.0

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  4. data/.github/workflows/codeql-analysis.yml +72 -0
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +14 -0
  7. data/CHANGELOG.md +8 -1
  8. data/Gemfile +6 -0
  9. data/Gemfile.lock +48 -1
  10. data/README.md +107 -33
  11. data/Rakefile +1 -0
  12. data/bin/tapioca +30 -0
  13. data/example.rb +23 -20
  14. data/lib/version.rb +2 -1
  15. data/lib/whatsapp_sdk/api/client.rb +14 -3
  16. data/lib/whatsapp_sdk/api/medias.rb +12 -3
  17. data/lib/whatsapp_sdk/api/messages.rb +72 -14
  18. data/lib/whatsapp_sdk/api/phone_numbers.rb +3 -0
  19. data/lib/whatsapp_sdk/api/request.rb +2 -2
  20. data/lib/whatsapp_sdk/api/response.rb +17 -1
  21. data/lib/whatsapp_sdk/api/responses/data_response.rb +10 -3
  22. data/lib/whatsapp_sdk/api/responses/error_response.rb +8 -1
  23. data/lib/whatsapp_sdk/api/responses/media_data_response.rb +26 -7
  24. data/lib/whatsapp_sdk/api/responses/message_data_response.rb +20 -3
  25. data/lib/whatsapp_sdk/api/responses/message_error_response.rb +26 -7
  26. data/lib/whatsapp_sdk/api/responses/phone_number_data_response.rb +18 -5
  27. data/lib/whatsapp_sdk/api/responses/phone_numbers_data_response.rb +9 -1
  28. data/lib/whatsapp_sdk/api/responses/read_message_data_response.rb +10 -3
  29. data/lib/whatsapp_sdk/api/responses/success_response.rb +5 -1
  30. data/lib/whatsapp_sdk/configuration.rb +7 -14
  31. data/lib/whatsapp_sdk/error.rb +1 -0
  32. data/lib/whatsapp_sdk/resource/address.rb +30 -6
  33. data/lib/whatsapp_sdk/resource/address_type.rb +15 -0
  34. data/lib/whatsapp_sdk/resource/button_parameter.rb +19 -23
  35. data/lib/whatsapp_sdk/resource/component.rb +45 -13
  36. data/lib/whatsapp_sdk/resource/contact.rb +30 -1
  37. data/lib/whatsapp_sdk/resource/contact_response.rb +9 -1
  38. data/lib/whatsapp_sdk/resource/currency.rb +9 -1
  39. data/lib/whatsapp_sdk/resource/date_time.rb +7 -1
  40. data/lib/whatsapp_sdk/resource/email.rb +9 -5
  41. data/lib/whatsapp_sdk/resource/media.rb +44 -15
  42. data/lib/whatsapp_sdk/resource/message.rb +5 -0
  43. data/lib/whatsapp_sdk/resource/name.rb +28 -1
  44. data/lib/whatsapp_sdk/resource/org.rb +13 -1
  45. data/lib/whatsapp_sdk/resource/parameter_object.rb +82 -39
  46. data/lib/whatsapp_sdk/resource/phone_number.rb +12 -5
  47. data/lib/whatsapp_sdk/resource/url.rb +9 -5
  48. data/lib/whatsapp_sdk.rb +19 -33
  49. data/sorbet/config +6 -0
  50. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  51. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  52. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  53. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +270 -0
  54. data/sorbet/rbi/gems/faraday-net_http@2.0.3.rbi +182 -0
  55. data/sorbet/rbi/gems/faraday@2.3.0.rbi +2494 -0
  56. data/sorbet/rbi/gems/method_source@1.0.0.rbi +272 -0
  57. data/sorbet/rbi/gems/minitest@5.16.1.rbi +1459 -0
  58. data/sorbet/rbi/gems/mocha@1.14.0.rbi +60 -0
  59. data/sorbet/rbi/gems/multipart-post@2.2.3.rbi +239 -0
  60. data/sorbet/rbi/gems/netrc@0.11.0.rbi +150 -0
  61. data/sorbet/rbi/gems/oj@3.13.14.rbi +589 -0
  62. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  63. data/sorbet/rbi/todo.rbi +8 -0
  64. data/sorbet/shims/request.rbi +10 -0
  65. data/sorbet/tapioca/config.yml +13 -0
  66. data/sorbet/tapioca/require.rb +5 -0
  67. data/whatsapp_sdk.gemspec +5 -1
  68. metadata +67 -2
@@ -0,0 +1,269 @@
1
+ # typed: strict
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This file was pulled from a central RBI files repository.
5
+ # Please run `bin/tapioca annotations` to update it.
6
+
7
+ module Rainbow
8
+ # @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12
9
+ sig { returns(T::Boolean) }
10
+ attr_accessor :enabled
11
+
12
+ class Color
13
+ sig { returns(Symbol) }
14
+ attr_reader :ground
15
+
16
+ sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) }
17
+ def self.build(ground, values); end
18
+
19
+ sig { params(hex: String).returns([Integer, Integer, Integer]) }
20
+ def self.parse_hex_color(hex); end
21
+
22
+ class Indexed < Rainbow::Color
23
+ sig { returns(Integer) }
24
+ attr_reader :num
25
+
26
+ sig { params(ground: Symbol, num: Integer).void }
27
+ def initialize(ground, num); end
28
+
29
+ sig { returns(T::Array[Integer]) }
30
+ def codes; end
31
+ end
32
+
33
+ class Named < Rainbow::Color::Indexed
34
+ NAMES = T.let(nil, T::Hash[Symbol, Integer])
35
+
36
+ sig { params(ground: Symbol, name: Symbol).void }
37
+ def initialize(ground, name); end
38
+
39
+ sig { returns(T::Array[Symbol]) }
40
+ def self.color_names; end
41
+
42
+ sig { returns(String) }
43
+ def self.valid_names; end
44
+ end
45
+
46
+ class RGB < Rainbow::Color::Indexed
47
+ sig { returns(Integer) }
48
+ attr_reader :r, :g, :b
49
+
50
+ sig { params(ground: Symbol, values: Integer).void }
51
+ def initialize(ground, *values); end
52
+
53
+ sig { returns(T::Array[Integer]) }
54
+ def codes; end
55
+
56
+ sig { params(value: Numeric).returns(Integer) }
57
+ def self.to_ansi_domain(value); end
58
+ end
59
+
60
+ class X11Named < Rainbow::Color::RGB
61
+ include Rainbow::X11ColorNames
62
+
63
+ sig { returns(T::Array[Symbol]) }
64
+ def self.color_names; end
65
+
66
+ sig { returns(String) }
67
+ def self.valid_names; end
68
+
69
+ sig { params(ground: Symbol, name: Symbol).void }
70
+ def initialize(ground, name); end
71
+ end
72
+ end
73
+
74
+ sig { returns(Wrapper) }
75
+ def self.global; end
76
+
77
+ sig { returns(T::Boolean) }
78
+ def self.enabled; end
79
+
80
+ sig { params(value: T::Boolean).returns(T::Boolean) }
81
+ def self.enabled=(value); end
82
+
83
+ sig { params(string: String).returns(String) }
84
+ def self.uncolor(string); end
85
+
86
+ class NullPresenter < String
87
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
88
+ def color(*values); end
89
+
90
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
91
+ def foreground(*values); end
92
+
93
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
94
+ def fg(*values); end
95
+
96
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
97
+ def background(*values); end
98
+
99
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
100
+ def bg(*values); end
101
+
102
+ sig { returns(NullPresenter) }
103
+ def reset; end
104
+
105
+ sig { returns(NullPresenter) }
106
+ def bright; end
107
+
108
+ sig { returns(NullPresenter) }
109
+ def faint; end
110
+
111
+ sig { returns(NullPresenter) }
112
+ def italic; end
113
+
114
+ sig { returns(NullPresenter) }
115
+ def underline; end
116
+
117
+ sig { returns(NullPresenter) }
118
+ def blink; end
119
+
120
+ sig { returns(NullPresenter) }
121
+ def inverse; end
122
+
123
+ sig { returns(NullPresenter) }
124
+ def hide; end
125
+
126
+ sig { returns(NullPresenter) }
127
+ def cross_out; end
128
+
129
+ sig { returns(NullPresenter) }
130
+ def black; end
131
+
132
+ sig { returns(NullPresenter) }
133
+ def red; end
134
+
135
+ sig { returns(NullPresenter) }
136
+ def green; end
137
+
138
+ sig { returns(NullPresenter) }
139
+ def yellow; end
140
+
141
+ sig { returns(NullPresenter) }
142
+ def blue; end
143
+
144
+ sig { returns(NullPresenter) }
145
+ def magenta; end
146
+
147
+ sig { returns(NullPresenter) }
148
+ def cyan; end
149
+
150
+ sig { returns(NullPresenter) }
151
+ def white; end
152
+
153
+ sig { returns(NullPresenter) }
154
+ def bold; end
155
+
156
+ sig { returns(NullPresenter) }
157
+ def dark; end
158
+
159
+ sig { returns(NullPresenter) }
160
+ def strike; end
161
+ end
162
+
163
+ class Presenter < String
164
+ TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer])
165
+
166
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
167
+ def color(*values); end
168
+
169
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
170
+ def foreground(*values); end
171
+
172
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
173
+ def fg(*values); end
174
+
175
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
176
+ def background(*values); end
177
+
178
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
179
+ def bg(*values); end
180
+
181
+ sig { returns(Presenter) }
182
+ def reset; end
183
+
184
+ sig { returns(Presenter) }
185
+ def bright; end
186
+
187
+ sig { returns(Presenter) }
188
+ def faint; end
189
+
190
+ sig { returns(Presenter) }
191
+ def italic; end
192
+
193
+ sig { returns(Presenter) }
194
+ def underline; end
195
+
196
+ sig { returns(Presenter) }
197
+ def blink; end
198
+
199
+ sig { returns(Presenter) }
200
+ def inverse; end
201
+
202
+ sig { returns(Presenter) }
203
+ def hide; end
204
+
205
+ sig { returns(Presenter) }
206
+ def cross_out; end
207
+
208
+ sig { returns(Presenter) }
209
+ def black; end
210
+
211
+ sig { returns(Presenter) }
212
+ def red; end
213
+
214
+ sig { returns(Presenter) }
215
+ def green; end
216
+
217
+ sig { returns(Presenter) }
218
+ def yellow; end
219
+
220
+ sig { returns(Presenter) }
221
+ def blue; end
222
+
223
+ sig { returns(Presenter) }
224
+ def magenta; end
225
+
226
+ sig { returns(Presenter) }
227
+ def cyan; end
228
+
229
+ sig { returns(Presenter) }
230
+ def white; end
231
+
232
+ sig { returns(Presenter) }
233
+ def bold; end
234
+
235
+ sig { returns(Presenter) }
236
+ def dark; end
237
+
238
+ sig { returns(Presenter) }
239
+ def strike; end
240
+ end
241
+
242
+ class StringUtils
243
+ sig { params(string: String, codes: T::Array[Integer]).returns(String) }
244
+ def self.wrap_with_sgr(string, codes); end
245
+
246
+ sig { params(string: String).returns(String) }
247
+ def self.uncolor(string); end
248
+ end
249
+
250
+ VERSION = T.let(nil, String)
251
+
252
+ class Wrapper
253
+ sig { returns(T::Boolean) }
254
+ attr_accessor :enabled
255
+
256
+ sig { params(enabled: T::Boolean).void }
257
+ def initialize(enabled = true); end
258
+
259
+ sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) }
260
+ def wrap(string); end
261
+ end
262
+
263
+ module X11ColorNames
264
+ NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]])
265
+ end
266
+ end
267
+
268
+ sig { params(string: String).returns(Rainbow::Presenter) }
269
+ def Rainbow(string); end
@@ -0,0 +1,270 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `faraday-multipart` gem.
5
+ # Please instead update this file by running `bin/tapioca gem faraday-multipart`.
6
+
7
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/version.rb:3
8
+ module Faraday
9
+ class << self
10
+ # source://faraday-2.3.0/lib/faraday.rb:55
11
+ def default_adapter; end
12
+
13
+ # source://faraday-2.3.0/lib/faraday.rb:102
14
+ def default_adapter=(adapter); end
15
+
16
+ # source://faraday-2.3.0/lib/faraday.rb:59
17
+ def default_adapter_options; end
18
+
19
+ # source://faraday-2.3.0/lib/faraday.rb:59
20
+ def default_adapter_options=(_arg0); end
21
+
22
+ # source://faraday-2.3.0/lib/faraday.rb:120
23
+ def default_connection; end
24
+
25
+ # source://faraday-2.3.0/lib/faraday.rb:62
26
+ def default_connection=(_arg0); end
27
+
28
+ # source://faraday-2.3.0/lib/faraday.rb:127
29
+ def default_connection_options; end
30
+
31
+ # source://faraday-2.3.0/lib/faraday.rb:134
32
+ def default_connection_options=(options); end
33
+
34
+ # source://faraday-2.3.0/lib/faraday.rb:67
35
+ def ignore_env_proxy; end
36
+
37
+ # source://faraday-2.3.0/lib/faraday.rb:67
38
+ def ignore_env_proxy=(_arg0); end
39
+
40
+ # source://faraday-2.3.0/lib/faraday.rb:46
41
+ def lib_path; end
42
+
43
+ # source://faraday-2.3.0/lib/faraday.rb:46
44
+ def lib_path=(_arg0); end
45
+
46
+ # source://faraday-2.3.0/lib/faraday.rb:96
47
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
48
+
49
+ # source://faraday-2.3.0/lib/faraday.rb:107
50
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
51
+
52
+ # source://faraday-2.3.0/lib/faraday.rb:42
53
+ def root_path; end
54
+
55
+ # source://faraday-2.3.0/lib/faraday.rb:42
56
+ def root_path=(_arg0); end
57
+
58
+ private
59
+
60
+ # source://faraday-2.3.0/lib/faraday.rb:143
61
+ def method_missing(name, *args, &block); end
62
+ end
63
+ end
64
+
65
+ # source://faraday-2.3.0/lib/faraday.rb:34
66
+ Faraday::CONTENT_TYPE = T.let(T.unsafe(nil), String)
67
+
68
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart.rb:18
69
+ Faraday::CompositeReadIO = Faraday::Multipart::CompositeReadIO
70
+
71
+ # Aliases for Faraday v1, these are all deprecated and will be removed in v2 of this middleware
72
+ #
73
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart.rb:15
74
+ Faraday::FilePart = Multipart::Post::UploadIO
75
+
76
+ # source://faraday-2.3.0/lib/faraday/methods.rb:5
77
+ Faraday::METHODS_WITH_BODY = T.let(T.unsafe(nil), Array)
78
+
79
+ # source://faraday-2.3.0/lib/faraday/methods.rb:4
80
+ Faraday::METHODS_WITH_QUERY = T.let(T.unsafe(nil), Array)
81
+
82
+ # Main Faraday::Multipart module.
83
+ #
84
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/version.rb:5
85
+ module Faraday::Multipart
86
+ class << self
87
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/version.rb:8
88
+ def multipart_post_version; end
89
+ end
90
+ end
91
+
92
+ # Similar to, but not compatible with CompositeReadIO provided by the
93
+ # multipart-post gem.
94
+ # https://github.com/nicksieger/multipart-post/blob/master/lib/composite_io.rb
95
+ #
96
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:67
97
+ class Faraday::Multipart::CompositeReadIO
98
+ # @return [CompositeReadIO] a new instance of CompositeReadIO
99
+ #
100
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:68
101
+ def initialize(*parts); end
102
+
103
+ # Close each of the IOs.
104
+ #
105
+ # @return [void]
106
+ #
107
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:111
108
+ def close; end
109
+
110
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:115
111
+ def ensure_open_and_readable; end
112
+
113
+ # @return [Integer] sum of the lengths of all the parts
114
+ #
115
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:75
116
+ def length; end
117
+
118
+ # Read from IOs in order until `length` bytes have been received.
119
+ #
120
+ # @param length [Integer, nil]
121
+ # @param outbuf [String, nil]
122
+ #
123
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:91
124
+ def read(length = T.unsafe(nil), outbuf = T.unsafe(nil)); end
125
+
126
+ # Rewind each of the IOs and reset the index to 0.
127
+ #
128
+ # @return [void]
129
+ #
130
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:82
131
+ def rewind; end
132
+
133
+ private
134
+
135
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:125
136
+ def advance_io; end
137
+
138
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:121
139
+ def current_io; end
140
+ end
141
+
142
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:55
143
+ Faraday::Multipart::FilePart = Multipart::Post::UploadIO
144
+
145
+ # Middleware for supporting multi-part requests.
146
+ #
147
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:8
148
+ class Faraday::Multipart::Middleware < ::Faraday::Request::UrlEncoded
149
+ # @return [Middleware] a new instance of Middleware
150
+ #
151
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:13
152
+ def initialize(app = T.unsafe(nil), options = T.unsafe(nil)); end
153
+
154
+ # Checks for files in the payload, otherwise leaves everything untouched.
155
+ #
156
+ # @param env [Faraday::Env]
157
+ #
158
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:21
159
+ def call(env); end
160
+
161
+ # @param env [Faraday::Env]
162
+ # @param params [Hash]
163
+ #
164
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:55
165
+ def create_multipart(env, params); end
166
+
167
+ # Returns true if obj is an enumerable with values that are multipart.
168
+ #
169
+ # @param obj [Object]
170
+ # @return [Boolean]
171
+ #
172
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:44
173
+ def has_multipart?(obj); end
174
+
175
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:67
176
+ def part(boundary, key, value); end
177
+
178
+ # @param params [Hash]
179
+ # @param prefix [String]
180
+ # @param pieces [Array]
181
+ #
182
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:83
183
+ def process_params(params, prefix = T.unsafe(nil), pieces = T.unsafe(nil), &block); end
184
+
185
+ # @param env [Faraday::Env]
186
+ # @return [Boolean]
187
+ #
188
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:32
189
+ def process_request?(env); end
190
+
191
+ # @return [String]
192
+ #
193
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:76
194
+ def unique_boundary; end
195
+ end
196
+
197
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/middleware.rb:9
198
+ Faraday::Multipart::Middleware::DEFAULT_BOUNDARY_PREFIX = T.let(T.unsafe(nil), String)
199
+
200
+ # Multipart value used to POST data with a content type.
201
+ #
202
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:6
203
+ class Faraday::Multipart::ParamPart
204
+ # @param value [String] Uploaded content as a String.
205
+ # @param content_type [String] String content type of the value.
206
+ # @param content_id [String] Optional String of this value's Content-ID.
207
+ # @return [Faraday::ParamPart]
208
+ #
209
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:12
210
+ def initialize(value, content_type, content_id = T.unsafe(nil)); end
211
+
212
+ # The value's content ID, if given.
213
+ #
214
+ # @return [String, nil]
215
+ #
216
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:52
217
+ def content_id; end
218
+
219
+ # The value's content type.
220
+ #
221
+ # @return [String]
222
+ #
223
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:47
224
+ def content_type; end
225
+
226
+ # Returns a Hash of String key/value pairs.
227
+ #
228
+ # @return [Hash]
229
+ #
230
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:32
231
+ def headers; end
232
+
233
+ # Converts this value to a form part.
234
+ #
235
+ # @param boundary [String] String multipart boundary that must not exist in
236
+ # the content exactly.
237
+ # @param key [String] String key name for this value.
238
+ # @return [Faraday::Parts::Part]
239
+ #
240
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:25
241
+ def to_part(boundary, key); end
242
+
243
+ # The content to upload.
244
+ #
245
+ # @return [String]
246
+ #
247
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/param_part.rb:42
248
+ def value; end
249
+ end
250
+
251
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/file_part.rb:56
252
+ Faraday::Multipart::Parts = Multipart::Post::Parts
253
+
254
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart/version.rb:6
255
+ Faraday::Multipart::VERSION = T.let(T.unsafe(nil), String)
256
+
257
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart.rb:16
258
+ Faraday::ParamPart = Faraday::Multipart::ParamPart
259
+
260
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart.rb:17
261
+ Faraday::Parts = Multipart::Post::Parts
262
+
263
+ # multipart-post v2.2.0 introduces a new class hierarchy for classes like Parts and UploadIO
264
+ # For backwards compatibility, detect the gem version and use the right class
265
+ #
266
+ # source://faraday-multipart-1.0.4/lib/faraday/multipart.rb:21
267
+ Faraday::UploadIO = Multipart::Post::UploadIO
268
+
269
+ # source://faraday-2.3.0/lib/faraday/version.rb:4
270
+ Faraday::VERSION = T.let(T.unsafe(nil), String)