lunchmoney 1.3.0 → 1.4.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/build_and_publish_yard_docs.yml +2 -2
  4. data/.github/workflows/ci.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/.simplecov +2 -2
  7. data/Gemfile +2 -3
  8. data/Gemfile.lock +90 -84
  9. data/lib/lunchmoney/api.rb +1 -0
  10. data/lib/lunchmoney/calls/categories.rb +0 -2
  11. data/lib/lunchmoney/calls/transactions.rb +0 -1
  12. data/lib/lunchmoney/deprecate.rb +35 -0
  13. data/lib/lunchmoney/objects/asset.rb +6 -1
  14. data/lib/lunchmoney/objects/plaid_account.rb +6 -1
  15. data/lib/lunchmoney/objects/transaction.rb +9 -1
  16. data/lib/lunchmoney/version.rb +1 -1
  17. data/sorbet/rbi/annotations/activesupport.rbi +36 -0
  18. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  19. data/sorbet/rbi/gems/{activesupport@7.1.3.2.rbi → activesupport@7.2.2.1.rbi} +1407 -1292
  20. data/sorbet/rbi/gems/{addressable@2.8.6.rbi → addressable@2.8.7.rbi} +2 -1
  21. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  22. data/sorbet/rbi/gems/{bigdecimal@3.1.7.rbi → bigdecimal@3.1.9.rbi} +1 -0
  23. data/sorbet/rbi/gems/{chef-utils@18.4.2.rbi → chef-utils@18.5.0.rbi} +1 -0
  24. data/sorbet/rbi/gems/{concurrent-ruby@1.2.3.rbi → concurrent-ruby@1.3.5.rbi} +108 -41
  25. data/sorbet/rbi/gems/{connection_pool@2.4.1.rbi → connection_pool@2.5.0.rbi} +1 -0
  26. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +1 -0
  27. data/sorbet/rbi/gems/{dotenv@3.1.2.rbi → dotenv@3.1.7.rbi} +21 -29
  28. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +25 -15
  29. data/sorbet/rbi/gems/{faraday-net_http@3.1.0.rbi → faraday-net_http@3.4.0.rbi} +30 -29
  30. data/sorbet/rbi/gems/{faraday@2.9.0.rbi → faraday@2.12.2.rbi} +104 -49
  31. data/sorbet/rbi/gems/{hashdiff@1.1.0.rbi → hashdiff@1.1.2.rbi} +3 -2
  32. data/sorbet/rbi/gems/{i18n@1.14.4.rbi → i18n@1.14.7.rbi} +109 -80
  33. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.10.2.rbi} +697 -146
  34. data/sorbet/rbi/gems/language_server-protocol@3.17.0.4.rbi +9 -0
  35. data/sorbet/rbi/gems/logger@1.6.6.rbi +940 -0
  36. data/sorbet/rbi/gems/{minitest@5.22.3.rbi → minitest@5.25.5.rbi} +319 -302
  37. data/sorbet/rbi/gems/{mixlib-shellout@3.2.7.rbi → mixlib-shellout@3.2.8.rbi} +1 -0
  38. data/sorbet/rbi/gems/{mocha@2.2.0.rbi → mocha@2.7.1.rbi} +174 -149
  39. data/sorbet/rbi/gems/{net-http@0.4.1.rbi → net-http@0.6.0.rbi} +360 -181
  40. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +32 -21
  41. data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.7.1.rbi} +256 -203
  42. data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@1.4.0.rbi} +15882 -12137
  43. data/sorbet/rbi/gems/{public_suffix@5.0.4.rbi → public_suffix@6.0.1.rbi} +1 -0
  44. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +34 -33
  45. data/sorbet/rbi/gems/{rack@3.0.10.rbi → rack@3.1.9.rbi} +704 -989
  46. data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.2.1.rbi} +56 -55
  47. data/sorbet/rbi/gems/rbi@0.3.1.rbi +6599 -0
  48. data/sorbet/rbi/gems/rbs@3.9.0.rbi +6978 -0
  49. data/sorbet/rbi/gems/{regexp_parser@2.9.1.rbi → regexp_parser@2.10.0.rbi} +195 -172
  50. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.4.1.rbi} +844 -279
  51. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.38.0.rbi} +1380 -732
  52. data/sorbet/rbi/gems/{rubocop-minitest@0.35.0.rbi → rubocop-minitest@0.36.0.rbi} +13 -10
  53. data/sorbet/rbi/gems/{rubocop-rails@2.24.1.rbi → rubocop-rails@2.29.1.rbi} +9604 -6343
  54. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.3.rbi → rubocop-sorbet@0.8.7.rbi} +168 -67
  55. data/sorbet/rbi/gems/{rubocop@1.63.5.rbi → rubocop@1.71.2.rbi} +6831 -4378
  56. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  57. data/sorbet/rbi/gems/spoom@1.6.1.rbi +7274 -0
  58. data/sorbet/rbi/gems/{tapioca@0.14.1.rbi → tapioca@0.16.11.rbi} +471 -384
  59. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.3.2.rbi} +58 -31
  60. data/sorbet/rbi/gems/{toys-core@0.15.5.rbi → toys-core@0.15.6.rbi} +1 -0
  61. data/sorbet/rbi/gems/{toys@0.15.5.rbi → toys@0.15.6.rbi} +4 -3
  62. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  63. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  64. data/sorbet/rbi/gems/{uri@0.13.0.rbi → uri@1.0.3.rbi} +278 -256
  65. data/sorbet/rbi/gems/{vcr@6.2.0.rbi → vcr@6.3.1.rbi} +72 -68
  66. data/sorbet/rbi/gems/{webmock@3.23.0.rbi → webmock@3.25.1.rbi} +102 -78
  67. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  68. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +394 -235
  69. metadata +55 -58
  70. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3426
  71. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  72. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
  73. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +0 -93
  74. data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +0 -966
  75. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10077
  76. data/sorbet/rbi/gems/rbi@0.1.13.rbi +0 -3078
  77. data/sorbet/rbi/gems/spoom@1.3.2.rbi +0 -4421
  78. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
@@ -4,28 +4,24 @@
4
4
  # This is an autogenerated file for types exported from the `rack` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem rack`.
6
6
 
7
+
7
8
  # The Rack main module, serving as a namespace for all core Rack
8
9
  # modules and classes.
9
10
  #
10
11
  # All modules meant for use in your application are <tt>autoload</tt>ed here,
11
12
  # so it should be enough just to <tt>require 'rack'</tt> in your code.
12
13
  #
13
- # source://rack//lib/rack/query_parser.rb#5
14
+ # source://rack//lib/rack/bad_request.rb#3
14
15
  module Rack
15
16
  class << self
16
17
  # Return the Rack release as a dotted string.
17
18
  #
18
- # source://rack//lib/rack/version.rb#31
19
+ # source://rack//lib/rack/version.rb#18
19
20
  def release; end
20
-
21
- # The Rack protocol version number implemented.
22
- #
23
- # source://rack//lib/rack/version.rb#23
24
- def version; end
25
21
  end
26
22
  end
27
23
 
28
- # source://rack//lib/rack.rb#65
24
+ # source://rack//lib/rack.rb#60
29
25
  module Rack::Auth; end
30
26
 
31
27
  # Rack::Auth::AbstractHandler implements common authentication functionality.
@@ -103,273 +99,44 @@ Rack::Auth::AbstractRequest::AUTHORIZATION_KEYS = T.let(T.unsafe(nil), Array)
103
99
  # Initialize with the Rack application that you want protecting,
104
100
  # and a block that checks if a username and password pair are valid.
105
101
  #
106
- # source://rack//lib/rack/auth/basic.rb#14
102
+ # source://rack//lib/rack/auth/basic.rb#13
107
103
  class Rack::Auth::Basic < ::Rack::Auth::AbstractHandler
108
- # source://rack//lib/rack/auth/basic.rb#16
104
+ # source://rack//lib/rack/auth/basic.rb#15
109
105
  def call(env); end
110
106
 
111
107
  private
112
108
 
113
- # source://rack//lib/rack/auth/basic.rb#35
109
+ # source://rack//lib/rack/auth/basic.rb#34
114
110
  def challenge; end
115
111
 
116
112
  # @return [Boolean]
117
113
  #
118
- # source://rack//lib/rack/auth/basic.rb#39
114
+ # source://rack//lib/rack/auth/basic.rb#38
119
115
  def valid?(auth); end
120
116
  end
121
117
 
122
- # source://rack//lib/rack/auth/basic.rb#43
118
+ # source://rack//lib/rack/auth/basic.rb#42
123
119
  class Rack::Auth::Basic::Request < ::Rack::Auth::AbstractRequest
124
120
  # @return [Boolean]
125
121
  #
126
- # source://rack//lib/rack/auth/basic.rb#44
122
+ # source://rack//lib/rack/auth/basic.rb#43
127
123
  def basic?; end
128
124
 
129
- # source://rack//lib/rack/auth/basic.rb#48
125
+ # source://rack//lib/rack/auth/basic.rb#47
130
126
  def credentials; end
131
127
 
132
- # source://rack//lib/rack/auth/basic.rb#52
128
+ # source://rack//lib/rack/auth/basic.rb#51
133
129
  def username; end
134
130
  end
135
131
 
136
- # source://rack//lib/rack/auth/digest.rb#12
137
- module Rack::Auth::Digest; end
132
+ # source://rack//lib/rack/builder.rb#6
133
+ Rack::BUILDER_TOPLEVEL_BINDING = T.let(T.unsafe(nil), Proc)
138
134
 
139
- # Rack::Auth::Digest::MD5 implements the MD5 algorithm version of
140
- # HTTP Digest Authentication, as per RFC 2617.
141
- #
142
- # Initialize with the [Rack] application that you want protecting,
143
- # and a block that looks up a plaintext password for a given username.
144
- #
145
- # +opaque+ needs to be set to a constant base64/hexadecimal string.
135
+ # Represents a 400 Bad Request error when input data fails to meet the
136
+ # requirements.
146
137
  #
147
- # source://rack//lib/rack/auth/digest.rb#144
148
- class Rack::Auth::Digest::MD5 < ::Rack::Auth::AbstractHandler
149
- # @return [MD5] a new instance of MD5
150
- #
151
- # source://rack//lib/rack/auth/digest.rb#150
152
- def initialize(app, realm = T.unsafe(nil), opaque = T.unsafe(nil), &authenticator); end
153
-
154
- # source://rack//lib/rack/auth/digest.rb#163
155
- def call(env); end
156
-
157
- # Returns the value of attribute opaque.
158
- #
159
- # source://rack//lib/rack/auth/digest.rb#146
160
- def opaque; end
161
-
162
- # Sets the attribute opaque
163
- #
164
- # @param value the value to set the attribute opaque to.
165
- #
166
- # source://rack//lib/rack/auth/digest.rb#146
167
- def opaque=(_arg0); end
168
-
169
- # Sets the attribute passwords_hashed
170
- #
171
- # @param value the value to set the attribute passwords_hashed to.
172
- #
173
- # source://rack//lib/rack/auth/digest.rb#148
174
- def passwords_hashed=(_arg0); end
175
-
176
- # @return [Boolean]
177
- #
178
- # source://rack//lib/rack/auth/digest.rb#159
179
- def passwords_hashed?; end
180
-
181
- private
182
-
183
- # source://rack//lib/rack/auth/digest.rb#238
184
- def A1(auth, password); end
185
-
186
- # source://rack//lib/rack/auth/digest.rb#242
187
- def A2(auth); end
188
-
189
- # source://rack//lib/rack/auth/digest.rb#228
190
- def H(data); end
191
-
192
- # source://rack//lib/rack/auth/digest.rb#234
193
- def KD(secret, data); end
194
-
195
- # source://rack//lib/rack/auth/digest.rb#203
196
- def challenge(hash = T.unsafe(nil)); end
197
-
198
- # source://rack//lib/rack/auth/digest.rb#246
199
- def digest(auth, password); end
200
-
201
- # source://rack//lib/rack/auth/digest.rb#228
202
- def md5(data); end
203
-
204
- # source://rack//lib/rack/auth/digest.rb#192
205
- def params(hash = T.unsafe(nil)); end
206
-
207
- # @return [Boolean]
208
- #
209
- # source://rack//lib/rack/auth/digest.rb#207
210
- def valid?(auth); end
211
-
212
- # @return [Boolean]
213
- #
214
- # source://rack//lib/rack/auth/digest.rb#223
215
- def valid_digest?(auth); end
216
-
217
- # @return [Boolean]
218
- #
219
- # source://rack//lib/rack/auth/digest.rb#219
220
- def valid_nonce?(auth); end
221
-
222
- # @return [Boolean]
223
- #
224
- # source://rack//lib/rack/auth/digest.rb#215
225
- def valid_opaque?(auth); end
226
-
227
- # @return [Boolean]
228
- #
229
- # source://rack//lib/rack/auth/digest.rb#211
230
- def valid_qop?(auth); end
231
- end
232
-
233
- # source://rack//lib/rack/auth/digest.rb#190
234
- Rack::Auth::Digest::MD5::QOP = T.let(T.unsafe(nil), String)
235
-
236
- # Rack::Auth::Digest::Nonce is the default nonce generator for the
237
- # Rack::Auth::Digest::MD5 authentication handler.
238
- #
239
- # +private_key+ needs to set to a constant string.
240
- #
241
- # +time_limit+ can be optionally set to an integer (number of seconds),
242
- # to limit the validity of the generated nonces.
243
- #
244
- # source://rack//lib/rack/auth/digest.rb#21
245
- class Rack::Auth::Digest::Nonce
246
- # @return [Nonce] a new instance of Nonce
247
- #
248
- # source://rack//lib/rack/auth/digest.rb#31
249
- def initialize(timestamp = T.unsafe(nil), given_digest = T.unsafe(nil)); end
250
-
251
- # source://rack//lib/rack/auth/digest.rb#39
252
- def digest; end
253
-
254
- # @return [Boolean]
255
- #
256
- # source://rack//lib/rack/auth/digest.rb#51
257
- def fresh?; end
258
-
259
- # @return [Boolean]
260
- #
261
- # source://rack//lib/rack/auth/digest.rb#47
262
- def stale?; end
263
-
264
- # source://rack//lib/rack/auth/digest.rb#35
265
- def to_s; end
266
-
267
- # @return [Boolean]
268
- #
269
- # source://rack//lib/rack/auth/digest.rb#43
270
- def valid?; end
271
-
272
- class << self
273
- # source://rack//lib/rack/auth/digest.rb#27
274
- def parse(string); end
275
-
276
- # Returns the value of attribute private_key.
277
- #
278
- # source://rack//lib/rack/auth/digest.rb#24
279
- def private_key; end
280
-
281
- # Sets the attribute private_key
282
- #
283
- # @param value the value to set the attribute private_key to.
284
- #
285
- # source://rack//lib/rack/auth/digest.rb#24
286
- def private_key=(_arg0); end
287
-
288
- # Returns the value of attribute time_limit.
289
- #
290
- # source://rack//lib/rack/auth/digest.rb#24
291
- def time_limit; end
292
-
293
- # Sets the attribute time_limit
294
- #
295
- # @param value the value to set the attribute time_limit to.
296
- #
297
- # source://rack//lib/rack/auth/digest.rb#24
298
- def time_limit=(_arg0); end
299
- end
300
- end
301
-
302
- # source://rack//lib/rack/auth/digest.rb#57
303
- class Rack::Auth::Digest::Params < ::Hash
304
- # @return [Params] a new instance of Params
305
- # @yield [_self]
306
- # @yieldparam _self [Rack::Auth::Digest::Params] the object that the method was called on
307
- #
308
- # source://rack//lib/rack/auth/digest.rb#76
309
- def initialize; end
310
-
311
- # source://rack//lib/rack/auth/digest.rb#82
312
- def [](k); end
313
-
314
- # source://rack//lib/rack/auth/digest.rb#86
315
- def []=(k, v); end
316
-
317
- # From WEBrick::HTTPUtils
318
- #
319
- # source://rack//lib/rack/auth/digest.rb#98
320
- def quote(str); end
321
-
322
- # source://rack//lib/rack/auth/digest.rb#92
323
- def to_s; end
324
-
325
- class << self
326
- # From WEBrick::HTTPUtils
327
- #
328
- # source://rack//lib/rack/auth/digest.rb#66
329
- def dequote(str); end
330
-
331
- # source://rack//lib/rack/auth/digest.rb#59
332
- def parse(str); end
333
-
334
- # source://rack//lib/rack/auth/digest.rb#72
335
- def split_header_value(str); end
336
- end
337
- end
338
-
339
- # source://rack//lib/rack/auth/digest.rb#90
340
- Rack::Auth::Digest::Params::UNQUOTED = T.let(T.unsafe(nil), Array)
341
-
342
- # source://rack//lib/rack/auth/digest.rb#104
343
- class Rack::Auth::Digest::Request < ::Rack::Auth::AbstractRequest
344
- # @return [Boolean]
345
- #
346
- # source://rack//lib/rack/auth/digest.rb#113
347
- def correct_uri?; end
348
-
349
- # @return [Boolean]
350
- #
351
- # source://rack//lib/rack/auth/digest.rb#109
352
- def digest?; end
353
-
354
- # source://rack//lib/rack/auth/digest.rb#105
355
- def method; end
356
-
357
- # @raise [ArgumentError]
358
- #
359
- # source://rack//lib/rack/auth/digest.rb#129
360
- def method_missing(sym, *args); end
361
-
362
- # source://rack//lib/rack/auth/digest.rb#117
363
- def nonce; end
364
-
365
- # source://rack//lib/rack/auth/digest.rb#121
366
- def params; end
367
-
368
- # @return [Boolean]
369
- #
370
- # source://rack//lib/rack/auth/digest.rb#125
371
- def respond_to?(sym, *_arg1); end
372
- end
138
+ # source://rack//lib/rack/bad_request.rb#6
139
+ module Rack::BadRequest; end
373
140
 
374
141
  # Proxy for response bodies allowing calling a block when
375
142
  # the response body is closed (after the response has been fully
@@ -388,7 +155,7 @@ class Rack::BodyProxy
388
155
  # If not already closed, close the wrapped body and
389
156
  # then call the block the proxy was initialized with.
390
157
  #
391
- # source://rack//lib/rack/body_proxy.rb#23
158
+ # source://rack//lib/rack/body_proxy.rb#28
392
159
  def close; end
393
160
 
394
161
  # Whether the proxy is closed. The proxy starts as not closed,
@@ -396,12 +163,12 @@ class Rack::BodyProxy
396
163
  #
397
164
  # @return [Boolean]
398
165
  #
399
- # source://rack//lib/rack/body_proxy.rb#35
166
+ # source://rack//lib/rack/body_proxy.rb#40
400
167
  def closed?; end
401
168
 
402
169
  # Delegate missing methods to the wrapped body.
403
170
  #
404
- # source://rack//lib/rack/body_proxy.rb#40
171
+ # source://rack//lib/rack/body_proxy.rb#45
405
172
  def method_missing(method_name, *args, **_arg2, &block); end
406
173
 
407
174
  private
@@ -442,7 +209,7 @@ end
442
209
  # +use+ adds middleware to the stack, +run+ dispatches to an application.
443
210
  # You can use +map+ to construct a Rack::URLMap in a convenient way.
444
211
  #
445
- # source://rack//lib/rack/builder.rb#33
212
+ # source://rack//lib/rack/builder.rb#36
446
213
  class Rack::Builder
447
214
  # Initialize a new Rack::Builder instance. +default_app+ specifies the
448
215
  # default application if +run+ is not called later. If a block
@@ -450,20 +217,20 @@ class Rack::Builder
450
217
  #
451
218
  # @return [Builder] a new instance of Builder
452
219
  #
453
- # source://rack//lib/rack/builder.rb#111
454
- def initialize(default_app = T.unsafe(nil), &block); end
220
+ # source://rack//lib/rack/builder.rb#116
221
+ def initialize(default_app = T.unsafe(nil), **options, &block); end
455
222
 
