@rkrkdldkd/example-event-sourcing 0.0.2 → 0.0.4

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 (108) hide show
  1. package/dist/app.module.js +2 -1
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/common/constants.d.ts +12 -0
  4. package/dist/common/constants.js +16 -0
  5. package/dist/common/constants.js.map +1 -0
  6. package/dist/decorator/aggregate.decorator.d.ts +3 -0
  7. package/dist/decorator/aggregate.decorator.js +20 -0
  8. package/dist/decorator/aggregate.decorator.js.map +1 -0
  9. package/dist/decorator/event-handler.decorator.d.ts +4 -0
  10. package/dist/decorator/event-handler.decorator.js +17 -0
  11. package/dist/decorator/event-handler.decorator.js.map +1 -0
  12. package/dist/decorator/event.decorator.d.ts +2 -0
  13. package/dist/decorator/event.decorator.js +20 -0
  14. package/dist/decorator/event.decorator.js.map +1 -0
  15. package/dist/decorator/index.js +3 -0
  16. package/dist/decorator/index.js.map +1 -0
  17. package/dist/event-sourcing.module.d.ts +1 -2
  18. package/dist/event-sourcing.module.js +16 -6
  19. package/dist/event-sourcing.module.js.map +1 -1
  20. package/dist/helper/metadata/assume-metadata-type.d.ts +1 -0
  21. package/dist/helper/metadata/assume-metadata-type.js +11 -0
  22. package/dist/helper/metadata/assume-metadata-type.js.map +1 -0
  23. package/dist/helper/metadata/get-aggregate-metadata.d.ts +4 -0
  24. package/dist/helper/metadata/get-aggregate-metadata.js +10 -0
  25. package/dist/helper/metadata/get-aggregate-metadata.js.map +1 -0
  26. package/dist/helper/metadata/get-event-handler-metadata.d.ts +5 -0
  27. package/dist/helper/metadata/get-event-handler-metadata.js +12 -0
  28. package/dist/helper/metadata/get-event-handler-metadata.js.map +1 -0
  29. package/dist/helper/metadata/get-event-metadata.d.ts +4 -0
  30. package/dist/helper/metadata/get-event-metadata.js +9 -0
  31. package/dist/helper/metadata/get-event-metadata.js.map +1 -0
  32. package/dist/index.d.ts +17 -3
  33. package/dist/index.js +31 -7
  34. package/dist/index.js.map +1 -1
  35. package/dist/interface/aggregate/aggregate-metadata.interface.d.ts +5 -0
  36. package/dist/interface/aggregate/aggregate-metadata.interface.js +3 -0
  37. package/dist/interface/aggregate/aggregate-metadata.interface.js.map +1 -0
  38. package/dist/interface/aggregate/event-handler-method.type.d.ts +2 -0
  39. package/dist/interface/aggregate/event-handler-method.type.js +3 -0
  40. package/dist/interface/aggregate/event-handler-method.type.js.map +1 -0
  41. package/dist/interface/class-constructor.type.d.ts +3 -0
  42. package/dist/interface/class-constructor.type.js +3 -0
  43. package/dist/interface/class-constructor.type.js.map +1 -0
  44. package/dist/interface/event/event-envelope-metadata.interface.d.ts +8 -0
  45. package/dist/interface/event/event-envelope-metadata.interface.js +3 -0
  46. package/dist/interface/event/event-envelope-metadata.interface.js.map +1 -0
  47. package/dist/interface/event/event-handler-metadata.interface.d.ts +3 -0
  48. package/dist/interface/event/event-handler-metadata.interface.js +3 -0
  49. package/dist/interface/event/event-handler-metadata.interface.js.map +1 -0
  50. package/dist/interface/event/event-metadata.interface.d.ts +4 -0
  51. package/dist/interface/event/event-metadata.interface.js +3 -0
  52. package/dist/interface/event/event-metadata.interface.js.map +1 -0
  53. package/dist/interface/event/event-publisher.interface.d.ts +4 -0
  54. package/dist/interface/event/event-publisher.interface.js +3 -0
  55. package/dist/interface/event/event-publisher.interface.js.map +1 -0
  56. package/dist/interface/event/event.interface.d.ts +2 -0
  57. package/dist/interface/event/event.interface.js +3 -0
  58. package/dist/interface/event/event.interface.js.map +1 -0
  59. package/dist/interface/postgres-event-store-config.d.ts +6 -0
  60. package/dist/interface/postgres-event-store-config.js.map +1 -0
  61. package/dist/interface/postgres-snapshot-store-config.d.ts +7 -0
  62. package/dist/interface/postgres-snapshot-store-config.js +3 -0
  63. package/dist/interface/postgres-snapshot-store-config.js.map +1 -0
  64. package/dist/model/aggregate.root.d.ts +14 -0
  65. package/dist/model/aggregate.root.js +45 -0
  66. package/dist/model/aggregate.root.js.map +1 -0
  67. package/dist/model/event-envelope.d.ts +12 -0
  68. package/dist/model/event-envelope.js +29 -0
  69. package/dist/model/event-envelope.js.map +1 -0
  70. package/dist/{src/temp.event-store.d.ts → temp.event-store.d.ts} +2 -1
  71. package/dist/temp.event-store.js.map +1 -0
  72. package/dist/tsconfig.build.tsbuildinfo +1 -1
  73. package/package.json +1 -7
  74. package/dist/example/src/app.controller.d.ts +0 -6
  75. package/dist/example/src/app.controller.js +0 -35
  76. package/dist/example/src/app.controller.js.map +0 -1
  77. package/dist/example/src/app.module.d.ts +0 -2
  78. package/dist/example/src/app.module.js +0 -22
  79. package/dist/example/src/app.module.js.map +0 -1
  80. package/dist/example/src/app.service.d.ts +0 -3
  81. package/dist/example/src/app.service.js +0 -20
  82. package/dist/example/src/app.service.js.map +0 -1
  83. package/dist/example/src/main.js +0 -10
  84. package/dist/example/src/main.js.map +0 -1
  85. package/dist/src/app.controller.d.ts +0 -6
  86. package/dist/src/app.controller.js +0 -35
  87. package/dist/src/app.controller.js.map +0 -1
  88. package/dist/src/app.module.d.ts +0 -2
  89. package/dist/src/app.module.js +0 -23
  90. package/dist/src/app.module.js.map +0 -1
  91. package/dist/src/app.service.d.ts +0 -3
  92. package/dist/src/app.service.js +0 -20
  93. package/dist/src/app.service.js.map +0 -1
  94. package/dist/src/event-sourcing.module.d.ts +0 -5
  95. package/dist/src/event-sourcing.module.js +0 -24
  96. package/dist/src/event-sourcing.module.js.map +0 -1
  97. package/dist/src/index.d.ts +0 -3
  98. package/dist/src/index.js +0 -10
  99. package/dist/src/index.js.map +0 -1
  100. package/dist/src/interface/postgres-event-store-config.d.ts +0 -5
  101. package/dist/src/interface/postgres-event-store-config.js.map +0 -1
  102. package/dist/src/main.d.ts +0 -1
  103. package/dist/src/main.js +0 -10
  104. package/dist/src/main.js.map +0 -1
  105. package/dist/src/temp.event-store.js.map +0 -1
  106. /package/dist/{example/src/main.d.ts → decorator/index.d.ts} +0 -0
  107. /package/dist/{src/interface → interface}/postgres-event-store-config.js +0 -0
  108. /package/dist/{src/temp.event-store.js → temp.event-store.js} +0 -0
