rhales 0.4.0 → 0.5.3

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/.github/renovate.json5 +52 -0
  3. data/.github/workflows/ci.yml +123 -0
  4. data/.github/workflows/claude-code-review.yml +69 -0
  5. data/.github/workflows/claude.yml +49 -0
  6. data/.github/workflows/code-smells.yml +146 -0
  7. data/.github/workflows/ruby-lint.yml +78 -0
  8. data/.github/workflows/yardoc.yml +126 -0
  9. data/.gitignore +55 -0
  10. data/.pr_agent.toml +63 -0
  11. data/.pre-commit-config.yaml +89 -0
  12. data/.prettierignore +8 -0
  13. data/.prettierrc +38 -0
  14. data/.reek.yml +98 -0
  15. data/.rubocop.yml +428 -0
  16. data/.serena/.gitignore +3 -0
  17. data/.yardopts +56 -0
  18. data/CHANGELOG.md +44 -0
  19. data/CLAUDE.md +1 -1
  20. data/Gemfile +29 -0
  21. data/Gemfile.lock +189 -0
  22. data/README.md +686 -868
  23. data/Rakefile +46 -0
  24. data/debug_context.rb +25 -0
  25. data/demo/rhales-roda-demo/.gitignore +7 -0
  26. data/demo/rhales-roda-demo/Gemfile +32 -0
  27. data/demo/rhales-roda-demo/Gemfile.lock +151 -0
  28. data/demo/rhales-roda-demo/MAIL.md +405 -0
  29. data/demo/rhales-roda-demo/README.md +376 -0
  30. data/demo/rhales-roda-demo/RODA-TEMPLATE-ENGINES.md +192 -0
  31. data/demo/rhales-roda-demo/Rakefile +49 -0
  32. data/demo/rhales-roda-demo/app.rb +325 -0
  33. data/demo/rhales-roda-demo/bin/rackup +26 -0
  34. data/demo/rhales-roda-demo/config.ru +13 -0
  35. data/demo/rhales-roda-demo/db/migrate/001_create_rodauth_tables.rb +266 -0
  36. data/demo/rhales-roda-demo/db/migrate/002_create_rodauth_password_tables.rb +79 -0
  37. data/demo/rhales-roda-demo/db/migrate/003_add_admin_account.rb +68 -0
  38. data/demo/rhales-roda-demo/templates/change_login.rue +31 -0
  39. data/demo/rhales-roda-demo/templates/change_password.rue +36 -0
  40. data/demo/rhales-roda-demo/templates/close_account.rue +31 -0
  41. data/demo/rhales-roda-demo/templates/create_account.rue +40 -0
  42. data/demo/rhales-roda-demo/templates/dashboard.rue +150 -0
  43. data/demo/rhales-roda-demo/templates/home.rue +78 -0
  44. data/demo/rhales-roda-demo/templates/layouts/main.rue +168 -0
  45. data/demo/rhales-roda-demo/templates/login.rue +65 -0
  46. data/demo/rhales-roda-demo/templates/logout.rue +25 -0
  47. data/demo/rhales-roda-demo/templates/reset_password.rue +26 -0
  48. data/demo/rhales-roda-demo/templates/verify_account.rue +27 -0
  49. data/demo/rhales-roda-demo/test_full_output.rb +27 -0
  50. data/demo/rhales-roda-demo/test_simple.rb +24 -0
  51. data/docs/.gitignore +9 -0
  52. data/docs/architecture/data-flow.md +499 -0
  53. data/examples/dashboard-with-charts.rue +271 -0
  54. data/examples/form-with-validation.rue +180 -0
  55. data/examples/simple-page.rue +61 -0
  56. data/examples/vue.rue +136 -0
  57. data/generate-json-schemas.ts +158 -0
  58. data/json_schemer_migration_summary.md +172 -0
  59. data/lib/rhales/adapters/base_auth.rb +2 -0
  60. data/lib/rhales/adapters/base_request.rb +2 -0
  61. data/lib/rhales/adapters/base_session.rb +2 -0
  62. data/lib/rhales/adapters.rb +7 -0
  63. data/lib/rhales/configuration.rb +47 -0
  64. data/lib/rhales/core/context.rb +354 -0
  65. data/lib/rhales/{rue_document.rb → core/rue_document.rb} +56 -38
  66. data/lib/rhales/{template_engine.rb → core/template_engine.rb} +66 -59
  67. data/lib/rhales/{view.rb → core/view.rb} +112 -135
  68. data/lib/rhales/{view_composition.rb → core/view_composition.rb} +78 -8
  69. data/lib/rhales/core.rb +9 -0
  70. data/lib/rhales/errors/hydration_collision_error.rb +2 -0
  71. data/lib/rhales/errors.rb +2 -0
  72. data/lib/rhales/{earliest_injection_detector.rb → hydration/earliest_injection_detector.rb} +4 -0
  73. data/lib/rhales/hydration/hydration_data_aggregator.rb +487 -0
  74. data/lib/rhales/{hydration_endpoint.rb → hydration/hydration_endpoint.rb} +16 -12
  75. data/lib/rhales/{hydration_injector.rb → hydration/hydration_injector.rb} +4 -0
  76. data/lib/rhales/{hydration_registry.rb → hydration/hydration_registry.rb} +2 -0
  77. data/lib/rhales/hydration/hydrator.rb +102 -0
  78. data/lib/rhales/{link_based_injection_detector.rb → hydration/link_based_injection_detector.rb} +4 -0
  79. data/lib/rhales/{mount_point_detector.rb → hydration/mount_point_detector.rb} +4 -0
  80. data/lib/rhales/{safe_injection_validator.rb → hydration/safe_injection_validator.rb} +4 -0
  81. data/lib/rhales/hydration.rb +13 -0
  82. data/lib/rhales/{refinements → integrations/refinements}/require_refinements.rb +3 -1
  83. data/lib/rhales/{tilt.rb → integrations/tilt.rb} +22 -15
  84. data/lib/rhales/integrations.rb +6 -0
  85. data/lib/rhales/middleware/json_responder.rb +191 -0
  86. data/lib/rhales/middleware/schema_validator.rb +300 -0
  87. data/lib/rhales/middleware.rb +6 -0
  88. data/lib/rhales/parsers/handlebars_parser.rb +2 -0
  89. data/lib/rhales/parsers/rue_format_parser.rb +9 -7
  90. data/lib/rhales/parsers.rb +9 -0
  91. data/lib/rhales/{csp.rb → security/csp.rb} +27 -3
  92. data/lib/rhales/utils/json_serializer.rb +114 -0
  93. data/lib/rhales/utils/logging_helpers.rb +75 -0
  94. data/lib/rhales/utils/schema_extractor.rb +132 -0
  95. data/lib/rhales/utils/schema_generator.rb +194 -0
  96. data/lib/rhales/utils.rb +40 -0
  97. data/lib/rhales/version.rb +3 -1
  98. data/lib/rhales.rb +41 -24
  99. data/lib/tasks/rhales_schema.rake +197 -0
  100. data/package.json +10 -0
  101. data/pnpm-lock.yaml +345 -0
  102. data/pnpm-workspace.yaml +2 -0
  103. data/proofs/error_handling.rb +79 -0
  104. data/proofs/expanded_object_inheritance.rb +82 -0
  105. data/proofs/partial_context_scoping_fix.rb +168 -0
  106. data/proofs/ui_context_partial_inheritance.rb +236 -0
  107. data/rhales.gemspec +14 -6
  108. data/schema_vs_data_comparison.md +254 -0
  109. data/test_direct_access.rb +36 -0
  110. metadata +141 -23
  111. data/CLAUDE.locale.txt +0 -7
  112. data/lib/rhales/context.rb +0 -239
  113. data/lib/rhales/hydration_data_aggregator.rb +0 -221
  114. data/lib/rhales/hydrator.rb +0 -141
  115. data/lib/rhales/parsers/handlebars-grammar-review.txt +0 -39
