lunchmoney 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.simplecov +1 -2
  4. data/Gemfile +2 -3
  5. data/Gemfile.lock +66 -68
  6. data/lib/lunchmoney/objects/transaction.rb +9 -1
  7. data/lib/lunchmoney/version.rb +1 -1
  8. data/sorbet/rbi/annotations/activesupport.rbi +31 -0
  9. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  10. data/sorbet/rbi/gems/{activesupport@7.1.3.2.rbi → activesupport@7.2.1.rbi} +1345 -1253
  11. data/sorbet/rbi/gems/{addressable@2.8.6.rbi → addressable@2.8.7.rbi} +2 -1
  12. data/sorbet/rbi/gems/{bigdecimal@3.1.7.rbi → bigdecimal@3.1.8.rbi} +1 -0
  13. data/sorbet/rbi/gems/{chef-utils@18.4.2.rbi → chef-utils@18.5.0.rbi} +1 -0
  14. data/sorbet/rbi/gems/{concurrent-ruby@1.2.3.rbi → concurrent-ruby@1.3.4.rbi} +64 -9
  15. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +1 -0
  16. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.0.rbi} +20 -15
  17. data/sorbet/rbi/gems/{faraday-net_http@3.1.0.rbi → faraday-net_http@3.1.1.rbi} +36 -35
  18. data/sorbet/rbi/gems/{faraday@2.9.0.rbi → faraday@2.10.1.rbi} +79 -33
  19. data/sorbet/rbi/gems/{hashdiff@1.1.0.rbi → hashdiff@1.1.1.rbi} +3 -2
  20. data/sorbet/rbi/gems/{i18n@1.14.4.rbi → i18n@1.14.5.rbi} +43 -14
  21. data/sorbet/rbi/gems/logger@1.6.0.rbi +903 -0
  22. data/sorbet/rbi/gems/{minitest@5.22.3.rbi → minitest@5.25.1.rbi} +245 -235
  23. data/sorbet/rbi/gems/{mixlib-shellout@3.2.7.rbi → mixlib-shellout@3.2.8.rbi} +1 -0
  24. data/sorbet/rbi/gems/{mocha@2.2.0.rbi → mocha@2.4.5.rbi} +36 -47
  25. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +32 -21
  26. data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.4.2.rbi} +233 -186
  27. data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@0.30.0.rbi} +5670 -4445
  28. data/sorbet/rbi/gems/{public_suffix@5.0.4.rbi → public_suffix@6.0.1.rbi} +1 -0
  29. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +34 -33
  30. data/sorbet/rbi/gems/{rack@3.0.10.rbi → rack@3.1.7.rbi} +694 -987
  31. data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.2.1.rbi} +56 -55
  32. data/sorbet/rbi/gems/{rbi@0.1.13.rbi → rbi@0.1.14.rbi} +865 -638
  33. data/sorbet/rbi/gems/{regexp_parser@2.9.1.rbi → regexp_parser@2.9.2.rbi} +2 -2
  34. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.3.6.rbi} +383 -245
  35. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.32.1.rbi} +383 -337
  36. data/sorbet/rbi/gems/{rubocop-minitest@0.35.0.rbi → rubocop-minitest@0.35.1.rbi} +11 -8
  37. data/sorbet/rbi/gems/{rubocop-rails@2.24.1.rbi → rubocop-rails@2.26.0.rbi} +604 -275
  38. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.3.rbi → rubocop-sorbet@0.8.5.rbi} +125 -67
  39. data/sorbet/rbi/gems/{rubocop@1.63.5.rbi → rubocop@1.65.1.rbi} +1722 -1408
  40. data/sorbet/rbi/gems/securerandom@0.3.1.rbi +73 -0
  41. data/sorbet/rbi/gems/{spoom@1.3.2.rbi → spoom@1.4.2.rbi} +2377 -1866
  42. data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
  43. data/sorbet/rbi/gems/{tapioca@0.14.1.rbi → tapioca@0.16.1.rbi} +274 -253
  44. data/sorbet/rbi/gems/{toys-core@0.15.5.rbi → toys-core@0.15.6.rbi} +1 -0
  45. data/sorbet/rbi/gems/{toys@0.15.5.rbi → toys@0.15.6.rbi} +4 -3
  46. data/sorbet/rbi/gems/{vcr@6.2.0.rbi → vcr@6.3.1.rbi} +72 -68
  47. data/sorbet/rbi/gems/{webmock@3.23.0.rbi → webmock@3.23.1.rbi} +1 -0
  48. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  49. metadata +43 -44
  50. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3426
  51. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
  52. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +0 -93
  53. data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +0 -966
  54. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10077
@@ -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
138
-
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.
146
- #
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)
132
+ # source://rack//lib/rack/builder.rb#6
133
+ Rack::BUILDER_TOPLEVEL_BINDING = T.let(T.unsafe(nil), Proc)
235
134
 
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.
135
+ # Represents a 400 Bad Request error when input data fails to meet the
136
+ # requirements.
240
137
  #
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
1384
+ #
1385
+ # source://rack//lib/rack/lint.rb#757
1386
+ def check_content_length_header(status, headers); end
1387
+
1388
+ # ==== The +content-type+ Header
1694
1389
  #
1695
- # source://rack//lib/rack/lint.rb#693
1696
- def check_content_length(status, headers); end
1390
+ # source://rack//lib/rack/lint.rb#741
1391
+ def check_content_type_header(status, headers); end
1697
1392
 
1698
- # === The content-type
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.
1699
1397
  #
1700
- # source://rack//lib/rack/lint.rb#677
1701
- def check_content_type(status, headers); end
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
 
@@ -2163,49 +1870,49 @@ Rack::Mime::MIME_TYPES = T.let(T.unsafe(nil), Hash)
2163
1870
  class Rack::MockRequest
2164
1871
  # @return [MockRequest] a new instance of MockRequest
2165
1872
  #
2166
- # source://rack//lib/rack/mock_request.rb#49
1873
+ # source://rack//lib/rack/mock_request.rb#44
2167
1874
  def initialize(app); end
2168
1875
 
2169
1876
  # Make a DELETE request and return a MockResponse. See #request.
2170
1877
  #
2171
- # source://rack//lib/rack/mock_request.rb#62
1878
+ # source://rack//lib/rack/mock_request.rb#57
2172
1879
  def delete(uri, opts = T.unsafe(nil)); end
2173
1880
 
2174
1881
  # Make a GET request and return a MockResponse. See #request.
2175
1882
  #
2176
- # source://rack//lib/rack/mock_request.rb#54
1883
+ # source://rack//lib/rack/mock_request.rb#49
2177
1884
  def get(uri, opts = T.unsafe(nil)); end
2178
1885
 
2179
1886
  # Make a HEAD request and return a MockResponse. See #request.
2180
1887
  #
2181
- # source://rack//lib/rack/mock_request.rb#64
1888
+ # source://rack//lib/rack/mock_request.rb#59
2182
1889
  def head(uri, opts = T.unsafe(nil)); end
2183
1890
 
2184
1891
  # Make an OPTIONS request and return a MockResponse. See #request.
2185
1892
  #
2186
- # source://rack//lib/rack/mock_request.rb#66
1893
+ # source://rack//lib/rack/mock_request.rb#61
2187
1894
  def options(uri, opts = T.unsafe(nil)); end
2188
1895
 
2189
1896
  # Make a PATCH request and return a MockResponse. See #request.
2190
1897
  #
2191
- # source://rack//lib/rack/mock_request.rb#60
1898
+ # source://rack//lib/rack/mock_request.rb#55
2192
1899
  def patch(uri, opts = T.unsafe(nil)); end
2193
1900
 
2194
1901
  # Make a POST request and return a MockResponse. See #request.
2195
1902
  #
2196
- # source://rack//lib/rack/mock_request.rb#56
1903
+ # source://rack//lib/rack/mock_request.rb#51
2197
1904
  def post(uri, opts = T.unsafe(nil)); end
2198
1905
 
2199
1906
  # Make a PUT request and return a MockResponse. See #request.
2200
1907
  #
2201
- # source://rack//lib/rack/mock_request.rb#58
1908
+ # source://rack//lib/rack/mock_request.rb#53
2202
1909
  def put(uri, opts = T.unsafe(nil)); end
2203
1910
 
2204
1911
  # Make a request using the given request method for the given
2205
1912
  # uri to the rack application and return a MockResponse.
2206
1913
  # Options given are passed to MockRequest.env_for.
2207
1914
  #
2208
- # source://rack//lib/rack/mock_request.rb#71
1915
+ # source://rack//lib/rack/mock_request.rb#66
2209
1916
  def request(method = T.unsafe(nil), uri = T.unsafe(nil), opts = T.unsafe(nil)); end
2210
1917
 
2211
1918
  class << self
@@ -2219,20 +1926,17 @@ class Rack::MockRequest
2219
1926
  # :params :: The params to use
2220
1927
  # :script_name :: The SCRIPT_NAME to set
2221
1928
  #
2222
- # source://rack//lib/rack/mock_request.rb#103
1929
+ # source://rack//lib/rack/mock_request.rb#98
2223
1930
  def env_for(uri = T.unsafe(nil), opts = T.unsafe(nil)); end
2224
1931
 
2225
1932
  # For historical reasons, we're pinning to RFC 2396.
2226
1933
  # URI::Parser = URI::RFC2396_Parser
2227
1934
  #
2228
- # source://rack//lib/rack/mock_request.rb#89
1935
+ # source://rack//lib/rack/mock_request.rb#84
2229
1936
  def parse_uri_rfc2396(uri); end
2230
1937
  end
2231
1938
  end
2232
1939
 
2233
- # source://rack//lib/rack/mock_request.rb#44
2234
- Rack::MockRequest::DEFAULT_ENV = T.let(T.unsafe(nil), Hash)
2235
-
2236
1940
  # source://rack//lib/rack/mock_request.rb#27
2237
1941
  class Rack::MockRequest::FatalWarner
2238
1942
  # source://rack//lib/rack/mock_request.rb#36
@@ -2305,7 +2009,7 @@ class Rack::MockResponse < ::Rack::Response
2305
2009
 
2306
2010
  private
2307
2011
 
2308
- # source://rack//lib/rack/mock_response.rb#102
2012
+ # source://rack//lib/rack/mock_response.rb#100
2309
2013
  def identify_cookie_attributes(cookie_filling); end
2310
2014
 
2311
2015
  # source://rack//lib/rack/mock_response.rb#79
@@ -2320,72 +2024,43 @@ end
2320
2024
  #
2321
2025
  # Usually, Rack::Request#POST takes care of calling this.
2322
2026
  #
2323
- # source://rack//lib/rack/multipart/parser.rb#8
2027
+ # source://rack//lib/rack/multipart/parser.rb#9
2324
2028
  module Rack::Multipart
2325
2029
  class << self
2326
- # source://rack//lib/rack/multipart.rb#39
2030
+ # source://rack//lib/rack/multipart.rb#72
2327
2031
  def build_multipart(params, first = T.unsafe(nil)); end
2328
2032
 
2329
- # source://rack//lib/rack/multipart.rb#35
2033
+ # source://rack//lib/rack/multipart.rb#68
2330
2034
  def extract_multipart(request, params = T.unsafe(nil)); end
2331
2035
 
2332
- # source://rack//lib/rack/multipart.rb#17
2036
+ # source://rack//lib/rack/multipart.rb#48
2333
2037
  def parse_multipart(env, params = T.unsafe(nil)); end
2334
2038
  end
2335
2039
  end
2336
2040
 
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
2041
+ # Base class for multipart exceptions that do not subclass from
2042
+ # other exception classes for backwards compatibility.
2341
2043
  #
2342
- # source://rack//lib/rack/multipart/parser.rb#31
2343
- Rack::Multipart::ATTRIBUTE_CHAR = T.let(T.unsafe(nil), Regexp)
2344
-
2345
2044
  # 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)
2045
+ class Rack::Multipart::BoundaryTooLongError < ::StandardError
2046
+ include ::Rack::BadRequest
2047
+ end
2353
2048
 
2354
- # source://rack//lib/rack/multipart/parser.rb#21
2049
+ # source://rack//lib/rack/multipart/parser.rb#33
2355
2050
  Rack::Multipart::EOL = T.let(T.unsafe(nil), String)
2356
2051
 
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
2052
  # Use specific error class when parsing multipart request
2379
2053
  # that ends early.
2380
2054
  #
2381
- # source://rack//lib/rack/multipart/parser.rb#15
2382
- class Rack::Multipart::EmptyContentError < ::EOFError; end
2055
+ # source://rack//lib/rack/multipart/parser.rb#20
2056
+ class Rack::Multipart::EmptyContentError < ::EOFError
2057
+ include ::Rack::BadRequest
2058
+ end
2383
2059
 
