sorbet-http 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +52 -0
  3. data/.ruby-version +1 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +13 -0
  6. data/CODE_OF_CONDUCT.md +84 -0
  7. data/Gemfile +24 -0
  8. data/Gemfile.lock +110 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +61 -0
  11. data/Rakefile +24 -0
  12. data/lib/sorbet-http.rb +15 -0
  13. data/lib/typed/http/method.rb +21 -0
  14. data/lib/typed/http/status_code.rb +366 -0
  15. data/sorbet/config +4 -0
  16. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  17. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  18. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  19. data/sorbet/rbi/gems/io-console@0.6.0.rbi +8 -0
  20. data/sorbet/rbi/gems/irb@1.7.0.rbi +342 -0
  21. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  22. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  23. data/sorbet/rbi/gems/minitest@5.18.1.rbi +1491 -0
  24. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  25. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  26. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  27. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  28. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  29. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  30. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3049 -0
  31. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  32. data/sorbet/rbi/gems/reline@0.3.5.rbi +8 -0
  33. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  34. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7006 -0
  35. data/sorbet/rbi/gems/rubocop-minitest@0.31.0.rbi +2528 -0
  36. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  37. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +1043 -0
  38. data/sorbet/rbi/gems/rubocop@1.53.1.rbi +56123 -0
  39. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  40. data/sorbet/rbi/gems/spoom@1.2.1.rbi +2497 -0
  41. data/sorbet/rbi/gems/tapioca@0.11.7.rbi +3349 -0
  42. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  43. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  44. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  45. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  46. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  47. data/sorbet/rbi/gems/zeitwerk@2.6.8.rbi +986 -0
  48. data/sorbet/tapioca/config.yml +2 -0
  49. data/sorbet/tapioca/require.rb +7 -0
  50. metadata +124 -0
