yes-core 1.2.0 → 2.2.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +13 -0
  4. data/lib/yes/core/active_job_serializers/command_group_serializer.rb +7 -4
  5. data/lib/yes/core/aggregate/dsl/class_name_convention.rb +8 -0
  6. data/lib/yes/core/aggregate/dsl/class_resolvers/command_group/base.rb +34 -0
  7. data/lib/yes/core/aggregate/dsl/class_resolvers/command_group/command.rb +43 -0
  8. data/lib/yes/core/aggregate/dsl/class_resolvers/command_group/guard_evaluator.rb +35 -0
  9. data/lib/yes/core/aggregate/dsl/command_group_data.rb +45 -0
  10. data/lib/yes/core/aggregate/dsl/command_group_definer.rb +100 -0
  11. data/lib/yes/core/aggregate/dsl/method_definers/command_group/base.rb +29 -0
  12. data/lib/yes/core/aggregate/dsl/method_definers/command_group/can_command_group.rb +41 -0
  13. data/lib/yes/core/aggregate/dsl/method_definers/command_group/command_group.rb +40 -0
  14. data/lib/yes/core/aggregate.rb +50 -0
  15. data/lib/yes/core/authorization/command_cerbos_authorizer.rb +20 -5
  16. data/lib/yes/core/authorization/lookup_cache.rb +72 -0
  17. data/lib/yes/core/command_handling/command_group_executor.rb +237 -0
  18. data/lib/yes/core/command_handling/command_group_handler.rb +89 -0
  19. data/lib/yes/core/command_handling/event_publisher.rb +8 -3
  20. data/lib/yes/core/commands/command_group.rb +152 -0
  21. data/lib/yes/core/commands/command_group_response.rb +66 -0
  22. data/lib/yes/core/commands/group.rb +7 -12
  23. data/lib/yes/core/commands/group_payload_normalizer.rb +45 -0
  24. data/lib/yes/core/commands/processor.rb +28 -7
  25. data/lib/yes/core/commands/stateless/handler.rb +9 -3
  26. data/lib/yes/core/commands/stateless/handler_helpers.rb +1 -1
  27. data/lib/yes/core/configuration.rb +39 -0
  28. data/lib/yes/core/data_decryptor.rb +2 -2
  29. data/lib/yes/core/data_encryptor.rb +6 -2
  30. data/lib/yes/core/failed_subscription_notifier.rb +29 -0
  31. data/lib/yes/core/middlewares/encryptor.rb +9 -1
  32. data/lib/yes/core/middlewares/write_encryptor.rb +35 -0
  33. data/lib/yes/core/middlewares.rb +45 -0
  34. data/lib/yes/core/railtie.rb +20 -0
  35. data/lib/yes/core/test_support/aggregate/command_test_dsl.rb +77 -2
  36. data/lib/yes/core/test_support/aggregate/shared_examples.rb +45 -0
  37. data/lib/yes/core/test_support/event_helpers.rb +1 -1
  38. data/lib/yes/core/types.rb +8 -1
  39. data/lib/yes/core/utils/command_utils.rb +21 -0
  40. data/lib/yes/core/utils/hash_utils.rb +7 -2
  41. data/lib/yes/core/version.rb +1 -1
  42. metadata +19 -3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yes-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nico Ritsche
@@ -127,14 +127,14 @@ dependencies:
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '1.0'
130
+ version: '3.0'
131
131
  type: :runtime
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '1.0'
137
+ version: '3.0'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: rails
140
140
  requirement: !ruby/object:Gem::Requirement
@@ -195,11 +195,16 @@ files:
195
195
  - lib/yes/core/aggregate/dsl/class_resolvers/command/guard_evaluator.rb
196
196
  - lib/yes/core/aggregate/dsl/class_resolvers/command/simple_authorizer.rb
197
197
  - lib/yes/core/aggregate/dsl/class_resolvers/command/state_updater.rb
198
+ - lib/yes/core/aggregate/dsl/class_resolvers/command_group/base.rb
199
+ - lib/yes/core/aggregate/dsl/class_resolvers/command_group/command.rb
200
+ - lib/yes/core/aggregate/dsl/class_resolvers/command_group/guard_evaluator.rb
198
201
  - lib/yes/core/aggregate/dsl/class_resolvers/read_model.rb
199
202
  - lib/yes/core/aggregate/dsl/class_resolvers/read_model_filter.rb
