@velony/domain 3.0.0 → 3.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.
package/README.md CHANGED
@@ -123,11 +123,7 @@ declare module '@velony/domain' {
123
123
  }
124
124
  }
125
125
 
126
- class OrderPlacedEvent extends DomainEvent<'order.placed'> {
127
- constructor(aggregateId: OrderId, total: number) {
128
- super('order.placed', aggregateId, { total });
129
- }
130
- }
126
+ class OrderPlacedEvent extends DomainEvent<'order.placed'> {}
131
127
 
132
128
  class Order extends AggregateRoot<OrderId> {
133
129
  constructor(
@@ -139,7 +135,7 @@ class Order extends AggregateRoot<OrderId> {
139
135
 
140
136
  place(): void {
141
137
  this.pushDomainEvent(
142
- new OrderPlacedEvent(this.id, this.total)
138
+ new OrderPlacedEvent('order.placed', this.id, { total: this.total })
143
139
  );
144
140
  }
145
141
  }
@@ -175,14 +171,13 @@ declare module '@velony/domain' {
175
171
  }
176
172
  }
177
173
 
178
- class UserRegisteredEvent extends DomainEvent<'user.registered'> {
179
- constructor(aggregateId: UserId, email: string, name: string) {
180
- super('user.registered', aggregateId, { email, name });
181
- }
182
- }
174
+ class UserRegisteredEvent extends DomainEvent<'user.registered'> {}
183
175
 
184
176
  const userId = UserId.create('user-123');
185
- const event = new UserRegisteredEvent(userId, 'john@example.com', 'John Doe');
177
+ const event = new UserRegisteredEvent('user.registered', userId, {
178
+ email: 'john@example.com',
179
+ name: 'John Doe'
180
+ });
186
181
  console.log(event.id); // UUIDv7
187
182
  console.log(event.type); // "user.registered"
188
183
  console.log(event.occurredAt); // Date
@@ -49,9 +49,9 @@ export declare abstract class DomainEvent<TType extends keyof DomainEventRegistr
49
49
  * @param type - The event type identifier
50
50
  * @param aggregateId - The ID of the aggregate that produced this event
51
51
  * @param payload - The event-specific data
52
- * @protected
52
+ * @public
53
53
  */
54
- protected constructor(type: TType, aggregateId: DomainEventRegistry[TType]['aggregateId'], payload: DomainEventRegistry[TType]['payload']);
54
+ constructor(type: TType, aggregateId: DomainEventRegistry[TType]['aggregateId'], payload: DomainEventRegistry[TType]['payload']);
55
55
  }
56
56
  /**
57
57
  * Union type representing any domain event registered in the DomainEventRegistry.
@@ -41,7 +41,7 @@ class DomainEvent {
41
41
  * @param type - The event type identifier
42
42
  * @param aggregateId - The ID of the aggregate that produced this event
43
43
  * @param payload - The event-specific data
44
- * @protected
44
+ * @public
45
45
  */
46
46
  constructor(type, aggregateId, payload) {
47
47
  this.type = type;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velony/domain",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "TypeScript library providing core building blocks for Domain-Driven Design (DDD) applications",
5
5
  "keywords": [
6
6
  "ddd",