456
223
  # Call the Rack application generated by this builder instance. Note that
457
224
  # this rebuilds the Rack application and runs the warmup code (if any)
458
225
  # every time it is called, so it should not be used if performance is important.
459
226
  #
460
- # source://rack//lib/rack/builder.rb#263
227
+ # source://rack//lib/rack/builder.rb#276
461
228
  def call(env); end
462
229
 
463
230
  # Freeze the app (set using run) and all middleware instances when building the application
464
231
  # in to_app.
465
232
  #
466
- # source://rack//lib/rack/builder.rb#246
233
+ # source://rack//lib/rack/builder.rb#259
467
234
  def freeze_app; end
468
235
 
469
236
  # Creates a route within the application. Routes under the mapped path will be sent to
@@ -506,9 +273,18 @@ class Rack::Builder
506
273
  # Note that providing a +path+ of +/+ will ignore any default application given in a +run+ statement
507
274
  # outside the block.
508
275
  #
509
- # source://rack//lib/rack/builder.rb#239
276
+ # source://rack//lib/rack/builder.rb#252
510
277
  def map(path, &block); end
511
278
 
279
+ # Any options provided to the Rack::Builder instance at initialization.
280
+ # These options can be server-specific. Some general options are:
281
+ #
282
+ # * +:isolation+: One of +process+, +thread+ or +fiber+. The execution
283
+ # isolation model to use.
284
+ #
285
+ # source://rack//lib/rack/builder.rb#132
286
+ def options; end
287
+
512
288
  # Takes a block or argument that is an object that responds to #call and
513
289
  # returns a Rack response.
514
290
  #
@@ -534,12 +310,12 @@ class Rack::Builder
534
310
  #
535
311
  # @raise [ArgumentError]
536
312
  #
537
- # source://rack//lib/rack/builder.rb#180
313
+ # source://rack//lib/rack/builder.rb#193
538
314
  def run(app = T.unsafe(nil), &block); end
539
315
 
540
316
  # Return the Rack application generated by this instance.
541
317
  #
542
- # source://rack//lib/rack/builder.rb#251
318
+ # source://rack//lib/rack/builder.rb#264
543
319
  def to_app; end
544
320
 
545
321
  # Specifies middleware to use in a stack.
@@ -562,7 +338,7 @@ class Rack::Builder
562
338
  # The +call+ method in this example sets an additional environment key which then can be
563
339
  # referenced in the application if required.
564
340
  #
565
- # source://rack//lib/rack/builder.rb#146
341
+ # source://rack//lib/rack/builder.rb#159
566
342
  def use(middleware, *args, **_arg2, &block); end
567
343
 
568
344
  # Takes a lambda or block that is used to warm-up the application. This block is called
@@ -576,7 +352,7 @@ class Rack::Builder
576
352
  # use SomeMiddleware
577
353
  # run MyApp
578
354
  #
579
- # source://rack//lib/rack/builder.rb#196
355
+ # source://rack//lib/rack/builder.rb#209
580
356
  def warmup(prc = T.unsafe(nil), &block); end
581
357
 
582
358
  private
@@ -584,14 +360,14 @@ class Rack::Builder
584
360
  # Generate a URLMap instance by generating new Rack applications for each
585
361
  # map block in this instance.
586
362
  #
587
- # source://rack//lib/rack/builder.rb#271
363
+ # source://rack//lib/rack/builder.rb#284
588
364
  def generate_map(default_app, mapping); end
589
365
 
590
366
  class << self
591
367
  # Create a new Rack::Builder instance and return the Rack application
592
368
  # generated from it.
593
369
  #
594
- # source://rack//lib/rack/builder.rb#123
370
+ # source://rack//lib/rack/builder.rb#136
595
371
  def app(default_app = T.unsafe(nil), &block); end
596
372
 
597
373
  # Load the given file as a rackup file, treating the
@@ -608,14 +384,14 @@ class Rack::Builder
608
384
  # require './app.rb'
609
385
  # run App
610
386
  #
611
- # source://rack//lib/rack/builder.rb#84
612
- def load_file(path); end
387
+ # source://rack//lib/rack/builder.rb#87
388
+ def load_file(path, **options); end
613
389
 
614
390
  # Evaluate the given +builder_script+ string in the context of
615
391
  # a Rack::Builder block, returning a Rack application.
616
392
  #
617
- # source://rack//lib/rack/builder.rb#99
618
- def new_from_string(builder_script, file = T.unsafe(nil)); end
393
+ # source://rack//lib/rack/builder.rb#102
394
+ def new_from_string(builder_script, path = T.unsafe(nil), **options); end
619
395
 
620
396
  # Parse the given config file to get a Rack application.
621
397
  #
@@ -635,21 +411,21 @@ class Rack::Builder
635
411
  # Rack::Builder.parse_file('app.rb')
636
412
  # # requires app.rb, which can be anywhere in Ruby's
637
413
  # # load path. After requiring, assumes App constant
638
- # # contains Rack application
414
+ # # is a Rack application
639
415
  #
640
416
  # Rack::Builder.parse_file('./my_app.rb')
641
417
  # # requires ./my_app.rb, which should be in the
642
418
  # # process's current directory. After requiring,
643
- # # assumes MyApp constant contains Rack application
419
+ # # assumes MyApp constant is a Rack application
644
420
  #
645
- # source://rack//lib/rack/builder.rb#62
646
- def parse_file(path); end
421
+ # source://rack//lib/rack/builder.rb#65
422
+ def parse_file(path, **options); end
647
423
  end
648
424
  end
649
425
 
650
426
  # https://stackoverflow.com/questions/2223882/whats-the-difference-between-utf-8-and-utf-8-without-bom
651
427
  #
652
- # source://rack//lib/rack/builder.rb#36
428
+ # source://rack//lib/rack/builder.rb#39
653
429
  Rack::Builder::UTF_8_BOM = T.let(T.unsafe(nil), String)
654
430
 
655
431
  # Response Header Keys
@@ -657,6 +433,9 @@ Rack::Builder::UTF_8_BOM = T.let(T.unsafe(nil), String)
657
433
  # source://rack//lib/rack/constants.rb#19
658
434
  Rack::CACHE_CONTROL = T.let(T.unsafe(nil), String)
659
435
 
436
+ # source://rack//lib/rack/constants.rb#35
437
+ Rack::CONNECT = T.let(T.unsafe(nil), String)
438
+
660
439
  # source://rack//lib/rack/constants.rb#20
661
440
  Rack::CONTENT_LENGTH = T.let(T.unsafe(nil), String)
662
441
 
@@ -679,142 +458,41 @@ class Rack::Cascade
679
458
  #
680
459
  # @return [Cascade] a new instance of Cascade
681
460
  #
682
- # source://rack//lib/rack/cascade.rb#24
461
+ # source://rack//lib/rack/cascade.rb#21
683
462
  def initialize(apps, cascade_for = T.unsafe(nil)); end
684
463
 
685
464
  # Append an app to the list of apps to cascade. This app will
686
465
  # be tried last.
687
466
  #
688
- # source://rack//lib/rack/cascade.rb#59
467
+ # source://rack//lib/rack/cascade.rb#56
689
468
  def <<(app); end
690
469
 
691
470
  # Append an app to the list of apps to cascade. This app will
692
471
  # be tried last.
693
472
  #
694
- # source://rack//lib/rack/cascade.rb#59
473
+ # source://rack//lib/rack/cascade.rb#56
695
474
  def add(app); end
696
475
 
697
476
  # An array of applications to try in order.
698
477
  #
699
- # source://rack//lib/rack/cascade.rb#16
478
+ # source://rack//lib/rack/cascade.rb#13
700
479
  def apps; end
701
480
 
702
481
  # Call each app in order. If the responses uses a status that requires
703
482
  # cascading, try the next app. If all responses require cascading,
704
483
  # return the response from the last app.
705
484
  #
706
- # source://rack//lib/rack/cascade.rb#35
485
+ # source://rack//lib/rack/cascade.rb#32
707
486
  def call(env); end
708
487
 
709
488
  # Whether the given app is one of the apps to cascade to.
710
489
  #
711
490
  # @return [Boolean]
712
491
  #
713
- # source://rack//lib/rack/cascade.rb#64
492
+ # source://rack//lib/rack/cascade.rb#61
714
493
  def include?(app); end
715
494
  end
716
495
 
717
- # deprecated, no longer used
718
- #
719
- # source://rack//lib/rack/cascade.rb#13
720
- Rack::Cascade::NotFound = T.let(T.unsafe(nil), Array)
721
-
722
- # Middleware that applies chunked transfer encoding to response bodies
723
- # when the response does not include a content-length header.
724
- #
725
- # This supports the trailer response header to allow the use of trailing
726
- # headers in the chunked encoding. However, using this requires you manually
727
- # specify a response body that supports a +trailers+ method. Example:
728
- #
729
- # [200, { 'trailer' => 'expires'}, ["Hello", "World"]]
730
- # # error raised
731
- #
732
- # body = ["Hello", "World"]
733
- # def body.trailers
734
- # { 'expires' => Time.now.to_s }
735
- # end
736
- # [200, { 'trailer' => 'expires'}, body]
737
- # # No exception raised
738
- #
739
- # source://rack//lib/rack/chunked.rb#25
740
- class Rack::Chunked
741
- include ::Rack::Utils
742
-
743
- # @return [Chunked] a new instance of Chunked
744
- #
745
- # source://rack//lib/rack/chunked.rb#82
746
- def initialize(app); end
747
-
748
- # If the rack app returns a response that should have a body,
749
- # but does not have content-length or transfer-encoding headers,
750
- # modify the response to use chunked transfer-encoding.
751
- #
752
- # source://rack//lib/rack/chunked.rb#101
753
- def call(env); end
754
-
755
- # Whether the HTTP version supports chunked encoding (HTTP 1.1 does).
756
- #
757
- # @return [Boolean]
758
- #
759
- # source://rack//lib/rack/chunked.rb#87
760
- def chunkable_version?(ver); end
761
- end
762
-
763
- # A body wrapper that emits chunked responses.
764
- #
765
- # source://rack//lib/rack/chunked.rb#29
766
- class Rack::Chunked::Body
767
- # Store the response body to be chunked.
768
- #
769
- # @return [Body] a new instance of Body
770
- #
771
- # source://rack//lib/rack/chunked.rb#34
772
- def initialize(body); end
773
-
774
- # Close the response body if the response body supports it.
775
- #
776
- # source://rack//lib/rack/chunked.rb#54
777
- def close; end
778
-
779
- # For each element yielded by the response body, yield
780
- # the element in chunked encoding.
781
- #
782
- # @yield [TAIL]
783
- #
784
- # source://rack//lib/rack/chunked.rb#40
785
- def each(&block); end
786
-
787
- private
788
-
789
- # Do nothing as this class does not support trailer headers.
790
- #
791
- # source://rack//lib/rack/chunked.rb#61
792
- def yield_trailers; end
793
- end
794
-
795
- # source://rack//lib/rack/chunked.rb#31
796
- Rack::Chunked::Body::TAIL = T.let(T.unsafe(nil), String)
797
-
798
- # source://rack//lib/rack/chunked.rb#30
799
- Rack::Chunked::Body::TERM = T.let(T.unsafe(nil), String)
800
-
801
- # A body wrapper that emits chunked responses and also supports
802
- # sending Trailer headers. Note that the response body provided to
803
- # initialize must have a +trailers+ method that returns a hash
804
- # of trailer headers, and the rack response itself should have a
805
- # Trailer header listing the headers that the +trailers+ method
806
- # will return.
807
- #
808
- # source://rack//lib/rack/chunked.rb#71
809
- class Rack::Chunked::TrailerBody < ::Rack::Chunked::Body
810
- private
811
-
812
- # Yield strings for each trailer header.
813
- #
814
- # source://rack//lib/rack/chunked.rb#75
815
- def yield_trailers; end
816
- end
817
-
818
496
  # Rack::CommonLogger forwards every request to the given +app+, and
819
497
  # logs a line in the
820
498
  # {Apache common log format}[http://httpd.apache.org/docs/1.3/logs.html#common]
@@ -1361,9 +1039,6 @@ class Rack::Events::EventedBodyProxy < ::Rack::BodyProxy
1361
1039
  def response; end
1362
1040
  end
1363
1041
 
1364
- # source://rack//lib/rack/file.rb#8
1365
- Rack::File = Rack::Files
1366
-
1367
1042
  # Rack::Files serves files below the +root+ directory given, according to the
1368
1043
  # path info of the Rack request.
1369
1044
  # e.g. when Rack::Files.new("/etc") is used, you can access 'passwd' file
@@ -1531,125 +1206,128 @@ end
1531
1206
  # (by using non-lowercase response header keys), automatically handling
1532
1207
  # the downcasing of keys.
1533
1208
  #
1534
- # source://rack//lib/rack/headers.rb#6
1209
+ # source://rack//lib/rack/headers.rb#8
1535
1210
  class Rack::Headers < ::Hash
1536
- # source://rack//lib/rack/headers.rb#26
1211
+ # source://rack//lib/rack/headers.rb#110
1537
1212
  def [](key); end
1538
1213
 
1539
- # source://rack//lib/rack/headers.rb#30
1214
+ # source://rack//lib/rack/headers.rb#114
1540
1215
  def []=(key, value); end
1541
1216
 
1542
- # source://rack//lib/rack/headers.rb#35
1217
+ # source://rack//lib/rack/headers.rb#119
1543
1218
  def assoc(key); end
1544
1219
 
1545
1220
  # @raise [TypeError]
1546
1221
  #
1547
- # source://rack//lib/rack/headers.rb#39
1222
+ # source://rack//lib/rack/headers.rb#123
1548
1223
  def compare_by_identity; end
1549
1224
 
1550
- # source://rack//lib/rack/headers.rb#43
1225
+ # source://rack//lib/rack/headers.rb#127
1551
1226
  def delete(key); end
1552
1227
 
1553
- # source://rack//lib/rack/headers.rb#47
1228
+ # source://rack//lib/rack/headers.rb#131
1554
1229
  def dig(key, *a); end
1555
1230
 
1556
1231
  # :nocov:
1557
1232
  #
1558
- # source://rack//lib/rack/headers.rb#143
1233
+ # source://rack//lib/rack/headers.rb#227
1559
1234
  def except(*a); end
1560
1235
 
1561
- # source://rack//lib/rack/headers.rb#51
1236
+ # source://rack//lib/rack/headers.rb#135
1562
1237
  def fetch(key, *default, &block); end
1563
1238
 
1564
- # source://rack//lib/rack/headers.rb#56
1239
+ # source://rack//lib/rack/headers.rb#140
1565
1240
  def fetch_values(*a); end
1566
1241
 
1567
1242
  # @return [Boolean]
1568
1243
  #
1569
- # source://rack//lib/rack/headers.rb#60
1244
+ # source://rack//lib/rack/headers.rb#144
1570
1245
  def has_key?(key); end
1571
1246
 
1572
1247
  # @return [Boolean]
1573
1248
  #
1574
- # source://rack//lib/rack/headers.rb#60
1249
+ # source://rack//lib/rack/headers.rb#144
1575
1250
  def include?(key); end
1576
1251
 
1577
- # source://rack//lib/rack/headers.rb#67
1252
+ # source://rack//lib/rack/headers.rb#151
1578
1253
  def invert; end
1579
1254
 
1580
1255
  # @return [Boolean]
1581
1256
  #
1582
- # source://rack//lib/rack/headers.rb#60
1257
+ # source://rack//lib/rack/headers.rb#144
1583
1258
  def key?(key); end
1584
1259
 
1585
1260
  # @return [Boolean]
1586
1261
  #
1587
- # source://rack//lib/rack/headers.rb#60
1262
+ # source://rack//lib/rack/headers.rb#144
1588
1263
  def member?(key); end
1589
1264
 
1590
- # source://rack//lib/rack/headers.rb#73
1265
+ # source://rack//lib/rack/headers.rb#157
1591
1266
  def merge(hash, &block); end
1592
1267
 
1593
- # source://rack//lib/rack/headers.rb#102
1268
+ # source://rack//lib/rack/headers.rb#186
1594
1269
  def merge!(hash, &block); end
1595
1270
 
1596
- # source://rack//lib/rack/headers.rb#77
1271
+ # source://rack//lib/rack/headers.rb#161
1597
1272
  def reject(&block); end
1598
1273
 
1599
- # source://rack//lib/rack/headers.rb#83
1274
+ # source://rack//lib/rack/headers.rb#167
1600
1275
  def replace(hash); end
1601
1276
 
1602
- # source://rack//lib/rack/headers.rb#88
1277
+ # source://rack//lib/rack/headers.rb#172
1603
1278
  def select(&block); end
1604
1279
 
1605
1280
  # :nocov:
1606
1281
  #
1607
- # source://rack//lib/rack/headers.rb#121
1282
+ # source://rack//lib/rack/headers.rb#205
1608
1283
  def slice(*a); end
1609
1284
 
1610
- # source://rack//lib/rack/headers.rb#30
1285
+ # source://rack//lib/rack/headers.rb#114
1611
1286
  def store(key, value); end
1612
1287
 
1613
- # source://rack//lib/rack/headers.rb#94
1288
+ # source://rack//lib/rack/headers.rb#178
1614
1289
  def to_proc; end
1615
1290
 
1616
- # source://rack//lib/rack/headers.rb#127
1291
+ # source://rack//lib/rack/headers.rb#211
1617
1292
  def transform_keys(&block); end
1618
1293
 
1619
- # source://rack//lib/rack/headers.rb#131
1294
+ # source://rack//lib/rack/headers.rb#215
1620
1295
  def transform_keys!; end
1621
1296
 
1622
- # source://rack//lib/rack/headers.rb#98
1297
+ # source://rack//lib/rack/headers.rb#182
1623
1298
  def transform_values(&block); end
1624
1299
 
1625
- # source://rack//lib/rack/headers.rb#102
1300
+ # source://rack//lib/rack/headers.rb#186
1626
1301
  def update(hash, &block); end
1627
1302
 
1628
- # source://rack//lib/rack/headers.rb#114
1303
+ # source://rack//lib/rack/headers.rb#198
1629
1304
  def values_at(*keys); end
1630
1305
 
1631
1306
  private
1632
1307
 
1633
- # source://rack//lib/rack/headers.rb#150
1308
+ # source://rack//lib/rack/headers.rb#234
1634
1309
  def downcase_key(key); end
1635
1310
 
1636
1311
  class << self
1637
- # source://rack//lib/rack/headers.rb#7
1312
+ # source://rack//lib/rack/headers.rb#91
1638
1313
  def [](*items); end
1639
1314
  end
1640
1315
  end
1641
1316
 
1642
- # source://rack//lib/rack/constants.rb#35
1317
+ # source://rack//lib/rack/headers.rb#9
1318
+ Rack::Headers::KNOWN_HEADERS = T.let(T.unsafe(nil), Hash)
1319
+
1320
+ # source://rack//lib/rack/constants.rb#36
1643
1321
  Rack::LINK = T.let(T.unsafe(nil), String)
1644
1322
 
1645
1323
  # Rack::Lint validates your application and the requests and
1646
1324
  # responses according to the Rack spec.
1647
1325
  #
1648
- # source://rack//lib/rack/lint.rb#12
1326
+ # source://rack//lib/rack/lint.rb#13
1649
1327
  class Rack::Lint
1650
1328
  # @return [Lint] a new instance of Lint
1651
1329
  #
1652
- # source://rack//lib/rack/lint.rb#13
1330
+ # source://rack//lib/rack/lint.rb#19
1653
1331
  def initialize(app); end
1654
1332
 
1655
1333
  # AUTHORS: n.b. The trailing whitespace between paragraphs is important and
@@ -1667,57 +1345,77 @@ class Rack::Lint
1667
1345
  # A Rack application is a Ruby object (not a class) that
1668
1346
  # responds to +call+.
1669
1347
  #