2384
- # Base class for multipart exceptions that do not subclass from
2385
- # other exception classes for backwards compatibility.
2060
+ # Prefer to use the BoundaryTooLongError class or Rack::BadRequest.
2386
2061
  #
2387
- # source://rack//lib/rack/multipart/parser.rb#19
2388
- class Rack::Multipart::Error < ::StandardError; end
2062
+ # source://rack//lib/rack/multipart/parser.rb#31
2063
+ Rack::Multipart::Error = Rack::Multipart::BoundaryTooLongError
2389
2064
 
2390
2065
  # source://rack//lib/rack/multipart/generator.rb#7
2391
2066
  class Rack::Multipart::Generator
@@ -2414,43 +2089,78 @@ class Rack::Multipart::Generator
2414
2089
  def multipart?; end
2415
2090
  end
2416
2091
 
2417
- # source://rack//lib/rack/multipart/parser.rb#22
2092
+ # source://rack//lib/rack/multipart/parser.rb#34
2418
2093
  Rack::Multipart::MULTIPART = T.let(T.unsafe(nil), Regexp)
2419
2094
 
2420
- # source://rack//lib/rack/multipart.rb#14
2095
+ # source://rack//lib/rack/multipart.rb#16
2421
2096
  Rack::Multipart::MULTIPART_BOUNDARY = T.let(T.unsafe(nil), String)
2422
2097
 
2423
- # source://rack//lib/rack/multipart/parser.rb#28
2098
+ # source://rack//lib/rack/multipart/parser.rb#36
2424
2099
  Rack::Multipart::MULTIPART_CONTENT_DISPOSITION = T.let(T.unsafe(nil), Regexp)
2425
2100
 
2426
- # source://rack//lib/rack/multipart/parser.rb#29
2101
+ # source://rack//lib/rack/multipart/parser.rb#37
2427
2102
  Rack::Multipart::MULTIPART_CONTENT_ID = T.let(T.unsafe(nil), Regexp)
2428
2103
 
2429
- # source://rack//lib/rack/multipart/parser.rb#27
2104
+ # source://rack//lib/rack/multipart/parser.rb#35
2430
2105
  Rack::Multipart::MULTIPART_CONTENT_TYPE = T.let(T.unsafe(nil), Regexp)
2431
2106
 
2432
- # source://rack//lib/rack/multipart/parser.rb#9
2433
- class Rack::Multipart::MultipartPartLimitError < ::Errno::EMFILE; end
2107
+ # source://rack//lib/rack/multipart.rb#18
2108
+ class Rack::Multipart::MissingInputError < ::StandardError
2109
+ include ::Rack::BadRequest
2110
+ end
2111
+
2112
+ # source://rack//lib/rack/multipart/parser.rb#10
2113
+ class Rack::Multipart::MultipartPartLimitError < ::Errno::EMFILE
2114
+ include ::Rack::BadRequest
2115
+ end
2116
+
2117
+ # source://rack//lib/rack/multipart/parser.rb#14
2118
+ class Rack::Multipart::MultipartTotalPartLimitError < ::StandardError
2119
+ include ::Rack::BadRequest
2120
+ end
2121
+
2122
+ # Accumulator for multipart form data, conforming to the QueryParser API.
2123
+ # In future, the Parser could return the pair list directly, but that would
2124
+ # change its API.
2125
+ #
2126
+ # source://rack//lib/rack/multipart.rb#25
2127
+ class Rack::Multipart::ParamList
2128
+ # @return [ParamList] a new instance of ParamList
2129
+ #
2130
+ # source://rack//lib/rack/multipart.rb#34
2131
+ def initialize; end
2132
+
2133
+ # source://rack//lib/rack/multipart.rb#38
2134
+ def <<(pair); end
2135
+
2136
+ # source://rack//lib/rack/multipart.rb#42
2137
+ def to_params_hash; end
2138
+
2139
+ class << self
2140
+ # source://rack//lib/rack/multipart.rb#26
2141
+ def make_params; end
2434
2142
 
2435
- # source://rack//lib/rack/multipart/parser.rb#11
2436
- class Rack::Multipart::MultipartTotalPartLimitError < ::StandardError; end
2143
+ # source://rack//lib/rack/multipart.rb#30
2144
+ def normalize_params(params, key, value); end
2145
+ end
2146
+ end
2437
2147
 
2438
- # source://rack//lib/rack/multipart/parser.rb#46
2148
+ # source://rack//lib/rack/multipart/parser.rb#39
2439
2149
  class Rack::Multipart::Parser
2440
2150
  # @return [Parser] a new instance of Parser
2441
2151
  #
2442
- # source://rack//lib/rack/multipart/parser.rb#205
2152
+ # source://rack//lib/rack/multipart/parser.rb#200
2443
2153
  def initialize(boundary, tempfile, bufsize, query_parser); end
2444
2154
 
2445
- # source://rack//lib/rack/multipart/parser.rb#221
2155
+ # source://rack//lib/rack/multipart/parser.rb#217
2446
2156
  def parse(io); end
2447
2157
 
2448
- # source://rack//lib/rack/multipart/parser.rb#244
2158
+ # source://rack//lib/rack/multipart/parser.rb#240
2449
2159
  def result; end
2450
2160
 
2451
2161
  # Returns the value of attribute state.
2452
2162
  #
2453
- # source://rack//lib/rack/multipart/parser.rb#203
2163
+ # source://rack//lib/rack/multipart/parser.rb#198
2454
2164
  def state; end
2455
2165
 
2456
2166
  private
@@ -2460,21 +2170,25 @@ class Rack::Multipart::Parser
2460
2170
  # end of the boundary. If we don't find the start or end of the
2461
2171
  # boundary, clear the buffer and return nil.
2462
2172
  #
2463
- # source://rack//lib/rack/multipart/parser.rb#354
2173
+ # source://rack//lib/rack/multipart/parser.rb#434
2464
2174
  def consume_boundary; end
2465
2175
 
2466
2176
  # From WEBrick::HTTPUtils
2467
2177
  #
2468
- # source://rack//lib/rack/multipart/parser.rb#256
2178
+ # source://rack//lib/rack/multipart/parser.rb#252
2469
2179
  def dequote(str); end
2470
2180
 
2471
- # source://rack//lib/rack/multipart/parser.rb#363
2472
- def get_filename(head); end
2181
+ # Return the related Encoding object. However, because
2182
+ # enc is submitted by the user, it may be invalid, so
2183
+ # use a binary encoding in that case.
2184
+ #
2185
+ # source://rack//lib/rack/multipart/parser.rb#489
2186
+ def find_encoding(enc); end
2473
2187
 
2474
- # source://rack//lib/rack/multipart/parser.rb#298
2188
+ # source://rack//lib/rack/multipart/parser.rb#294
2475
2189
  def handle_consume_token; end
2476
2190
 
2477
- # source://rack//lib/rack/multipart/parser.rb#435
2191
+ # source://rack//lib/rack/multipart/parser.rb#495
2478
2192
  def handle_empty_content!(content); end
2479
2193
 
2480
2194
  # This handles the initial parser state. We read until we find the starting
@@ -2485,108 +2199,117 @@ class Rack::Multipart::Parser
2485
2199
  # boundary. The client would have to deliberately craft a response
2486
2200
  # with the opening boundary beyond the buffer size for that to happen.
2487
2201
  #
2488
- # source://rack//lib/rack/multipart/parser.rb#275
2202
+ # source://rack//lib/rack/multipart/parser.rb#271
2489
2203
  def handle_fast_forward; end
2490
2204
 
2491
- # source://rack//lib/rack/multipart/parser.rb#331
2205
+ # source://rack//lib/rack/multipart/parser.rb#411
2492
2206
  def handle_mime_body; end
2493
2207
 
2494
- # source://rack//lib/rack/multipart/parser.rb#308
2208
+ # source://rack//lib/rack/multipart/parser.rb#306
2495
2209
  def handle_mime_head; end
2496
2210
 
2497
- # source://rack//lib/rack/multipart/parser.rb#262
2211
+ # source://rack//lib/rack/multipart/parser.rb#443
2212
+ def normalize_filename(filename); end
2213
+
2214
+ # source://rack//lib/rack/multipart/parser.rb#258
2498
2215
  def read_data(io, outbuf); end
2499
2216
 
2500
- # source://rack//lib/rack/multipart/parser.rb#401
2217
+ # source://rack//lib/rack/multipart/parser.rb#456
2501
2218
  def tag_multipart_encoding(filename, content_type, name, body); end
2502
2219
 
2503
2220
  class << self
2504
- # source://rack//lib/rack/multipart/parser.rb#92
2221
+ # source://rack//lib/rack/multipart/parser.rb#87
2505
2222
  def parse(io, content_length, content_type, tmpfile, bufsize, qp); end
2506
2223
 
2507
- # source://rack//lib/rack/multipart/parser.rb#85
2224
+ # source://rack//lib/rack/multipart/parser.rb#80
2508
2225
  def parse_boundary(content_type); end
2509
2226
  end
2510
2227
  end
2511
2228
 
2512
- # source://rack//lib/rack/multipart/parser.rb#47
2229
+ # source://rack//lib/rack/multipart/parser.rb#40
2513
2230
  Rack::Multipart::Parser::BUFSIZE = T.let(T.unsafe(nil), Integer)
2514
2231
 
2515
- # source://rack//lib/rack/multipart/parser.rb#53
2232
+ # source://rack//lib/rack/multipart/parser.rb#48
2516
2233
  class Rack::Multipart::Parser::BoundedIO
2517
2234
  # @return [BoundedIO] a new instance of BoundedIO
2518
2235
  #
2519
- # source://rack//lib/rack/multipart/parser.rb#54
2236
+ # source://rack//lib/rack/multipart/parser.rb#49
2520
2237
  def initialize(io, content_length); end
2521
2238
 
2522
- # source://rack//lib/rack/multipart/parser.rb#60
2239
+ # source://rack//lib/rack/multipart/parser.rb#55
2523
2240
  def read(size, outbuf = T.unsafe(nil)); end
2524
2241
  end
2525
2242
 
2526
- # source://rack//lib/rack/multipart/parser.rb#398
2243
+ # source://rack//lib/rack/multipart/parser.rb#453
2527
2244
  Rack::Multipart::Parser::CHARSET = T.let(T.unsafe(nil), String)
2528
2245
 
2529
- # source://rack//lib/rack/multipart/parser.rb#112
2246
+ # source://rack//lib/rack/multipart/parser.rb#305
2247
+ Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_BYTES = T.let(T.unsafe(nil), Integer)
2248
+
2249
+ # source://rack//lib/rack/multipart/parser.rb#304
2250
+ Rack::Multipart::Parser::CONTENT_DISPOSITION_MAX_PARAMS = T.let(T.unsafe(nil), Integer)
2251
+
2252
+ # source://rack//lib/rack/multipart/parser.rb#107
2530
2253
  class Rack::Multipart::Parser::Collector
2531
2254
  include ::Enumerable
2532
2255
 
2533
2256
  # @return [Collector] a new instance of Collector
2534
2257
  #
2535
- # source://rack//lib/rack/multipart/parser.rb#148
2258
+ # source://rack//lib/rack/multipart/parser.rb#143
2536
2259
  def initialize(tempfile); end
2537
2260
 
2538
- # source://rack//lib/rack/multipart/parser.rb#154
2261
+ # source://rack//lib/rack/multipart/parser.rb#149
2539
2262
  def each; end
2540
2263
 
2541
- # source://rack//lib/rack/multipart/parser.rb#174
2264
+ # source://rack//lib/rack/multipart/parser.rb#169
2542
2265
  def on_mime_body(mime_index, content); end
2543
2266
 
2544
- # source://rack//lib/rack/multipart/parser.rb#178
2267
+ # source://rack//lib/rack/multipart/parser.rb#173
2545
2268
  def on_mime_finish(mime_index); end
2546
2269
 
2547
- # source://rack//lib/rack/multipart/parser.rb#158
2270
+ # source://rack//lib/rack/multipart/parser.rb#153
2548
2271
  def on_mime_head(mime_index, head, filename, content_type, name); end
2549
2272
 
2550
2273
  private
2551
2274
 
2552
- # source://rack//lib/rack/multipart/parser.rb#183
2275
+ # source://rack//lib/rack/multipart/parser.rb#178
2553
2276
  def check_part_limits; end
2554
2277
  end
2555
2278
 
2556
- # source://rack//lib/rack/multipart/parser.rb#136
2279
+ # source://rack//lib/rack/multipart/parser.rb#131
2557
2280
  class Rack::Multipart::Parser::Collector::BufferPart < ::Rack::Multipart::Parser::Collector::MimePart
