source_monitor 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/agents/rails-concern.md +464 -0
  3. data/.claude/agents/rails-controller.md +424 -0
  4. data/.claude/agents/rails-hotwire.md +446 -0
  5. data/.claude/agents/rails-implement.md +374 -0
  6. data/.claude/agents/rails-job.md +334 -0
  7. data/.claude/agents/rails-lint.md +294 -0
  8. data/.claude/agents/rails-mailer.md +371 -0
  9. data/.claude/agents/rails-migration.md +449 -0
  10. data/.claude/agents/rails-model.md +420 -0
  11. data/.claude/agents/rails-policy.md +443 -0
  12. data/.claude/agents/rails-presenter.md +427 -0
  13. data/.claude/agents/rails-query.md +412 -0
  14. data/.claude/agents/rails-review.md +490 -0
  15. data/.claude/agents/rails-service.md +458 -0
  16. data/.claude/agents/rails-state-records.md +465 -0
  17. data/.claude/agents/rails-tdd.md +314 -0
  18. data/.claude/agents/rails-test.md +441 -0
  19. data/.claude/agents/rails-view-component.md +418 -0
  20. data/.claude/hooks/block-secrets.sh +52 -0
  21. data/.claude/settings.json +85 -0
  22. data/.claude/skills/action-cable-patterns/SKILL.md +296 -0
  23. data/.claude/skills/action-mailer-patterns/SKILL.md +295 -0
  24. data/.claude/skills/active-storage-setup/SKILL.md +311 -0
  25. data/.claude/skills/api-versioning/SKILL.md +294 -0
  26. data/.claude/skills/authentication-flow/SKILL.md +335 -0
  27. data/.claude/skills/authentication-flow/reference/current.md +248 -0
  28. data/.claude/skills/authentication-flow/reference/passwordless.md +253 -0
  29. data/.claude/skills/authentication-flow/reference/sessions.md +201 -0
  30. data/.claude/skills/authorization-pundit/SKILL.md +462 -0
  31. data/.claude/skills/caching-strategies/SKILL.md +350 -0
  32. data/.claude/skills/database-migrations/SKILL.md +354 -0
  33. data/.claude/skills/form-object-patterns/SKILL.md +399 -0
  34. data/.claude/skills/hotwire-patterns/SKILL.md +247 -0
  35. data/.claude/skills/hotwire-patterns/reference/stimulus.md +307 -0
  36. data/.claude/skills/hotwire-patterns/reference/tailwind-integration.md +112 -0
  37. data/.claude/skills/hotwire-patterns/reference/turbo-frames.md +158 -0
  38. data/.claude/skills/hotwire-patterns/reference/turbo-streams.md +218 -0
  39. data/.claude/skills/i18n-patterns/SKILL.md +320 -0
  40. data/.claude/skills/install/SKILL.md +367 -0
  41. data/.claude/skills/performance-optimization/SKILL.md +311 -0
  42. data/.claude/skills/rails-architecture/SKILL.md +259 -0
  43. data/.claude/skills/rails-architecture/reference/error-handling.md +333 -0
  44. data/.claude/skills/rails-architecture/reference/event-tracking.md +142 -0
  45. data/.claude/skills/rails-architecture/reference/layer-interactions.md +417 -0
  46. data/.claude/skills/rails-architecture/reference/multi-tenancy.md +152 -0
  47. data/.claude/skills/rails-architecture/reference/query-patterns.md +342 -0
  48. data/.claude/skills/rails-architecture/reference/service-patterns.md +286 -0
  49. data/.claude/skills/rails-architecture/reference/state-records.md +250 -0
  50. data/.claude/skills/rails-architecture/reference/testing-strategy.md +326 -0
  51. data/.claude/skills/rails-concern/SKILL.md +399 -0
  52. data/.claude/skills/rails-controller/SKILL.md +336 -0
  53. data/.claude/skills/rails-model-generator/SKILL.md +321 -0
  54. data/.claude/skills/rails-model-generator/reference/validations.md +298 -0
  55. data/.claude/skills/rails-presenter/SKILL.md +274 -0
  56. data/.claude/skills/rails-query-object/SKILL.md +289 -0
  57. data/.claude/skills/rails-service-object/SKILL.md +349 -0
  58. data/.claude/skills/solid-queue-setup/SKILL.md +307 -0
  59. data/.claude/skills/tdd-cycle/SKILL.md +359 -0
  60. data/.claude/skills/viewcomponent-patterns/SKILL.md +333 -0
  61. data/.gitignore +1 -0
  62. data/.rubocop.yml +2 -0
  63. data/.ruby-version +1 -1
  64. data/.vbw-planning/.notification-log.jsonl +192 -0
  65. data/.vbw-planning/.session-log.jsonl +871 -0
  66. data/.vbw-planning/PROJECT.md +51 -0
  67. data/.vbw-planning/REQUIREMENTS.md +50 -0
  68. data/.vbw-planning/SHIPPED.md +28 -0
  69. data/.vbw-planning/codebase/ARCHITECTURE.md +147 -0
  70. data/.vbw-planning/codebase/CONCERNS.md +99 -0
  71. data/.vbw-planning/codebase/CONVENTIONS.md +97 -0
  72. data/.vbw-planning/codebase/DEPENDENCIES.md +100 -0
  73. data/.vbw-planning/codebase/INDEX.md +86 -0
  74. data/.vbw-planning/codebase/META.md +42 -0
  75. data/.vbw-planning/codebase/PATTERNS.md +262 -0
  76. data/.vbw-planning/codebase/STACK.md +101 -0
  77. data/.vbw-planning/codebase/STRUCTURE.md +324 -0
  78. data/.vbw-planning/codebase/TESTING.md +154 -0
  79. data/.vbw-planning/config.json +12 -0
  80. data/.vbw-planning/discovery.json +24 -0
  81. data/.vbw-planning/milestones/default/ROADMAP.md +115 -0
  82. data/.vbw-planning/milestones/default/STATE.md +83 -0
  83. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-01-SUMMARY.md +56 -0
  84. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-01.md +187 -0
  85. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-02-SUMMARY.md +64 -0
  86. data/.vbw-planning/milestones/default/phases/01-coverage-analysis-quick-wins/PLAN-02.md +137 -0
  87. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-01-SUMMARY.md +67 -0
  88. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-01.md +142 -0
  89. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-02-SUMMARY.md +64 -0
  90. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-02.md +138 -0
  91. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-03-SUMMARY.md +85 -0
  92. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-03.md +147 -0
  93. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-04-SUMMARY.md +63 -0
  94. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-04.md +129 -0
  95. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-05-SUMMARY.md +74 -0
  96. data/.vbw-planning/milestones/default/phases/02-critical-path-test-coverage/PLAN-05.md +154 -0
  97. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/03-VERIFICATION-wave1.md +303 -0
  98. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/03-VERIFICATION.md +510 -0
  99. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-01-SUMMARY.md +61 -0
  100. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-01.md +161 -0
  101. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-02-SUMMARY.md +66 -0
  102. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-02.md +132 -0
  103. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-03-SUMMARY.md +59 -0
  104. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-03.md +171 -0
  105. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-04-SUMMARY.md +56 -0
  106. data/.vbw-planning/milestones/default/phases/03-large-file-refactoring/PLAN-04.md +152 -0
  107. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/04-CONTEXT.md +33 -0
  108. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-01-SUMMARY.md +42 -0
  109. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-01.md +119 -0
  110. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-02-SUMMARY.md +52 -0
  111. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-02.md +195 -0
  112. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-03-SUMMARY.md +79 -0
  113. data/.vbw-planning/milestones/default/phases/04-code-quality-conventions-cleanup/PLAN-03.md +130 -0
  114. data/CHANGELOG.md +28 -0
  115. data/CLAUDE.md +179 -0
  116. data/Gemfile +8 -0
  117. data/Gemfile.lock +114 -101
  118. data/Rakefile +2 -0
  119. data/app/assets/builds/source_monitor/application.css +2076 -0
  120. data/app/assets/builds/source_monitor/application.js +2758 -0
  121. data/app/assets/builds/source_monitor/application.js.map +7 -0
  122. data/app/controllers/source_monitor/application_controller.rb +2 -0
  123. data/app/controllers/source_monitor/health_controller.rb +2 -0
  124. data/app/controllers/source_monitor/import_sessions/bulk_configuration.rb +106 -0
  125. data/app/controllers/source_monitor/import_sessions/entry_annotation.rb +187 -0
  126. data/app/controllers/source_monitor/import_sessions/health_check_management.rb +112 -0
  127. data/app/controllers/source_monitor/import_sessions/opml_parser.rb +130 -0
  128. data/app/controllers/source_monitor/import_sessions_controller.rb +6 -507
  129. data/app/controllers/source_monitor/items_controller.rb +2 -0
  130. data/app/controllers/source_monitor/sources_controller.rb +0 -14
  131. data/app/helpers/source_monitor/application_helper.rb +4 -112
  132. data/app/helpers/source_monitor/health_badge_helper.rb +69 -0
  133. data/app/helpers/source_monitor/table_sort_helper.rb +53 -0
  134. data/app/jobs/source_monitor/application_job.rb +2 -0
  135. data/app/models/source_monitor/application_record.rb +2 -0
  136. data/app/models/source_monitor/log_entry.rb +0 -2
  137. data/config/coverage_baseline.json +217 -1862
  138. data/config/routes.rb +2 -0
  139. data/db/migrate/20251009103000_add_feed_content_readability_to_sources.rb +2 -0
  140. data/db/migrate/20251014171659_add_performance_indexes.rb +2 -0
  141. data/db/migrate/20251014172525_add_fetch_status_check_constraint.rb +2 -0
  142. data/db/migrate/20251108120116_refresh_fetch_status_constraint.rb +2 -0
  143. data/db/migrate/20260210204022_add_composite_index_to_log_entries.rb +17 -0
  144. data/lib/source_monitor/assets/bundler.rb +2 -0
  145. data/lib/source_monitor/assets.rb +2 -0
  146. data/lib/source_monitor/configuration/authentication_settings.rb +62 -0
  147. data/lib/source_monitor/configuration/events.rb +60 -0
  148. data/lib/source_monitor/configuration/fetching_settings.rb +27 -0
  149. data/lib/source_monitor/configuration/health_settings.rb +27 -0
  150. data/lib/source_monitor/configuration/http_settings.rb +43 -0
  151. data/lib/source_monitor/configuration/model_definition.rb +108 -0
  152. data/lib/source_monitor/configuration/models.rb +36 -0
  153. data/lib/source_monitor/configuration/realtime_settings.rb +95 -0
  154. data/lib/source_monitor/configuration/retention_settings.rb +45 -0
  155. data/lib/source_monitor/configuration/scraper_registry.rb +67 -0
  156. data/lib/source_monitor/configuration/scraping_settings.rb +39 -0
  157. data/lib/source_monitor/configuration/validation_definition.rb +32 -0
  158. data/lib/source_monitor/configuration.rb +12 -579
  159. data/lib/source_monitor/dashboard/queries/recent_activity_query.rb +138 -0
  160. data/lib/source_monitor/dashboard/queries/stats_query.rb +71 -0
  161. data/lib/source_monitor/dashboard/queries.rb +2 -195
  162. data/lib/source_monitor/engine.rb +2 -0
  163. data/lib/source_monitor/fetching/feed_fetcher/adaptive_interval.rb +141 -0
  164. data/lib/source_monitor/fetching/feed_fetcher/entry_processor.rb +89 -0
  165. data/lib/source_monitor/fetching/feed_fetcher/source_updater.rb +200 -0
  166. data/lib/source_monitor/fetching/feed_fetcher.rb +37 -379
  167. data/lib/source_monitor/items/item_creator/content_extractor.rb +113 -0
  168. data/lib/source_monitor/items/item_creator/entry_parser/media_extraction.rb +96 -0
  169. data/lib/source_monitor/items/item_creator/entry_parser.rb +294 -0
  170. data/lib/source_monitor/items/item_creator.rb +28 -455
  171. data/lib/source_monitor/setup/bundle_installer.rb +2 -0
  172. data/lib/source_monitor/setup/cli.rb +2 -0
  173. data/lib/source_monitor/setup/dependency_checker.rb +2 -0
  174. data/lib/source_monitor/setup/detectors.rb +2 -0
  175. data/lib/source_monitor/setup/gemfile_editor.rb +2 -0
  176. data/lib/source_monitor/setup/initializer_patcher.rb +2 -0
  177. data/lib/source_monitor/setup/install_generator.rb +2 -0
  178. data/lib/source_monitor/setup/migration_installer.rb +2 -0
  179. data/lib/source_monitor/setup/node_installer.rb +2 -0
  180. data/lib/source_monitor/setup/prompter.rb +2 -0
  181. data/lib/source_monitor/setup/requirements.rb +2 -0
  182. data/lib/source_monitor/setup/shell_runner.rb +2 -0
  183. data/lib/source_monitor/setup/verification/action_cable_verifier.rb +2 -0
  184. data/lib/source_monitor/setup/verification/printer.rb +2 -0
  185. data/lib/source_monitor/setup/verification/result.rb +2 -0
  186. data/lib/source_monitor/setup/verification/runner.rb +2 -0
  187. data/lib/source_monitor/setup/verification/solid_queue_verifier.rb +2 -0
  188. data/lib/source_monitor/setup/verification/telemetry_logger.rb +2 -0
  189. data/lib/source_monitor/setup/workflow.rb +2 -0
  190. data/lib/source_monitor/version.rb +3 -1
  191. data/lib/source_monitor.rb +140 -58
  192. data/lib/tasks/source_monitor_assets.rake +2 -0
  193. data/lib/tasks/source_monitor_setup.rake +2 -0
  194. data/lib/tasks/source_monitor_tasks.rake +2 -0
  195. data/source_monitor.gemspec +3 -1
  196. metadata +144 -4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- source_monitor (0.2.0)