1670
- # source://rack//lib/rack/lint.rb#34
1348
+ # source://rack//lib/rack/lint.rb#40
1671
1349
  def call(env = T.unsafe(nil)); end
1672
1350
  end
1673
1351
 
1674
1352
  # :stopdoc:
1675
1353
  #
1676
- # source://rack//lib/rack/lint.rb#19
1354
+ # source://rack//lib/rack/lint.rb#25
1677
1355
  class Rack::Lint::LintError < ::RuntimeError; end
1678
1356
 
1679
- # source://rack//lib/rack/lint.rb#38
1357
+ # source://rack//lib/rack/lint.rb#15
1358
+ Rack::Lint::REQUEST_PATH_ABSOLUTE_FORM = T.let(T.unsafe(nil), Regexp)
1359
+
1360
+ # source://rack//lib/rack/lint.rb#17
1361
+ Rack::Lint::REQUEST_PATH_ASTERISK_FORM = T.let(T.unsafe(nil), String)
1362
+
1363
+ # source://rack//lib/rack/lint.rb#16
1364
+ Rack::Lint::REQUEST_PATH_AUTHORITY_FORM = T.let(T.unsafe(nil), Regexp)
1365
+
1366
+ # source://rack//lib/rack/lint.rb#14
1367
+ Rack::Lint::REQUEST_PATH_ORIGIN_FORM = T.let(T.unsafe(nil), Regexp)
1368
+
1369
+ # source://rack//lib/rack/lint.rb#44
1680
1370
  class Rack::Lint::Wrapper
1681
1371
  # @return [Wrapper] a new instance of Wrapper
1682
1372
  #
1683
- # source://rack//lib/rack/lint.rb#39
1373
+ # source://rack//lib/rack/lint.rb#45
1684
1374
  def initialize(app, env); end
1685
1375
 
1686
1376
  # ==== Streaming Body
1687
1377
  #
1688
1378
  # @raise [LintError]
1689
1379
  #
1690
- # source://rack//lib/rack/lint.rb#855
1380
+ # source://rack//lib/rack/lint.rb#939
1691
1381
  def call(stream); end
1692
1382
 
1693
- # === The content-length
1383
+ # ==== The +content-length+ Header
1694
1384
  #
1695
- # source://rack//lib/rack/lint.rb#693
1696
- def check_content_length(status, headers); end
1385
+ # source://rack//lib/rack/lint.rb#757
1386
+ def check_content_length_header(status, headers); end
1697
1387
 
1698
- # === The content-type
1388
+ # ==== The +content-type+ Header
1699
1389
  #
1700
- # source://rack//lib/rack/lint.rb#677
1701
- def check_content_type(status, headers); end
1390
+ # source://rack//lib/rack/lint.rb#741
1391
+ def check_content_type_header(status, headers); end
1392
+
1393
+ # === Early Hints
1394
+ #
1395
+ # The application or any middleware may call the <tt>rack.early_hints</tt>
1396
+ # with an object which would be valid as the headers of a Rack response.
1397
+ #
1398
+ # source://rack//lib/rack/lint.rb#657
1399
+ def check_early_hints(env); end
1702
1400
 
1703
1401
  # == The Environment
1704
1402
  #
1705
1403
  # @raise [LintError]
1706
1404
  #
1707
- # source://rack//lib/rack/lint.rb#97
1405
+ # source://rack//lib/rack/lint.rb#101
1708
1406
  def check_environment(env); end
1709
1407
 
1710
1408
  # === The Error Stream
1711
1409
  #
1712
- # source://rack//lib/rack/lint.rb#491
1713
- def check_error(error); end
1410
+ # source://rack//lib/rack/lint.rb#531
1411
+ def check_error_stream(error); end
1714
1412
 
1715
- # source://rack//lib/rack/lint.rb#667
1413
+ # source://rack//lib/rack/lint.rb#731
1716
1414
  def check_header_value(key, value); end
1717
1415
 
1718
1416
  # === The Headers
1719
1417
  #
1720
- # source://rack//lib/rack/lint.rb#627
1418
+ # source://rack//lib/rack/lint.rb#691
1721
1419
  def check_headers(headers); end
1722
1420
 
1723
1421
  # === Hijacking
@@ -1742,7 +1440,7 @@ class Rack::Lint::Wrapper
1742
1440
  # It is intended to be used when applications need access to raw HTTP/1
1743
1441
  # connection.
1744
1442
  #
1745
- # source://rack//lib/rack/lint.rb#551
1443
+ # source://rack//lib/rack/lint.rb#591
1746
1444
  def check_hijack(env); end
1747
1445
 
1748
1446
  # ==== Partial Hijack
@@ -1754,7 +1452,7 @@ class Rack::Lint::Wrapper
1754
1452
  # It is intended to be used when applications need bi-directional
1755
1453
  # streaming.
1756
1454
  #
1757
- # source://rack//lib/rack/lint.rb#579
1455
+ # source://rack//lib/rack/lint.rb#619
1758
1456
  def check_hijack_response(headers, env); end
1759
1457
 
1760
1458
  # === The Input Stream
@@ -1762,16 +1460,25 @@ class Rack::Lint::Wrapper
1762
1460
  # The input stream is an IO-like object which contains the raw HTTP
1763
1461
  # POST data.
1764
1462
  #
1765
- # source://rack//lib/rack/lint.rb#387
1766
- def check_input(input); end
1463
+ # source://rack//lib/rack/lint.rb#427
1464
+ def check_input_stream(input); end
1465
+
1466
+ # ==== The +rack.protocol+ Header
1467
+ #
1468
+ # source://rack//lib/rack/lint.rb#785
1469
+ def check_rack_protocol_header(status, headers); end
1767
1470
 
1768
1471
  # == The Response
1769
1472
  #
1770
1473
  # === The Status
1771
1474
  #
1772
- # source://rack//lib/rack/lint.rb#616
1475
+ # source://rack//lib/rack/lint.rb#680
1773
1476
  def check_status(status); end
1774
1477
 
1478
+ # Setting this value informs the server that it should perform a
1479
+ # connection upgrade. In HTTP/1, this is done using the +upgrade+
1480
+ # header. In HTTP/2, this is done by accepting the request.
1481
+ #
1775
1482
  # === The Body
1776
1483
  #
1777
1484
  # The Body is typically an +Array+ of +String+ instances, an enumerable
@@ -1797,24 +1504,24 @@ class Rack::Lint::Wrapper
1797
1504
  # cases where the Rack application makes internal/virtual requests and
1798
1505
  # discards the response.
1799
1506
  #
1800
- # source://rack//lib/rack/lint.rb#744
1507
+ # source://rack//lib/rack/lint.rb#831
1801
1508
  def close; end
1802
1509
 
1803
1510
  # ==== Enumerable Body
1804
1511
  #
1805
1512
  # @raise [LintError]
1806
1513
  #
1807
- # source://rack//lib/rack/lint.rb#778
1514
+ # source://rack//lib/rack/lint.rb#865
1808
1515
  def each; end
1809
1516
 
1810
1517
  # @return [Boolean]
1811
1518
  #
1812
- # source://rack//lib/rack/lint.rb#826
1519
+ # source://rack//lib/rack/lint.rb#910
1813
1520
  def respond_to?(name, *_arg1); end
1814
1521
 
1815
1522
  # @raise [LintError]
1816
1523
  #
1817
- # source://rack//lib/rack/lint.rb#54
1524
+ # source://rack//lib/rack/lint.rb#60
1818
1525
  def response; end
1819
1526
 
1820
1527
  # If the Body responds to +to_ary+, it must return an +Array+ whose
@@ -1825,73 +1532,73 @@ class Rack::Lint::Wrapper
1825
1532
  # +to_ary+ and +close+, its implementation of +to_ary+ must call
1826
1533
  # +close+.
1827
1534
  #
1828
- # source://rack//lib/rack/lint.rb#842
1535
+ # source://rack//lib/rack/lint.rb#926
1829
1536
  def to_ary; end
1830
1537
 
1831
- # source://rack//lib/rack/lint.rb#822
1538
+ # source://rack//lib/rack/lint.rb#906
1832
1539
  def to_path; end
1833
1540
 
1834
- # source://rack//lib/rack/lint.rb#706
1541
+ # source://rack//lib/rack/lint.rb#770
1835
1542
  def verify_content_length(size); end
1836
1543
 
1837
- # source://rack//lib/rack/lint.rb#760
1544
+ # source://rack//lib/rack/lint.rb#847
1838
1545
  def verify_to_path; end
1839
1546
  end
1840
1547
 
1841
- # source://rack//lib/rack/lint.rb#820
1548
+ # source://rack//lib/rack/lint.rb#904
1842
1549
  Rack::Lint::Wrapper::BODY_METHODS = T.let(T.unsafe(nil), Hash)
1843
1550
 
1844
- # source://rack//lib/rack/lint.rb#500
1551
+ # source://rack//lib/rack/lint.rb#540
1845
1552
  class Rack::Lint::Wrapper::ErrorWrapper
1846
1553
  # @return [ErrorWrapper] a new instance of ErrorWrapper
1847
1554
  #
1848
- # source://rack//lib/rack/lint.rb#501
1555
+ # source://rack//lib/rack/lint.rb#541
1849
1556
  def initialize(error); end
1850
1557
 
1851
1558
  # * +close+ must never be called on the error stream.
1852
1559
  #
1853
1560
  # @raise [LintError]
1854
1561
  #
1855
- # source://rack//lib/rack/lint.rb#523
1562
+ # source://rack//lib/rack/lint.rb#563
1856
1563
  def close(*args); end
1857
1564
 
1858
1565
  # * +flush+ must be called without arguments and must be called
1859
1566
  # in order to make the error appear for sure.
1860
1567
  #
1861
- # source://rack//lib/rack/lint.rb#518
1568
+ # source://rack//lib/rack/lint.rb#558
1862
1569
  def flush; end
1863
1570
 
1864
1571
  # * +puts+ must be called with a single argument that responds to +to_s+.
1865
1572
  #
1866
- # source://rack//lib/rack/lint.rb#506
1573
+ # source://rack//lib/rack/lint.rb#546
1867
1574
  def puts(str); end
1868
1575
 
1869
1576
  # * +write+ must be called with a single argument that is a String.
1870
1577
  #
1871
1578
  # @raise [LintError]
1872
1579
  #
1873
- # source://rack//lib/rack/lint.rb#511
1580
+ # source://rack//lib/rack/lint.rb#551
1874
1581
  def write(str); end
1875
1582
  end
1876
1583
 
1877
- # source://rack//lib/rack/lint.rb#405
1584
+ # source://rack//lib/rack/lint.rb#445
1878
1585
  class Rack::Lint::Wrapper::InputWrapper
1879
1586
  # @return [InputWrapper] a new instance of InputWrapper
1880
1587
  #
1881
- # source://rack//lib/rack/lint.rb#406
1588
+ # source://rack//lib/rack/lint.rb#446
1882
1589
  def initialize(input); end
1883
1590
 
1884
- # * +close+ can be called on the input stream to indicate that the
1885
- # any remaining input is not needed.
1591
+ # * +close+ can be called on the input stream to indicate that
1592
+ # any remaining input is not needed.
1886
1593
  #
1887
- # source://rack//lib/rack/lint.rb#483
1594
+ # source://rack//lib/rack/lint.rb#523
1888
1595
  def close(*args); end
1889
1596
 
1890
1597
  # * +each+ must be called without arguments and only yield Strings.
1891
1598
  #
1892
1599
  # @raise [LintError]
1893
1600
  #
1894
- # source://rack//lib/rack/lint.rb#471
1601
+ # source://rack//lib/rack/lint.rb#511
1895
1602
  def each(*args); end
1896
1603
 
1897
1604
  # * +gets+ must be called without arguments and return a string,
@@ -1899,10 +1606,10 @@ class Rack::Lint::Wrapper::InputWrapper
1899
1606
  #
1900
1607
  # @raise [LintError]
1901
1608
  #
1902
- # source://rack//lib/rack/lint.rb#412
1609
+ # source://rack//lib/rack/lint.rb#452
1903
1610
  def gets(*args); end
1904
1611
 
1905
- # * +read+ behaves like IO#read.
1612
+ # * +read+ behaves like <tt>IO#read</tt>.
1906
1613
  # Its signature is <tt>read([length, [buffer]])</tt>.
1907
1614
  #
1908
1615
  # If given, +length+ must be a non-negative Integer (>= 0) or +nil+,
@@ -1920,17 +1627,17 @@ class Rack::Lint::Wrapper::InputWrapper
1920
1627
  # If +buffer+ is given, then the read data will be placed
1921
1628
  # into +buffer+ instead of a newly created String object.
1922
1629
  #
1923
- # source://rack//lib/rack/lint.rb#438
1630
+ # source://rack//lib/rack/lint.rb#478
1924
1631
  def read(*args); end
1925
1632
  end
1926
1633
 
1927
- # source://rack//lib/rack/lint.rb#875
1634
+ # source://rack//lib/rack/lint.rb#959
1928
1635
  class Rack::Lint::Wrapper::StreamWrapper
1929
1636
  extend ::Forwardable
1930
1637
 
1931
1638
  # @return [StreamWrapper] a new instance of StreamWrapper
1932
1639
  #
1933
- # source://rack//lib/rack/lint.rb#890
1640
+ # source://rack//lib/rack/lint.rb#974
1934
1641
  def initialize(stream); end
1935
1642
 
1936
1643
  # source://forwardable/1.3.3/forwardable.rb#231
@@ -1964,7 +1671,7 @@ end
1964
1671
  # pass on real IO objects, although it is recognized that this approach
1965
1672
  # is not directly compatible with HTTP/2.
1966
1673
  #
1967
- # source://rack//lib/rack/lint.rb#883
1674
+ # source://rack//lib/rack/lint.rb#967
1968
1675
  Rack::Lint::Wrapper::StreamWrapper::REQUIRED_METHODS = T.let(T.unsafe(nil), Array)
1969
1676
 
1970
1677
  # Rack::Lock locks every request inside a mutex, so that every request
@@ -1988,14 +1695,14 @@ end
1988
1695
 
1989
1696
  # Sets up rack.logger to write to rack.errors stream
1990
1697
  #
1991
- # source://rack//lib/rack/logger.rb#9
1698
+ # source://rack//lib/rack/logger.rb#10
1992
1699
  class Rack::Logger
1993
1700
  # @return [Logger] a new instance of Logger
1994
1701
  #
1995
- # source://rack//lib/rack/logger.rb#10
1702
+ # source://rack//lib/rack/logger.rb#11
1996
1703
  def initialize(app, level = T.unsafe(nil)); end
1997
1704
 
1998
- # source://rack//lib/rack/logger.rb#14
1705
+ # source://rack//lib/rack/logger.rb#15
1999
1706
  def call(env); end
2000
1707
  end
2001
1708
 
@@ -2010,7 +1717,12 @@ class Rack::MediaType
2010
1717
  # this method responds with the following Hash:
2011
1718
  # { 'charset' => 'utf-8' }
2012
1719
  #
2013
- # source://rack//lib/rack/media_type.rb#30
1720
+ # This will pass back parameters with empty strings in the hash if they
1721
+ # lack a value (e.g., "text/plain;charset=" will return { 'charset' => '' },
1722
+ # and "text/plain;charset" will return { 'charset' => '' }, similarly to
1723
+ # the query params parser (barring the latter case, which returns nil instead)).
1724
+ #
1725
+ # source://rack//lib/rack/media_type.rb#35
2014
1726
  def params(content_type); end
2015
1727
 
2016
1728
  # The media type (type/subtype) portion of the CONTENT_TYPE header
@@ -2025,7 +1737,7 @@ class Rack::MediaType
2025
1737
 
2026
1738
  private
2027
1739
 
2028
- # source://rack//lib/rack/media_type.rb#43
1740
+ # source://rack//lib/rack/media_type.rb#48
2029
1741
  def strip_doublequotes(str); end
2030
1742
  end
2031
1743
  end
@@ -2163,49 +1875,49 @@ Rack::Mime::MIME_TYPES = T.let(T.unsafe(nil), Hash)
2163
1875
  class Rack::MockRequest
2164
1876
  # @return [MockRequest] a new instance of MockRequest
2165
1877
  #
2166
- # source://rack//lib/rack/mock_request.rb#49
1878
+ # source://rack//lib/rack/mock_request.rb#44
2167
1879
  def initialize(app); end
2168
1880
 
2169
1881
  # Make a DELETE request and return a MockResponse. See #request.
2170
1882
  #
2171
- # source://rack//lib/rack/mock_request.rb#62
1883
+ # source://rack//lib/rack/mock_request.rb#57
2172
1884
  def delete(uri, opts = T.unsafe(nil)); end
2173
1885
 
2174
1886
  # Make a GET request and return a MockResponse. See #request.
2175
1887
  #
2176
- # source://rack//lib/rack/mock_request.rb#54
1888
+ # source://rack//lib/rack/mock_request.rb#49
2177
1889
  def get(uri, opts = T.unsafe(nil)); end
2178
1890
 
2179
1891
  # Make a HEAD request and return a MockResponse. See #request.
2180
1892
  #
2181
- # source://rack//lib/rack/mock_request.rb#64
1893
+ # source://rack//lib/rack/mock_request.rb#59
2182
1894
  def head(uri, opts = T.unsafe(nil)); end
2183
1895
 
2184
1896
  # Make an OPTIONS request and return a MockResponse. See #request.
2185
1897
  #
2186
- # source://rack//lib/rack/mock_request.rb#66
1898
+ # source://rack//lib/rack/mock_request.rb#61
2187
1899
  def options(uri, opts = T.unsafe(nil)); end
2188
1900
 
2189
1901
  # Make a PATCH request and return a MockResponse. See #request.
2190
1902
  #
2191
- # source://rack//lib/rack/mock_request.rb#60
1903
+ # source://rack//lib/rack/mock_request.rb#55
2192
1904
  def patch(uri, opts = T.unsafe(nil)); end
2193
1905
 
2194
1906
  # Make a POST request and return a MockResponse. See #request.
2195
1907
  #
2196
- # source://rack//lib/rack/mock_request.rb#56
1908
+ # source://rack//lib/rack/mock_request.rb#51
2197
1909
  def post(uri, opts = T.unsafe(nil)); end
2198
1910
 
2199
1911
  # Make a PUT request and return a MockResponse. See #request.
2200
1912
  #
2201
- # source://rack//lib/rack/mock_request.rb#58
1913
+ # source://rack//lib/rack/mock_request.rb#53
2202
1914
  def put(uri, opts = T.unsafe(nil)); end
2203
1915
 
2204
1916
  # Make a request using the given request method for the given
2205
1917
  # uri to the rack application and return a MockResponse.
2206
1918
  # Options given are passed to MockRequest.env_for.
2207
1919
  #
2208
- # source://rack//lib/rack/mock_request.rb#71
1920
+ # source://rack//lib/rack/mock_request.rb#66
2209
1921
  def request(method = T.unsafe(nil), uri = T.unsafe(nil), opts = T.unsafe(nil)); end
2210
1922
 
2211
1923
  class << self
@@ -2219,20 +1931,17 @@ class Rack::MockRequest
2219
1931
  # :params :: The params to use
2220
1932
  # :script_name :: The SCRIPT_NAME to set
2221
1933
  #
2222
- # source://rack//lib/rack/mock_request.rb#103
1934
+ # source://rack//lib/rack/mock_request.rb#98
2223
1935
  def env_for(uri = T.unsafe(nil), opts = T.unsafe(nil)); end
2224
1936
 
2225
1937
  # For historical reasons, we're pinning to RFC 2396.
2226
1938
  # URI::Parser = URI::RFC2396_Parser
2227
1939
  #
2228
- # source://rack//lib/rack/mock_request.rb#89
1940
+ # source://rack//lib/rack/mock_request.rb#84
2229
1941
  def parse_uri_rfc2396(uri); end
2230
1942
  end
2231
1943
  end
2232
1944
 