2558
- # source://rack//lib/rack/multipart/parser.rb#138
2281
+ # source://rack//lib/rack/multipart/parser.rb#133
2559
2282
  def close; end
2560
2283
 
2561
2284
  # @return [Boolean]
2562
2285
  #
2563
- # source://rack//lib/rack/multipart/parser.rb#137
2286
+ # source://rack//lib/rack/multipart/parser.rb#132
2564
2287
  def file?; end
2565
2288
  end
2566
2289
 
2567
- # source://rack//lib/rack/multipart/parser.rb#113
2290
+ # source://rack//lib/rack/multipart/parser.rb#108
2568
2291
  class Rack::Multipart::Parser::Collector::MimePart < ::Struct
2569
2292
  # @yield [data]
2570
2293
  #
2571
- # source://rack//lib/rack/multipart/parser.rb#114
2294
+ # source://rack//lib/rack/multipart/parser.rb#109
2572
2295
  def get_data; end
2573
2296
  end
2574
2297
 
2575
- # source://rack//lib/rack/multipart/parser.rb#141
2298
+ # source://rack//lib/rack/multipart/parser.rb#136
2576
2299
  class Rack::Multipart::Parser::Collector::TempfilePart < ::Rack::Multipart::Parser::Collector::MimePart
2577
- # source://rack//lib/rack/multipart/parser.rb#143
2300
+ # source://rack//lib/rack/multipart/parser.rb#138
2578
2301
  def close; end
2579
2302
 
2580
2303
  # @return [Boolean]
2581
2304
  #
2582
- # source://rack//lib/rack/multipart/parser.rb#142
2305
+ # source://rack//lib/rack/multipart/parser.rb#137
2583
2306
  def file?; end
2584
2307
  end
2585
2308
 
2586
- # source://rack//lib/rack/multipart/parser.rb#83
2309
+ # source://rack//lib/rack/multipart/parser.rb#78
2587
2310
  Rack::Multipart::Parser::EMPTY = T.let(T.unsafe(nil), Rack::Multipart::Parser::MultipartInfo)
2588
2311
 
2589
- # source://rack//lib/rack/multipart/parser.rb#82
2312
+ # source://rack//lib/rack/multipart/parser.rb#77
2590
2313
  class Rack::Multipart::Parser::MultipartInfo < ::Struct
2591
2314
  # Returns the value of attribute params
2592
2315
  #
@@ -2619,27 +2342,12 @@ class Rack::Multipart::Parser::MultipartInfo < ::Struct
2619
2342
  end
2620
2343
  end
2621
2344
 
2622
- # source://rack//lib/rack/multipart/parser.rb#49
2345
+ # source://rack//lib/rack/multipart/parser.rb#42
2623
2346
  Rack::Multipart::Parser::TEMPFILE_FACTORY = T.let(T.unsafe(nil), Proc)
2624
2347
 
2625
- # source://rack//lib/rack/multipart/parser.rb#48
2348
+ # source://rack//lib/rack/multipart/parser.rb#41
2626
2349
  Rack::Multipart::Parser::TEXT_PLAIN = T.let(T.unsafe(nil), String)
2627
2350
 
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
2351
  # source://rack//lib/rack/multipart/uploaded_file.rb#8
2644
2352
  class Rack::Multipart::UploadedFile
2645
2353
  # @return [UploadedFile] a new instance of UploadedFile
@@ -2677,9 +2385,6 @@ class Rack::Multipart::UploadedFile
2677
2385
  def respond_to?(*args); end
2678
2386
  end
2679
2387
 
2680
- # source://rack//lib/rack/multipart/parser.rb#25
2681
- Rack::Multipart::VALUE = T.let(T.unsafe(nil), Regexp)
2682
-
2683
2388
  # source://rack//lib/rack/null_logger.rb#6
2684
2389
  class Rack::NullLogger
2685
2390
  # @return [NullLogger] a new instance of NullLogger
@@ -2812,17 +2517,17 @@ Rack::PUT = T.let(T.unsafe(nil), String)
2812
2517
  # source://rack//lib/rack/constants.rb#12
2813
2518
  Rack::QUERY_STRING = T.let(T.unsafe(nil), String)
2814
2519
 
2815
- # source://rack//lib/rack/query_parser.rb#6
2520
+ # source://rack//lib/rack/query_parser.rb#7
2816
2521
  class Rack::QueryParser
2817
2522
  # @return [QueryParser] a new instance of QueryParser
2818
2523
  #
2819
- # source://rack//lib/rack/query_parser.rb#33
2820
- def initialize(params_class, _key_space_limit = T.unsafe(nil), param_depth_limit); end
2524
+ # source://rack//lib/rack/query_parser.rb#36
2525
+ def initialize(params_class, param_depth_limit); end
2821
2526
 
2822
- # source://rack//lib/rack/query_parser.rb#167
2527
+ # source://rack//lib/rack/query_parser.rb#166
2823
2528
  def make_params; end
2824
2529
 
2825
- # source://rack//lib/rack/query_parser.rb#171
2530
+ # source://rack//lib/rack/query_parser.rb#170
2826
2531
  def new_depth_limit(param_depth_limit); end
2827
2532
 
2828
2533
  # normalize_params recursively expands parameters into structural types. If
@@ -2831,12 +2536,12 @@ class Rack::QueryParser
2831
2536
  # and should no longer be used, it is kept for backwards compatibility with
2832
2537
  # earlier versions of rack.
2833
2538
  #
2834
- # source://rack//lib/rack/query_parser.rb#95
2539
+ # source://rack//lib/rack/query_parser.rb#94
2835
2540
  def normalize_params(params, name, v, _depth = T.unsafe(nil)); end
2836
2541
 
2837
2542
  # Returns the value of attribute param_depth_limit.
2838
2543
  #
2839
- # source://rack//lib/rack/query_parser.rb#31
2544
+ # source://rack//lib/rack/query_parser.rb#34
2840
2545
  def param_depth_limit; end
2841
2546
 
2842
2547
  # parse_nested_query expands a query string into structural types. Supported
@@ -2845,7 +2550,7 @@ class Rack::QueryParser
2845
2550
  # ParameterTypeError is raised. Users are encouraged to return a 400 in this
2846
2551
  # case.
2847
2552
  #
2848
- # source://rack//lib/rack/query_parser.rb#74
2553
+ # source://rack//lib/rack/query_parser.rb#73
2849
2554
  def parse_nested_query(qs, separator = T.unsafe(nil)); end
2850
2555
 
2851
2556
  # Stolen from Mongrel, with some small modifications:
@@ -2853,196 +2558,152 @@ class Rack::QueryParser
2853
2558
  # to parse cookies by changing the characters used in the second parameter
2854
2559
  # (which defaults to '&').
2855
2560
  #
2856
- # source://rack//lib/rack/query_parser.rb#46
2561
+ # source://rack//lib/rack/query_parser.rb#45
2857
2562
  def parse_query(qs, separator = T.unsafe(nil), &unescaper); end
2858
2563
 
2859
2564
  private
2860
2565
 
2861
2566
  # @raise [ParamsTooDeepError]
2862
2567
  #
2863
- # source://rack//lib/rack/query_parser.rb#99
2568
+ # source://rack//lib/rack/query_parser.rb#98
2864
2569
  def _normalize_params(params, name, v, depth); end
2865
2570
 
2866
2571
  # @return [Boolean]
2867
2572
  #
2868
- # source://rack//lib/rack/query_parser.rb#181
2573
+ # source://rack//lib/rack/query_parser.rb#180
2869
2574
  def params_hash_has_key?(hash, key); end
2870
2575
 
2871
2576
  # @return [Boolean]
2872
2577
  #
2873
- # source://rack//lib/rack/query_parser.rb#177
2578
+ # source://rack//lib/rack/query_parser.rb#176
2874
2579
  def params_hash_type?(obj); end
2875
2580
 
2876
- # source://rack//lib/rack/query_parser.rb#193
2581
+ # source://rack//lib/rack/query_parser.rb#192
2877
2582
  def unescape(string, encoding = T.unsafe(nil)); end
2878
2583
 
2879
2584
  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
2585
+ # source://rack//lib/rack/query_parser.rb#30
2586
+ def make_default(param_depth_limit); end
2882
2587
  end
2883
2588
  end
2884
2589
 
2885
- # source://rack//lib/rack/query_parser.rb#8
2590
+ # source://rack//lib/rack/query_parser.rb#9
2886
2591
  Rack::QueryParser::COMMON_SEP = T.let(T.unsafe(nil), Hash)
2887
2592
 
2888
- # source://rack//lib/rack/query_parser.rb#7
2593
+ # source://rack//lib/rack/query_parser.rb#8
2889
2594
  Rack::QueryParser::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
2890
2595
 
2891
2596
  # InvalidParameterError is the error that is raised when incoming structural
2892
2597
  # parameters (parsed by parse_nested_query) contain invalid format or byte
2893
2598
  # sequence.
2894
2599
  #
2895
- # source://rack//lib/rack/query_parser.rb#17
2896
- class Rack::QueryParser::InvalidParameterError < ::ArgumentError; end
2600
+ # source://rack//lib/rack/query_parser.rb#20
2601
+ class Rack::QueryParser::InvalidParameterError < ::ArgumentError
2602
+ include ::Rack::BadRequest
2603
+ end
2897
2604
 
2898
2605
  # ParameterTypeError is the error that is raised when incoming structural
2899
2606
  # parameters (parsed by parse_nested_query) contain conflicting types.
2900
2607
  #
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
2608
+ # source://rack//lib/rack/query_parser.rb#13
2609
+ class Rack::QueryParser::ParameterTypeError < ::TypeError
2610
+ include ::Rack::BadRequest
2611
+ end
2942
2612
 
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
2613
+ # source://rack//lib/rack/query_parser.rb#196
2614
+ class Rack::QueryParser::Params < ::Hash
2962
2615
  def to_params_hash; end
2963
2616
  end
2964
2617
 
2965
2618
  # ParamsTooDeepError is the error that is raised when params are recursively
2966
2619
  # nested over the specified limit.
2967
2620
  #
2968
- # source://rack//lib/rack/query_parser.rb#21
2969
- class Rack::QueryParser::ParamsTooDeepError < ::RangeError; end
2621
+ # source://rack//lib/rack/query_parser.rb#26
2622
+ class Rack::QueryParser::ParamsTooDeepError < ::RangeError
2623
+ include ::Rack::BadRequest
2624
+ end
2970
2625
 
2971
- # source://rack//lib/rack/constants.rb#42
2626
+ # source://rack//lib/rack/constants.rb#43
2627
+ Rack::RACK_EARLY_HINTS = T.let(T.unsafe(nil), String)
2628
+
2629
+ # source://rack//lib/rack/constants.rb#44
2972
2630
  Rack::RACK_ERRORS = T.let(T.unsafe(nil), String)
2973
2631
 
2974
- # source://rack//lib/rack/constants.rb#49
2632
+ # source://rack//lib/rack/constants.rb#51
2975
2633
  Rack::RACK_HIJACK = T.let(T.unsafe(nil), String)
2976
2634
 
2977
- # source://rack//lib/rack/constants.rb#44
2635
+ # source://rack//lib/rack/constants.rb#46
2978
2636
  Rack::RACK_INPUT = T.let(T.unsafe(nil), String)
2979
2637
 
2980
- # source://rack//lib/rack/constants.rb#50
2638
+ # source://rack//lib/rack/constants.rb#52
2981
2639
  Rack::RACK_IS_HIJACK = T.let(T.unsafe(nil), String)
2982
2640
 
2983
- # source://rack//lib/rack/constants.rb#43
2641
+ # source://rack//lib/rack/constants.rb#45
2984
2642
  Rack::RACK_LOGGER = T.let(T.unsafe(nil), String)
2985
2643
 
2986
- # source://rack//lib/rack/constants.rb#63
2644
+ # source://rack//lib/rack/constants.rb#66
2987
2645
  Rack::RACK_METHODOVERRIDE_ORIGINAL_METHOD = T.let(T.unsafe(nil), String)
2988
2646
 
2989
- # source://rack//lib/rack/constants.rb#52
2647
+ # source://rack//lib/rack/constants.rb#54
2990
2648
  Rack::RACK_MULTIPART_BUFFER_SIZE = T.let(T.unsafe(nil), String)
2991
2649
 
2992
- # source://rack//lib/rack/constants.rb#53
2650
+ # source://rack//lib/rack/constants.rb#55
2993
2651
  Rack::RACK_MULTIPART_TEMPFILE_FACTORY = T.let(T.unsafe(nil), String)