4
+ source_monitor (0.3.0)
5
5
  cssbundling-rails (~> 1.4)
6
6
  faraday (~> 2.9)
7
7
  faraday-follow_redirects (~> 0.4)
@@ -10,7 +10,7 @@ PATH
10
10
  feedjira (>= 3.2, < 5.0)
11
11
  jsbundling-rails (~> 1.3)
12
12
  nokolexbor (~> 0.5)
13
- rails (>= 8.0.3, < 9.0)
13
+ rails (>= 8.0.3, < 10.0)
14
14
  ransack (~> 4.2)
15
15
  ruby-readability (~> 0.7)
16
16
  solid_cable (>= 3.0, < 4.0)
@@ -20,31 +20,31 @@ PATH
20
20
  GEM
21
21
  remote: https://rubygems.org/
22
22
  specs:
23
- action_text-trix (2.1.15)
23
+ action_text-trix (2.1.16)
24
24
  railties
25
- actioncable (8.1.1)
26
- actionpack (= 8.1.1)
27
- activesupport (= 8.1.1)
25
+ actioncable (8.1.2)
26
+ actionpack (= 8.1.2)
27
+ activesupport (= 8.1.2)
28
28
  nio4r (~> 2.0)
29
29
  websocket-driver (>= 0.6.1)