2233
- # source://rack//lib/rack/mock_request.rb#44
2234
- Rack::MockRequest::DEFAULT_ENV = T.let(T.unsafe(nil), Hash)
2235
-
2236
1945
  # source://rack//lib/rack/mock_request.rb#27
2237
1946
  class Rack::MockRequest::FatalWarner
2238
1947
  # source://rack//lib/rack/mock_request.rb#36
@@ -2305,7 +2014,7 @@ class Rack::MockResponse < ::Rack::Response
2305
2014
 
2306
2015
  private
2307
2016
 
2308
- # source://rack//lib/rack/mock_response.rb#102
2017
+ # source://rack//lib/rack/mock_response.rb#100
2309
2018
  def identify_cookie_attributes(cookie_filling); end
2310
2019
 
2311
2020
  # source://rack//lib/rack/mock_response.rb#79
@@ -2320,72 +2029,43 @@ end
2320
2029
  #
2321
2030
  # Usually, Rack::Request#POST takes care of calling this.
2322
2031
  #
2323
- # source://rack//lib/rack/multipart/parser.rb#8
2032
+ # source://rack//lib/rack/multipart/parser.rb#9
2324
2033
  module Rack::Multipart
2325
2034
  class << self
2326
- # source://rack//lib/rack/multipart.rb#39
2035
+ # source://rack//lib/rack/multipart.rb#72
2327
2036
  def build_multipart(params, first = T.unsafe(nil)); end
2328
2037
 
2329
- # source://rack//lib/rack/multipart.rb#35
2038
+ # source://rack//lib/rack/multipart.rb#68
2330
2039
  def extract_multipart(request, params = T.unsafe(nil)); end
2331
2040
 
2332
- # source://rack//lib/rack/multipart.rb#17
2041
+ # source://rack//lib/rack/multipart.rb#48
2333
2042
  def parse_multipart(env, params = T.unsafe(nil)); end
2334
2043
  end
2335
2044
  end
2336
2045
 
2337
- # source://rack//lib/rack/multipart/parser.rb#32
2338
- Rack::Multipart::ATTRIBUTE = T.let(T.unsafe(nil), Regexp)
2339
-
2340
- # Updated definitions from RFC 2231
2046
+ # Base class for multipart exceptions that do not subclass from
2047
+ # other exception classes for backwards compatibility.
2341
2048
  #
2342
- # source://rack//lib/rack/multipart/parser.rb#31
2343
- Rack::Multipart::ATTRIBUTE_CHAR = T.let(T.unsafe(nil), Regexp)
2344
-
2345
2049
  # source://rack//lib/rack/multipart/parser.rb#26
2346
- Rack::Multipart::BROKEN = T.let(T.unsafe(nil), Regexp)
2347
-
2348
- # source://rack//lib/rack/multipart/parser.rb#24
2349
- Rack::Multipart::CONDISP = T.let(T.unsafe(nil), Regexp)
2350
-
2351
- # source://rack//lib/rack/multipart/parser.rb#43
2352
- Rack::Multipart::DISPPARM = T.let(T.unsafe(nil), Regexp)
2050
+ class Rack::Multipart::BoundaryTooLongError < ::StandardError
2051
+ include ::Rack::BadRequest
2052
+ end
2353
2053
 
2354
- # source://rack//lib/rack/multipart/parser.rb#21
2054
+ # source://rack//lib/rack/multipart/parser.rb#33
2355
2055
  Rack::Multipart::EOL = T.let(T.unsafe(nil), String)
2356
2056
 
2357
- # source://rack//lib/rack/multipart/parser.rb#39
2358
- Rack::Multipart::EXTENDED_INITIAL_NAME = T.let(T.unsafe(nil), Regexp)
2359
-
2360
- # source://rack//lib/rack/multipart/parser.rb#41
2361
- Rack::Multipart::EXTENDED_INITIAL_PARAMETER = T.let(T.unsafe(nil), Regexp)
2362
-
2363
- # source://rack//lib/rack/multipart/parser.rb#40
2364
- Rack::Multipart::EXTENDED_INITIAL_VALUE = T.let(T.unsafe(nil), Regexp)
2365
-
2366
- # source://rack//lib/rack/multipart/parser.rb#36
2367
- Rack::Multipart::EXTENDED_OTHER_NAME = T.let(T.unsafe(nil), Regexp)
2368
-
2369
- # source://rack//lib/rack/multipart/parser.rb#38
2370
- Rack::Multipart::EXTENDED_OTHER_PARAMETER = T.let(T.unsafe(nil), Regexp)
2371
-
2372
- # source://rack//lib/rack/multipart/parser.rb#37
2373
- Rack::Multipart::EXTENDED_OTHER_VALUE = T.let(T.unsafe(nil), Regexp)
2374
-
2375
- # source://rack//lib/rack/multipart/parser.rb#42
2376
- Rack::Multipart::EXTENDED_PARAMETER = T.let(T.unsafe(nil), Regexp)
2377
-
2378
2057
  # Use specific error class when parsing multipart request
2379
2058
  # that ends early.
2380
2059
  #
2381
- # source://rack//lib/rack/multipart/parser.rb#15
2382
- class Rack::Multipart::EmptyContentError < ::EOFError; end
2060
+ # source://rack//lib/rack/multipart/parser.rb#20
2061
+ class Rack::Multipart::EmptyContentError < ::EOFError
2062
+ include ::Rack::BadRequest
2063
+ end
2383
2064
 
2384
- # Base class for multipart exceptions that do not subclass from
2385
- # other exception classes for backwards compatibility.
2065
+ # Prefer to use the BoundaryTooLongError class or Rack::BadRequest.
2386
2066
  #
2387
- # source://rack//lib/rack/multipart/parser.rb#19
2388
- class Rack::Multipart::Error < ::StandardError; end
2067
+ # source://rack//lib/rack/multipart/parser.rb#31
2068
+ Rack::Multipart::Error = Rack::Multipart::BoundaryTooLongError
2389
2069
 
2390
2070
  # source://rack//lib/rack/multipart/generator.rb#7
2391
2071
  class Rack::Multipart::Generator
@@ -2414,43 +2094,78 @@ class Rack::Multipart::Generator
2414
2094
  def multipart?; end
2415
2095
  end
2416
2096
 
2417
- # source://rack//lib/rack/multipart/parser.rb#22
2097
+ # source://rack//lib/rack/multipart/parser.rb#34
2418
2098
  Rack::Multipart::MULTIPART = T.let(T.unsafe(nil), Regexp)
2419
2099
 
2420
- # source://rack//lib/rack/multipart.rb#14
2100
+ # source://rack//lib/rack/multipart.rb#16
2421
2101
  Rack::Multipart::MULTIPART_BOUNDARY = T.let(T.unsafe(nil), String)
2422
2102
 
2423
- # source://rack//lib/rack/multipart/parser.rb#28
2103
+ # source://rack//lib/rack/multipart/parser.rb#36
2424
2104
  Rack::Multipart::MULTIPART_CONTENT_DISPOSITION = T.let(T.unsafe(nil), Regexp)
2425
2105
 
2426
- # source://rack//lib/rack/multipart/parser.rb#29
2106
+ # source://rack//lib/rack/multipart/parser.rb#37
2427
2107
  Rack::Multipart::MULTIPART_CONTENT_ID = T.let(T.unsafe(nil), Regexp)
2428
2108
 
2429
- # source://rack//lib/rack/multipart/parser.rb#27
2109
+ # source://rack//lib/rack/multipart/parser.rb#35
2430
2110
  Rack::Multipart::MULTIPART_CONTENT_TYPE = T.let(T.unsafe(nil), Regexp)
2431
2111
 
2432
- # source://rack//lib/rack/multipart/parser.rb#9
2433
- class Rack::Multipart::MultipartPartLimitError < ::Errno::EMFILE; end
2112
+ # source://rack//lib/rack/multipart.rb#18
2113
+ class Rack::Multipart::MissingInputError < ::StandardError
2114
+ include ::Rack::BadRequest
2115
+ end
2434
2116
 
2435
- # source://rack//lib/rack/multipart/parser.rb#11
2436
- class Rack::Multipart::MultipartTotalPartLimitError < ::StandardError; end
2117
+ # source://rack//lib/rack/multipart/parser.rb#10
2118
+ class Rack::Multipart::MultipartPartLimitError < ::Errno::EMFILE
2119
+ include ::Rack::BadRequest
2120
+ end
2121
+
2122
+ # source://rack//lib/rack/multipart/parser.rb#14
2123
+ class Rack::Multipart::MultipartTotalPartLimitError < ::StandardError
2124
+ include ::Rack::BadRequest
2125
+ end
2437
2126
 
2438
- # source://rack//lib/rack/multipart/parser.rb#46
2127
+ # Accumulator for multipart form data, conforming to the QueryParser API.
2128
+ # In future, the Parser could return the pair list directly, but that would
2129
+ # change its API.
2130
+ #
2131
+ # source://rack//lib/rack/multipart.rb#25
2132
+ class Rack::Multipart::ParamList
2133
+ # @return [ParamList] a new instance of ParamList
2134
+ #
2135
+ # source://rack//lib/rack/multipart.rb#34
2136
+ def initialize; end
2137
+
2138
+ # source://rack//lib/rack/multipart.rb#38
2139
+ def <<(pair); end
2140
+
2141
+ # source://rack//lib/rack/multipart.rb#42
2142
+ def to_params_hash; end
2143
+
2144
+ class << self
2145
+ # source://rack//lib/rack/multipart.rb#26
2146
+ def make_params; end
2147
+
2148
+ # source://rack//lib/rack/multipart.rb#30
2149
+ def normalize_params(params, key, value); end
2150
+ end
2151
+ end
2152
+
2153
+ # source://rack//lib/rack/multipart/parser.rb#39
2439
2154
  class Rack::Multipart::Parser
2440
2155
  # @return [Parser] a new instance of Parser
2441
2156
  #
2442
- # source://rack//lib/rack/multipart/parser.rb#205
2157
+ # source://rack//lib/rack/multipart/parser.rb#200
2443
2158
  def initialize(boundary, tempfile, bufsize, query_parser); end
2444
2159
 
2445
- # source://rack//lib/rack/multipart/parser.rb#221
2160
+ # source://rack//lib/rack/multipart/parser.rb#217
2446
2161
  def parse(io); end
2447
2162
 
2448
- # source://rack//lib/rack/multipart/parser.rb#244
2163
+ # source://rack//lib/rack/multipart/parser.rb#240
2449
2164
  def result; end
2450
2165
 
2451
2166
  # Returns the value of attribute state.
2452
2167
  #
2453
- # source://rack//lib/rack/multipart/parser.rb#203
2168
+ # source://rack//lib/rack/multipart/parser.rb#198
2454
2169
  def state; end
2455
2170
 
2456
2171
  private
@@ -2460,21 +2175,25 @@ class Rack::Multipart::Parser
2460
2175
  # end of the boundary. If we don't find the start or end of the
2461
2176
  # boundary, clear the buffer and return nil.
2462
2177
  #
2463
- # source://rack//lib/rack/multipart/parser.rb#354
2178
+ # source://rack//lib/rack/multipart/parser.rb#434
2464
2179
  def consume_boundary; end
2465
2180
 
2466
2181
  # From WEBrick::HTTPUtils
2467
2182
  #
2468
- # source://rack//lib/rack/multipart/parser.rb#256
2183
+ # source://rack//lib/rack/multipart/parser.rb#252
2469
2184
  def dequote(str); end
2470
2185
 
2471
- # source://rack//lib/rack/multipart/parser.rb#363
2472
- def get_filename(head); end
2186
+ # Return the related Encoding object. However, because
2187
+ # enc is submitted by the user, it may be invalid, so
2188
+ # use a binary encoding in that case.
2189
+ #
2190
+ # source://rack//lib/rack/multipart/parser.rb#489
2191
+ def find_encoding(enc); end
2473
2192
 
2474
- # source://rack//lib/rack/multipart/parser.rb#298
2193
+ # source://rack//lib/rack/multipart/parser.rb#294
2475
2194
  def handle_consume_token; end
2476
2195
 
2477
- # source://rack//lib/rack/multipart/parser.rb#435
2196
+ # source://rack//lib/rack/multipart/parser.rb#495
2478
2197
  def handle_empty_content!(content); end
2479
2198
 
2480
2199
  # This handles the initial parser state. We read until we find the starting
@@ -2485,108 +2204,117 @@ class Rack::Multipart::Parser
2485
2204
  # boundary. The client would have to deliberately craft a response
2486
2205
  # with the opening boundary beyond the buffer size for that to happen.
2487
2206
  #
2488
- # source://rack//lib/rack/multipart/parser.rb#275
2207
+ # source://rack//lib/rack/multipart/parser.rb#271
2489
2208
  def handle_fast_forward; end
2490
2209
 
2491
- # source://rack//lib/rack/multipart/parser.rb#331
2210
+ # source://rack//lib/rack/multipart/parser.rb#411
2492
2211
  def handle_mime_body; end
2493
2212
 
2494
- # source://rack//lib/rack/multipart/parser.rb#308
2213
+ # source://rack//lib/rack/multipart/parser.rb#306
2495
2214
  def handle_mime_head; end
2496
2215
 
2497
- # source://rack//lib/rack/multipart/parser.rb#262
2216
+ # source://rack//lib/rack/multipart/parser.rb#443
2217
+ def normalize_filename(filename); end
2218
+
2219
+ # source://rack//lib/rack/multipart/parser.rb#258
2498
2220
  def read_data(io, outbuf); end
2499
2221
 
2500
- # source://rack//lib/rack/multipart/parser.rb#401
2222
+ # source://rack//lib/rack/multipart/parser.rb#456
2501
2223
  def tag_multipart_encoding(filename, content_type, name, body); end
2502
2224
 
2503
2225
  class << self
2504
- # source://rack//lib/rack/multipart/parser.rb#92
2226
+ # source://rack//lib/rack/multipart/parser.rb#87
2505
2227
  def parse(io, content_length, content_type, tmpfile, bufsize, qp); end
2506
2228
 
2507
- # source://rack//lib/rack/multipart/parser.rb#85
2229
+ # source://rack//lib/rack/multipart/parser.rb#80
2508
2230
  def parse_boundary(content_type); end
2509
2231
  end
2510
2232
  end
2511
2233
 
2512
- # source://rack//lib/rack/multipart/parser.rb#47
2234
+ # source://rack//lib/rack/multipart/parser.rb#40
2513
2235
  Rack::Multipart::Parser::BUFSIZE = T.let(T.unsafe(nil), Integer)
2514
2236
 
2515
- # source://rack//lib/rack/multipart/parser.rb#53
2237
+ # source://rack//lib/rack/multipart/parser.rb#48
2516
2238
  class Rack::Multipart::Parser::BoundedIO
2517
2239
  # @return [BoundedIO] a new instance of BoundedIO
2518
2240
  #
2519
- # source://rack//lib/rack/multipart/parser.rb#54
2241
+ # source://rack//lib/rack/multipart/parser.rb#49
2520
2242
  def initialize(io, content_length); end
2521
2243
 
2522
- # source://rack//lib/rack/multipart/parser.rb#60
2244
+ # source://rack//lib/rack/multipart/parser.rb#55
2523
2245
  def read(size, outbuf = T.unsafe(nil)); end
2524
2246
  end
2525
2247
 
2526
- # source://rack//lib/rack/multipart/parser.rb#398
2248
+ # source://rack//lib/rack/multipart/parser.rb#453
2527
2249
  Rack::Multipart::Parser::CHARSET = T.let(T.unsafe(nil), String)
2528
2250
 
2529
- # source://rack//lib/rack/multipart/parser.rb#112
2251
+ # source://rack//lib/rack/multipart/parser.rb#305
2252
+ Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_BYTES = T.let(T.unsafe(nil), Integer)
2253
+
2254
+ # source://rack//lib/rack/multipart/parser.rb#304
2255
+ Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_PARAMS = T.let(T.unsafe(nil), Integer)
2256
+
2257
+ # source://rack//lib/rack/multipart/parser.rb#107
2530
2258
  class Rack::Multipart::Parser::Collector
2531
2259
  include ::Enumerable
2532
2260
 
2533
2261
  # @return [Collector] a new instance of Collector
2534
2262
  #
2535
- # source://rack//lib/rack/multipart/parser.rb#148
2263
+ # source://rack//lib/rack/multipart/parser.rb#143
2536
2264
  def initialize(tempfile); end
2537
2265
 
2538
- # source://rack//lib/rack/multipart/parser.rb#154
2266
+ # source://rack//lib/rack/multipart/parser.rb#149
2539
2267
  def each; end
2540
2268
 
2541
- # source://rack//lib/rack/multipart/parser.rb#174
2269
+ # source://rack//lib/rack/multipart/parser.rb#169
2542
2270
  def on_mime_body(mime_index, content); end
2543
2271
 
2544
- # source://rack//lib/rack/multipart/parser.rb#178
2272
+ # source://rack//lib/rack/multipart/parser.rb#173
2545
2273
  def on_mime_finish(mime_index); end
2546
2274
 
2547
- # source://rack//lib/rack/multipart/parser.rb#158
2275
+ # source://rack//lib/rack/multipart/parser.rb#153
2548
2276
  def on_mime_head(mime_index, head, filename, content_type, name); end
2549
2277
 
2550
2278
  private
2551
2279
 
2552
- # source://rack//lib/rack/multipart/parser.rb#183
2280
+ # source://rack//lib/rack/multipart/parser.rb#178
2553
2281
  def check_part_limits; end
2554
2282
  end
2555
2283
 
2556
- # source://rack//lib/rack/multipart/parser.rb#136
2284
+ # source://rack//lib/rack/multipart/parser.rb#131
2557
2285
  class Rack::Multipart::Parser::Collector::BufferPart < ::Rack::Multipart::Parser::Collector::MimePart
2558
- # source://rack//lib/rack/multipart/parser.rb#138
2286
+ # source://rack//lib/rack/multipart/parser.rb#133
2559
2287
  def close; end
2560
2288
 
2561
2289
  # @return [Boolean]
2562
2290
  #
2563
- # source://rack//lib/rack/multipart/parser.rb#137
2291
+ # source://rack//lib/rack/multipart/parser.rb#132
2564
2292
  def file?; end
2565
2293
  end
2566
2294
 
2567
- # source://rack//lib/rack/multipart/parser.rb#113
2295
+ # source://rack//lib/rack/multipart/parser.rb#108
2568
2296
  class Rack::Multipart::Parser::Collector::MimePart < ::Struct
2569
2297
  # @yield [data]
2570
2298
  #
2571
- # source://rack//lib/rack/multipart/parser.rb#114
2299
+ # source://rack//lib/rack/multipart/parser.rb#109
2572
2300
  def get_data; end
2573
2301
  end
2574
2302
 
2575
- # source://rack//lib/rack/multipart/parser.rb#141
2303
+ # source://rack//lib/rack/multipart/parser.rb#136
2576
2304
  class Rack::Multipart::Parser::Collector::TempfilePart < ::Rack::Multipart::Parser::Collector::MimePart
2577
- # source://rack//lib/rack/multipart/parser.rb#143
2305
+ # source://rack//lib/rack/multipart/parser.rb#138
2578
2306
  def close; end
2579
2307
 
2580
2308
  # @return [Boolean]
2581
2309
  #
2582
- # source://rack//lib/rack/multipart/parser.rb#142
2310
+ # source://rack//lib/rack/multipart/parser.rb#137
2583
2311
  def file?; end
2584
2312
  end
2585
2313
 
2586
- # source://rack//lib/rack/multipart/parser.rb#83
2314
+ # source://rack//lib/rack/multipart/parser.rb#78
2587
2315
  Rack::Multipart::Parser::EMPTY = T.let(T.unsafe(nil), Rack::Multipart::Parser::MultipartInfo)
2588
2316
 
2589
- # source://rack//lib/rack/multipart/parser.rb#82
2317
+ # source://rack//lib/rack/multipart/parser.rb#77
2590
2318
  class Rack::Multipart::Parser::MultipartInfo < ::Struct