2994
2652
 
2995
- # source://rack//lib/rack/constants.rb#51
2653
+ # source://rack//lib/rack/constants.rb#53
2996
2654
  Rack::RACK_RECURSIVE_INCLUDE = T.let(T.unsafe(nil), String)
2997
2655
 
2998
- # source://rack//lib/rack/constants.rb#59
2656
+ # source://rack//lib/rack/constants.rb#62
2999
2657
  Rack::RACK_REQUEST_COOKIE_HASH = T.let(T.unsafe(nil), String)
3000
2658
 
3001
- # source://rack//lib/rack/constants.rb#60
2659
+ # source://rack//lib/rack/constants.rb#63
3002
2660
  Rack::RACK_REQUEST_COOKIE_STRING = T.let(T.unsafe(nil), String)
3003
2661
 
3004
- # source://rack//lib/rack/constants.rb#58
2662
+ # source://rack//lib/rack/constants.rb#61
3005
2663
  Rack::RACK_REQUEST_FORM_ERROR = T.let(T.unsafe(nil), String)
3006
2664
 
3007
- # source://rack//lib/rack/constants.rb#56
2665
+ # source://rack//lib/rack/constants.rb#58
3008
2666
  Rack::RACK_REQUEST_FORM_HASH = T.let(T.unsafe(nil), String)
3009
2667
 
3010
- # source://rack//lib/rack/constants.rb#55
2668
+ # source://rack//lib/rack/constants.rb#57
3011
2669
  Rack::RACK_REQUEST_FORM_INPUT = T.let(T.unsafe(nil), String)
3012
2670
 
3013
- # source://rack//lib/rack/constants.rb#57
2671
+ # source://rack//lib/rack/constants.rb#59
2672
+ Rack::RACK_REQUEST_FORM_PAIRS = T.let(T.unsafe(nil), String)
2673
+
2674
+ # source://rack//lib/rack/constants.rb#60
3014
2675
  Rack::RACK_REQUEST_FORM_VARS = T.let(T.unsafe(nil), String)
3015
2676
 
3016
- # source://rack//lib/rack/constants.rb#61
2677
+ # source://rack//lib/rack/constants.rb#64
3017
2678
  Rack::RACK_REQUEST_QUERY_HASH = T.let(T.unsafe(nil), String)
3018
2679
 
3019
- # source://rack//lib/rack/constants.rb#62
2680
+ # source://rack//lib/rack/constants.rb#65
3020
2681
  Rack::RACK_REQUEST_QUERY_STRING = T.let(T.unsafe(nil), String)
3021
2682
 
3022
- # source://rack//lib/rack/constants.rb#54
2683
+ # source://rack//lib/rack/constants.rb#56
3023
2684
  Rack::RACK_RESPONSE_FINISHED = T.let(T.unsafe(nil), String)
3024
2685
 
3025
- # source://rack//lib/rack/constants.rb#45
2686
+ # source://rack//lib/rack/constants.rb#47
3026
2687
  Rack::RACK_SESSION = T.let(T.unsafe(nil), String)
3027
2688
 
3028
- # source://rack//lib/rack/constants.rb#46
2689
+ # source://rack//lib/rack/constants.rb#48
3029
2690
  Rack::RACK_SESSION_OPTIONS = T.let(T.unsafe(nil), String)
3030
2691
 
3031
- # source://rack//lib/rack/constants.rb#47
2692
+ # source://rack//lib/rack/constants.rb#49
3032
2693
  Rack::RACK_SHOWSTATUS_DETAIL = T.let(T.unsafe(nil), String)
3033
2694
 
3034
- # source://rack//lib/rack/constants.rb#41
2695
+ # source://rack//lib/rack/constants.rb#42
3035
2696
  Rack::RACK_TEMPFILES = T.let(T.unsafe(nil), String)
3036
2697
 
3037
- # source://rack//lib/rack/constants.rb#48
2698
+ # source://rack//lib/rack/constants.rb#50
3038
2699
  Rack::RACK_URL_SCHEME = T.let(T.unsafe(nil), String)
3039
2700
 
3040
2701
  # Rack environment variables
3041
2702
  #
3042
- # source://rack//lib/rack/constants.rb#40
2703
+ # source://rack//lib/rack/constants.rb#41
3043
2704
  Rack::RACK_VERSION = T.let(T.unsafe(nil), String)
3044
2705
 
3045
- # source://rack//lib/rack/version.rb#28
2706
+ # source://rack//lib/rack/version.rb#15
3046
2707
  Rack::RELEASE = T.let(T.unsafe(nil), String)
3047
2708
 
3048
2709
  # source://rack//lib/rack/constants.rb#9
@@ -3294,25 +2955,13 @@ module Rack::Request::Helpers
3294
2955
  # This method support both application/x-www-form-urlencoded and
3295
2956
  # multipart/form-data.
3296
2957
  #
3297
- # source://rack//lib/rack/request.rb#498
2958
+ # source://rack//lib/rack/request.rb#503
3298
2959
  def POST; end
3299
2960
 
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
2961
+ # source://rack//lib/rack/request.rb#607
3313
2962
  def accept_encoding; end
3314
2963
 
3315
- # source://rack//lib/rack/request.rb#600
2964
+ # source://rack//lib/rack/request.rb#611
3316
2965
  def accept_language; end
3317
2966
 
3318
2967
  # The authority of the incoming request as defined by RFC3976.
@@ -3324,7 +2973,7 @@ module Rack::Request::Helpers
3324
2973
  # source://rack//lib/rack/request.rb#266
3325
2974
  def authority; end
3326
2975
 
3327
- # source://rack//lib/rack/request.rb#579
2976
+ # source://rack//lib/rack/request.rb#590
3328
2977
  def base_url; end
3329
2978
 
3330
2979
  # source://rack//lib/rack/request.rb#190
@@ -3360,7 +3009,7 @@ module Rack::Request::Helpers
3360
3009
  #
3361
3010
  # <tt>env['rack.input']</tt> is not touched.
3362
3011
  #
3363
- # source://rack//lib/rack/request.rb#574
3012
+ # source://rack//lib/rack/request.rb#585
3364
3013
  def delete_param(k); end
3365
3014
 
3366
3015
  # Determine whether the request body contains form-data by checking
@@ -3386,7 +3035,7 @@ module Rack::Request::Helpers
3386
3035
  # source://rack//lib/rack/request.rb#374
3387
3036
  def forwarded_port; end
3388
3037
 
3389
- # source://rack//lib/rack/request.rb#592
3038
+ # source://rack//lib/rack/request.rb#603
3390
3039
  def fullpath; end
3391
3040
 
3392
3041
  # Checks the HTTP request method (or verb) to see if it was of type GET
@@ -3467,7 +3116,7 @@ module Rack::Request::Helpers
3467
3116
  #
3468
3117
  # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
3469
3118
  #
3470
- # source://rack//lib/rack/request.rb#545
3119
+ # source://rack//lib/rack/request.rb#556
3471
3120
  def params; end
3472
3121
 
3473
3122
  # Determine whether the request body contains data by checking
@@ -3485,7 +3134,7 @@ module Rack::Request::Helpers
3485
3134
  # source://rack//lib/rack/request.rb#235
3486
3135
  def patch?; end
3487
3136
 
3488
- # source://rack//lib/rack/request.rb#588
3137
+ # source://rack//lib/rack/request.rb#599
3489
3138
  def path; end
3490
3139
 
3491
3140
  # source://rack//lib/rack/request.rb#194
@@ -3568,7 +3217,7 @@ module Rack::Request::Helpers
3568
3217
 
3569
3218
  # @return [Boolean]
3570
3219
  #
3571
- # source://rack//lib/rack/request.rb#604
3220
+ # source://rack//lib/rack/request.rb#615
3572
3221
  def trusted_proxy?(ip); end
3573
3222
 
3574
3223
  # Checks the HTTP request method (or verb) to see if it was of type UNLINK
@@ -3584,12 +3233,12 @@ module Rack::Request::Helpers
3584
3233
  #
3585
3234
  # <tt>env['rack.input']</tt> is not touched.
3586
3235
  #
3587
- # source://rack//lib/rack/request.rb#554
3236
+ # source://rack//lib/rack/request.rb#565
3588
3237
  def update_param(k, v); end
3589
3238
 
3590
3239
  # Tries to return a remake of the original request URL as a string.
3591
3240
  #
3592
- # source://rack//lib/rack/request.rb#584
3241
+ # source://rack//lib/rack/request.rb#595
3593
3242
  def url; end
3594
3243
 
3595
3244
  # source://rack//lib/rack/request.rb#201
@@ -3597,7 +3246,7 @@ module Rack::Request::Helpers
3597
3246
 
3598
3247
  # like Hash#values_at
3599
3248
  #
3600
- # source://rack//lib/rack/request.rb#625
3249
+ # source://rack//lib/rack/request.rb#620
3601
3250
  def values_at(*keys); end
3602
3251
 
3603
3252
  # @return [Boolean]
@@ -3607,54 +3256,57 @@ module Rack::Request::Helpers
3607
3256
 
3608
3257
  private
3609
3258
 
3610
- # source://rack//lib/rack/request.rb#757
3259
+ # source://rack//lib/rack/request.rb#776
3611
3260
  def allowed_scheme(header); end
3612
3261
 
3613
- # source://rack//lib/rack/request.rb#631
3262
+ # source://rack//lib/rack/request.rb#628
3614
3263
  def default_session; end
3615
3264
 
3616
- # source://rack//lib/rack/request.rb#761
3265
+ # source://rack//lib/rack/request.rb#684
3266
+ def expand_param_pairs(pairs, query_parser = T.unsafe(nil)); end
3267
+
3268
+ # source://rack//lib/rack/request.rb#780
3617
3269
  def forwarded_priority; end
3618
3270
 
3619
- # source://rack//lib/rack/request.rb#733
3271
+ # source://rack//lib/rack/request.rb#752
3620
3272
  def forwarded_scheme; end
3621
3273
 
3622
3274
  # Get an array of values set in the RFC 7239 `Forwarded` request header.
3623
3275
  #
3624
- # source://rack//lib/rack/request.rb#659
3276
+ # source://rack//lib/rack/request.rb#668
3625
3277
  def get_http_forwarded(token); end
3626
3278
 
3627
- # source://rack//lib/rack/request.rb#647
3279
+ # source://rack//lib/rack/request.rb#644
3628
3280
  def parse_http_accept_header(header); end
3629
3281
 
3630
- # source://rack//lib/rack/request.rb#671
3282
+ # source://rack//lib/rack/request.rb#680
3631
3283
  def parse_multipart; end
3632
3284
 
3633
- # source://rack//lib/rack/request.rb#667
3285
+ # source://rack//lib/rack/request.rb#676
3634
3286
  def parse_query(qs, d = T.unsafe(nil)); end
3635
3287
 
3636
- # source://rack//lib/rack/request.rb#663
3288
+ # source://rack//lib/rack/request.rb#672
3637
3289
  def query_parser; end
3638
3290
 
3639
- # source://rack//lib/rack/request.rb#724
3291
+ # source://rack//lib/rack/request.rb#743
3640
3292
  def reject_trusted_ip_addresses(ip_addresses); end
3641
3293
 
3642
- # source://rack//lib/rack/request.rb#718
3294
+ # source://rack//lib/rack/request.rb#737
3643
3295
  def split_authority(authority); end
3644
3296
 
3645
- # source://rack//lib/rack/request.rb#675
3297
+ # source://rack//lib/rack/request.rb#694
3646
3298
  def split_header(value); end
3647
3299
 
3648
3300
  # Assist with compatibility when processing `X-Forwarded-For`.
3649
3301
  #
3650
- # source://rack//lib/rack/request.rb#634
3302
+ # source://rack//lib/rack/request.rb#631
3651
3303
  def wrap_ipv6(host); end
3652
3304
 
3653
- # source://rack//lib/rack/request.rb#765
3305
+ # source://rack//lib/rack/request.rb#784
3654
3306
  def x_forwarded_proto_priority; end
3655
3307
  end
3656
3308
 
3657
- # source://rack//lib/rack/request.rb#703
3309
+ # source://rack//lib/rack/request.rb#722
3658
3310
  Rack::Request::Helpers::AUTHORITY = T.let(T.unsafe(nil), Regexp)
3659
3311
 
3660
3312
  # Default ports depending on scheme. Used to decide whether or not
@@ -3670,7 +3322,7 @@ Rack::Request::Helpers::DEFAULT_PORTS = T.let(T.unsafe(nil), Hash)
3670
3322
  # source://rack//lib/rack/request.rb#153
3671
3323
  Rack::Request::Helpers::FORM_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
3672
3324
 
