eva4j 1.0.11 → 1.0.13

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 (73) hide show
  1. package/AGENTS.md +441 -14
  2. package/DOMAIN_YAML_GUIDE.md +425 -21
  3. package/FUTURE_FEATURES.md +315 -115
  4. package/QUICK_REFERENCE.md +101 -153
  5. package/README.md +77 -70
  6. package/bin/eva4j.js +57 -1
  7. package/config/defaults.json +3 -0
  8. package/docs/commands/GENERATE_ENTITIES.md +662 -1968
  9. package/docs/commands/GENERATE_HTTP_EXCHANGE.md +274 -450
  10. package/docs/commands/GENERATE_KAFKA_EVENT.md +219 -498
  11. package/docs/commands/GENERATE_KAFKA_LISTENER.md +18 -18
  12. package/docs/commands/GENERATE_RECORD.md +335 -311
  13. package/docs/commands/GENERATE_TEMPORAL_ACTIVITY.md +174 -0
  14. package/docs/commands/GENERATE_TEMPORAL_FLOW.md +237 -0
  15. package/docs/commands/GENERATE_USECASE.md +216 -282
  16. package/docs/commands/INDEX.md +36 -7
  17. package/examples/doctor-evaluation.yaml +3 -3
  18. package/examples/domain-audit-complete.yaml +2 -2
  19. package/examples/domain-collections.yaml +2 -2
  20. package/examples/domain-ecommerce.yaml +2 -2
  21. package/examples/domain-events.yaml +201 -0
  22. package/examples/domain-field-visibility.yaml +11 -5
  23. package/examples/domain-multi-aggregate.yaml +12 -6
  24. package/examples/domain-one-to-many.yaml +1 -1
  25. package/examples/domain-one-to-one.yaml +1 -1
  26. package/examples/domain-secondary-onetomany.yaml +1 -1
  27. package/examples/domain-secondary-onetoone.yaml +1 -1
  28. package/examples/domain-simple.yaml +1 -1
  29. package/examples/domain-soft-delete.yaml +3 -3
  30. package/examples/domain-transitions.yaml +1 -1
  31. package/examples/domain-value-objects.yaml +1 -1
  32. package/package.json +2 -2
  33. package/src/commands/add-kafka-client.js +3 -1
  34. package/src/commands/add-temporal-client.js +286 -0
  35. package/src/commands/generate-entities.js +75 -4
  36. package/src/commands/generate-kafka-event.js +273 -89
  37. package/src/commands/generate-temporal-activity.js +228 -0
  38. package/src/commands/generate-temporal-flow.js +216 -0
  39. package/src/generators/module-generator.js +1 -0
  40. package/src/generators/shared-generator.js +26 -0
  41. package/src/utils/yaml-to-entity.js +93 -4
  42. package/templates/aggregate/AggregateRepository.java.ejs +3 -2
  43. package/templates/aggregate/AggregateRepositoryImpl.java.ejs +15 -7
  44. package/templates/aggregate/AggregateRoot.java.ejs +38 -2
  45. package/templates/aggregate/DomainEntity.java.ejs +6 -2
  46. package/templates/aggregate/DomainEventHandler.java.ejs +62 -0
  47. package/templates/aggregate/DomainEventRecord.java.ejs +50 -0
  48. package/templates/aggregate/JpaAggregateRoot.java.ejs +3 -1
  49. package/templates/aggregate/JpaEntity.java.ejs +3 -1
  50. package/templates/base/docker/kafka-services.yaml.ejs +2 -2
  51. package/templates/base/docker/temporal-services.yaml.ejs +29 -0
  52. package/templates/base/resources/parameters/develop/temporal.yaml.ejs +9 -0
  53. package/templates/base/resources/parameters/local/temporal.yaml.ejs +9 -0
  54. package/templates/base/resources/parameters/production/temporal.yaml.ejs +9 -0
  55. package/templates/base/resources/parameters/test/temporal.yaml.ejs +9 -0
  56. package/templates/base/root/AGENTS.md.ejs +916 -51
  57. package/templates/crud/Controller.java.ejs +36 -6
  58. package/templates/crud/ListQuery.java.ejs +6 -2
  59. package/templates/crud/ListQueryHandler.java.ejs +24 -10
  60. package/templates/crud/UpdateCommand.java.ejs +52 -0
  61. package/templates/crud/UpdateCommandHandler.java.ejs +105 -0
  62. package/templates/kafka-event/DomainEventHandlerMethod.ejs +1 -0
  63. package/templates/kafka-event/Event.java.ejs +23 -0
  64. package/templates/shared/application/dtos/PagedResponse.java.ejs +30 -0
  65. package/templates/shared/configurations/temporalConfig/TemporalConfig.java.ejs +104 -0
  66. package/templates/shared/domain/DomainEvent.java.ejs +40 -0
  67. package/templates/shared/interfaces/HeavyActivity.java.ejs +4 -0
  68. package/templates/shared/interfaces/LightActivity.java.ejs +4 -0
  69. package/templates/temporal-activity/ActivityImpl.java.ejs +14 -0
  70. package/templates/temporal-activity/ActivityInterface.java.ejs +11 -0
  71. package/templates/temporal-flow/WorkFlowImpl.java.ejs +64 -0
  72. package/templates/temporal-flow/WorkFlowInterface.java.ejs +19 -0
  73. package/templates/temporal-flow/WorkFlowService.java.ejs +49 -0