200
203
  - lib/yes/core/aggregate/dsl/class_resolvers/read_model_serializer.rb
201
204
  - lib/yes/core/aggregate/dsl/command_data.rb
202
205
  - lib/yes/core/aggregate/dsl/command_definer.rb
206
+ - lib/yes/core/aggregate/dsl/command_group_data.rb
207
+ - lib/yes/core/aggregate/dsl/command_group_definer.rb
203
208
  - lib/yes/core/aggregate/dsl/command_shortcut_expander.rb
204
209
  - lib/yes/core/aggregate/dsl/constant_resolver.rb
205
210
  - lib/yes/core/aggregate/dsl/method_definers/attribute/accessor.rb
@@ -208,6 +213,9 @@ files:
208
213
  - lib/yes/core/aggregate/dsl/method_definers/command/base.rb
209
214
  - lib/yes/core/aggregate/dsl/method_definers/command/can_command.rb
210
215
  - lib/yes/core/aggregate/dsl/method_definers/command/command.rb
216
+ - lib/yes/core/aggregate/dsl/method_definers/command_group/base.rb
217
+ - lib/yes/core/aggregate/dsl/method_definers/command_group/can_command_group.rb
218
+ - lib/yes/core/aggregate/dsl/method_definers/command_group/command_group.rb
211
219
  - lib/yes/core/aggregate/has_authorizer.rb
212
220
  - lib/yes/core/aggregate/has_read_model.rb
213
221
  - lib/yes/core/aggregate/read_model_rebuilder.rb
@@ -216,6 +224,7 @@ files:
216
224
  - lib/yes/core/authorization/cerbos_client_provider.rb
217
225
  - lib/yes/core/authorization/command_authorizer.rb
218
226
  - lib/yes/core/authorization/command_cerbos_authorizer.rb
227
+ - lib/yes/core/authorization/lookup_cache.rb
219
228
  - lib/yes/core/authorization/read_model_authorizer.rb
220
229
  - lib/yes/core/authorization/read_models_authorizer.rb
221
230
  - lib/yes/core/authorization/read_request_authorizer.rb
@@ -223,6 +232,8 @@ files:
223
232
  - lib/yes/core/command.rb
224
233
  - lib/yes/core/command_handling/aggregate_tracker.rb
225
234
  - lib/yes/core/command_handling/command_executor.rb
235
+ - lib/yes/core/command_handling/command_group_executor.rb
236
+ - lib/yes/core/command_handling/command_group_handler.rb
226
237
  - lib/yes/core/command_handling/command_handler.rb
227
238
  - lib/yes/core/command_handling/event_publisher.rb
228
239
  - lib/yes/core/command_handling/guard_evaluator.rb
@@ -233,7 +244,10 @@ files:
233
244
  - lib/yes/core/command_handling/read_model_updater.rb
234
245
  - lib/yes/core/command_handling/state_updater.rb
235
246
  - lib/yes/core/commands/bus.rb
247
+ - lib/yes/core/commands/command_group.rb
248
+ - lib/yes/core/commands/command_group_response.rb
236
249
  - lib/yes/core/commands/group.rb
250
+ - lib/yes/core/commands/group_payload_normalizer.rb
237
251
  - lib/yes/core/commands/group_response.rb
238
252
  - lib/yes/core/commands/helper.rb
239
253
  - lib/yes/core/commands/notifier.rb
@@ -254,6 +268,7 @@ files:
254
268
  - lib/yes/core/error_messages.rb
255
269
  - lib/yes/core/event.rb
256
270
  - lib/yes/core/event_class_resolver.rb
271
+ - lib/yes/core/failed_subscription_notifier.rb
257
272
  - lib/yes/core/generators/read_models/add_pending_update_tracking_generator.rb
258
273
  - lib/yes/core/generators/read_models/templates/add_pending_update_tracking.rb.erb
259
274
  - lib/yes/core/generators/read_models/templates/migration.rb.erb
@@ -263,6 +278,7 @@ files:
263
278
  - lib/yes/core/middlewares/encryptor.rb
264
279
  - lib/yes/core/middlewares/timestamp.rb
265
280
  - lib/yes/core/middlewares/with_indifferent_access.rb
281
+ - lib/yes/core/middlewares/write_encryptor.rb
266
282
  - lib/yes/core/models/application_record.rb
267
283
  - lib/yes/core/open_telemetry/otl_span.rb
268
284
  - lib/yes/core/open_telemetry/trackable.rb