3673
- # source://rack//lib/rack/request.rb#728
3325
+ # source://rack//lib/rack/request.rb#747
3674
3326
  Rack::Request::Helpers::FORWARDED_SCHEME_HEADERS = T.let(T.unsafe(nil), Hash)
3675
3327
 
3676
3328
  # source://rack//lib/rack/request.rb#176
@@ -3755,17 +3407,17 @@ class Rack::Response
3755
3407
  # @yield [_self]
3756
3408
  # @yieldparam _self [Rack::Response] the object that the method was called on
3757
3409
  #
3758
- # source://rack//lib/rack/response.rb#61
3410
+ # source://rack//lib/rack/response.rb#54
3759
3411
  def initialize(body = T.unsafe(nil), status = T.unsafe(nil), headers = T.unsafe(nil)); end
3760
3412
 
3761
3413
  # @raise [ArgumentError]
3762
3414
  #
3763
- # source://rack//lib/rack/response.rb#163
3415
+ # source://rack//lib/rack/response.rb#164
3764
3416
  def [](key); end
3765
3417
 
3766
3418
  # @raise [ArgumentError]
3767
3419
  #
3768
- # source://rack//lib/rack/response.rb#167
3420
+ # source://rack//lib/rack/response.rb#168
3769
3421
  def []=(key, value); end
3770
3422
 
3771
3423
  # Returns the value of attribute body.
@@ -3782,23 +3434,23 @@ class Rack::Response
3782
3434
 
3783
3435
  # @return [Boolean]
3784
3436
  #
3785
- # source://rack//lib/rack/response.rb#101
3437
+ # source://rack//lib/rack/response.rb#95
3786
3438
  def chunked?; end
3787
3439
 
3788
- # source://rack//lib/rack/response.rb#151
3440
+ # source://rack//lib/rack/response.rb#152
3789
3441
  def close; end
3790
3442
 
3791
3443
  # @raise [ArgumentError]
3792
3444
  #
3793
- # source://rack//lib/rack/response.rb#171
3445
+ # source://rack//lib/rack/response.rb#172
3794
3446
  def delete_header(key); end
3795
3447
 
3796
- # source://rack//lib/rack/response.rb#131
3448
+ # source://rack//lib/rack/response.rb#130
3797
3449
  def each(&callback); end
3798
3450
 
3799
3451
  # @return [Boolean]
3800
3452
  #
3801
- # source://rack//lib/rack/response.rb#155
3453
+ # source://rack//lib/rack/response.rb#156
3802
3454
  def empty?; end
3803
3455
 
3804
3456
  # Generate a response array consistent with the requirements of the SPEC.
@@ -3806,25 +3458,20 @@ class Rack::Response
3806
3458
  #
3807
3459
  # @return [Array] a 3-tuple suitable of `[status, headers, body]`
3808
3460
  #
3809
- # source://rack//lib/rack/response.rb#113
3461
+ # source://rack//lib/rack/response.rb#107
3810
3462
  def finish(&block); end
3811
3463
 
3812
3464
  # @raise [ArgumentError]
3813
3465
  #
3814
- # source://rack//lib/rack/response.rb#163
3466
+ # source://rack//lib/rack/response.rb#164
3815
3467
  def get_header(key); end
3816
3468
 
3817
3469
  # @raise [ArgumentError]
3818
3470
  # @return [Boolean]
3819
3471
  #
3820
- # source://rack//lib/rack/response.rb#159
3472
+ # source://rack//lib/rack/response.rb#160
3821
3473
  def has_header?(key); end
3822
3474
 
3823
- # Deprecated, use headers instead.
3824
- #
3825
- # source://rack//lib/rack/response.rb#35
3826
- def header; end
3827
-
3828
3475
  # Returns the value of attribute headers.
3829
3476
  #
3830
3477
  # source://rack//lib/rack/response.rb#32
@@ -3844,15 +3491,15 @@ class Rack::Response
3844
3491
 
3845
3492
  # @return [Boolean]
3846
3493
  #
3847
- # source://rack//lib/rack/response.rb#105
3494
+ # source://rack//lib/rack/response.rb#99
3848
3495
  def no_entity_body?; end
3849
3496
 
3850
- # source://rack//lib/rack/response.rb#96
3497
+ # source://rack//lib/rack/response.rb#90
3851
3498
  def redirect(target, status = T.unsafe(nil)); end
3852
3499
 
3853
3500
  # @raise [ArgumentError]
3854
3501
  #
3855
- # source://rack//lib/rack/response.rb#167
3502
+ # source://rack//lib/rack/response.rb#168
3856
3503
  def set_header(key, value); end
3857
3504
 
3858
3505
  # Returns the value of attribute status.
@@ -3873,14 +3520,16 @@ class Rack::Response
3873
3520
  #
3874
3521
  # @return [Array] a 3-tuple suitable of `[status, headers, body]`
3875
3522
  #
3876
- # source://rack//lib/rack/response.rb#113
3523
+ # source://rack//lib/rack/response.rb#107
3877
3524
  def to_a(&block); end
3878
3525
 
3879
- # Append to body and update content-length.
3526
+ # Append a chunk to the response body.
3527
+ #
3528
+ # Converts the response into a buffered response if it wasn't already.
3880
3529
  #
3881
3530
  # NOTE: Do not mix #write and direct #body access!
3882
3531
  #
3883
- # source://rack//lib/rack/response.rb#145
3532
+ # source://rack//lib/rack/response.rb#146
3884
3533
  def write(chunk); end
3885
3534
 
3886
3535
  class << self
@@ -3892,11 +3541,11 @@ end
3892
3541
  # source://rack//lib/rack/response.rb#28
3893
3542
  Rack::Response::CHUNKED = T.let(T.unsafe(nil), String)
3894
3543
 
3895
- # source://rack//lib/rack/response.rb#179
3544
+ # source://rack//lib/rack/response.rb#180
3896
3545
  module Rack::Response::Helpers
3897
3546
  # @return [Boolean]
3898
3547
  #
3899
- # source://rack//lib/rack/response.rb#190
3548
+ # source://rack//lib/rack/response.rb#191
3900
3549
  def accepted?; end
3901
3550
 
3902
3551
  # Add a header that may have multiple values.
@@ -3911,12 +3560,12 @@ module Rack::Response::Helpers
3911
3560
  #
3912
3561
  # @raise [ArgumentError]
3913
3562
  #
3914
- # source://rack//lib/rack/response.rb#218
3563
+ # source://rack//lib/rack/response.rb#219
3915
3564
  def add_header(key, value); end
3916
3565
 
3917
3566
  # @return [Boolean]
3918
3567
  #
3919
- # source://rack//lib/rack/response.rb#193
3568
+ # source://rack//lib/rack/response.rb#194
3920
3569
  def bad_request?; end
3921
3570
 
3922
3571
  # Specify that the content should be cached.
@@ -3925,210 +3574,219 @@ module Rack::Response::Helpers
3925
3574
  # @param duration [Integer] The number of seconds until the cache expires.
3926
3575
  # @param directive [Hash] a customizable set of options
3927
3576
  #
3928
- # source://rack//lib/rack/response.rb#306
3577
+ # source://rack//lib/rack/response.rb#307
3929
3578
  def cache!(duration = T.unsafe(nil), directive: T.unsafe(nil)); end
3930
3579
 
3931
- # source://rack//lib/rack/response.rb#289
3580
+ # source://rack//lib/rack/response.rb#290
3932
3581
  def cache_control; end
3933
3582
 
3934
- # source://rack//lib/rack/response.rb#293
3583
+ # source://rack//lib/rack/response.rb#294
3935
3584
  def cache_control=(value); end
3936
3585
 
3937
3586
  # @return [Boolean]
3938
3587
  #
3939
- # source://rack//lib/rack/response.rb#185
3588
+ # source://rack//lib/rack/response.rb#186
3940
3589
  def client_error?; end
3941
3590
 
3942
- # source://rack//lib/rack/response.rb#256
3591
+ # source://rack//lib/rack/response.rb#257
3943
3592
  def content_length; end
3944
3593
 
3945
3594
  # Get the content type of the response.
3946
3595
  #
3947
- # source://rack//lib/rack/response.rb#239
3596
+ # source://rack//lib/rack/response.rb#240
3948
3597
  def content_type; end
3949
3598
 
3950
3599
  # Set the content type of the response.
3951
3600
  #
3952
- # source://rack//lib/rack/response.rb#244
3601
+ # source://rack//lib/rack/response.rb#245
3953
3602
  def content_type=(content_type); end
3954
3603
 
3955
3604
  # @return [Boolean]
3956
3605
  #
3957
- # source://rack//lib/rack/response.rb#189
3606
+ # source://rack//lib/rack/response.rb#190
3958
3607
  def created?; end
3959
3608
 
3960
- # source://rack//lib/rack/response.rb#273
3609
+ # source://rack//lib/rack/response.rb#274
3961
3610
  def delete_cookie(key, value = T.unsafe(nil)); end
3962
3611
 
3963
3612
  # Specifies that the content shouldn't be cached. Overrides `cache!` if already called.
3964
3613
  #
3965
- # source://rack//lib/rack/response.rb#298
3614
+ # source://rack//lib/rack/response.rb#299
3966
3615
  def do_not_cache!; end
3967
3616
 
3968
- # source://rack//lib/rack/response.rb#313
3617
+ # source://rack//lib/rack/response.rb#314
3969
3618
  def etag; end
3970
3619
 
3971
- # source://rack//lib/rack/response.rb#317
3620
+ # source://rack//lib/rack/response.rb#318
3972
3621
  def etag=(value); end
3973
3622
 
3974
3623
  # @return [Boolean]
3975
3624
  #
3976
- # source://rack//lib/rack/response.rb#195
3625
+ # source://rack//lib/rack/response.rb#196
3977
3626
  def forbidden?; end
3978
3627
 
3979
3628
  # @return [Boolean]
3980
3629
  #
3981
- # source://rack//lib/rack/response.rb#205
3630
+ # source://rack//lib/rack/response.rb#206
3982
3631
  def include?(header); end
3983
3632
 
3984
3633
  # @return [Boolean]
3985
3634
  #
3986
- # source://rack//lib/rack/response.rb#182
3635
+ # source://rack//lib/rack/response.rb#183
3987
3636
  def informational?; end
3988
3637
 
3989
3638
  # @return [Boolean]
3990
3639
  #
3991
- # source://rack//lib/rack/response.rb#180
3640
+ # source://rack//lib/rack/response.rb#181
3992
3641
  def invalid?; end
3993
3642
 
3994
- # source://rack//lib/rack/response.rb#261
3643
+ # source://rack//lib/rack/response.rb#262
3995
3644
  def location; end
3996
3645
 
3997
- # source://rack//lib/rack/response.rb#265
3646
+ # source://rack//lib/rack/response.rb#266
3998
3647
  def location=(location); end
3999
3648
 
4000
- # source://rack//lib/rack/response.rb#248
3649
+ # source://rack//lib/rack/response.rb#249
4001
3650
  def media_type; end
4002
3651
 
4003
- # source://rack//lib/rack/response.rb#252
3652
+ # source://rack//lib/rack/response.rb#253
4004
3653
  def media_type_params; end
4005
3654
 
4006
3655
  # @return [Boolean]
4007
3656
  #
4008
- # source://rack//lib/rack/response.rb#197
3657
+ # source://rack//lib/rack/response.rb#198
4009
3658
  def method_not_allowed?; end
4010
3659
 
4011
3660
  # @return [Boolean]
4012
3661
  #
4013
- # source://rack//lib/rack/response.rb#192
3662
+ # source://rack//lib/rack/response.rb#193
4014
3663
  def moved_permanently?; end
4015
3664
 
4016
3665
  # @return [Boolean]
4017
3666
  #
4018
- # source://rack//lib/rack/response.rb#191
3667
+ # source://rack//lib/rack/response.rb#192
4019
3668
  def no_content?; end
4020
3669
 
4021
3670
  # @return [Boolean]
4022
3671
  #
4023
- # source://rack//lib/rack/response.rb#198
3672
+ # source://rack//lib/rack/response.rb#199
4024
3673
  def not_acceptable?; end
4025
3674
 
4026
3675
  # @return [Boolean]
4027
3676
  #
4028
- # source://rack//lib/rack/response.rb#196
3677
+ # source://rack//lib/rack/response.rb#197
4029
3678
  def not_found?; end
4030
3679
 
4031
3680
  # @return [Boolean]
4032
3681
  #
4033
- # source://rack//lib/rack/response.rb#188
3682
+ # source://rack//lib/rack/response.rb#189
4034
3683
  def ok?; end
4035
3684
 