2591
2319
  # Returns the value of attribute params
2592
2320
  #
@@ -2619,27 +2347,12 @@ class Rack::Multipart::Parser::MultipartInfo < ::Struct
2619
2347
  end
2620
2348
  end
2621
2349
 
2622
- # source://rack//lib/rack/multipart/parser.rb#49
2350
+ # source://rack//lib/rack/multipart/parser.rb#42
2623
2351
  Rack::Multipart::Parser::TEMPFILE_FACTORY = T.let(T.unsafe(nil), Proc)
2624
2352
 
2625
- # source://rack//lib/rack/multipart/parser.rb#48
2353
+ # source://rack//lib/rack/multipart/parser.rb#41
2626
2354
  Rack::Multipart::Parser::TEXT_PLAIN = T.let(T.unsafe(nil), String)
2627
2355
 
2628
- # source://rack//lib/rack/multipart/parser.rb#35
2629
- Rack::Multipart::REGULAR_PARAMETER = T.let(T.unsafe(nil), Regexp)
2630
-
2631
- # source://rack//lib/rack/multipart/parser.rb#34
2632
- Rack::Multipart::REGULAR_PARAMETER_NAME = T.let(T.unsafe(nil), Regexp)
2633
-
2634
- # source://rack//lib/rack/multipart/parser.rb#44
2635
- Rack::Multipart::RFC2183 = T.let(T.unsafe(nil), Regexp)
2636
-
2637
- # source://rack//lib/rack/multipart/parser.rb#33
2638
- Rack::Multipart::SECTION = T.let(T.unsafe(nil), Regexp)
2639
-
2640
- # source://rack//lib/rack/multipart/parser.rb#23
2641
- Rack::Multipart::TOKEN = T.let(T.unsafe(nil), Regexp)
2642
-
2643
2356
  # source://rack//lib/rack/multipart/uploaded_file.rb#8
2644
2357
  class Rack::Multipart::UploadedFile
2645
2358
  # @return [UploadedFile] a new instance of UploadedFile
@@ -2677,9 +2390,6 @@ class Rack::Multipart::UploadedFile
2677
2390
  def respond_to?(*args); end
2678
2391
  end
2679
2392
 
2680
- # source://rack//lib/rack/multipart/parser.rb#25
2681
- Rack::Multipart::VALUE = T.let(T.unsafe(nil), Regexp)
2682
-
2683
2393
  # source://rack//lib/rack/null_logger.rb#6
2684
2394
  class Rack::NullLogger
2685
2395
  # @return [NullLogger] a new instance of NullLogger
@@ -2812,17 +2522,17 @@ Rack::PUT = T.let(T.unsafe(nil), String)
2812
2522
  # source://rack//lib/rack/constants.rb#12
2813
2523
  Rack::QUERY_STRING = T.let(T.unsafe(nil), String)
2814
2524
 
2815
- # source://rack//lib/rack/query_parser.rb#6
2525
+ # source://rack//lib/rack/query_parser.rb#7
2816
2526
  class Rack::QueryParser
2817
2527
  # @return [QueryParser] a new instance of QueryParser
2818
2528
  #
2819
- # source://rack//lib/rack/query_parser.rb#33
2820
- def initialize(params_class, _key_space_limit = T.unsafe(nil), param_depth_limit); end
2529
+ # source://rack//lib/rack/query_parser.rb#36
2530
+ def initialize(params_class, param_depth_limit); end
2821
2531
 
2822
- # source://rack//lib/rack/query_parser.rb#167
2532
+ # source://rack//lib/rack/query_parser.rb#166
2823
2533
  def make_params; end
2824
2534
 
2825
- # source://rack//lib/rack/query_parser.rb#171
2535
+ # source://rack//lib/rack/query_parser.rb#170
2826
2536
  def new_depth_limit(param_depth_limit); end
2827
2537
 
2828
2538
  # normalize_params recursively expands parameters into structural types. If
@@ -2831,12 +2541,12 @@ class Rack::QueryParser
2831
2541
  # and should no longer be used, it is kept for backwards compatibility with
2832
2542
  # earlier versions of rack.
2833
2543
  #
2834
- # source://rack//lib/rack/query_parser.rb#95
2544
+ # source://rack//lib/rack/query_parser.rb#94
2835
2545
  def normalize_params(params, name, v, _depth = T.unsafe(nil)); end
2836
2546
 
2837
2547
  # Returns the value of attribute param_depth_limit.
2838
2548
  #
2839
- # source://rack//lib/rack/query_parser.rb#31
2549
+ # source://rack//lib/rack/query_parser.rb#34
2840
2550
  def param_depth_limit; end
2841
2551
 
2842
2552
  # parse_nested_query expands a query string into structural types. Supported
@@ -2845,7 +2555,7 @@ class Rack::QueryParser
2845
2555
  # ParameterTypeError is raised. Users are encouraged to return a 400 in this
2846
2556
  # case.
2847
2557
  #
2848
- # source://rack//lib/rack/query_parser.rb#74
2558
+ # source://rack//lib/rack/query_parser.rb#73
2849
2559
  def parse_nested_query(qs, separator = T.unsafe(nil)); end
2850
2560
 
2851
2561
  # Stolen from Mongrel, with some small modifications:
@@ -2853,196 +2563,152 @@ class Rack::QueryParser
2853
2563
  # to parse cookies by changing the characters used in the second parameter
2854
2564
  # (which defaults to '&').
2855
2565
  #
2856
- # source://rack//lib/rack/query_parser.rb#46
2566
+ # source://rack//lib/rack/query_parser.rb#45
2857
2567
  def parse_query(qs, separator = T.unsafe(nil), &unescaper); end
2858
2568
 
2859
2569
  private
2860
2570
 
2861
2571
  # @raise [ParamsTooDeepError]
2862
2572
  #
2863
- # source://rack//lib/rack/query_parser.rb#99
2573
+ # source://rack//lib/rack/query_parser.rb#98
2864
2574
  def _normalize_params(params, name, v, depth); end
2865
2575
 
2866
2576
  # @return [Boolean]
2867
2577
  #
2868
- # source://rack//lib/rack/query_parser.rb#181
2578
+ # source://rack//lib/rack/query_parser.rb#180
2869
2579
  def params_hash_has_key?(hash, key); end
2870
2580
 
2871
2581
  # @return [Boolean]
2872
2582
  #
2873
- # source://rack//lib/rack/query_parser.rb#177
2583
+ # source://rack//lib/rack/query_parser.rb#176
2874
2584
  def params_hash_type?(obj); end
2875
2585
 
2876
- # source://rack//lib/rack/query_parser.rb#193
2586
+ # source://rack//lib/rack/query_parser.rb#192
2877
2587
  def unescape(string, encoding = T.unsafe(nil)); end
2878
2588
 
2879
2589
  class << self
2880
- # source://rack//lib/rack/query_parser.rb#23
2881
- def make_default(_key_space_limit = T.unsafe(nil), param_depth_limit); end
2590
+ # source://rack//lib/rack/query_parser.rb#30
2591
+ def make_default(param_depth_limit); end
2882
2592
  end
2883
2593
  end
2884
2594
 
2885
- # source://rack//lib/rack/query_parser.rb#8
2595
+ # source://rack//lib/rack/query_parser.rb#9
2886
2596
  Rack::QueryParser::COMMON_SEP = T.let(T.unsafe(nil), Hash)
2887
2597
 
2888
- # source://rack//lib/rack/query_parser.rb#7
2598
+ # source://rack//lib/rack/query_parser.rb#8
2889
2599
  Rack::QueryParser::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
2890
2600
 
2891
2601
  # InvalidParameterError is the error that is raised when incoming structural
2892
2602
  # parameters (parsed by parse_nested_query) contain invalid format or byte
2893
2603
  # sequence.
2894
2604
  #
2895
- # source://rack//lib/rack/query_parser.rb#17
2896
- class Rack::QueryParser::InvalidParameterError < ::ArgumentError; end
2605
+ # source://rack//lib/rack/query_parser.rb#20
2606
+ class Rack::QueryParser::InvalidParameterError < ::ArgumentError
2607
+ include ::Rack::BadRequest
2608
+ end
2897
2609
 
2898
2610
  # ParameterTypeError is the error that is raised when incoming structural
2899
2611
  # parameters (parsed by parse_nested_query) contain conflicting types.
2900
2612
  #
2901
- # source://rack//lib/rack/query_parser.rb#12
2902
- class Rack::QueryParser::ParameterTypeError < ::TypeError; end
2903
-
2904
- # source://rack//lib/rack/query_parser.rb#197
2905
- class Rack::QueryParser::Params
2906
- # @return [Params] a new instance of Params
2907
- #
2908
- # source://rack//lib/rack/query_parser.rb#198
2909
- def initialize; end
2910
-
2911
- # source://rack//lib/rack/query_parser.rb#203
2912
- def [](key); end
2913
-
2914
- # source://rack//lib/rack/query_parser.rb#207
2915
- def []=(key, value); end
2916
-
2917
- # @return [Boolean]
2918
- #
2919
- # source://rack//lib/rack/query_parser.rb#211
2920
- def key?(key); end
2921
-
2922
- # Recursively unwraps nested `Params` objects and constructs an object
2923
- # of the same shape, but using the objects' internal representations
2924
- # (Ruby hashes) in place of the objects. The result is a hash consisting
2925
- # purely of Ruby primitives.
2926
- #
2927
- # Mutation warning!
2928
- #
2929
- # 1. This method mutates the internal representation of the `Params`
2930
- # objects in order to save object allocations.
2931
- #
2932
- # 2. The value you get back is a reference to the internal hash
2933
- # representation, not a copy.
2934
- #
2935
- # 3. Because the `Params` object's internal representation is mutable
2936
- # through the `#[]=` method, it is not thread safe. The result of
2937
- # getting the hash representation while another thread is adding a
2938
- # key to it is non-deterministic.
2939
- #
2940
- # source://rack//lib/rack/query_parser.rb#233
2941
- def to_h; end
2613
+ # source://rack//lib/rack/query_parser.rb#13
2614
+ class Rack::QueryParser::ParameterTypeError < ::TypeError
2615
+ include ::Rack::BadRequest
2616
+ end
2942
2617
 
2943
- # Recursively unwraps nested `Params` objects and constructs an object
2944
- # of the same shape, but using the objects' internal representations
2945
- # (Ruby hashes) in place of the objects. The result is a hash consisting
2946
- # purely of Ruby primitives.
2947
- #
2948
- # Mutation warning!
2949
- #
2950
- # 1. This method mutates the internal representation of the `Params`
2951
- # objects in order to save object allocations.
2952
- #
2953
- # 2. The value you get back is a reference to the internal hash
2954
- # representation, not a copy.
2955
- #
2956
- # 3. Because the `Params` object's internal representation is mutable
2957
- # through the `#[]=` method, it is not thread safe. The result of
2958
- # getting the hash representation while another thread is adding a
2959
- # key to it is non-deterministic.
2960
- #
2961
- # source://rack//lib/rack/query_parser.rb#233
2618
+ # source://rack//lib/rack/query_parser.rb#196
2619
+ class Rack::QueryParser::Params < ::Hash
2962
2620
  def to_params_hash; end
2963
2621
  end
2964
2622
 
2965
2623
  # ParamsTooDeepError is the error that is raised when params are recursively
2966
2624
  # nested over the specified limit.
2967
2625
  #
2968
- # source://rack//lib/rack/query_parser.rb#21
2969
- class Rack::QueryParser::ParamsTooDeepError < ::RangeError; end
2626
+ # source://rack//lib/rack/query_parser.rb#26
2627
+ class Rack::QueryParser::ParamsTooDeepError < ::RangeError
2628
+ include ::Rack::BadRequest
2629
+ end
2970
2630
 
2971
- # source://rack//lib/rack/constants.rb#42
2631
+ # source://rack//lib/rack/constants.rb#43
2632
+ Rack::RACK_EARLY_HINTS = T.let(T.unsafe(nil), String)
2633
+
2634
+ # source://rack//lib/rack/constants.rb#44
2972
2635
  Rack::RACK_ERRORS = T.let(T.unsafe(nil), String)
2973
2636
 
2974
- # source://rack//lib/rack/constants.rb#49
2637
+ # source://rack//lib/rack/constants.rb#51
2975
2638
  Rack::RACK_HIJACK = T.let(T.unsafe(nil), String)
2976
2639
 
2977
- # source://rack//lib/rack/constants.rb#44
2640
+ # source://rack//lib/rack/constants.rb#46
2978
2641
  Rack::RACK_INPUT = T.let(T.unsafe(nil), String)
2979
2642
 
2980
- # source://rack//lib/rack/constants.rb#50
2643
+ # source://rack//lib/rack/constants.rb#52
2981
2644
  Rack::RACK_IS_HIJACK = T.let(T.unsafe(nil), String)
2982
2645
 
2983
- # source://rack//lib/rack/constants.rb#43
2646
+ # source://rack//lib/rack/constants.rb#45
2984
2647
  Rack::RACK_LOGGER = T.let(T.unsafe(nil), String)
2985
2648
 
2986
- # source://rack//lib/rack/constants.rb#63
2649
+ # source://rack//lib/rack/constants.rb#66
2987
2650
  Rack::RACK_METHODOVERRIDE_ORIGINAL_METHOD = T.let(T.unsafe(nil), String)
2988
2651
 
2989
- # source://rack//lib/rack/constants.rb#52
2652
+ # source://rack//lib/rack/constants.rb#54
2990
2653
  Rack::RACK_MULTIPART_BUFFER_SIZE = T.let(T.unsafe(nil), String)
2991
2654
 
2992
- # source://rack//lib/rack/constants.rb#53
2655
+ # source://rack//lib/rack/constants.rb#55
2993
2656
  Rack::RACK_MULTIPART_TEMPFILE_FACTORY = T.let(T.unsafe(nil), String)
2994
2657
 
2995
- # source://rack//lib/rack/constants.rb#51
2658
+ # source://rack//lib/rack/constants.rb#53
2996
2659
  Rack::RACK_RECURSIVE_INCLUDE = T.let(T.unsafe(nil), String)
2997
2660
 
2998
- # source://rack//lib/rack/constants.rb#59
2661
+ # source://rack//lib/rack/constants.rb#62
2999
2662
  Rack::RACK_REQUEST_COOKIE_HASH = T.let(T.unsafe(nil), String)
3000
2663
 
3001
- # source://rack//lib/rack/constants.rb#60
2664
+ # source://rack//lib/rack/constants.rb#63
3002
2665
  Rack::RACK_REQUEST_COOKIE_STRING = T.let(T.unsafe(nil), String)
3003
2666
 
3004
- # source://rack//lib/rack/constants.rb#58
2667
+ # source://rack//lib/rack/constants.rb#61
3005
2668
  Rack::RACK_REQUEST_FORM_ERROR = T.let(T.unsafe(nil), String)
3006
2669
 
3007
- # source://rack//lib/rack/constants.rb#56
2670
+ # source://rack//lib/rack/constants.rb#58
3008
2671
  Rack::RACK_REQUEST_FORM_HASH = T.let(T.unsafe(nil), String)
3009
2672
 
3010
- # source://rack//lib/rack/constants.rb#55
2673
+ # source://rack//lib/rack/constants.rb#57
3011
2674
  Rack::RACK_REQUEST_FORM_INPUT = T.let(T.unsafe(nil), String)
3012
2675
 
3013
- # source://rack//lib/rack/constants.rb#57
2676
+ # source://rack//lib/rack/constants.rb#59
2677
+ Rack::RACK_REQUEST_FORM_PAIRS = T.let(T.unsafe(nil), String)
2678
+
2679
+ # source://rack//lib/rack/constants.rb#60
3014
2680
  Rack::RACK_REQUEST_FORM_VARS = T.let(T.unsafe(nil), String)
3015
2681
 
3016
- # source://rack//lib/rack/constants.rb#61
2682
+ # source://rack//lib/rack/constants.rb#64
3017
2683
  Rack::RACK_REQUEST_QUERY_HASH = T.let(T.unsafe(nil), String)
3018
2684
 
3019
- # source://rack//lib/rack/constants.rb#62
2685
+ # source://rack//lib/rack/constants.rb#65
3020
2686
  Rack::RACK_REQUEST_QUERY_STRING = T.let(T.unsafe(nil), String)
3021
2687
 
3022
- # source://rack//lib/rack/constants.rb#54
2688
+ # source://rack//lib/rack/constants.rb#56
3023
2689
  Rack::RACK_RESPONSE_FINISHED = T.let(T.unsafe(nil), String)
3024
2690
 
3025
- # source://rack//lib/rack/constants.rb#45
2691
+ # source://rack//lib/rack/constants.rb#47
3026
2692
  Rack::RACK_SESSION = T.let(T.unsafe(nil), String)
3027
2693
 
3028
- # source://rack//lib/rack/constants.rb#46
2694
+ # source://rack//lib/rack/constants.rb#48
3029
2695
  Rack::RACK_SESSION_OPTIONS = T.let(T.unsafe(nil), String)
3030
2696
 
3031
- # source://rack//lib/rack/constants.rb#47
2697
+ # source://rack//lib/rack/constants.rb#49
3032
2698
  Rack::RACK_SHOWSTATUS_DETAIL = T.let(T.unsafe(nil), String)
3033
2699
 
3034
- # source://rack//lib/rack/constants.rb#41
2700
+ # source://rack//lib/rack/constants.rb#42
3035
2701
  Rack::RACK_TEMPFILES = T.let(T.unsafe(nil), String)
3036
2702
 
3037
- # source://rack//lib/rack/constants.rb#48
2703
+ # source://rack//lib/rack/constants.rb#50
3038
2704
  Rack::RACK_URL_SCHEME = T.let(T.unsafe(nil), String)
3039
2705
 
3040
2706
  # Rack environment variables
3041
2707
  #
3042
- # source://rack//lib/rack/constants.rb#40
2708
+ # source://rack//lib/rack/constants.rb#41
3043
2709
  Rack::RACK_VERSION = T.let(T.unsafe(nil), String)
3044
2710
 
3045
- # source://rack//lib/rack/version.rb#28
2711
+ # source://rack//lib/rack/version.rb#15
3046
2712
  Rack::RELEASE = T.let(T.unsafe(nil), String)
3047
2713
 
3048
2714
  # source://rack//lib/rack/constants.rb#9
@@ -3294,25 +2960,13 @@ module Rack::Request::Helpers
3294
2960
  # This method support both application/x-www-form-urlencoded and
3295
2961
  # multipart/form-data.
3296
2962
  #
3297
- # source://rack//lib/rack/request.rb#498
2963
+ # source://rack//lib/rack/request.rb#503
3298
2964
  def POST; end
3299
2965
 
3300
- # shortcut for <tt>request.params[key]</tt>
3301
- #
3302
- # source://rack//lib/rack/request.rb#609
3303
- def [](key); end
3304
-
3305
- # shortcut for <tt>request.params[key] = value</tt>
3306
- #
3307
- # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
3308
- #
3309
- # source://rack//lib/rack/request.rb#618
3310
- def []=(key, value); end
3311
-
3312
- # source://rack//lib/rack/request.rb#596
2966
+ # source://rack//lib/rack/request.rb#607
3313
2967
  def accept_encoding; end
3314
2968
 
3315
- # source://rack//lib/rack/request.rb#600
2969
+ # source://rack//lib/rack/request.rb#611
3316
2970
  def accept_language; end
3317
2971
 
3318
2972
  # The authority of the incoming request as defined by RFC3976.
@@ -3324,7 +2978,7 @@ module Rack::Request::Helpers
3324
2978
  # source://rack//lib/rack/request.rb#266
3325
2979
  def authority; end
3326
2980
 
3327
- # source://rack//lib/rack/request.rb#579
2981
+ # source://rack//lib/rack/request.rb#590
3328
2982
  def base_url; end
3329
2983
 
