konstruo 1.0.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 (126) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +21 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +35 -0
  8. data/Rakefile +10 -0
  9. data/lib/konstruo/mapper.rb +120 -0
  10. data/lib/konstruo/version.rb +6 -0
  11. data/lib/konstruo.rb +18 -0
  12. data/sorbet/config +4 -0
  13. data/sorbet/rbi/annotations/.gitattributes +1 -0
  14. data/sorbet/rbi/annotations/actionmailer.rbi +10 -0
  15. data/sorbet/rbi/annotations/actionpack.rbi +430 -0
  16. data/sorbet/rbi/annotations/actionview.rbi +75 -0
  17. data/sorbet/rbi/annotations/activejob.rbi +44 -0
  18. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  19. data/sorbet/rbi/annotations/activerecord.rbi +92 -0
  20. data/sorbet/rbi/annotations/activesupport.rbi +454 -0
  21. data/sorbet/rbi/annotations/globalid.rbi +30 -0
  22. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  23. data/sorbet/rbi/annotations/railties.rbi +61 -0
  24. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  25. data/sorbet/rbi/dsl/.gitattributes +1 -0
  26. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  27. data/sorbet/rbi/gems/.gitattributes +1 -0
  28. data/sorbet/rbi/gems/actioncable@7.2.1.rbi +3096 -0
  29. data/sorbet/rbi/gems/actionmailbox@7.2.1.rbi +1832 -0
  30. data/sorbet/rbi/gems/actionmailer@7.2.1.rbi +2664 -0
  31. data/sorbet/rbi/gems/actionpack@7.2.1.rbi +20536 -0
  32. data/sorbet/rbi/gems/actiontext@7.2.1.rbi +1697 -0
  33. data/sorbet/rbi/gems/actionview@7.2.1.rbi +15752 -0
  34. data/sorbet/rbi/gems/activejob@7.2.1.rbi +2828 -0
  35. data/sorbet/rbi/gems/activemodel@7.2.1.rbi +6762 -0
  36. data/sorbet/rbi/gems/activerecord@7.2.1.rbi +41433 -0
  37. data/sorbet/rbi/gems/activestorage@7.2.1.rbi +3247 -0
  38. data/sorbet/rbi/gems/activesupport@7.2.1.rbi +21142 -0
  39. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  40. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  41. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +78 -0
  42. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  43. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +11645 -0
  44. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  45. data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
  46. data/sorbet/rbi/gems/dashbrains-rubocop-config@1.0.4.rbi +9 -0
  47. data/sorbet/rbi/gems/date@3.3.4.rbi +75 -0
  48. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  49. data/sorbet/rbi/gems/drb@2.2.1.rbi +1347 -0
  50. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  51. data/sorbet/rbi/gems/globalid@1.2.1.rbi +749 -0
  52. data/sorbet/rbi/gems/i18n@1.14.5.rbi +2359 -0
  53. data/sorbet/rbi/gems/io-console@0.7.2.rbi +9 -0
  54. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  55. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  56. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  57. data/sorbet/rbi/gems/loofah@2.22.0.rbi +1081 -0
  58. data/sorbet/rbi/gems/mail@2.8.1.rbi +8658 -0
  59. data/sorbet/rbi/gems/marcel@1.0.4.rbi +239 -0
  60. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +173 -0
  61. data/sorbet/rbi/gems/minitest@5.25.1.rbi +1546 -0
  62. data/sorbet/rbi/gems/net-imap@0.4.16.rbi +10845 -0
  63. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +927 -0
  64. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
  65. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +1228 -0
  66. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  67. data/sorbet/rbi/gems/nio4r@2.7.3.rbi +293 -0
  68. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  69. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  70. data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
  71. data/sorbet/rbi/gems/prism@1.0.0.rbi +35493 -0
  72. data/sorbet/rbi/gems/psych@5.1.2.rbi +1769 -0
  73. data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
  74. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +727 -0
  75. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +747 -0
  76. data/sorbet/rbi/gems/rack@3.1.7.rbi +4902 -0
  77. data/sorbet/rbi/gems/rackup@2.1.0.rbi +390 -0
  78. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +758 -0
  79. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi +785 -0
  80. data/sorbet/rbi/gems/rails@7.2.1.rbi +9 -0
  81. data/sorbet/rbi/gems/railties@7.2.1.rbi +3824 -0
  82. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  83. data/sorbet/rbi/gems/rake@13.2.1.rbi +3046 -0
  84. data/sorbet/rbi/gems/rbi@0.2.0.rbi +4105 -0
  85. data/sorbet/rbi/gems/rdoc@6.7.0.rbi +12721 -0
  86. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  87. data/sorbet/rbi/gems/reline@0.5.10.rbi +9 -0
  88. data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11012 -0
  89. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  90. data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
  91. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  92. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  93. data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7446 -0
  94. data/sorbet/rbi/gems/rubocop-capybara@2.21.0.rbi +9 -0
  95. data/sorbet/rbi/gems/rubocop-factory_bot@2.26.1.rbi +9 -0
  96. data/sorbet/rbi/gems/rubocop-graphql@1.5.4.rbi +9 -0
  97. data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +9 -0
  98. data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
  99. data/sorbet/rbi/gems/rubocop-rails@2.26.1.rbi +9 -0
  100. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  101. data/sorbet/rbi/gems/rubocop-rspec@3.0.5.rbi +9 -0
  102. data/sorbet/rbi/gems/rubocop-rspec_rails@2.30.0.rbi +9 -0
  103. data/sorbet/rbi/gems/rubocop-sorbet@0.8.5.rbi +9 -0
  104. data/sorbet/rbi/gems/rubocop@1.66.1.rbi +58268 -0
  105. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  106. data/sorbet/rbi/gems/securerandom@0.3.1.rbi +396 -0
  107. data/sorbet/rbi/gems/spoom@1.4.2.rbi +4932 -0
  108. data/sorbet/rbi/gems/stringio@3.1.1.rbi +9 -0
  109. data/sorbet/rbi/gems/tapioca@0.16.2.rbi +3581 -0
  110. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  111. data/sorbet/rbi/gems/timeout@0.4.1.rbi +149 -0
  112. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  113. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  114. data/sorbet/rbi/gems/useragent@0.16.10.rbi +9 -0
  115. data/sorbet/rbi/gems/webrick@1.8.1.rbi +2607 -0
  116. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +993 -0
  117. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +121 -0
  118. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  119. data/sorbet/rbi/gems/yard@0.9.37.rbi +18570 -0
  120. data/sorbet/rbi/gems/zeitwerk@2.6.18.rbi +1051 -0
  121. data/sorbet/rbi/todo.rbi +6 -0
  122. data/sorbet/tapioca/config.yml +13 -0
  123. data/sorbet/tapioca/require.rb +9 -0
  124. data/tasks/bundle_update.rake +14 -0
  125. data/tasks/sorbet.rake +26 -0
  126. metadata +216 -0
