@lyxa.ai/core 1.3.191 → 1.3.193

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.
@@ -1,5 +1,5 @@
1
1
  import { Log } from '../mongo/models';
2
- import { LogTag } from '../../utilities/enum';
2
+ import { HttpStatus, LogTag } from '../../utilities/enum';
3
3
  import { ErrorInfo, LogMetadata, RequestContext } from './types';
4
4
  import { AsyncLocalStorage } from 'node:async_hooks';
5
5
  import mongoose from 'mongoose';
@@ -36,8 +36,11 @@ export declare class LyxaLoggerKit {
36
36
  private write;
37
37
  info(message: string, options: {
38
38
  tag: LogTag;
39
- data?: any;
39
+ data?: Record<string, any>;
40
40
  metadata?: LogMetadata;
41
+ request?: Record<string, any>;
42
+ response?: Record<string, any>;
43
+ status?: HttpStatus;
41
44
  }): Promise<void | (mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Log, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Log & {
42
45
  _id: mongoose.Types.ObjectId;
43
46
  } & {
@@ -45,8 +48,11 @@ export declare class LyxaLoggerKit {
45
48
  }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction)>;
46
49
  debug(message: string, options: {
47
50
  tag: LogTag;
48
- data?: any;
51
+ data?: Record<string, any>;
49
52
  metadata?: LogMetadata;
53
+ request?: Record<string, any>;
54
+ response?: Record<string, any>;
55
+ status?: HttpStatus;
50
56
  }): Promise<void | (mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Log, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Log & {
51
57
  _id: mongoose.Types.ObjectId;
52
58
  } & {
@@ -54,8 +60,11 @@ export declare class LyxaLoggerKit {
54
60
  }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction)>;
55
61
  warn(message: string, options: {
56
62
  tag: LogTag;
57
- data?: any;
63
+ data?: Record<string, any>;
58
64
  metadata?: LogMetadata;
65
+ request?: Record<string, any>;
66
+ response?: Record<string, any>;
67
+ status?: HttpStatus;
59
68
  }): Promise<void | (mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Log, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Log & {
60
69
  _id: mongoose.Types.ObjectId;
61
70
  } & {
@@ -63,9 +72,12 @@ export declare class LyxaLoggerKit {
63
72
  }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction)>;
64
73
  error(message: string, error: TRPCError | Error | unknown, options: {
65
74
  tag: LogTag;
66
- data?: any;
75
+ data?: Record<string, any>;
67
76
  metadata?: LogMetadata;
68
77
  context?: RequestContext;
78
+ request?: Record<string, any>;
79
+ response?: Record<string, any>;
80
+ status?: HttpStatus;
69
81
  }): Promise<void | (mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Log, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Log & {
70
82
  _id: mongoose.Types.ObjectId;
71
83
  } & {
@@ -73,20 +85,26 @@ export declare class LyxaLoggerKit {
73
85
  }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction)>;
74
86
  fatal(message: string, error: TRPCError | Error | unknown, options: {
75
87
  tag: LogTag;
76
- data?: any;
88
+ data?: Record<string, any>;
77
89
  metadata?: LogMetadata;
78
90
  context?: RequestContext;
91
+ request?: Record<string, any>;
92
+ response?: Record<string, any>;
93
+ status?: HttpStatus;
79
94
  }): Promise<void | (mongoose.Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, Log, import("@typegoose/typegoose/lib/types").BeAnyObject, {}> & Omit<Log & {
80
95
  _id: mongoose.Types.ObjectId;
81
96
  } & {
82
97
  __v: number;
83
98
  }, "typegooseName"> & import("@typegoose/typegoose/lib/types").IObjectWithTypegooseFunction)>;
84
99
  private getHttpLogLevel;
85
- httpRequest(method: string, url: string, statusCode: number, durationMs: number, userId?: string): void;
100
+ httpRequest(method: string, url: string, statusCode: HttpStatus, durationMs: number, userId?: string): void;
86
101
  child(defaultContext: {
87
102
  tag?: LogTag;
88
- data?: any;
103
+ data?: Record<string, any>;
89
104
  metadata?: LogMetadata;
105
+ request?: Record<string, any>;
106
+ response?: Record<string, any>;
107
+ status?: HttpStatus;
90
108
  }): {
91
109
  info: (message: string, options?: Partial<typeof defaultContext>) => void;
92
110
  debug: (message: string, options?: Partial<typeof defaultContext>) => void;
@@ -79,10 +79,22 @@ let LyxaLoggerKit = class LyxaLoggerKit {
79
79
  return {
80
80
  name: error.name,
81
81
  message: error.message,
82
- stack: error.stack,
82
+ stacktrace: error.stack?.split('\n').map(line => line.trim()),
83
+ code: error.code,
83
84
  };
84
85
  }
85
- return error;
86
+ if (typeof error === 'object' && error !== null) {
87
+ const err = error;
88
+ return {
89
+ name: err.name,
90
+ message: err.message,
91
+ stacktrace: err.stack?.split('\n').map((line) => line.trim()) || err.stacktrace,
92
+ code: err.code,
93
+ };
94
+ }
95
+ return {
96
+ message: String(error),
97
+ };
86
98
  }
87
99
  buildLogEntry(message, payload) {
88
100
  const store = this.getRequestStore();
@@ -97,6 +109,9 @@ let LyxaLoggerKit = class LyxaLoggerKit {
97
109
  error: payload.error,
98
110
  context: payload.context,
99
111
  requestId: store.requestId,
112
+ request: payload.request,
113
+ response: payload.response,
114
+ status: payload.status,
100
115
  };
101
116
  }
102
117
  getColorCode(level) {
@@ -196,9 +211,11 @@ let LyxaLoggerKit = class LyxaLoggerKit {
196
211
  data: entry.data,
197
212
  metadata: entry.metadata ?? {},
198
213
  error: payload.error,
199
- stackTrace: payload.error?.stack?.split('\n'),
200
214
  requestId: entry.requestId,
201
215
  context: payload.context,
216
+ request: payload.request,
217
+ response: payload.response,
218
+ status: payload.status,
202
219
  }).catch(e => {
203
220
  console.error('Something went wrong', e);
204
221
  });
@@ -238,16 +255,15 @@ let LyxaLoggerKit = class LyxaLoggerKit {
238
255
  data: {
239
256
  method,
240
257
  url,
241
- statusCode,
242
258
  durationMs,
243
259
  ...(userId && { userId }),
244
260
  },
245
261
  metadata: {
246
262
  ...(userId && { userId }),
247
- statusCode,
248
263
  responseTime: durationMs,
249
264
  },
250
265
  context: { method, url },
266
+ status: statusCode,
251
267
  });
252
268
  }
253
269
  child(defaultContext) {
@@ -256,21 +272,33 @@ let LyxaLoggerKit = class LyxaLoggerKit {
256
272
  tag: opts.tag ?? defaultContext.tag ?? enum_1.LogTag.HTTP_REQUEST,
257
273
  data: { ...defaultContext.data, ...opts.data },
258
274
  metadata: { ...defaultContext.metadata, ...opts.metadata },
275
+ request: opts.request ?? defaultContext.request,
276
+ response: opts.response ?? defaultContext.response,
277
+ status: opts.status ?? defaultContext.status,
259
278
  }),
260
279
  debug: (message, opts = {}) => this.debug(message, {
261
280
  tag: opts.tag ?? defaultContext.tag ?? enum_1.LogTag.HTTP_REQUEST,
262
281
  data: { ...defaultContext.data, ...opts.data },
263
282
  metadata: { ...defaultContext.metadata, ...opts.metadata },
283
+ request: opts.request ?? defaultContext.request,
284
+ response: opts.response ?? defaultContext.response,
285
+ status: opts.status ?? defaultContext.status,
264
286
  }),
265
287
  warn: (message, opts = {}) => this.warn(message, {
266
288
  tag: opts.tag ?? defaultContext.tag ?? enum_1.LogTag.HTTP_REQUEST,
267
289
  data: { ...defaultContext.data, ...opts.data },
268
290
  metadata: { ...defaultContext.metadata, ...opts.metadata },
291
+ request: opts.request ?? defaultContext.request,
292
+ response: opts.response ?? defaultContext.response,
293
+ status: opts.status ?? defaultContext.status,
269
294
  }),
270
295
  error: (message, error, opts = {}) => this.error(message, error, {
271
296
  tag: opts.tag ?? defaultContext.tag ?? enum_1.LogTag.HTTP_REQUEST,
272
297
  data: { ...defaultContext.data, ...opts.data },
273
298
  metadata: { ...defaultContext.metadata, ...opts.metadata },
299
+ request: opts.request ?? defaultContext.request,
300
+ response: opts.response ?? defaultContext.response,
301
+ status: opts.status ?? defaultContext.status,
274
302
  }),
275
303
  };
276
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.service.js","sourceRoot":"/","sources":["libraries/logger-kit/logger.service.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { Service } from 'typedi';\nimport { createLogModel, Log } from '../mongo/models';\nimport { LogLevel, LogTag } from '../../utilities/enum';\nimport { ErrorInfo, LogMetadata, RequestContext } from './types';\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport mongoose from 'mongoose';\nimport { TRPCError } from '@trpc/server';\n\ninterface RequestStore {\n\trequestId?: string;\n\tuserId?: string;\n\tmetadata?: Record<string, unknown>;\n}\n\nexport const requestContext = new AsyncLocalStorage<RequestStore>();\n\ninterface LoggerConfig {\n\tinstanceType: string;\n\tttlDays?: number;\n\tpersistDebug?: boolean;\n\tlogDirectory?: string;\n\tenvironment?: string;\n}\n\n@Service()\nexport class LyxaLoggerKit {\n\tprivate readonly model: ReturnType<typeof createLogModel>;\n\tprivate readonly config: Required<LoggerConfig>;\n\n\tconstructor(config: LoggerConfig) {\n\t\tthis.config = this.normalizeConfig(config);\n\t\tthis.model = createLogModel({ ttlDays: this.config.ttlDays });\n\t\tthis.ensureLogDirectory();\n\t}\n\n\tprivate normalizeConfig(config: LoggerConfig): Required<LoggerConfig> {\n\t\treturn {\n\t\t\tinstanceType: config.instanceType,\n\t\t\tttlDays: config.ttlDays ?? 7,\n\t\t\tpersistDebug: config.persistDebug ?? process.env.PERSIST_DEBUG_LOGS === 'true',\n\t\t\tlogDirectory: config.logDirectory ?? 'logs',\n\t\t\tenvironment: config.environment ?? process.env.NODE_ENV ?? 'development',\n\t\t};\n\t}\n\n\tprivate ensureLogDirectory(): void {\n\t\tconst logPath = path.join(process.cwd(), this.config.logDirectory);\n\t\tfs.mkdirSync(logPath, { recursive: true });\n\t}\n\n\tprivate getRequestStore(): RequestStore {\n\t\treturn requestContext.getStore() ?? {};\n\t}\n\n\tprivate enrichWithContext(data: any = {}): any {\n\t\tconst store = this.getRequestStore();\n\t\treturn {\n\t\t\t...data,\n\t\t\t...(store.requestId && { requestId: store.requestId }),\n\t\t\t...(store.userId && { userId: store.userId }),\n\t\t};\n\t}\n\n\tprivate shouldPersist(level: LogLevel): boolean {\n\t\t// return level !== LogLevel.DEBUG || this.config.persistDebug;\n\t\treturn true;\n\t}\n\n\tprivate async persistLog(log: Partial<Log>) {\n\t\tconst currentDebug = mongoose.get('debug');\n\t\ttry {\n\t\t\tmongoose.set('debug', false);\n\t\t\treturn await this.model.create({\n\t\t\t\t...log,\n\t\t\t\tmicroService: this.config.instanceType,\n\t\t\t\ttimestamp: new Date(),\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tconsole.error('[Logger] MongoDB persistence failed:', err);\n\t\t} finally {\n\t\t\tmongoose.set('debug', currentDebug);\n\t\t}\n\t}\n\n\tprivate normalizeError(error: TRPCError | Error | unknown): ErrorInfo {\n\t\tif (error instanceof Error) {\n\t\t\treturn {\n\t\t\t\tname: error.name,\n\t\t\t\tmessage: error.message,\n\t\t\t\tstack: error.stack,\n\t\t\t};\n\t\t}\n\t\treturn error as ErrorInfo;\n\t}\n\n\tprivate buildLogEntry(\n\t\tmessage: string,\n\t\tpayload: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t\terror?: ErrorInfo;\n\t\t\tcontext?: RequestContext;\n\t\t}\n\t) {\n\t\tconst store = this.getRequestStore();\n\n\t\treturn {\n\t\t\ttag: payload.tag,\n\t\t\tmessage,\n\t\t\tdata: this.enrichWithContext(payload.data),\n\t\t\tmetadata: {\n\t\t\t\t...payload.metadata,\n\t\t\t\t...store.metadata,\n\t\t\t},\n\t\t\terror: payload.error,\n\t\t\tcontext: payload.context,\n\t\t\trequestId: store.requestId,\n\t\t};\n\t}\n\n\tprivate getColorCode(level: LogLevel): string {\n\t\tswitch (level) {\n\t\t\tcase LogLevel.DEBUG:\n\t\t\t\treturn '\\x1b[96m'; // Cyan\n\t\t\tcase LogLevel.INFO:\n\t\t\t\treturn '\\x1b[32m'; // Green\n\t\t\tcase LogLevel.WARN:\n\t\t\t\treturn '\\x1b[33m'; // Yellow\n\t\t\tcase LogLevel.ERROR:\n\t\t\t\treturn '\\x1b[31m'; // Red\n\t\t\tcase LogLevel.FATAL:\n\t\t\t\treturn '\\x1b[35m'; // Magenta\n\t\t\tdefault:\n\t\t\t\treturn '\\x1b[37m'; // White\n\t\t}\n\t}\n\n\tprivate formatTimestamp(date: Date): string {\n\t\tconst year = date.getFullYear();\n\t\tconst month = String(date.getMonth() + 1).padStart(2, '0');\n\t\tconst day = String(date.getDate()).padStart(2, '0');\n\t\tconst hours = String(date.getHours()).padStart(2, '0');\n\t\tconst minutes = String(date.getMinutes()).padStart(2, '0');\n\t\tconst seconds = String(date.getSeconds()).padStart(2, '0');\n\n\t\treturn `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n\t}\n\n\tprivate formatLogMessage(level: LogLevel, message: string, entry: any): string {\n\t\tconst timestamp = this.formatTimestamp(new Date());\n\t\tconst tag = (entry.tag || 'GENERAL').toUpperCase();\n\t\tconst levelUpper = level.toUpperCase();\n\n\t\t// ANSI color codes\n\t\tconst grey = '\\x1b[90m';\n\t\tconst cyan = '\\x1b[36m';\n\t\tconst levelColor = this.getColorCode(level);\n\t\tconst reset = '\\x1b[0m';\n\n\t\t// Pad level to 5 characters for alignment (DEBUG, INFO, WARN, ERROR, FATAL)\n\t\tconst paddedLevel = levelUpper.padEnd(5);\n\n\t\tconst parts = [\n\t\t\t`${grey}[${timestamp}]${reset}`,\n\t\t\t`${levelColor}[${levelUpper}]${reset}`,\n\t\t\t`${cyan}[${tag}]${reset}`,\n\t\t\tmessage,\n\t\t];\n\n\t\treturn parts.join(' ');\n\t}\n\n\tprivate consoleLog(level: LogLevel, formattedMessage: string, entry: any): void {\n\t\tswitch (level) {\n\t\t\tcase LogLevel.DEBUG:\n\t\t\t\tconsole.log(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.log(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.INFO:\n\t\t\t\tconsole.log(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.log(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.WARN:\n\t\t\t\tconsole.warn(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.warn(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.ERROR:\n\t\t\t\tconsole.error(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.error(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.FATAL:\n\t\t\t\tconsole.error(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.error(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.log(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.log(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate async write(\n\t\tlevel: LogLevel,\n\t\tmessage: string,\n\t\tpayload: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t\terror?: ErrorInfo;\n\t\t\tcontext?: RequestContext;\n\t\t},\n\t\topts: { shouldWrite?: boolean } = {}\n\t) {\n\t\tconst { shouldWrite = true } = opts;\n\t\tconst entry = this.buildLogEntry(message, payload);\n\n\t\t// Console logging with switch case\n\t\tif (shouldWrite) {\n\t\t\tconst formattedMessage = this.formatLogMessage(level, message, entry);\n\t\t\tthis.consoleLog(level, formattedMessage, entry);\n\t\t}\n\n\t\t// Async persistence (fire-and-forget)\n\t\tif (this.shouldPersist(level)) {\n\t\t\treturn this.persistLog({\n\t\t\t\tlevel,\n\t\t\t\ttag: payload.tag,\n\t\t\t\tmessage,\n\t\t\t\tdata: entry.data,\n\t\t\t\tmetadata: entry.metadata ?? {},\n\t\t\t\terror: payload.error,\n\t\t\t\tstackTrace: payload.error?.stack?.split('\\n'),\n\t\t\t\trequestId: entry.requestId,\n\t\t\t\tcontext: payload.context,\n\t\t\t}).catch(e => {\n\t\t\t\tconsole.error('Something went wrong', e);\n\t\t\t});\n\t\t}\n\t}\n\n\t/* ---------------------------------- */\n\t/* Public Logging API */\n\t/* ---------------------------------- */\n\n\tinfo(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.INFO, message, options);\n\t}\n\n\tdebug(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.DEBUG, message, options);\n\t}\n\n\twarn(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.WARN, message, options);\n\t}\n\n\terror(\n\t\tmessage: string,\n\t\terror: TRPCError | Error | unknown,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t\tcontext?: RequestContext;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.ERROR, message, {\n\t\t\t...options,\n\t\t\terror: this.normalizeError(error),\n\t\t});\n\t}\n\n\tfatal(\n\t\tmessage: string,\n\t\terror: TRPCError | Error | unknown,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: any;\n\t\t\tmetadata?: LogMetadata;\n\t\t\tcontext?: RequestContext;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.FATAL, message, {\n\t\t\t...options,\n\t\t\terror: this.normalizeError(error),\n\t\t});\n\t}\n\n\t/* ---------------------------------- */\n\t/* HTTP Convenience Methods */\n\t/* ---------------------------------- */\n\n\tprivate getHttpLogLevel(statusCode: number): LogLevel {\n\t\tif (statusCode >= 500) return LogLevel.ERROR;\n\t\tif (statusCode >= 400) return LogLevel.WARN;\n\t\treturn LogLevel.INFO;\n\t}\n\n\thttpRequest(method: string, url: string, statusCode: number, durationMs: number, userId?: string): void {\n\t\tthis.write(this.getHttpLogLevel(statusCode), 'HTTP request completed', {\n\t\t\ttag: LogTag.HTTP_REQUEST,\n\t\t\tdata: {\n\t\t\t\tmethod,\n\t\t\t\turl,\n\t\t\t\tstatusCode,\n\t\t\t\tdurationMs,\n\t\t\t\t...(userId && { userId }),\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\t...(userId && { userId }),\n\t\t\t\tstatusCode,\n\t\t\t\tresponseTime: durationMs,\n\t\t\t},\n\t\t\tcontext: { method, url },\n\t\t});\n\t}\n\n\tchild(defaultContext: { tag?: LogTag; data?: any; metadata?: LogMetadata }): {\n\t\tinfo: (message: string, options?: Partial<typeof defaultContext>) => void;\n\t\tdebug: (message: string, options?: Partial<typeof defaultContext>) => void;\n\t\twarn: (message: string, options?: Partial<typeof defaultContext>) => void;\n\t\terror: (message: string, error: Error | ErrorInfo, options?: Partial<typeof defaultContext>) => void;\n\t} {\n\t\treturn {\n\t\t\tinfo: (message, opts = {}) =>\n\t\t\t\tthis.info(message, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t}),\n\t\t\tdebug: (message, opts = {}) =>\n\t\t\t\tthis.debug(message, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t}),\n\t\t\twarn: (message, opts = {}) =>\n\t\t\t\tthis.warn(message, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t}),\n\t\t\terror: (message, error, opts = {}) =>\n\t\t\t\tthis.error(message, error, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t}),\n\t\t};\n\t}\n}\n\nexport function withRequestContext<T>(store: RequestStore, fn: () => T | Promise<T>): Promise<T> {\n\treturn new Promise((resolve, reject) => {\n\t\trequestContext.run(store, async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await fn());\n\t\t\t} catch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t});\n}"]}
1
+ {"version":3,"file":"logger.service.js","sourceRoot":"/","sources":["libraries/logger-kit/logger.service.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { Service } from 'typedi';\nimport { createLogModel, Log } from '../mongo/models';\nimport { HttpStatus, LogLevel, LogTag } from '../../utilities/enum';\nimport { ErrorInfo, LogMetadata, RequestContext } from './types';\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport mongoose from 'mongoose';\nimport { TRPCError } from '@trpc/server';\n\ninterface RequestStore {\n\trequestId?: string;\n\tuserId?: string;\n\tmetadata?: Record<string, unknown>;\n}\n\nexport const requestContext = new AsyncLocalStorage<RequestStore>();\n\ninterface LoggerConfig {\n\tinstanceType: string;\n\tttlDays?: number;\n\tpersistDebug?: boolean;\n\tlogDirectory?: string;\n\tenvironment?: string;\n}\n\n@Service()\nexport class LyxaLoggerKit {\n\tprivate readonly model: ReturnType<typeof createLogModel>;\n\tprivate readonly config: Required<LoggerConfig>;\n\n\tconstructor(config: LoggerConfig) {\n\t\tthis.config = this.normalizeConfig(config);\n\t\tthis.model = createLogModel({ ttlDays: this.config.ttlDays });\n\t\tthis.ensureLogDirectory();\n\t}\n\n\tprivate normalizeConfig(config: LoggerConfig): Required<LoggerConfig> {\n\t\treturn {\n\t\t\tinstanceType: config.instanceType,\n\t\t\tttlDays: config.ttlDays ?? 7,\n\t\t\tpersistDebug: config.persistDebug ?? process.env.PERSIST_DEBUG_LOGS === 'true',\n\t\t\tlogDirectory: config.logDirectory ?? 'logs',\n\t\t\tenvironment: config.environment ?? process.env.NODE_ENV ?? 'development',\n\t\t};\n\t}\n\n\tprivate ensureLogDirectory(): void {\n\t\tconst logPath = path.join(process.cwd(), this.config.logDirectory);\n\t\tfs.mkdirSync(logPath, { recursive: true });\n\t}\n\n\tprivate getRequestStore(): RequestStore {\n\t\treturn requestContext.getStore() ?? {};\n\t}\n\n\tprivate enrichWithContext(data: Record<string, any> = {}): Record<string, any> {\n\t\tconst store = this.getRequestStore();\n\t\treturn {\n\t\t\t...data,\n\t\t\t...(store.requestId && { requestId: store.requestId }),\n\t\t\t...(store.userId && { userId: store.userId }),\n\t\t};\n\t}\n\n\tprivate shouldPersist(level: LogLevel): boolean {\n\t\t// return level !== LogLevel.DEBUG || this.config.persistDebug;\n\t\treturn true;\n\t}\n\n\tprivate async persistLog(log: Partial<Log>) {\n\t\tconst currentDebug = mongoose.get('debug');\n\t\ttry {\n\t\t\tmongoose.set('debug', false);\n\t\t\treturn await this.model.create({\n\t\t\t\t...log,\n\t\t\t\tmicroService: this.config.instanceType,\n\t\t\t\ttimestamp: new Date(),\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tconsole.error('[Logger] MongoDB persistence failed:', err);\n\t\t} finally {\n\t\t\tmongoose.set('debug', currentDebug);\n\t\t}\n\t}\n\n\tprivate normalizeError(error: TRPCError | Error | unknown): ErrorInfo {\n\t\tif (error instanceof Error) {\n\t\t\treturn {\n\t\t\t\tname: error.name,\n\t\t\t\tmessage: error.message,\n\t\t\t\tstacktrace: error.stack?.split('\\n').map(line => line.trim()),\n\t\t\t\tcode: (error as any).code,\n\t\t\t};\n\t\t}\n\t\tif (typeof error === 'object' && error !== null) {\n\t\t\tconst err = error as any;\n\t\t\treturn {\n\t\t\t\tname: err.name,\n\t\t\t\tmessage: err.message,\n\t\t\t\tstacktrace: err.stack?.split('\\n').map((line: string) => line.trim()) || err.stacktrace,\n\t\t\t\tcode: err.code,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tmessage: String(error),\n\t\t};\n\t}\n\n\tprivate buildLogEntry(\n\t\tmessage: string,\n\t\tpayload: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\terror?: ErrorInfo;\n\t\t\tcontext?: RequestContext;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t}\n\t) {\n\t\tconst store = this.getRequestStore();\n\n\t\treturn {\n\t\t\ttag: payload.tag,\n\t\t\tmessage,\n\t\t\tdata: this.enrichWithContext(payload.data),\n\t\t\tmetadata: {\n\t\t\t\t...payload.metadata,\n\t\t\t\t...store.metadata,\n\t\t\t},\n\t\t\terror: payload.error,\n\t\t\tcontext: payload.context,\n\t\t\trequestId: store.requestId,\n\t\t\trequest: payload.request,\n\t\t\tresponse: payload.response,\n\t\t\tstatus: payload.status,\n\t\t};\n\t}\n\n\tprivate getColorCode(level: LogLevel): string {\n\t\tswitch (level) {\n\t\t\tcase LogLevel.DEBUG:\n\t\t\t\treturn '\\x1b[96m'; // Cyan\n\t\t\tcase LogLevel.INFO:\n\t\t\t\treturn '\\x1b[32m'; // Green\n\t\t\tcase LogLevel.WARN:\n\t\t\t\treturn '\\x1b[33m'; // Yellow\n\t\t\tcase LogLevel.ERROR:\n\t\t\t\treturn '\\x1b[31m'; // Red\n\t\t\tcase LogLevel.FATAL:\n\t\t\t\treturn '\\x1b[35m'; // Magenta\n\t\t\tdefault:\n\t\t\t\treturn '\\x1b[37m'; // White\n\t\t}\n\t}\n\n\tprivate formatTimestamp(date: Date): string {\n\t\tconst year = date.getFullYear();\n\t\tconst month = String(date.getMonth() + 1).padStart(2, '0');\n\t\tconst day = String(date.getDate()).padStart(2, '0');\n\t\tconst hours = String(date.getHours()).padStart(2, '0');\n\t\tconst minutes = String(date.getMinutes()).padStart(2, '0');\n\t\tconst seconds = String(date.getSeconds()).padStart(2, '0');\n\n\t\treturn `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n\t}\n\n\tprivate formatLogMessage(level: LogLevel, message: string, entry: any): string {\n\t\tconst timestamp = this.formatTimestamp(new Date());\n\t\tconst tag = (entry.tag || 'GENERAL').toUpperCase();\n\t\tconst levelUpper = level.toUpperCase();\n\n\t\t// ANSI color codes\n\t\tconst grey = '\\x1b[90m';\n\t\tconst cyan = '\\x1b[36m';\n\t\tconst levelColor = this.getColorCode(level);\n\t\tconst reset = '\\x1b[0m';\n\n\t\t// Pad level to 5 characters for alignment (DEBUG, INFO, WARN, ERROR, FATAL)\n\t\tconst paddedLevel = levelUpper.padEnd(5);\n\n\t\tconst parts = [\n\t\t\t`${grey}[${timestamp}]${reset}`,\n\t\t\t`${levelColor}[${levelUpper}]${reset}`,\n\t\t\t`${cyan}[${tag}]${reset}`,\n\t\t\tmessage,\n\t\t];\n\n\t\treturn parts.join(' ');\n\t}\n\n\tprivate consoleLog(level: LogLevel, formattedMessage: string, entry: any): void {\n\t\tswitch (level) {\n\t\t\tcase LogLevel.DEBUG:\n\t\t\t\tconsole.log(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.log(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.INFO:\n\t\t\t\tconsole.log(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.log(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.WARN:\n\t\t\t\tconsole.warn(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.warn(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.ERROR:\n\t\t\t\tconsole.error(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.error(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase LogLevel.FATAL:\n\t\t\t\tconsole.error(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.error(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.log(formattedMessage);\n\t\t\t\tif (entry.data && Object.keys(entry.data).length > 0) {\n\t\t\t\t\tconsole.log(entry.data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate async write(\n\t\tlevel: LogLevel,\n\t\tmessage: string,\n\t\tpayload: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\terror?: ErrorInfo;\n\t\t\tcontext?: RequestContext;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t},\n\t\topts: { shouldWrite?: boolean } = {}\n\t) {\n\t\tconst { shouldWrite = true } = opts;\n\t\tconst entry = this.buildLogEntry(message, payload);\n\n\t\t// Console logging with switch case\n\t\tif (shouldWrite) {\n\t\t\tconst formattedMessage = this.formatLogMessage(level, message, entry);\n\t\t\tthis.consoleLog(level, formattedMessage, entry);\n\t\t}\n\n\t\t// Async persistence (fire-and-forget)\n\t\tif (this.shouldPersist(level)) {\n\t\t\treturn this.persistLog({\n\t\t\t\tlevel,\n\t\t\t\ttag: payload.tag,\n\t\t\t\tmessage,\n\t\t\t\tdata: entry.data,\n\t\t\t\tmetadata: entry.metadata ?? {},\n\t\t\t\terror: payload.error,\n\t\t\t\trequestId: entry.requestId,\n\t\t\t\tcontext: payload.context,\n\t\t\t\trequest: payload.request,\n\t\t\t\tresponse: payload.response,\n\t\t\t\tstatus: payload.status,\n\t\t\t}).catch(e => {\n\t\t\t\tconsole.error('Something went wrong', e);\n\t\t\t});\n\t\t}\n\t}\n\n\t/* ---------------------------------- */\n\t/* Public Logging API */\n\t/* ---------------------------------- */\n\n\tinfo(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.INFO, message, options);\n\t}\n\n\tdebug(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.DEBUG, message, options);\n\t}\n\n\twarn(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.WARN, message, options);\n\t}\n\n\terror(\n\t\tmessage: string,\n\t\terror: TRPCError | Error | unknown,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\tcontext?: RequestContext;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.ERROR, message, {\n\t\t\t...options,\n\t\t\terror: this.normalizeError(error),\n\t\t});\n\t}\n\n\tfatal(\n\t\tmessage: string,\n\t\terror: TRPCError | Error | unknown,\n\t\toptions: {\n\t\t\ttag: LogTag;\n\t\t\tdata?: Record<string, any>;\n\t\t\tmetadata?: LogMetadata;\n\t\t\tcontext?: RequestContext;\n\t\t\trequest?: Record<string, any>;\n\t\t\tresponse?: Record<string, any>;\n\t\t\tstatus?: HttpStatus;\n\t\t}\n\t) {\n\t\treturn this.write(LogLevel.FATAL, message, {\n\t\t\t...options,\n\t\t\terror: this.normalizeError(error),\n\t\t});\n\t}\n\n\t/* ---------------------------------- */\n\t/* HTTP Convenience Methods */\n\t/* ---------------------------------- */\n\n\tprivate getHttpLogLevel(statusCode: number): LogLevel {\n\t\tif (statusCode >= 500) return LogLevel.ERROR;\n\t\tif (statusCode >= 400) return LogLevel.WARN;\n\t\treturn LogLevel.INFO;\n\t}\n\n\thttpRequest(method: string, url: string, statusCode: HttpStatus, durationMs: number, userId?: string): void {\n\t\tthis.write(this.getHttpLogLevel(statusCode), 'HTTP request completed', {\n\t\t\ttag: LogTag.HTTP_REQUEST,\n\t\t\tdata: {\n\t\t\t\tmethod,\n\t\t\t\turl,\n\t\t\t\tdurationMs,\n\t\t\t\t...(userId && { userId }),\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\t...(userId && { userId }),\n\t\t\t\tresponseTime: durationMs,\n\t\t\t},\n\t\t\tcontext: { method, url },\n\t\t\tstatus: statusCode,\n\t\t});\n\t}\n\n\tchild(defaultContext: {\n\t\ttag?: LogTag;\n\t\tdata?: Record<string, any>;\n\t\tmetadata?: LogMetadata;\n\t\trequest?: Record<string, any>;\n\t\tresponse?: Record<string, any>;\n\t\tstatus?: HttpStatus;\n\t}): {\n\t\tinfo: (message: string, options?: Partial<typeof defaultContext>) => void;\n\t\tdebug: (message: string, options?: Partial<typeof defaultContext>) => void;\n\t\twarn: (message: string, options?: Partial<typeof defaultContext>) => void;\n\t\terror: (message: string, error: Error | ErrorInfo, options?: Partial<typeof defaultContext>) => void;\n\t} {\n\t\treturn {\n\t\t\tinfo: (message, opts = {}) =>\n\t\t\t\tthis.info(message, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t\trequest: opts.request ?? defaultContext.request,\n\t\t\t\t\tresponse: opts.response ?? defaultContext.response,\n\t\t\t\t\tstatus: opts.status ?? defaultContext.status,\n\t\t\t\t}),\n\t\t\tdebug: (message, opts = {}) =>\n\t\t\t\tthis.debug(message, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t\trequest: opts.request ?? defaultContext.request,\n\t\t\t\t\tresponse: opts.response ?? defaultContext.response,\n\t\t\t\t\tstatus: opts.status ?? defaultContext.status,\n\t\t\t\t}),\n\t\t\twarn: (message, opts = {}) =>\n\t\t\t\tthis.warn(message, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t\trequest: opts.request ?? defaultContext.request,\n\t\t\t\t\tresponse: opts.response ?? defaultContext.response,\n\t\t\t\t\tstatus: opts.status ?? defaultContext.status,\n\t\t\t\t}),\n\t\t\terror: (message, error, opts = {}) =>\n\t\t\t\tthis.error(message, error, {\n\t\t\t\t\ttag: opts.tag ?? defaultContext.tag ?? LogTag.HTTP_REQUEST,\n\t\t\t\t\tdata: { ...defaultContext.data, ...opts.data },\n\t\t\t\t\tmetadata: { ...defaultContext.metadata, ...opts.metadata },\n\t\t\t\t\trequest: opts.request ?? defaultContext.request,\n\t\t\t\t\tresponse: opts.response ?? defaultContext.response,\n\t\t\t\t\tstatus: opts.status ?? defaultContext.status,\n\t\t\t\t}),\n\t\t};\n\t}\n}\n\nexport function withRequestContext<T>(store: RequestStore, fn: () => T | Promise<T>): Promise<T> {\n\treturn new Promise((resolve, reject) => {\n\t\trequestContext.run(store, async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await fn());\n\t\t\t} catch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t});\n}"]}
@@ -17,11 +17,10 @@ export interface LogMetadata {
17
17
  [key: string]: unknown;
18
18
  }
19
19
  export interface ErrorInfo {
20
- name: string;
21
- message: string;
22
20
  code?: string | number;
23
- statusCode?: number;
24
- stack?: string;
21
+ message?: string;
22
+ stacktrace?: string[];
23
+ name?: string;
25
24
  [key: string]: unknown;
26
25
  }
27
26
  export interface RequestContext {
@@ -29,7 +28,6 @@ export interface RequestContext {
29
28
  method?: string;
30
29
  url?: string;
31
30
  headers?: Record<string, string>;
32
- body?: unknown;
33
31
  query?: Record<string, unknown>;
34
32
  params?: Record<string, unknown>;
35
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"/","sources":["libraries/logger-kit/types.ts"],"names":[],"mappings":"","sourcesContent":["import { LogLevel } from '../../utilities/enum';\n\nexport interface LoggerConfig {\n\tinstanceType: string;\n\tmongoURI: string;\n\tttlDays?: number;\n\tenableConsole?: boolean;\n\tenableFile?: boolean;\n\tenableMongo?: boolean;\n\tlogDirectory?: string;\n\tminLevel?: LogLevel;\n}\n\nexport interface LogMetadata {\n\tuserId?: string;\n\tsessionId?: string;\n\tipAddress?: string;\n\tuserAgent?: string;\n\n\t[key: string]: unknown;\n}\n\nexport interface ErrorInfo {\n\tname: string;\n\tmessage: string;\n\tcode?: string | number;\n\tstatusCode?: number;\n\tstack?: string;\n\n\t[key: string]: unknown;\n}\n\nexport interface RequestContext {\n\trequestId?: string;\n\tmethod?: string;\n\turl?: string;\n\theaders?: Record<string, string>;\n\tbody?: unknown;\n\tquery?: Record<string, unknown>;\n\tparams?: Record<string, unknown>;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["libraries/logger-kit/types.ts"],"names":[],"mappings":"","sourcesContent":["import { LogLevel } from '../../utilities/enum';\n\nexport interface LoggerConfig {\n\tinstanceType: string;\n\tmongoURI: string;\n\tttlDays?: number;\n\tenableConsole?: boolean;\n\tenableFile?: boolean;\n\tenableMongo?: boolean;\n\tlogDirectory?: string;\n\tminLevel?: LogLevel;\n}\n\nexport interface LogMetadata {\n\tuserId?: string;\n\tsessionId?: string;\n\tipAddress?: string;\n\tuserAgent?: string;\n\n\t[key: string]: unknown;\n}\n\nexport interface ErrorInfo {\n\tcode?: string | number;\n\tmessage?: string;\n\tstacktrace?: string[];\n\tname?: string;\n\n\t[key: string]: unknown;\n}\n\nexport interface RequestContext {\n\trequestId?: string;\n\tmethod?: string;\n\turl?: string;\n\theaders?: Record<string, string>;\n\tquery?: Record<string, unknown>;\n\tparams?: Record<string, unknown>;\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  import { ReturnModelType } from '@typegoose/typegoose';
2
2
  import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
3
- import { LogLevel } from '../../../utilities/enum';
3
+ import { HttpStatus, LogLevel } from '../../../utilities/enum';
4
4
  import { LogMetadata, RequestContext } from '../../logger-kit';
5
- import { TRPCError } from '@trpc/server';
6
5
  export interface LogModelConfig {
7
6
  ttlDays?: number;
8
7
  collectionName?: string;
@@ -14,10 +13,16 @@ export declare class Log extends TimeStamps {
14
13
  tag: string;
15
14
  subtag?: string;
16
15
  requestId?: string;
17
- data?: Record<string, unknown>;
18
- result?: Record<string, unknown>;
19
- error?: TRPCError | Error | unknown;
20
- stackTrace?: string[];
16
+ data?: Record<string, any>;
17
+ request?: Record<string, any>;
18
+ response?: Record<string, any>;
19
+ status?: HttpStatus;
20
+ error?: {
21
+ code?: string | number;
22
+ message?: string;
23
+ stacktrace?: string[];
24
+ name?: string;
25
+ };
21
26
  message: string;
22
27
  metadata: LogMetadata;
23
28
  context?: RequestContext;
@@ -21,9 +21,10 @@ let Log = class Log extends defaultClasses_1.TimeStamps {
21
21
  subtag;
22
22
  requestId;
23
23
  data;
24
- result;
24
+ request;
25
+ response;
26
+ status;
25
27
  error;
26
- stackTrace;
27
28
  message;
28
29
  metadata;
29
30
  context;
@@ -80,18 +81,26 @@ __decorate([
80
81
  __decorate([
81
82
  (0, typegoose_1.prop)({ type: () => Object }),
82
83
  __metadata("design:type", Object)
83
- ], Log.prototype, "result", void 0);
84
+ ], Log.prototype, "request", void 0);
84
85
  __decorate([
85
86
  (0, typegoose_1.prop)({ type: () => Object }),
86
87
  __metadata("design:type", Object)
87
- ], Log.prototype, "error", void 0);
88
+ ], Log.prototype, "response", void 0);
88
89
  __decorate([
89
90
  (0, typegoose_1.prop)({
90
- type: () => [String],
91
- default: undefined,
91
+ type: Number,
92
+ enum: enum_1.HttpStatus,
93
+ sparse: true,
92
94
  }),
93
- __metadata("design:type", Array)
94
- ], Log.prototype, "stackTrace", void 0);
95
+ __metadata("design:type", Number)
96
+ ], Log.prototype, "status", void 0);
97
+ __decorate([
98
+ (0, typegoose_1.prop)({
99
+ type: () => Object,
100
+ _id: false,
101
+ }),
102
+ __metadata("design:type", Object)
103
+ ], Log.prototype, "error", void 0);
95
104
  __decorate([
96
105
  (0, typegoose_1.prop)({
97
106
  required: true,
@@ -131,6 +140,7 @@ exports.Log = Log = __decorate([
131
140
  (0, typegoose_1.index)({ requestId: 1 }),
132
141
  (0, typegoose_1.index)({ 'metadata.userId': 1 }, { sparse: true }),
133
142
  (0, typegoose_1.index)({ tag: 1, createdAt: -1 }),
143
+ (0, typegoose_1.index)({ status: 1 }, { sparse: true }),
134
144
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'logs', timestamps: true } })
135
145
  ], Log);
136
146
  function createLogModel(config = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"log.model.js","sourceRoot":"/","sources":["libraries/mongo/models/log.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { getModelForClass, index, modelOptions, prop, ReturnModelType } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { LogLevel } from '../../../utilities/enum';\nimport { LogMetadata, RequestContext } from '../../logger-kit';\nimport { TRPCError } from '@trpc/server';\n\n/**\n * Configuration options for log model creation\n */\nexport interface LogModelConfig {\n\t/** TTL in days for log retention (default: 7) */\n\tttlDays?: number;\n\t/** Collection name (default: 'logs') */\n\tcollectionName?: string;\n\t/** Enable strict mode for schema (default: true) */\n\tstrict?: boolean;\n}\n\n/**\n * LogModel document model with indexed fields for efficient querying\n */\n@index({ microService: 1, level: 1, createdAt: -1 })\n@index({ requestId: 1 })\n@index({ 'metadata.userId': 1 }, { sparse: true })\n@index({ tag: 1, createdAt: -1 })\n@modelOptions({ schemaOptions: { collection: 'logs', timestamps: true } })\nexport class Log extends TimeStamps {\n\t@prop({\n\t\trequired: true,\n\t\tenum: LogLevel,\n\t\ttype: String,\n\t\tindex: true,\n\t})\n\tpublic level!: LogLevel;\n\n\t@prop({\n\t\trequired: true,\n\t\ttype: String,\n\t\tindex: true,\n\t})\n\tpublic microService!: string;\n\n\t@prop({\n\t\trequired: true,\n\t\ttype: String,\n\t\ttrim: true,\n\t\tmaxlength: 100,\n\t})\n\tpublic tag!: string;\n\n\t@prop({\n\t\ttype: String,\n\t\ttrim: true,\n\t\tmaxlength: 100,\n\t})\n\tpublic subtag?: string;\n\n\t@prop({\n\t\ttype: String,\n\t\tsparse: true,\n\t\tindex: true,\n\t})\n\tpublic requestId?: string;\n\n\t@prop({ type: () => Object })\n\tpublic data?: Record<string, unknown>;\n\n\t@prop({ type: () => Object })\n\tpublic result?: Record<string, unknown>;\n\n\t@prop({ type: () => Object })\n\tpublic error?: TRPCError | Error | unknown;\n\n\t@prop({\n\t\ttype: () => [String],\n\t\tdefault: undefined,\n\t})\n\tpublic stackTrace?: string[];\n\n\t@prop({\n\t\trequired: true,\n\t\ttype: String,\n\t\tmaxlength: 5000,\n\t})\n\tpublic message!: string;\n\n\t@prop({\n\t\ttype: () => Object,\n\t\tdefault: {},\n\t\t_id: false,\n\t})\n\tpublic metadata!: LogMetadata;\n\n\t@prop({ type: () => Object })\n\tpublic context?: RequestContext;\n\n\t@prop({\n\t\ttype: String,\n\t\tmaxlength: 200,\n\t})\n\tpublic source?: string;\n\n\t@prop({\n\t\ttype: Number,\n\t\tmin: 0,\n\t})\n\tpublic duration?: number;\n}\n\n/**\n * Factory function to create the log model with configurable options\n */\nexport function createLogModel(config: LogModelConfig = {}): ReturnModelType<typeof Log> {\n\tconst { ttlDays = 7, collectionName = 'logs', strict = true } = config;\n\n\tconst ttlSeconds = 60 * 60 * 24 * ttlDays;\n\n\t// Apply TTL index dynamically\n\tindex({ createdAt: 1 }, { expireAfterSeconds: ttlSeconds })(Log);\n\n\treturn getModelForClass(Log, {\n\t\tschemaOptions: {\n\t\t\tcollection: collectionName,\n\t\t\tstrict,\n\t\t\ttimestamps: true,\n\t\t\tminimize: false,\n\t\t},\n\t\toptions: {\n\t\t\tautomaticName: false,\n\t\t},\n\t});\n}\n\n// Default export with 7 days TTL\nexport const LogModelMongo = createLogModel();\n\n// Type exports for external use\nexport type LogDocument = InstanceType<typeof Log>;\nexport type LogModelType = ReturnModelType<typeof Log>;\n"]}
1
+ {"version":3,"file":"log.model.js","sourceRoot":"/","sources":["libraries/mongo/models/log.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { getModelForClass, index, modelOptions, prop, ReturnModelType } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { HttpStatus, LogLevel } from '../../../utilities/enum';\nimport { LogMetadata, RequestContext } from '../../logger-kit';\n\n/**\n * Configuration options for log model creation\n */\nexport interface LogModelConfig {\n\t/** TTL in days for log retention (default: 7) */\n\tttlDays?: number;\n\t/** Collection name (default: 'logs') */\n\tcollectionName?: string;\n\t/** Enable strict mode for schema (default: true) */\n\tstrict?: boolean;\n}\n\n/**\n * LogModel document model with indexed fields for efficient querying\n */\n@index({ microService: 1, level: 1, createdAt: -1 })\n@index({ requestId: 1 })\n@index({ 'metadata.userId': 1 }, { sparse: true })\n@index({ tag: 1, createdAt: -1 })\n@index({ status: 1 }, { sparse: true })\n@modelOptions({ schemaOptions: { collection: 'logs', timestamps: true } })\nexport class Log extends TimeStamps {\n\t@prop({\n\t\trequired: true,\n\t\tenum: LogLevel,\n\t\ttype: String,\n\t\tindex: true,\n\t})\n\tpublic level!: LogLevel;\n\n\t@prop({\n\t\trequired: true,\n\t\ttype: String,\n\t\tindex: true,\n\t})\n\tpublic microService!: string;\n\n\t@prop({\n\t\trequired: true,\n\t\ttype: String,\n\t\ttrim: true,\n\t\tmaxlength: 100,\n\t})\n\tpublic tag!: string;\n\n\t@prop({\n\t\ttype: String,\n\t\ttrim: true,\n\t\tmaxlength: 100,\n\t})\n\tpublic subtag?: string;\n\n\t@prop({\n\t\ttype: String,\n\t\tsparse: true,\n\t\tindex: true,\n\t})\n\tpublic requestId?: string;\n\n\t@prop({ type: () => Object })\n\tpublic data?: Record<string, any>;\n\n\t@prop({ type: () => Object })\n\tpublic request?: Record<string, any>;\n\n\t@prop({ type: () => Object })\n\tpublic response?: Record<string, any>;\n\n\t@prop({\n\t\ttype: Number,\n\t\tenum: HttpStatus,\n\t\tsparse: true,\n\t})\n\tpublic status?: HttpStatus;\n\n\t@prop({\n\t\ttype: () => Object,\n\t\t_id: false,\n\t})\n\tpublic error?: {\n\t\tcode?: string | number;\n\t\tmessage?: string;\n\t\tstacktrace?: string[];\n\t\tname?: string;\n\t};\n\n\t@prop({\n\t\trequired: true,\n\t\ttype: String,\n\t\tmaxlength: 5000,\n\t})\n\tpublic message!: string;\n\n\t@prop({\n\t\ttype: () => Object,\n\t\tdefault: {},\n\t\t_id: false,\n\t})\n\tpublic metadata!: LogMetadata;\n\n\t@prop({ type: () => Object })\n\tpublic context?: RequestContext;\n\n\t@prop({\n\t\ttype: String,\n\t\tmaxlength: 200,\n\t})\n\tpublic source?: string;\n\n\t@prop({\n\t\ttype: Number,\n\t\tmin: 0,\n\t})\n\tpublic duration?: number;\n}\n\n/**\n * Factory function to create the log model with configurable options\n */\nexport function createLogModel(config: LogModelConfig = {}): ReturnModelType<typeof Log> {\n\tconst { ttlDays = 7, collectionName = 'logs', strict = true } = config;\n\n\tconst ttlSeconds = 60 * 60 * 24 * ttlDays;\n\n\t// Apply TTL index dynamically\n\tindex({ createdAt: 1 }, { expireAfterSeconds: ttlSeconds })(Log);\n\n\treturn getModelForClass(Log, {\n\t\tschemaOptions: {\n\t\t\tcollection: collectionName,\n\t\t\tstrict,\n\t\t\ttimestamps: true,\n\t\t\tminimize: false,\n\t\t},\n\t\toptions: {\n\t\t\tautomaticName: false,\n\t\t},\n\t});\n}\n\n// Default export with 7 days TTL\nexport const LogModelMongo = createLogModel();\n\n// Type exports for external use\nexport type LogDocument = InstanceType<typeof Log>;\nexport type LogModelType = ReturnModelType<typeof Log>;\n"]}
@@ -22,7 +22,7 @@ Perfect for sharing types between frontend and backend applications.
22
22
 
23
23
  ## Version
24
24
 
25
- Version: 1.3.191
25
+ Version: 1.3.193
26
26
 
27
27
  ## Dependencies
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/types",
3
- "version": "1.3.191",
3
+ "version": "1.3.193",
4
4
  "description": "Lyxa type definitions and validation schemas for both frontend and backend",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",
@@ -1051,3 +1051,63 @@ export declare enum LogTag {
1051
1051
  INFRA_CRON_JOB = "infra.cron.job",
1052
1052
  SYSTEM_ERROR = "system.error"
1053
1053
  }
1054
+ export declare enum HttpStatus {
1055
+ CONTINUE = 100,
1056
+ SWITCHING_PROTOCOLS = 101,
1057
+ PROCESSING = 102,
1058
+ OK = 200,
1059
+ CREATED = 201,
1060
+ ACCEPTED = 202,
1061
+ NON_AUTHORITATIVE_INFORMATION = 203,
1062
+ NO_CONTENT = 204,
1063
+ RESET_CONTENT = 205,
1064
+ PARTIAL_CONTENT = 206,
1065
+ MULTIPLE_CHOICES = 300,
1066
+ MOVED_PERMANENTLY = 301,
1067
+ FOUND = 302,
1068
+ SEE_OTHER = 303,
1069
+ NOT_MODIFIED = 304,
1070
+ USE_PROXY = 305,
1071
+ TEMPORARY_REDIRECT = 307,
1072
+ PERMANENT_REDIRECT = 308,
1073
+ BAD_REQUEST = 400,
1074
+ UNAUTHORIZED = 401,
1075
+ PAYMENT_REQUIRED = 402,
1076
+ FORBIDDEN = 403,
1077
+ NOT_FOUND = 404,
1078
+ METHOD_NOT_ALLOWED = 405,
1079
+ NOT_ACCEPTABLE = 406,
1080
+ PROXY_AUTHENTICATION_REQUIRED = 407,
1081
+ REQUEST_TIMEOUT = 408,
1082
+ CONFLICT = 409,
1083
+ GONE = 410,
1084
+ LENGTH_REQUIRED = 411,
1085
+ PRECONDITION_FAILED = 412,
1086
+ PAYLOAD_TOO_LARGE = 413,
1087
+ URI_TOO_LONG = 414,
1088
+ UNSUPPORTED_MEDIA_TYPE = 415,
1089
+ RANGE_NOT_SATISFIABLE = 416,
1090
+ EXPECTATION_FAILED = 417,
1091
+ IM_A_TEAPOT = 418,
1092
+ MISDIRECTED_REQUEST = 421,
1093
+ UNPROCESSABLE_ENTITY = 422,
1094
+ LOCKED = 423,
1095
+ FAILED_DEPENDENCY = 424,
1096
+ TOO_EARLY = 425,
1097
+ UPGRADE_REQUIRED = 426,
1098
+ PRECONDITION_REQUIRED = 428,
1099
+ TOO_MANY_REQUESTS = 429,
1100
+ REQUEST_HEADER_FIELDS_TOO_LARGE = 431,
1101
+ UNAVAILABLE_FOR_LEGAL_REASONS = 451,
1102
+ INTERNAL_SERVER_ERROR = 500,
1103
+ NOT_IMPLEMENTED = 501,
1104
+ BAD_GATEWAY = 502,
1105
+ SERVICE_UNAVAILABLE = 503,
1106
+ GATEWAY_TIMEOUT = 504,
1107
+ HTTP_VERSION_NOT_SUPPORTED = 505,
1108
+ VARIANT_ALSO_NEGOTIATES = 506,
1109
+ INSUFFICIENT_STORAGE = 507,
1110
+ LOOP_DETECTED = 508,
1111
+ NOT_EXTENDED = 510,
1112
+ NETWORK_AUTHENTICATION_REQUIRED = 511
1113
+ }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FavouriteType = exports.CouponExpirationReason = exports.CouponType = exports.BobType = exports.BobChannelType = exports.BobModel = exports.BobSettlementStatus = exports.BobSettlementType = exports.BobAccountType = exports.ZoneStatus = exports.FaqAccountType = exports.CounterType = exports.BannerUserType = exports.BannerLinkType = exports.BannerClickType = exports.VendorRole = exports.ShopRole = exports.OnlineStatus = exports.ShopOnlineStatus = exports.ChargeType = exports.ClickType = exports.NotificationAccountType = exports.DishCategory = exports.ProductDietaryType = exports.ShopDietaryType = exports.PriceOption = exports.ProductType = exports.CoreAuthIdentityType = exports.UserAppSectionItemType = exports.UserAppSectionType = exports.AdminLogsUpdatedFieldsType = exports.UpdatedField = exports.GeoLocationType = exports.RatingAccountType = exports.SubscriptionStatus = exports.SubscriptionPackage = exports.PaidCurrency = exports.PaymentStatus = exports.ChangeReturnMethod = exports.PaymentMethod = exports.ValueType = exports.HolidayWorkStatus = exports.WorkStatus = exports.WeekDay = exports.GlobalItemType = exports.AdjustmentStatus = exports.ItemType = exports.Status = exports.AccountType = exports.AgentLiveStatus = void 0;
4
4
  exports.ChatroomType = exports.UserRef = exports.TicketStatus = exports.TicketType = exports.RewardedToTypeEnum = exports.ReplacementType = exports.ReplacementReason = exports.OrderCanceledBy = exports.LogUser = exports.PayoutStatus = exports.PayoutType = exports.AddRemoveCreditAccountType = exports.SettingsReasonStatus = exports.CancellationReasonTypeEnum = exports.SupportReasonTypeEnum = exports.PlusSettingsPackageType = exports.AddRemoveCreditSettlementType = exports.SettlementType = exports.MediaType = exports.WorkingHourSettingsType = exports.ZoneGeometryType = exports.RiderAssignmentStatus = exports.CourierServiceType = exports.TripLegStatus = exports.DeliveryStatus = exports.CourierOrderPaymentFrom = exports.ShopCourierOrderStatus = exports.ServiceOrderStatus = exports.CourierOrderStatus = exports.RegularOrderStatus = exports.AdjustmentType = exports.StatusTimelineType = exports.OrderType = exports.Language = exports.OrderSize = exports.RiderBagSize = exports.RiderType = exports.ShiftType = exports.CreatedBy = exports.LiveStatus = exports.AreebaCardStatus = exports.CardUserType = exports.CardType = exports.PaymentPreference = exports.CartStatus = exports.AdminRole = exports.PunchMarketingStatus = exports.MarketingStatus = exports.ServiceMarketingType = exports.MarketingType = void 0;
5
- exports.LogTag = exports.LogLevel = exports.SyncCacheEnumType = exports.DateFormatType = exports.AppAppearanceType = exports.GraphType = exports.CalendarEventType = exports.CalendarViewType = exports.LyxaTimeZoneEnum = exports.UserOrderCompletionScope = exports.GroupCartNotificationStatus = exports.CurrencyType = exports.RequestFrom = exports.UploadState = exports.ServiceType = exports.ActionType = exports.DeviceType = exports.PushNotificationEventType = exports.SocketEventType = exports.SocketServiceQueue = exports.OtpMethodType = exports.ReviewType = exports.FoodNutritionType = exports.AdjustmentReason = exports.UrgentOrderReasons = exports.FlagReasonType = exports.FlagType = exports.PromotionType = exports.ServiceOrderCanceledBy = exports.TRPCErrorEnum = exports.ShopFilterSortByEnum = exports.BookingStatus = exports.ProfessionalScheduleType = exports.ServiceOrderRecurrencePattern = exports.ProfessionalRecurrencePattern = exports.ServiceOrderPriority = exports.ProfessionalStatus = exports.Service = exports.ServiceCartStatus = void 0;
5
+ exports.HttpStatus = exports.LogTag = exports.LogLevel = exports.SyncCacheEnumType = exports.DateFormatType = exports.AppAppearanceType = exports.GraphType = exports.CalendarEventType = exports.CalendarViewType = exports.LyxaTimeZoneEnum = exports.UserOrderCompletionScope = exports.GroupCartNotificationStatus = exports.CurrencyType = exports.RequestFrom = exports.UploadState = exports.ServiceType = exports.ActionType = exports.DeviceType = exports.PushNotificationEventType = exports.SocketEventType = exports.SocketServiceQueue = exports.OtpMethodType = exports.ReviewType = exports.FoodNutritionType = exports.AdjustmentReason = exports.UrgentOrderReasons = exports.FlagReasonType = exports.FlagType = exports.PromotionType = exports.ServiceOrderCanceledBy = exports.TRPCErrorEnum = exports.ShopFilterSortByEnum = exports.BookingStatus = exports.ProfessionalScheduleType = exports.ServiceOrderRecurrencePattern = exports.ProfessionalRecurrencePattern = exports.ServiceOrderPriority = exports.ProfessionalStatus = exports.Service = exports.ServiceCartStatus = void 0;
6
6
  var AgentLiveStatus;
7
7
  (function (AgentLiveStatus) {
8
8
  AgentLiveStatus["ONLINE"] = "online";
@@ -1195,4 +1195,65 @@ var LogTag;
1195
1195
  LogTag["INFRA_CRON_JOB"] = "infra.cron.job";
1196
1196
  LogTag["SYSTEM_ERROR"] = "system.error";
1197
1197
  })(LogTag || (exports.LogTag = LogTag = {}));
1198
+ var HttpStatus;
1199
+ (function (HttpStatus) {
1200
+ HttpStatus[HttpStatus["CONTINUE"] = 100] = "CONTINUE";
1201
+ HttpStatus[HttpStatus["SWITCHING_PROTOCOLS"] = 101] = "SWITCHING_PROTOCOLS";
1202
+ HttpStatus[HttpStatus["PROCESSING"] = 102] = "PROCESSING";
1203
+ HttpStatus[HttpStatus["OK"] = 200] = "OK";
1204
+ HttpStatus[HttpStatus["CREATED"] = 201] = "CREATED";
1205
+ HttpStatus[HttpStatus["ACCEPTED"] = 202] = "ACCEPTED";
1206
+ HttpStatus[HttpStatus["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION";
1207
+ HttpStatus[HttpStatus["NO_CONTENT"] = 204] = "NO_CONTENT";
1208
+ HttpStatus[HttpStatus["RESET_CONTENT"] = 205] = "RESET_CONTENT";
1209
+ HttpStatus[HttpStatus["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT";
1210
+ HttpStatus[HttpStatus["MULTIPLE_CHOICES"] = 300] = "MULTIPLE_CHOICES";
1211
+ HttpStatus[HttpStatus["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
1212
+ HttpStatus[HttpStatus["FOUND"] = 302] = "FOUND";
1213
+ HttpStatus[HttpStatus["SEE_OTHER"] = 303] = "SEE_OTHER";
1214
+ HttpStatus[HttpStatus["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
1215
+ HttpStatus[HttpStatus["USE_PROXY"] = 305] = "USE_PROXY";
1216
+ HttpStatus[HttpStatus["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
1217
+ HttpStatus[HttpStatus["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT";
1218
+ HttpStatus[HttpStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
1219
+ HttpStatus[HttpStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
1220
+ HttpStatus[HttpStatus["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED";
1221
+ HttpStatus[HttpStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
1222
+ HttpStatus[HttpStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
1223
+ HttpStatus[HttpStatus["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
1224
+ HttpStatus[HttpStatus["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE";
1225
+ HttpStatus[HttpStatus["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED";
1226
+ HttpStatus[HttpStatus["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
1227
+ HttpStatus[HttpStatus["CONFLICT"] = 409] = "CONFLICT";
1228
+ HttpStatus[HttpStatus["GONE"] = 410] = "GONE";
1229
+ HttpStatus[HttpStatus["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED";
1230
+ HttpStatus[HttpStatus["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED";
1231
+ HttpStatus[HttpStatus["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
1232
+ HttpStatus[HttpStatus["URI_TOO_LONG"] = 414] = "URI_TOO_LONG";
1233
+ HttpStatus[HttpStatus["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
1234
+ HttpStatus[HttpStatus["RANGE_NOT_SATISFIABLE"] = 416] = "RANGE_NOT_SATISFIABLE";
1235
+ HttpStatus[HttpStatus["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED";
1236
+ HttpStatus[HttpStatus["IM_A_TEAPOT"] = 418] = "IM_A_TEAPOT";
1237
+ HttpStatus[HttpStatus["MISDIRECTED_REQUEST"] = 421] = "MISDIRECTED_REQUEST";
1238
+ HttpStatus[HttpStatus["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
1239
+ HttpStatus[HttpStatus["LOCKED"] = 423] = "LOCKED";
1240
+ HttpStatus[HttpStatus["FAILED_DEPENDENCY"] = 424] = "FAILED_DEPENDENCY";
1241
+ HttpStatus[HttpStatus["TOO_EARLY"] = 425] = "TOO_EARLY";
1242
+ HttpStatus[HttpStatus["UPGRADE_REQUIRED"] = 426] = "UPGRADE_REQUIRED";
1243
+ HttpStatus[HttpStatus["PRECONDITION_REQUIRED"] = 428] = "PRECONDITION_REQUIRED";
1244
+ HttpStatus[HttpStatus["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
1245
+ HttpStatus[HttpStatus["REQUEST_HEADER_FIELDS_TOO_LARGE"] = 431] = "REQUEST_HEADER_FIELDS_TOO_LARGE";
1246
+ HttpStatus[HttpStatus["UNAVAILABLE_FOR_LEGAL_REASONS"] = 451] = "UNAVAILABLE_FOR_LEGAL_REASONS";
1247
+ HttpStatus[HttpStatus["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
1248
+ HttpStatus[HttpStatus["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
1249
+ HttpStatus[HttpStatus["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
1250
+ HttpStatus[HttpStatus["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
1251
+ HttpStatus[HttpStatus["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
1252
+ HttpStatus[HttpStatus["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED";
1253
+ HttpStatus[HttpStatus["VARIANT_ALSO_NEGOTIATES"] = 506] = "VARIANT_ALSO_NEGOTIATES";
1254
+ HttpStatus[HttpStatus["INSUFFICIENT_STORAGE"] = 507] = "INSUFFICIENT_STORAGE";
1255
+ HttpStatus[HttpStatus["LOOP_DETECTED"] = 508] = "LOOP_DETECTED";
1256
+ HttpStatus[HttpStatus["NOT_EXTENDED"] = 510] = "NOT_EXTENDED";
1257
+ HttpStatus[HttpStatus["NETWORK_AUTHENTICATION_REQUIRED"] = 511] = "NETWORK_AUTHENTICATION_REQUIRED";
1258
+ })(HttpStatus || (exports.HttpStatus = HttpStatus = {}));
1198
1259
  //# sourceMappingURL=enum.js.map