xcally-nest-library 0.0.27 → 0.0.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. package/dist/index.d.ts +0 -8
  2. package/dist/index.js +0 -8
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/modules/logger/pino/logger.service.js +0 -13
  5. package/dist/src/modules/logger/pino/logger.service.js.map +1 -1
  6. package/dist/tsconfig.tsbuildinfo +1 -1
  7. package/index.ts +0 -8
  8. package/package.json +16 -66
  9. package/src/modules/logger/pino/logger.service.ts +0 -13
  10. package/dist/src/config/env.validation.d.ts +0 -22
  11. package/dist/src/config/env.validation.js +0 -82
  12. package/dist/src/config/env.validation.js.map +0 -1
  13. package/dist/src/decorators/utils.decorators.d.ts +0 -2
  14. package/dist/src/decorators/utils.decorators.js +0 -15
  15. package/dist/src/decorators/utils.decorators.js.map +0 -1
  16. package/dist/src/interceptors/log-request.interceptor.d.ts +0 -8
  17. package/dist/src/interceptors/log-request.interceptor.js +0 -44
  18. package/dist/src/interceptors/log-request.interceptor.js.map +0 -1
  19. package/dist/src/interceptors/serialize.interceptor.d.ts +0 -12
  20. package/dist/src/interceptors/serialize.interceptor.js +0 -24
  21. package/dist/src/interceptors/serialize.interceptor.js.map +0 -1
  22. package/dist/src/modules/logger/consoleTransport.strategy.d.ts +0 -5
  23. package/dist/src/modules/logger/consoleTransport.strategy.js +0 -16
  24. package/dist/src/modules/logger/consoleTransport.strategy.js.map +0 -1
  25. package/dist/src/modules/logger/datadogTransport.strategy.d.ts +0 -5
  26. package/dist/src/modules/logger/datadogTransport.strategy.js +0 -18
  27. package/dist/src/modules/logger/datadogTransport.strategy.js.map +0 -1
  28. package/dist/src/modules/logger/elasticsearchTransport.strategy.d.ts +0 -6
  29. package/dist/src/modules/logger/elasticsearchTransport.strategy.js +0 -13
  30. package/dist/src/modules/logger/elasticsearchTransport.strategy.js.map +0 -1
  31. package/dist/src/modules/logger/fileTransport.strategy.d.ts +0 -7
  32. package/dist/src/modules/logger/fileTransport.strategy.js +0 -17
  33. package/dist/src/modules/logger/fileTransport.strategy.js.map +0 -1
  34. package/dist/src/modules/logger/strategy.interface.d.ts +0 -6
  35. package/dist/src/modules/logger/strategy.interface.js +0 -3
  36. package/dist/src/modules/logger/strategy.interface.js.map +0 -1
  37. package/dist/src/modules/logger/winston.interface.d.ts +0 -21
  38. package/dist/src/modules/logger/winston.interface.js +0 -3
  39. package/dist/src/modules/logger/winston.interface.js.map +0 -1
  40. package/dist/src/modules/logger/winston.module.d.ts +0 -4
  41. package/dist/src/modules/logger/winston.module.js +0 -74
  42. package/dist/src/modules/logger/winston.module.js.map +0 -1
  43. package/dist/src/modules/logger/winston.service.d.ts +0 -18
  44. package/dist/src/modules/logger/winston.service.js +0 -43
  45. package/dist/src/modules/logger/winston.service.js.map +0 -1
  46. package/dist/src/modules/tracer/tracer.middleware.d.ts +0 -22
  47. package/dist/src/modules/tracer/tracer.middleware.js +0 -41
  48. package/dist/src/modules/tracer/tracer.middleware.js.map +0 -1
  49. package/dist/src/modules/tracer/tracer.module.d.ts +0 -7
  50. package/dist/src/modules/tracer/tracer.module.js +0 -36
  51. package/dist/src/modules/tracer/tracer.module.js.map +0 -1
  52. package/dist/src/types/auth.d.ts +0 -31
  53. package/dist/src/types/auth.js +0 -10
  54. package/dist/src/types/auth.js.map +0 -1
  55. package/dist/src/types/index.d.ts +0 -1
  56. package/dist/src/types/index.js +0 -18
  57. package/dist/src/types/index.js.map +0 -1
  58. package/src/config/env.validation.ts +0 -61
  59. package/src/decorators/utils.decorators.ts +0 -28
  60. package/src/interceptors/log-request.interceptor.ts +0 -32
  61. package/src/interceptors/serialize.interceptor.ts +0 -27
  62. package/src/modules/logger/consoleTransport.strategy.ts +0 -22
  63. package/src/modules/logger/datadogTransport.strategy.ts +0 -17
  64. package/src/modules/logger/elasticsearchTransport.strategy.ts +0 -12
  65. package/src/modules/logger/fileTransport.strategy.ts +0 -17
  66. package/src/modules/logger/strategy.interface.ts +0 -9
  67. package/src/modules/logger/winston.interface.ts +0 -22
  68. package/src/modules/logger/winston.module.ts +0 -63
  69. package/src/modules/logger/winston.service.ts +0 -53
  70. package/src/modules/tracer/tracer.middleware.ts +0 -38
  71. package/src/modules/tracer/tracer.module.ts +0 -18
  72. package/src/types/auth.ts +0 -37
  73. package/src/types/index.ts +0 -1