@@ -25,7 +25,7 @@ The command generates Spring Kafka `@KafkaListener` components that automaticall
25
25
  ## Syntax
26
26
 
27
27
  ```bash
28
- eva4j generate kafka-listener <module>
28
+ eva generate kafka-listener <module>
29
29
  ```
30
30
 
31
31
  ### Parameters
@@ -50,7 +50,7 @@ After running the command, you'll be prompted to:
50
50
  ### 1. Kafka Client Must Be Installed
51
51
 
52
52
  ```bash
53
- eva4j add kafka-client
53
+ eva add kafka-client
54
54
  ```
55
55
 
56
56
  This configures:
@@ -72,7 +72,7 @@ topics:
72
72
 
73
73
  **Tip:** Generate topics using:
74
74
  ```bash
75
- eva4j generate kafka-event <module> <event-name>
75
+ eva generate kafka-event <module> <event-name>
76
76
  ```
77
77
 
78
78
  ---
@@ -83,7 +83,7 @@ eva4j generate kafka-event <module> <event-name>
83
83
 
84
84
  ```bash
85
85
  # Create listeners in 'user' module
86
- eva4j generate kafka-listener user
86
+ eva generate kafka-listener user
87
87
 
88
88
  # Select topics from interactive menu:
89
89
  # ✓ user-created (user.events.created)
@@ -146,7 +146,7 @@ public class UserUserCreatedListener {
146
146
 
147
147
  ```bash
148
148
  # Run command again to add more listeners
149
- eva4j generate kafka-listener order
149
+ eva generate kafka-listener order
150
150
 
151
151
  # Select additional topics:
152
152
  # ✓ order-shipped (order.events.shipped)
@@ -171,12 +171,12 @@ order/infrastructure/kafkaListener/
171
171
 
172
172
  ```bash
173
173
  # In user module
174
- eva4j generate kafka-listener user
174
+ eva generate kafka-listener user
175
175
  # Select: user-created
176
176
  # Generates: UserUserCreatedListener.java
177
177
 
178
178
  # In notification module
179
- eva4j generate kafka-listener notification
179
+ eva generate kafka-listener notification
180
180
  # Select: user-created
181
181
  # Generates: NotificationUserCreatedListener.java
182
182
  ```
@@ -239,11 +239,11 @@ public class UserCreatedListener {
239
239
 
240
240
  ```bash
241
241
  # Notification module listens to user-created
242
- eva4j generate kafka-listener notification
242
+ eva generate kafka-listener notification
243
243
  # Select: user-created
244
244
 
245
245
  # Analytics module also listens to user-created
246
- eva4j generate kafka-listener analytics
246
+ eva generate kafka-listener analytics
247
247
  # Select: user-created
248
248
  ```
249
249
 
@@ -330,7 +330,7 @@ topics:
330
330
  ```
331
331
  User runs command
332
332
 
333
- Validates eva4j project
333
+ Validates eva project
334
334
 
335
335
  Checks Kafka client installed
336
336
 
@@ -488,7 +488,7 @@ void handleUserCreatedListener(EventEnvelope<Map<String, Object>> event, Acknowl
488
488
  ### 1. **Notification Service**
489
489
 
490
490
  ```bash
491
- eva4j generate kafka-listener notification
491
+ eva generate kafka-listener notification
492
492
 
493
493
  # Listen to events from other services:
494
494
  # ✓ user-created (send welcome email)
@@ -499,7 +499,7 @@ eva4j generate kafka-listener notification
499
499
  ### 2. **Analytics/Audit Service**
500
500
 
501
501
  ```bash
502
- eva4j generate kafka-listener analytics
502
+ eva generate kafka-listener analytics
503
503
 
504
504
  # Listen to all domain events:
505
505
  # ✓ user-created
@@ -512,7 +512,7 @@ eva4j generate kafka-listener analytics
512
512
  ### 3. **Saga Orchestration**
513
513
 
514
514
  ```bash
515
- eva4j generate kafka-listener order
515
+ eva generate kafka-listener order
516
516
 
517
517
  # Listen to events from other services:
518
518
  # ✓ payment-processed (complete order)
@@ -523,7 +523,7 @@ eva4j generate kafka-listener order
523
523
  ### 4. **Data Synchronization**
524
524
 
525
525
  ```bash
526
- eva4j generate kafka-listener search
526
+ eva generate kafka-listener search
527
527
 
528
528
  # Keep search index updated:
529
529
  # ✓ product-created (index product)
@@ -576,14 +576,14 @@ public ConcurrentKafkaListenerContainerFactory<String, Object> kafkaListenerCont
576
576
 
577
577
  **Solution:**
578
578
  ```bash
579
- eva4j add kafka-client
579
+ eva add kafka-client
580
580
  ```
581
581
 
582
582
  ### ❌ "No topics found in kafka.yaml"
583
583
 
584
584
  **Solution:** Generate topics first:
585
585
  ```bash
586
- eva4j generate kafka-event user user-created
586
+ eva generate kafka-event user user-created
587
587
  ```
588
588
 
589
589
  Or manually add to `kafka.yaml`:
@@ -596,12 +596,12 @@ topics:
596
596
 
597
597
  **Solution:** Verify module exists:
598
598
  ```bash
599
- eva4j info
599
+ eva info
600
600
  ```
601
601
 
602
602
  If missing, create module:
603
603
  ```bash
604
- eva4j add module <module-name>
604
+ eva add module <module-name>
605
605
  ```
606
606
 
607
607
  ### ❌ Events not being consumed