4036
3685
  # @return [Boolean]
4037
3686
  #
4038
- # source://rack//lib/rack/response.rb#200
3687
+ # source://rack//lib/rack/response.rb#201
4039
3688
  def precondition_failed?; end
4040
3689
 
4041
3690
  # @return [Boolean]
4042
3691
  #
4043
- # source://rack//lib/rack/response.rb#203
3692
+ # source://rack//lib/rack/response.rb#204
4044
3693
  def redirect?; end
4045
3694
 
4046
3695
  # @return [Boolean]
4047
3696
  #
4048
- # source://rack//lib/rack/response.rb#184
3697
+ # source://rack//lib/rack/response.rb#185
4049
3698
  def redirection?; end
4050
3699
 
4051
3700
  # @return [Boolean]
4052
3701
  #
4053
- # source://rack//lib/rack/response.rb#199
3702
+ # source://rack//lib/rack/response.rb#200
4054
3703
  def request_timeout?; end
4055
3704
 
4056
3705
  # @return [Boolean]
4057
3706
  #
4058
- # source://rack//lib/rack/response.rb#186
3707
+ # source://rack//lib/rack/response.rb#187
4059
3708
  def server_error?; end
4060
3709
 
4061
- # source://rack//lib/rack/response.rb#269
3710
+ # source://rack//lib/rack/response.rb#270
4062
3711
  def set_cookie(key, value); end
4063
3712
 
4064
- # source://rack//lib/rack/response.rb#281
3713
+ # source://rack//lib/rack/response.rb#282
4065
3714
  def set_cookie_header; end
4066
3715
 
4067
- # source://rack//lib/rack/response.rb#285
3716
+ # source://rack//lib/rack/response.rb#286
4068
3717
  def set_cookie_header=(value); end
4069
3718
 
4070
3719
  # @return [Boolean]
4071
3720
  #
4072
- # source://rack//lib/rack/response.rb#183
3721
+ # source://rack//lib/rack/response.rb#184
4073
3722
  def successful?; end
4074
3723
 
4075
3724
  # @return [Boolean]
4076
3725
  #
4077
- # source://rack//lib/rack/response.rb#194
3726
+ # source://rack//lib/rack/response.rb#195
4078
3727
  def unauthorized?; end
4079
3728
 
4080
3729
  # @return [Boolean]
4081
3730
  #
4082
- # source://rack//lib/rack/response.rb#201
3731
+ # source://rack//lib/rack/response.rb#202
4083
3732
  def unprocessable?; end
4084
3733
 
4085
3734
  protected
4086
3735
 
4087
- # source://rack//lib/rack/response.rb#353
3736
+ # source://rack//lib/rack/response.rb#359
4088
3737
  def append(chunk); end
4089
3738
 
4090
- # source://rack//lib/rack/response.rb#323
3739
+ # Convert the body of this response into an internally buffered Array if possible.
3740
+ #
3741
+ # `@buffered` is a ternary value which indicates whether the body is buffered. It can be:
3742
+ # * `nil` - The body has not been buffered yet.
3743
+ # * `true` - The body is buffered as an Array instance.
3744
+ # * `false` - The body is not buffered and cannot be buffered.
3745
+ #
3746
+ # @return [Boolean] whether the body is buffered as an Array instance.
3747
+ #
3748
+ # source://rack//lib/rack/response.rb#332
4091
3749
  def buffered_body!; end
4092
3750
  end
4093
3751
 
4094
- # source://rack//lib/rack/response.rb#367
3752
+ # source://rack//lib/rack/response.rb#375
4095
3753
  class Rack::Response::Raw
4096
3754
  include ::Rack::Response::Helpers
4097
3755
 
4098
3756
  # @return [Raw] a new instance of Raw
4099
3757
  #
4100
- # source://rack//lib/rack/response.rb#373
3758
+ # source://rack//lib/rack/response.rb#381
4101
3759
  def initialize(status, headers); end
4102
3760
 
4103
- # source://rack//lib/rack/response.rb#390
3761
+ # source://rack//lib/rack/response.rb#398
4104
3762
  def delete_header(key); end
4105
3763
 
4106
- # source://rack//lib/rack/response.rb#382
3764
+ # source://rack//lib/rack/response.rb#390
4107
3765
  def get_header(key); end
4108
3766
 
4109
3767
  # @return [Boolean]
4110
3768
  #
4111
- # source://rack//lib/rack/response.rb#378
3769
+ # source://rack//lib/rack/response.rb#386
4112
3770
  def has_header?(key); end
4113
3771
 
4114
3772
  # Returns the value of attribute headers.
4115
3773
  #
4116
- # source://rack//lib/rack/response.rb#370
3774
+ # source://rack//lib/rack/response.rb#378
4117
3775
  def headers; end
4118
3776
 
4119
- # source://rack//lib/rack/response.rb#386
3777
+ # source://rack//lib/rack/response.rb#394
4120
3778
  def set_header(key, value); end
4121
3779
 
4122
3780
  # Returns the value of attribute status.
4123
3781
  #
4124
- # source://rack//lib/rack/response.rb#371
3782
+ # source://rack//lib/rack/response.rb#379
4125
3783
  def status; end
4126
3784
 
4127
3785
  # Sets the attribute status
4128
3786
  #
4129
3787
  # @param value the value to set the attribute status to.
4130
3788
  #
4131
- # source://rack//lib/rack/response.rb#371
3789
+ # source://rack//lib/rack/response.rb#379
4132
3790
  def status=(_arg0); end
4133
3791
  end
4134
3792
 
@@ -4359,45 +4017,144 @@ end
4359
4017
  # Be careful when you use this on public-facing sites as it could
4360
4018
  # reveal information helpful to attackers.
4361
4019
  #
4362
- # source://rack//lib/rack/show_exceptions.rb#19
4020
+ # source://rack//lib/rack/show_exceptions.rb#18
4363
4021
  class Rack::ShowExceptions
4364
4022
  # @return [ShowExceptions] a new instance of ShowExceptions
4365
4023
  #
4366
- # source://rack//lib/rack/show_exceptions.rb#22
4024
+ # source://rack//lib/rack/show_exceptions.rb#26
4367
4025
  def initialize(app); end
4368
4026
 
4369
- # source://rack//lib/rack/show_exceptions.rb#26
4027
+ # source://rack//lib/rack/show_exceptions.rb#30
4370
4028
  def call(env); end
4371
4029
 
4372
- # source://rack//lib/rack/show_exceptions.rb#61
4030
+ # source://rack//lib/rack/show_exceptions.rb#65
4373
4031
  def dump_exception(exception); end
4374
4032
 
4375
- # source://rack//lib/rack/show_exceptions.rb#112
4033
+ # source://rack//lib/rack/show_exceptions.rb#116
4376
4034
  def h(obj); end
4377
4035
 
4378
4036
  # @return [Boolean]
4379
4037
  #
4380
- # source://rack//lib/rack/show_exceptions.rb#52
4038
+ # source://rack//lib/rack/show_exceptions.rb#56
4381
4039
  def prefers_plaintext?(env); end
4382
4040
 
4383
- # source://rack//lib/rack/show_exceptions.rb#72
4041
+ # source://rack//lib/rack/show_exceptions.rb#76
4384
4042
  def pretty(env, exception); end
4385
4043
 
4386
- # source://rack//lib/rack/show_exceptions.rb#108
4044
+ # source://rack//lib/rack/show_exceptions.rb#112
4387
4045
  def template; end
4388
4046
 
4389
4047
  private
4390
4048
 
4391
4049
  # @return [Boolean]
4392
4050
  #
4393
- # source://rack//lib/rack/show_exceptions.rb#56
4051
+ # source://rack//lib/rack/show_exceptions.rb#60
4394
4052
  def accepts_html?(env); end
4395
4053
  end
4396
4054
 
4397
- # source://rack//lib/rack/show_exceptions.rb#20
4055
+ # source://rack//lib/rack/show_exceptions.rb#19
4398
4056
  Rack::ShowExceptions::CONTEXT = T.let(T.unsafe(nil), Integer)
4399
4057
 
4400
- # source://rack//lib/rack/show_exceptions.rb#127
4058
+ # source://rack//lib/rack/show_exceptions.rb#21
4059
+ class Rack::ShowExceptions::Frame < ::Struct
4060
+ # Returns the value of attribute context_line
4061
+ #
4062
+ # @return [Object] the current value of context_line
4063
+ def context_line; end
4064
+
4065
+ # Sets the attribute context_line
4066
+ #
4067
+ # @param value [Object] the value to set the attribute context_line to.
4068
+ # @return [Object] the newly set value
4069
+ def context_line=(_); end
4070
+
4071
+ # Returns the value of attribute filename
4072
+ #
4073
+ # @return [Object] the current value of filename
4074
+ def filename; end
4075
+
4076
+ # Sets the attribute filename
4077
+ #
4078
+ # @param value [Object] the value to set the attribute filename to.
4079
+ # @return [Object] the newly set value
4080
+ def filename=(_); end
4081
+
4082
+ # Returns the value of attribute function
4083
+ #
4084
+ # @return [Object] the current value of function
4085
+ def function; end
4086
+
4087
+ # Sets the attribute function
4088
+ #
4089
+ # @param value [Object] the value to set the attribute function to.
4090
+ # @return [Object] the newly set value
4091
+ def function=(_); end
4092
+
4093
+ # Returns the value of attribute lineno
4094
+ #
4095
+ # @return [Object] the current value of lineno
4096
+ def lineno; end
4097
+
4098
+ # Sets the attribute lineno
4099
+ #
4100
+ # @param value [Object] the value to set the attribute lineno to.
4101
+ # @return [Object] the newly set value
4102
+ def lineno=(_); end
4103
+
4104
+ # Returns the value of attribute post_context
4105
+ #
4106
+ # @return [Object] the current value of post_context
4107
+ def post_context; end
4108
+
4109
+ # Sets the attribute post_context
4110
+ #
4111
+ # @param value [Object] the value to set the attribute post_context to.
4112
+ # @return [Object] the newly set value
4113
+ def post_context=(_); end
4114
+
4115
+ # Returns the value of attribute post_context_lineno
4116
+ #
4117
+ # @return [Object] the current value of post_context_lineno
4118
+ def post_context_lineno; end
4119
+
4120
+ # Sets the attribute post_context_lineno
4121
+ #
4122
+ # @param value [Object] the value to set the attribute post_context_lineno to.
4123
+ # @return [Object] the newly set value
4124
+ def post_context_lineno=(_); end
4125
+
4126
+ # Returns the value of attribute pre_context
4127
+ #
4128
+ # @return [Object] the current value of pre_context
4129
+ def pre_context; end
4130
+
4131
+ # Sets the attribute pre_context
4132
+ #
4133
+ # @param value [Object] the value to set the attribute pre_context to.
4134
+ # @return [Object] the newly set value
4135
+ def pre_context=(_); end
4136
+
4137
+ # Returns the value of attribute pre_context_lineno
4138
+ #
4139
+ # @return [Object] the current value of pre_context_lineno
4140
+ def pre_context_lineno; end
4141
+
4142
+ # Sets the attribute pre_context_lineno
4143
+ #
4144
+ # @param value [Object] the value to set the attribute pre_context_lineno to.
4145
+ # @return [Object] the newly set value
4146
+ def pre_context_lineno=(_); end
4147
+
4148
+ class << self
4149
+ def [](*_arg0); end
4150
+ def inspect; end
4151
+ def keyword_init?; end
4152
+ def members; end
4153
+ def new(*_arg0); end
4154
+ end
4155
+ end
4156
+
4157
+ # source://rack//lib/rack/show_exceptions.rb#131
4401
4158
  Rack::ShowExceptions::TEMPLATE = T.let(T.unsafe(nil), ERB)
4402
4159
 
4403
4160
  # Rack::ShowStatus catches all empty responses and replaces them
@@ -4537,7 +4294,7 @@ class Rack::Static
4537
4294
  def route_file(path); end
4538
4295
  end
4539
4296
 
4540
- # source://rack//lib/rack/constants.rb#37
4297
+ # source://rack//lib/rack/constants.rb#38
4541
4298
  Rack::TRACE = T.let(T.unsafe(nil), String)
4542
4299
 
4543
4300
  # source://rack//lib/rack/constants.rb#25
@@ -4558,7 +4315,7 @@ class Rack::TempfileReaper
4558
4315
  def call(env); end
4559
4316
  end
4560
4317
 
4561
- # source://rack//lib/rack/constants.rb#36
4318
+ # source://rack//lib/rack/constants.rb#37
4562
4319
  Rack::UNLINK = T.let(T.unsafe(nil), String)
4563
4320
 