3330
2984
  # source://rack//lib/rack/request.rb#190
@@ -3360,7 +3014,7 @@ module Rack::Request::Helpers
3360
3014
  #
3361
3015
  # <tt>env['rack.input']</tt> is not touched.
3362
3016
  #
3363
- # source://rack//lib/rack/request.rb#574
3017
+ # source://rack//lib/rack/request.rb#585
3364
3018
  def delete_param(k); end
3365
3019
 
3366
3020
  # Determine whether the request body contains form-data by checking
@@ -3386,7 +3040,7 @@ module Rack::Request::Helpers
3386
3040
  # source://rack//lib/rack/request.rb#374
3387
3041
  def forwarded_port; end
3388
3042
 
3389
- # source://rack//lib/rack/request.rb#592
3043
+ # source://rack//lib/rack/request.rb#603
3390
3044
  def fullpath; end
3391
3045
 
3392
3046
  # Checks the HTTP request method (or verb) to see if it was of type GET
@@ -3467,7 +3121,7 @@ module Rack::Request::Helpers
3467
3121
  #
3468
3122
  # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
3469
3123
  #
3470
- # source://rack//lib/rack/request.rb#545
3124
+ # source://rack//lib/rack/request.rb#556
3471
3125
  def params; end
3472
3126
 
3473
3127
  # Determine whether the request body contains data by checking
@@ -3485,7 +3139,7 @@ module Rack::Request::Helpers
3485
3139
  # source://rack//lib/rack/request.rb#235
3486
3140
  def patch?; end
3487
3141
 
3488
- # source://rack//lib/rack/request.rb#588
3142
+ # source://rack//lib/rack/request.rb#599
3489
3143
  def path; end
3490
3144
 
3491
3145
  # source://rack//lib/rack/request.rb#194
@@ -3568,7 +3222,7 @@ module Rack::Request::Helpers
3568
3222
 
3569
3223
  # @return [Boolean]
3570
3224
  #
3571
- # source://rack//lib/rack/request.rb#604
3225
+ # source://rack//lib/rack/request.rb#615
3572
3226
  def trusted_proxy?(ip); end
3573
3227
 
3574
3228
  # Checks the HTTP request method (or verb) to see if it was of type UNLINK
@@ -3584,12 +3238,12 @@ module Rack::Request::Helpers
3584
3238
  #
3585
3239
  # <tt>env['rack.input']</tt> is not touched.
3586
3240
  #
3587
- # source://rack//lib/rack/request.rb#554
3241
+ # source://rack//lib/rack/request.rb#565
3588
3242
  def update_param(k, v); end
3589
3243
 
3590
3244
  # Tries to return a remake of the original request URL as a string.
3591
3245
  #
3592
- # source://rack//lib/rack/request.rb#584
3246
+ # source://rack//lib/rack/request.rb#595
3593
3247
  def url; end
3594
3248
 
3595
3249
  # source://rack//lib/rack/request.rb#201
@@ -3597,7 +3251,7 @@ module Rack::Request::Helpers
3597
3251
 
3598
3252
  # like Hash#values_at
3599
3253
  #
3600
- # source://rack//lib/rack/request.rb#625
3254
+ # source://rack//lib/rack/request.rb#620
3601
3255
  def values_at(*keys); end
3602
3256
 
3603
3257
  # @return [Boolean]
@@ -3607,54 +3261,57 @@ module Rack::Request::Helpers
3607
3261
 
3608
3262
  private
3609
3263
 
3610
- # source://rack//lib/rack/request.rb#757
3264
+ # source://rack//lib/rack/request.rb#776
3611
3265
  def allowed_scheme(header); end
3612
3266
 
3613
- # source://rack//lib/rack/request.rb#631
3267
+ # source://rack//lib/rack/request.rb#628
3614
3268
  def default_session; end
3615
3269
 
3616
- # source://rack//lib/rack/request.rb#761
3270
+ # source://rack//lib/rack/request.rb#684
3271
+ def expand_param_pairs(pairs, query_parser = T.unsafe(nil)); end
3272
+
3273
+ # source://rack//lib/rack/request.rb#780
3617
3274
  def forwarded_priority; end
3618
3275
 
3619
- # source://rack//lib/rack/request.rb#733
3276
+ # source://rack//lib/rack/request.rb#752
3620
3277
  def forwarded_scheme; end
3621
3278
 
3622
3279
  # Get an array of values set in the RFC 7239 `Forwarded` request header.
3623
3280
  #
3624
- # source://rack//lib/rack/request.rb#659
3281
+ # source://rack//lib/rack/request.rb#668
3625
3282
  def get_http_forwarded(token); end
3626
3283
 
3627
- # source://rack//lib/rack/request.rb#647
3284
+ # source://rack//lib/rack/request.rb#644
3628
3285
  def parse_http_accept_header(header); end
3629
3286
 
3630
- # source://rack//lib/rack/request.rb#671
3287
+ # source://rack//lib/rack/request.rb#680
3631
3288
  def parse_multipart; end
3632
3289
 
3633
- # source://rack//lib/rack/request.rb#667
3290
+ # source://rack//lib/rack/request.rb#676
3634
3291
  def parse_query(qs, d = T.unsafe(nil)); end
3635
3292
 
3636
- # source://rack//lib/rack/request.rb#663
3293
+ # source://rack//lib/rack/request.rb#672
3637
3294
  def query_parser; end
3638
3295
 
3639
- # source://rack//lib/rack/request.rb#724
3296
+ # source://rack//lib/rack/request.rb#743
3640
3297
  def reject_trusted_ip_addresses(ip_addresses); end
3641
3298
 
3642
- # source://rack//lib/rack/request.rb#718
3299
+ # source://rack//lib/rack/request.rb#737
3643
3300
  def split_authority(authority); end
3644
3301
 
3645
- # source://rack//lib/rack/request.rb#675
3302
+ # source://rack//lib/rack/request.rb#694
3646
3303
  def split_header(value); end
3647
3304
 
3648
3305
  # Assist with compatibility when processing `X-Forwarded-For`.
3649
3306
  #
3650
- # source://rack//lib/rack/request.rb#634
3307
+ # source://rack//lib/rack/request.rb#631
3651
3308
  def wrap_ipv6(host); end
3652
3309
 
3653
- # source://rack//lib/rack/request.rb#765
3310
+ # source://rack//lib/rack/request.rb#784
3654
3311
  def x_forwarded_proto_priority; end
3655
3312
  end
3656
3313
 
3657
- # source://rack//lib/rack/request.rb#703
3314
+ # source://rack//lib/rack/request.rb#722
3658
3315
  Rack::Request::Helpers::AUTHORITY = T.let(T.unsafe(nil), Regexp)
3659
3316
 
3660
3317
  # Default ports depending on scheme. Used to decide whether or not
@@ -3670,7 +3327,7 @@ Rack::Request::Helpers::DEFAULT_PORTS = T.let(T.unsafe(nil), Hash)
3670
3327
  # source://rack//lib/rack/request.rb#153
3671
3328
  Rack::Request::Helpers::FORM_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
3672
3329
 
3673
- # source://rack//lib/rack/request.rb#728
3330
+ # source://rack//lib/rack/request.rb#747
3674
3331
  Rack::Request::Helpers::FORWARDED_SCHEME_HEADERS = T.let(T.unsafe(nil), Hash)
3675
3332
 
3676
3333
  # source://rack//lib/rack/request.rb#176
@@ -3755,17 +3412,17 @@ class Rack::Response
3755
3412
  # @yield [_self]
3756
3413
  # @yieldparam _self [Rack::Response] the object that the method was called on
3757
3414
  #
3758
- # source://rack//lib/rack/response.rb#61
3415
+ # source://rack//lib/rack/response.rb#54
3759
3416
  def initialize(body = T.unsafe(nil), status = T.unsafe(nil), headers = T.unsafe(nil)); end
3760
3417
 
3761
3418
  # @raise [ArgumentError]
3762
3419
  #
3763
- # source://rack//lib/rack/response.rb#163
3420
+ # source://rack//lib/rack/response.rb#164
3764
3421
  def [](key); end
3765
3422
 
3766
3423
  # @raise [ArgumentError]
3767
3424
  #
3768
- # source://rack//lib/rack/response.rb#167
3425
+ # source://rack//lib/rack/response.rb#168
3769
3426
  def []=(key, value); end
3770
3427
 
3771
3428
  # Returns the value of attribute body.
@@ -3782,23 +3439,23 @@ class Rack::Response
3782
3439
 
3783
3440
  # @return [Boolean]
3784
3441
  #
3785
- # source://rack//lib/rack/response.rb#101
3442
+ # source://rack//lib/rack/response.rb#95
3786
3443
  def chunked?; end
3787
3444
 
3788
- # source://rack//lib/rack/response.rb#151
3445
+ # source://rack//lib/rack/response.rb#152
3789
3446
  def close; end
3790
3447
 
3791
3448
  # @raise [ArgumentError]
3792
3449
  #
3793
- # source://rack//lib/rack/response.rb#171
3450
+ # source://rack//lib/rack/response.rb#172
3794
3451
  def delete_header(key); end
3795
3452
 
3796
- # source://rack//lib/rack/response.rb#131
3453
+ # source://rack//lib/rack/response.rb#130
3797
3454
  def each(&callback); end
3798
3455
 
3799
3456
  # @return [Boolean]
3800
3457
  #
3801
- # source://rack//lib/rack/response.rb#155
3458
+ # source://rack//lib/rack/response.rb#156
3802
3459
  def empty?; end
3803
3460
 
3804
3461
  # Generate a response array consistent with the requirements of the SPEC.
@@ -3806,25 +3463,20 @@ class Rack::Response
3806
3463
  #
3807
3464
  # @return [Array] a 3-tuple suitable of `[status, headers, body]`
3808
3465
  #
3809
- # source://rack//lib/rack/response.rb#113
3466
+ # source://rack//lib/rack/response.rb#107
3810
3467
  def finish(&block); end
3811
3468
 
3812
3469
  # @raise [ArgumentError]
3813
3470
  #
3814
- # source://rack//lib/rack/response.rb#163
3471
+ # source://rack//lib/rack/response.rb#164
3815
3472
  def get_header(key); end
3816
3473
 
3817
3474
  # @raise [ArgumentError]
3818
3475
  # @return [Boolean]
3819
3476
  #
3820
- # source://rack//lib/rack/response.rb#159
3477
+ # source://rack//lib/rack/response.rb#160
3821
3478
  def has_header?(key); end
3822
3479
 
3823
- # Deprecated, use headers instead.
3824
- #
3825
- # source://rack//lib/rack/response.rb#35
3826
- def header; end
3827
-
3828
3480
  # Returns the value of attribute headers.
3829
3481
  #
3830
3482
  # source://rack//lib/rack/response.rb#32
@@ -3844,15 +3496,15 @@ class Rack::Response
3844
3496
 
3845
3497
  # @return [Boolean]
3846
3498
  #
3847
- # source://rack//lib/rack/response.rb#105
3499
+ # source://rack//lib/rack/response.rb#99
3848
3500
  def no_entity_body?; end
3849
3501
 
3850
- # source://rack//lib/rack/response.rb#96
3502
+ # source://rack//lib/rack/response.rb#90
3851
3503
  def redirect(target, status = T.unsafe(nil)); end
3852
3504
 
3853
3505
  # @raise [ArgumentError]
3854
3506
  #
3855
- # source://rack//lib/rack/response.rb#167
3507
+ # source://rack//lib/rack/response.rb#168
3856
3508
  def set_header(key, value); end
3857
3509
 
3858
3510
  # Returns the value of attribute status.
@@ -3873,14 +3525,16 @@ class Rack::Response
3873
3525
  #
3874
3526
  # @return [Array] a 3-tuple suitable of `[status, headers, body]`
3875
3527
  #
3876
- # source://rack//lib/rack/response.rb#113
3528
+ # source://rack//lib/rack/response.rb#107
3877
3529
  def to_a(&block); end
3878
3530
 
3879
- # Append to body and update content-length.
3531
+ # Append a chunk to the response body.
3532
+ #
3533
+ # Converts the response into a buffered response if it wasn't already.
3880
3534
  #
3881
3535
  # NOTE: Do not mix #write and direct #body access!
3882
3536
  #
3883
- # source://rack//lib/rack/response.rb#145
3537
+ # source://rack//lib/rack/response.rb#146
3884
3538
  def write(chunk); end
3885
3539
 
3886
3540
  class << self
@@ -3892,11 +3546,11 @@ end
3892
3546
  # source://rack//lib/rack/response.rb#28
3893
3547
  Rack::Response::CHUNKED = T.let(T.unsafe(nil), String)
3894
3548
 
3895
- # source://rack//lib/rack/response.rb#179
3549
+ # source://rack//lib/rack/response.rb#180
3896
3550
  module Rack::Response::Helpers
3897
3551
  # @return [Boolean]
3898
3552
  #
3899
- # source://rack//lib/rack/response.rb#190
3553
+ # source://rack//lib/rack/response.rb#191
3900
3554
  def accepted?; end
3901
3555
 
3902
3556
  # Add a header that may have multiple values.
@@ -3911,12 +3565,12 @@ module Rack::Response::Helpers
3911
3565
  #
3912
3566
  # @raise [ArgumentError]
3913
3567
  #
3914
- # source://rack//lib/rack/response.rb#218
3568
+ # source://rack//lib/rack/response.rb#219
3915
3569
  def add_header(key, value); end
3916
3570
 
3917
3571
  # @return [Boolean]
3918
3572
  #
3919
- # source://rack//lib/rack/response.rb#193
3573
+ # source://rack//lib/rack/response.rb#194
3920
3574
  def bad_request?; end
3921
3575
 
3922
3576
  # Specify that the content should be cached.
@@ -3925,210 +3579,219 @@ module Rack::Response::Helpers
3925
3579
  # @param duration [Integer] The number of seconds until the cache expires.
3926
3580
  # @param directive [Hash] a customizable set of options
3927
3581
  #
3928
- # source://rack//lib/rack/response.rb#306
3582
+ # source://rack//lib/rack/response.rb#307
3929
3583
  def cache!(duration = T.unsafe(nil), directive: T.unsafe(nil)); end
3930
3584
 
3931
- # source://rack//lib/rack/response.rb#289
3585
+ # source://rack//lib/rack/response.rb#290
3932
3586
  def cache_control; end
3933
3587
 
3934
- # source://rack//lib/rack/response.rb#293
3588
+ # source://rack//lib/rack/response.rb#294
3935
3589
  def cache_control=(value); end
3936
3590
 
3937
3591
  # @return [Boolean]
3938
3592
  #
3939
- # source://rack//lib/rack/response.rb#185
3593
+ # source://rack//lib/rack/response.rb#186
3940
3594
  def client_error?; end
3941
3595
 
3942
- # source://rack//lib/rack/response.rb#256
3596
+ # source://rack//lib/rack/response.rb#257
3943
3597
  def content_length; end
3944
3598
 
3945
3599
  # Get the content type of the response.
3946
3600
  #
3947
- # source://rack//lib/rack/response.rb#239
3601
+ # source://rack//lib/rack/response.rb#240
3948
3602
  def content_type; end
3949
3603
 
3950
3604
  # Set the content type of the response.
3951
3605
  #
3952
- # source://rack//lib/rack/response.rb#244
3606
+ # source://rack//lib/rack/response.rb#245
3953
3607
  def content_type=(content_type); end
3954
3608
 
3955
3609
  # @return [Boolean]
3956
3610
  #
3957
- # source://rack//lib/rack/response.rb#189
3611
+ # source://rack//lib/rack/response.rb#190
3958
3612
  def created?; end
3959
3613
 
3960
- # source://rack//lib/rack/response.rb#273
3614
+ # source://rack//lib/rack/response.rb#274
3961
3615
  def delete_cookie(key, value = T.unsafe(nil)); end
3962
3616
 
3963
3617
  # Specifies that the content shouldn't be cached. Overrides `cache!` if already called.
3964
3618
  #
3965
- # source://rack//lib/rack/response.rb#298
3619
+ # source://rack//lib/rack/response.rb#299
3966
3620
  def do_not_cache!; end
3967
3621
 
3968
- # source://rack//lib/rack/response.rb#313
3622
+ # source://rack//lib/rack/response.rb#314
3969
3623
  def etag; end
3970
3624
 
3971
- # source://rack//lib/rack/response.rb#317
3625
+ # source://rack//lib/rack/response.rb#318
3972
3626
  def etag=(value); end
3973
3627
 
3974
3628
  # @return [Boolean]
3975
3629
  #
3976
- # source://rack//lib/rack/response.rb#195
3630
+ # source://rack//lib/rack/response.rb#196
3977
3631
  def forbidden?; end
3978
3632
 
3979
3633
  # @return [Boolean]
3980
3634
  #
3981
- # source://rack//lib/rack/response.rb#205
3635
+ # source://rack//lib/rack/response.rb#206
3982
3636
  def include?(header); end
3983
3637
 
3984
3638
  # @return [Boolean]
3985
3639
  #
3986
- # source://rack//lib/rack/response.rb#182
3640
+ # source://rack//lib/rack/response.rb#183
3987
3641
  def informational?; end
3988
3642
 
3989
3643
  # @return [Boolean]
3990
3644
  #
3991
- # source://rack//lib/rack/response.rb#180
3645
+ # source://rack//lib/rack/response.rb#181
3992
3646
  def invalid?; end
3993
3647
 
3994
- # source://rack//lib/rack/response.rb#261
3648
+ # source://rack//lib/rack/response.rb#262
3995
3649
  def location; end
3996
3650
 
3997
- # source://rack//lib/rack/response.rb#265
3651
+ # source://rack//lib/rack/response.rb#266
3998
3652
  def location=(location); end
3999
3653
 
4000
- # source://rack//lib/rack/response.rb#248
3654
+ # source://rack//lib/rack/response.rb#249
4001
3655
  def media_type; end
4002
3656
 
4003
- # source://rack//lib/rack/response.rb#252
3657
+ # source://rack//lib/rack/response.rb#253
4004
3658
  def media_type_params; end
4005
3659
 
4006
3660
  # @return [Boolean]
4007
3661
  #
4008
- # source://rack//lib/rack/response.rb#197
3662
+ # source://rack//lib/rack/response.rb#198
4009
3663
  def method_not_allowed?; end
4010
3664
 
4011
3665
  # @return [Boolean]
4012
3666
  #
4013
- # source://rack//lib/rack/response.rb#192
3667
+ # source://rack//lib/rack/response.rb#193
4014
3668
  def moved_permanently?; end
4015
3669
 
4016
3670
  # @return [Boolean]
4017
3671
  #
4018
- # source://rack//lib/rack/response.rb#191
3672
+ # source://rack//lib/rack/response.rb#192
4019
3673
  def no_content?; end
4020
3674
 
4021
3675
  # @return [Boolean]
4022
3676
  #
4023
- # source://rack//lib/rack/response.rb#198
3677
+ # source://rack//lib/rack/response.rb#199
4024
3678
  def not_acceptable?; end
4025
3679
 
4026
3680
  # @return [Boolean]
4027
3681
  #
4028
- # source://rack//lib/rack/response.rb#196
3682
+ # source://rack//lib/rack/response.rb#197
4029
3683
  def not_found?; end
4030
3684
 
4031
3685
  # @return [Boolean]
4032
3686
  #
4033
- # source://rack//lib/rack/response.rb#188
3687
+ # source://rack//lib/rack/response.rb#189
4034
3688
  def ok?; end
4035
3689
 
4036
3690
  # @return [Boolean]
4037
3691
  #
4038
- # source://rack//lib/rack/response.rb#200
3692
+ # source://rack//lib/rack/response.rb#201
4039
3693
  def precondition_failed?; end
4040
3694
 
4041
3695
  # @return [Boolean]
4042
3696
  #
4043
- # source://rack//lib/rack/response.rb#203
3697
+ # source://rack//lib/rack/response.rb#204
4044
3698
  def redirect?; end