@@ -0,0 +1,727 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rack-session` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rack-session`.
6
+
7
+
8
+ # source://rack-session//lib/rack/session/constants.rb#7
9
+ module Rack
10
+ class << self
11
+ # source://rack/3.1.7/lib/rack/version.rb#18
12
+ def release; end
13
+ end
14
+ end
15
+
16
+ # source://rack-session//lib/rack/session/constants.rb#8
17
+ module Rack::Session; end
18
+
19
+ # source://rack-session//lib/rack/session/abstract/id.rb#47
20
+ module Rack::Session::Abstract; end
21
+
22
+ # source://rack-session//lib/rack/session/abstract/id.rb#497
23
+ class Rack::Session::Abstract::ID < ::Rack::Session::Abstract::Persisted
24
+ # All thread safety and session destroy procedures should occur here.
25
+ # Should return a new session id or nil if options[:drop]
26
+ #
27
+ # source://rack-session//lib/rack/session/abstract/id.rb#527
28
+ def delete_session(req, sid, options); end
29
+
30
+ # All thread safety and session retrieval procedures should occur here.
31
+ # Should return [session_id, session].
32
+ # If nil is provided as the session id, generation of a new valid id
33
+ # should occur within.
34
+ #
35
+ # source://rack-session//lib/rack/session/abstract/id.rb#512
36
+ def find_session(req, sid); end
37
+
38
+ # All thread safety and session storage procedures should occur here.
39
+ # Must return the session id if the session was saved successfully, or
40
+ # false if the session could not be saved.
41
+ #
42
+ # source://rack-session//lib/rack/session/abstract/id.rb#520
43
+ def write_session(req, sid, session, options); end
44
+
45
+ class << self
46
+ # @private
47
+ #
48
+ # source://rack-session//lib/rack/session/abstract/id.rb#498
49
+ def inherited(klass); end
50
+ end
51
+ end
52
+
53
+ # ID sets up a basic framework for implementing an id based sessioning
54
+ # service. Cookies sent to the client for maintaining sessions will only
55
+ # contain an id reference. Only #find_session, #write_session and
56
+ # #delete_session are required to be overwritten.
57
+ #
58
+ # All parameters are optional.
59
+ # * :key determines the name of the cookie, by default it is
60
+ # 'rack.session'
61
+ # * :path, :domain, :expire_after, :secure, :httponly, and :same_site set
62
+ # the related cookie options as by Rack::Response#set_cookie
63
+ # * :skip will not a set a cookie in the response nor update the session state
64
+ # * :defer will not set a cookie in the response but still update the session
65
+ # state if it is used with a backend
66
+ # * :renew (implementation dependent) will prompt the generation of a new
67
+ # session id, and migration of data to be referenced at the new id. If
68
+ # :defer is set, it will be overridden and the cookie will be set.
69
+ # * :sidbits sets the number of bits in length that a generated session
70
+ # id will be.
71
+ #
72
+ # These options can be set on a per request basis, at the location of
73
+ # <tt>env['rack.session.options']</tt>. Additionally the id of the
74
+ # session can be found within the options hash at the key :id. It is
75
+ # highly not recommended to change its value.
76
+ #
77
+ # Is Rack::Utils::Context compatible.
78
+ #
79
+ # Not included by default; you must require 'rack/session/abstract/id'
80
+ # to use.
81
+ #
82
+ # source://rack-session//lib/rack/session/abstract/id.rb#239
83
+ class Rack::Session::Abstract::Persisted
84
+ # @return [Persisted] a new instance of Persisted
85
+ #
86
+ # source://rack-session//lib/rack/session/abstract/id.rb#256
87
+ def initialize(app, options = T.unsafe(nil)); end
88
+
89
+ # source://rack-session//lib/rack/session/abstract/id.rb#265
90
+ def call(env); end
91
+
92
+ # Acquires the session from the environment and the session id from
93
+ # the session options and passes them to #write_session. If successful
94
+ # and the :defer option is not true, a cookie will be added to the
95
+ # response with the session's id.
96
+ #
97
+ # source://rack-session//lib/rack/session/abstract/id.rb#379
98
+ def commit_session(req, res); end
99
+
100
+ # source://rack-session//lib/rack/session/abstract/id.rb#269
101
+ def context(env, app = T.unsafe(nil)); end
102
+
103
+ # Returns the value of attribute default_options.
104
+ #
105
+ # source://rack-session//lib/rack/session/abstract/id.rb#254
106
+ def default_options; end
107
+
108
+ # Returns the value of attribute key.
109
+ #
110
+ # source://rack-session//lib/rack/session/abstract/id.rb#254
111
+ def key; end
112
+
113
+ # Returns the value of attribute same_site.
114
+ #
115
+ # source://rack-session//lib/rack/session/abstract/id.rb#254
116
+ def same_site; end
117
+
118
+ # Returns the value of attribute sid_secure.
119
+ #
120
+ # source://rack-session//lib/rack/session/abstract/id.rb#254
121
+ def sid_secure; end
122
+
123
+ private
124
+
125
+ # Session should be committed if it was loaded, any of specific options like :renew, :drop
126
+ # or :expire_after was given and the security permissions match. Skips if skip is given.
127
+ #
128
+ # @return [Boolean]
129
+ #
130
+ # source://rack-session//lib/rack/session/abstract/id.rb#348
131
+ def commit_session?(req, session, options); end
132
+
133
+ # source://rack-session//lib/rack/session/abstract/id.rb#414
134
+ def cookie_value(data); end
135
+
136
+ # Returns the current session id from the SessionHash.
137
+ #
138
+ # source://rack-session//lib/rack/session/abstract/id.rb#334
139
+ def current_session_id(req); end
140
+
141
+ # All thread safety and session destroy procedures should occur here.
142
+ # Should return a new session id or nil if options[:drop]
143
+ #
144
+ # source://rack-session//lib/rack/session/abstract/id.rb#453
145
+ def delete_session(req, sid, options); end
146
+
147
+ # Extract session id from request object.
148
+ #
149
+ # source://rack-session//lib/rack/session/abstract/id.rb#326
150
+ def extract_session_id(request); end
151
+
152
+ # All thread safety and session retrieval procedures should occur here.
153
+ # Should return [session_id, session].
154
+ # If nil is provided as the session id, generation of a new valid id
155
+ # should occur within.
156
+ #
157
+ # source://rack-session//lib/rack/session/abstract/id.rb#438
158
+ def find_session(env, sid); end
159
+
160
+ # @return [Boolean]
161
+ #
162
+ # source://rack-session//lib/rack/session/abstract/id.rb#365
163
+ def force_options?(options); end
164
+
165
+ # @return [Boolean]
166
+ #
167
+ # source://rack-session//lib/rack/session/abstract/id.rb#361
168
+ def forced_session_update?(session, options); end
169
+
170
+ # Generate a new session id using Ruby #rand. The size of the
171
+ # session id is controlled by the :sidbits option.
172
+ # Monkey patch this to use custom methods for session id generation.
173
+ #
174
+ # source://rack-session//lib/rack/session/abstract/id.rb#294
175
+ def generate_sid(secure = T.unsafe(nil)); end
176
+
177
+ # source://rack-session//lib/rack/session/abstract/id.rb#284
178
+ def initialize_sid; end
179
+
180
+ # Extracts the session id from provided cookies and passes it and the
181
+ # environment to #find_session.
182
+ #
183
+ # source://rack-session//lib/rack/session/abstract/id.rb#318
184
+ def load_session(req); end
185
+
186
+ # @return [Boolean]
187
+ #
188
+ # source://rack-session//lib/rack/session/abstract/id.rb#357
189
+ def loaded_session?(session); end
190
+
191
+ # source://rack-session//lib/rack/session/abstract/id.rb#280
192
+ def make_request(env); end
193
+
194
+ # Sets the lazy session at 'rack.session' and places options and session
195
+ # metadata into 'rack.session.options'.
196
+ #
197
+ # source://rack-session//lib/rack/session/abstract/id.rb#307
198
+ def prepare_session(req); end
199
+
200
+ # @return [Boolean]
201
+ #
202
+ # source://rack-session//lib/rack/session/abstract/id.rb#369
203
+ def security_matches?(request, options); end
204
+
205
+ # Allow subclasses to prepare_session for different Session classes
206
+ #
207
+ # source://rack-session//lib/rack/session/abstract/id.rb#429
208
+ def session_class; end
209
+
210
+ # Check if the session exists or not.
211
+ #
212
+ # @return [Boolean]
213
+ #
214
+ # source://rack-session//lib/rack/session/abstract/id.rb#340
215
+ def session_exists?(req); end
216
+
217
+ # Sets the cookie back to the client with session id. We skip the cookie
218
+ # setting if the value didn't change (sid is the same) or expires was given.
219
+ #
220
+ # source://rack-session//lib/rack/session/abstract/id.rb#421
221
+ def set_cookie(request, response, cookie); end
222
+
223
+ # All thread safety and session storage procedures should occur here.
224
+ # Must return the session id if the session was saved successfully, or
225
+ # false if the session could not be saved.
226
+ #
227
+ # source://rack-session//lib/rack/session/abstract/id.rb#446
228
+ def write_session(req, sid, session, options); end
229
+ end
230
+
231
+ # source://rack-session//lib/rack/session/abstract/id.rb#240
232
+ Rack::Session::Abstract::Persisted::DEFAULT_OPTIONS = T.let(T.unsafe(nil), Hash)
233
+
234
+ # source://rack-session//lib/rack/session/abstract/id.rb#458
235
+ class Rack::Session::Abstract::PersistedSecure < ::Rack::Session::Abstract::Persisted
236
+ # source://rack-session//lib/rack/session/abstract/id.rb#481
237
+ def extract_session_id(*_arg0); end
238
+
239
+ # source://rack-session//lib/rack/session/abstract/id.rb#475
240
+ def generate_sid(*_arg0); end
241
+
242
+ private
243
+
244
+ # source://rack-session//lib/rack/session/abstract/id.rb#492
245
+ def cookie_value(data); end
246
+
247
+ # source://rack-session//lib/rack/session/abstract/id.rb#488
248
+ def session_class; end
249
+ end
250
+
251
+ # source://rack-session//lib/rack/session/abstract/id.rb#459
252
+ class Rack::Session::Abstract::PersistedSecure::SecureSessionHash < ::Rack::Session::Abstract::SessionHash
253
+ # source://rack-session//lib/rack/session/abstract/id.rb#460
254
+ def [](key); end
255
+ end
256
+
257
+ # SessionHash is responsible to lazily load the session from store.
258
+ #
259
+ # source://rack-session//lib/rack/session/abstract/id.rb#50
260
+ class Rack::Session::Abstract::SessionHash
261
+ include ::Enumerable
262
+
263
+ # @return [SessionHash] a new instance of SessionHash
264
+ #
265
+ # source://rack-session//lib/rack/session/abstract/id.rb#68
266
+ def initialize(store, req); end
267
+
268
+ # source://rack-session//lib/rack/session/abstract/id.rb#88
269
+ def [](key); end
270
+
271
+ # source://rack-session//lib/rack/session/abstract/id.rb#114
272
+ def []=(key, value); end
273
+
274
+ # source://rack-session//lib/rack/session/abstract/id.rb#120
275
+ def clear; end
276
+
277
+ # source://rack-session//lib/rack/session/abstract/id.rb#146
278
+ def delete(key); end
279
+
280
+ # source://rack-session//lib/rack/session/abstract/id.rb#125
281
+ def destroy; end
282
+
283
+ # source://rack-session//lib/rack/session/abstract/id.rb#93
284
+ def dig(key, *keys); end
285
+
286
+ # source://rack-session//lib/rack/session/abstract/id.rb#83
287
+ def each(&block); end
288
+
289
+ # @return [Boolean]
290
+ #
291
+ # source://rack-session//lib/rack/session/abstract/id.rb#169
292
+ def empty?; end
293
+
294
+ # @return [Boolean]
295
+ #
296
+ # source://rack-session//lib/rack/session/abstract/id.rb#159
297
+ def exists?; end
298
+
299
+ # source://rack-session//lib/rack/session/abstract/id.rb#98
300
+ def fetch(key, default = T.unsafe(nil), &block); end
301
+
302
+ # @return [Boolean]
303
+ #
304
+ # source://rack-session//lib/rack/session/abstract/id.rb#107
305
+ def has_key?(key); end
306
+
307
+ # source://rack-session//lib/rack/session/abstract/id.rb#74
308
+ def id; end
309
+
310
+ # Sets the attribute id
311
+ #
312
+ # @param value the value to set the attribute id to.
313
+ #
314
+ # source://rack-session//lib/rack/session/abstract/id.rb#52
315
+ def id=(_arg0); end
316
+
317
+ # @return [Boolean]
318
+ #
319
+ # source://rack-session//lib/rack/session/abstract/id.rb#107
320
+ def include?(key); end
321
+
322
+ # source://rack-session//lib/rack/session/abstract/id.rb#151
323
+ def inspect; end
324
+
325
+ # @return [Boolean]
326
+ #
327
+ # source://rack-session//lib/rack/session/abstract/id.rb#107
328
+ def key?(key); end
329
+
330
+ # source://rack-session//lib/rack/session/abstract/id.rb#174
331
+ def keys; end
332
+
333
+ # @return [Boolean]
334
+ #
335
+ # source://rack-session//lib/rack/session/abstract/id.rb#165
336
+ def loaded?; end
337
+
338
+ # source://rack-session//lib/rack/session/abstract/id.rb#135
339
+ def merge!(hash); end
340
+
341
+ # source://rack-session//lib/rack/session/abstract/id.rb#79
342
+ def options; end
343
+
344
+ # source://rack-session//lib/rack/session/abstract/id.rb#141
345
+ def replace(hash); end
346
+
347
+ # source://rack-session//lib/rack/session/abstract/id.rb#114
348
+ def store(key, value); end
349
+
350
+ # source://rack-session//lib/rack/session/abstract/id.rb#130
351
+ def to_hash; end
352
+
353
+ # source://rack-session//lib/rack/session/abstract/id.rb#135
354
+ def update(hash); end
355
+
356
+ # source://rack-session//lib/rack/session/abstract/id.rb#179
357
+ def values; end
358
+
359
+ private
360
+
361
+ # source://rack-session//lib/rack/session/abstract/id.rb#194
362
+ def load!; end
363
+
364
+ # source://rack-session//lib/rack/session/abstract/id.rb#186
365
+ def load_for_read!; end
366
+
367
+ # source://rack-session//lib/rack/session/abstract/id.rb#190
368
+ def load_for_write!; end
369
+
370
+ # source://rack-session//lib/rack/session/abstract/id.rb#200
371
+ def stringify_keys(other); end
372
+
373
+ class << self
374
+ # source://rack-session//lib/rack/session/abstract/id.rb#56
375
+ def find(req); end
376
+
377
+ # source://rack-session//lib/rack/session/abstract/id.rb#60
378
+ def set(req, session); end
379
+
380
+ # source://rack-session//lib/rack/session/abstract/id.rb#64
381
+ def set_options(req, options); end
382
+ end
383
+ end
384
+
385
+ # source://rack-session//lib/rack/session/abstract/id.rb#54
386
+ Rack::Session::Abstract::SessionHash::Unspecified = T.let(T.unsafe(nil), Object)
387
+
388
+ # Rack::Session::Cookie provides simple cookie based session management.
389
+ # By default, the session is a Ruby Hash that is serialized and encoded as
390
+ # a cookie set to :key (default: rack.session).
391
+ #
392
+ # This middleware accepts a :secrets option which enables encryption of
393
+ # session cookies. This option should be one or more random "secret keys"
394
+ # that are each at least 64 bytes in length. Multiple secret keys can be
395
+ # supplied in an Array, which is useful when rotating secrets.
396
+ #
397
+ # Several options are also accepted that are passed to Rack::Session::Encryptor.
398
+ # These options include:
399
+ # * :serialize_json
400
+ # Use JSON for message serialization instead of Marshal. This can be
401
+ # viewed as a security enhancement.
402
+ # * :gzip_over
403
+ # For message data over this many bytes, compress it with the deflate
404
+ # algorithm.
405
+ #
406
+ # Refer to Rack::Session::Encryptor for more details on these options.
407
+ #
408
+ # Prior to version TODO, the session hash was stored as base64 encoded
409
+ # marshalled data. When a :secret option was supplied, the integrity of the
410
+ # encoded data was protected with HMAC-SHA1. This functionality is still
411
+ # supported using a set of a legacy options.
412
+ #
413
+ # Lastly, a :coder option is also accepted. When used, both encryption and
414
+ # the legacy HMAC will be skipped. This option could create security issues
415
+ # in your application!
416
+ #
417
+ # Example:
418
+ #
419
+ # use Rack::Session::Cookie, {
420
+ # key: 'rack.session',
421
+ # domain: 'foo.com',
422
+ # path: '/',
423
+ # expire_after: 2592000,
424
+ # secrets: 'a randomly generated, raw binary string 64 bytes in size',
425
+ # }
426
+ #
427
+ # Example using legacy HMAC options:
428
+ #
429
+ # Rack::Session:Cookie.new(application, {
430
+ # # The secret used for legacy HMAC cookies, this enables the functionality
431
+ # legacy_hmac_secret: 'legacy secret',
432
+ # # legacy_hmac_coder will default to Rack::Session::Cookie::Base64::Marshal
433
+ # legacy_hmac_coder: Rack::Session::Cookie::Identity.new,
434
+ # # legacy_hmac will default to OpenSSL::Digest::SHA1
435
+ # legacy_hmac: OpenSSL::Digest::SHA256
436
+ # })
437
+ #
438
+ #
439
+ # Rack::Session::Cookie.new(application, {
440
+ # :coder => Rack::Session::Cookie::Identity.new
441
+ # })
442
+ #
443
+ #
444
+ # Rack::Session::Cookie.new(application, {
445
+ # :coder => Class.new {
446
+ # def encode(str); str.reverse; end
447
+ # def decode(str); str.reverse; end
448
+ # }.new
449
+ # })
450
+ #
451
+ # source://rack-session//lib/rack/session/cookie.rb#91
452
+ class Rack::Session::Cookie < ::Rack::Session::Abstract::PersistedSecure
453
+ # @return [Cookie] a new instance of Cookie
454
+ #
455
+ # source://rack-session//lib/rack/session/cookie.rb#159
456
+ def initialize(app, options = T.unsafe(nil)); end
457
+
458
+ # Returns the value of attribute coder.
459
+ #
460
+ # source://rack-session//lib/rack/session/cookie.rb#157
461
+ def coder; end
462
+
463
+ # Returns the value of attribute encryptors.
464
+ #
465
+ # source://rack-session//lib/rack/session/cookie.rb#157
466
+ def encryptors; end
467
+
468
+ private
469
+
470
+ # source://rack-session//lib/rack/session/cookie.rb#277
471
+ def delete_session(req, session_id, options); end
472
+
473
+ # source://rack-session//lib/rack/session/cookie.rb#292
474
+ def encode_session_data(session); end
475
+
476
+ # source://rack-session//lib/rack/session/cookie.rb#209
477
+ def extract_session_id(request); end
478
+
479
+ # source://rack-session//lib/rack/session/cookie.rb#203
480
+ def find_session(req, sid); end
481
+
482
+ # @return [Boolean]
483
+ #
484
+ # source://rack-session//lib/rack/session/cookie.rb#282
485
+ def legacy_digest_match?(data, digest); end
486
+
487
+ # source://rack-session//lib/rack/session/cookie.rb#288
488
+ def legacy_generate_hmac(data); end
489
+
490
+ # source://rack-session//lib/rack/session/cookie.rb#250
491
+ def persistent_session_id!(data, sid = T.unsafe(nil)); end
492
+
493
+ # Were consider "secure" if:
494
+ # * Encrypted cookies are enabled and one or more encryptor is
495
+ # initialized
496
+ # * The legacy HMAC option is enabled
497
+ # * Customer :coder is used, with :let_coder_handle_secure_encoding
498
+ # set to true
499
+ #
500
+ # @return [Boolean]
501
+ #
502
+ # source://rack-session//lib/rack/session/cookie.rb#306
503
+ def secure?(options); end
504
+
505
+ # source://rack-session//lib/rack/session/cookie.rb#213
506
+ def unpacked_cookie_data(request); end
507
+
508
+ # source://rack-session//lib/rack/session/cookie.rb#265
509
+ def write_session(req, session_id, session, options); end
510
+ end
511
+
512
+ # Encode session cookies as Base64
513
+ #
514
+ # source://rack-session//lib/rack/session/cookie.rb#93
515
+ class Rack::Session::Cookie::Base64
516
+ # source://rack-session//lib/rack/session/cookie.rb#98
517
+ def decode(str); end
518
+
519
+ # source://rack-session//lib/rack/session/cookie.rb#94
520
+ def encode(str); end
521
+ end
522
+
523
+ # N.B. Unlike other encoding methods, the contained objects must be a
524
+ # valid JSON composite type, either a Hash or an Array.
525
+ #
526
+ # source://rack-session//lib/rack/session/cookie.rb#116
527
+ class Rack::Session::Cookie::Base64::JSON < ::Rack::Session::Cookie::Base64
528
+ # source://rack-session//lib/rack/session/cookie.rb#121
529
+ def decode(str); end
530
+
531
+ # source://rack-session//lib/rack/session/cookie.rb#117
532
+ def encode(obj); end
533
+ end
534
+
535
+ # Encode session cookies as Marshaled Base64 data
536
+ #
537
+ # source://rack-session//lib/rack/session/cookie.rb#103
538
+ class Rack::Session::Cookie::Base64::Marshal < ::Rack::Session::Cookie::Base64
539
+ # source://rack-session//lib/rack/session/cookie.rb#108
540
+ def decode(str); end
541
+
542
+ # source://rack-session//lib/rack/session/cookie.rb#104
543
+ def encode(str); end
544
+ end
545
+
546
+ # source://rack-session//lib/rack/session/cookie.rb#127
547
+ class Rack::Session::Cookie::Base64::ZipJSON < ::Rack::Session::Cookie::Base64
548
+ # source://rack-session//lib/rack/session/cookie.rb#132
549
+ def decode(str); end
550
+
551
+ # source://rack-session//lib/rack/session/cookie.rb#128
552
+ def encode(obj); end
553
+ end
554
+
555
+ # Use no encoding for session cookies
556
+ #
557
+ # source://rack-session//lib/rack/session/cookie.rb#142
558
+ class Rack::Session::Cookie::Identity
559
+ # source://rack-session//lib/rack/session/cookie.rb#144
560
+ def decode(str); end
561
+
562
+ # source://rack-session//lib/rack/session/cookie.rb#143
563
+ def encode(str); end
564
+ end
565
+
566
+ # source://rack-session//lib/rack/session/cookie.rb#147
567
+ class Rack::Session::Cookie::Marshal
568
+ # source://rack-session//lib/rack/session/cookie.rb#152
569
+ def decode(str); end
570
+
571
+ # source://rack-session//lib/rack/session/cookie.rb#148
572
+ def encode(str); end
573
+ end
574
+
575
+ # source://rack-session//lib/rack/session/cookie.rb#256
576
+ class Rack::Session::Cookie::SessionId
577
+ # @return [SessionId] a new instance of SessionId
578
+ #
579
+ # source://rack-session//lib/rack/session/cookie.rb#259
580
+ def initialize(session_id, cookie_value); end
581
+
582
+ # Returns the value of attribute cookie_value.
583
+ #
584
+ # source://rack-session//lib/rack/session/cookie.rb#257
585
+ def cookie_value; end
586
+ end
587
+
588
+ # source://rack-session//lib/rack/session/encryptor.rb#16
589
+ class Rack::Session::Encryptor
590
+ # The secret String must be at least 64 bytes in size. The first 32 bytes
591
+ # will be used for the encryption cipher key. The remainder will be used
592
+ # for an HMAC key.
593
+ #
594
+ # Options may include:
595
+ # * :serialize_json
596
+ # Use JSON for message serialization instead of Marshal. This can be
597
+ # viewed as a security enhancement.
598
+ # * :pad_size
599
+ # Pad encrypted message data, to a multiple of this many bytes
600
+ # (default: 32). This can be between 2-4096 bytes, or +nil+ to disable
601
+ # padding.
602
+ # * :purpose
603
+ # Limit messages to a specific purpose. This can be viewed as a
604
+ # security enhancement to prevent message reuse from different contexts
605
+ # if keys are reused.
606
+ #
607
+ # Cryptography and Output Format:
608
+ #
609
+ # urlsafe_encode64(version + random_data + IV + encrypted data + HMAC)
610
+ #
611
+ # Where:
612
+ # * version - 1 byte and is currently always 0x01
613
+ # * random_data - 32 bytes used for generating the per-message secret
614
+ # * IV - 16 bytes random initialization vector
615
+ # * HMAC - 32 bytes HMAC-SHA-256 of all preceding data, plus the purpose
616
+ # value
617
+ #
618
+ # @raise [ArgumentError]
619
+ # @return [Encryptor] a new instance of Encryptor
620
+ #
621
+ # source://rack-session//lib/rack/session/encryptor.rb#53
622
+ def initialize(secret, opts = T.unsafe(nil)); end
623
+
624
+ # source://rack-session//lib/rack/session/encryptor.rb#77
625
+ def decrypt(base64_data); end
626
+
627
+ # source://rack-session//lib/rack/session/encryptor.rb#102
628
+ def encrypt(message); end
629
+
630
+ private
631
+
632
+ # source://rack-session//lib/rack/session/encryptor.rb#139
633
+ def cipher_secret_from_message_secret(message_secret); end
634
+
635
+ # source://rack-session//lib/rack/session/encryptor.rb#151
636
+ def compute_signature(data); end
637
+
638
+ # Return the deserialized message. The first 2 bytes will be read as the
639
+ # amount of padding.
640
+ #
641
+ # source://rack-session//lib/rack/session/encryptor.rb#182
642
+ def deserialized_message(data); end
643
+
644
+ # source://rack-session//lib/rack/session/encryptor.rb#129
645
+ def new_cipher; end
646
+
647
+ # source://rack-session//lib/rack/session/encryptor.rb#133
648
+ def new_message_and_cipher_secret; end
649
+
650
+ # Returns a serialized payload of the message. If a :pad_size is supplied,
651
+ # the message will be padded. The first 2 bytes of the returned string will
652
+ # indicating the amount of padding.
653
+ #
654
+ # source://rack-session//lib/rack/session/encryptor.rb#169
655
+ def serialize_payload(message); end
656
+
657
+ # source://rack-session//lib/rack/session/encryptor.rb#147
658
+ def serializer; end
659
+
660
+ # source://rack-session//lib/rack/session/encryptor.rb#143
661
+ def set_cipher_key(cipher, key); end
662
+
663
+ # @raise [InvalidMessage]
664
+ #
665
+ # source://rack-session//lib/rack/session/encryptor.rb#158
666
+ def verify_authenticity!(data, signature); end
667
+ end
668
+
669
+ # source://rack-session//lib/rack/session/encryptor.rb#17
670
+ class Rack::Session::Encryptor::Error < ::StandardError; end
671
+
672
+ # source://rack-session//lib/rack/session/encryptor.rb#23
673
+ class Rack::Session::Encryptor::InvalidMessage < ::Rack::Session::Encryptor::Error; end
674
+
675
+ # source://rack-session//lib/rack/session/encryptor.rb#20
676
+ class Rack::Session::Encryptor::InvalidSignature < ::Rack::Session::Encryptor::Error; end
677
+
678
+ # source://rack-session//lib/rack/session/constants.rb#9
679
+ Rack::Session::RACK_SESSION = T.let(T.unsafe(nil), String)
680
+
681
+ # source://rack-session//lib/rack/session/constants.rb#10
682
+ Rack::Session::RACK_SESSION_OPTIONS = T.let(T.unsafe(nil), String)
683
+
684
+ # source://rack-session//lib/rack/session/constants.rb#11
685
+ Rack::Session::RACK_SESSION_UNPACKED_COOKIE_DATA = T.let(T.unsafe(nil), String)
686
+
687
+ # source://rack-session//lib/rack/session/abstract/id.rb#21
688
+ class Rack::Session::SessionId
689
+ # @return [SessionId] a new instance of SessionId
690
+ #
691
+ # source://rack-session//lib/rack/session/abstract/id.rb#26
692
+ def initialize(public_id); end
693
+
694
+ # Returns the value of attribute public_id.
695
+ #
696
+ # source://rack-session//lib/rack/session/abstract/id.rb#24
697
+ def cookie_value; end
698
+
699
+ # @return [Boolean]
700
+ #
701
+ # source://rack-session//lib/rack/session/abstract/id.rb#37
702
+ def empty?; end
703
+
704
+ # source://rack-session//lib/rack/session/abstract/id.rb#38
705
+ def inspect; end
706
+
707
+ # source://rack-session//lib/rack/session/abstract/id.rb#30
708
+ def private_id; end
709
+
710
+ # Returns the value of attribute public_id.
711
+ #
712
+ # source://rack-session//lib/rack/session/abstract/id.rb#24
713
+ def public_id; end
714
+
715
+ # Returns the value of attribute public_id.
716
+ #
717
+ # source://rack-session//lib/rack/session/abstract/id.rb#24
718
+ def to_s; end
719
+
720
+ private
721
+
722
+ # source://rack-session//lib/rack/session/abstract/id.rb#42
723
+ def hash_sid(sid); end
724
+ end
725
+
726
+ # source://rack-session//lib/rack/session/abstract/id.rb#22
727
+ Rack::Session::SessionId::ID_VERSION = T.let(T.unsafe(nil), Integer)