tokra 0.0.1.pre.1 → 0.0.1.pre.2

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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSES/MIT-0.txt +16 -0
  3. data/REUSE.toml +6 -1
  4. data/Rakefile +2 -0
  5. data/Steepfile +2 -0
  6. data/clippy_exceptions.rb +75 -37
  7. data/doc/contributors/adr/004.md +63 -0
  8. data/doc/contributors/chats/002.md +177 -0
  9. data/doc/contributors/chats/003.md +2180 -0
  10. data/doc/contributors/chats/004.md +1992 -0
  11. data/doc/contributors/chats/005.md +1529 -0
  12. data/doc/contributors/plan/002.md +173 -0
  13. data/doc/contributors/plan/003.md +111 -0
  14. data/examples/verify_hello_world/index.html +15 -2
  15. data/examples/verify_ping_pong/app.rb +3 -1
  16. data/examples/verify_ping_pong/public/styles.css +36 -9
  17. data/examples/verify_ping_pong/views/layout.erb +1 -1
  18. data/examples/verify_rails_sqlite/.dockerignore +51 -0
  19. data/examples/verify_rails_sqlite/.gitattributes +9 -0
  20. data/examples/verify_rails_sqlite/.github/dependabot.yml +12 -0
  21. data/examples/verify_rails_sqlite/.github/workflows/ci.yml +124 -0
  22. data/examples/verify_rails_sqlite/.gitignore +35 -0
  23. data/examples/verify_rails_sqlite/.kamal/hooks/docker-setup.sample +3 -0
  24. data/examples/verify_rails_sqlite/.kamal/hooks/post-app-boot.sample +3 -0
  25. data/examples/verify_rails_sqlite/.kamal/hooks/post-deploy.sample +14 -0
  26. data/examples/verify_rails_sqlite/.kamal/hooks/post-proxy-reboot.sample +3 -0
  27. data/examples/verify_rails_sqlite/.kamal/hooks/pre-app-boot.sample +3 -0
  28. data/examples/verify_rails_sqlite/.kamal/hooks/pre-build.sample +51 -0
  29. data/examples/verify_rails_sqlite/.kamal/hooks/pre-connect.sample +47 -0
  30. data/examples/verify_rails_sqlite/.kamal/hooks/pre-deploy.sample +122 -0
  31. data/examples/verify_rails_sqlite/.kamal/hooks/pre-proxy-reboot.sample +3 -0
  32. data/examples/verify_rails_sqlite/.kamal/secrets +20 -0
  33. data/examples/verify_rails_sqlite/.rubocop.yml +2 -0
  34. data/examples/verify_rails_sqlite/.ruby-version +1 -0
  35. data/examples/verify_rails_sqlite/Dockerfile +77 -0
  36. data/examples/verify_rails_sqlite/Gemfile +66 -0
  37. data/examples/verify_rails_sqlite/Gemfile.lock +563 -0
  38. data/examples/verify_rails_sqlite/README.md +41 -0
  39. data/examples/verify_rails_sqlite/Rakefile +6 -0
  40. data/examples/verify_rails_sqlite/app/assets/images/.keep +0 -0
  41. data/examples/verify_rails_sqlite/app/assets/stylesheets/application.css +469 -0
  42. data/examples/verify_rails_sqlite/app/controllers/application_controller.rb +12 -0
  43. data/examples/verify_rails_sqlite/app/controllers/concerns/.keep +0 -0
  44. data/examples/verify_rails_sqlite/app/controllers/todos_controller.rb +70 -0
  45. data/examples/verify_rails_sqlite/app/helpers/application_helper.rb +2 -0
  46. data/examples/verify_rails_sqlite/app/helpers/todos_helper.rb +2 -0
  47. data/examples/verify_rails_sqlite/app/javascript/application.js +3 -0
  48. data/examples/verify_rails_sqlite/app/javascript/controllers/application.js +9 -0
  49. data/examples/verify_rails_sqlite/app/javascript/controllers/hello_controller.js +7 -0
  50. data/examples/verify_rails_sqlite/app/javascript/controllers/index.js +4 -0
  51. data/examples/verify_rails_sqlite/app/jobs/application_job.rb +7 -0
  52. data/examples/verify_rails_sqlite/app/mailers/application_mailer.rb +4 -0
  53. data/examples/verify_rails_sqlite/app/models/application_record.rb +3 -0
  54. data/examples/verify_rails_sqlite/app/models/concerns/.keep +0 -0
  55. data/examples/verify_rails_sqlite/app/models/todo.rb +10 -0
  56. data/examples/verify_rails_sqlite/app/views/layouts/application.html.erb +24 -0
  57. data/examples/verify_rails_sqlite/app/views/layouts/mailer.html.erb +13 -0
  58. data/examples/verify_rails_sqlite/app/views/layouts/mailer.text.erb +1 -0
  59. data/examples/verify_rails_sqlite/app/views/pwa/manifest.json.erb +22 -0
  60. data/examples/verify_rails_sqlite/app/views/pwa/service-worker.js +26 -0
  61. data/examples/verify_rails_sqlite/app/views/todos/_form.html.erb +27 -0
  62. data/examples/verify_rails_sqlite/app/views/todos/_todo.html.erb +18 -0
  63. data/examples/verify_rails_sqlite/app/views/todos/_todo.json.jbuilder +2 -0
  64. data/examples/verify_rails_sqlite/app/views/todos/edit.html.erb +7 -0
  65. data/examples/verify_rails_sqlite/app/views/todos/index.html.erb +22 -0
  66. data/examples/verify_rails_sqlite/app/views/todos/index.json.jbuilder +1 -0
  67. data/examples/verify_rails_sqlite/app/views/todos/new.html.erb +7 -0
  68. data/examples/verify_rails_sqlite/app/views/todos/show.html.erb +23 -0
  69. data/examples/verify_rails_sqlite/app/views/todos/show.json.jbuilder +1 -0
  70. data/examples/verify_rails_sqlite/bin/brakeman +7 -0
  71. data/examples/verify_rails_sqlite/bin/bundler-audit +6 -0
  72. data/examples/verify_rails_sqlite/bin/ci +6 -0
  73. data/examples/verify_rails_sqlite/bin/dev +2 -0
  74. data/examples/verify_rails_sqlite/bin/docker-entrypoint +8 -0
  75. data/examples/verify_rails_sqlite/bin/importmap +4 -0
  76. data/examples/verify_rails_sqlite/bin/jobs +6 -0
  77. data/examples/verify_rails_sqlite/bin/kamal +16 -0
  78. data/examples/verify_rails_sqlite/bin/rails +4 -0
  79. data/examples/verify_rails_sqlite/bin/rake +4 -0
  80. data/examples/verify_rails_sqlite/bin/rubocop +8 -0
  81. data/examples/verify_rails_sqlite/bin/setup +35 -0
  82. data/examples/verify_rails_sqlite/bin/thrust +5 -0
  83. data/examples/verify_rails_sqlite/config/application.rb +27 -0
  84. data/examples/verify_rails_sqlite/config/boot.rb +4 -0
  85. data/examples/verify_rails_sqlite/config/bundler-audit.yml +5 -0
  86. data/examples/verify_rails_sqlite/config/cable.yml +17 -0
  87. data/examples/verify_rails_sqlite/config/cache.yml +16 -0
  88. data/examples/verify_rails_sqlite/config/ci.rb +24 -0
  89. data/examples/verify_rails_sqlite/config/credentials.yml.enc +1 -0
  90. data/examples/verify_rails_sqlite/config/database.yml +40 -0
  91. data/examples/verify_rails_sqlite/config/deploy.yml +119 -0
  92. data/examples/verify_rails_sqlite/config/environment.rb +5 -0
  93. data/examples/verify_rails_sqlite/config/environments/development.rb +84 -0
  94. data/examples/verify_rails_sqlite/config/environments/production.rb +99 -0
  95. data/examples/verify_rails_sqlite/config/environments/test.rb +53 -0
  96. data/examples/verify_rails_sqlite/config/importmap.rb +7 -0
  97. data/examples/verify_rails_sqlite/config/initializers/assets.rb +7 -0
  98. data/examples/verify_rails_sqlite/config/initializers/content_security_policy.rb +29 -0
  99. data/examples/verify_rails_sqlite/config/initializers/filter_parameter_logging.rb +8 -0
  100. data/examples/verify_rails_sqlite/config/initializers/inflections.rb +16 -0
  101. data/examples/verify_rails_sqlite/config/locales/en.yml +31 -0
  102. data/examples/verify_rails_sqlite/config/puma.rb +42 -0
  103. data/examples/verify_rails_sqlite/config/queue.yml +18 -0
  104. data/examples/verify_rails_sqlite/config/recurring.yml +15 -0
  105. data/examples/verify_rails_sqlite/config/routes.rb +15 -0
  106. data/examples/verify_rails_sqlite/config/storage.yml +27 -0
  107. data/examples/verify_rails_sqlite/config.ru +6 -0
  108. data/examples/verify_rails_sqlite/db/cable_schema.rb +11 -0
  109. data/examples/verify_rails_sqlite/db/cache_schema.rb +12 -0
  110. data/examples/verify_rails_sqlite/db/migrate/20260130080933_create_todos.rb +10 -0
  111. data/examples/verify_rails_sqlite/db/queue_schema.rb +129 -0
  112. data/examples/verify_rails_sqlite/db/schema.rb +20 -0
  113. data/examples/verify_rails_sqlite/db/seeds.rb +9 -0
  114. data/examples/verify_rails_sqlite/lib/tasks/.keep +0 -0
  115. data/examples/verify_rails_sqlite/log/.keep +0 -0
  116. data/examples/verify_rails_sqlite/public/400.html +135 -0
  117. data/examples/verify_rails_sqlite/public/404.html +135 -0
  118. data/examples/verify_rails_sqlite/public/406-unsupported-browser.html +135 -0
  119. data/examples/verify_rails_sqlite/public/422.html +135 -0
  120. data/examples/verify_rails_sqlite/public/500.html +135 -0
  121. data/examples/verify_rails_sqlite/public/icon.png +0 -0
  122. data/examples/verify_rails_sqlite/public/icon.svg +3 -0
  123. data/examples/verify_rails_sqlite/public/robots.txt +1 -0
  124. data/examples/verify_rails_sqlite/public/styles.css +469 -0
  125. data/examples/verify_rails_sqlite/script/.keep +0 -0
  126. data/examples/verify_rails_sqlite/storage/.keep +0 -0
  127. data/examples/verify_rails_sqlite/test/controllers/.keep +0 -0
  128. data/examples/verify_rails_sqlite/test/controllers/todos_controller_test.rb +48 -0
  129. data/examples/verify_rails_sqlite/test/fixtures/files/.keep +0 -0
  130. data/examples/verify_rails_sqlite/test/fixtures/todos.yml +9 -0
  131. data/examples/verify_rails_sqlite/test/helpers/.keep +0 -0
  132. data/examples/verify_rails_sqlite/test/integration/.keep +0 -0
  133. data/examples/verify_rails_sqlite/test/mailers/.keep +0 -0
  134. data/examples/verify_rails_sqlite/test/models/.keep +0 -0
  135. data/examples/verify_rails_sqlite/test/models/todo_test.rb +7 -0
  136. data/examples/verify_rails_sqlite/test/test_helper.rb +15 -0
  137. data/examples/verify_rails_sqlite/tmp/.keep +0 -0
  138. data/examples/verify_rails_sqlite/tmp/pids/.keep +0 -0
  139. data/examples/verify_rails_sqlite/tmp/storage/.keep +0 -0
  140. data/examples/verify_rails_sqlite/tokra.rb +42 -0
  141. data/examples/verify_rails_sqlite/vendor/.keep +0 -0
  142. data/examples/verify_rails_sqlite/vendor/javascript/.keep +0 -0
  143. data/ext/tokra/src/event_loop.rs +206 -0
  144. data/ext/tokra/src/events.rs +430 -0
  145. data/ext/tokra/src/lib.rs +52 -664
  146. data/ext/tokra/src/proxy.rs +142 -0
  147. data/ext/tokra/src/responders.rs +86 -0
  148. data/ext/tokra/src/user_event.rs +313 -0
  149. data/ext/tokra/src/webview.rs +194 -0
  150. data/ext/tokra/src/window.rs +92 -0
  151. data/lib/tokra/rack/handler.rb +37 -14
  152. data/lib/tokra/version.rb +1 -1
  153. data/rbs_exceptions.rb +12 -0
  154. data/sig/tokra.rbs +95 -1
  155. data/tasks/lint.rake +2 -2
  156. data/tasks/lint.rb +49 -0
  157. data/tasks/rust.rake +6 -23
  158. data/tasks/steep.rake +25 -3
  159. data/tasks/test.rake +1 -1
  160. metadata +143 -1