30
30
  zeitwerk (~> 2.6)
31
- actionmailbox (8.1.1)
32
- actionpack (= 8.1.1)
33
- activejob (= 8.1.1)
34
- activerecord (= 8.1.1)
35
- activestorage (= 8.1.1)
36
- activesupport (= 8.1.1)
31
+ actionmailbox (8.1.2)
32
+ actionpack (= 8.1.2)
33
+ activejob (= 8.1.2)
34
+ activerecord (= 8.1.2)
35
+ activestorage (= 8.1.2)
36
+ activesupport (= 8.1.2)
37
37
  mail (>= 2.8.0)
38
- actionmailer (8.1.1)
39
- actionpack (= 8.1.1)
40
- actionview (= 8.1.1)
41
- activejob (= 8.1.1)
42
- activesupport (= 8.1.1)
38
+ actionmailer (8.1.2)
39
+ actionpack (= 8.1.2)
40
+ actionview (= 8.1.2)
41
+ activejob (= 8.1.2)
42
+ activesupport (= 8.1.2)
43
43
  mail (>= 2.8.0)
44
44
  rails-dom-testing (~> 2.2)
45
- actionpack (8.1.1)
46
- actionview (= 8.1.1)
47
- activesupport (= 8.1.1)
45
+ actionpack (8.1.2)
46
+ actionview (= 8.1.2)
47
+ activesupport (= 8.1.2)
48
48
  nokogiri (>= 1.8.5)