@@ -0,0 +1,366 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module Typed
5
+ module HTTP
6
+ # Enumerates all valid HTTP response status codes and
7
+ # provides conversion and convenience methods.
8
+ class StatusCode < T::Enum
9
+ extend T::Sig
10
+
11
+ enums do
12
+ # Informational
13
+ Continue = new("100 Continue")
14
+ SwitchingProtocols = new("101 Switching Protocols")
15
+ Processing = new("102 Processing")
16
+ EarlyHints = new("103 Early Hints")
17
+ # Successful
18
+ OK = new("200 OK")
19
+ Created = new("201 Created")
20
+ Accepted = new("202 Accepted")
21
+ NonAuthoritativeInformation = new("203 Non-Authoritative Information")
22
+ NoContent = new("204 No Content")
23
+ ResetContent = new("205 Reset Content")
24
+ PartialContent = new("206 Partial Content")
25
+ # Redirection
26
+ MultipleChoices = new("300 Multiple Choices")
27
+ MovedPermanently = new("301 Moved Permanently")
28
+ Found = new("302 Found")
29
+ SeeOther = new("303 See Other")
30
+ NotModified = new("304 Not Modified")
31
+ TemporaryRedirect = new("307 Temporary Redirect")
32
+ PermanentRedirect = new("308 Permanent Redirect")
33
+ # Client Error
34
+ BadRequest = new("400 Bad Request")
35
+ Unauthorized = new("401 Unauthorized")
36
+ PaymentRequired = new("402 Payment Required")
37
+ Forbidden = new("403 Forbidden")
38
+ NotFound = new("404 Not Found")
39
+ MethodNotAllowed = new("405 Method Not Allowed")
40
+ NotAcceptable = new("406 Not Acceptable")
41
+ ProxyAuthenticationRequired = new("407 Proxy Authentication Required")
42
+ RequestTimeout = new("408 Request Timeout")
43
+ Conflict = new("409 Conflict")
44
+ Gone = new("410 Gone")
45
+ LengthRequired = new("411 Length Required")
46
+ PreconditionFailed = new("412 Precondition Failed")
47
+ ContentTooLarge = new("413 Content Too Large")
48
+ URITooLong = new("414 URI Too Long")
49
+ UnsupportedMediaType = new("415 Unsupported Media Type")
50
+ RangeNotSatisfied = new("416 Range Not Satisfied")
51
+ ExpectationFailed = new("417 Expectation Failed")
52
+ ImATeapot = new("418 I'm a teapot")
53
+ MisdirectedRequest = new("421 Misdirected Request")
54
+ UnprocessableContent = new("422 Unprocessable Content")
55
+ Locked = new("423 Locked")
56
+ FailedDependency = new("424 Failed Dependency")
57
+ TooEarly = new("425 Too Early")
58
+ UpgradeRequired = new("426 Upgrade Required")
59
+ PreconditionRequired = new("428 Precondition Required")
60
+ TooManyRequests = new("429 Too Many Requests")
61
+ RequestHeaderFieldsTooLarge = new("431 Request Header Fields Too Large")
62
+ UnavailableForLegalReasons = new("451 Unavailable For Legal Reasons")
63
+ # Server Error
64
+ InternalServerError = new("500 Internal Server Error")
65
+ NotImplemented = new("501 Not Implemented")
66
+ BadGateway = new("502 Bad Gateway")
67
+ ServiceUnavailable = new("503 Service Unavailable")
68
+ GatewayTimeout = new("504 Gateway Timeout")
69
+ HTTPVersionNotSupported = new("505 HTTP Version Not Supported")
70
+ VariantAlsoNegotiates = new("506 Variant Also Negotiates")
71
+ InsufficientStorage = new("507 Insufficient Storage")
72
+ LoopDetected = new("508 Loop Detected")
73
+ NotExtended = new("510 Not Extended")
74
+ NetworkAuthenticationRequired = new("511 Network Authentication Required")
75
+ end
76
+
77
+ class << self
78
+ extend T::Sig
79
+
80
+ sig { params(int: Integer).returns(StatusCode) }
81
+ def from_i(int)
82
+ case int
83
+ when 100
84
+ Continue
85
+ when 101
86
+ SwitchingProtocols
87
+ when 102
88
+ Processing
89
+ when 103
90
+ EarlyHints
91
+ when 200
92
+ OK
93
+ when 201
94
+ Created
95
+ when 202
96
+ Accepted
97
+ when 203
98
+ NonAuthoritativeInformation
99
+ when 204
100
+ NoContent
101
+ when 205
102
+ ResetContent
103
+ when 206
104
+ PartialContent
105
+ when 300
106
+ MultipleChoices
107
+ when 301
108
+ MovedPermanently
109
+ when 302
110
+ Found
111
+ when 303
112
+ SeeOther
113
+ when 304
114
+ NotModified
115
+ when 307
116
+ TemporaryRedirect
117
+ when 308
118
+ PermanentRedirect
119
+ when 400
120
+ BadRequest
121
+ when 401
122
+ Unauthorized
123
+ when 402
124
+ PaymentRequired
125
+ when 403
126
+ Forbidden
127
+ when 404
128
+ NotFound
129
+ when 405
130
+ MethodNotAllowed
131
+ when 406
132
+ NotAcceptable
133
+ when 407
134
+ ProxyAuthenticationRequired
135
+ when 408
136
+ RequestTimeout
137
+ when 409
138
+ Conflict
139
+ when 410
140
+ Gone
141
+ when 411
142
+ LengthRequired
143
+ when 412
144
+ PreconditionFailed
145
+ when 413
146
+ ContentTooLarge
147
+ when 414
148
+ URITooLong
149
+ when 415
150
+ UnsupportedMediaType
151
+ when 416
152
+ RangeNotSatisfied
153
+ when 417
154
+ ExpectationFailed
155
+ when 418
156
+ ImATeapot
157
+ when 421
158
+ MisdirectedRequest
159
+ when 422
160
+ UnprocessableContent
161
+ when 423
162
+ Locked
163
+ when 424
164
+ FailedDependency
165
+ when 425
166
+ TooEarly
167
+ when 426
168
+ UpgradeRequired
169
+ when 428
170
+ PreconditionRequired
171
+ when 429
172
+ TooManyRequests
173
+ when 431
174
+ RequestHeaderFieldsTooLarge
175
+ when 451
176
+ UnavailableForLegalReasons
177
+ when 500
178
+ InternalServerError
179
+ when 501
180
+ NotImplemented
181
+ when 502
182
+ BadGateway
183
+ when 503
184
+ ServiceUnavailable
185
+ when 504
186
+ GatewayTimeout
187
+ when 505
188
+ HTTPVersionNotSupported
189
+ when 506
190
+ VariantAlsoNegotiates
191
+ when 507
192
+ InsufficientStorage
193
+ when 508
194
+ LoopDetected
195
+ when 510
196
+ NotExtended
197
+ when 511
198
+ NetworkAuthenticationRequired
199
+ else
200
+ raise ArgumentError, "#{int} is not a valid HTTP status code."
201
+ end
202
+ end
203
+
204
+ alias from_code from_i
205
+ end
206
+
207
+ sig { returns(Integer) }
208
+ def to_i
209
+ case self
210
+ when Continue
211
+ 100
212
+ when SwitchingProtocols
213
+ 101
214
+ when Processing
215
+ 102
216
+ when EarlyHints
217
+ 103
218
+ when OK
219
+ 200
220
+ when Created
221
+ 201
222
+ when Accepted
223
+ 202
224
+ when NonAuthoritativeInformation
225
+ 203
226
+ when NoContent
227
+ 204
228
+ when ResetContent
229
+ 205
230
+ when PartialContent
231
+ 206
232
+ when MultipleChoices
233
+ 300
234
+ when MovedPermanently
235
+ 301
236
+ when Found
237
+ 302
238
+ when SeeOther
239
+ 303
240
+ when NotModified
241
+ 304
242
+ when TemporaryRedirect
243
+ 307
244
+ when PermanentRedirect
245
+ 308
246
+ when BadRequest
247
+ 400
248
+ when Unauthorized
249
+ 401
250
+ when PaymentRequired
251
+ 402
252
+ when Forbidden
253
+ 403
254
+ when NotFound
255
+ 404
256
+ when MethodNotAllowed
257
+ 405
258
+ when NotAcceptable
259
+ 406
260
+ when ProxyAuthenticationRequired
261
+ 407
262
+ when RequestTimeout
263
+ 408
264
+ when Conflict
265
+ 409
266
+ when Gone
267
+ 410
268
+ when LengthRequired
269
+ 411
270
+ when PreconditionFailed
271
+ 412
272
+ when ContentTooLarge
273
+ 413
274
+ when URITooLong
275
+ 414
276
+ when UnsupportedMediaType
277
+ 415
278
+ when RangeNotSatisfied
279
+ 416
280
+ when ExpectationFailed
281
+ 417
282
+ when ImATeapot
283
+ 418
284
+ when MisdirectedRequest
285
+ 421
286
+ when UnprocessableContent
287
+ 422
288
+ when Locked
289
+ 423
290
+ when FailedDependency
291
+ 424
292
+ when TooEarly
293
+ 425
294
+ when UpgradeRequired
295
+ 426
296
+ when PreconditionRequired
297
+ 428
298
+ when TooManyRequests
299
+ 429
300
+ when RequestHeaderFieldsTooLarge
301
+ 431
302
+ when UnavailableForLegalReasons
303
+ 451
304
+ when InternalServerError
305
+ 500
306
+ when NotImplemented
307
+ 501
308
+ when BadGateway
309
+ 502
310
+ when ServiceUnavailable
311
+ 503
312
+ when GatewayTimeout
313
+ 504
314
+ when HTTPVersionNotSupported
315
+ 505
316
+ when VariantAlsoNegotiates
317
+ 506
318
+ when InsufficientStorage
319
+ 507
320
+ when LoopDetected
321
+ 508
322
+ when NotExtended
323
+ 510
324
+ when NetworkAuthenticationRequired
325
+ 511
326
+ else
327
+ T.absurd(self)
328
+ end
329
+ end
330
+
331
+ alias to_code to_i
332
+
333
+ sig { returns(T::Boolean) }
334
+ def informational?
335
+ first_digit == 1
336
+ end
337
+
338
+ sig { returns(T::Boolean) }
339
+ def successful?
340
+ first_digit == 2
341
+ end
342
+
343
+ sig { returns(T::Boolean) }
344
+ def redirection?
345
+ first_digit == 3
346
+ end
347
+
348
+ sig { returns(T::Boolean) }
349
+ def client_error?
350
+ first_digit == 4
351
+ end
352
+
353
+ sig { returns(T::Boolean) }
354
+ def server_error?
355
+ first_digit == 5
356
+ end
357
+
358
+ private
359
+
360
+ sig { returns(Integer) }
361
+ def first_digit
362
+ to_i.digits[-1]
363
+ end
364
+ end
365
+ end
366
+ end
data/sorbet/config ADDED
@@ -0,0 +1,4 @@
1
+ --dir
2
+ .
3
+ --ignore=tmp/
4
+ --ignore=vendor/
@@ -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