4564
4321
  # Rack::URLMap takes a hash mapping urls or paths to apps, and
@@ -4597,46 +4354,40 @@ end
4597
4354
  # Rack::Utils contains a grab-bag of useful methods for writing web
4598
4355
  # applications adopted from all kinds of Ruby libraries.
4599
4356
  #
4600
- # source://rack//lib/rack/utils.rb#19
4357
+ # source://rack//lib/rack/utils.rb#20
4601
4358
  module Rack::Utils
4602
4359
  private
4603
4360
 
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
4361
  # Return best accept value to use, based on the algorithm
4611
4362
  # in RFC 2616 Section 14. If there are multiple best
4612
4363
  # matches (same specificity and quality), the value returned
4613
4364
  # is arbitrary.
4614
4365
  #
4615
- # source://rack//lib/rack/utils.rb#174
4366
+ # source://rack//lib/rack/utils.rb#166
4616
4367
  def best_q_match(q_value_header, available_mimes); end
4617
4368
 
4618
- # source://rack//lib/rack/utils.rb#127
4369
+ # source://rack//lib/rack/utils.rb#119
4619
4370
  def build_nested_query(value, prefix = T.unsafe(nil)); end
4620
4371
 
4621
- # source://rack//lib/rack/utils.rb#117
4372
+ # source://rack//lib/rack/utils.rb#109
4622
4373
  def build_query(params); end
4623
4374
 
4624
4375
  # Parses the "Range:" header, if present, into an array of Range objects.
4625
4376
  # Returns nil if the header is missing or syntactically invalid.
4626
4377
  # Returns an empty array if none of the ranges are satisfiable.
4627
4378
  #
4628
- # source://rack//lib/rack/utils.rb#432
4379
+ # source://rack//lib/rack/utils.rb#408
4629
4380
  def byte_ranges(env, size); end
4630
4381
 
4631
- # source://rack//lib/rack/utils.rb#636
4382
+ # source://rack//lib/rack/utils.rb#608
4632
4383
  def clean_path_info(path_info); end
4633
4384
 
4634
4385
  # :nocov:
4635
4386
  #
4636
- # source://rack//lib/rack/utils.rb#98
4387
+ # source://rack//lib/rack/utils.rb#90
4637
4388
  def clock_time; end
4638
4389
 
4639
- # source://rack//lib/rack/utils.rb#384
4390
+ # source://rack//lib/rack/utils.rb#366
4640
4391
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4641
4392
 
4642
4393
  # :call-seq:
@@ -4653,7 +4404,7 @@ module Rack::Utils
4653
4404
  # delete_set_cookie_header("myname")
4654
4405
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4655
4406
  #
4656
- # source://rack//lib/rack/utils.rb#374
4407
+ # source://rack//lib/rack/utils.rb#362
4657
4408
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4658
4409
 
4659
4410
  # :call-seq:
@@ -4674,34 +4425,32 @@ module Rack::Utils
4674
4425
  # header
4675
4426
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4676
4427
  #
4677
- # source://rack//lib/rack/utils.rb#414
4428
+ # source://rack//lib/rack/utils.rb#390
4678
4429
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4679
4430
 
4680
4431
  # URI escapes. (CGI style space to +)
4681
4432
  #
4682
- # source://rack//lib/rack/utils.rb#38
4433
+ # source://rack//lib/rack/utils.rb#39
4683
4434
  def escape(s); end
4684
4435
 
4436
+ # source://rack//lib/rack/utils.rb#261
4437
+ def escape_cookie_key(key); end
4438
+
4685
4439
  # 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
4440
+ def escape_html(_arg0); end
4689
4441
 
4690
4442
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
4691
4443
  # true URI escaping.
4692
4444
  #
4693
- # source://rack//lib/rack/utils.rb#44
4445
+ # source://rack//lib/rack/utils.rb#45
4694
4446
  def escape_path(s); end
4695
4447
 
4696
- # source://rack//lib/rack/utils.rb#156
4448
+ # source://rack//lib/rack/utils.rb#148
4697
4449
  def forwarded_values(forwarded_header); end
4698
4450
 
4699
- # source://rack//lib/rack/utils.rb#436
4451
+ # source://rack//lib/rack/utils.rb#412
4700
4452
  def get_byte_ranges(http_range, size); end
4701
4453
 
4702
- # source://rack//lib/rack/utils.rb#378
4703
- def make_delete_cookie_header(header, key, value); end
4704
-
4705
4454
  # :call-seq:
4706
4455
  # parse_cookies(env) -> hash
4707
4456
  #
@@ -4711,7 +4460,7 @@ module Rack::Utils
4711
4460
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4712
4461
  # # => {'myname' => 'myvalue'}
4713
4462
  #
4714
- # source://rack//lib/rack/utils.rb#279
4463
+ # source://rack//lib/rack/utils.rb#252
4715
4464
  def parse_cookies(env); end
4716
4465
 
4717
4466
  # :call-seq:
@@ -4724,27 +4473,27 @@ module Rack::Utils
4724
4473
  # parse_cookies_header('myname=myvalue; max-age=0')
4725
4474
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4726
4475
  #
4727
- # source://rack//lib/rack/utils.rb#245
4476
+ # source://rack//lib/rack/utils.rb#233
4728
4477
  def parse_cookies_header(value); end
4729
4478
 
4730
- # source://rack//lib/rack/utils.rb#113
4479
+ # source://rack//lib/rack/utils.rb#105
4731
4480
  def parse_nested_query(qs, d = T.unsafe(nil)); end
4732
4481
 
4733
- # source://rack//lib/rack/utils.rb#109
4482
+ # source://rack//lib/rack/utils.rb#101
4734
4483
  def parse_query(qs, d = T.unsafe(nil), &unescaper); end
4735
4484
 
4736
- # source://rack//lib/rack/utils.rb#145
4485
+ # source://rack//lib/rack/utils.rb#137
4737
4486
  def q_values(q_value_header); end
4738
4487
 
4739
- # source://rack//lib/rack/utils.rb#425
4488
+ # source://rack//lib/rack/utils.rb#401
4740
4489
  def rfc2822(time); end
4741
4490
 
4742
4491
  # :nocov:
4743
4492
  #
4744
- # source://rack//lib/rack/utils.rb#476
4493
+ # source://rack//lib/rack/utils.rb#454
4745
4494
  def secure_compare(a, b); end
4746
4495
 
4747
- # source://rack//lib/rack/utils.rb#203
4496
+ # source://rack//lib/rack/utils.rb#191
4748
4497
  def select_best_encoding(available_encodings, accept_encoding); end
4749
4498
 
4750
4499
  # :call-seq:
@@ -4770,7 +4519,7 @@ module Rack::Utils
4770
4519
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
4771
4520
  # # => "myname=myvalue; max-age=10"
4772
4521
  #
4773
- # source://rack//lib/rack/utils.rb#306
4522
+ # source://rack//lib/rack/utils.rb#293
4774
4523
  def set_cookie_header(key, value); end
4775
4524
 
4776
4525
  # :call-seq:
@@ -4782,74 +4531,68 @@ module Rack::Utils
4782
4531
  # If the headers already contains a +set-cookie+ key, it will be converted
4783
4532
  # to an +Array+ if not already, and appended to.
4784
4533
  #
4785
- # source://rack//lib/rack/utils.rb#348
4534
+ # source://rack//lib/rack/utils.rb#336
4786
4535
  def set_cookie_header!(headers, key, value); end
4787
4536
 
4788
- # source://rack//lib/rack/utils.rb#626
4537
+ # source://rack//lib/rack/utils.rb#588
4789
4538
  def status_code(status); end
4790
4539
 
4791
4540
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
4792
4541
  # target encoding of the string returned, and it defaults to UTF-8
4793
4542
  #
4794
- # source://rack//lib/rack/utils.rb#56
4543
+ # source://rack//lib/rack/utils.rb#57
4795
4544
  def unescape(s, encoding = T.unsafe(nil)); end
4796
4545
 
4797
4546
  # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
4798
4547
  # unescaping query parameters or form components.
4799
4548
  #
4800
- # source://rack//lib/rack/utils.rb#50
4549
+ # source://rack//lib/rack/utils.rb#51
4801
4550
  def unescape_path(s); end
4802
4551
 
4803
- # source://rack//lib/rack/utils.rb#653
4552
+ # source://rack//lib/rack/utils.rb#625
4804
4553
  def valid_path?(path); end
4805
4554
 
4806
4555
  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
4556
  # Return best accept value to use, based on the algorithm
4814
4557
  # in RFC 2616 Section 14. If there are multiple best
4815
4558
  # matches (same specificity and quality), the value returned
4816
4559
  # is arbitrary.
4817
4560
  #
4818
- # source://rack//lib/rack/utils.rb#174
4561
+ # source://rack//lib/rack/utils.rb#166
4819
4562
  def best_q_match(q_value_header, available_mimes); end
4820
4563
 
4821
- # source://rack//lib/rack/utils.rb#127
4564
+ # source://rack//lib/rack/utils.rb#119
4822
4565
  def build_nested_query(value, prefix = T.unsafe(nil)); end
4823
4566
 
4824
- # source://rack//lib/rack/utils.rb#117
4567
+ # source://rack//lib/rack/utils.rb#109
4825
4568
  def build_query(params); end
4826
4569
 
4827
4570
  # Parses the "Range:" header, if present, into an array of Range objects.
4828
4571
  # Returns nil if the header is missing or syntactically invalid.
4829
4572
  # Returns an empty array if none of the ranges are satisfiable.
4830
4573
  #
4831
- # source://rack//lib/rack/utils.rb#432
4574
+ # source://rack//lib/rack/utils.rb#408
4832
4575
  def byte_ranges(env, size); end
4833
4576
 
4834
- # source://rack//lib/rack/utils.rb#636
4577
+ # source://rack//lib/rack/utils.rb#608
4835
4578
  def clean_path_info(path_info); end
4836
4579
 
4837
- # source://rack//lib/rack/utils.rb#98
4580
+ # source://rack//lib/rack/utils.rb#90
4838
4581
  def clock_time; end
4839
4582
 
4840
4583
  # Returns the value of attribute default_query_parser.
4841
4584
  #
4842
- # source://rack//lib/rack/utils.rb#28
4585
+ # source://rack//lib/rack/utils.rb#29
4843
4586
  def default_query_parser; end
4844
4587
 
4845
4588
  # Sets the attribute default_query_parser
4846
4589
  #
4847
4590
  # @param value the value to set the attribute default_query_parser to.
4848
4591
  #
4849
- # source://rack//lib/rack/utils.rb#28
4592
+ # source://rack//lib/rack/utils.rb#29
4850
4593
  def default_query_parser=(_arg0); end
4851
4594
 
4852
- # source://rack//lib/rack/utils.rb#384
4595
+ # source://rack//lib/rack/utils.rb#366
4853
4596
  def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
4854
4597
 
4855
4598
  # :call-seq:
@@ -4866,7 +4609,7 @@ module Rack::Utils
4866
4609
  # delete_set_cookie_header("myname")
4867
4610
  # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
4868
4611
  #
4869
- # source://rack//lib/rack/utils.rb#374
4612
+ # source://rack//lib/rack/utils.rb#362
4870
4613
  def delete_set_cookie_header(key, value = T.unsafe(nil)); end
4871
4614
 
4872
4615
  # :call-seq:
@@ -4887,82 +4630,73 @@ module Rack::Utils
4887
4630
  # header
4888
4631
  # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
4889
4632
  #
4890
- # source://rack//lib/rack/utils.rb#414
4633
+ # source://rack//lib/rack/utils.rb#390
4891
4634
  def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
4892
4635
 
4893
4636
  # URI escapes. (CGI style space to +)
4894
4637
  #
4895
- # source://rack//lib/rack/utils.rb#38
4638
+ # source://rack//lib/rack/utils.rb#39
4896
4639
  def escape(s); end
4897
4640
 
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
4641
+ # source://rack//lib/rack/utils.rb#261
4642
+ def escape_cookie_key(key); end
4643
+
4644
+ def escape_html(_arg0); end
4902
4645
 
4903
4646
  # Like URI escaping, but with %20 instead of +. Strictly speaking this is
4904
4647
  # true URI escaping.
4905
4648
  #
4906
- # source://rack//lib/rack/utils.rb#44
4649
+ # source://rack//lib/rack/utils.rb#45
4907
4650
  def escape_path(s); end
4908
4651
 
4909
- # source://rack//lib/rack/utils.rb#156
4652
+ # source://rack//lib/rack/utils.rb#148
4910
4653
  def forwarded_values(forwarded_header); end
4911
4654
 
4912
- # source://rack//lib/rack/utils.rb#436
4655
+ # source://rack//lib/rack/utils.rb#412
4913
4656
  def get_byte_ranges(http_range, size); end