4045
3699
 
4046
3700
  # @return [Boolean]
4047
3701
  #
4048
- # source://rack//lib/rack/response.rb#184
3702
+ # source://rack//lib/rack/response.rb#185
4049
3703
  def redirection?; end
4050
3704
 
4051
3705
  # @return [Boolean]
4052
3706
  #
4053
- # source://rack//lib/rack/response.rb#199
3707
+ # source://rack//lib/rack/response.rb#200
4054
3708
  def request_timeout?; end
4055
3709
 
4056
3710
  # @return [Boolean]
4057
3711
  #
4058
- # source://rack//lib/rack/response.rb#186
3712
+ # source://rack//lib/rack/response.rb#187
4059
3713
  def server_error?; end
4060
3714
 
4061
- # source://rack//lib/rack/response.rb#269
3715
+ # source://rack//lib/rack/response.rb#270
4062
3716
  def set_cookie(key, value); end
4063
3717
 
4064
- # source://rack//lib/rack/response.rb#281
3718
+ # source://rack//lib/rack/response.rb#282
4065
3719
  def set_cookie_header; end
4066
3720
 
4067
- # source://rack//lib/rack/response.rb#285
3721
+ # source://rack//lib/rack/response.rb#286
4068
3722
  def set_cookie_header=(value); end
4069
3723
 
4070
3724
  # @return [Boolean]
4071
3725
  #
4072
- # source://rack//lib/rack/response.rb#183
3726
+ # source://rack//lib/rack/response.rb#184
4073
3727
  def successful?; end
4074
3728
 
4075
3729
  # @return [Boolean]
4076
3730
  #
4077
- # source://rack//lib/rack/response.rb#194
3731
+ # source://rack//lib/rack/response.rb#195
4078
3732
  def unauthorized?; end
4079
3733
 
4080
3734
  # @return [Boolean]
4081
3735
  #
4082
- # source://rack//lib/rack/response.rb#201
3736
+ # source://rack//lib/rack/response.rb#202
4083
3737
  def unprocessable?; end
4084
3738
 
4085
3739
  protected
4086
3740
 
4087
- # source://rack//lib/rack/response.rb#353
3741
+ # source://rack//lib/rack/response.rb#359
4088
3742
  def append(chunk); end
4089
3743
 
4090
- # source://rack//lib/rack/response.rb#323
3744
+ # Convert the body of this response into an internally buffered Array if possible.
3745
+ #
3746
+ # `@buffered` is a ternary value which indicates whether the body is buffered. It can be:
3747
+ # * `nil` - The body has not been buffered yet.
3748
+ # * `true` - The body is buffered as an Array instance.
3749
+ # * `false` - The body is not buffered and cannot be buffered.
3750
+ #
3751
+ # @return [Boolean] whether the body is buffered as an Array instance.
3752
+ #
3753
+ # source://rack//lib/rack/response.rb#332
4091
3754
  def buffered_body!; end
4092
3755
  end
4093
3756
 
4094
- # source://rack//lib/rack/response.rb#367
3757
+ # source://rack//lib/rack/response.rb#375
4095
3758
  class Rack::Response::Raw
4096
3759
  include ::Rack::Response::Helpers
4097
3760
 
4098
3761
  # @return [Raw] a new instance of Raw
4099
3762
  #
4100
- # source://rack//lib/rack/response.rb#373
3763
+ # source://rack//lib/rack/response.rb#381
4101
3764
  def initialize(status, headers); end
4102
3765
 
4103
- # source://rack//lib/rack/response.rb#390
3766
+ # source://rack//lib/rack/response.rb#398
4104
3767
  def delete_header(key); end
4105
3768
 
4106
- # source://rack//lib/rack/response.rb#382
3769
+ # source://rack//lib/rack/response.rb#390
4107
3770
  def get_header(key); end
4108
3771
 
4109
3772
  # @return [Boolean]
4110
3773
  #
4111
- # source://rack//lib/rack/response.rb#378
3774
+ # source://rack//lib/rack/response.rb#386
4112
3775
  def has_header?(key); end
4113
3776
 
4114
3777
  # Returns the value of attribute headers.
4115
3778
  #
4116
- # source://rack//lib/rack/response.rb#370
3779
+ # source://rack//lib/rack/response.rb#378
4117
3780
  def headers; end
4118
3781
 
4119
- # source://rack//lib/rack/response.rb#386
3782
+ # source://rack//lib/rack/response.rb#394
4120
3783
  def set_header(key, value); end
4121
3784
 
4122
3785
  # Returns the value of attribute status.
4123
3786
  #
4124
- # source://rack//lib/rack/response.rb#371
3787
+ # source://rack//lib/rack/response.rb#379
4125
3788
  def status; end
4126
3789
 
4127
3790
  # Sets the attribute status
4128
3791
  #
4129
3792
  # @param value the value to set the attribute status to.
4130
3793
  #
4131
- # source://rack//lib/rack/response.rb#371
3794
+ # source://rack//lib/rack/response.rb#379
4132
3795
  def status=(_arg0); end
4133
3796
  end
4134
3797
 
@@ -4359,45 +4022,144 @@ end
4359
4022
  # Be careful when you use this on public-facing sites as it could
4360
4023
  # reveal information helpful to attackers.
4361
4024
  #
4362
- # source://rack//lib/rack/show_exceptions.rb#19
4025
+ # source://rack//lib/rack/show_exceptions.rb#18
4363
4026
  class Rack::ShowExceptions
4364
4027
  # @return [ShowExceptions] a new instance of ShowExceptions
4365
4028
  #
4366
- # source://rack//lib/rack/show_exceptions.rb#22
4029
+ # source://rack//lib/rack/show_exceptions.rb#26
4367
4030
  def initialize(app); end
4368
4031
 
4369
- # source://rack//lib/rack/show_exceptions.rb#26
4032
+ # source://rack//lib/rack/show_exceptions.rb#30
4370
4033
  def call(env); end
4371
4034
 
4372
- # source://rack//lib/rack/show_exceptions.rb#61
4035
+ # source://rack//lib/rack/show_exceptions.rb#65
4373
4036
  def dump_exception(exception); end
4374
4037
 
4375
- # source://rack//lib/rack/show_exceptions.rb#112
4038
+ # source://rack//lib/rack/show_exceptions.rb#116
4376
4039
  def h(obj); end
4377
4040
 
4378
4041
  # @return [Boolean]
4379
4042
  #
4380
- # source://rack//lib/rack/show_exceptions.rb#52
4043
+ # source://rack//lib/rack/show_exceptions.rb#56
4381
4044
  def prefers_plaintext?(env); end
4382
4045
 
4383
- # source://rack//lib/rack/show_exceptions.rb#72
4046
+ # source://rack//lib/rack/show_exceptions.rb#76
4384
4047
  def pretty(env, exception); end
4385
4048
 
4386
- # source://rack//lib/rack/show_exceptions.rb#108
4049
+ # source://rack//lib/rack/show_exceptions.rb#112
4387
4050
  def template; end
4388
4051
 
4389
4052
  private
4390
4053
 
4391
4054
  # @return [Boolean]
4392
4055
  #
4393
- # source://rack//lib/rack/show_exceptions.rb#56
4056
+ # source://rack//lib/rack/show_exceptions.rb#60
4394
4057
  def accepts_html?(env); end
4395
4058
  end
4396
4059
 
4397
- # source://rack//lib/rack/show_exceptions.rb#20
4060
+ # source://rack//lib/rack/show_exceptions.rb#19
4398
4061
  Rack::ShowExceptions::CONTEXT = T.let(T.unsafe(nil), Integer)
4399
4062
 
4400
- # source://rack//lib/rack/show_exceptions.rb#127
4063
+ # source://rack//lib/rack/show_exceptions.rb#21
4064
+ class Rack::ShowExceptions::Frame < ::Struct
4065
+ # Returns the value of attribute context_line
4066
+ #
4067
+ # @return [Object] the current value of context_line
4068
+ def context_line; end
4069
+
4070
+ # Sets the attribute context_line
4071
+ #
4072
+ # @param value [Object] the value to set the attribute context_line to.
4073
+ # @return [Object] the newly set value
4074
+ def context_line=(_); end
4075
+
4076
+ # Returns the value of attribute filename
4077
+ #
4078
+ # @return [Object] the current value of filename
4079
+ def filename; end
4080
+
4081
+ # Sets the attribute filename
4082
+ #
4083
+ # @param value [Object] the value to set the attribute filename to.
4084
+ # @return [Object] the newly set value
4085
+ def filename=(_); end
4086
+
4087
+ # Returns the value of attribute function
4088
+ #
4089
+ # @return [Object] the current value of function
4090
+ def function; end
4091
+
4092
+ # Sets the attribute function
4093
+ #
4094
+ # @param value [Object] the value to set the attribute function to.
4095
+ # @return [Object] the newly set value
4096
+ def function=(_); end
4097
+
4098
+ # Returns the value of attribute lineno
4099
+ #
4100
+ # @return [Object] the current value of lineno
4101
+ def lineno; end
4102
+
4103
+ # Sets the attribute lineno
4104
+ #
4105
+ # @param value [Object] the value to set the attribute lineno to.
4106
+ # @return [Object] the newly set value
4107
+ def lineno=(_); end
4108
+
4109
+ # Returns the value of attribute post_context
4110
+ #
4111
+ # @return [Object] the current value of post_context
4112
+ def post_context; end
4113
+
4114
+ # Sets the attribute post_context
4115
+ #
4116
+ # @param value [Object] the value to set the attribute post_context to.
4117
+ # @return [Object] the newly set value
4118
+ def post_context=(_); end
4119
+
4120
+ # Returns the value of attribute post_context_lineno
4121
+ #
4122
+ # @return [Object] the current value of post_context_lineno
4123
+ def post_context_lineno; end
4124
+
4125
+ # Sets the attribute post_context_lineno
4126
+ #
4127
+ # @param value [Object] the value to set the attribute post_context_lineno to.
4128
+ # @return [Object] the newly set value
4129
+ def post_context_lineno=(_); end
4130
+
4131
+ # Returns the value of attribute pre_context
4132
+ #
4133
+ # @return [Object] the current value of pre_context
4134
+ def pre_context; end
4135
+
4136
+ # Sets the attribute pre_context
4137
+ #
4138
+ # @param value [Object] the value to set the attribute pre_context to.
4139
+ # @return [Object] the newly set value
4140
+ def pre_context=(_); end
4141
+
4142
+ # Returns the value of attribute pre_context_lineno
4143
+ #
4144
+ # @return [Object] the current value of pre_context_lineno
4145
+ def pre_context_lineno; end
4146
+
4147
+ # Sets the attribute pre_context_lineno
4148
+ #
4149
+ # @param value [Object] the value to set the attribute pre_context_lineno to.
4150
+ # @return [Object] the newly set value
4151
+ def pre_context_lineno=(_); end
4152
+
4153
+ class << self
4154
+ def [](*_arg0); end
4155
+ def inspect; end
4156
+ def keyword_init?; end
4157
+ def members; end
4158
+ def new(*_arg0); end
4159
+ end
4160
+ end
4161
+
4162
+ # source://rack//lib/rack/show_exceptions.rb#131
4401
4163
  Rack::ShowExceptions::TEMPLATE = T.let(T.unsafe(nil), ERB)
4402
4164
 
4403
4165
  # Rack::ShowStatus catches all empty responses and replaces them
@@ -4537,7 +4299,7 @@ class Rack::Static
4537
4299
  def route_file(path); end
4538
4300
  end
4539
4301
 
4540
- # source://rack//lib/rack/constants.rb#37
4302
+ # source://rack//lib/rack/constants.rb#38
4541
4303
  Rack::TRACE = T.let(T.unsafe(nil), String)
4542
4304
 
4543
4305
  # source://rack//lib/rack/constants.rb#25
@@ -4558,7 +4320,7 @@ class Rack::TempfileReaper
4558
4320
  def call(env); end
4559
4321
  end
4560
4322
 
4561
- # source://rack//lib/rack/constants.rb#36
4323
+ # source://rack//lib/rack/constants.rb#37
4562
4324
  Rack::UNLINK = T.let(T.unsafe(nil), String)
4563
4325
 
4564
4326
  # Rack::URLMap takes a hash mapping urls or paths to apps, and
@@ -4597,46 +4359,40 @@ end
4597
4359
  # Rack::Utils contains a grab-bag of useful methods for writing web
4598
4360
  # applications adopted from all kinds of Ruby libraries.
4599
4361
  #
4600
- # source://rack//lib/rack/utils.rb#19
4362
+ # source://rack//lib/rack/utils.rb#20
4601
4363
  module Rack::Utils
4602
4364
  private
4603
4365
 
4604
- # source://rack//lib/rack/utils.rb#255
4605
- def add_cookie_to_header(header, key, value); end
4606
-
4607
- # source://rack//lib/rack/utils.rb#390
4608
- def add_remove_cookie_to_header(header, key, value = T.unsafe(nil)); end
4609
-
4610
4366
  # Return best accept value to use, based on the algorithm
4611
4367
  # in RFC 2616 Section 14. If there are multiple best
4612
4368
  # matches (same specificity and quality), the value returned
4613
4369
  # is arbitrary.
4614
4370
  #
4615
- # source://rack//lib/rack/utils.rb#174
4371
+ # source://rack//lib/rack/utils.rb#167
4616
4372
  def best_q_match(q_value_header, available_mimes); end
4617
4373
 
4618
- # source://rack//lib/rack/utils.rb#127
4374
+ # source://rack//lib/rack/utils.rb#120
4619
4375
  def build_nested_query(value, prefix = T.unsafe(nil)); end
4620
4376
 
4621
- # source://rack//lib/rack/utils.rb#117
4377
+ # source://rack//lib/rack/utils.rb#110
4622
4378
  def build_query(params); end
4623
4379
 
4624
4380
  # Parses the "Range:" header, if present, into an array of Range objects.
4625
4381
  # Returns nil if the header is missing or syntactically invalid.
4626
4382
  # Returns an empty array if none of the ranges are satisfiable.
4627
4383
  #
4628
- # source://rack//lib/rack/utils.rb#432
4384
+ # source://rack//lib/rack/utils.rb#409
4629
4385
  def byte_ranges(env, size); end
4630
4386
 
4631
- # source://rack//lib/rack/utils.rb#636
4387
+ # source://rack//lib/rack/utils.rb#609
4632
4388
  def clean_path_info(path_info); end
4633
4389
 
4634
4390
  # :nocov:
4635
4391
  #
4636
- # source://rack//lib/rack/utils.rb#98
4392
+ # source://rack//lib/rack/utils.rb#91
4637
4393
  def clock_time; end
4638
4394
 
4639
- # source://rack//lib/rack/utils.rb#384
4395
+ # source://rack//lib/rack/utils.rb#367
4640
4396
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4641
4397
 
4642
4398
  # :call-seq:
@@ -4653,7 +4409,7 @@ module Rack::Utils
4653
4409
  # delete_set_cookie_header("myname")
4654
4410
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4655
4411
  #
4656
- # source://rack//lib/rack/utils.rb#374
4412
+ # source://rack//lib/rack/utils.rb#363
4657
4413
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4658
4414
 
4659
4415
  # :call-seq:
@@ -4674,34 +4430,32 @@ module Rack::Utils
4674
4430
  # header
4675
4431
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4676
4432
  #
4677
- # source://rack//lib/rack/utils.rb#414
4433
+ # source://rack//lib/rack/utils.rb#391
4678
4434
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4679
4435
 
4680
4436
  # URI escapes. (CGI style space to +)
4681
4437
  #
4682
- # source://rack//lib/rack/utils.rb#38
4438
+ # source://rack//lib/rack/utils.rb#40
4683
4439
  def escape(s); end
4684
4440
 
4441
+ # source://rack//lib/rack/utils.rb#262
4442
+ def escape_cookie_key(key); end
4443
+
4685
4444
  # Escape ampersands, brackets and quotes to their HTML/XML entities.
4686
- #
4687
- # source://rack//lib/rack/utils.rb#199
4688
- def escape_html(string); end
4445
+ def escape_html(_arg0); end
4689
4446
 
4690
4447
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
4691
4448
  # true URI escaping.
4692
4449
  #
4693
- # source://rack//lib/rack/utils.rb#44
4450
+ # source://rack//lib/rack/utils.rb#46
4694
4451
  def escape_path(s); end
4695
4452
 
4696
- # source://rack//lib/rack/utils.rb#156
4453
+ # source://rack//lib/rack/utils.rb#149
4697
4454
  def forwarded_values(forwarded_header); end
4698
4455
 
4699
- # source://rack//lib/rack/utils.rb#436
4456
+ # source://rack//lib/rack/utils.rb#413
4700
4457
  def get_byte_ranges(http_range, size); end
4701
4458
 
4702
- # source://rack//lib/rack/utils.rb#378
4703
- def make_delete_cookie_header(header, key, value); end
4704
-
4705
4459
  # :call-seq:
4706
4460
  # parse_cookies(env) -> hash
4707
4461
  #
@@ -4711,7 +4465,7 @@ module Rack::Utils
4711
4465
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4712
4466
  # # => {'myname' => 'myvalue'}
4713
4467
  #
4714
- # source://rack//lib/rack/utils.rb#279
4468
+ # source://rack//lib/rack/utils.rb#253
4715
4469
  def parse_cookies(env); end
4716
4470
 
4717
4471
  # :call-seq:
@@ -4724,27 +4478,27 @@ module Rack::Utils
4724
4478
  # parse_cookies_header('myname=myvalue; max-age=0')
4725
4479
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4726
4480
  #
4727
- # source://rack//lib/rack/utils.rb#245
4481
+ # source://rack//lib/rack/utils.rb#234
4728
4482
  def parse_cookies_header(value); end
4729
4483
 
4730
- # source://rack//lib/rack/utils.rb#113
4484
+ # source://rack//lib/rack/utils.rb#106
4731
4485
  def parse_nested_query(qs, d = T.unsafe(nil)); end
4732
4486
 
4733
- # source://rack//lib/rack/utils.rb#109
4487
+ # source://rack//lib/rack/utils.rb#102
4734
4488
  def parse_query(qs, d = T.unsafe(nil), &unescaper); end
4735
4489
 
4736
- # source://rack//lib/rack/utils.rb#145
4490
+ # source://rack//lib/rack/utils.rb#138
4737
4491
  def q_values(q_value_header); end
4738
4492
 
4739
- # source://rack//lib/rack/utils.rb#425
4493
+ # source://rack//lib/rack/utils.rb#402
4740
4494
  def rfc2822(time); end
4741
4495
 
4742
4496
  # :nocov:
4743
4497
  #
4744
- # source://rack//lib/rack/utils.rb#476
4498
+ # source://rack//lib/rack/utils.rb#455
4745
4499
  def secure_compare(a, b); end
4746
4500
 
4747
- # source://rack//lib/rack/utils.rb#203
4501
+ # source://rack//lib/rack/utils.rb#192
4748
4502
  def select_best_encoding(available_encodings, accept_encoding); end
4749
4503
 
4750
4504
  # :call-seq:
@@ -4770,7 +4524,7 @@ module Rack::Utils
4770
4524
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
4771
4525
  # # => "myname=myvalue; max-age=10"
4772
4526
  #
4773
- # source://rack//lib/rack/utils.rb#306
4527
+ # source://rack//lib/rack/utils.rb#294
4774
4528
  def set_cookie_header(key, value); end
4775
4529
 
4776
4530
  # :call-seq:
@@ -4782,74 +4536,68 @@ module Rack::Utils
4782
4536
  # If the headers already contains a +set-cookie+ key, it will be converted
4783
4537
  # to an +Array+ if not already, and appended to.
4784
4538
  #
4785
- # source://rack//lib/rack/utils.rb#348
4539
+ # source://rack//lib/rack/utils.rb#337
4786
4540
  def set_cookie_header!(headers, key, value); end
4787
4541
 
