bootifyjs 0.1.1 → 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 -423
  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,170 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventRegistry = void 0;
4
- require("reflect-metadata");
5
- const logging_1 = require("../../logging");
6
- class EventRegistry {
7
- constructor() {
8
- this.subscriptions = new Map();
9
- this.eventTypes = new Map();
10
- try {
11
- this.logger = logging_1.LoggerService.getInstance();
12
- }
13
- catch (error) {
14
- // Logger not initialized yet
15
- }
16
- }
17
- static getInstance() {
18
- if (!EventRegistry.instance) {
19
- EventRegistry.instance = new EventRegistry();
20
- }
21
- return EventRegistry.instance;
22
- }
23
- // Register event type for type safety
24
- registerEventType(eventType, eventClass) {
25
- this.eventTypes.set(eventType, eventClass);
26
- if (this.logger) {
27
- this.logger.debug('Event type registered', {
28
- component: 'EventRegistry',
29
- eventType,
30
- eventClass: eventClass.name
31
- });
32
- }
33
- }
34
- // Register event handler
35
- registerHandler(eventType, handler, options = {}) {
36
- const subscription = {
37
- id: this.generateSubscriptionId(),
38
- eventType,
39
- handler: handler,
40
- priority: options.priority || 0,
41
- active: true,
42
- metadata: options.metadata
43
- };
44
- if (!this.subscriptions.has(eventType)) {
45
- this.subscriptions.set(eventType, []);
46
- }
47
- const handlers = this.subscriptions.get(eventType);
48
- handlers.push(subscription);
49
- // Sort by priority (higher priority first)
50
- handlers.sort((a, b) => b.priority - a.priority);
51
- if (this.logger) {
52
- this.logger.debug('Event handler registered', {
53
- component: 'EventRegistry',
54
- eventType,
55
- subscriptionId: subscription.id,
56
- priority: subscription.priority,
57
- totalHandlers: handlers.length
58
- });
59
- }
60
- return subscription.id;
61
- }
62
- // Get handlers for event type
63
- getHandlers(eventType) {
64
- return this.subscriptions.get(eventType)?.filter(sub => sub.active) || [];
65
- }
66
- // Get all registered event types
67
- getRegisteredEventTypes() {
68
- return Array.from(this.eventTypes.keys());
69
- }
70
- // Get all subscriptions
71
- getAllSubscriptions() {
72
- return new Map(this.subscriptions);
73
- }
74
- // Unregister handler
75
- unregisterHandler(subscriptionId) {
76
- for (const [eventType, handlers] of this.subscriptions.entries()) {
77
- const index = handlers.findIndex(sub => sub.id === subscriptionId);
78
- if (index !== -1) {
79
- handlers.splice(index, 1);
80
- if (this.logger) {
81
- this.logger.debug('Event handler unregistered', {
82
- component: 'EventRegistry',
83
- eventType,
84
- subscriptionId
85
- });
86
- }
87
- return true;
88
- }
89
- }
90
- return false;
91
- }
92
- // Deactivate handler
93
- deactivateHandler(subscriptionId) {
94
- for (const handlers of this.subscriptions.values()) {
95
- const subscription = handlers.find(sub => sub.id === subscriptionId);
96
- if (subscription) {
97
- subscription.active = false;
98
- if (this.logger) {
99
- this.logger.debug('Event handler deactivated', {
100
- component: 'EventRegistry',
101
- subscriptionId
102
- });
103
- }
104
- return true;
105
- }
106
- }
107
- return false;
108
- }
109
- // Activate handler
110
- activateHandler(subscriptionId) {
111
- for (const handlers of this.subscriptions.values()) {
112
- const subscription = handlers.find(sub => sub.id === subscriptionId);
113
- if (subscription) {
114
- subscription.active = true;
115
- if (this.logger) {
116
- this.logger.debug('Event handler activated', {
117
- component: 'EventRegistry',
118
- subscriptionId
119
- });
120
- }
121
- return true;
122
- }
123
- }
124
- return false;
125
- }
126
- // Validate event type
127
- isValidEventType(eventType) {
128
- return this.eventTypes.has(eventType);
129
- }
130
- // Create event instance
131
- createEventInstance(eventType) {
132
- const EventClass = this.eventTypes.get(eventType);
133
- if (!EventClass) {
134
- return null;
135
- }
136
- return new EventClass();
137
- }
138
- // Get registry statistics
139
- getStatistics() {
140
- let totalSubscriptions = 0;
141
- let activeSubscriptions = 0;
142
- const subscriptionsByType = {};
143
- for (const [eventType, handlers] of this.subscriptions.entries()) {
144
- subscriptionsByType[eventType] = handlers.length;
145
- totalSubscriptions += handlers.length;
146
- activeSubscriptions += handlers.filter(sub => sub.active).length;
147
- }
148
- return {
149
- totalEventTypes: this.eventTypes.size,
150
- totalSubscriptions,
151
- subscriptionsByType,
152
- activeSubscriptions
153
- };
154
- }
155
- generateSubscriptionId() {
156
- return `sub_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
157
- }
158
- // Clear all registrations (for testing)
159
- clear() {
160
- this.subscriptions.clear();
161
- this.eventTypes.clear();
162
- if (this.logger) {
163
- this.logger.debug('Event registry cleared', {
164
- component: 'EventRegistry'
165
- });
166
- }
167
- }
168
- }
169
- exports.EventRegistry = EventRegistry;
170
- //# sourceMappingURL=event-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-registry.js","sourceRoot":"","sources":["../../../src/events/core/event-registry.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import 'reflect-metadata';
2
- import { BaseEvent } from '../types/event.types';
3
- export declare function Event(eventType: string): ClassDecorator;
4
- export declare function EventHandler<T extends BaseEvent = BaseEvent>(eventType: string, options?: {
5
- priority?: number;
6
- metadata?: Record<string, any>;
7
- }): MethodDecorator;
8
- export declare function EventEmitter(): ClassDecorator;
9
- export declare function EventListener(): ClassDecorator;
10
- export declare function registerEventHandlers(classes: any[]): void;
11
- export declare function EmitEvent<T extends BaseEvent = BaseEvent>(eventType: string, eventDataFactory?: (result: any, args: any[]) => Partial<T>): MethodDecorator;
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Event = Event;
4
- exports.EventHandler = EventHandler;
5
- exports.EventEmitter = EventEmitter;
6
- exports.EventListener = EventListener;
7
- exports.registerEventHandlers = registerEventHandlers;
8
- exports.EmitEvent = EmitEvent;
9
- require("reflect-metadata");
10
- const event_registry_1 = require("../core/event-registry");
11
- const event_bus_1 = require("../core/event-bus");
12
- const container_1 = require("../../core/container");
13
- // Event class decorator
14
- function Event(eventType) {
15
- return function (target) {
16
- const registry = event_registry_1.EventRegistry.getInstance();
17
- registry.registerEventType(eventType, target);
18
- // Store event type metadata
19
- Reflect.defineMetadata('event:type', eventType, target);
20
- return target;
21
- };
22
- }
23
- // Event handler method decorator
24
- function EventHandler(eventType, options = {}) {
25
- return function (target, propertyKey, descriptor) {
26
- const originalMethod = descriptor.value;
27
- // Store handler metadata
28
- const handlers = Reflect.getMetadata('event:handlers', target.constructor) || [];
29
- handlers.push({
30
- eventType,
31
- methodName: propertyKey,
32
- options
33
- });
34
- Reflect.defineMetadata('event:handlers', handlers, target.constructor);
35
- return descriptor;
36
- };
37
- }
38
- // Event emitter class decorator
39
- function EventEmitter() {
40
- return function (target) {
41
- // Add eventBus property to the class
42
- Object.defineProperty(target.prototype, 'eventBus', {
43
- get: function () {
44
- if (!this._eventBus) {
45
- this._eventBus = event_bus_1.EventBus.getInstance();
46
- }
47
- return this._eventBus;
48
- },
49
- enumerable: false,
50
- configurable: false
51
- });
52
- // Store emitter metadata
53
- Reflect.defineMetadata('event:emitter', true, target);
54
- return target;
55
- };
56
- }
57
- // Event listener class decorator (auto-registers handlers)
58
- function EventListener() {
59
- return function (target) {
60
- // Register the class in the container
61
- container_1.container.register(target);
62
- // Store listener metadata
63
- Reflect.defineMetadata('event:listener', true, target);
64
- return target;
65
- };
66
- }
67
- // Helper function to register all event handlers from decorated classes
68
- function registerEventHandlers(classes) {
69
- const registry = event_registry_1.EventRegistry.getInstance();
70
- classes.forEach(ClassConstructor => {
71
- const isListener = Reflect.getMetadata('event:listener', ClassConstructor);
72
- if (!isListener)
73
- return;
74
- const handlers = Reflect.getMetadata('event:handlers', ClassConstructor) || [];
75
- if (handlers.length === 0)
76
- return;
77
- // Create instance
78
- const instance = container_1.container.resolve(ClassConstructor);
79
- // Register each handler
80
- handlers.forEach((handlerInfo) => {
81
- const handler = {
82
- handle: async (event) => {
83
- const instanceMethod = instance[handlerInfo.methodName];
84
- if (typeof instanceMethod === 'function') {
85
- await instanceMethod.call(instance, event);
86
- }
87
- else {
88
- throw new Error(`Method ${String(handlerInfo.methodName)} not found on handler instance`);
89
- }
90
- }
91
- };
92
- registry.registerHandler(handlerInfo.eventType, handler, handlerInfo.options);
93
- });
94
- });
95
- }
96
- // Emit decorator for methods (automatically emits events after method execution)
97
- function EmitEvent(eventType, eventDataFactory) {
98
- return function (target, propertyKey, descriptor) {
99
- const originalMethod = descriptor.value;
100
- descriptor.value = async function (...args) {
101
- const result = await originalMethod.apply(this, args);
102
- // Get event bus
103
- const eventBus = event_bus_1.EventBus.getInstance();
104
- // Create event data
105
- let eventData = {};
106
- if (eventDataFactory) {
107
- eventData = eventDataFactory(result, args);
108
- }
109
- else {
110
- // Create a safe default payload
111
- eventData = {
112
- data: { result, args },
113
- timestamp: new Date()
114
- };
115
- }
116
- // Emit event
117
- await eventBus.emit(eventType, eventData);
118
- return result;
119
- };
120
- return descriptor;
121
- };
122
- }
123
- //# sourceMappingURL=event.decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.decorators.js","sourceRoot":"","sources":["../../../src/events/decorators/event.decorators.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { BaseEvent, DeadLetterEvent } from '../types/event.types';
2
- export declare class SystemDeadLetterEvent implements DeadLetterEvent {
3
- id: string;
4
- type: string;
5
- timestamp: Date;
6
- version: number;
7
- correlationId?: string;
8
- causationId?: string;
9
- metadata?: Record<string, any>;
10
- originalEvent: BaseEvent;
11
- failedEventData: string;
12
- error: string;
13
- subscriptionId: string;
14
- constructor(data?: Partial<SystemDeadLetterEvent>);
15
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"system.events.js","sourceRoot":"","sources":["../../../src/events/examples/system.events.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qEAAuD;AAGhD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAehC,YAAY,IAAqC;QAbjD,SAAI,GAAG,0BAA0B,CAAC;QAElC,YAAO,GAAG,CAAC,CAAC;QAYV,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAA;AApBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,wBAAK,EAAC,0BAA0B,CAAC;;GACrB,qBAAqB,CAoBjC"}
@@ -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