bootifyjs 0.1.0 → 1.0.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 (261) hide show
  1. package/dist/api.d.ts +8 -27
  2. package/dist/api.d.ts.map +1 -0
  3. package/dist/api.js +68 -134
  4. package/dist/api.js.map +1 -1
  5. package/dist/cache/bootstrap.d.ts +6 -0
  6. package/dist/cache/bootstrap.d.ts.map +1 -0
  7. package/dist/cache/bootstrap.js +23 -0
  8. package/dist/cache/bootstrap.js.map +1 -0
  9. package/dist/cache/cache.service.d.ts +9 -0
  10. package/dist/cache/cache.service.d.ts.map +1 -0
  11. package/dist/cache/cache.service.js +40 -0
  12. package/dist/cache/cache.service.js.map +1 -0
  13. package/dist/cache/cache.types.d.ts +14 -0
  14. package/dist/cache/cache.types.d.ts.map +1 -0
  15. package/dist/cache/cache.types.js +8 -0
  16. package/dist/cache/cache.types.js.map +1 -0
  17. package/dist/cache/decorators.d.ts +12 -0
  18. package/dist/cache/decorators.d.ts.map +1 -0
  19. package/dist/cache/decorators.js +53 -0
  20. package/dist/cache/decorators.js.map +1 -0
  21. package/dist/cache/in-memory-cache.store.d.ts +8 -0
  22. package/dist/cache/in-memory-cache.store.d.ts.map +1 -0
  23. package/dist/cache/in-memory-cache.store.js +39 -0
  24. package/dist/cache/in-memory-cache.store.js.map +1 -0
  25. package/dist/cache/index.d.ts +5 -0
  26. package/dist/cache/index.d.ts.map +1 -0
  27. package/dist/cache/index.js +21 -0
  28. package/dist/cache/index.js.map +1 -0
  29. package/dist/core/component-registry.d.ts +7 -0
  30. package/dist/core/component-registry.d.ts.map +1 -0
  31. package/dist/core/component-registry.js +9 -0
  32. package/dist/core/component-registry.js.map +1 -0
  33. package/dist/core/decorators.d.ts +38 -22
  34. package/dist/core/decorators.d.ts.map +1 -0
  35. package/dist/core/decorators.js +155 -174
  36. package/dist/core/decorators.js.map +1 -1
  37. package/dist/core/di-container.d.ts +31 -0
  38. package/dist/core/di-container.d.ts.map +1 -0
  39. package/dist/core/di-container.js +219 -0
  40. package/dist/core/di-container.js.map +1 -0
  41. package/dist/core/index.d.ts +5 -0
  42. package/dist/core/index.d.ts.map +1 -0
  43. package/dist/core/index.js +21 -0
  44. package/dist/core/index.js.map +1 -0
  45. package/dist/core/request-context.service.d.ts +24 -0
  46. package/dist/core/request-context.service.d.ts.map +1 -0
  47. package/dist/core/request-context.service.js +52 -0
  48. package/dist/core/request-context.service.js.map +1 -0
  49. package/dist/core/router.d.ts +4 -32
  50. package/dist/core/router.d.ts.map +1 -0
  51. package/dist/core/router.js +81 -258
  52. package/dist/core/router.js.map +1 -1
  53. package/dist/events/bootstrap.d.ts +8 -0
  54. package/dist/events/bootstrap.d.ts.map +1 -0
  55. package/dist/events/bootstrap.js +37 -0
  56. package/dist/events/bootstrap.js.map +1 -0
  57. package/dist/events/decorators.d.ts +16 -0
  58. package/dist/events/decorators.d.ts.map +1 -0
  59. package/dist/events/decorators.js +37 -0
  60. package/dist/events/decorators.js.map +1 -0
  61. package/dist/events/event-bus.service.d.ts +21 -0
  62. package/dist/events/event-bus.service.d.ts.map +1 -0
  63. package/dist/events/event-bus.service.js +78 -0
  64. package/dist/events/event-bus.service.js.map +1 -0
  65. package/dist/events/event.types.d.ts +17 -0
  66. package/dist/events/event.types.d.ts.map +1 -0
  67. package/dist/events/event.types.js.map +1 -0
  68. package/dist/events/index.d.ts +5 -13
  69. package/dist/events/index.d.ts.map +1 -0
  70. package/dist/events/index.js +4 -54
  71. package/dist/events/index.js.map +1 -1
  72. package/dist/examples/controllers/health.controller.d.ts +7 -0
  73. package/dist/examples/controllers/health.controller.d.ts.map +1 -0
  74. package/dist/{events/examples/system.events.js → examples/controllers/health.controller.js} +16 -15
  75. package/dist/examples/controllers/health.controller.js.map +1 -0
  76. package/dist/examples/controllers/todo.controller.d.ts +31 -0
  77. package/dist/examples/controllers/todo.controller.d.ts.map +1 -0
  78. package/dist/examples/controllers/todo.controller.js +102 -0
  79. package/dist/examples/controllers/todo.controller.js.map +1 -0
  80. package/dist/examples/events/TodoEventHandler.d.ts +2 -0
  81. package/dist/examples/events/TodoEventHandler.d.ts.map +1 -0
  82. package/dist/examples/events/TodoEventHandler.js +31 -0
  83. package/dist/examples/events/TodoEventHandler.js.map +1 -0
  84. package/dist/examples/events/todo.events.d.ts +16 -0
  85. package/dist/examples/events/todo.events.d.ts.map +1 -0
  86. package/dist/examples/events/todo.events.js +13 -0
  87. package/dist/examples/events/todo.events.js.map +1 -0
  88. package/dist/examples/index.d.ts +2 -0
  89. package/dist/examples/index.d.ts.map +1 -0
  90. package/dist/examples/index.js +35 -0
  91. package/dist/examples/index.js.map +1 -0
  92. package/dist/examples/repositories/todo.repository.d.ts +20 -0
  93. package/dist/examples/repositories/todo.repository.d.ts.map +1 -0
  94. package/dist/examples/repositories/todo.repository.js +33 -0
  95. package/dist/examples/repositories/todo.repository.js.map +1 -0
  96. package/dist/examples/services/todo.service.d.ts +33 -0
  97. package/dist/examples/services/todo.service.d.ts.map +1 -0
  98. package/dist/examples/services/todo.service.js +80 -0
  99. package/dist/examples/services/todo.service.js.map +1 -0
  100. package/dist/examples/todos/schema.d.ts +54 -0
  101. package/dist/examples/todos/schema.d.ts.map +1 -0
  102. package/dist/examples/todos/schema.js +20 -0
  103. package/dist/examples/todos/schema.js.map +1 -0
  104. package/dist/index.d.ts +7 -17
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js +20 -95
  107. package/dist/index.js.map +1 -1
  108. package/dist/logging/config/logging.config.d.ts +31 -3
  109. package/dist/logging/config/logging.config.d.ts.map +1 -0
  110. package/dist/logging/config/logging.config.js +43 -93
  111. package/dist/logging/config/logging.config.js.map +1 -1
  112. package/dist/logging/core/decorators.d.ts +16 -0
  113. package/dist/logging/core/decorators.d.ts.map +1 -0
  114. package/dist/logging/core/decorators.js +74 -0
  115. package/dist/logging/core/decorators.js.map +1 -0
  116. package/dist/logging/core/logger.provider.d.ts +4 -0
  117. package/dist/logging/core/logger.provider.d.ts.map +1 -0
  118. package/dist/logging/core/logger.provider.js +68 -0
  119. package/dist/logging/core/logger.provider.js.map +1 -0
  120. package/dist/logging/core/logger.service.d.ts +9 -27
  121. package/dist/logging/core/logger.service.d.ts.map +1 -0
  122. package/dist/logging/core/logger.service.js +34 -164
  123. package/dist/logging/core/logger.service.js.map +1 -1
  124. package/dist/logging/core/{startup-logger.service.d.ts → startup.logger.d.ts} +4 -6
  125. package/dist/logging/core/startup.logger.d.ts.map +1 -0
  126. package/dist/logging/core/{startup-logger.service.js → startup.logger.js} +36 -42
  127. package/dist/logging/core/startup.logger.js.map +1 -0
  128. package/dist/logging/index.d.ts +7 -14
  129. package/dist/logging/index.d.ts.map +1 -0
  130. package/dist/logging/index.js +17 -28
  131. package/dist/logging/index.js.map +1 -1
  132. package/dist/middleware/auth.middleware.d.ts +3 -0
  133. package/dist/middleware/auth.middleware.d.ts.map +1 -0
  134. package/dist/middleware/auth.middleware.js +18 -0
  135. package/dist/middleware/auth.middleware.js.map +1 -0
  136. package/dist/middleware/context.middleware.d.ts +7 -0
  137. package/dist/middleware/context.middleware.d.ts.map +1 -0
  138. package/dist/middleware/context.middleware.js +25 -0
  139. package/dist/middleware/context.middleware.js.map +1 -0
  140. package/dist/middleware/index.d.ts +4 -0
  141. package/dist/middleware/index.d.ts.map +1 -0
  142. package/dist/middleware/index.js +20 -0
  143. package/dist/middleware/index.js.map +1 -0
  144. package/dist/middleware/request-logger.middleware.d.ts +4 -0
  145. package/dist/middleware/request-logger.middleware.d.ts.map +1 -0
  146. package/dist/middleware/request-logger.middleware.js +18 -0
  147. package/dist/middleware/request-logger.middleware.js.map +1 -0
  148. package/package.json +52 -47
  149. package/LICENSE +0 -21
  150. package/README.md +0 -173
  151. package/dist/config/app.config.d.ts +0 -29
  152. package/dist/config/app.config.js +0 -55
  153. package/dist/config/app.config.js.map +0 -1
  154. package/dist/controllers/config.controller.d.ts +0 -16
  155. package/dist/controllers/config.controller.js +0 -66
  156. package/dist/controllers/config.controller.js.map +0 -1
  157. package/dist/controllers/events.controller.d.ts +0 -66
  158. package/dist/controllers/events.controller.js +0 -145
  159. package/dist/controllers/events.controller.js.map +0 -1
  160. package/dist/controllers/health.controller.d.ts +0 -20
  161. package/dist/controllers/health.controller.js +0 -92
  162. package/dist/controllers/health.controller.js.map +0 -1
  163. package/dist/controllers/user.controller.d.ts +0 -13
  164. package/dist/controllers/user.controller.js +0 -209
  165. package/dist/controllers/user.controller.js.map +0 -1
  166. package/dist/core/application.d.ts +0 -21
  167. package/dist/core/application.js +0 -90
  168. package/dist/core/application.js.map +0 -1
  169. package/dist/core/config.d.ts +0 -3
  170. package/dist/core/config.js +0 -78
  171. package/dist/core/config.js.map +0 -1
  172. package/dist/core/container.d.ts +0 -17
  173. package/dist/core/container.js +0 -92
  174. package/dist/core/container.js.map +0 -1
  175. package/dist/core/errors.d.ts +0 -18
  176. package/dist/core/errors.js +0 -74
  177. package/dist/core/errors.js.map +0 -1
  178. package/dist/core/middleware.d.ts +0 -8
  179. package/dist/core/middleware.js +0 -23
  180. package/dist/core/middleware.js.map +0 -1
  181. package/dist/core/openapi.d.ts +0 -80
  182. package/dist/core/openapi.js +0 -189
  183. package/dist/core/openapi.js.map +0 -1
  184. package/dist/core/utils.d.ts +0 -7
  185. package/dist/core/utils.js +0 -75
  186. package/dist/core/utils.js.map +0 -1
  187. package/dist/core/validation.d.ts +0 -15
  188. package/dist/core/validation.js +0 -161
  189. package/dist/core/validation.js.map +0 -1
  190. package/dist/events/core/event-bus.d.ts +0 -26
  191. package/dist/events/core/event-bus.js +0 -253
  192. package/dist/events/core/event-bus.js.map +0 -1
  193. package/dist/events/core/event-registry.d.ts +0 -31
  194. package/dist/events/core/event-registry.js +0 -170
  195. package/dist/events/core/event-registry.js.map +0 -1
  196. package/dist/events/decorators/event.decorators.d.ts +0 -11
  197. package/dist/events/decorators/event.decorators.js +0 -123
  198. package/dist/events/decorators/event.decorators.js.map +0 -1
  199. package/dist/events/examples/system.events.d.ts +0 -15
  200. package/dist/events/examples/system.events.js.map +0 -1
  201. package/dist/events/examples/user.events.d.ts +0 -68
  202. package/dist/events/examples/user.events.js +0 -73
  203. package/dist/events/examples/user.events.js.map +0 -1
  204. package/dist/events/examples/user.handlers.d.ts +0 -20
  205. package/dist/events/examples/user.handlers.js +0 -157
  206. package/dist/events/examples/user.handlers.js.map +0 -1
  207. package/dist/events/middleware/logging.middleware.d.ts +0 -7
  208. package/dist/events/middleware/logging.middleware.js +0 -44
  209. package/dist/events/middleware/logging.middleware.js.map +0 -1
  210. package/dist/events/middleware/metrics.middleware.d.ts +0 -11
  211. package/dist/events/middleware/metrics.middleware.js +0 -87
  212. package/dist/events/middleware/metrics.middleware.js.map +0 -1
  213. package/dist/events/middleware/validation.middleware.d.ts +0 -8
  214. package/dist/events/middleware/validation.middleware.js +0 -63
  215. package/dist/events/middleware/validation.middleware.js.map +0 -1
  216. package/dist/events/store/memory-event-store.d.ts +0 -21
  217. package/dist/events/store/memory-event-store.js +0 -81
  218. package/dist/events/store/memory-event-store.js.map +0 -1
  219. package/dist/events/types/event.types.d.ts +0 -57
  220. package/dist/events/types/event.types.js.map +0 -1
  221. package/dist/examples/basic-api.d.ts +0 -1
  222. package/dist/examples/basic-api.js +0 -120
  223. package/dist/examples/basic-api.js.map +0 -1
  224. package/dist/logging/core/log-context.service.d.ts +0 -11
  225. package/dist/logging/core/log-context.service.js +0 -40
  226. package/dist/logging/core/log-context.service.js.map +0 -1
  227. package/dist/logging/core/startup-logger.service.js.map +0 -1
  228. package/dist/logging/decorators/log.decorator.d.ts +0 -11
  229. package/dist/logging/decorators/log.decorator.js +0 -80
  230. package/dist/logging/decorators/log.decorator.js.map +0 -1
  231. package/dist/logging/middleware/context.middleware.d.ts +0 -2
  232. package/dist/logging/middleware/context.middleware.js +0 -29
  233. package/dist/logging/middleware/context.middleware.js.map +0 -1
  234. package/dist/logging/middleware/request-logging.middleware.d.ts +0 -3
  235. package/dist/logging/middleware/request-logging.middleware.js +0 -78
  236. package/dist/logging/middleware/request-logging.middleware.js.map +0 -1
  237. package/dist/logging/types/logging.types.d.ts +0 -79
  238. package/dist/logging/types/logging.types.js +0 -3
  239. package/dist/logging/types/logging.types.js.map +0 -1
  240. package/dist/middlewares/auth.middleware.d.ts +0 -2
  241. package/dist/middlewares/auth.middleware.js +0 -20
  242. package/dist/middlewares/auth.middleware.js.map +0 -1
  243. package/dist/middlewares/cors.middleware.d.ts +0 -2
  244. package/dist/middlewares/cors.middleware.js +0 -16
  245. package/dist/middlewares/cors.middleware.js.map +0 -1
  246. package/dist/middlewares/swagger.middleware.d.ts +0 -6
  247. package/dist/middlewares/swagger.middleware.js +0 -84
  248. package/dist/middlewares/swagger.middleware.js.map +0 -1
  249. package/dist/repositories/user.repository.d.ts +0 -16
  250. package/dist/repositories/user.repository.js +0 -110
  251. package/dist/repositories/user.repository.js.map +0 -1
  252. package/dist/schemas/user.schemas.d.ts +0 -214
  253. package/dist/schemas/user.schemas.js +0 -71
  254. package/dist/schemas/user.schemas.js.map +0 -1
  255. package/dist/services/config-demo.service.d.ts +0 -10
  256. package/dist/services/config-demo.service.js +0 -88
  257. package/dist/services/config-demo.service.js.map +0 -1
  258. package/dist/services/user.service.d.ts +0 -21
  259. package/dist/services/user.service.js +0 -201
  260. package/dist/services/user.service.js.map +0 -1
  261. /package/dist/events/{types/event.types.js → event.types.js} +0 -0