data/Gemfile.lock ADDED
@@ -0,0 +1,189 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rhales (0.5.3)
5
+ json_schemer (~> 2.3)
6
+ logger
7
+ tilt (~> 2)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ ast (2.4.3)
13
+ benchmark (0.4.0)
14
+ benchmark-ips (2.14.0)
15
+ bigdecimal (3.3.1)
16
+ concurrent-ruby (1.3.5)
17
+ date (3.4.1)
18
+ debug (1.11.0)
19
+ irb (~> 1.10)
20
+ reline (>= 0.3.8)
21
+ diff-lcs (1.6.2)
22
+ docile (1.4.1)
23
+ dry-configurable (1.3.0)
24
+ dry-core (~> 1.1)
25
+ zeitwerk (~> 2.6)
26
+ dry-core (1.1.0)
27
+ concurrent-ruby (~> 1.0)
28
+ logger
29
+ zeitwerk (~> 2.6)
30
+ dry-inflector (1.2.0)
31
+ dry-initializer (3.2.0)
32
+ dry-logic (1.6.0)
33
+ bigdecimal
34
+ concurrent-ruby (~> 1.0)
35
+ dry-core (~> 1.1)
36
+ zeitwerk (~> 2.6)
37
+ dry-schema (1.14.1)
38
+ concurrent-ruby (~> 1.0)
39
+ dry-configurable (~> 1.0, >= 1.0.1)
40
+ dry-core (~> 1.1)
41
+ dry-initializer (~> 3.2)
42
+ dry-logic (~> 1.5)
43
+ dry-types (~> 1.8)
44
+ zeitwerk (~> 2.6)
45
+ dry-types (1.8.3)
46
+ bigdecimal (~> 3.0)
47
+ concurrent-ruby (~> 1.0)
48
+ dry-core (~> 1.0)
49
+ dry-inflector (~> 1.0)
50
+ dry-logic (~> 1.4)
51
+ zeitwerk (~> 2.6)
52
+ erb (5.1.1)
53
+ hana (1.3.7)
54
+ io-console (0.8.1)
55
+ irb (1.15.2)
56
+ pp (>= 0.6.0)
57
+ rdoc (>= 4.0.0)
58
+ reline (>= 0.4.2)
59
+ json (2.12.2)
60
+ json_schemer (2.4.0)
61
+ bigdecimal
62
+ hana (~> 1.3)
63
+ regexp_parser (~> 2.0)
64
+ simpleidn (~> 0.2)
65
+ kramdown (2.5.1)
66
+ rexml (>= 3.3.9)
67
+ language_server-protocol (3.17.0.5)
68
+ lint_roller (1.1.0)
69
+ logger (1.7.0)
70
+ parallel (1.27.0)
71
+ parser (3.3.8.0)
72
+ ast (~> 2.4.1)
73
+ racc
74
+ pp (0.6.3)
75
+ prettyprint
76
+ prettier_print (1.2.1)
77
+ prettyprint (0.2.0)
78
+ prism (1.4.0)
79
+ psych (5.2.6)
80
+ date
81
+ stringio
82
+ racc (1.8.1)
83
+ rack (3.2.3)
84
+ rack-proxy (0.7.7)
85
+ rack
86
+ rack-test (2.2.0)
87
+ rack (>= 1.3)
88
+ rainbow (3.1.1)
89
+ rake (13.3.0)
90
+ rdoc (6.15.0)
91
+ erb
92
+ psych (>= 4.0.0)
93
+ tsort
94
+ reek (6.5.0)
95
+ dry-schema (~> 1.13)
96
+ logger (~> 1.6)
97
+ parser (~> 3.3.0)
98
+ rainbow (>= 2.0, < 4.0)
99
+ rexml (~> 3.1)
100
+ regexp_parser (2.10.0)
101
+ reline (0.6.2)
102
+ io-console (~> 0.5)
103
+ rexml (3.4.1)
104
+ rspec (3.13.1)
105
+ rspec-core (~> 3.13.0)
106
+ rspec-expectations (~> 3.13.0)
107
+ rspec-mocks (~> 3.13.0)
108
+ rspec-core (3.13.5)
109
+ rspec-support (~> 3.13.0)
110
+ rspec-expectations (3.13.5)
111
+ diff-lcs (>= 1.2.0, < 2.0)
112
+ rspec-support (~> 3.13.0)
113
+ rspec-mocks (3.13.5)
114
+ diff-lcs (>= 1.2.0, < 2.0)
115
+ rspec-support (~> 3.13.0)
116
+ rspec-support (3.13.4)
117
+ rubocop (1.81.0)
118
+ json (~> 2.3)
119
+ language_server-protocol (~> 3.17.0.2)
120
+ lint_roller (~> 1.1.0)
121
+ parallel (~> 1.10)
122
+ parser (>= 3.3.0.2)
123
+ rainbow (>= 2.2.2, < 4.0)
124
+ regexp_parser (>= 2.9.3, < 3.0)
125
+ rubocop-ast (>= 1.47.1, < 2.0)
126
+ ruby-progressbar (~> 1.7)
127
+ unicode-display_width (>= 2.4.0, < 4.0)
128
+ rubocop-ast (1.47.1)
129
+ parser (>= 3.3.7.2)
130
+ prism (~> 1.4)
131
+ rubocop-performance (1.25.0)
132
+ lint_roller (~> 1.1)
133
+ rubocop (>= 1.75.0, < 2.0)
134
+ rubocop-ast (>= 1.38.0, < 2.0)
135
+ rubocop-rspec (3.6.0)
136
+ lint_roller (~> 1.1)
137
+ rubocop (~> 1.72, >= 1.72.1)
138
+ rubocop-thread_safety (0.7.3)
139
+ lint_roller (~> 1.1)
140
+ rubocop (~> 1.72, >= 1.72.1)
141
+ rubocop-ast (>= 1.44.0, < 2.0)
142
+ ruby-progressbar (1.13.0)
143
+ simplecov (0.22.0)
144
+ docile (~> 1.1)
145
+ simplecov-html (~> 0.11)
146
+ simplecov_json_formatter (~> 0.1)
147
+ simplecov-html (0.13.1)
148
+ simplecov_json_formatter (0.1.4)
149
+ simpleidn (0.2.3)
150
+ stackprof (0.2.27)
151
+ stringio (3.1.7)
152
+ syntax_tree (6.2.0)
153
+ prettier_print (>= 1.2.0)
154
+ tilt (2.6.1)
155
+ tsort (0.2.0)
156
+ unicode-display_width (3.1.4)
157
+ unicode-emoji (~> 4.0, >= 4.0.4)
158
+ unicode-emoji (4.0.4)
159
+ yard (0.9.37)
160
+ zeitwerk (2.7.3)
161
+
162
+ PLATFORMS
163
+ arm64-darwin-24
164
+ ruby
165
+
166
+ DEPENDENCIES
167
+ benchmark
168
+ benchmark-ips (~> 2.0)
169
+ bundler (~> 2.0)
170
+ debug
171
+ kramdown (~> 2.0)
172
+ rack (>= 3.2, < 4.0)
173
+ rack-proxy
174
+ rack-test
175
+ rake (~> 13.0)
176
+ reek (~> 6.5)
177
+ rhales!
178
+ rspec (~> 3.12)
179
+ rubocop (= 1.81)
180
+ rubocop-performance
181
+ rubocop-rspec
182
+ rubocop-thread_safety
183
+ simplecov (~> 0.22)
184
+ stackprof
185
+ syntax_tree
186
+ yard (~> 0.9)
187
+
188
+ BUNDLED WITH
189
+ 2.6.6