active_cached_resource 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (340) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/.standard.yml +2 -0
  5. data/CHANGELOG.md +5 -0
  6. data/README.md +45 -0
  7. data/Rakefile +21 -0
  8. data/example/consumer/.dockerignore +41 -0
  9. data/example/consumer/.gitattributes +9 -0
  10. data/example/consumer/.gitignore +36 -0
  11. data/example/consumer/.kamal/hooks/docker-setup.sample +3 -0
  12. data/example/consumer/.kamal/hooks/post-deploy.sample +14 -0
  13. data/example/consumer/.kamal/hooks/post-proxy-reboot.sample +3 -0
  14. data/example/consumer/.kamal/hooks/pre-build.sample +51 -0
  15. data/example/consumer/.kamal/hooks/pre-connect.sample +47 -0
  16. data/example/consumer/.kamal/hooks/pre-deploy.sample +109 -0
  17. data/example/consumer/.kamal/hooks/pre-proxy-reboot.sample +3 -0
  18. data/example/consumer/.kamal/secrets +17 -0
  19. data/example/consumer/Dockerfile +65 -0
  20. data/example/consumer/Gemfile +17 -0
  21. data/example/consumer/Rakefile +6 -0
  22. data/example/consumer/app/controllers/application_controller.rb +2 -0
  23. data/example/consumer/app/controllers/concerns/.keep +0 -0
  24. data/example/consumer/app/jobs/application_job.rb +7 -0
  25. data/example/consumer/app/mailers/application_mailer.rb +4 -0
  26. data/example/consumer/app/models/application_record.rb +3 -0
  27. data/example/consumer/app/models/concerns/.keep +0 -0
  28. data/example/consumer/app/models/person.rb +9 -0
  29. data/example/consumer/app/views/layouts/mailer.html.erb +13 -0
  30. data/example/consumer/app/views/layouts/mailer.text.erb +1 -0
  31. data/example/consumer/bin/brakeman +7 -0
  32. data/example/consumer/bin/bundle +109 -0
  33. data/example/consumer/bin/dev +2 -0
  34. data/example/consumer/bin/docker-entrypoint +14 -0
  35. data/example/consumer/bin/jobs +6 -0
  36. data/example/consumer/bin/kamal +27 -0
  37. data/example/consumer/bin/rails +4 -0
  38. data/example/consumer/bin/rake +4 -0
  39. data/example/consumer/bin/rubocop +8 -0
  40. data/example/consumer/bin/setup +34 -0
  41. data/example/consumer/bin/thrust +5 -0
  42. data/example/consumer/config/application.rb +20 -0
  43. data/example/consumer/config/boot.rb +3 -0
  44. data/example/consumer/config/cache.yml +16 -0
  45. data/example/consumer/config/credentials.yml.enc +1 -0
  46. data/example/consumer/config/database.yml +14 -0
  47. data/example/consumer/config/deploy.yml +116 -0
  48. data/example/consumer/config/environment.rb +5 -0
  49. data/example/consumer/config/environments/development.rb +64 -0
  50. data/example/consumer/config/environments/production.rb +85 -0
  51. data/example/consumer/config/environments/test.rb +50 -0
  52. data/example/consumer/config/initializers/cors.rb +16 -0
  53. data/example/consumer/config/initializers/filter_parameter_logging.rb +8 -0
  54. data/example/consumer/config/initializers/inflections.rb +16 -0
  55. data/example/consumer/config/locales/en.yml +31 -0
  56. data/example/consumer/config/puma.rb +41 -0
  57. data/example/consumer/config/queue.yml +18 -0
  58. data/example/consumer/config/recurring.yml +10 -0
  59. data/example/consumer/config/routes.rb +10 -0
  60. data/example/consumer/config.ru +6 -0
  61. data/example/consumer/db/cache_schema.rb +14 -0
  62. data/example/consumer/db/queue_schema.rb +129 -0
  63. data/example/consumer/db/seeds.rb +0 -0
  64. data/example/consumer/lib/tasks/.keep +0 -0
  65. data/example/consumer/log/.keep +0 -0
  66. data/example/consumer/public/robots.txt +1 -0
  67. data/example/consumer/script/.keep +0 -0
  68. data/example/consumer/storage/.keep +0 -0
  69. data/example/consumer/tmp/.keep +0 -0
  70. data/example/consumer/tmp/cache/.keep +0 -0
  71. data/example/consumer/tmp/pids/.keep +0 -0
  72. data/example/consumer/tmp/storage/.keep +0 -0
  73. data/example/consumer/vendor/.keep +0 -0
  74. data/example/provider/.dockerignore +41 -0
  75. data/example/provider/.gitattributes +9 -0
  76. data/example/provider/.gitignore +32 -0
  77. data/example/provider/.kamal/hooks/docker-setup.sample +3 -0
  78. data/example/provider/.kamal/hooks/post-deploy.sample +14 -0
  79. data/example/provider/.kamal/hooks/post-proxy-reboot.sample +3 -0
  80. data/example/provider/.kamal/hooks/pre-build.sample +51 -0
  81. data/example/provider/.kamal/hooks/pre-connect.sample +47 -0
  82. data/example/provider/.kamal/hooks/pre-deploy.sample +109 -0
  83. data/example/provider/.kamal/hooks/pre-proxy-reboot.sample +3 -0
  84. data/example/provider/.kamal/secrets +17 -0
  85. data/example/provider/Dockerfile +65 -0
  86. data/example/provider/Gemfile +14 -0
  87. data/example/provider/Rakefile +6 -0
  88. data/example/provider/app/controllers/application_controller.rb +2 -0
  89. data/example/provider/app/controllers/concerns/.keep +0 -0
  90. data/example/provider/app/controllers/people_controller.rb +68 -0
  91. data/example/provider/app/jobs/application_job.rb +7 -0
  92. data/example/provider/app/mailers/application_mailer.rb +4 -0
  93. data/example/provider/app/models/address.rb +3 -0
  94. data/example/provider/app/models/application_record.rb +3 -0
  95. data/example/provider/app/models/company.rb +3 -0
  96. data/example/provider/app/models/concerns/.keep +0 -0
  97. data/example/provider/app/models/person.rb +6 -0
  98. data/example/provider/app/views/layouts/mailer.html.erb +13 -0
  99. data/example/provider/app/views/layouts/mailer.text.erb +1 -0
  100. data/example/provider/bin/brakeman +7 -0
  101. data/example/provider/bin/bundle +109 -0
  102. data/example/provider/bin/dev +2 -0
  103. data/example/provider/bin/docker-entrypoint +14 -0
  104. data/example/provider/bin/jobs +6 -0
  105. data/example/provider/bin/kamal +27 -0
  106. data/example/provider/bin/rails +4 -0
  107. data/example/provider/bin/rake +4 -0
  108. data/example/provider/bin/rubocop +8 -0
  109. data/example/provider/bin/setup +34 -0
  110. data/example/provider/bin/thrust +5 -0
  111. data/example/provider/config/application.rb +44 -0
  112. data/example/provider/config/boot.rb +3 -0
  113. data/example/provider/config/cache.yml +16 -0
  114. data/example/provider/config/credentials.yml.enc +1 -0
  115. data/example/provider/config/database.yml +20 -0
  116. data/example/provider/config/deploy.yml +116 -0
  117. data/example/provider/config/environment.rb +5 -0
  118. data/example/provider/config/environments/development.rb +64 -0
  119. data/example/provider/config/environments/production.rb +85 -0
  120. data/example/provider/config/environments/test.rb +50 -0
  121. data/example/provider/config/initializers/cors.rb +16 -0
  122. data/example/provider/config/initializers/filter_parameter_logging.rb +8 -0
  123. data/example/provider/config/initializers/inflections.rb +16 -0
  124. data/example/provider/config/locales/en.yml +31 -0
  125. data/example/provider/config/puma.rb +41 -0
  126. data/example/provider/config/queue.yml +18 -0
  127. data/example/provider/config/recurring.yml +10 -0
  128. data/example/provider/config/routes.rb +4 -0
  129. data/example/provider/config.ru +6 -0
  130. data/example/provider/db/cache_schema.rb +14 -0
  131. data/example/provider/db/migrate/20241202183937_create_people.rb +11 -0
  132. data/example/provider/db/migrate/20241202183955_create_addresses.rb +13 -0
  133. data/example/provider/db/migrate/20241202184017_create_companies.rb +14 -0
  134. data/example/provider/db/queue_schema.rb +129 -0
  135. data/example/provider/db/schema.rb +47 -0
  136. data/example/provider/db/seeds.rb +18 -0
  137. data/example/provider/lib/tasks/.keep +0 -0
  138. data/example/provider/log/.keep +0 -0
  139. data/example/provider/public/robots.txt +1 -0
  140. data/example/provider/script/.keep +0 -0
  141. data/example/provider/storage/.keep +0 -0
  142. data/example/provider/tmp/.keep +0 -0
  143. data/example/provider/tmp/pids/.keep +0 -0
  144. data/example/provider/tmp/storage/.keep +0 -0
  145. data/example/provider/vendor/.keep +0 -0
  146. data/lib/active_cached_resource/caching.rb +176 -0
  147. data/lib/active_cached_resource/caching_strategies/active_support_cache.rb +31 -0
  148. data/lib/active_cached_resource/caching_strategies/base.rb +114 -0
  149. data/lib/active_cached_resource/caching_strategies/sql_cache.rb +32 -0
  150. data/lib/active_cached_resource/configuration.rb +50 -0
  151. data/lib/active_cached_resource/logger.rb +22 -0
  152. data/lib/active_cached_resource/model.rb +33 -0
  153. data/lib/active_cached_resource/version.rb +12 -0
  154. data/lib/active_cached_resource.rb +64 -0
  155. data/lib/activeresource/.gitignore +15 -0
  156. data/lib/activeresource/README.md +283 -0
  157. data/lib/activeresource/examples/performance.rb +72 -0
  158. data/lib/activeresource/lib/active_resource/active_job_serializer.rb +26 -0
  159. data/lib/activeresource/lib/active_resource/associations/builder/association.rb +32 -0
  160. data/lib/activeresource/lib/active_resource/associations/builder/belongs_to.rb +16 -0
  161. data/lib/activeresource/lib/active_resource/associations/builder/has_many.rb +14 -0
  162. data/lib/activeresource/lib/active_resource/associations/builder/has_one.rb +14 -0
  163. data/lib/activeresource/lib/active_resource/associations.rb +175 -0
  164. data/lib/activeresource/lib/active_resource/base.rb +1741 -0
  165. data/lib/activeresource/lib/active_resource/callbacks.rb +22 -0
  166. data/lib/activeresource/lib/active_resource/collection.rb +214 -0
  167. data/lib/activeresource/lib/active_resource/connection.rb +298 -0
  168. data/lib/activeresource/lib/active_resource/custom_methods.rb +129 -0
  169. data/lib/activeresource/lib/active_resource/exceptions.rb +98 -0
  170. data/lib/activeresource/lib/active_resource/formats/json_format.rb +28 -0
  171. data/lib/activeresource/lib/active_resource/formats/xml_format.rb +27 -0
  172. data/lib/activeresource/lib/active_resource/formats.rb +24 -0
  173. data/lib/activeresource/lib/active_resource/http_mock.rb +386 -0
  174. data/lib/activeresource/lib/active_resource/inheriting_hash.rb +34 -0
  175. data/lib/activeresource/lib/active_resource/log_subscriber.rb +26 -0
  176. data/lib/activeresource/lib/active_resource/railtie.rb +31 -0
  177. data/lib/activeresource/lib/active_resource/reflection.rb +78 -0
  178. data/lib/activeresource/lib/active_resource/schema.rb +60 -0
  179. data/lib/activeresource/lib/active_resource/singleton.rb +111 -0
  180. data/lib/activeresource/lib/active_resource/threadsafe_attributes.rb +65 -0
  181. data/lib/activeresource/lib/active_resource/validations.rb +176 -0
  182. data/lib/activeresource/lib/active_resource.rb +49 -0
  183. data/lib/activeresource/lib/activeresource.rb +3 -0
  184. data/lib/activeresource/test/abstract_unit.rb +153 -0
  185. data/lib/activeresource/test/cases/active_job_serializer_test.rb +53 -0
  186. data/lib/activeresource/test/cases/association_test.rb +104 -0
  187. data/lib/activeresource/test/cases/associations/builder/belongs_to_test.rb +42 -0
  188. data/lib/activeresource/test/cases/associations/builder/has_many_test.rb +28 -0
  189. data/lib/activeresource/test/cases/associations/builder/has_one_test.rb +28 -0
  190. data/lib/activeresource/test/cases/authorization_test.rb +276 -0
  191. data/lib/activeresource/test/cases/base/custom_methods_test.rb +155 -0
  192. data/lib/activeresource/test/cases/base/equality_test.rb +53 -0
  193. data/lib/activeresource/test/cases/base/load_test.rb +249 -0
  194. data/lib/activeresource/test/cases/base/schema_test.rb +428 -0
  195. data/lib/activeresource/test/cases/base_errors_test.rb +129 -0
  196. data/lib/activeresource/test/cases/base_test.rb +1622 -0
  197. data/lib/activeresource/test/cases/callbacks_test.rb +155 -0
  198. data/lib/activeresource/test/cases/collection_test.rb +172 -0
  199. data/lib/activeresource/test/cases/connection_test.rb +357 -0
  200. data/lib/activeresource/test/cases/finder_test.rb +217 -0
  201. data/lib/activeresource/test/cases/format_test.rb +137 -0
  202. data/lib/activeresource/test/cases/http_mock_test.rb +213 -0
  203. data/lib/activeresource/test/cases/inheritence_test.rb +19 -0
  204. data/lib/activeresource/test/cases/inheriting_hash_test.rb +25 -0
  205. data/lib/activeresource/test/cases/log_subscriber_test.rb +63 -0
  206. data/lib/activeresource/test/cases/reflection_test.rb +65 -0
  207. data/lib/activeresource/test/cases/validations_test.rb +78 -0
  208. data/lib/activeresource/test/fixtures/address.rb +20 -0
  209. data/lib/activeresource/test/fixtures/beast.rb +16 -0
  210. data/lib/activeresource/test/fixtures/comment.rb +5 -0
  211. data/lib/activeresource/test/fixtures/customer.rb +5 -0
  212. data/lib/activeresource/test/fixtures/inventory.rb +14 -0
  213. data/lib/activeresource/test/fixtures/person.rb +15 -0
  214. data/lib/activeresource/test/fixtures/pet.rb +6 -0
  215. data/lib/activeresource/test/fixtures/post.rb +5 -0
  216. data/lib/activeresource/test/fixtures/product.rb +11 -0
  217. data/lib/activeresource/test/fixtures/project.rb +19 -0
  218. data/lib/activeresource/test/fixtures/proxy.rb +6 -0
  219. data/lib/activeresource/test/fixtures/sound.rb +11 -0
  220. data/lib/activeresource/test/fixtures/street_address.rb +6 -0
  221. data/lib/activeresource/test/fixtures/subscription_plan.rb +7 -0
  222. data/lib/activeresource/test/fixtures/weather.rb +21 -0
  223. data/lib/activeresource/test/setter_trap.rb +28 -0
  224. data/lib/activeresource/test/singleton_test.rb +138 -0
  225. data/lib/activeresource/test/threadsafe_attributes_test.rb +91 -0
  226. data/lib/generators/active_cached_resource/install_generator.rb +31 -0
  227. data/lib/generators/active_cached_resource/templates/migration.erb +16 -0
  228. data/sorbet/config +4 -0
  229. data/sorbet/rbi/annotations/.gitattributes +1 -0
  230. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  231. data/sorbet/rbi/annotations/activesupport.rbi +457 -0
  232. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  233. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  234. data/sorbet/rbi/dsl/.gitattributes +1 -0
  235. data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
  236. data/sorbet/rbi/gems/.gitattributes +1 -0
  237. data/sorbet/rbi/gems/actioncable@8.0.0.rbi +252 -0
  238. data/sorbet/rbi/gems/actionmailbox@8.0.0.rbi +9 -0
  239. data/sorbet/rbi/gems/actionmailer@8.0.0.rbi +9 -0
  240. data/sorbet/rbi/gems/actionpack@8.0.0.rbi +20909 -0
  241. data/sorbet/rbi/gems/actiontext@8.0.0.rbi +9 -0
  242. data/sorbet/rbi/gems/actionview@8.0.0.rbi +16207 -0
  243. data/sorbet/rbi/gems/activejob@8.0.0.rbi +9 -0
  244. data/sorbet/rbi/gems/activemodel-serializers-xml@1.0.3.rbi +166 -0
  245. data/sorbet/rbi/gems/activemodel@8.0.0.rbi +6857 -0
  246. data/sorbet/rbi/gems/activerecord@8.0.0.rbi +42896 -0
  247. data/sorbet/rbi/gems/activeresource@6.1.4.rbi +3944 -0
  248. data/sorbet/rbi/gems/activestorage@8.0.0.rbi +9 -0
  249. data/sorbet/rbi/gems/activesupport@8.0.0.rbi +21251 -0
  250. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  251. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  252. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  253. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +78 -0
  254. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  255. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  256. data/sorbet/rbi/gems/byebug@11.1.3.rbi +3607 -0
  257. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  258. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +11645 -0
  259. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  260. data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
  261. data/sorbet/rbi/gems/date@3.4.0.rbi +75 -0
  262. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  263. data/sorbet/rbi/gems/docile@1.4.1.rbi +377 -0
  264. data/sorbet/rbi/gems/drb@2.2.1.rbi +1347 -0
  265. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  266. data/sorbet/rbi/gems/globalid@1.2.1.rbi +9 -0
  267. data/sorbet/rbi/gems/i18n@1.14.6.rbi +2359 -0
  268. data/sorbet/rbi/gems/io-console@0.7.2.rbi +9 -0
  269. data/sorbet/rbi/gems/json@2.8.2.rbi +1901 -0
  270. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  271. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  272. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  273. data/sorbet/rbi/gems/loofah@2.23.1.rbi +1081 -0
  274. data/sorbet/rbi/gems/mail@2.8.1.rbi +9 -0
  275. data/sorbet/rbi/gems/marcel@1.0.4.rbi +9 -0
  276. data/sorbet/rbi/gems/method_source@1.1.0.rbi +304 -0
  277. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +9 -0
  278. data/sorbet/rbi/gems/minitest@5.25.2.rbi +1547 -0
  279. data/sorbet/rbi/gems/net-imap@0.5.1.rbi +9 -0
  280. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +9 -0
  281. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
  282. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +9 -0
  283. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  284. data/sorbet/rbi/gems/nio4r@2.7.4.rbi +9 -0
  285. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  286. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  287. data/sorbet/rbi/gems/parser@3.3.6.0.rbi +5519 -0
  288. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  289. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +1151 -0
  290. data/sorbet/rbi/gems/pry@0.14.2.rbi +10076 -0
  291. data/sorbet/rbi/gems/psych@5.2.0.rbi +1785 -0
  292. data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
  293. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +727 -0
  294. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +747 -0
  295. data/sorbet/rbi/gems/rack@3.1.8.rbi +4905 -0
  296. data/sorbet/rbi/gems/rackup@2.2.1.rbi +230 -0
  297. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +758 -0
  298. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi +785 -0
  299. data/sorbet/rbi/gems/rails@8.0.0.rbi +9 -0
  300. data/sorbet/rbi/gems/railties@8.0.0.rbi +6287 -0
  301. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  302. data/sorbet/rbi/gems/rake@13.2.1.rbi +3091 -0
  303. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  304. data/sorbet/rbi/gems/rdoc@6.8.1.rbi +12572 -0
  305. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  306. data/sorbet/rbi/gems/reline@0.5.12.rbi +2416 -0
  307. data/sorbet/rbi/gems/rexml@3.3.9.rbi +4858 -0
  308. data/sorbet/rbi/gems/rspec-core@3.13.2.rbi +11287 -0
  309. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  310. data/sorbet/rbi/gems/rspec-mocks@3.13.2.rbi +5341 -0
  311. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  312. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  313. data/sorbet/rbi/gems/rubocop-ast@1.36.1.rbi +7303 -0
  314. data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
  315. data/sorbet/rbi/gems/rubocop@1.65.1.rbi +58170 -0
  316. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  317. data/sorbet/rbi/gems/securerandom@0.3.2.rbi +395 -0
  318. data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +225 -0
  319. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  320. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  321. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  322. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +9 -0
  323. data/sorbet/rbi/gems/standard-performance@1.4.0.rbi +9 -0
  324. data/sorbet/rbi/gems/standard@1.40.0.rbi +929 -0
  325. data/sorbet/rbi/gems/stringio@3.1.2.rbi +9 -0
  326. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +3597 -0
  327. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  328. data/sorbet/rbi/gems/timeout@0.4.2.rbi +151 -0
  329. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  330. data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +66 -0
  331. data/sorbet/rbi/gems/uri@1.0.2.rbi +2377 -0
  332. data/sorbet/rbi/gems/useragent@0.16.10.rbi +9 -0
  333. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +9 -0
  334. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +9 -0
  335. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  336. data/sorbet/rbi/gems/yard@0.9.37.rbi +18504 -0
  337. data/sorbet/rbi/gems/zeitwerk@2.7.1.rbi +9 -0
  338. data/sorbet/tapioca/config.yml +13 -0
  339. data/sorbet/tapioca/require.rb +12 -0
  340. metadata +543 -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.8/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)