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.
- 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 -173
- 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,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,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":";;;AACA,2CAA8C;AAE9C,MAAa,iBAAiB;IAU5B;QATA,SAAI,GAAG,mBAAmB,CAAC;QAEnB,YAAO,GAAG,IAAI,GAAG,EAKrB,CAAC;QAGH,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;QAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEnD,0CAA0C;YAC1C,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;oBACjD,SAAS,EAAE,iBAAiB;oBAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;oBACR,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,SAAiB,EAAE,QAAgB,EAAE,QAAiB;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;YAC7C,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,aAAa,EAAE,IAAI,IAAI,EAAE;SAC1B,CAAC;QAEF,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC9B,OAAO,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAEnC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAErC,2BAA2B;QAC3B,IAAI,OAAO,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBACtB,SAAS,EAAE,SAAS,SAAS,EAAE;gBAC/B,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK;gBAC3C,QAAQ,EAAE;oBACR,WAAW,EAAE,OAAO,CAAC,KAAK;oBAC1B,WAAW,EAAE,OAAO,CAAC,MAAM;oBAC3B,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG;oBACjD,WAAW,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK;iBAC/C;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,SAAS,CAAC,GAAG;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK;gBAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG;gBACjD,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACtC,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;CACF;AAjGD,8CAiGC"}
|
@@ -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
|
-
}
|