49
49
  rack (>= 2.2.4)
50
50
  rack-session (>= 1.0.1)
@@ -52,36 +52,36 @@ GEM
52
52
  rails-dom-testing (~> 2.2)
53
53
  rails-html-sanitizer (~> 1.6)
54
54
  useragent (~> 0.16)
55
- actiontext (8.1.1)
55
+ actiontext (8.1.2)
56
56
  action_text-trix (~> 2.1.15)
57
- actionpack (= 8.1.1)
58
- activerecord (= 8.1.1)
59
- activestorage (= 8.1.1)
60
- activesupport (= 8.1.1)
57
+ actionpack (= 8.1.2)
58
+ activerecord (= 8.1.2)
59
+ activestorage (= 8.1.2)
60
+ activesupport (= 8.1.2)
61
61
  globalid (>= 0.6.0)
62
62
  nokogiri (>= 1.8.5)
63
- actionview (8.1.1)
64
- activesupport (= 8.1.1)
63
+ actionview (8.1.2)
64
+ activesupport (= 8.1.2)
65
65
  builder (~> 3.1)
66
66
  erubi (~> 1.11)
67
67
  rails-dom-testing (~> 2.2)
68
68
  rails-html-sanitizer (~> 1.6)
69
- activejob (8.1.1)
70
- activesupport (= 8.1.1)
69
+ activejob (8.1.2)
70
+ activesupport (= 8.1.2)
71
71
  globalid (>= 0.3.6)