@@ -0,0 +1,563 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ action_text-trix (2.1.16)
5
+ railties
6
+ actioncable (8.1.2)
7
+ actionpack (= 8.1.2)
8
+ activesupport (= 8.1.2)
9
+ nio4r (~> 2.0)
10
+ websocket-driver (>= 0.6.1)
11
+ zeitwerk (~> 2.6)
12
+ actionmailbox (8.1.2)
13
+ actionpack (= 8.1.2)
14
+ activejob (= 8.1.2)
15
+ activerecord (= 8.1.2)
16
+ activestorage (= 8.1.2)
17
+ activesupport (= 8.1.2)
18
+ mail (>= 2.8.0)
19
+ actionmailer (8.1.2)
20
+ actionpack (= 8.1.2)
21
+ actionview (= 8.1.2)
22
+ activejob (= 8.1.2)
23
+ activesupport (= 8.1.2)
24
+ mail (>= 2.8.0)
25
+ rails-dom-testing (~> 2.2)
26
+ actionpack (8.1.2)
27
+ actionview (= 8.1.2)
28
+ activesupport (= 8.1.2)
29
+ nokogiri (>= 1.8.5)
30
+ rack (>= 2.2.4)
31
+ rack-session (>= 1.0.1)
32
+ rack-test (>= 0.6.3)
33
+ rails-dom-testing (~> 2.2)
34
+ rails-html-sanitizer (~> 1.6)
35
+ useragent (~> 0.16)
36
+ actiontext (8.1.2)
37
+ action_text-trix (~> 2.1.15)
38
+ actionpack (= 8.1.2)
39
+ activerecord (= 8.1.2)
40
+ activestorage (= 8.1.2)
41
+ activesupport (= 8.1.2)
42
+ globalid (>= 0.6.0)
43
+ nokogiri (>= 1.8.5)
44
+ actionview (8.1.2)
45
+ activesupport (= 8.1.2)
46
+ builder (~> 3.1)
47
+ erubi (~> 1.11)
48
+ rails-dom-testing (~> 2.2)
49
+ rails-html-sanitizer (~> 1.6)
50
+ activejob (8.1.2)
51
+ activesupport (= 8.1.2)
52
+ globalid (>= 0.3.6)
53
+ activemodel (8.1.2)
54
+ activesupport (= 8.1.2)
55
+ activerecord (8.1.2)
56
+ activemodel (= 8.1.2)
57
+ activesupport (= 8.1.2)
58
+ timeout (>= 0.4.0)
59
+ activestorage (8.1.2)
60
+ actionpack (= 8.1.2)
61
+ activejob (= 8.1.2)
62
+ activerecord (= 8.1.2)
63
+ activesupport (= 8.1.2)
64
+ marcel (~> 1.0)
65
+ activesupport (8.1.2)
66
+ base64
67
+ bigdecimal
68
+ concurrent-ruby (~> 1.0, >= 1.3.1)
69
+ connection_pool (>= 2.2.5)
70
+ drb
71
+ i18n (>= 1.6, < 2)
72
+ json
73
+ logger (>= 1.4.2)
74
+ minitest (>= 5.1)
75
+ securerandom (>= 0.3)
76
+ tzinfo (~> 2.0, >= 2.0.5)
77
+ uri (>= 0.13.1)
78
+ addressable (2.8.8)
79
+ public_suffix (>= 2.0.2, < 8.0)
80
+ ast (2.4.3)
81
+ base64 (0.3.0)
82
+ bcrypt_pbkdf (1.1.2)
83
+ bigdecimal (4.0.1)
84
+ bindex (0.8.1)
85
+ bootsnap (1.21.1)
86
+ msgpack (~> 1.2)
87
+ brakeman (8.0.1)
88
+ racc
89
+ builder (3.3.0)
90
+ bundler-audit (0.9.3)
91
+ bundler (>= 1.2.0)
92
+ thor (~> 1.0)
93
+ capybara (3.40.0)
94
+ addressable
95
+ matrix
96
+ mini_mime (>= 0.1.3)
97
+ nokogiri (~> 1.11)
98
+ rack (>= 1.6.0)
99
+ rack-test (>= 0.6.3)
100
+ regexp_parser (>= 1.5, < 3.0)
101
+ xpath (~> 3.2)
102
+ concurrent-ruby (1.3.6)
103
+ connection_pool (3.0.2)
104
+ crass (1.0.6)
105
+ date (3.5.1)
106
+ debug (1.11.1)
107
+ irb (~> 1.10)
108
+ reline (>= 0.3.8)
109
+ dotenv (3.2.0)
110
+ drb (2.2.3)
111
+ ed25519 (1.4.0)
112
+ erb (6.0.1)
113
+ erubi (1.13.1)
114
+ et-orbi (1.4.0)
115
+ tzinfo
116
+ ffi (1.17.3-aarch64-linux-gnu)
117
+ ffi (1.17.3-aarch64-linux-musl)
118
+ ffi (1.17.3-arm-linux-gnu)
119
+ ffi (1.17.3-arm-linux-musl)
120
+ ffi (1.17.3-arm64-darwin)
121
+ ffi (1.17.3-x86_64-linux-gnu)
122
+ ffi (1.17.3-x86_64-linux-musl)
123
+ fugit (1.12.1)
124
+ et-orbi (~> 1.4)
125
+ raabro (~> 1.4)
126
+ globalid (1.3.0)
127
+ activesupport (>= 6.1)
128
+ i18n (1.14.8)
129
+ concurrent-ruby (~> 1.0)
130
+ image_processing (1.14.0)
131
+ mini_magick (>= 4.9.5, < 6)
132
+ ruby-vips (>= 2.0.17, < 3)
133
+ importmap-rails (2.2.3)
134
+ actionpack (>= 6.0.0)
135
+ activesupport (>= 6.0.0)
136
+ railties (>= 6.0.0)
137
+ io-console (0.8.2)
138
+ irb (1.16.0)
139
+ pp (>= 0.6.0)
140
+ rdoc (>= 4.0.0)
141
+ reline (>= 0.4.2)
142
+ jbuilder (2.14.1)
143
+ actionview (>= 7.0.0)
144
+ activesupport (>= 7.0.0)
145
+ json (2.18.0)
146
+ kamal (2.10.1)
147
+ activesupport (>= 7.0)
148
+ base64 (~> 0.2)
149
+ bcrypt_pbkdf (~> 1.0)
150
+ concurrent-ruby (~> 1.2)
151
+ dotenv (~> 3.1)
152
+ ed25519 (~> 1.4)
153
+ net-ssh (~> 7.3)
154
+ sshkit (>= 1.23.0, < 2.0)
155
+ thor (~> 1.3)
156
+ zeitwerk (>= 2.6.18, < 3.0)
157
+ language_server-protocol (3.17.0.5)
158
+ lint_roller (1.1.0)
159
+ logger (1.7.0)
160
+ loofah (2.25.0)
161
+ crass (~> 1.0.2)
162
+ nokogiri (>= 1.12.0)
163
+ mail (2.9.0)
164
+ logger
165
+ mini_mime (>= 0.1.1)
166
+ net-imap
167
+ net-pop
168
+ net-smtp
169
+ marcel (1.1.0)
170
+ matrix (0.4.3)
171
+ mini_magick (5.3.1)
172
+ logger
173
+ mini_mime (1.1.5)
174
+ minitest (6.0.1)
175
+ prism (~> 1.5)
176
+ msgpack (1.8.0)
177
+ net-imap (0.6.2)
178
+ date
179
+ net-protocol
180
+ net-pop (0.1.2)
181
+ net-protocol
182
+ net-protocol (0.2.2)
183
+ timeout
184
+ net-scp (4.1.0)
185
+ net-ssh (>= 2.6.5, < 8.0.0)
186
+ net-sftp (4.0.0)
187
+ net-ssh (>= 5.0.0, < 8.0.0)
188
+ net-smtp (0.5.1)
189
+ net-protocol
190
+ net-ssh (7.3.0)
191
+ nio4r (2.7.5)
192
+ nokogiri (1.19.0-aarch64-linux-gnu)
193
+ racc (~> 1.4)
194
+ nokogiri (1.19.0-aarch64-linux-musl)
195
+ racc (~> 1.4)
196
+ nokogiri (1.19.0-arm-linux-gnu)
197
+ racc (~> 1.4)
198
+ nokogiri (1.19.0-arm-linux-musl)
199
+ racc (~> 1.4)
200
+ nokogiri (1.19.0-arm64-darwin)
201
+ racc (~> 1.4)
202
+ nokogiri (1.19.0-x86_64-linux-gnu)
203
+ racc (~> 1.4)
204
+ nokogiri (1.19.0-x86_64-linux-musl)
205
+ racc (~> 1.4)
206
+ ostruct (0.6.3)
207
+ parallel (1.27.0)
208
+ parser (3.3.10.1)
209
+ ast (~> 2.4.1)
210
+ racc
211
+ pp (0.6.3)
212
+ prettyprint
213
+ prettyprint (0.2.0)
214
+ prism (1.9.0)
215
+ propshaft (1.3.1)
216
+ actionpack (>= 7.0.0)
217
+ activesupport (>= 7.0.0)
218
+ rack
219
+ psych (5.3.1)
220
+ date
221
+ stringio
222
+ public_suffix (7.0.2)
223
+ puma (7.2.0)
224
+ nio4r (~> 2.0)
225
+ raabro (1.4.0)
226
+ racc (1.8.1)
227
+ rack (3.2.4)
228
+ rack-session (2.1.1)
229
+ base64 (>= 0.1.0)
230
+ rack (>= 3.0.0)
231
+ rack-test (2.2.0)
232
+ rack (>= 1.3)
233
+ rackup (2.3.1)
234
+ rack (>= 3)
235
+ rails (8.1.2)
236
+ actioncable (= 8.1.2)
237
+ actionmailbox (= 8.1.2)
238
+ actionmailer (= 8.1.2)
239
+ actionpack (= 8.1.2)
240
+ actiontext (= 8.1.2)
241
+ actionview (= 8.1.2)
242
+ activejob (= 8.1.2)
243
+ activemodel (= 8.1.2)
244
+ activerecord (= 8.1.2)
245
+ activestorage (= 8.1.2)
246
+ activesupport (= 8.1.2)
247
+ bundler (>= 1.15.0)
248
+ railties (= 8.1.2)
249
+ rails-dom-testing (2.3.0)
250
+ activesupport (>= 5.0.0)
251
+ minitest
252
+ nokogiri (>= 1.6)
253
+ rails-html-sanitizer (1.6.2)
254
+ loofah (~> 2.21)
255
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
256
+ railties (8.1.2)
257
+ actionpack (= 8.1.2)
258
+ activesupport (= 8.1.2)
259
+ irb (~> 1.13)
260
+ rackup (>= 1.0.0)
261
+ rake (>= 12.2)
262
+ thor (~> 1.0, >= 1.2.2)
263
+ tsort (>= 0.2)
264
+ zeitwerk (~> 2.6)
265
+ rainbow (3.1.1)
266
+ rake (13.3.1)
267
+ rdoc (7.1.0)
268
+ erb
269
+ psych (>= 4.0.0)
270
+ tsort
271
+ regexp_parser (2.11.3)
272
+ reline (0.6.3)
273
+ io-console (~> 0.5)
274
+ rexml (3.4.4)
275
+ rubocop (1.84.0)
276
+ json (~> 2.3)
277
+ language_server-protocol (~> 3.17.0.2)
278
+ lint_roller (~> 1.1.0)
279
+ parallel (~> 1.10)
280
+ parser (>= 3.3.0.2)
281
+ rainbow (>= 2.2.2, < 4.0)
282
+ regexp_parser (>= 2.9.3, < 3.0)
283
+ rubocop-ast (>= 1.49.0, < 2.0)
284
+ ruby-progressbar (~> 1.7)
285
+ unicode-display_width (>= 2.4.0, < 4.0)
286
+ rubocop-ast (1.49.0)
287
+ parser (>= 3.3.7.2)
288
+ prism (~> 1.7)
289
+ rubocop-performance (1.26.1)
290
+ lint_roller (~> 1.1)
291
+ rubocop (>= 1.75.0, < 2.0)
292
+ rubocop-ast (>= 1.47.1, < 2.0)
293
+ rubocop-rails (2.34.3)
294
+ activesupport (>= 4.2.0)
295
+ lint_roller (~> 1.1)
296
+ rack (>= 1.1)
297
+ rubocop (>= 1.75.0, < 2.0)
298
+ rubocop-ast (>= 1.44.0, < 2.0)
299
+ rubocop-rails-omakase (1.1.0)
300
+ rubocop (>= 1.72)
301
+ rubocop-performance (>= 1.24)
302
+ rubocop-rails (>= 2.30)
303
+ ruby-progressbar (1.13.0)
304
+ ruby-vips (2.3.0)
305
+ ffi (~> 1.12)
306
+ logger
307
+ rubyzip (3.2.2)
308
+ securerandom (0.4.1)
309
+ selenium-webdriver (4.40.0)
310
+ base64 (~> 0.2)
311
+ logger (~> 1.4)
312
+ rexml (~> 3.2, >= 3.2.5)
313
+ rubyzip (>= 1.2.2, < 4.0)
314
+ websocket (~> 1.0)
315
+ solid_cable (3.0.12)
316
+ actioncable (>= 7.2)
317
+ activejob (>= 7.2)
318
+ activerecord (>= 7.2)
319
+ railties (>= 7.2)
320
+ solid_cache (1.0.10)
321
+ activejob (>= 7.2)
322
+ activerecord (>= 7.2)
323
+ railties (>= 7.2)
324
+ solid_queue (1.3.1)
325
+ activejob (>= 7.1)
326
+ activerecord (>= 7.1)
327
+ concurrent-ruby (>= 1.3.1)
328
+ fugit (~> 1.11)
329
+ railties (>= 7.1)
330
+ thor (>= 1.3.1)
331
+ sqlite3 (2.9.0-aarch64-linux-gnu)
332
+ sqlite3 (2.9.0-aarch64-linux-musl)
333
+ sqlite3 (2.9.0-arm-linux-gnu)
334
+ sqlite3 (2.9.0-arm-linux-musl)
335
+ sqlite3 (2.9.0-arm64-darwin)
336
+ sqlite3 (2.9.0-x86_64-linux-gnu)
337
+ sqlite3 (2.9.0-x86_64-linux-musl)
338
+ sshkit (1.25.0)
339
+ base64
340
+ logger
341
+ net-scp (>= 1.1.2)
342
+ net-sftp (>= 2.1.2)
343
+ net-ssh (>= 2.8.0)
344
+ ostruct
345
+ stimulus-rails (1.3.4)
346
+ railties (>= 6.0.0)
347
+ stringio (3.2.0)
348
+ thor (1.5.0)
349
+ thruster (0.1.17)
350
+ thruster (0.1.17-aarch64-linux)
351
+ thruster (0.1.17-arm64-darwin)
352
+ thruster (0.1.17-x86_64-linux)
353
+ timeout (0.6.0)
354
+ tsort (0.2.0)
355
+ turbo-rails (2.0.23)
356
+ actionpack (>= 7.1.0)
357
+ railties (>= 7.1.0)
358
+ tzinfo (2.0.6)
359
+ concurrent-ruby (~> 1.0)
360
+ unicode-display_width (3.2.0)
361
+ unicode-emoji (~> 4.1)
362
+ unicode-emoji (4.2.0)
363
+ uri (1.1.1)
364
+ useragent (0.16.11)
365
+ web-console (4.2.1)
366
+ actionview (>= 6.0.0)
367
+ activemodel (>= 6.0.0)
368
+ bindex (>= 0.4.0)
369
+ railties (>= 6.0.0)
370
+ websocket (1.2.11)
371
+ websocket-driver (0.8.0)
372
+ base64
373
+ websocket-extensions (>= 0.1.0)
374
+ websocket-extensions (0.1.5)
375
+ xpath (3.2.0)
376
+ nokogiri (~> 1.8)
377
+ zeitwerk (2.7.4)
378
+
379
+ PLATFORMS
380
+ aarch64-linux
381
+ aarch64-linux-gnu
382
+ aarch64-linux-musl
383
+ arm-linux-gnu
384
+ arm-linux-musl
385
+ arm64-darwin-24
386
+ x86_64-linux
387
+ x86_64-linux-gnu
388
+ x86_64-linux-musl
389
+
390
+ DEPENDENCIES
391
+ bootsnap
392
+ brakeman
393
+ bundler-audit
394
+ capybara
395
+ debug
396
+ image_processing (~> 1.2)
397
+ importmap-rails
398
+ jbuilder
399
+ kamal
400
+ propshaft
401
+ puma (>= 5.0)
402
+ rails (~> 8.1.2)
403
+ rubocop-rails-omakase
404
+ selenium-webdriver
405
+ solid_cable
406
+ solid_cache
407
+ solid_queue
408
+ sqlite3 (>= 2.1)
409
+ stimulus-rails
410
+ thruster
411
+ turbo-rails
412
+ tzinfo-data
413
+ web-console
414
+
415
+ CHECKSUMS
416
+ action_text-trix (2.1.16) sha256=f645a2c21821b8449fd1d6770708f4031c91a2eedf9ef476e9be93c64e703a8a
417
+ actioncable (8.1.2) sha256=dc31efc34cca9cdefc5c691ddb8b4b214c0ea5cd1372108cbc1377767fb91969
418
+ actionmailbox (8.1.2) sha256=058b2fb1980e5d5a894f675475fcfa45c62631103d5a2596d9610ec81581889b
419
+ actionmailer (8.1.2) sha256=f4c1d2060f653bfe908aa7fdc5a61c0e5279670de992146582f2e36f8b9175e9
420
+ actionpack (8.1.2) sha256=ced74147a1f0daafaa4bab7f677513fd4d3add574c7839958f7b4f1de44f8423
421
+ actiontext (8.1.2) sha256=0bf57da22a9c19d970779c3ce24a56be31b51c7640f2763ec64aa72e358d2d2d
422
+ actionview (8.1.2) sha256=80455b2588911c9b72cec22d240edacb7c150e800ef2234821269b2b2c3e2e5b
423
+ activejob (8.1.2) sha256=908dab3713b101859536375819f4156b07bdf4c232cc645e7538adb9e302f825
424
+ activemodel (8.1.2) sha256=e21358c11ce68aed3f9838b7e464977bc007b4446c6e4059781e1d5c03bcf33e
425
+ activerecord (8.1.2) sha256=acfbe0cadfcc50fa208011fe6f4eb01cae682ebae0ef57145ba45380c74bcc44
426
+ activestorage (8.1.2) sha256=8a63a48c3999caeee26a59441f813f94681fc35cc41aba7ce1f836add04fba76
427
+ activesupport (8.1.2) sha256=88842578ccd0d40f658289b0e8c842acfe9af751afee2e0744a7873f50b6fdae
428
+ addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057
429
+ ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
430
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
431
+ bcrypt_pbkdf (1.1.2) sha256=c2414c23ce66869b3eb9f643d6a3374d8322dfb5078125c82792304c10b94cf6
432
+ bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
433
+ bindex (0.8.1) sha256=7b1ecc9dc539ed8bccfc8cb4d2732046227b09d6f37582ff12e50a5047ceb17e
434
+ bootsnap (1.21.1) sha256=9373acfe732da35846623c337d3481af8ce77c7b3a927fb50e9aa92b46dbc4c4
435
+ brakeman (8.0.1) sha256=c68ce0ac35a6295027c4eab8b4ac597d2a0bfc82f0d62dcd334bbf944d352f70
436
+ builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
437
+ bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9
438
+ capybara (3.40.0) sha256=42dba720578ea1ca65fd7a41d163dd368502c191804558f6e0f71b391054aeef
439
+ concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
440
+ connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
441
+ crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
442
+ date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
443
+ debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
444
+ dotenv (3.2.0) sha256=e375b83121ea7ca4ce20f214740076129ab8514cd81378161f11c03853fe619d
445
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
446
+ ed25519 (1.4.0) sha256=16e97f5198689a154247169f3453ef4cfd3f7a47481fde0ae33206cdfdcac506
447
+ erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
448
+ erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
449
+ et-orbi (1.4.0) sha256=6c7e3c90779821f9e3b324c5e96fda9767f72995d6ae435b96678a4f3e2de8bc
450
+ ffi (1.17.3-aarch64-linux-gnu) sha256=28ad573df26560f0aedd8a90c3371279a0b2bd0b4e834b16a2baa10bd7a97068
451
+ ffi (1.17.3-aarch64-linux-musl) sha256=020b33b76775b1abacc3b7d86b287cef3251f66d747092deec592c7f5df764b2
452
+ ffi (1.17.3-arm-linux-gnu) sha256=5bd4cea83b68b5ec0037f99c57d5ce2dd5aa438f35decc5ef68a7d085c785668
453
+ ffi (1.17.3-arm-linux-musl) sha256=0d7626bb96265f9af78afa33e267d71cfef9d9a8eb8f5525344f8da6c7d76053
454
+ ffi (1.17.3-arm64-darwin) sha256=0c690555d4cee17a7f07c04d59df39b2fba74ec440b19da1f685c6579bb0717f
455
+ ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f
456
+ ffi (1.17.3-x86_64-linux-musl) sha256=086b221c3a68320b7564066f46fed23449a44f7a1935f1fe5a245bd89d9aea56
457
+ fugit (1.12.1) sha256=5898f478ede9b415f0804e42b8f3fd53f814bd85eebffceebdbc34e1107aaf68
458
+ globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
459
+ i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
460
+ image_processing (1.14.0) sha256=754cc169c9c262980889bec6bfd325ed1dafad34f85242b5a07b60af004742fb
461
+ importmap-rails (2.2.3) sha256=7101be2a4dc97cf1558fb8f573a718404c5f6bcfe94f304bf1f39e444feeb16a
462
+ io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
463
+ irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
464
+ jbuilder (2.14.1) sha256=4eb26376ff60ef100cb4fd6fd7533cd271f9998327e86adf20fd8c0e69fabb42
465
+ json (2.18.0) sha256=b10506aee4183f5cf49e0efc48073d7b75843ce3782c68dbeb763351c08fd505
466
+ kamal (2.10.1) sha256=53b7ecb4c33dd83b1aedfc7aacd1c059f835993258a552d70d584c6ce32b6340
467
+ language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
468
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
469
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
470
+ loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
471
+ mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941
472
+ marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
473
+ matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b
474
+ mini_magick (5.3.1) sha256=29395dfd76badcabb6403ee5aff6f681e867074f8f28ce08d78661e9e4a351c4
475
+ mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
476
+ minitest (6.0.1) sha256=7854c74f48e2e975969062833adc4013f249a4b212f5e7b9d5c040bf838d54bb
477
+ msgpack (1.8.0) sha256=e64ce0212000d016809f5048b48eb3a65ffb169db22238fb4b72472fecb2d732
478
+ net-imap (0.6.2) sha256=08caacad486853c61676cca0c0c47df93db02abc4a8239a8b67eb0981428acc6
479
+ net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
480
+ net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
481
+ net-scp (4.1.0) sha256=a99b0b92a1e5d360b0de4ffbf2dc0c91531502d3d4f56c28b0139a7c093d1a5d
482
+ net-sftp (4.0.0) sha256=65bb91c859c2f93b09826757af11b69af931a3a9155050f50d1b06d384526364
483
+ net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
484
+ net-ssh (7.3.0) sha256=172076c4b30ce56fb25a03961b0c4da14e1246426401b0f89cba1a3b54bf3ef0
485
+ nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
486
+ nokogiri (1.19.0-aarch64-linux-gnu) sha256=11a97ecc3c0e7e5edcf395720b10860ef493b768f6aa80c539573530bc933767
487
+ nokogiri (1.19.0-aarch64-linux-musl) sha256=eb70507f5e01bc23dad9b8dbec2b36ad0e61d227b42d292835020ff754fb7ba9
488
+ nokogiri (1.19.0-arm-linux-gnu) sha256=572a259026b2c8b7c161fdb6469fa2d0edd2b61cd599db4bbda93289abefbfe5
489
+ nokogiri (1.19.0-arm-linux-musl) sha256=23ed90922f1a38aed555d3de4d058e90850c731c5b756d191b3dc8055948e73c
490
+ nokogiri (1.19.0-arm64-darwin) sha256=0811dfd936d5f6dd3f6d32ef790568bf29b2b7bead9ba68866847b33c9cf5810
491
+ nokogiri (1.19.0-x86_64-linux-gnu) sha256=f482b95c713d60031d48c44ce14562f8d2ce31e3a9e8dd0ccb131e9e5a68b58c
492
+ nokogiri (1.19.0-x86_64-linux-musl) sha256=1c4ca6b381622420073ce6043443af1d321e8ed93cc18b08e2666e5bd02ffae4
493
+ ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
494
+ parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
495
+ parser (3.3.10.1) sha256=06f6a725d2cd91e5e7f2b7c32ba143631e1f7c8ae2fb918fc4cebec187e6a688
496
+ pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
497
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
498
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
499
+ propshaft (1.3.1) sha256=9acc664ef67e819ffa3d95bd7ad4c3623ea799110c5f4dee67fa7e583e74c392
500
+ psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
501
+ public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857
502
+ puma (7.2.0) sha256=bf8ef4ab514a4e6d4554cb4326b2004eba5036ae05cf765cfe51aba9706a72a8
503
+ raabro (1.4.0) sha256=d4fa9ff5172391edb92b242eed8be802d1934b1464061ae5e70d80962c5da882
504
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
505
+ rack (3.2.4) sha256=5d74b6f75082a643f43c1e76b419c40f0e5527fcfee1e669ac1e6b73c0ccb6f6
506
+ rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
507
+ rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
508
+ rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868
509
+ rails (8.1.2) sha256=5069061b23dfa8706b9f0159ae8b9d35727359103178a26962b868a680ba7d95
510
+ rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
511
+ rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
512
+ railties (8.1.2) sha256=1289ece76b4f7668fc46d07e55cc992b5b8751f2ad85548b7da351b8c59f8055
513
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
514
+ rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
515
+ rdoc (7.1.0) sha256=494899df0706c178596ca6e1d50f1b7eb285a9b2aae715be5abd742734f17363
516
+ regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
517
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
518
+ rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
519
+ rubocop (1.84.0) sha256=88dec310153bb685a879f5a7cdb601f6287b8f0ee675d9dc63a17c7204c4190a
520
+ rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
521
+ rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
522
+ rubocop-rails (2.34.3) sha256=10d37989024865ecda8199f311f3faca990143fbac967de943f88aca11eb9ad2
523
+ rubocop-rails-omakase (1.1.0) sha256=2af73ac8ee5852de2919abbd2618af9c15c19b512c4cfc1f9a5d3b6ef009109d
524
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
525
+ ruby-vips (2.3.0) sha256=e685ec02c13969912debbd98019e50492e12989282da5f37d05f5471442f5374
526
+ rubyzip (3.2.2) sha256=c0ed99385f0625415c8f05bcae33fe649ed2952894a95ff8b08f26ca57ea5b3c
527
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
528
+ selenium-webdriver (4.40.0) sha256=16ef7aa9853c1d4b9d52eac45aafa916e3934c5c83cb4facb03f250adfd15e5b
529
+ solid_cable (3.0.12) sha256=a168a54731a455d5627af48d8441ea3b554b8c1f6e6cd6074109de493e6b0460
530
+ solid_cache (1.0.10) sha256=bc05a2fb3ac78a6f43cbb5946679cf9db67dd30d22939ededc385cb93e120d41
531
+ solid_queue (1.3.1) sha256=d9580111180c339804ff1a810a7768f69f5dc694d31e86cf1535ff2cd7a87428
532
+ sqlite3 (2.9.0-aarch64-linux-gnu) sha256=cfe1e0216f46d7483839719bf827129151e6c680317b99d7b8fc1597a3e13473
533
+ sqlite3 (2.9.0-aarch64-linux-musl) sha256=56a35cb2d70779afc2ac191baf2c2148242285ecfed72f9b021218c5c4917913
534
+ sqlite3 (2.9.0-arm-linux-gnu) sha256=a19a21504b0d7c8c825fbbf37b358ae316b6bd0d0134c619874060b2eef05435
535
+ sqlite3 (2.9.0-arm-linux-musl) sha256=fca5b26197c70e3363115d3faaea34d7b2ad9c7f5fa8d8312e31b64e7556ee07
536
+ sqlite3 (2.9.0-arm64-darwin) sha256=a917bd9b84285766ff3300b7d79cd583f5a067594c8c1263e6441618c04a6ed3
537
+ sqlite3 (2.9.0-x86_64-linux-gnu) sha256=72fff9bd750070ba3af695511ba5f0e0a2d8a9206f84869640b3e99dfaf3d5a5
538
+ sqlite3 (2.9.0-x86_64-linux-musl) sha256=ef716ba7a66d7deb1ccc402ac3a6d7343da17fac862793b7f0be3d2917253c90
539
+ sshkit (1.25.0) sha256=c8c6543cdb60f91f1d277306d585dd11b6a064cb44eab0972827e4311ff96744
540
+ stimulus-rails (1.3.4) sha256=765676ffa1f33af64ce026d26b48e8ffb2e0b94e0f50e9119e11d6107d67cb06
541
+ stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
542
+ thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
543
+ thruster (0.1.17) sha256=6f3f1de43e22f0162d81cbc363f45ee42a1b8460213856c1a899cbf0d3297235
544
+ thruster (0.1.17-aarch64-linux) sha256=1b3a34b2814185c2aeaf835b5ecff5348cdcf8e77809f7a092d46e4b962a16ba
545
+ thruster (0.1.17-arm64-darwin) sha256=75da66fc4a0f012f9a317f6362f786a3fa953879a3fa6bed8deeaebf1c1d66ec
546
+ thruster (0.1.17-x86_64-linux) sha256=77b8f335075bd4ece7631dc84a19a710a1e6e7102cbce147b165b45851bdfcd3
547
+ timeout (0.6.0) sha256=6d722ad619f96ee383a0c557ec6eb8c4ecb08af3af62098a0be5057bf00de1af
548
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
549
+ turbo-rails (2.0.23) sha256=ee0d90733aafff056cf51ff11e803d65e43cae258cc55f6492020ec1f9f9315f
550
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
551
+ unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
552
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
553
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
554
+ useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
555
+ web-console (4.2.1) sha256=e7bcf37a10ea2b4ec4281649d1cee461b32232d0a447e82c786e6841fd22fe20
556
+ websocket (1.2.11) sha256=b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737
557
+ websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
558
+ websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
559
+ xpath (3.2.0) sha256=6dfda79d91bb3b949b947ecc5919f042ef2f399b904013eb3ef6d20dd3a4082e
560
+ zeitwerk (2.7.4) sha256=2bef90f356bdafe9a6c2bd32bcd804f83a4f9b8bc27f3600fff051eb3edcec8b
561
+
562
+ BUNDLED WITH
563
+ 4.0.3
@@ -0,0 +1,41 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
3
+
4
+ SPDX-License-Identifier: AGPL-3.0-or-later
5
+ -->
6
+
7
+ # Tokra Rails + SQLite Verification App
8
+
9
+ A minimal Rails 8.1 to-do application demonstrating Tokra's custom protocol
10
+ integration with a full-stack Rails app using SQLite.
11
+
12
+ ## Purpose
13
+
14
+ This example verifies that:
15
+ 1. Rails can run inside Tokra via `Rack::Handler::Tokra`
16
+ 2. SQLite database works correctly with the Ractor model
17
+ 3. Turbo/Hotwire updates work through the custom protocol
18
+ 4. Form submissions and redirects function properly
19
+
20
+ ## Running
21
+
22
+ ```bash
23
+ cd examples/verify_rails_sqlite
24
+ bin/rails db:migrate
25
+ bin/rails server
26
+ ```
27
+
28
+ Then open http://localhost:3000 in your browser.
29
+
30
+ ## Design
31
+
32
+ Uses the **Refined Paper** aesthetic:
33
+ - Warm cream/umber palette with OKLCH color functions
34
+ - Crimson Pro serif for display typography
35
+ - Source Sans 3 for body text
36
+ - Full dark mode support via `prefers-color-scheme`
37
+ - Editorial, asymmetric layout
38
+
39
+ ## Architecture
40
+
41
+ See [ADR 002](../../doc/contributors/adr/002.md) for the Tokra Rails architecture.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative "config/application"
5
+
6
+ Rails.application.load_tasks