4788
- # source://rack//lib/rack/utils.rb#626
4542
+ # source://rack//lib/rack/utils.rb#589
4789
4543
  def status_code(status); end
4790
4544
 
4791
4545
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
4792
4546
  # target encoding of the string returned, and it defaults to UTF-8
4793
4547
  #
4794
- # source://rack//lib/rack/utils.rb#56
4548
+ # source://rack//lib/rack/utils.rb#58
4795
4549
  def unescape(s, encoding = T.unsafe(nil)); end
4796
4550
 
4797
4551
  # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
4798
4552
  # unescaping query parameters or form components.
4799
4553
  #
4800
- # source://rack//lib/rack/utils.rb#50
4554
+ # source://rack//lib/rack/utils.rb#52
4801
4555
  def unescape_path(s); end
4802
4556
 
4803
- # source://rack//lib/rack/utils.rb#653
4557
+ # source://rack//lib/rack/utils.rb#626
4804
4558
  def valid_path?(path); end
4805
4559
 
4806
4560
  class << self
4807
- # source://rack//lib/rack/utils.rb#255
4808
- def add_cookie_to_header(header, key, value); end
4809
-
4810
- # source://rack//lib/rack/utils.rb#390
4811
- def add_remove_cookie_to_header(header, key, value = T.unsafe(nil)); end
4812
-
4813
4561
  # Return best accept value to use, based on the algorithm
4814
4562
  # in RFC 2616 Section 14. If there are multiple best
4815
4563
  # matches (same specificity and quality), the value returned
4816
4564
  # is arbitrary.
4817
4565
  #
4818
- # source://rack//lib/rack/utils.rb#174
4566
+ # source://rack//lib/rack/utils.rb#167
4819
4567
  def best_q_match(q_value_header, available_mimes); end
4820
4568
 
4821
- # source://rack//lib/rack/utils.rb#127
4569
+ # source://rack//lib/rack/utils.rb#120
4822
4570
  def build_nested_query(value, prefix = T.unsafe(nil)); end
4823
4571
 
4824
- # source://rack//lib/rack/utils.rb#117
4572
+ # source://rack//lib/rack/utils.rb#110
4825
4573
  def build_query(params); end
4826
4574
 
4827
4575
  # Parses the "Range:" header, if present, into an array of Range objects.
4828
4576
  # Returns nil if the header is missing or syntactically invalid.
4829
4577
  # Returns an empty array if none of the ranges are satisfiable.
4830
4578
  #
4831
- # source://rack//lib/rack/utils.rb#432
4579
+ # source://rack//lib/rack/utils.rb#409
4832
4580
  def byte_ranges(env, size); end
4833
4581
 
4834
- # source://rack//lib/rack/utils.rb#636
4582
+ # source://rack//lib/rack/utils.rb#609
4835
4583
  def clean_path_info(path_info); end
4836
4584
 
4837
- # source://rack//lib/rack/utils.rb#98
4585
+ # source://rack//lib/rack/utils.rb#91
4838
4586
  def clock_time; end
4839
4587
 
4840
4588
  # Returns the value of attribute default_query_parser.
4841
4589
  #
4842
- # source://rack//lib/rack/utils.rb#28
4590
+ # source://rack//lib/rack/utils.rb#30
4843
4591
  def default_query_parser; end
4844
4592
 
4845
4593
  # Sets the attribute default_query_parser
4846
4594
  #
4847
4595
  # @param value the value to set the attribute default_query_parser to.
4848
4596
  #
4849
- # source://rack//lib/rack/utils.rb#28
4597
+ # source://rack//lib/rack/utils.rb#30
4850
4598
  def default_query_parser=(_arg0); end
4851
4599
 
4852
- # source://rack//lib/rack/utils.rb#384
4600
+ # source://rack//lib/rack/utils.rb#367
4853
4601
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4854
4602
 
4855
4603
  # :call-seq:
@@ -4866,7 +4614,7 @@ module Rack::Utils
4866
4614
  # delete_set_cookie_header("myname")
4867
4615
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4868
4616
  #
4869
- # source://rack//lib/rack/utils.rb#374
4617
+ # source://rack//lib/rack/utils.rb#363
4870
4618
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4871
4619
 
4872
4620
  # :call-seq:
@@ -4887,82 +4635,73 @@ module Rack::Utils
4887
4635
  # header
4888
4636
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4889
4637
  #
4890
- # source://rack//lib/rack/utils.rb#414
4638
+ # source://rack//lib/rack/utils.rb#391
4891
4639
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4892
4640
 
4893
4641
  # URI escapes. (CGI style space to +)
4894
4642
  #
4895
- # source://rack//lib/rack/utils.rb#38
4643
+ # source://rack//lib/rack/utils.rb#40
4896
4644
  def escape(s); end
4897
4645
 
4898
- # Escape ampersands, brackets and quotes to their HTML/XML entities.
4899
- #
4900
- # source://rack//lib/rack/utils.rb#199
4901
- def escape_html(string); end
4646
+ # source://rack//lib/rack/utils.rb#262
4647
+ def escape_cookie_key(key); end
4648
+
4649
+ def escape_html(_arg0); end
4902
4650
 
4903
4651
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
4904
4652
  # true URI escaping.
4905
4653
  #
4906
- # source://rack//lib/rack/utils.rb#44
4654
+ # source://rack//lib/rack/utils.rb#46
4907
4655
  def escape_path(s); end
4908
4656
 
4909
- # source://rack//lib/rack/utils.rb#156
4657
+ # source://rack//lib/rack/utils.rb#149
4910
4658
  def forwarded_values(forwarded_header); end
4911
4659
 
4912
- # source://rack//lib/rack/utils.rb#436
4660
+ # source://rack//lib/rack/utils.rb#413
4913
4661
  def get_byte_ranges(http_range, size); end
4914
4662
 
4915
- # source://rack//lib/rack/utils.rb#88
4916
- def key_space_limit; end
4917
-
4918
- # source://rack//lib/rack/utils.rb#93
4919
- def key_space_limit=(v); end
4920
-
4921
- # source://rack//lib/rack/utils.rb#378
4922
- def make_delete_cookie_header(header, key, value); end
4923
-
4924
4663
  # Returns the value of attribute multipart_file_limit.
4925
4664
  #
4926
- # source://rack//lib/rack/utils.rb#63
4665
+ # source://rack//lib/rack/utils.rb#65
4927
4666
  def multipart_file_limit; end
4928
4667
 
4929
4668
  # Sets the attribute multipart_file_limit
4930
4669
  #
4931
4670
  # @param value the value to set the attribute multipart_file_limit to.
4932
4671
  #
4933
- # source://rack//lib/rack/utils.rb#63
4672
+ # source://rack//lib/rack/utils.rb#65
4934
4673
  def multipart_file_limit=(_arg0); end
4935
4674
 
4936
4675
  # Returns the value of attribute multipart_file_limit.
4937
4676
  # multipart_part_limit is the original name of multipart_file_limit, but
4938
4677
  # the limit only counts parts with filenames.
4939
4678
  #
4940
- # source://rack//lib/rack/utils.rb#63
4679
+ # source://rack//lib/rack/utils.rb#65
4941
4680
  def multipart_part_limit; end
4942
4681
 
4943
4682
  # Sets the attribute multipart_file_limit
4944
4683
  #
4945
4684
  # @param value the value to set the attribute multipart_file_limit to.
4946
4685
  #
4947
- # source://rack//lib/rack/utils.rb#63
4686
+ # source://rack//lib/rack/utils.rb#65
4948
4687
  def multipart_part_limit=(_arg0); end
4949
4688
 
4950
4689
  # Returns the value of attribute multipart_total_part_limit.
4951
4690
  #
4952
- # source://rack//lib/rack/utils.rb#61
4691
+ # source://rack//lib/rack/utils.rb#63
4953
4692
  def multipart_total_part_limit; end
4954
4693
 
4955
4694
  # Sets the attribute multipart_total_part_limit
4956
4695
  #
4957
4696
  # @param value the value to set the attribute multipart_total_part_limit to.
4958
4697
  #
4959
- # source://rack//lib/rack/utils.rb#61
4698
+ # source://rack//lib/rack/utils.rb#63
4960
4699
  def multipart_total_part_limit=(_arg0); end
4961
4700
 
4962
- # source://rack//lib/rack/utils.rb#80
4701
+ # source://rack//lib/rack/utils.rb#82
4963
4702
  def param_depth_limit; end
4964
4703
 
4965
- # source://rack//lib/rack/utils.rb#84
4704
+ # source://rack//lib/rack/utils.rb#86
4966
4705
  def param_depth_limit=(v); end
4967
4706
 
4968
4707
  # :call-seq:
@@ -4974,7 +4713,7 @@ module Rack::Utils
4974
4713
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4975
4714
  # # => {'myname' => 'myvalue'}
4976
4715
  #
4977
- # source://rack//lib/rack/utils.rb#279
4716
+ # source://rack//lib/rack/utils.rb#253
4978
4717
  def parse_cookies(env); end
4979
4718
 
4980
4719
  # :call-seq:
@@ -4987,25 +4726,25 @@ module Rack::Utils
4987
4726
  # parse_cookies_header('myname=myvalue; max-age=0')
4988
4727
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4989
4728
  #
4990
- # source://rack//lib/rack/utils.rb#245
4729
+ # source://rack//lib/rack/utils.rb#234
4991
4730
  def parse_cookies_header(value); end
4992
4731
 
4993
- # source://rack//lib/rack/utils.rb#113
4732
+ # source://rack//lib/rack/utils.rb#106
4994
4733
  def parse_nested_query(qs, d = T.unsafe(nil)); end
4995
4734
 
4996
- # source://rack//lib/rack/utils.rb#109
4735
+ # source://rack//lib/rack/utils.rb#102
4997
4736
  def parse_query(qs, d = T.unsafe(nil), &unescaper); end
4998
4737
 
4999
- # source://rack//lib/rack/utils.rb#145
4738
+ # source://rack//lib/rack/utils.rb#138
5000
4739
  def q_values(q_value_header); end
5001
4740
 
5002
- # source://rack//lib/rack/utils.rb#425
4741
+ # source://rack//lib/rack/utils.rb#402
5003
4742
  def rfc2822(time); end
5004
4743
 
5005
- # source://rack//lib/rack/utils.rb#476
4744
+ # source://rack//lib/rack/utils.rb#455
5006
4745
  def secure_compare(a, b); end
5007
4746
 
5008
- # source://rack//lib/rack/utils.rb#203
4747
+ # source://rack//lib/rack/utils.rb#192
5009
4748
  def select_best_encoding(available_encodings, accept_encoding); end
5010
4749
 
5011
4750
  # :call-seq:
@@ -5031,7 +4770,7 @@ module Rack::Utils
5031
4770
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
5032
4771
  # # => "myname=myvalue; max-age=10"
5033
4772
  #
5034
- # source://rack//lib/rack/utils.rb#306
4773
+ # source://rack//lib/rack/utils.rb#294
5035
4774
  def set_cookie_header(key, value); end
5036
4775
 
5037
4776
  # :call-seq:
@@ -5043,32 +4782,32 @@ module Rack::Utils
5043
4782
  # If the headers already contains a +set-cookie+ key, it will be converted
5044
4783
  # to an +Array+ if not already, and appended to.
5045
4784
  #
5046
- # source://rack//lib/rack/utils.rb#348
4785
+ # source://rack//lib/rack/utils.rb#337
5047
4786
  def set_cookie_header!(headers, key, value); end
5048
4787
 
5049
- # source://rack//lib/rack/utils.rb#626
4788
+ # source://rack//lib/rack/utils.rb#589
5050
4789
  def status_code(status); end
5051
4790
 
5052
4791
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
5053
4792
  # target encoding of the string returned, and it defaults to UTF-8
5054
4793
  #
5055
- # source://rack//lib/rack/utils.rb#56
4794
+ # source://rack//lib/rack/utils.rb#58
5056
4795
  def unescape(s, encoding = T.unsafe(nil)); end
5057
4796
 
5058
4797
  # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
5059
4798
  # unescaping query parameters or form components.
5060
4799
  #
5061
- # source://rack//lib/rack/utils.rb#50
4800
+ # source://rack//lib/rack/utils.rb#52
5062
4801
  def unescape_path(s); end
5063
4802
 
5064
4803
  # @return [Boolean]
5065
4804
  #
5066
- # source://rack//lib/rack/utils.rb#653
4805
+ # source://rack//lib/rack/utils.rb#626
5067
4806
  def valid_path?(path); end
5068
4807
  end
5069
4808
  end
5070
4809
 
5071
- # source://rack//lib/rack/utils.rb#24
4810
+ # source://rack//lib/rack/utils.rb#25
5072
4811
  Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
5073
4812
 
5074
4813
  # Context allows the use of a compatible middleware at different points
@@ -5077,107 +4816,83 @@ Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
5077
4816
  # would be the request environment. The second of which would be the rack
5078
4817
  # application that the request would be forwarded to.
5079
4818
  #
5080
- # source://rack//lib/rack/utils.rb#499
4819
+ # source://rack//lib/rack/utils.rb#478
5081
4820
  class Rack::Utils::Context
5082
4821
  # @return [Context] a new instance of Context
5083
4822
  #
5084
- # source://rack//lib/rack/utils.rb#502
4823
+ # source://rack//lib/rack/utils.rb#481
5085
4824
  def initialize(app_f, app_r); end
5086
4825
 
5087
4826
  # Returns the value of attribute app.
5088
4827
  #
5089
- # source://rack//lib/rack/utils.rb#500
4828
+ # source://rack//lib/rack/utils.rb#479
5090
4829
  def app; end
5091
4830
 
5092
- # source://rack//lib/rack/utils.rb#507
4831
+ # source://rack//lib/rack/utils.rb#486
5093
4832
  def call(env); end
5094
4833
 
5095
- # source://rack//lib/rack/utils.rb#515
4834
+ # source://rack//lib/rack/utils.rb#494
5096
4835
  def context(env, app = T.unsafe(nil)); end
5097
4836
 
5098
4837
  # Returns the value of attribute for.
5099
4838
  #
5100
- # source://rack//lib/rack/utils.rb#500
4839
+ # source://rack//lib/rack/utils.rb#479
5101
4840
  def for; end
5102
4841
 
5103
- # source://rack//lib/rack/utils.rb#511
4842
+ # source://rack//lib/rack/utils.rb#490
5104
4843
  def recontext(app); end
5105
4844
  end
5106
4845
 
5107
- # source://rack//lib/rack/utils.rb#23
4846
+ # source://rack//lib/rack/utils.rb#24
5108
4847
  Rack::Utils::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
5109
4848
 
5110
- # source://rack//lib/rack/utils.rb#187
5111
- Rack::Utils::ESCAPE_HTML = T.let(T.unsafe(nil), Hash)
5112
-
5113
- # source://rack//lib/rack/utils.rb#196
5114
- Rack::Utils::ESCAPE_HTML_PATTERN = T.let(T.unsafe(nil), Regexp)
5115
-
5116
4849
  # Every standard HTTP code mapped to the appropriate message.
5117
4850
  # Generated with:
5118
- # curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv | \
5119
- # ruby -ne 'm = /^(\d{3}),(?!Unassigned|\(Unused\))([^,]+)/.match($_) and \
5120
- # puts "#{m[1]} => \x27#{m[2].strip}\x27,"'
4851
+ # curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv \
4852
+ # | ruby -rcsv -e "puts CSV.parse(STDIN, headers: true) \
4853
+ # .reject {|v| v['Description'] == 'Unassigned' or v['Description'].include? '(' } \
4854
+ # .map {|v| %Q/#{v['Value']} => '#{v['Description']}'/ }.join(','+?\n)"
5121
4855
  #
5122
- # source://rack//lib/rack/utils.rb#553
4856
+ # source://rack//lib/rack/utils.rb#505
5123
4857
  Rack::Utils::HTTP_STATUS_CODES = T.let(T.unsafe(nil), Hash)
5124
4858
 
5125
- # A wrapper around Headers
5126
- # header when set.
5127
- #
5128
- # @api private
5129
- #
5130
- # source://rack//lib/rack/utils.rb#524
5131
- class Rack::Utils::HeaderHash < ::Hash
5132
- class << self
5133
- # @api private
5134
- #
5135
- # source://rack//lib/rack/utils.rb#525
5136
- def [](headers); end
5137
-
5138
- # @api private
5139
- # @raise [TypeError]
5140
- #
5141
- # source://rack//lib/rack/utils.rb#543
5142
- def allocate; end
5143
-
5144
- # @api private
5145
- #
5146
- # source://rack//lib/rack/utils.rb#536
5147
- def new(hash = T.unsafe(nil)); end
5148
- end
5149
- end
5150
-
5151
- # source://rack//lib/rack/utils.rb#21
4859
+ # source://rack//lib/rack/utils.rb#22
5152
4860
  Rack::Utils::InvalidParameterError = Rack::QueryParser::InvalidParameterError
5153
4861
 
5154
- # source://rack//lib/rack/utils.rb#25
4862
+ # source://rack//lib/rack/utils.rb#26
5155
4863
  Rack::Utils::KeySpaceConstrainedParams = Rack::QueryParser::Params
5156
4864
 
5157
- # source://rack//lib/rack/utils.rb#651
4865
+ # source://rack//lib/rack/utils.rb#624
5158
4866
  Rack::Utils::NULL_BYTE = T.let(T.unsafe(nil), String)
5159
4867
 
5160
- # source://rack//lib/rack/utils.rb#634
4868
+ # source://rack//lib/rack/utils.rb#575
4869
+ Rack::Utils::OBSOLETE_SYMBOLS_TO_STATUS_CODES = T.let(T.unsafe(nil), Hash)
4870
+
4871
+ # source://rack//lib/rack/utils.rb#583
4872
+ Rack::Utils::OBSOLETE_SYMBOL_MAPPINGS = T.let(T.unsafe(nil), Hash)
4873
+
4874
+ # source://rack//lib/rack/utils.rb#607
5161
4875
  Rack::Utils::PATH_SEPS = T.let(T.unsafe(nil), Regexp)
5162
4876
 
5163
- # source://rack//lib/rack/utils.rb#20
4877
+ # source://rack//lib/rack/utils.rb#21
5164
4878
  Rack::Utils::ParameterTypeError = Rack::QueryParser::ParameterTypeError
5165
4879
 
5166
- # source://rack//lib/rack/utils.rb#22
4880
+ # source://rack//lib/rack/utils.rb#23
5167
4881
  Rack::Utils::ParamsTooDeepError = Rack::QueryParser::ParamsTooDeepError
5168
4882
 
5169
4883
  # Responses with HTTP status codes that should not have an entity body
5170
4884
  #
5171
- # source://rack//lib/rack/utils.rb#620
4885
+ # source://rack//lib/rack/utils.rb#569
5172
4886
  Rack::Utils::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
5173
4887
 
5174
- # source://rack//lib/rack/utils.rb#622
4888
+ # source://rack//lib/rack/utils.rb#571
5175
4889
  Rack::Utils::SYMBOL_TO_STATUS_CODE = T.let(T.unsafe(nil), Hash)
5176
4890
 
5177
- # The Rack protocol version number implemented.
5178
- #
5179
- # source://rack//lib/rack/version.rb#16
5180
- Rack::VERSION = T.let(T.unsafe(nil), Array)
4891
+ # source://rack//lib/rack/utils.rb#27
4892
+ Rack::Utils::URI_PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)
5181
4893
 
5182
- # source://rack//lib/rack/version.rb#19
5183
- Rack::VERSION_STRING = T.let(T.unsafe(nil), String)
4894
+ # A valid cookie key according to RFC2616.
4895
+ # A <cookie-name> can be any US-ASCII characters, except control characters, spaces, or tabs. It also must not contain a separator character like the following: ( ) < > @ , ; : \ " / [ ] ? = { }.
4896
+ #
4897
+ # source://rack//lib/rack/utils.rb#259
4898
+ Rack::Utils::VALID_COOKIE_KEY = T.let(T.unsafe(nil), Regexp)