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.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +22 -0
- data/.tool-versions +1 -0
- data/CHANGELOG.md +21 -0
- data/LICENSE.txt +21 -0
- data/README.md +35 -0
- data/Rakefile +10 -0
- data/lib/konstruo/mapper.rb +120 -0
- data/lib/konstruo/version.rb +6 -0
- data/lib/konstruo.rb +18 -0
- data/sorbet/config +4 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/actionmailer.rbi +10 -0
- data/sorbet/rbi/annotations/actionpack.rbi +430 -0
- data/sorbet/rbi/annotations/actionview.rbi +75 -0
- data/sorbet/rbi/annotations/activejob.rbi +44 -0
- data/sorbet/rbi/annotations/activemodel.rbi +89 -0
- data/sorbet/rbi/annotations/activerecord.rbi +92 -0
- data/sorbet/rbi/annotations/activesupport.rbi +454 -0
- data/sorbet/rbi/annotations/globalid.rbi +30 -0
- data/sorbet/rbi/annotations/minitest.rbi +119 -0
- data/sorbet/rbi/annotations/railties.rbi +61 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/dsl/.gitattributes +1 -0
- data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/actioncable@7.2.1.rbi +3096 -0
- data/sorbet/rbi/gems/actionmailbox@7.2.1.rbi +1832 -0
- data/sorbet/rbi/gems/actionmailer@7.2.1.rbi +2664 -0
- data/sorbet/rbi/gems/actionpack@7.2.1.rbi +20536 -0
- data/sorbet/rbi/gems/actiontext@7.2.1.rbi +1697 -0
- data/sorbet/rbi/gems/actionview@7.2.1.rbi +15752 -0
- data/sorbet/rbi/gems/activejob@7.2.1.rbi +2828 -0
- data/sorbet/rbi/gems/activemodel@7.2.1.rbi +6762 -0
- data/sorbet/rbi/gems/activerecord@7.2.1.rbi +41433 -0
- data/sorbet/rbi/gems/activestorage@7.2.1.rbi +3247 -0
- data/sorbet/rbi/gems/activesupport@7.2.1.rbi +21142 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
- data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
- data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +78 -0
- data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +11645 -0
- data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
- data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
- data/sorbet/rbi/gems/dashbrains-rubocop-config@1.0.4.rbi +9 -0
- data/sorbet/rbi/gems/date@3.3.4.rbi +75 -0
- data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
- data/sorbet/rbi/gems/drb@2.2.1.rbi +1347 -0
- data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
- data/sorbet/rbi/gems/globalid@1.2.1.rbi +749 -0
- data/sorbet/rbi/gems/i18n@1.14.5.rbi +2359 -0
- data/sorbet/rbi/gems/io-console@0.7.2.rbi +9 -0
- data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
- data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
- data/sorbet/rbi/gems/loofah@2.22.0.rbi +1081 -0
- data/sorbet/rbi/gems/mail@2.8.1.rbi +8658 -0
- data/sorbet/rbi/gems/marcel@1.0.4.rbi +239 -0
- data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +173 -0
- data/sorbet/rbi/gems/minitest@5.25.1.rbi +1546 -0
- data/sorbet/rbi/gems/net-imap@0.4.16.rbi +10845 -0
- data/sorbet/rbi/gems/net-pop@0.1.2.rbi +927 -0
- data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
- data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +1228 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
- data/sorbet/rbi/gems/nio4r@2.7.3.rbi +293 -0
- data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
- data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
- data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
- data/sorbet/rbi/gems/prism@1.0.0.rbi +35493 -0
- data/sorbet/rbi/gems/psych@5.1.2.rbi +1769 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
- data/sorbet/rbi/gems/rack-session@2.0.0.rbi +727 -0
- data/sorbet/rbi/gems/rack-test@2.1.0.rbi +747 -0
- data/sorbet/rbi/gems/rack@3.1.7.rbi +4902 -0
- data/sorbet/rbi/gems/rackup@2.1.0.rbi +390 -0
- data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +758 -0
- data/sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi +785 -0
- data/sorbet/rbi/gems/rails@7.2.1.rbi +9 -0
- data/sorbet/rbi/gems/railties@7.2.1.rbi +3824 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
- data/sorbet/rbi/gems/rake@13.2.1.rbi +3046 -0
- data/sorbet/rbi/gems/rbi@0.2.0.rbi +4105 -0
- data/sorbet/rbi/gems/rdoc@6.7.0.rbi +12721 -0
- data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
- data/sorbet/rbi/gems/reline@0.5.10.rbi +9 -0
- data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11012 -0
- data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
- data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
- data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
- data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
- data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7446 -0
- data/sorbet/rbi/gems/rubocop-capybara@2.21.0.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-factory_bot@2.26.1.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-graphql@1.5.4.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-rails@2.26.1.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
- data/sorbet/rbi/gems/rubocop-rspec@3.0.5.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-rspec_rails@2.30.0.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-sorbet@0.8.5.rbi +9 -0
- data/sorbet/rbi/gems/rubocop@1.66.1.rbi +58268 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
- data/sorbet/rbi/gems/securerandom@0.3.1.rbi +396 -0
- data/sorbet/rbi/gems/spoom@1.4.2.rbi +4932 -0
- data/sorbet/rbi/gems/stringio@3.1.1.rbi +9 -0
- data/sorbet/rbi/gems/tapioca@0.16.2.rbi +3581 -0
- data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
- data/sorbet/rbi/gems/timeout@0.4.1.rbi +149 -0
- data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
- data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
- data/sorbet/rbi/gems/useragent@0.16.10.rbi +9 -0
- data/sorbet/rbi/gems/webrick@1.8.1.rbi +2607 -0
- data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +993 -0
- data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +121 -0
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
- data/sorbet/rbi/gems/yard@0.9.37.rbi +18570 -0
- data/sorbet/rbi/gems/zeitwerk@2.6.18.rbi +1051 -0
- data/sorbet/rbi/todo.rbi +6 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +9 -0
- data/tasks/bundle_update.rake +14 -0
- data/tasks/sorbet.rake +26 -0
- 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)
|