xcally-nest-library 0.0.11 → 0.0.12
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/.vscode/settings.json +5 -2
- package/dist/src/config/env.validation.js +1 -0
- package/dist/src/config/env.validation.js.map +1 -1
- package/dist/src/interceptors/log-request.interceptor.js +3 -1
- package/dist/src/interceptors/log-request.interceptor.js.map +1 -1
- package/dist/src/modules/logger/winston.service.d.ts +12 -17
- package/dist/src/modules/logger/winston.service.js.map +1 -1
- package/dist/src/modules/tracer/tracer.middleware.d.ts +3 -5
- package/dist/src/modules/tracer/tracer.middleware.js.map +1 -1
- package/dist/src/types/auth.d.ts +27 -4
- package/dist/src/types/auth.js +7 -6
- package/dist/src/types/auth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/config/env.validation.ts +2 -1
- package/src/interceptors/log-request.interceptor.ts +3 -1
- package/src/modules/logger/winston.service.ts +12 -17
- package/src/modules/tracer/tracer.middleware.ts +3 -5
- package/src/types/auth.ts +32 -4
package/package.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { plainToClass } from 'class-transformer';
|
2
|
-
import { IsEnum, IsNumber, IsBoolean, IsString, validateSync, NotContains } from 'class-validator';
|
2
|
+
import { IsEnum, IsNumber, IsBoolean, IsString, validateSync, NotContains, IsDefined } from 'class-validator';
|
3
3
|
|
4
4
|
enum EnvironmentType {
|
5
5
|
Dev = 'development',
|
@@ -10,6 +10,7 @@ enum EnvironmentType {
|
|
10
10
|
}
|
11
11
|
|
12
12
|
class EnvironmentVariables {
|
13
|
+
@IsDefined()
|
13
14
|
@IsEnum(EnvironmentType)
|
14
15
|
NODE_ENV: EnvironmentType;
|
15
16
|
|
@@ -10,7 +10,8 @@ export class LogRequestInterceptor implements NestInterceptor {
|
|
10
10
|
const req = context.switchToHttp().getRequest();
|
11
11
|
this.logger.info('Before Middleware...', {
|
12
12
|
traceId: req?.local?.traceId,
|
13
|
-
className:
|
13
|
+
className: this.constructor.name,
|
14
|
+
methodName: 'intercept',
|
14
15
|
});
|
15
16
|
const now = Date.now();
|
16
17
|
|
@@ -22,6 +23,7 @@ export class LogRequestInterceptor implements NestInterceptor {
|
|
22
23
|
this.logger.info(`After Middleware... ${method} ${url} ${Date.now() - now}ms`, {
|
23
24
|
traceId: req?.local?.traceId,
|
24
25
|
className: 'LogRequestInterceptor',
|
26
|
+
methodName: 'intercept',
|
25
27
|
}),
|
26
28
|
),
|
27
29
|
);
|
@@ -2,57 +2,52 @@
|
|
2
2
|
import { Logger } from 'winston';
|
3
3
|
import { IWinstonLogger } from './winston.interface';
|
4
4
|
import { TraceLog } from './winston.decorator';
|
5
|
+
import { LoggerCtx } from '../../types';
|
5
6
|
|
6
|
-
export interface Meta {
|
7
|
-
traceId: string; // Ensures traceId is always present
|
8
|
-
className?: string;
|
9
|
-
methodName?: string;
|
10
|
-
[key: string]: any; // Allows for any number of additional properties
|
11
|
-
}
|
12
7
|
export class WinstonLoggerService implements IWinstonLogger {
|
13
8
|
constructor(private readonly logger: Logger) {}
|
14
9
|
|
15
10
|
@TraceLog()
|
16
|
-
info(message: string, meta:
|
11
|
+
info(message: string, meta: LoggerCtx): void {
|
17
12
|
this.logger.info(message, meta);
|
18
13
|
}
|
19
14
|
@TraceLog()
|
20
|
-
warn(message: string, meta:
|
15
|
+
warn(message: string, meta: LoggerCtx): void {
|
21
16
|
this.logger.warn(message, meta);
|
22
17
|
}
|
23
18
|
@TraceLog()
|
24
|
-
help(message: string, meta:
|
19
|
+
help(message: string, meta: LoggerCtx): void {
|
25
20
|
this.logger.help(message, meta);
|
26
21
|
}
|
27
22
|
@TraceLog()
|
28
|
-
data(message: string, meta:
|
23
|
+
data(message: string, meta: LoggerCtx): void {
|
29
24
|
this.logger.data(message, meta);
|
30
25
|
}
|
31
26
|
@TraceLog()
|
32
|
-
debug(message: string, meta:
|
27
|
+
debug(message: string, meta: LoggerCtx): void {
|
33
28
|
this.logger.debug(message, meta);
|
34
29
|
}
|
35
|
-
prompt(message: string, meta:
|
30
|
+
prompt(message: string, meta: LoggerCtx): void {
|
36
31
|
this.logger.prompt(message, meta);
|
37
32
|
}
|
38
33
|
@TraceLog()
|
39
|
-
http(message: string, meta:
|
34
|
+
http(message: string, meta: LoggerCtx): void {
|
40
35
|
this.logger.http(message, meta);
|
41
36
|
}
|
42
37
|
@TraceLog()
|
43
|
-
verbose(message: string, meta:
|
38
|
+
verbose(message: string, meta: LoggerCtx): void {
|
44
39
|
this.logger.verbose(message, meta);
|
45
40
|
}
|
46
41
|
@TraceLog()
|
47
|
-
input(message: string, meta:
|
42
|
+
input(message: string, meta: LoggerCtx): void {
|
48
43
|
this.logger.input(message, meta);
|
49
44
|
}
|
50
45
|
@TraceLog()
|
51
|
-
silly(message: string, meta:
|
46
|
+
silly(message: string, meta: LoggerCtx): void {
|
52
47
|
this.logger.silly(message, meta);
|
53
48
|
}
|
54
49
|
@TraceLog()
|
55
|
-
error(message: string, meta:
|
50
|
+
error(message: string, meta: LoggerCtx): void {
|
56
51
|
this.logger.error(message, meta);
|
57
52
|
}
|
58
53
|
|
@@ -5,14 +5,12 @@ export const X_REQUEST_ID_HEADER = 'X-Request-ID';
|
|
5
5
|
export const X_RESPONSE_ID_HEADER = 'X-Response-ID';
|
6
6
|
import { ConfigurableModuleBuilder } from '@nestjs/common';
|
7
7
|
import { RouteInfo } from '@nestjs/common/interfaces';
|
8
|
+
import { Ctx } from '../../types';
|
8
9
|
|
9
10
|
interface CtxLocal {
|
10
|
-
local:
|
11
|
+
local: Ctx;
|
11
12
|
}
|
12
|
-
|
13
|
-
traceId: string;
|
14
|
-
}
|
15
|
-
type CtxLocalRequest = Request & CtxLocal;
|
13
|
+
type CtxLocalRequest = Request & Ctx;
|
16
14
|
|
17
15
|
export interface TracingModuleOptions {
|
18
16
|
routes: (string | RouteInfo)[];
|
package/src/types/auth.ts
CHANGED
@@ -1,9 +1,37 @@
|
|
1
|
+
export type UserPermission = {
|
2
|
+
sectionId: number;
|
3
|
+
name: string;
|
4
|
+
category: string;
|
5
|
+
crudPermissions: Array<'r' | 'e' | 'd'>;
|
6
|
+
};
|
7
|
+
|
1
8
|
export type User = {
|
2
|
-
|
9
|
+
id: number;
|
10
|
+
role: Role;
|
3
11
|
name: string;
|
12
|
+
userProfileId: number;
|
13
|
+
permissions: UserPermission[];
|
14
|
+
// tenant:Tenant
|
15
|
+
};
|
16
|
+
|
17
|
+
export type Ctx = {
|
18
|
+
traceId: string;
|
19
|
+
user?: User;
|
20
|
+
auth?: Auth;
|
4
21
|
};
|
5
22
|
|
6
|
-
export
|
7
|
-
|
8
|
-
|
23
|
+
export type LoggerCtx = Ctx & {
|
24
|
+
className: string;
|
25
|
+
methodName: string;
|
26
|
+
[key: string]: any; // Allows for any number of additional properties
|
27
|
+
};
|
28
|
+
|
29
|
+
export enum Role {
|
30
|
+
User = 'user',
|
31
|
+
Admin = 'admin',
|
32
|
+
Agent = 'agent',
|
9
33
|
}
|
34
|
+
|
35
|
+
export type Auth = {
|
36
|
+
token: string;
|
37
|
+
};
|