4914
4657
 
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
4658
  # Returns the value of attribute multipart_file_limit.
4925
4659
  #
4926
- # source://rack//lib/rack/utils.rb#63
4660
+ # source://rack//lib/rack/utils.rb#64
4927
4661
  def multipart_file_limit; end
4928
4662
 
4929
4663
  # Sets the attribute multipart_file_limit
4930
4664
  #
4931
4665
  # @param value the value to set the attribute multipart_file_limit to.
4932
4666
  #
4933
- # source://rack//lib/rack/utils.rb#63
4667
+ # source://rack//lib/rack/utils.rb#64
4934
4668
  def multipart_file_limit=(_arg0); end
4935
4669
 
4936
4670
  # Returns the value of attribute multipart_file_limit.
4937
4671
  # multipart_part_limit is the original name of multipart_file_limit, but
4938
4672
  # the limit only counts parts with filenames.
4939
4673
  #
4940
- # source://rack//lib/rack/utils.rb#63
4674
+ # source://rack//lib/rack/utils.rb#64
4941
4675
  def multipart_part_limit; end
4942
4676
 
4943
4677
  # Sets the attribute multipart_file_limit
4944
4678
  #
4945
4679
  # @param value the value to set the attribute multipart_file_limit to.
4946
4680
  #
4947
- # source://rack//lib/rack/utils.rb#63
4681
+ # source://rack//lib/rack/utils.rb#64
4948
4682
  def multipart_part_limit=(_arg0); end
4949
4683
 
4950
4684
  # Returns the value of attribute multipart_total_part_limit.
4951
4685
  #
4952
- # source://rack//lib/rack/utils.rb#61
4686
+ # source://rack//lib/rack/utils.rb#62
4953
4687
  def multipart_total_part_limit; end
4954
4688
 
4955
4689
  # Sets the attribute multipart_total_part_limit
4956
4690
  #
4957
4691
  # @param value the value to set the attribute multipart_total_part_limit to.
4958
4692
  #
4959
- # source://rack//lib/rack/utils.rb#61
4693
+ # source://rack//lib/rack/utils.rb#62
4960
4694
  def multipart_total_part_limit=(_arg0); end
4961
4695
 
4962
- # source://rack//lib/rack/utils.rb#80
4696
+ # source://rack//lib/rack/utils.rb#81
4963
4697
  def param_depth_limit; end
4964
4698
 
4965
- # source://rack//lib/rack/utils.rb#84
4699
+ # source://rack//lib/rack/utils.rb#85
4966
4700
  def param_depth_limit=(v); end
4967
4701
 
4968
4702
  # :call-seq:
@@ -4974,7 +4708,7 @@ module Rack::Utils
4974
4708
  # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
4975
4709
  # # => {'myname' => 'myvalue'}
4976
4710
  #
4977
- # source://rack//lib/rack/utils.rb#279
4711
+ # source://rack//lib/rack/utils.rb#252
4978
4712
  def parse_cookies(env); end
4979
4713
 
4980
4714
  # :call-seq:
@@ -4987,25 +4721,25 @@ module Rack::Utils
4987
4721
  # parse_cookies_header('myname=myvalue; max-age=0')
4988
4722
  # # => {"myname"=>"myvalue", "max-age"=>"0"}
4989
4723
  #
4990
- # source://rack//lib/rack/utils.rb#245
4724
+ # source://rack//lib/rack/utils.rb#233
4991
4725
  def parse_cookies_header(value); end
4992
4726
 
4993
- # source://rack//lib/rack/utils.rb#113
4727
+ # source://rack//lib/rack/utils.rb#105
4994
4728
  def parse_nested_query(qs, d = T.unsafe(nil)); end
4995
4729
 
4996
- # source://rack//lib/rack/utils.rb#109
4730
+ # source://rack//lib/rack/utils.rb#101
4997
4731
  def parse_query(qs, d = T.unsafe(nil), &unescaper); end
4998
4732
 
4999
- # source://rack//lib/rack/utils.rb#145
4733
+ # source://rack//lib/rack/utils.rb#137
5000
4734
  def q_values(q_value_header); end
5001
4735
 
5002
- # source://rack//lib/rack/utils.rb#425
4736
+ # source://rack//lib/rack/utils.rb#401
5003
4737
  def rfc2822(time); end
5004
4738
 
5005
- # source://rack//lib/rack/utils.rb#476
4739
+ # source://rack//lib/rack/utils.rb#454
5006
4740
  def secure_compare(a, b); end
5007
4741
 
5008
- # source://rack//lib/rack/utils.rb#203
4742
+ # source://rack//lib/rack/utils.rb#191
5009
4743
  def select_best_encoding(available_encodings, accept_encoding); end
5010
4744
 
5011
4745
  # :call-seq:
@@ -5031,7 +4765,7 @@ module Rack::Utils
5031
4765
  # set_cookie_header("myname", {value: "myvalue", max_age: 10})
5032
4766
  # # => "myname=myvalue; max-age=10"
5033
4767
  #
5034
- # source://rack//lib/rack/utils.rb#306
4768
+ # source://rack//lib/rack/utils.rb#293
5035
4769
  def set_cookie_header(key, value); end
5036
4770
 
5037
4771
  # :call-seq:
@@ -5043,32 +4777,32 @@ module Rack::Utils
5043
4777
  # If the headers already contains a +set-cookie+ key, it will be converted
5044
4778
  # to an +Array+ if not already, and appended to.
5045
4779
  #
5046
- # source://rack//lib/rack/utils.rb#348
4780
+ # source://rack//lib/rack/utils.rb#336
5047
4781
  def set_cookie_header!(headers, key, value); end
5048
4782
 
5049
- # source://rack//lib/rack/utils.rb#626
4783
+ # source://rack//lib/rack/utils.rb#588
5050
4784
  def status_code(status); end
5051
4785
 
5052
4786
  # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
5053
4787
  # target encoding of the string returned, and it defaults to UTF-8
5054
4788
  #
5055
- # source://rack//lib/rack/utils.rb#56
4789
+ # source://rack//lib/rack/utils.rb#57
5056
4790
  def unescape(s, encoding = T.unsafe(nil)); end
5057
4791
 
5058
4792
  # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
5059
4793
  # unescaping query parameters or form components.
5060
4794
  #
5061
- # source://rack//lib/rack/utils.rb#50
4795
+ # source://rack//lib/rack/utils.rb#51
5062
4796
  def unescape_path(s); end
5063
4797
 
5064
4798
  # @return [Boolean]
5065
4799
  #
5066
- # source://rack//lib/rack/utils.rb#653
4800
+ # source://rack//lib/rack/utils.rb#625
5067
4801
  def valid_path?(path); end
5068
4802
  end
5069
4803
  end
5070
4804
 
5071
- # source://rack//lib/rack/utils.rb#24
4805
+ # source://rack//lib/rack/utils.rb#25
5072
4806
  Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
5073
4807
 
5074
4808
  # Context allows the use of a compatible middleware at different points
@@ -5077,107 +4811,80 @@ Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
5077
4811
  # would be the request environment. The second of which would be the rack
5078
4812
  # application that the request would be forwarded to.
5079
4813
  #
5080
- # source://rack//lib/rack/utils.rb#499
4814
+ # source://rack//lib/rack/utils.rb#477
5081
4815
  class Rack::Utils::Context
5082
4816
  # @return [Context] a new instance of Context
5083
4817
  #
5084
- # source://rack//lib/rack/utils.rb#502
4818
+ # source://rack//lib/rack/utils.rb#480
5085
4819
  def initialize(app_f, app_r); end
5086
4820
 
5087
4821
  # Returns the value of attribute app.
5088
4822
  #
5089
- # source://rack//lib/rack/utils.rb#500
4823
+ # source://rack//lib/rack/utils.rb#478
5090
4824
  def app; end
5091
4825
 
5092
- # source://rack//lib/rack/utils.rb#507
4826
+ # source://rack//lib/rack/utils.rb#485
5093
4827
  def call(env); end
5094
4828
 
5095
- # source://rack//lib/rack/utils.rb#515
4829
+ # source://rack//lib/rack/utils.rb#493
5096
4830
  def context(env, app = T.unsafe(nil)); end
5097
4831
 
5098
4832
  # Returns the value of attribute for.
5099
4833
  #
5100
- # source://rack//lib/rack/utils.rb#500
4834
+ # source://rack//lib/rack/utils.rb#478
5101
4835
  def for; end
5102
4836
 
5103
- # source://rack//lib/rack/utils.rb#511
4837
+ # source://rack//lib/rack/utils.rb#489
5104
4838
  def recontext(app); end
5105
4839
  end
5106
4840
 
5107
- # source://rack//lib/rack/utils.rb#23
4841
+ # source://rack//lib/rack/utils.rb#24
5108
4842
  Rack::Utils::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
5109
4843
 
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
4844
  # Every standard HTTP code mapped to the appropriate message.
5117
4845
  # 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,"'
4846
+ # curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv \
4847
+ # | ruby -rcsv -e "puts CSV.parse(STDIN, headers: true) \
4848
+ # .reject {|v| v['Description'] == 'Unassigned' or v['Description'].include? '(' } \
4849
+ # .map {|v| %Q/#{v['Value']} => '#{v['Description']}'/ }.join(','+?\n)"
5121
4850
  #
5122
- # source://rack//lib/rack/utils.rb#553
4851
+ # source://rack//lib/rack/utils.rb#504
5123
4852
  Rack::Utils::HTTP_STATUS_CODES = T.let(T.unsafe(nil), Hash)
5124
4853
 
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
4854
+ # source://rack//lib/rack/utils.rb#22
5152
4855
  Rack::Utils::InvalidParameterError = Rack::QueryParser::InvalidParameterError
5153
4856
 
5154
- # source://rack//lib/rack/utils.rb#25
4857
+ # source://rack//lib/rack/utils.rb#26
5155
4858
  Rack::Utils::KeySpaceConstrainedParams = Rack::QueryParser::Params
5156
4859
 
5157
- # source://rack//lib/rack/utils.rb#651
4860
+ # source://rack//lib/rack/utils.rb#623
5158
4861
  Rack::Utils::NULL_BYTE = T.let(T.unsafe(nil), String)
5159
4862
 
5160
- # source://rack//lib/rack/utils.rb#634
4863
+ # source://rack//lib/rack/utils.rb#574
4864
+ Rack::Utils::OBSOLETE_SYMBOLS_TO_STATUS_CODES = T.let(T.unsafe(nil), Hash)
4865
+
4866
+ # source://rack//lib/rack/utils.rb#582
4867
+ Rack::Utils::OBSOLETE_SYMBOL_MAPPINGS = T.let(T.unsafe(nil), Hash)
4868
+
4869
+ # source://rack//lib/rack/utils.rb#606
5161
4870
  Rack::Utils::PATH_SEPS = T.let(T.unsafe(nil), Regexp)
5162
4871
 
5163
- # source://rack//lib/rack/utils.rb#20
4872
+ # source://rack//lib/rack/utils.rb#21
5164
4873
  Rack::Utils::ParameterTypeError = Rack::QueryParser::ParameterTypeError
5165
4874
 
5166
- # source://rack//lib/rack/utils.rb#22
4875
+ # source://rack//lib/rack/utils.rb#23
5167
4876
  Rack::Utils::ParamsTooDeepError = Rack::QueryParser::ParamsTooDeepError
5168
4877
 
5169
4878
  # Responses with HTTP status codes that should not have an entity body
5170
4879
  #
5171
- # source://rack//lib/rack/utils.rb#620
4880
+ # source://rack//lib/rack/utils.rb#568
5172
4881
  Rack::Utils::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
5173
4882
 
5174
- # source://rack//lib/rack/utils.rb#622
4883
+ # source://rack//lib/rack/utils.rb#570
5175
4884
  Rack::Utils::SYMBOL_TO_STATUS_CODE = T.let(T.unsafe(nil), Hash)
5176
4885
 
5177
- # The Rack protocol version number implemented.
4886
+ # A valid cookie key according to RFC2616.
4887
+ # 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: ( ) < > @ , ; : \ " / [ ] ? = { }.
5178
4888
  #
5179
- # source://rack//lib/rack/version.rb#16
5180
- Rack::VERSION = T.let(T.unsafe(nil), Array)
5181
-
5182
- # source://rack//lib/rack/version.rb#19
5183
- Rack::VERSION_STRING = T.let(T.unsafe(nil), String)
4889
+ # source://rack//lib/rack/utils.rb#258
4890
+ Rack::Utils::VALID_COOKIE_KEY = T.let(T.unsafe(nil), Regexp)