@@ -10,12 +10,13 @@ exports.AppModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const app_controller_1 = require("./app.controller");
12
12
  const app_service_1 = require("./app.service");
13
+ const event_sourcing_module_1 = require("src/event-sourcing.module");
13
14
  let AppModule = class AppModule {
14
15
  };
15
16
  exports.AppModule = AppModule;
16
17
  exports.AppModule = AppModule = __decorate([
17
18
  (0, common_1.Module)({
18
- imports: [],
19
+ imports: [event_sourcing_module_1.EventSourcingModule.forRootAsync()],
19
20
  controllers: [app_controller_1.AppController],
20
21
  providers: [app_service_1.AppService],
21
22
  })
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAOpC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,qEAAgE;AAOzD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,2CAAmB,CAAC,YAAY,EAAE,CAAC;QAC7C,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG"}
@@ -0,0 +1,12 @@
1
+ export declare const EVENT_SOURCING_OPTIONS: unique symbol;
2
+ export declare const AGGREGATE_METADATA = "AGGREGATE_METADATA";
3
+ export declare const COMMAND_HANDLER_METADATA = "COMMAND_HANDLER_METADATA";
4
+ export declare const COMMAND_METADATA = "COMMAND_METADATA";
5
+ export declare const EVENT_METADATA = "EVENT_METADATA";
6
+ export declare const EVENT_HANDLER_METADATA = "EVENT_HANDLER_METADATA";
7
+ export declare const EVENT_PUBLISHER_METADATA = "EVENT_PUBLISHER_METADATA";
8
+ export declare const EVENT_SERIALIZER_METADATA = "EVENT_SERIALIZER_METADATA";
9
+ export declare const EVENT_SUBSCRIBER_METADATA = "EVENT_SUBSCRIBER_METADATA";
10
+ export declare const QUERY_HANDLER_METADATA = "QUERY_HANDLER_METADATA";
11
+ export declare const QUERY_METADATA = "QUERY_METADATA";
12
+ export declare const SNAPSHOT_METADATA = "SNAPSHOT_METADATA";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SNAPSHOT_METADATA = exports.QUERY_METADATA = exports.QUERY_HANDLER_METADATA = exports.EVENT_SUBSCRIBER_METADATA = exports.EVENT_SERIALIZER_METADATA = exports.EVENT_PUBLISHER_METADATA = exports.EVENT_HANDLER_METADATA = exports.EVENT_METADATA = exports.COMMAND_METADATA = exports.COMMAND_HANDLER_METADATA = exports.AGGREGATE_METADATA = exports.EVENT_SOURCING_OPTIONS = void 0;
4
+ exports.EVENT_SOURCING_OPTIONS = Symbol();
5
+ exports.AGGREGATE_METADATA = 'AGGREGATE_METADATA';
6
+ exports.COMMAND_HANDLER_METADATA = 'COMMAND_HANDLER_METADATA';
7
+ exports.COMMAND_METADATA = 'COMMAND_METADATA';
8
+ exports.EVENT_METADATA = 'EVENT_METADATA';
9
+ exports.EVENT_HANDLER_METADATA = 'EVENT_HANDLER_METADATA';
10
+ exports.EVENT_PUBLISHER_METADATA = 'EVENT_PUBLISHER_METADATA';
11
+ exports.EVENT_SERIALIZER_METADATA = 'EVENT_SERIALIZER_METADATA';
12
+ exports.EVENT_SUBSCRIBER_METADATA = 'EVENT_SUBSCRIBER_METADATA';
13
+ exports.QUERY_HANDLER_METADATA = 'QUERY_HANDLER_METADATA';
14
+ exports.QUERY_METADATA = 'QUERY_METADATA';
15
+ exports.SNAPSHOT_METADATA = 'SNAPSHOT_METADATA';
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,MAAM,EAAE,CAAC;AAElC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,iBAAiB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import 'reflect-metadata';
2
+ import { AggregateMetadata } from 'src/interface/aggregate/aggregate-metadata.interface';
3
+ export declare const Aggregate: (options?: AggregateMetadata) => ClassDecorator;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Aggregate = void 0;
4
+ require("reflect-metadata");
5
+ const constants_1 = require("src/common/constants");
6
+ const Aggregate = (options) => {
7
+ return (target) => {
8
+ const { name } = target;
9
+ const metadata = {
10
+ streamName: name.toLowerCase(),
11
+ ...options,
12
+ };
13
+ if ((metadata.streamName?.length || 0) > 50) {
14
+ throw new Error(`Aggregate stream name '${metadata.streamName}' exceeds the maximum length of 50 characters.`);
15
+ }
16
+ Reflect.defineMetadata(constants_1.AGGREGATE_METADATA, metadata, target);
17
+ };
18
+ };
19
+ exports.Aggregate = Aggregate;
20
+ //# sourceMappingURL=aggregate.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.decorator.js","sourceRoot":"","sources":["../../src/decorator/aggregate.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,oDAA0D;AAanD,MAAM,SAAS,GAAG,CAAC,OAA2B,EAAkB,EAAE;IACvE,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAyC,CAAC;QAC3D,MAAM,QAAQ,GAAsB;YAClC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;YAC9B,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,CAAC,UAAU,gDAAgD,CAC9F,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,8BAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -0,0 +1,4 @@
1
+ import 'reflect-metadata';
2
+ import { ClassConstructor } from 'src/interface/class-constructor.type';
3
+ import { IEvent } from 'src/interface/event/event.interface';
4
+ export declare const EventHandler: (event: ClassConstructor<IEvent>) => PropertyDecorator;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventHandler = void 0;
4
+ require("reflect-metadata");
5
+ const constants_1 = require("src/common/constants");
6
+ const get_event_metadata_1 = require("src/helper/metadata/get-event-metadata");
7
+ const EventHandler = (event) => {
8
+ const { name } = (0, get_event_metadata_1.getEventMetadata)(event);
9
+ if (!name) {
10
+ throw new Error(`Cannot register event handler for event without a name in '${event.constructor.name}'.`);
11
+ }
12
+ return (propertyParent, propertyKey) => {
13
+ Reflect.defineMetadata(`${constants_1.EVENT_HANDLER_METADATA}-${name}`, { method: propertyKey }, propertyParent);
14
+ };
15
+ };
16
+ exports.EventHandler = EventHandler;
17
+ //# sourceMappingURL=event-handler.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-handler.decorator.js","sourceRoot":"","sources":["../../src/decorator/event-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,oDAA8D;AAC9D,+EAA0E;AAUnE,MAAM,YAAY,GAAG,CAC1B,KAA+B,EACZ,EAAE;IACrB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qCAAgB,EAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,8DAA8D,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CACzF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,EAAE;QACrC,OAAO,CAAC,cAAc,CACpB,GAAG,kCAAsB,IAAI,IAAI,EAAE,EACnC,EAAE,MAAM,EAAE,WAAW,EAAE,EACvB,cAAc,CACf,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,YAAY,gBAkBvB"}
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ export declare const Event: (name?: string) => ClassDecorator;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Event = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ require("reflect-metadata");
6
+ const constants_1 = require("src/common/constants");
7
+ const Event = (name) => {
8
+ return (target) => {
9
+ const metadata = {
10
+ id: (0, node_crypto_1.randomUUID)(),
11
+ name: name || target.name,
12
+ };
13
+ if (metadata.name.length > 80) {
14
+ throw new Error(`Event name '${metadata.name}' exceeds the maximum length of 80 characters.`);
15
+ }
16
+ Reflect.defineMetadata(constants_1.EVENT_METADATA, metadata, target);
17
+ };
18
+ };
19
+ exports.Event = Event;
20
+ //# sourceMappingURL=event.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.decorator.js","sourceRoot":"","sources":["../../src/decorator/event.decorator.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,4BAA0B;AAC1B,oDAAsD;AAe/C,MAAM,KAAK,GAAG,CAAC,IAAa,EAAkB,EAAE;IACrD,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAkB;YAC9B,EAAE,EAAE,IAAA,wBAAU,GAAE;YAChB,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI;SAC1B,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,CAAC,IAAI,gDAAgD,CAC7E,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,0BAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,KAAK,SAehB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorator/index.ts"],"names":[],"mappings":""}
@@ -1,5 +1,4 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
- import { EventSourcingModuleOptions } from '@ocoda/event-sourcing';
3
2
  export declare class EventSourcingModule {
4
- static forRoot(options: EventSourcingModuleOptions): DynamicModule;
3
+ static forRootAsync(): DynamicModule;
5
4
  }
@@ -5,18 +5,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var EventSourcingModule_1;
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.EventSourcingModule = void 0;
10
11
  const common_1 = require("@nestjs/common");
11
- const event_sourcing_1 = require("@ocoda/event-sourcing");
12
- let EventSourcingModule = class EventSourcingModule {
13
- static forRoot(options) {
14
- const module = event_sourcing_1.EventSourcingModule.forRoot(options);
15
- return module;
12
+ const constants_1 = require("src/common/constants");
13
+ let EventSourcingModule = EventSourcingModule_1 = class EventSourcingModule {
14
+ static forRootAsync() {
15
+ const providers = [
16
+ {
17
+ provide: constants_1.EVENT_SOURCING_OPTIONS,
18
+ useFactory: () => ({}),
19
+ inject: [],
20
+ },
21
+ ];
22
+ return {
23
+ module: EventSourcingModule_1,
24
+ providers,
25
+ };
16
26
  }
17
27
  };
18
28
  exports.EventSourcingModule = EventSourcingModule;
19
- exports.EventSourcingModule = EventSourcingModule = __decorate([
29
+ exports.EventSourcingModule = EventSourcingModule = EventSourcingModule_1 = __decorate([
20
30
  (0, common_1.Module)({
21
31
  imports: [],
22
32
  })
@@ -1 +1 @@
1
- {"version":3,"file":"event-sourcing.module.js","sourceRoot":"","sources":["../src/event-sourcing.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuD;AACvD,0DAG+B;AAKxB,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,MAAM,CAAC,OAAO,CAAC,OAAmC;QAChD,MAAM,MAAM,GAAG,oCAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AANY,kDAAmB;8BAAnB,mBAAmB;IAH/B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,mBAAmB,CAM/B"}
1
+ {"version":3,"file":"event-sourcing.module.js","sourceRoot":"","sources":["../src/event-sourcing.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AACjE,oDAA8D;AAKvD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAC9B,MAAM,CAAC,YAAY;QACjB,MAAM,SAAS,GAAe;YAC5B;gBACE,OAAO,EAAE,kCAAsB;gBAC/B,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,EAAE,EAAE;aACX;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,SAAS;SACV,CAAC;IACJ,CAAC;CACF,CAAA;AAfY,kDAAmB;8BAAnB,mBAAmB;IAH/B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,mBAAmB,CAe/B"}
@@ -0,0 +1 @@
1
+ export declare const ensureMetadata: <T>(metadata: unknown) => T | undefined;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureMetadata = void 0;
4
+ const ensureMetadata = (metadata) => {
5
+ if (metadata === undefined) {
6
+ return undefined;
7
+ }
8
+ return metadata;
9
+ };
10
+ exports.ensureMetadata = ensureMetadata;
11
+ //# sourceMappingURL=assume-metadata-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-metadata-type.js","sourceRoot":"","sources":["../../../src/helper/metadata/assume-metadata-type.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAI,QAAiB,EAAiB,EAAE;IACpE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,QAAa,CAAC;AACvB,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}
@@ -0,0 +1,4 @@
1
+ import type { Type } from '@nestjs/common';
2
+ import { AggregateMetadata } from 'src/interface/aggregate/aggregate-metadata.interface';
3
+ import { AggregateRoot } from 'src/model/aggregate.root';
4
+ export declare const getAggregateMetadata: (cls: Type<AggregateRoot>) => AggregateMetadata | undefined;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAggregateMetadata = void 0;
4
+ const constants_1 = require("src/common/constants");
5
+ const assume_metadata_type_1 = require("src/helper/metadata/assume-metadata-type");
6
+ const getAggregateMetadata = (cls) => {
7
+ return (0, assume_metadata_type_1.ensureMetadata)(Reflect.getMetadata(constants_1.AGGREGATE_METADATA, cls));
8
+ };
9
+ exports.getAggregateMetadata = getAggregateMetadata;
10
+ //# sourceMappingURL=get-aggregate-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-aggregate-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-aggregate-metadata.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAC1D,mFAA0E;AAInE,MAAM,oBAAoB,GAAG,CAClC,GAAwB,EACO,EAAE;IACjC,OAAO,IAAA,qCAAc,EAAC,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B"}
@@ -0,0 +1,5 @@
1
+ import { ClassConstructor } from 'src/interface/class-constructor.type';
2
+ import { EventHandlerMetadata } from 'src/interface/event/event-handler-metadata.interface';
3
+ import { IEvent } from 'src/interface/event/event.interface';
4
+ import { AggregateRoot } from 'src/model/aggregate.root';
5
+ export declare const getEventHandlerMetadata: (aggregate: AggregateRoot, eventClass: ClassConstructor<IEvent>) => EventHandlerMetadata | undefined;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEventHandlerMetadata = void 0;
4
+ const constants_1 = require("src/common/constants");
5
+ const assume_metadata_type_1 = require("src/helper/metadata/assume-metadata-type");
6
+ const get_event_metadata_1 = require("src/helper/metadata/get-event-metadata");
7
+ const getEventHandlerMetadata = (aggregate, eventClass) => {
8
+ const { name } = (0, get_event_metadata_1.getEventMetadata)(eventClass);
9
+ return (0, assume_metadata_type_1.ensureMetadata)(Reflect.getMetadata(`${constants_1.EVENT_HANDLER_METADATA}-${name}`, aggregate));
10
+ };
11
+ exports.getEventHandlerMetadata = getEventHandlerMetadata;
12
+ //# sourceMappingURL=get-event-handler-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-event-handler-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-event-handler-metadata.ts"],"names":[],"mappings":";;;AAAA,oDAA8D;AAC9D,mFAA0E;AAC1E,+EAA0E;AAMnE,MAAM,uBAAuB,GAAG,CACrC,SAAwB,EACxB,UAAoC,EACF,EAAE;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qCAAgB,EAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,IAAA,qCAAc,EACnB,OAAO,CAAC,WAAW,CAAC,GAAG,kCAAsB,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,CACpE,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC"}
@@ -0,0 +1,4 @@
1
+ import { ClassConstructor } from 'src/interface/class-constructor.type';
2
+ import { EventMetadata } from 'src/interface/event/event-metadata.interface';
3
+ import { IEvent } from 'src/interface/event/event.interface';
4
+ export declare const getEventMetadata: (event: ClassConstructor<IEvent>) => EventMetadata;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEventMetadata = void 0;
4
+ const constants_1 = require("src/common/constants");
5
+ const getEventMetadata = (event) => {
6
+ return Reflect.getMetadata(constants_1.EVENT_METADATA, event);
7
+ };
8
+ exports.getEventMetadata = getEventMetadata;
9
+ //# sourceMappingURL=get-event-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-event-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-event-metadata.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AAK/C,MAAM,gBAAgB,GAAG,CAC9B,KAA+B,EAChB,EAAE;IACjB,OAAO,OAAO,CAAC,WAAW,CAAC,0BAAc,EAAE,KAAK,CAAkB,CAAC;AACrE,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,17 @@
1
- export { AppModule } from './app.module';
2
- export { AppService } from './app.service';
3
- export { EventSourcingModule } from './event-sourcing.module';
1
+ export * from './event-sourcing.module';
2
+ export * from './decorator/aggregate.decorator';
3
+ export * from './decorator/event.decorator';
4
+ export * from './decorator/event-handler.decorator';
5
+ export * from './model/aggregate.root';
6
+ export * from './model/event-envelope';
7
+ export * from './interface/class-constructor.type';
8
+ export * from './interface/postgres-event-store-config';
9
+ export * from './interface/postgres-snapshot-store-config';
10
+ export * from './interface/aggregate/aggregate-metadata.interface';
11
+ export * from './interface/aggregate/event-handler-method.type';
12
+ export * from './interface/event/event.interface';
13
+ export * from './interface/event/event-envelope-metadata.interface';
14
+ export * from './interface/event/event-handler-metadata.interface';
15
+ export * from './interface/event/event-metadata.interface';
16
+ export * from './interface/event/event-publisher.interface';
17
+ export * from './common/constants';
package/dist/index.js CHANGED
@@ -1,10 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventSourcingModule = exports.AppService = exports.AppModule = void 0;
4
- var app_module_1 = require("./app.module");
5
- Object.defineProperty(exports, "AppModule", { enumerable: true, get: function () { return app_module_1.AppModule; } });
6
- var app_service_1 = require("./app.service");
7
- Object.defineProperty(exports, "AppService", { enumerable: true, get: function () { return app_service_1.AppService; } });
8
- var event_sourcing_module_1 = require("./event-sourcing.module");
9
- Object.defineProperty(exports, "EventSourcingModule", { enumerable: true, get: function () { return event_sourcing_module_1.EventSourcingModule; } });
17
+ __exportStar(require("./event-sourcing.module"), exports);
18
+ __exportStar(require("./decorator/aggregate.decorator"), exports);
19
+ __exportStar(require("./decorator/event.decorator"), exports);
20
+ __exportStar(require("./decorator/event-handler.decorator"), exports);
21
+ __exportStar(require("./model/aggregate.root"), exports);
22
+ __exportStar(require("./model/event-envelope"), exports);
23
+ __exportStar(require("./interface/class-constructor.type"), exports);
24
+ __exportStar(require("./interface/postgres-event-store-config"), exports);
25
+ __exportStar(require("./interface/postgres-snapshot-store-config"), exports);
26
+ __exportStar(require("./interface/aggregate/aggregate-metadata.interface"), exports);
27
+ __exportStar(require("./interface/aggregate/event-handler-method.type"), exports);
28
+ __exportStar(require("./interface/event/event.interface"), exports);
29
+ __exportStar(require("./interface/event/event-envelope-metadata.interface"), exports);
30
+ __exportStar(require("./interface/event/event-handler-metadata.interface"), exports);
31
+ __exportStar(require("./interface/event/event-metadata.interface"), exports);
32
+ __exportStar(require("./interface/event/event-publisher.interface"), exports);
33
+ __exportStar(require("./common/constants"), exports);
10
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,kEAAgD;AAChD,8DAA4C;AAC5C,sEAAoD;AACpD,yDAAuC;AACvC,yDAAuC;AACvC,qEAAmD;AACnD,0EAAwD;AACxD,6EAA2D;AAC3D,qFAAmE;AACnE,kFAAgE;AAChE,oEAAkD;AAClD,sFAAoE;AACpE,qFAAmE;AACnE,6EAA2D;AAC3D,8EAA4D;AAC5D,qDAAmC"}
@@ -0,0 +1,5 @@
1
+ import { IEventPublisher } from 'src/interface/event/event-publisher.interface';
2
+ export interface AggregateMetadata {
3
+ streamName?: string;
4
+ publishers?: IEventPublisher[];
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=aggregate-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-metadata.interface.js","sourceRoot":"","sources":["../../../src/interface/aggregate/aggregate-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { IEvent } from 'src/interface/event/event.interface';
2
+ export type IEventHandlerMethod<E extends IEvent> = (event: E) => void;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event-handler-method.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-handler-method.type.js","sourceRoot":"","sources":["../../../src/interface/aggregate/event-handler-method.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface ClassConstructor<T = any> extends Function {
2
+ new (...args: any[]): T;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=class-constructor.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-constructor.type.js","sourceRoot":"","sources":["../../src/interface/class-constructor.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export interface EventEnvelopeMetadata {
2
+ eventId: string;
3
+ aggregateId: string;
4
+ version: number;
5
+ occurredOn: Date;
6
+ correlationId?: string;
7
+ causationId?: string;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event-envelope-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-envelope-metadata.interface.js","sourceRoot":"","sources":["../../../src/interface/event/event-envelope-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface EventHandlerMetadata {
2
+ method: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event-handler-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-handler-metadata.interface.js","sourceRoot":"","sources":["../../../src/interface/event/event-handler-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface EventMetadata {
2
+ id: string;
3
+ name: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-metadata.interface.js","sourceRoot":"","sources":["../../../src/interface/event/event-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { EventEnvelope } from 'src/model/event-envelope';
2
+ export interface IEventPublisher {
3
+ publish(envelope: EventEnvelope, ...params: any[]): any;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event-publisher.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-publisher.interface.js","sourceRoot":"","sources":["../../../src/interface/event/event-publisher.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type IEvent = object;
2
+ export type IEventPayload<E extends IEvent> = Record<keyof E, any>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.interface.js","sourceRoot":"","sources":["../../../src/interface/event/event.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { PoolConfig } from 'pg';
2
+ import { ClassConstructor } from 'src/interface/class-constructor.type';
3
+ import { TempEventStore } from 'src/temp.event-store';
4
+ export interface PostgresEventStoreConfig extends PoolConfig {
5
+ driver: ClassConstructor<TempEventStore>;
6
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-event-store-config.js","sourceRoot":"","sources":["../../src/interface/postgres-event-store-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { PoolConfig } from 'pg';
2
+ import { ClassConstructor } from 'src/interface/class-constructor.type';
3
+ import { TempEventStore } from 'src/temp.event-store';
4
+ export interface PostgresSnapshotStoreConfig extends PoolConfig {
5
+ driver: ClassConstructor<TempEventStore>;
6
+ useDefaultPool?: boolean;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=postgres-snapshot-store-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-snapshot-store-config.js","sourceRoot":"","sources":["../../src/interface/postgres-snapshot-store-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { IEvent } from 'src/interface/event/event.interface';
2
+ declare const VERSION: unique symbol;
3
+ declare const EVENTS: unique symbol;
4
+ export declare abstract class AggregateRoot {
5
+ private [VERSION];
6
+ private readonly [EVENTS];
7
+ set version(version: number);
8
+ get version(): number;
9
+ applyEvent<T extends IEvent = IEvent>(event: T, fromHistory?: boolean): void;
10
+ private getEventHandler;
11
+ commit(): IEvent[];
12
+ loadFromHistory(eventCursor: AsyncGenerator<IEvent[]>): Promise<void>;
13
+ }
14
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateRoot = void 0;
4
+ const get_event_handler_metadata_1 = require("src/helper/metadata/get-event-handler-metadata");
5
+ const VERSION = Symbol();
6
+ const EVENTS = Symbol();
7
+ class AggregateRoot {
8
+ [VERSION] = 0;
9
+ [EVENTS] = [];
10
+ set version(version) {
11
+ this[VERSION] = version;
12
+ }
13
+ get version() {
14
+ return this[VERSION];
15
+ }
16
+ applyEvent(event, fromHistory = false) {
17
+ this[VERSION]++;
18
+ if (!fromHistory) {
19
+ this[EVENTS].push(event);
20
+ }
21
+ const handler = this.getEventHandler(event.constructor);
22
+ handler?.call(this, event);
23
+ }
24
+ getEventHandler(eventClass) {
25
+ const eventHandlerMetadata = (0, get_event_handler_metadata_1.getEventHandlerMetadata)(this, eventClass);
26
+ if (!eventHandlerMetadata) {
27
+ throw new Error(`No event handler found for event '${eventClass.name}' in aggregate '${this.constructor.name}'.`);
28
+ }
29
+ return this[eventHandlerMetadata.method];
30
+ }
31
+ commit() {
32
+ const events = [...this[EVENTS]];
33
+ this[EVENTS].length = 0;
34
+ return events;
35
+ }
36
+ async loadFromHistory(eventCursor) {
37
+ for await (const events of eventCursor) {
38
+ for (const event of events) {
39
+ this.applyEvent(event, true);
40
+ }
41
+ }
42
+ }
43
+ }
44
+ exports.AggregateRoot = AggregateRoot;
45
+ //# sourceMappingURL=aggregate.root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.root.js","sourceRoot":"","sources":["../../src/model/aggregate.root.ts"],"names":[],"mappings":";;;AAAA,+FAAyF;AAKzF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;AAExB,MAAsB,aAAa;IACzB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACL,CAAC,MAAM,CAAC,GAAa,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,UAAU,CAA4B,KAAQ,EAAE,WAAW,GAAG,KAAK;QACjE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAIhB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAClC,KAAK,CAAC,WAAkC,CACzC,CAAC;QAEF,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,eAAe,CACrB,UAA+B;QAE/B,MAAM,oBAAoB,GAAG,IAAA,oDAAuB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAEvE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,CAAC,IAAI,mBAAmB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CACjG,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAqC;QACzD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxDD,sCAwDC"}
@@ -0,0 +1,12 @@
1
+ import { EventEnvelopeMetadata } from 'src/interface/event/event-envelope-metadata.interface';
2
+ import { IEvent, IEventPayload } from 'src/interface/event/event.interface';
3
+ export declare class EventEnvelope<E extends IEvent = IEvent> {
4
+ readonly event: string;
5
+ readonly payload: IEventPayload<E>;
6
+ readonly metadata: EventEnvelopeMetadata;
7
+ private constructor();
8
+ static create<E extends IEvent = IEvent>(event: string, payload: IEventPayload<E>, metadata: Omit<EventEnvelopeMetadata, 'eventId' | 'occurredOn'> & {
9
+ eventId?: string;
10
+ }): EventEnvelope<E>;
11
+ static from<E extends IEvent = IEvent>(event: string, payload: IEventPayload<E>, metadata: EventEnvelopeMetadata): EventEnvelope<E>;
12
+ }