bootifyjs 0.1.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.d.ts +8 -27
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +68 -134
- package/dist/api.js.map +1 -1
- package/dist/cache/bootstrap.d.ts +6 -0
- package/dist/cache/bootstrap.d.ts.map +1 -0
- package/dist/cache/bootstrap.js +23 -0
- package/dist/cache/bootstrap.js.map +1 -0
- package/dist/cache/cache.service.d.ts +9 -0
- package/dist/cache/cache.service.d.ts.map +1 -0
- package/dist/cache/cache.service.js +40 -0
- package/dist/cache/cache.service.js.map +1 -0
- package/dist/cache/cache.types.d.ts +14 -0
- package/dist/cache/cache.types.d.ts.map +1 -0
- package/dist/cache/cache.types.js +8 -0
- package/dist/cache/cache.types.js.map +1 -0
- package/dist/cache/decorators.d.ts +12 -0
- package/dist/cache/decorators.d.ts.map +1 -0
- package/dist/cache/decorators.js +53 -0
- package/dist/cache/decorators.js.map +1 -0
- package/dist/cache/in-memory-cache.store.d.ts +8 -0
- package/dist/cache/in-memory-cache.store.d.ts.map +1 -0
- package/dist/cache/in-memory-cache.store.js +39 -0
- package/dist/cache/in-memory-cache.store.js.map +1 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +21 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/core/component-registry.d.ts +7 -0
- package/dist/core/component-registry.d.ts.map +1 -0
- package/dist/core/component-registry.js +9 -0
- package/dist/core/component-registry.js.map +1 -0
- package/dist/core/decorators.d.ts +38 -22
- package/dist/core/decorators.d.ts.map +1 -0
- package/dist/core/decorators.js +155 -174
- package/dist/core/decorators.js.map +1 -1
- package/dist/core/di-container.d.ts +31 -0
- package/dist/core/di-container.d.ts.map +1 -0
- package/dist/core/di-container.js +219 -0
- package/dist/core/di-container.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/request-context.service.d.ts +24 -0
- package/dist/core/request-context.service.d.ts.map +1 -0
- package/dist/core/request-context.service.js +52 -0
- package/dist/core/request-context.service.js.map +1 -0
- package/dist/core/router.d.ts +4 -32
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +81 -258
- package/dist/core/router.js.map +1 -1
- package/dist/events/bootstrap.d.ts +8 -0
- package/dist/events/bootstrap.d.ts.map +1 -0
- package/dist/events/bootstrap.js +37 -0
- package/dist/events/bootstrap.js.map +1 -0
- package/dist/events/decorators.d.ts +16 -0
- package/dist/events/decorators.d.ts.map +1 -0
- package/dist/events/decorators.js +37 -0
- package/dist/events/decorators.js.map +1 -0
- package/dist/events/event-bus.service.d.ts +21 -0
- package/dist/events/event-bus.service.d.ts.map +1 -0
- package/dist/events/event-bus.service.js +78 -0
- package/dist/events/event-bus.service.js.map +1 -0
- package/dist/events/event.types.d.ts +17 -0
- package/dist/events/event.types.d.ts.map +1 -0
- package/dist/events/event.types.js.map +1 -0
- package/dist/events/index.d.ts +5 -13
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +4 -54
- package/dist/events/index.js.map +1 -1
- package/dist/examples/controllers/health.controller.d.ts +7 -0
- package/dist/examples/controllers/health.controller.d.ts.map +1 -0
- package/dist/{events/examples/system.events.js → examples/controllers/health.controller.js} +16 -15
- package/dist/examples/controllers/health.controller.js.map +1 -0
- package/dist/examples/controllers/todo.controller.d.ts +31 -0
- package/dist/examples/controllers/todo.controller.d.ts.map +1 -0
- package/dist/examples/controllers/todo.controller.js +102 -0
- package/dist/examples/controllers/todo.controller.js.map +1 -0
- package/dist/examples/events/TodoEventHandler.d.ts +2 -0
- package/dist/examples/events/TodoEventHandler.d.ts.map +1 -0
- package/dist/examples/events/TodoEventHandler.js +31 -0
- package/dist/examples/events/TodoEventHandler.js.map +1 -0
- package/dist/examples/events/todo.events.d.ts +16 -0
- package/dist/examples/events/todo.events.d.ts.map +1 -0
- package/dist/examples/events/todo.events.js +13 -0
- package/dist/examples/events/todo.events.js.map +1 -0
- package/dist/examples/index.d.ts +2 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/dist/examples/index.js +35 -0
- package/dist/examples/index.js.map +1 -0
- package/dist/examples/repositories/todo.repository.d.ts +20 -0
- package/dist/examples/repositories/todo.repository.d.ts.map +1 -0
- package/dist/examples/repositories/todo.repository.js +33 -0
- package/dist/examples/repositories/todo.repository.js.map +1 -0
- package/dist/examples/services/todo.service.d.ts +33 -0
- package/dist/examples/services/todo.service.d.ts.map +1 -0
- package/dist/examples/services/todo.service.js +80 -0
- package/dist/examples/services/todo.service.js.map +1 -0
- package/dist/examples/todos/schema.d.ts +54 -0
- package/dist/examples/todos/schema.d.ts.map +1 -0
- package/dist/examples/todos/schema.js +20 -0
- package/dist/examples/todos/schema.js.map +1 -0
- package/dist/index.d.ts +7 -17
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -95
- package/dist/index.js.map +1 -1
- package/dist/logging/config/logging.config.d.ts +31 -3
- package/dist/logging/config/logging.config.d.ts.map +1 -0
- package/dist/logging/config/logging.config.js +43 -93
- package/dist/logging/config/logging.config.js.map +1 -1
- package/dist/logging/core/decorators.d.ts +16 -0
- package/dist/logging/core/decorators.d.ts.map +1 -0
- package/dist/logging/core/decorators.js +74 -0
- package/dist/logging/core/decorators.js.map +1 -0
- package/dist/logging/core/logger.provider.d.ts +4 -0
- package/dist/logging/core/logger.provider.d.ts.map +1 -0
- package/dist/logging/core/logger.provider.js +68 -0
- package/dist/logging/core/logger.provider.js.map +1 -0
- package/dist/logging/core/logger.service.d.ts +9 -27
- package/dist/logging/core/logger.service.d.ts.map +1 -0
- package/dist/logging/core/logger.service.js +34 -164
- package/dist/logging/core/logger.service.js.map +1 -1
- package/dist/logging/core/{startup-logger.service.d.ts → startup.logger.d.ts} +4 -6
- package/dist/logging/core/startup.logger.d.ts.map +1 -0
- package/dist/logging/core/{startup-logger.service.js → startup.logger.js} +36 -42
- package/dist/logging/core/startup.logger.js.map +1 -0
- package/dist/logging/index.d.ts +7 -14
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +17 -28
- package/dist/logging/index.js.map +1 -1
- package/dist/middleware/auth.middleware.d.ts +3 -0
- package/dist/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/middleware/auth.middleware.js +18 -0
- package/dist/middleware/auth.middleware.js.map +1 -0
- package/dist/middleware/context.middleware.d.ts +7 -0
- package/dist/middleware/context.middleware.d.ts.map +1 -0
- package/dist/middleware/context.middleware.js +25 -0
- package/dist/middleware/context.middleware.js.map +1 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +20 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/request-logger.middleware.d.ts +4 -0
- package/dist/middleware/request-logger.middleware.d.ts.map +1 -0
- package/dist/middleware/request-logger.middleware.js +18 -0
- package/dist/middleware/request-logger.middleware.js.map +1 -0
- package/package.json +52 -47
- package/LICENSE +0 -21
- package/README.md +0 -423
- package/dist/config/app.config.d.ts +0 -29
- package/dist/config/app.config.js +0 -55
- package/dist/config/app.config.js.map +0 -1
- package/dist/controllers/config.controller.d.ts +0 -16
- package/dist/controllers/config.controller.js +0 -66
- package/dist/controllers/config.controller.js.map +0 -1
- package/dist/controllers/events.controller.d.ts +0 -66
- package/dist/controllers/events.controller.js +0 -145
- package/dist/controllers/events.controller.js.map +0 -1
- package/dist/controllers/health.controller.d.ts +0 -20
- package/dist/controllers/health.controller.js +0 -92
- package/dist/controllers/health.controller.js.map +0 -1
- package/dist/controllers/user.controller.d.ts +0 -13
- package/dist/controllers/user.controller.js +0 -209
- package/dist/controllers/user.controller.js.map +0 -1
- package/dist/core/application.d.ts +0 -21
- package/dist/core/application.js +0 -90
- package/dist/core/application.js.map +0 -1
- package/dist/core/config.d.ts +0 -3
- package/dist/core/config.js +0 -78
- package/dist/core/config.js.map +0 -1
- package/dist/core/container.d.ts +0 -17
- package/dist/core/container.js +0 -92
- package/dist/core/container.js.map +0 -1
- package/dist/core/errors.d.ts +0 -18
- package/dist/core/errors.js +0 -74
- package/dist/core/errors.js.map +0 -1
- package/dist/core/middleware.d.ts +0 -8
- package/dist/core/middleware.js +0 -23
- package/dist/core/middleware.js.map +0 -1
- package/dist/core/openapi.d.ts +0 -80
- package/dist/core/openapi.js +0 -189
- package/dist/core/openapi.js.map +0 -1
- package/dist/core/utils.d.ts +0 -7
- package/dist/core/utils.js +0 -75
- package/dist/core/utils.js.map +0 -1
- package/dist/core/validation.d.ts +0 -15
- package/dist/core/validation.js +0 -161
- package/dist/core/validation.js.map +0 -1
- package/dist/events/core/event-bus.d.ts +0 -26
- package/dist/events/core/event-bus.js +0 -253
- package/dist/events/core/event-bus.js.map +0 -1
- package/dist/events/core/event-registry.d.ts +0 -31
- package/dist/events/core/event-registry.js +0 -170
- package/dist/events/core/event-registry.js.map +0 -1
- package/dist/events/decorators/event.decorators.d.ts +0 -11
- package/dist/events/decorators/event.decorators.js +0 -123
- package/dist/events/decorators/event.decorators.js.map +0 -1
- package/dist/events/examples/system.events.d.ts +0 -15
- package/dist/events/examples/system.events.js.map +0 -1
- package/dist/events/examples/user.events.d.ts +0 -68
- package/dist/events/examples/user.events.js +0 -73
- package/dist/events/examples/user.events.js.map +0 -1
- package/dist/events/examples/user.handlers.d.ts +0 -20
- package/dist/events/examples/user.handlers.js +0 -157
- package/dist/events/examples/user.handlers.js.map +0 -1
- package/dist/events/middleware/logging.middleware.d.ts +0 -7
- package/dist/events/middleware/logging.middleware.js +0 -44
- package/dist/events/middleware/logging.middleware.js.map +0 -1
- package/dist/events/middleware/metrics.middleware.d.ts +0 -11
- package/dist/events/middleware/metrics.middleware.js +0 -87
- package/dist/events/middleware/metrics.middleware.js.map +0 -1
- package/dist/events/middleware/validation.middleware.d.ts +0 -8
- package/dist/events/middleware/validation.middleware.js +0 -63
- package/dist/events/middleware/validation.middleware.js.map +0 -1
- package/dist/events/store/memory-event-store.d.ts +0 -21
- package/dist/events/store/memory-event-store.js +0 -81
- package/dist/events/store/memory-event-store.js.map +0 -1
- package/dist/events/types/event.types.d.ts +0 -57
- package/dist/events/types/event.types.js.map +0 -1
- package/dist/examples/basic-api.d.ts +0 -1
- package/dist/examples/basic-api.js +0 -120
- package/dist/examples/basic-api.js.map +0 -1
- package/dist/logging/core/log-context.service.d.ts +0 -11
- package/dist/logging/core/log-context.service.js +0 -40
- package/dist/logging/core/log-context.service.js.map +0 -1
- package/dist/logging/core/startup-logger.service.js.map +0 -1
- package/dist/logging/decorators/log.decorator.d.ts +0 -11
- package/dist/logging/decorators/log.decorator.js +0 -80
- package/dist/logging/decorators/log.decorator.js.map +0 -1
- package/dist/logging/middleware/context.middleware.d.ts +0 -2
- package/dist/logging/middleware/context.middleware.js +0 -29
- package/dist/logging/middleware/context.middleware.js.map +0 -1
- package/dist/logging/middleware/request-logging.middleware.d.ts +0 -3
- package/dist/logging/middleware/request-logging.middleware.js +0 -78
- package/dist/logging/middleware/request-logging.middleware.js.map +0 -1
- package/dist/logging/types/logging.types.d.ts +0 -79
- package/dist/logging/types/logging.types.js +0 -3
- package/dist/logging/types/logging.types.js.map +0 -1
- package/dist/middlewares/auth.middleware.d.ts +0 -2
- package/dist/middlewares/auth.middleware.js +0 -20
- package/dist/middlewares/auth.middleware.js.map +0 -1
- package/dist/middlewares/cors.middleware.d.ts +0 -2
- package/dist/middlewares/cors.middleware.js +0 -16
- package/dist/middlewares/cors.middleware.js.map +0 -1
- package/dist/middlewares/swagger.middleware.d.ts +0 -6
- package/dist/middlewares/swagger.middleware.js +0 -84
- package/dist/middlewares/swagger.middleware.js.map +0 -1
- package/dist/repositories/user.repository.d.ts +0 -16
- package/dist/repositories/user.repository.js +0 -110
- package/dist/repositories/user.repository.js.map +0 -1
- package/dist/schemas/user.schemas.d.ts +0 -214
- package/dist/schemas/user.schemas.js +0 -71
- package/dist/schemas/user.schemas.js.map +0 -1
- package/dist/services/config-demo.service.d.ts +0 -10
- package/dist/services/config-demo.service.js +0 -88
- package/dist/services/config-demo.service.js.map +0 -1
- package/dist/services/user.service.d.ts +0 -21
- package/dist/services/user.service.js +0 -201
- package/dist/services/user.service.js.map +0 -1
- /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
|