@@ -1,63 +0,0 @@
1
- import { Module, DynamicModule, Global } from '@nestjs/common';
2
- import { createLogger, format, Logger } from 'winston';
3
- import { ConfigModule, ConfigService } from '@nestjs/config';
4
- import { WinstonLoggerService } from './winston.service';
5
- import { DatadogTransportStrategy } from './datadogTransport.strategy';
6
- import { ElasticsearchTransportStrategy } from './elasticsearchTransport.strategy';
7
- import { ConsoleTransportStrategy } from './consoleTransport.strategy';
8
- import { FileTransportStrategy } from './fileTransport.strategy';
9
-
10
- @Global()
11
- @Module({})
12
- export class WinstonModule {
13
- static forRoot(): DynamicModule {
14
- const winstonProvider = {
15
- provide: 'WINSTON_LOGGER',
16
- useFactory: (configService: ConfigService): Logger => {
17
- const nameService = configService.getOrThrow<string>('NAME_SERVICE');
18
- const transportsArray = configService
19
- .getOrThrow<string>('LOG_TRANSPORTS')
20
- .split(',')
21
- .map((item) => item.trim());
22
- if (transportsArray.length === 0 || transportsArray.includes('')) {
23
- throw new Error('LOG_TRANSPORTS configuration must contain at least one valid transport method.');
24
- }
25
-
26
- const selectedTransports = transportsArray.flatMap((key) => {
27
- const strategyMap = {
28
- elasticsearch: new ElasticsearchTransportStrategy(),
29
- datadog: new DatadogTransportStrategy(),
30
- file: new FileTransportStrategy(nameService),
31
- console: new ConsoleTransportStrategy(),
32
- };
33
- const strategy = strategyMap[key];
34
- if (strategy) {
35
- return [].concat(strategy.createTransport(configService));
36
- } else {
37
- throw new Error(`No strategy found for transport ${key}`);
38
- }
39
- });
40
-
41
- return createLogger({
42
- level: configService.get<string>('LOG_LEVEL') || 'info',
43
- format: format.combine(format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:ms' })),
44
- defaultMeta: { service: nameService },
45
- transports: selectedTransports,
46
- });
47
- },
48
- inject: [ConfigService],
49
- };
50
- const loggerServiceProvider = {
51
- provide: WinstonLoggerService,
52
- useFactory: (logger: Logger) => new WinstonLoggerService(logger),
53
- inject: ['WINSTON_LOGGER'],
54
- };
55
-
56
- return {
57
- module: WinstonModule,
58
- imports: [ConfigModule],
59
- providers: [winstonProvider, loggerServiceProvider],
60
- exports: [winstonProvider, loggerServiceProvider],
61
- };
62
- }
63
- }
@@ -1,53 +0,0 @@
1
- // winston-logger.service.ts
2
- import { Logger } from 'winston';
3
- import { IWinstonLogger } from './winston.interface';
4
- import { LoggerCtx } from '../../types';
5
-
6
- export class WinstonLoggerService implements IWinstonLogger {
7
- constructor(private readonly logger: Logger) {}
8
-
9
- info(message: string, meta: LoggerCtx): void {
10
- this.logger.info(message, meta);
11
- }
12
-
13
- warn(message: string, meta: LoggerCtx): void {
14
- this.logger.warn(message, meta);
15
- }
16
-
17
- help(message: string, meta: LoggerCtx): void {
18
- this.logger.help(message, meta);
19
- }
20
-
21
- data(message: string, meta: LoggerCtx): void {
22
- this.logger.data(message, meta);
23
- }
24
-
25
- debug(message: string, meta: LoggerCtx): void {
26
- this.logger.debug(message, meta);
27
- }
28
- prompt(message: string, meta: LoggerCtx): void {
29
- this.logger.prompt(message, meta);
30
- }
31
-
32
- http(message: string, meta: LoggerCtx): void {
33
- this.logger.http(message, meta);
34
- }
35
-
36
- verbose(message: string, meta: LoggerCtx): void {
37
- this.logger.verbose(message, meta);
38
- }
39
-
40
- input(message: string, meta: LoggerCtx): void {
41
- this.logger.input(message, meta);
42
- }
43
-
44
- silly(message: string, meta: LoggerCtx): void {
45
- this.logger.silly(message, meta);
46
- }
47
-
48
- error(message: string, meta: LoggerCtx): void {
49
- this.logger.error(message, meta);
50
- }
51
-
52
- // Add other methods for different logging levels as needed
53
- }
@@ -1,38 +0,0 @@
1
- import { Inject, Injectable, NestMiddleware } from '@nestjs/common';
2
- import { randomUUID } from 'crypto';
3
- import { NextFunction, Request, Response } from 'express';
4
- export const X_REQUEST_ID_HEADER = 'X-Request-ID';
5
- export const X_RESPONSE_ID_HEADER = 'X-Response-ID';
6
- import { ConfigurableModuleBuilder } from '@nestjs/common';
7
- import { RouteInfo } from '@nestjs/common/interfaces';
8
- import { Ctx } from '../../types';
9
-
10
- interface CtxLocal {
11
- local: Ctx;
12
- }
13
- type CtxLocalRequest = Request & Ctx;
14
-
15
- export interface TracingModuleOptions {
16
- routes: (string | RouteInfo)[];
17
- excludedRoutes?: (string | RouteInfo)[];
18
- onRequest?(uuid: string, next: NextFunction): void;
19
- }
20
-
21
- export const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE } =
22
- new ConfigurableModuleBuilder<TracingModuleOptions>().build();
23
-
24
- @Injectable()
25
- export class TracerMiddleware implements NestMiddleware {
26
- constructor(
27
- @Inject(MODULE_OPTIONS_TOKEN)
28
- protected readonly options: typeof OPTIONS_TYPE,
29
- ) {}
30
-
31
- async use(req: CtxLocalRequest & CtxLocal, res: Response, next: NextFunction) {
32
- const { onRequest = (_, next) => next() } = this.options;
33
- const uuid = req.header(X_REQUEST_ID_HEADER) ?? randomUUID();
34
- req.local = { traceId: uuid };
35
- res.setHeader(X_RESPONSE_ID_HEADER, uuid);
36
- onRequest(uuid, next);
37
- }
38
- }
@@ -1,18 +0,0 @@
1
- import { Inject, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
2
- import { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, TracerMiddleware } from './tracer.middleware';
3
-
4
- @Module({})
5
- export class TracerModule extends ConfigurableModuleClass implements NestModule {
6
- constructor(
7
- @Inject(MODULE_OPTIONS_TOKEN)
8
- protected readonly options: typeof OPTIONS_TYPE,
9
- ) {
10
- super();
11
- }
12
-
13
- configure(consumer: MiddlewareConsumer) {
14
- const config = consumer.apply(TracerMiddleware);
15
- if (this.options.excludedRoutes) config.exclude(...this.options.excludedRoutes);
16
- config.forRoutes(...this.options.routes);
17
- }
18
- }
package/src/types/auth.ts DELETED
@@ -1,37 +0,0 @@
1
- export type UserPermission = {
2
- sectionId: number;
3
- name: string;
4
- category: string;
5
- crudPermissions: Array<'r' | 'e' | 'd'>;
6
- };
7
-
8
- export type User = {
9
- id: number;
10
- role: Role;
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;
21
- };
22
-
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',
33
- }
34
-
35
- export type Auth = {
36
- token: string;
37
- };
@@ -1 +0,0 @@
1
- export * from './auth';