72
- activemodel (8.1.1)
73
- activesupport (= 8.1.1)
74
- activerecord (8.1.1)
75
- activemodel (= 8.1.1)
76
- activesupport (= 8.1.1)
72
+ activemodel (8.1.2)
73
+ activesupport (= 8.1.2)
74
+ activerecord (8.1.2)
75
+ activemodel (= 8.1.2)
76
+ activesupport (= 8.1.2)
77
77
  timeout (>= 0.4.0)
78
- activestorage (8.1.1)
79
- actionpack (= 8.1.1)
80
- activejob (= 8.1.1)
81
- activerecord (= 8.1.1)
82
- activesupport (= 8.1.1)
78
+ activestorage (8.1.2)
79
+ actionpack (= 8.1.2)
80
+ activejob (= 8.1.2)
81
+ activerecord (= 8.1.2)
82
+ activesupport (= 8.1.2)
83
83
  marcel (~> 1.0)
84
- activesupport (8.1.1)
84
+ activesupport (8.1.2)
85
85
  base64
86
86
  bigdecimal
87
87
  concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -98,8 +98,8 @@ GEM
98
98
  public_suffix (>= 2.0.2, < 7.0)
99
99
  ast (2.4.3)
100
100
  base64 (0.3.0)
101
- bigdecimal (3.3.1)
102
- brakeman (7.1.0)
101
+ bigdecimal (4.0.1)
102
+ brakeman (7.1.1)
103
103
  racc
104
104
  builder (3.3.0)
105
105
  capybara (3.40.0)
@@ -111,18 +111,20 @@ GEM
111
111
  rack-test (>= 0.6.3)
112
112
  regexp_parser (>= 1.5, < 3.0)
113
113
  xpath (~> 3.2)
114
- concurrent-ruby (1.3.5)
115
- connection_pool (2.5.4)
114
+ cgi (0.5.1)
115
+ concurrent-ruby (1.3.6)
116
+ connection_pool (3.0.2)
116
117
  crack (1.0.1)
