sorbet-http 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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