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
@@ -0,0 +1,54 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
export declare const TodoBaseSchema: z.ZodObject<{
|
3
|
+
id: z.ZodString;
|
4
|
+
text: z.ZodString;
|
5
|
+
completed: z.ZodBoolean;
|
6
|
+
createdAt: z.ZodDate;
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
8
|
+
completed: boolean;
|
9
|
+
text: string;
|
10
|
+
id: string;
|
11
|
+
createdAt: Date;
|
12
|
+
}, {
|
13
|
+
completed: boolean;
|
14
|
+
text: string;
|
15
|
+
id: string;
|
16
|
+
createdAt: Date;
|
17
|
+
}>;
|
18
|
+
export declare const TodoCreateBodySchema: z.ZodObject<Pick<{
|
19
|
+
id: z.ZodString;
|
20
|
+
text: z.ZodString;
|
21
|
+
completed: z.ZodBoolean;
|
22
|
+
createdAt: z.ZodDate;
|
23
|
+
}, "text">, "strip", z.ZodTypeAny, {
|
24
|
+
text: string;
|
25
|
+
}, {
|
26
|
+
text: string;
|
27
|
+
}>;
|
28
|
+
export declare const TodoUpdateBodySchema: z.ZodObject<{
|
29
|
+
completed: z.ZodOptional<z.ZodBoolean>;
|
30
|
+
text: z.ZodOptional<z.ZodString>;
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
32
|
+
completed?: boolean | undefined;
|
33
|
+
text?: string | undefined;
|
34
|
+
}, {
|
35
|
+
completed?: boolean | undefined;
|
36
|
+
text?: string | undefined;
|
37
|
+
}>;
|
38
|
+
export declare const TodoResponseSchema: z.ZodObject<{
|
39
|
+
id: z.ZodString;
|
40
|
+
text: z.ZodString;
|
41
|
+
completed: z.ZodBoolean;
|
42
|
+
createdAt: z.ZodDate;
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
44
|
+
completed: boolean;
|
45
|
+
text: string;
|
46
|
+
id: string;
|
47
|
+
createdAt: Date;
|
48
|
+
}, {
|
49
|
+
completed: boolean;
|
50
|
+
text: string;
|
51
|
+
id: string;
|
52
|
+
createdAt: Date;
|
53
|
+
}>;
|
54
|
+
//# sourceMappingURL=schema.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/examples/todos/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;EAE/B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;EAGrB,CAAA;AAEZ,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAAiB,CAAA"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.TodoResponseSchema = exports.TodoUpdateBodySchema = exports.TodoCreateBodySchema = exports.TodoBaseSchema = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
// This represents the full Todo object, like the one in your database.
|
6
|
+
exports.TodoBaseSchema = zod_1.z.object({
|
7
|
+
id: zod_1.z.string().uuid(),
|
8
|
+
text: zod_1.z.string().min(1, 'Text cannot be empty'),
|
9
|
+
completed: zod_1.z.boolean(),
|
10
|
+
createdAt: zod_1.z.date(),
|
11
|
+
});
|
12
|
+
exports.TodoCreateBodySchema = exports.TodoBaseSchema.pick({
|
13
|
+
text: true,
|
14
|
+
});
|
15
|
+
exports.TodoUpdateBodySchema = exports.TodoBaseSchema.pick({
|
16
|
+
text: true,
|
17
|
+
completed: true,
|
18
|
+
}).partial();
|
19
|
+
exports.TodoResponseSchema = exports.TodoBaseSchema;
|
20
|
+
//# sourceMappingURL=schema.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/examples/todos/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,uEAAuE;AAC1D,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAA;AAEW,QAAA,oBAAoB,GAAG,sBAAc,CAAC,IAAI,CAAC;IACtD,IAAI,EAAE,IAAI;CACX,CAAC,CAAA;AAEW,QAAA,oBAAoB,GAAG,sBAAc,CAAC,IAAI,CAAC;IACtD,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC,OAAO,EAAE,CAAA;AAEC,QAAA,kBAAkB,GAAG,sBAAc,CAAA"}
|
package/dist/index.d.ts
CHANGED
@@ -1,17 +1,7 @@
|
|
1
|
-
export
|
2
|
-
export
|
3
|
-
export
|
4
|
-
export
|
5
|
-
export
|
6
|
-
export
|
7
|
-
|
8
|
-
export { Middleware, MiddlewareStack, NextFunction } from './core/middleware';
|
9
|
-
export { parseQuery, parseBody, matchRoute } from './core/utils';
|
10
|
-
export { Injectable, Service, Repository, Controller, Get, Post, Put, Delete, Req, Res, Body, Param, Query, UseMiddleware, ValidateBody, ValidateQuery, ValidateParams, ValidateResponse, InjectConfig, ApiTags, ApiSecurity, ApiResponse, ApiOperation } from './core/decorators';
|
11
|
-
export { EventBus, EventRegistry, Event, EventEmitter, EventListener, EmitEvent, registerEventHandlers, LoggingMiddleware, ValidationMiddleware, MetricsMiddleware, MemoryEventStore, configureEventSystem } from './events';
|
12
|
-
export { LoggerService, LogContextService, StartupLoggerService, LoggingConfigService, contextMiddleware, createRequestLoggingMiddleware, Log, Logger, configureLogging } from './logging';
|
13
|
-
export { corsMiddleware } from './middlewares/cors.middleware';
|
14
|
-
export { authMiddleware } from './middlewares/auth.middleware';
|
15
|
-
export { swaggerMiddleware } from './middlewares/swagger.middleware';
|
16
|
-
export { AppConfig } from './config/app.config';
|
17
|
-
export { createBootifyApp } from './api';
|
1
|
+
export * from './api';
|
2
|
+
export * from './middleware';
|
3
|
+
export * from './cache';
|
4
|
+
export * from './core';
|
5
|
+
export * from './events';
|
6
|
+
export * from './logging';
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AAExB,cAAc,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
@@ -1,98 +1,23 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return router_1.Router; } });
|
10
|
-
var container_1 = require("./core/container");
|
11
|
-
Object.defineProperty(exports, "container", { enumerable: true, get: function () { return container_1.container; } });
|
12
|
-
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return container_1.Container; } });
|
13
|
-
Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return container_1.Scope; } });
|
14
|
-
var config_1 = require("./core/config");
|
15
|
-
Object.defineProperty(exports, "getConfigInstance", { enumerable: true, get: function () { return config_1.getConfigInstance; } });
|
16
|
-
Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return config_1.Config; } });
|
17
|
-
var openapi_1 = require("./core/openapi");
|
18
|
-
Object.defineProperty(exports, "OpenAPIGenerator", { enumerable: true, get: function () { return openapi_1.OpenAPIGenerator; } });
|
19
|
-
var validation_1 = require("./core/validation");
|
20
|
-
Object.defineProperty(exports, "ValidationService", { enumerable: true, get: function () { return validation_1.ValidationService; } });
|
21
|
-
Object.defineProperty(exports, "zodToOpenAPI", { enumerable: true, get: function () { return validation_1.zodToOpenAPI; } });
|
22
|
-
var errors_1 = require("./core/errors");
|
23
|
-
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return errors_1.HttpError; } });
|
24
|
-
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
|
25
|
-
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return errors_1.NotFoundError; } });
|
26
|
-
Object.defineProperty(exports, "UnauthorizedError", { enumerable: true, get: function () { return errors_1.UnauthorizedError; } });
|
27
|
-
Object.defineProperty(exports, "ForbiddenError", { enumerable: true, get: function () { return errors_1.ForbiddenError; } });
|
28
|
-
Object.defineProperty(exports, "errorHandler", { enumerable: true, get: function () { return errors_1.errorHandler; } });
|
29
|
-
var middleware_1 = require("./core/middleware");
|
30
|
-
Object.defineProperty(exports, "MiddlewareStack", { enumerable: true, get: function () { return middleware_1.MiddlewareStack; } });
|
31
|
-
var utils_1 = require("./core/utils");
|
32
|
-
Object.defineProperty(exports, "parseQuery", { enumerable: true, get: function () { return utils_1.parseQuery; } });
|
33
|
-
Object.defineProperty(exports, "parseBody", { enumerable: true, get: function () { return utils_1.parseBody; } });
|
34
|
-
Object.defineProperty(exports, "matchRoute", { enumerable: true, get: function () { return utils_1.matchRoute; } });
|
35
|
-
// Decorator exports
|
36
|
-
var decorators_1 = require("./core/decorators");
|
37
|
-
Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return decorators_1.Injectable; } });
|
38
|
-
Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return decorators_1.Service; } });
|
39
|
-
Object.defineProperty(exports, "Repository", { enumerable: true, get: function () { return decorators_1.Repository; } });
|
40
|
-
Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return decorators_1.Controller; } });
|
41
|
-
Object.defineProperty(exports, "Get", { enumerable: true, get: function () { return decorators_1.Get; } });
|
42
|
-
Object.defineProperty(exports, "Post", { enumerable: true, get: function () { return decorators_1.Post; } });
|
43
|
-
Object.defineProperty(exports, "Put", { enumerable: true, get: function () { return decorators_1.Put; } });
|
44
|
-
Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return decorators_1.Delete; } });
|
45
|
-
Object.defineProperty(exports, "Req", { enumerable: true, get: function () { return decorators_1.Req; } });
|
46
|
-
Object.defineProperty(exports, "Res", { enumerable: true, get: function () { return decorators_1.Res; } });
|
47
|
-
Object.defineProperty(exports, "Body", { enumerable: true, get: function () { return decorators_1.Body; } });
|
48
|
-
Object.defineProperty(exports, "Param", { enumerable: true, get: function () { return decorators_1.Param; } });
|
49
|
-
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return decorators_1.Query; } });
|
50
|
-
Object.defineProperty(exports, "UseMiddleware", { enumerable: true, get: function () { return decorators_1.UseMiddleware; } });
|
51
|
-
Object.defineProperty(exports, "ValidateBody", { enumerable: true, get: function () { return decorators_1.ValidateBody; } });
|
52
|
-
Object.defineProperty(exports, "ValidateQuery", { enumerable: true, get: function () { return decorators_1.ValidateQuery; } });
|
53
|
-
Object.defineProperty(exports, "ValidateParams", { enumerable: true, get: function () { return decorators_1.ValidateParams; } });
|
54
|
-
Object.defineProperty(exports, "ValidateResponse", { enumerable: true, get: function () { return decorators_1.ValidateResponse; } });
|
55
|
-
Object.defineProperty(exports, "InjectConfig", { enumerable: true, get: function () { return decorators_1.InjectConfig; } });
|
56
|
-
Object.defineProperty(exports, "ApiTags", { enumerable: true, get: function () { return decorators_1.ApiTags; } });
|
57
|
-
Object.defineProperty(exports, "ApiSecurity", { enumerable: true, get: function () { return decorators_1.ApiSecurity; } });
|
58
|
-
Object.defineProperty(exports, "ApiResponse", { enumerable: true, get: function () { return decorators_1.ApiResponse; } });
|
59
|
-
Object.defineProperty(exports, "ApiOperation", { enumerable: true, get: function () { return decorators_1.ApiOperation; } });
|
60
|
-
// Event system exports
|
61
|
-
var events_1 = require("./events");
|
62
|
-
Object.defineProperty(exports, "EventBus", { enumerable: true, get: function () { return events_1.EventBus; } });
|
63
|
-
Object.defineProperty(exports, "EventRegistry", { enumerable: true, get: function () { return events_1.EventRegistry; } });
|
64
|
-
Object.defineProperty(exports, "Event", { enumerable: true, get: function () { return events_1.Event; } });
|
65
|
-
Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return events_1.EventEmitter; } });
|
66
|
-
Object.defineProperty(exports, "EventListener", { enumerable: true, get: function () { return events_1.EventListener; } });
|
67
|
-
Object.defineProperty(exports, "EmitEvent", { enumerable: true, get: function () { return events_1.EmitEvent; } });
|
68
|
-
Object.defineProperty(exports, "registerEventHandlers", { enumerable: true, get: function () { return events_1.registerEventHandlers; } });
|
69
|
-
Object.defineProperty(exports, "LoggingMiddleware", { enumerable: true, get: function () { return events_1.LoggingMiddleware; } });
|
70
|
-
Object.defineProperty(exports, "ValidationMiddleware", { enumerable: true, get: function () { return events_1.ValidationMiddleware; } });
|
71
|
-
Object.defineProperty(exports, "MetricsMiddleware", { enumerable: true, get: function () { return events_1.MetricsMiddleware; } });
|
72
|
-
Object.defineProperty(exports, "MemoryEventStore", { enumerable: true, get: function () { return events_1.MemoryEventStore; } });
|
73
|
-
Object.defineProperty(exports, "configureEventSystem", { enumerable: true, get: function () { return events_1.configureEventSystem; } });
|
74
|
-
// Logging system exports
|
75
|
-
var logging_1 = require("./logging");
|
76
|
-
Object.defineProperty(exports, "LoggerService", { enumerable: true, get: function () { return logging_1.LoggerService; } });
|
77
|
-
Object.defineProperty(exports, "LogContextService", { enumerable: true, get: function () { return logging_1.LogContextService; } });
|
78
|
-
Object.defineProperty(exports, "StartupLoggerService", { enumerable: true, get: function () { return logging_1.StartupLoggerService; } });
|
79
|
-
Object.defineProperty(exports, "LoggingConfigService", { enumerable: true, get: function () { return logging_1.LoggingConfigService; } });
|
80
|
-
Object.defineProperty(exports, "contextMiddleware", { enumerable: true, get: function () { return logging_1.contextMiddleware; } });
|
81
|
-
Object.defineProperty(exports, "createRequestLoggingMiddleware", { enumerable: true, get: function () { return logging_1.createRequestLoggingMiddleware; } });
|
82
|
-
Object.defineProperty(exports, "Log", { enumerable: true, get: function () { return logging_1.Log; } });
|
83
|
-
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logging_1.Logger; } });
|
84
|
-
Object.defineProperty(exports, "configureLogging", { enumerable: true, get: function () { return logging_1.configureLogging; } });
|
85
|
-
// Middleware exports
|
86
|
-
var cors_middleware_1 = require("./middlewares/cors.middleware");
|
87
|
-
Object.defineProperty(exports, "corsMiddleware", { enumerable: true, get: function () { return cors_middleware_1.corsMiddleware; } });
|
88
|
-
var auth_middleware_1 = require("./middlewares/auth.middleware");
|
89
|
-
Object.defineProperty(exports, "authMiddleware", { enumerable: true, get: function () { return auth_middleware_1.authMiddleware; } });
|
90
|
-
var swagger_middleware_1 = require("./middlewares/swagger.middleware");
|
91
|
-
Object.defineProperty(exports, "swaggerMiddleware", { enumerable: true, get: function () { return swagger_middleware_1.swaggerMiddleware; } });
|
92
|
-
// Configuration exports
|
93
|
-
var app_config_1 = require("./config/app.config");
|
94
|
-
Object.defineProperty(exports, "AppConfig", { enumerable: true, get: function () { return app_config_1.AppConfig; } });
|
95
|
-
// Public API
|
96
|
-
var api_1 = require("./api");
|
97
|
-
Object.defineProperty(exports, "createBootifyApp", { enumerable: true, get: function () { return api_1.createBootifyApp; } });
|
17
|
+
__exportStar(require("./api"), exports);
|
18
|
+
__exportStar(require("./middleware"), exports);
|
19
|
+
__exportStar(require("./cache"), exports);
|
20
|
+
__exportStar(require("./core"), exports);
|
21
|
+
__exportStar(require("./events"), exports);
|
22
|
+
__exportStar(require("./logging"), exports);
|
98
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,+CAA4B;AAC5B,0CAAuB;AACvB,yCAAsB;AACtB,2CAAwB;AAExB,4CAAyB"}
|
@@ -1,5 +1,33 @@
|
|
1
|
-
import {
|
1
|
+
import { z } from 'zod';
|
2
|
+
declare const LoggingConfigSchema: z.ZodObject<{
|
3
|
+
LOG_LEVEL: z.ZodDefault<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>;
|
4
|
+
SERVICE_NAME: z.ZodDefault<z.ZodString>;
|
5
|
+
CLICKHOUSE_ENABLED: z.ZodDefault<z.ZodEffects<z.ZodBoolean, boolean, unknown>>;
|
6
|
+
CLICKHOUSE_URL: z.ZodDefault<z.ZodString>;
|
7
|
+
CLICKHOUSE_USER: z.ZodDefault<z.ZodString>;
|
8
|
+
CLICKHOUSE_PASSWORD: z.ZodDefault<z.ZodString>;
|
9
|
+
CLICKHOUSE_DB: z.ZodDefault<z.ZodString>;
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
11
|
+
LOG_LEVEL: "trace" | "error" | "fatal" | "warn" | "info" | "debug";
|
12
|
+
SERVICE_NAME: string;
|
13
|
+
CLICKHOUSE_ENABLED: boolean;
|
14
|
+
CLICKHOUSE_URL: string;
|
15
|
+
CLICKHOUSE_USER: string;
|
16
|
+
CLICKHOUSE_PASSWORD: string;
|
17
|
+
CLICKHOUSE_DB: string;
|
18
|
+
}, {
|
19
|
+
LOG_LEVEL?: "trace" | "error" | "fatal" | "warn" | "info" | "debug" | undefined;
|
20
|
+
SERVICE_NAME?: string | undefined;
|
21
|
+
CLICKHOUSE_ENABLED?: unknown;
|
22
|
+
CLICKHOUSE_URL?: string | undefined;
|
23
|
+
CLICKHOUSE_USER?: string | undefined;
|
24
|
+
CLICKHOUSE_PASSWORD?: string | undefined;
|
25
|
+
CLICKHOUSE_DB?: string | undefined;
|
26
|
+
}>;
|
27
|
+
export type LoggingConfigType = z.infer<typeof LoggingConfigSchema>;
|
2
28
|
export declare class LoggingConfigService {
|
3
|
-
|
4
|
-
|
29
|
+
readonly config: LoggingConfigType;
|
30
|
+
constructor();
|
5
31
|
}
|
32
|
+
export {};
|
33
|
+
//# sourceMappingURL=logging.config.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"logging.config.d.ts","sourceRoot":"","sources":["../../../src/logging/config/logging.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAcvB,CAAA;AAGF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAGnE,qBACa,oBAAoB;IAC/B,SAAgB,MAAM,EAAE,iBAAiB,CAAA;;CAgB1C"}
|
@@ -1,101 +1,51 @@
|
|
1
1
|
"use strict";
|
2
|
-
var
|
3
|
-
|
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);
|
4
10
|
};
|
5
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
12
|
exports.LoggingConfigService = void 0;
|
7
|
-
const
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
slowThreshold: parseInt(process.env.LOG_SLOW_THRESHOLD || '1000')
|
35
|
-
}
|
36
|
-
};
|
37
|
-
// Configure transports based on environment
|
38
|
-
config.transports = LoggingConfigService.createTransports(config);
|
39
|
-
return config;
|
40
|
-
}
|
41
|
-
static createTransports(config) {
|
42
|
-
const transports = [];
|
43
|
-
if (config.environment === 'development') {
|
44
|
-
// Pretty console output for development with detailed formatting
|
45
|
-
transports.push({
|
46
|
-
level: 'trace',
|
47
|
-
target: 'pino-pretty',
|
48
|
-
options: {
|
49
|
-
colorize: true,
|
50
|
-
translateTime: 'SYS:standard',
|
51
|
-
ignore: 'pid,hostname',
|
52
|
-
messageKey: 'message',
|
53
|
-
levelFirst: true,
|
54
|
-
messageFormat: '{component} {message}'
|
55
|
-
}
|
56
|
-
});
|
57
|
-
}
|
58
|
-
else {
|
59
|
-
// JSON output for production
|
60
|
-
transports.push({
|
61
|
-
level: config.level,
|
62
|
-
target: 'pino/file',
|
63
|
-
options: {
|
64
|
-
destination: 1 // stdout
|
65
|
-
}
|
66
|
-
});
|
13
|
+
const zod_1 = require("zod");
|
14
|
+
// import * as dotenv from 'dotenv'
|
15
|
+
const core_1 = require("../../core");
|
16
|
+
// 1. Define the validation schema for logging configuration
|
17
|
+
const LoggingConfigSchema = zod_1.z.object({
|
18
|
+
LOG_LEVEL: zod_1.z
|
19
|
+
.enum(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])
|
20
|
+
.default(process.env.NODE_ENV === 'production' ? 'info' : 'debug'),
|
21
|
+
SERVICE_NAME: zod_1.z.string().default('bootifyjs-app'),
|
22
|
+
// ClickHouse Configuration
|
23
|
+
CLICKHOUSE_ENABLED: zod_1.z
|
24
|
+
.preprocess((val) => String(val).toLowerCase() === 'true', zod_1.z.boolean())
|
25
|
+
.default(false),
|
26
|
+
CLICKHOUSE_URL: zod_1.z.string().url().default('http://localhost:8123'),
|
27
|
+
CLICKHOUSE_USER: zod_1.z.string().default('default'),
|
28
|
+
CLICKHOUSE_PASSWORD: zod_1.z.string().default(''),
|
29
|
+
CLICKHOUSE_DB: zod_1.z.string().default('default'),
|
30
|
+
});
|
31
|
+
// 3. The service that provides the validated configuration
|
32
|
+
let LoggingConfigService = class LoggingConfigService {
|
33
|
+
constructor() {
|
34
|
+
// dotenv.config()
|
35
|
+
const result = LoggingConfigSchema.safeParse(process.env);
|
36
|
+
// console.log(process.env.NODE_ENV)
|
37
|
+
if (!result.success) {
|
38
|
+
console.error('❌ Invalid Logging Configuration:', result.error.flatten().fieldErrors);
|
39
|
+
throw new Error('Logging configuration failed validation. Exiting.');
|
67
40
|
}
|
68
|
-
|
69
|
-
|
70
|
-
const logDir = process.env.LOG_DIR || './logs';
|
71
|
-
transports.push({
|
72
|
-
level: 'info',
|
73
|
-
target: 'pino-roll',
|
74
|
-
options: {
|
75
|
-
file: path_1.default.join(logDir, 'app.log'),
|
76
|
-
frequency: 'daily',
|
77
|
-
size: config.rotation.maxSize,
|
78
|
-
limit: {
|
79
|
-
count: config.rotation.maxFiles
|
80
|
-
}
|
81
|
-
}
|
82
|
-
});
|
83
|
-
// Separate error log file
|
84
|
-
transports.push({
|
85
|
-
level: 'error',
|
86
|
-
target: 'pino-roll',
|
87
|
-
options: {
|
88
|
-
file: path_1.default.join(logDir, 'error.log'),
|
89
|
-
frequency: 'daily',
|
90
|
-
size: config.rotation.maxSize,
|
91
|
-
limit: {
|
92
|
-
count: config.rotation.maxFiles
|
93
|
-
}
|
94
|
-
}
|
95
|
-
});
|
96
|
-
}
|
97
|
-
return transports;
|
41
|
+
this.config = result.data;
|
42
|
+
console.log('[Logging] Configuration loaded and validated successfully.');
|
98
43
|
}
|
99
|
-
}
|
44
|
+
};
|
100
45
|
exports.LoggingConfigService = LoggingConfigService;
|
46
|
+
exports.LoggingConfigService = LoggingConfigService = __decorate([
|
47
|
+
(0, core_1.Service)() // Eagerly load to validate config at startup
|
48
|
+
,
|
49
|
+
__metadata("design:paramtypes", [])
|
50
|
+
], LoggingConfigService);
|
101
51
|
//# sourceMappingURL=logging.config.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logging.config.js","sourceRoot":"","sources":["../../../src/logging/config/logging.config.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"logging.config.js","sourceRoot":"","sources":["../../../src/logging/config/logging.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAAuB;AACvB,mCAAmC;AACnC,qCAAoC;AAEpC,4DAA4D;AAC5D,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,OAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACpE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;IAEjD,2BAA2B;IAC3B,kBAAkB,EAAE,OAAC;SAClB,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;SACtE,OAAO,CAAC,KAAK,CAAC;IACjB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACjE,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC9C,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;CAC7C,CAAC,CAAA;AAKF,2DAA2D;AAEpD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAG/B;QACE,kBAAkB;QAClB,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEzD,oCAAoC;QAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAA;YACrF,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;IAC3E,CAAC;CACF,CAAA;AAjBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,cAAO,GAAE,CAAC,6CAA6C;;;GAC3C,oBAAoB,CAiBhC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
export interface AuditOptions {
|
2
|
+
action: string;
|
3
|
+
resource: string;
|
4
|
+
resourceIdPath?: string;
|
5
|
+
}
|
6
|
+
/**
|
7
|
+
* A method decorator that creates a structured audit log after a method
|
8
|
+
* successfully executes.
|
9
|
+
*/
|
10
|
+
export declare function Audit(options: AuditOptions): MethodDecorator;
|
11
|
+
/**
|
12
|
+
* A class decorator that injects a child 'logger' instance into the class prototype,
|
13
|
+
* automatically namespaced with the class name.
|
14
|
+
*/
|
15
|
+
export declare function Logger(): ClassDecorator;
|
16
|
+
//# sourceMappingURL=decorators.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/logging/core/decorators.ts"],"names":[],"mappings":"AA4DA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,CA8B5D;AAID;;;GAGG;AACH,wBAAgB,MAAM,IAAI,cAAc,CAcvC"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Audit = Audit;
|
4
|
+
exports.Logger = Logger;
|
5
|
+
const core_1 = require("../../core");
|
6
|
+
const logger_service_1 = require("./logger.service");
|
7
|
+
/**
|
8
|
+
* A method decorator that creates a structured audit log after a method
|
9
|
+
* successfully executes.
|
10
|
+
*/
|
11
|
+
function Audit(options) {
|
12
|
+
return (target, propertyKey, descriptor) => {
|
13
|
+
const originalMethod = descriptor.value;
|
14
|
+
descriptor.value = async function (...args) {
|
15
|
+
const result = await originalMethod.apply(this, args);
|
16
|
+
// Resolve services from the DI container
|
17
|
+
const logger = core_1.container.resolve(logger_service_1.Logger);
|
18
|
+
// const contextService = container.resolve(RequestContextService)
|
19
|
+
// const requestContext = contextService.getStoreObject() // Get context as a plain object
|
20
|
+
const store = core_1.requestContextStore.getStore() || new Map();
|
21
|
+
const resourceId = options.resourceIdPath
|
22
|
+
? extractValueFromPath(options.resourceIdPath, { args, result })
|
23
|
+
: undefined;
|
24
|
+
const auditPayload = {
|
25
|
+
action: options.action,
|
26
|
+
resource: options.resource,
|
27
|
+
resourceId,
|
28
|
+
actor: {
|
29
|
+
...Object.fromEntries(store.entries()),
|
30
|
+
},
|
31
|
+
};
|
32
|
+
logger.audit(auditPayload);
|
33
|
+
return result;
|
34
|
+
};
|
35
|
+
};
|
36
|
+
}
|
37
|
+
// --- @Logger Class Decorator ---
|
38
|
+
/**
|
39
|
+
* A class decorator that injects a child 'logger' instance into the class prototype,
|
40
|
+
* automatically namespaced with the class name.
|
41
|
+
*/
|
42
|
+
function Logger() {
|
43
|
+
return function (target) {
|
44
|
+
Object.defineProperty(target.prototype, 'logger', {
|
45
|
+
get: function () {
|
46
|
+
if (!this._logger) {
|
47
|
+
const loggerService = core_1.container.resolve(logger_service_1.Logger);
|
48
|
+
this._logger = loggerService.child({ component: target.name });
|
49
|
+
}
|
50
|
+
return this._logger;
|
51
|
+
},
|
52
|
+
enumerable: false,
|
53
|
+
configurable: true,
|
54
|
+
});
|
55
|
+
};
|
56
|
+
}
|
57
|
+
// --- Helper Functions ---
|
58
|
+
function extractValueFromPath(path, context) {
|
59
|
+
const parts = path.split('.');
|
60
|
+
let current = context;
|
61
|
+
for (const part of parts) {
|
62
|
+
if (current === null || current === undefined)
|
63
|
+
return undefined;
|
64
|
+
// Special handling for array indices like 'args.0'
|
65
|
+
if (Array.isArray(current) && !isNaN(parseInt(part, 10))) {
|
66
|
+
current = current[parseInt(part, 10)];
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
current = current[part];
|
70
|
+
}
|
71
|
+
}
|
72
|
+
return current;
|
73
|
+
}
|
74
|
+
//# sourceMappingURL=decorators.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/logging/core/decorators.ts"],"names":[],"mappings":";;AAsEA,sBA8BC;AAQD,wBAcC;AA1HD,qCAA2D;AAC3D,qDAA0D;AAiE1D;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAqB;IACzC,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACnF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAA;QAEvC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC/C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAErD,yCAAyC;YACzC,MAAM,MAAM,GAAG,gBAAS,CAAC,OAAO,CAAgB,uBAAa,CAAC,CAAA;YAC9D,oEAAoE;YACpE,4FAA4F;YAC5F,MAAM,KAAK,GAAG,0BAAmB,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,EAAE,CAAA;YAEzD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc;gBACvC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAChE,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU;gBACV,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;iBACvC;aACF,CAAA;YACD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAE1B,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAED,kCAAkC;AAElC;;;GAGG;AACH,SAAgB,MAAM;IACpB,OAAO,UAAU,MAAW;QAC1B,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE;YAChD,GAAG,EAAE;gBACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,aAAa,GAAG,gBAAS,CAAC,OAAO,CAAgB,uBAAa,CAAC,CAAA;oBACrE,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;gBAChE,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAA;YACrB,CAAC;YACD,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAED,2BAA2B;AAE3B,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAqC;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,OAAO,GAAQ,OAAO,CAAA;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC/D,mDAAmD;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"logger.provider.d.ts","sourceRoot":"","sources":["../../../src/logging/core/logger.provider.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAKvB,eAAO,MAAM,YAAY,eAAuB,CAAA;AAIhD,eAAO,MAAM,aAAa,QAAO,IAAI,CAAC,MAuDrC,CAAA"}
|