117
118
  bigdecimal
118
119
  rexml
119
120
  crass (1.0.6)
120
121
  cssbundling-rails (1.4.3)
121
122
  railties (>= 6.0.0)
122
- date (3.5.0)
123
+ date (3.5.1)
124
+ digest (3.2.1)
123
125
  docile (1.4.1)
124
126
  drb (2.2.3)
125
- erb (5.1.3)
127
+ erb (6.0.1)
126
128
  erubi (1.13.1)
127
129
  et-orbi (1.4.0)
128
130
  tzinfo
@@ -130,14 +132,14 @@ GEM
130
132
  faraday-net_http (>= 2.0, < 3.5)
131
133
  json
132
134
  logger
133
- faraday-follow_redirects (0.4.0)
135
+ faraday-follow_redirects (0.5.0)
134
136
  faraday (>= 1, < 3)
135
137
  faraday-gzip (3.0.4)
136
138
  faraday (>= 2.0, < 3)
137
139
  zlib (~> 3.0)
138
140
  faraday-net_http (3.4.1)
139
141
  net-http (>= 0.5.0)
140
- faraday-retry (2.3.2)
142
+ faraday-retry (2.4.0)
141
143
  faraday (~> 2.0)
142
144
  feedjira (4.0.1)
143
145
  logger (>= 1.0, < 2)
@@ -150,23 +152,25 @@ GEM
150
152
  activesupport (>= 6.1)
151
153
  guess_html_encoding (0.0.11)
152
154
  hashdiff (1.2.1)
153
- i18n (1.14.7)
155
+ i18n (1.14.8)
154
156
  concurrent-ruby (~> 1.0)
155
- io-console (0.8.1)
156
- irb (1.15.3)
157
+ io-console (0.8.2)
158
+ irb (1.17.0)
157
159
  pp (>= 0.6.0)
160
+ prism (>= 1.3.0)
158
161
  rdoc (>= 4.0.0)
159
162
  reline (>= 0.4.2)
160
163
  jsbundling-rails (1.3.1)
161
164
  railties (>= 6.0.0)
162
- json (2.15.2)
165
+ json (2.18.1)
163
166
  language_server-protocol (3.17.0.5)
164
167
  lint_roller (1.1.0)
165
168
  logger (1.7.0)
166
- loofah (2.24.1)
169
+ loofah (2.25.0)
167
170
  crass (~> 1.0.2)
168
171
  nokogiri (>= 1.12.0)
169
- mail (2.8.1)
172
+ mail (2.9.0)
173
+ logger
170
174
  mini_mime (>= 0.1.1)
171
175
  net-imap
172
176
  net-pop
@@ -175,10 +179,12 @@ GEM
175
179
  matrix (0.4.3)
176
180
  mini_mime (1.1.5)
177
181
  mini_portile2 (2.8.9)
178
- minitest (5.26.0)
182
+ minitest (6.0.1)
183
+ prism (~> 1.5)
184
+ minitest-mock (5.27.0)
179
185
  net-http (0.6.0)
180
186
  uri
181
- net-imap (0.5.12)
187
+ net-imap (0.6.2)
182
188
  date
183
189
  net-protocol
184
190
  net-pop (0.1.2)
@@ -187,32 +193,33 @@ GEM
187
193
  timeout
188
194
  net-smtp (0.5.1)
189
195
  net-protocol
190
- nio4r (2.7.4)
191
- nokogiri (1.18.10)
196
+ nio4r (2.7.5)
197
+ nokogiri (1.19.0)
192
198
  mini_portile2 (~> 2.8.2)
193
199
  racc (~> 1.4)
194
- nokogiri (1.18.10-aarch64-linux-gnu)
200
+ nokogiri (1.19.0-aarch64-linux-gnu)
195
201
  racc (~> 1.4)
196
- nokogiri (1.18.10-aarch64-linux-musl)
202
+ nokogiri (1.19.0-aarch64-linux-musl)
197
203
  racc (~> 1.4)
198
- nokogiri (1.18.10-arm-linux-gnu)
204
+ nokogiri (1.19.0-arm-linux-gnu)
199
205
  racc (~> 1.4)