@@ -1,68 +0,0 @@
1
- import { BaseEvent, DomainEvent } from '../types/event.types';
2
- export declare class UserCreatedEvent implements DomainEvent {
3
- id: string;
4
- type: string;
5
- timestamp: Date;
6
- version: number;
7
- aggregateId: string;
8
- aggregateType: string;
9
- aggregateVersion: number;
10
- correlationId?: string;
11
- causationId?: string;
12
- metadata?: Record<string, any>;
13
- userId: string;
14
- email: string;
15
- name: string;
16
- createdBy?: string;
17
- constructor(data?: Partial<UserCreatedEvent>);
18
- }
19
- export declare class UserUpdatedEvent implements DomainEvent {
20
- id: string;
21
- type: string;
22
- timestamp: Date;
23
- version: number;
24
- aggregateId: string;
25
- aggregateType: string;
26
- aggregateVersion: number;
27
- correlationId?: string;
28
- causationId?: string;
29
- metadata?: Record<string, any>;
30
- userId: string;
31
- oldValues: Record<string, any>;
32
- newValues: Record<string, any>;
33
- updatedBy?: string;
34
- constructor(data?: Partial<UserUpdatedEvent>);
35
- }
36
- export declare class UserDeletedEvent implements DomainEvent {
37
- id: string;
38
- type: string;
39
- timestamp: Date;
40
- version: number;
41
- aggregateId: string;
42
- aggregateType: string;
43
- aggregateVersion: number;
44
- correlationId?: string;
45
- causationId?: string;
46
- metadata?: Record<string, any>;
47
- userId: string;
48
- email: string;
49
- name: string;
50
- deletedBy?: string;
51
- constructor(data?: Partial<UserDeletedEvent>);
52
- }
53
- export declare class UserLoginEvent implements BaseEvent {
54
- id: string;
55
- type: string;
56
- timestamp: Date;
57
- version: number;
58
- correlationId?: string;
59
- causationId?: string;
60
- metadata?: Record<string, any>;
61
- userId: string;
62
- email: string;
63
- ipAddress?: string;
64
- userAgent?: string;
65
- success: boolean;
66
- failureReason?: string;
67
- constructor(data?: Partial<UserLoginEvent>);
68
- }
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UserLoginEvent = exports.UserDeletedEvent = exports.UserUpdatedEvent = exports.UserCreatedEvent = void 0;
13
- const event_decorators_1 = require("../decorators/event.decorators");
14
- let UserCreatedEvent = class UserCreatedEvent {
15
- constructor(data) {
16
- this.type = 'user.created';
17
- this.version = 1;
18
- this.aggregateType = 'User';
19
- if (data) {
20
- Object.assign(this, data);
21
- }
22
- }
23
- };
24
- exports.UserCreatedEvent = UserCreatedEvent;
25
- exports.UserCreatedEvent = UserCreatedEvent = __decorate([
26
- (0, event_decorators_1.Event)('user.created'),
27
- __metadata("design:paramtypes", [Object])
28
- ], UserCreatedEvent);
29
- let UserUpdatedEvent = class UserUpdatedEvent {
30
- constructor(data) {
31
- this.type = 'user.updated';
32
- this.version = 1;
33
- this.aggregateType = 'User';
34
- if (data) {
35
- Object.assign(this, data);
36
- }
37
- }
38
- };
39
- exports.UserUpdatedEvent = UserUpdatedEvent;
40
- exports.UserUpdatedEvent = UserUpdatedEvent = __decorate([
41
- (0, event_decorators_1.Event)('user.updated'),
42
- __metadata("design:paramtypes", [Object])
43
- ], UserUpdatedEvent);
44
- let UserDeletedEvent = class UserDeletedEvent {
45
- constructor(data) {
46
- this.type = 'user.deleted';
47
- this.version = 1;
48
- this.aggregateType = 'User';
49
- if (data) {
50
- Object.assign(this, data);
51
- }
52
- }
53
- };
54
- exports.UserDeletedEvent = UserDeletedEvent;
55
- exports.UserDeletedEvent = UserDeletedEvent = __decorate([
56
- (0, event_decorators_1.Event)('user.deleted'),
57
- __metadata("design:paramtypes", [Object])
58
- ], UserDeletedEvent);
59
- let UserLoginEvent = class UserLoginEvent {
60
- constructor(data) {
61
- this.type = 'user.login';
62
- this.version = 1;
63
- if (data) {
64
- Object.assign(this, data);
65
- }
66
- }
67
- };
68
- exports.UserLoginEvent = UserLoginEvent;
69
- exports.UserLoginEvent = UserLoginEvent = __decorate([
70
- (0, event_decorators_1.Event)('user.login'),
71
- __metadata("design:paramtypes", [Object])
72
- ], UserLoginEvent);
73
- //# sourceMappingURL=user.events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.events.js","sourceRoot":"","sources":["../../../src/events/examples/user.events.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qEAAuD;AAGhD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAkB3B,YAAY,IAAgC;QAhB5C,SAAI,GAAG,cAAc,CAAC;QAEtB,YAAO,GAAG,CAAC,CAAC;QAEZ,kBAAa,GAAG,MAAM,CAAC;QAarB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAA;AAvBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,wBAAK,EAAC,cAAc,CAAC;;GACT,gBAAgB,CAuB5B;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAkB3B,YAAY,IAAgC;QAhB5C,SAAI,GAAG,cAAc,CAAC;QAEtB,YAAO,GAAG,CAAC,CAAC;QAEZ,kBAAa,GAAG,MAAM,CAAC;QAarB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAA;AAvBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,wBAAK,EAAC,cAAc,CAAC;;GACT,gBAAgB,CAuB5B;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAkB3B,YAAY,IAAgC;QAhB5C,SAAI,GAAG,cAAc,CAAC;QAEtB,YAAO,GAAG,CAAC,CAAC;QAEZ,kBAAa,GAAG,MAAM,CAAC;QAarB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAA;AAvBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,wBAAK,EAAC,cAAc,CAAC;;GACT,gBAAgB,CAuB5B;AAGM,IAAM,cAAc,GAApB,MAAM,cAAc;IAiBzB,YAAY,IAA8B;QAf1C,SAAI,GAAG,YAAY,CAAC;QAEpB,YAAO,GAAG,CAAC,CAAC;QAcV,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAA;AAtBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,wBAAK,EAAC,YAAY,CAAC;;GACP,cAAc,CAsB1B"}
@@ -1,20 +0,0 @@
1
- import { UserCreatedEvent, UserUpdatedEvent, UserDeletedEvent, UserLoginEvent } from './user.events';
2
- export declare class UserEventHandlers {
3
- private logger;
4
- onUserCreated(event: UserCreatedEvent): Promise<void>;
5
- onUserUpdated(event: UserUpdatedEvent): Promise<void>;
6
- onUserDeleted(event: UserDeletedEvent): Promise<void>;
7
- onUserLogin(event: UserLoginEvent): Promise<void>;
8
- private sendWelcomeEmail;
9
- private updateUserAnalytics;
10
- private initializeUserPreferences;
11
- private invalidateUserCache;
12
- private updateSearchIndex;
13
- private notifyUserUpdate;
14
- private cleanupUserData;
15
- private removeFromSearchIndex;
16
- private updateLastLoginTime;
17
- private trackLoginAnalytics;
18
- private trackFailedLogin;
19
- private checkSuspiciousActivity;
20
- }
@@ -1,157 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UserEventHandlers = void 0;
13
- const event_decorators_1 = require("../decorators/event.decorators");
14
- const user_events_1 = require("./user.events");
15
- const logging_1 = require("../../logging");
16
- let UserEventHandlers = class UserEventHandlers {
17
- async onUserCreated(event) {
18
- this.logger.info('User created event received', {
19
- userId: event.userId,
20
- email: event.email,
21
- name: event.name,
22
- eventId: event.id
23
- });
24
- // Example: Send welcome email
25
- await this.sendWelcomeEmail(event.email, event.name);
26
- // Example: Update analytics
27
- await this.updateUserAnalytics('user_created', event.userId);
28
- // Example: Initialize user preferences
29
- await this.initializeUserPreferences(event.userId);
30
- }
31
- async onUserUpdated(event) {
32
- this.logger.info('User updated event received', {
33
- userId: event.userId,
34
- oldValues: event.oldValues,
35
- newValues: event.newValues,
36
- eventId: event.id
37
- });
38
- // Example: Invalidate cache
39
- await this.invalidateUserCache(event.userId);
40
- // Example: Update search index
41
- await this.updateSearchIndex(event.userId, event.newValues);
42
- // Example: Notify connected clients
43
- await this.notifyUserUpdate(event.userId, event.newValues);
44
- }
45
- async onUserDeleted(event) {
46
- this.logger.info('User deleted event received', {
47
- userId: event.userId,
48
- email: event.email,
49
- eventId: event.id
50
- });
51
- // Example: Clean up user data
52
- await this.cleanupUserData(event.userId);
53
- // Example: Remove from search index
54
- await this.removeFromSearchIndex(event.userId);
55
- // Example: Update analytics
56
- await this.updateUserAnalytics('user_deleted', event.userId);
57
- }
58
- async onUserLogin(event) {
59
- this.logger.info('User login event received', {
60
- userId: event.userId,
61
- success: event.success,
62
- ipAddress: event.ipAddress,
63
- eventId: event.id
64
- });
65
- if (event.success) {
66
- // Example: Update last login time
67
- await this.updateLastLoginTime(event.userId);
68
- // Example: Track login analytics
69
- await this.trackLoginAnalytics(event.userId, event.ipAddress);
70
- }
71
- else {
72
- // Example: Track failed login attempts
73
- await this.trackFailedLogin(event.userId, event.failureReason, event.ipAddress);
74
- // Example: Check for suspicious activity
75
- await this.checkSuspiciousActivity(event.userId, event.ipAddress);
76
- }
77
- }
78
- // Example implementation methods
79
- async sendWelcomeEmail(email, name) {
80
- this.logger.debug('Sending welcome email', { email, name });
81
- // Implementation would integrate with email service
82
- }
83
- async updateUserAnalytics(action, userId) {
84
- this.logger.debug('Updating user analytics', { action, userId });
85
- // Implementation would integrate with analytics service
86
- }
87
- async initializeUserPreferences(userId) {
88
- this.logger.debug('Initializing user preferences', { userId });
89
- // Implementation would set default preferences
90
- }
91
- async invalidateUserCache(userId) {
92
- this.logger.debug('Invalidating user cache', { userId });
93
- // Implementation would clear cache entries
94
- }
95
- async updateSearchIndex(userId, userData) {
96
- this.logger.debug('Updating search index', { userId, userData });
97
- // Implementation would update search index
98
- }
99
- async notifyUserUpdate(userId, updates) {
100
- this.logger.debug('Notifying user update', { userId, updates });
101
- // Implementation would notify connected clients via WebSocket
102
- }
103
- async cleanupUserData(userId) {
104
- this.logger.debug('Cleaning up user data', { userId });
105
- // Implementation would remove user-related data
106
- }
107
- async removeFromSearchIndex(userId) {
108
- this.logger.debug('Removing from search index', { userId });
109
- // Implementation would remove from search index
110
- }
111
- async updateLastLoginTime(userId) {
112
- this.logger.debug('Updating last login time', { userId });
113
- // Implementation would update user's last login timestamp
114
- }
115
- async trackLoginAnalytics(userId, ipAddress) {
116
- this.logger.debug('Tracking login analytics', { userId, ipAddress });
117
- // Implementation would track login metrics
118
- }
119
- async trackFailedLogin(userId, reason, ipAddress) {
120
- this.logger.debug('Tracking failed login', { userId, reason, ipAddress });
121
- // Implementation would track failed login attempts
122
- }
123
- async checkSuspiciousActivity(userId, ipAddress) {
124
- this.logger.debug('Checking suspicious activity', { userId, ipAddress });
125
- // Implementation would check for suspicious login patterns
126
- }
127
- };
128
- exports.UserEventHandlers = UserEventHandlers;
129
- __decorate([
130
- (0, event_decorators_1.EventHandler)('user.created', { priority: 10 }),
131
- __metadata("design:type", Function),
132
- __metadata("design:paramtypes", [user_events_1.UserCreatedEvent]),
133
- __metadata("design:returntype", Promise)
134
- ], UserEventHandlers.prototype, "onUserCreated", null);
135
- __decorate([
136
- (0, event_decorators_1.EventHandler)('user.updated', { priority: 5 }),
137
- __metadata("design:type", Function),
138
- __metadata("design:paramtypes", [user_events_1.UserUpdatedEvent]),
139
- __metadata("design:returntype", Promise)
140
- ], UserEventHandlers.prototype, "onUserUpdated", null);
141
- __decorate([
142
- (0, event_decorators_1.EventHandler)('user.deleted', { priority: 10 }),
143
- __metadata("design:type", Function),
144
- __metadata("design:paramtypes", [user_events_1.UserDeletedEvent]),
145
- __metadata("design:returntype", Promise)
146
- ], UserEventHandlers.prototype, "onUserDeleted", null);
147
- __decorate([
148
- (0, event_decorators_1.EventHandler)('user.login', { priority: 1 }),
149
- __metadata("design:type", Function),
150
- __metadata("design:paramtypes", [user_events_1.UserLoginEvent]),
151
- __metadata("design:returntype", Promise)
152
- ], UserEventHandlers.prototype, "onUserLogin", null);
153
- exports.UserEventHandlers = UserEventHandlers = __decorate([
154
- (0, event_decorators_1.EventListener)(),
155
- (0, logging_1.Logger)('UserEventHandlers')
156
- ], UserEventHandlers);
157
- //# sourceMappingURL=user.handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.handlers.js","sourceRoot":"","sources":["../../../src/events/examples/user.handlers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { BaseEvent, EventMiddleware } from '../types/event.types';
2
- export declare class LoggingMiddleware implements EventMiddleware {
3
- name: string;
4
- private logger;
5
- constructor();
6
- execute(event: BaseEvent, next: () => Promise<void>): Promise<void>;
7
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LoggingMiddleware = void 0;
4
- const logging_1 = require("../../logging");
5
- class LoggingMiddleware {
6
- constructor() {
7
- this.name = 'LoggingMiddleware';
8
- this.logger = logging_1.LoggerService.getInstance();
9
- }
10
- async execute(event, next) {
11
- const startTime = Date.now();
12
- this.logger.info('Event processing started', {
13
- component: 'EventMiddleware',
14
- middleware: this.name,
15
- eventType: event.type,
16
- eventId: event.id,
17
- correlationId: event.correlationId
18
- });
19
- try {
20
- await next();
21
- const duration = Date.now() - startTime;
22
- this.logger.info('Event processing completed', {
23
- component: 'EventMiddleware',
24
- middleware: this.name,
25
- eventType: event.type,
26
- eventId: event.id,
27
- duration
28
- });
29
- }
30
- catch (error) {
31
- const duration = Date.now() - startTime;
32
- this.logger.error('Event processing failed', error, {
33
- component: 'EventMiddleware',
34
- middleware: this.name,
35
- eventType: event.type,
36
- eventId: event.id,
37
- duration
38
- });
39
- throw error;
40
- }
41
- }
42
- }
43
- exports.LoggingMiddleware = LoggingMiddleware;
44
- //# sourceMappingURL=logging.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logging.middleware.js","sourceRoot":"","sources":["../../../src/events/middleware/logging.middleware.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C,MAAa,iBAAiB;IAI5B;QAHA,SAAI,GAAG,mBAAmB,CAAC;QAIzB,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,IAAyB;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAC3C,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAC;YAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBAC7C,SAAS,EAAE,iBAAiB;gBAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;gBACrB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAc,EAAE;gBAC3D,SAAS,EAAE,iBAAiB;gBAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;gBACrB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,QAAQ;aACT,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA1CD,8CA0CC"}
@@ -1,11 +0,0 @@
1
- import { BaseEvent, EventMiddleware } from '../types/event.types';
2
- export declare class MetricsMiddleware implements EventMiddleware {
3
- name: string;
4
- private logger;
5
- private metrics;
6
- constructor();
7
- execute(event: BaseEvent, next: () => Promise<void>): Promise<void>;
8
- private updateMetrics;
9
- getMetrics(): Record<string, any>;
10
- resetMetrics(): void;
11
- }
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MetricsMiddleware = void 0;
4
- const logging_1 = require("../../logging");
5
- class MetricsMiddleware {
6
- constructor() {
7
- this.name = 'MetricsMiddleware';
8
- this.metrics = new Map();
9
- this.logger = logging_1.LoggerService.getInstance();
10
- }
11
- async execute(event, next) {
12
- const startTime = Date.now();
13
- let hasError = false;
14
- try {
15
- await next();
16
- }
17
- catch (error) {
18
- hasError = true;
19
- throw error;
20
- }
21
- finally {
22
- const duration = Date.now() - startTime;
23
- this.updateMetrics(event.type, duration, hasError);
24
- // Log performance metrics for slow events
25
- if (duration > 1000) {
26
- this.logger.warn('Slow event processing detected', {
27
- component: 'EventMiddleware',
28
- middleware: this.name,
29
- eventType: event.type,
30
- eventId: event.id,
31
- duration,
32
- slow: true
33
- });
34
- }
35
- }
36
- }
37
- updateMetrics(eventType, duration, hasError) {
38
- const current = this.metrics.get(eventType) || {
39
- count: 0,
40
- totalTime: 0,
41
- errors: 0,
42
- lastProcessed: new Date()
43
- };
44
- current.count++;
45
- current.totalTime += duration;
46
- current.lastProcessed = new Date();
47
- if (hasError) {
48
- current.errors++;
49
- }
50
- this.metrics.set(eventType, current);
51
- // Log metrics periodically
52
- if (current.count % 10 === 0) {
53
- this.logger.performance({
54
- operation: `event.${eventType}`,
55
- duration: current.totalTime / current.count,
56
- metadata: {
57
- totalEvents: current.count,
58
- totalErrors: current.errors,
59
- errorRate: (current.errors / current.count) * 100,
60
- averageTime: current.totalTime / current.count
61
- }
62
- });
63
- }
64
- }
65
- getMetrics() {
66
- const result = {};
67
- for (const [eventType, metrics] of this.metrics.entries()) {
68
- result[eventType] = {
69
- count: metrics.count,
70
- averageTime: metrics.totalTime / metrics.count,
71
- errors: metrics.errors,
72
- errorRate: (metrics.errors / metrics.count) * 100,
73
- lastProcessed: metrics.lastProcessed
74
- };
75
- }
76
- return result;
77
- }
78
- resetMetrics() {
79
- this.metrics.clear();
80
- this.logger.info('Event metrics reset', {
81
- component: 'EventMiddleware',
82
- middleware: this.name
83
- });
84
- }
85
- }
86
- exports.MetricsMiddleware = MetricsMiddleware;
87
- //# sourceMappingURL=metrics.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.middleware.js","sourceRoot":"","sources":["../../../src/events/middleware/metrics.middleware.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { BaseEvent, EventMiddleware } from '../types/event.types';
2
- export declare class ValidationMiddleware implements EventMiddleware {
3
- name: string;
4
- private logger;
5
- constructor();
6
- execute(event: BaseEvent, next: () => Promise<void>): Promise<void>;
7
- private validateEvent;
8
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValidationMiddleware = void 0;
4
- const logging_1 = require("../../logging");
5
- const errors_1 = require("../../core/errors");
6
- class ValidationMiddleware {
7
- constructor() {
8
- this.name = 'ValidationMiddleware';
9
- this.logger = logging_1.LoggerService.getInstance();
10
- }
11
- async execute(event, next) {
12
- // Validate required event properties
13
- this.validateEvent(event);
14
- this.logger.debug('Event validation passed', {
15
- component: 'EventMiddleware',
16
- middleware: this.name,
17
- eventType: event.type,
18
- eventId: event.id
19
- });
20
- await next();
21
- }
22
- validateEvent(event) {
23
- const errors = [];
24
- // Required fields validation
25
- if (!event.id)
26
- errors.push('Event ID is required');
27
- if (!event.type)
28
- errors.push('Event type is required');
29
- if (!event.timestamp)
30
- errors.push('Event timestamp is required');
31
- if (typeof event.version !== 'number')
32
- errors.push('Event version must be a number');
33
- // Type validation
34
- if (typeof event.id !== 'string')
35
- errors.push('Event ID must be a string');
36
- if (typeof event.type !== 'string')
37
- errors.push('Event type must be a string');
38
- if (!(event.timestamp instanceof Date))
39
- errors.push('Event timestamp must be a Date');
40
- // Optional fields validation
41
- if (event.correlationId && typeof event.correlationId !== 'string') {
42
- errors.push('Correlation ID must be a string');
43
- }
44
- if (event.causationId && typeof event.causationId !== 'string') {
45
- errors.push('Causation ID must be a string');
46
- }
47
- if (event.metadata && typeof event.metadata !== 'object') {
48
- errors.push('Event metadata must be an object');
49
- }
50
- if (errors.length > 0) {
51
- this.logger.error('Event validation failed', new errors_1.ValidationError(errors.join(', ')), {
52
- component: 'EventMiddleware',
53
- middleware: this.name,
54
- eventType: event.type,
55
- eventId: event.id,
56
- errors
57
- });
58
- throw new errors_1.ValidationError(`Event validation failed: ${errors.join(', ')}`);
59
- }
60
- }
61
- }
62
- exports.ValidationMiddleware = ValidationMiddleware;
63
- //# sourceMappingURL=validation.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.middleware.js","sourceRoot":"","sources":["../../../src/events/middleware/validation.middleware.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,8CAAoD;AAEpD,MAAa,oBAAoB;IAI/B;QAHA,SAAI,GAAG,sBAAsB,CAAC;QAI5B,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,IAAyB;QACvD,qCAAqC;QACrC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;YAC3C,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,KAAK,CAAC,EAAE;SAClB,CAAC,CAAC;QAEH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,KAAgB;QACpC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACjE,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAErF,kBAAkB;QAClB,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3E,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAEtF,6BAA6B;QAC7B,IAAI,KAAK,CAAC,aAAa,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,wBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACnF,SAAS,EAAE,iBAAiB;gBAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;gBACrB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAI,wBAAe,CAAC,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;CACF;AA3DD,oDA2DC"}
@@ -1,21 +0,0 @@
1
- import { BaseEvent, EventStore } from '../types/event.types';
2
- export declare class MemoryEventStore implements EventStore {
3
- private events;
4
- private eventsByAggregate;
5
- private logger;
6
- constructor();
7
- save(event: BaseEvent): Promise<void>;
8
- getEvents(aggregateId: string, fromVersion?: number): Promise<BaseEvent[]>;
9
- getAllEvents(eventType?: string, fromTimestamp?: Date): Promise<BaseEvent[]>;
10
- getEventCount(): Promise<number>;
11
- getEventTypes(): Promise<string[]>;
12
- getEventsByTimeRange(startTime: Date, endTime: Date): Promise<BaseEvent[]>;
13
- clear(): Promise<void>;
14
- getStatistics(): {
15
- totalEvents: number;
16
- eventsByType: Record<string, number>;
17
- aggregateCount: number;
18
- oldestEvent?: Date;
19
- newestEvent?: Date;
20
- };
21
- }