200
- nokogiri (1.18.10-arm-linux-musl)
206
+ nokogiri (1.19.0-arm-linux-musl)
201
207
  racc (~> 1.4)
202
- nokogiri (1.18.10-arm64-darwin)
208
+ nokogiri (1.19.0-arm64-darwin)
203
209
  racc (~> 1.4)
204
- nokogiri (1.18.10-x86_64-darwin)
210
+ nokogiri (1.19.0-x86_64-darwin)
205
211
  racc (~> 1.4)
206
- nokogiri (1.18.10-x86_64-linux-gnu)
212
+ nokogiri (1.19.0-x86_64-linux-gnu)
207
213
  racc (~> 1.4)
208
- nokogiri (1.18.10-x86_64-linux-musl)
214
+ nokogiri (1.19.0-x86_64-linux-musl)
209
215
  racc (~> 1.4)
210
216
  nokolexbor (0.6.2)
211
217
  nokolexbor (0.6.2-arm64-darwin)
212
218
  nokolexbor (0.6.2-x86_64-darwin)
213
219
  nokolexbor (0.6.2-x86_64-linux)
220
+ ostruct (0.6.3)
214
221
  parallel (1.27.0)
215
- parser (3.3.9.0)
222
+ parser (3.3.10.1)
216
223
  ast (~> 2.4.1)
217
224
  racc
218
225
  pg (1.6.2)
@@ -225,12 +232,12 @@ GEM
225
232
  pp (0.6.3)
226
233
  prettyprint
227
234
  prettyprint (0.2.0)
228
- prism (1.5.1)
235
+ prism (1.9.0)
229
236
  propshaft (1.3.1)
230
237
  actionpack (>= 7.0.0)
231
238
  activesupport (>= 7.0.0)
232
239
  rack
233
- psych (5.2.6)
240
+ psych (5.3.1)
234
241
  date
235
242
  stringio
236
243
  public_suffix (6.0.2)
@@ -244,22 +251,22 @@ GEM
244
251
  rack (>= 3.0.0)
245
252
  rack-test (2.2.0)
246
253
  rack (>= 1.3)
247
- rackup (2.2.1)
254
+ rackup (2.3.1)
248
255
  rack (>= 3)
249
- rails (8.1.1)
250
- actioncable (= 8.1.1)
251
- actionmailbox (= 8.1.1)
252
- actionmailer (= 8.1.1)
253
- actionpack (= 8.1.1)
254
- actiontext (= 8.1.1)
255
- actionview (= 8.1.1)
256
- activejob (= 8.1.1)
257
- activemodel (= 8.1.1)
258
- activerecord (= 8.1.1)
259
- activestorage (= 8.1.1)
260
- activesupport (= 8.1.1)
256
+ rails (8.1.2)
257
+ actioncable (= 8.1.2)
258
+ actionmailbox (= 8.1.2)
259
+ actionmailer (= 8.1.2)
260
+ actionpack (= 8.1.2)
261
+ actiontext (= 8.1.2)
262
+ actionview (= 8.1.2)
263
+ activejob (= 8.1.2)
264
+ activemodel (= 8.1.2)
265
+ activerecord (= 8.1.2)
266
+ activestorage (= 8.1.2)
267
+ activesupport (= 8.1.2)
261
268
  bundler (>= 1.15.0)
262
- railties (= 8.1.1)
269
+ railties (= 8.1.2)
263
270
  rails-dom-testing (2.3.0)
264
271
  activesupport (>= 5.0.0)
265
272
  minitest
@@ -267,9 +274,9 @@ GEM
267
274
  rails-html-sanitizer (1.6.2)
268
275
  loofah (~> 2.21)
269
276
  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)
270
- railties (8.1.1)
271
- actionpack (= 8.1.1)
272
- activesupport (= 8.1.1)
277
+ railties (8.1.2)
278
+ actionpack (= 8.1.2)
279
+ activesupport (= 8.1.2)
273
280
  irb (~> 1.13)
274
281
  rackup (>= 1.0.0)
275
282
  rake (>= 12.2)
@@ -282,15 +289,15 @@ GEM
282
289
  activerecord (>= 7.2)
283
290
  activesupport (>= 7.2)
284
291
  i18n
285
- rdoc (6.15.1)
292
+ rdoc (7.2.0)
286
293
  erb
287
294
  psych (>= 4.0.0)
288
295
  tsort
289
296
  regexp_parser (2.11.3)
290
- reline (0.6.2)
297
+ reline (0.6.3)
291
298
  io-console (~> 0.5)
292
299
  rexml (3.4.4)
293
- rubocop (1.81.1)
300
+ rubocop (1.84.1)
294
301
  json (~> 2.3)
295
302
  language_server-protocol (~> 3.17.0.2)
296
303
  lint_roller (~> 1.1.0)
@@ -298,17 +305,17 @@ GEM
298
305
  parser (>= 3.3.0.2)
299
306
  rainbow (>= 2.2.2, < 4.0)
300
307
  regexp_parser (>= 2.9.3, < 3.0)
301
- rubocop-ast (>= 1.47.1, < 2.0)
308
+ rubocop-ast (>= 1.49.0, < 2.0)
302
309
  ruby-progressbar (~> 1.7)
303
310
  unicode-display_width (>= 2.4.0, < 4.0)
304
- rubocop-ast (1.47.1)
311
+ rubocop-ast (1.49.0)
305
312
  parser (>= 3.3.7.2)
306
- prism (~> 1.4)
307
- rubocop-performance (1.26.0)
313
+ prism (~> 1.7)
314
+ rubocop-performance (1.26.1)
308
315
  lint_roller (~> 1.1)
309
316
  rubocop (>= 1.75.0, < 2.0)
310
- rubocop-ast (>= 1.44.0, < 2.0)
311
- rubocop-rails (2.33.4)
317
+ rubocop-ast (>= 1.47.1, < 2.0)
318
+ rubocop-rails (2.34.3)
312
319
  activesupport (>= 4.2.0)
313
320
  lint_roller (~> 1.1)
314
321
  rack (>= 1.1)
@@ -350,10 +357,10 @@ GEM
350
357
  railties (>= 7.1)
351
358
  thor (>= 1.3.1)
352
359
  stackprof (0.2.27)
353
- stringio (3.1.7)
360
+ stringio (3.2.0)
354
361
  test-prof (1.4.4)
355
- thor (1.4.0)
356
- timeout (0.4.4)
362
+ thor (1.5.0)
363
+ timeout (0.6.0)
357
364
  tsort (0.2.0)
358
365
  turbo-rails (2.0.20)
359
366
  actionpack (>= 7.1.0)
@@ -362,8 +369,8 @@ GEM
362
369
  concurrent-ruby (~> 1.0)
363
370
  unicode-display_width (3.2.0)
364
371
  unicode-emoji (~> 4.1)
365
- unicode-emoji (4.1.0)
366
- uri (1.1.0)
372
+ unicode-emoji (4.2.0)
373
+ uri (1.1.1)
367
374
  useragent (0.16.11)
368
375
  vcr (6.3.1)
369
376
  base64
@@ -378,7 +385,7 @@ GEM
378
385
  websocket-extensions (0.1.5)
379
386
  xpath (3.2.0)
380
387
  nokogiri (~> 1.8)
381
- zeitwerk (2.7.3)
388
+ zeitwerk (2.7.4)
382
389
  zlib (3.2.1)
383
390
 
384
391
  PLATFORMS
@@ -395,6 +402,11 @@ PLATFORMS
395
402
  DEPENDENCIES
396
403
  brakeman
397
404
  capybara
405
+ cgi
406
+ digest
407
+ json
408
+ minitest-mock
409
+ ostruct
398
410
  pg
399
411
  propshaft
400
412
  puma
@@ -404,6 +416,7 @@ DEPENDENCIES
404
416
  source_monitor!
405
417
  stackprof
406
418
  test-prof
419
+ uri
407
420
  vcr
408
421
  webmock
409
422
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/setup"
2
4
 
3
5
  APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)