@viplance/nestjs-logger 0.4.0 → 0.4.2

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.
Files changed (40) hide show
  1. package/README.md +23 -3
  2. package/dist/defaults.js +1 -1
  3. package/dist/entities/log.entity.d.ts +2 -2
  4. package/dist/entities/log.entity.js +1 -1
  5. package/dist/guards/access.guard.d.ts +1 -1
  6. package/dist/guards/access.guard.js +2 -2
  7. package/dist/index.d.ts +4 -4
  8. package/dist/interceptors/log.interceptor.d.ts +4 -4
  9. package/dist/log.module.d.ts +1 -1
  10. package/dist/log.module.js +7 -7
  11. package/dist/services/log.service.d.ts +8 -8
  12. package/dist/services/log.service.js +33 -29
  13. package/dist/services/log.service.js.map +1 -1
  14. package/dist/services/memory-db.service.d.ts +1 -1
  15. package/dist/services/memory-db.service.js +5 -5
  16. package/dist/services/ws.service.d.ts +3 -3
  17. package/dist/services/ws.service.js +14 -14
  18. package/dist/types/index.d.ts +3 -3
  19. package/dist/types/options.type.d.ts +1 -0
  20. package/dist/utils/entity2table.d.ts +1 -1
  21. package/dist/utils/entity2table.js +6 -6
  22. package/package.json +4 -1
  23. package/public/scripts/common.js +28 -28
  24. package/public/scripts/details-popup.js +10 -10
  25. package/public/scripts/json-viewer.js +4 -4
  26. package/src/defaults.ts +1 -1
  27. package/src/entities/log.entity.ts +3 -3
  28. package/src/guards/access.guard.ts +5 -5
  29. package/src/index.ts +4 -4
  30. package/src/interceptors/log.interceptor.ts +5 -5
  31. package/src/log.module.ts +18 -18
  32. package/src/services/log.service.ts +44 -40
  33. package/src/services/memory-db.service.ts +9 -9
  34. package/src/services/ws.d.ts +1 -1
  35. package/src/services/ws.service.ts +19 -19
  36. package/src/types/index.ts +3 -3
  37. package/src/types/log.type.ts +5 -5
  38. package/src/types/options.type.ts +1 -0
  39. package/src/utils/entity2table.ts +8 -8
  40. package/public/json.html +0 -0
package/README.md CHANGED
@@ -67,16 +67,36 @@ Enable a WebSocket connection to receive the logs in real time.<br />
67
67
 
68
68
  ### Additional information
69
69
 
70
- - `path`, `key` and `database` properties are optional.
71
- - The logs could be available at `your_application_url`/`path`?key=`key`
70
+ - `path`, `key`, `database` and `websocket` properties are optional.
71
+ - The log UI could be available at `your_application_url`/`path`?key=`key` or WebSocket port
72
72
  - The log API could be available at `your_application_url`/`path`/api?key=`key`
73
73
  - By default the logs will be stored in memory and deleted when the application stops.<br />
74
74
  <br />
75
75
 
76
+ ### The LogModule options:
77
+ - path?: string;
78
+ - key?: string; // access key
79
+ - join?: boolean; // merge the message duplicates
80
+ - maxRecords?: number; // max log records
81
+ - maxAge?: number; // in days
82
+ - maxSize?: number; // in megabytes
83
+ - database?: DataSourceOptions & {
84
+ host?: string;
85
+ port?: string;
86
+ table?: string;
87
+ collection?: string;
88
+ };
89
+ - websocket?: {
90
+ port?: number;
91
+ namespace?: string;
92
+ host?: string;
93
+ secure?: boolean;
94
+ };
95
+
76
96
  ### The LogService methods:
77
97
  - log(message: string)
78
98
  - error(message: string)
79
99
  - warn(message: string)
80
100
  - debug(message: string)
81
101
  - verbose(message: string)
82
- - addBreadcrumb(breadcrumb: any)
102
+ - addBreadcrumb(breadcrumb: any) - adds extra details to the logs for the current request
package/dist/defaults.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultTable = void 0;
4
- exports.defaultTable = "logs";
4
+ exports.defaultTable = 'logs';
5
5
  //# sourceMappingURL=defaults.js.map
@@ -1,5 +1,5 @@
1
- import { DataSourceOptions, EntitySchema } from "typeorm";
2
- export declare function createLogEntity(name: string, dbType: DataSourceOptions["type"] | "memory"): EntitySchema<{
1
+ import { DataSourceOptions, EntitySchema } from 'typeorm';
2
+ export declare function createLogEntity(name: string, dbType: DataSourceOptions['type'] | 'memory'): EntitySchema<{
3
3
  _id: unknown;
4
4
  type: unknown;
5
5
  message: unknown;
@@ -7,7 +7,7 @@ function createLogEntity(name, dbType) {
7
7
  name,
8
8
  columns: {
9
9
  _id: {
10
- type: dbType === "mongodb" ? String : Number,
10
+ type: dbType === 'mongodb' ? String : Number,
11
11
  objectId: true,
12
12
  primary: true,
13
13
  generated: true,
@@ -1,4 +1,4 @@
1
- import { CanActivate, ExecutionContext } from "@nestjs/common";
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
2
  export declare class LogAccessGuard implements CanActivate {
3
3
  canActivate(context: ExecutionContext): boolean;
4
4
  }
@@ -18,9 +18,9 @@ let LogAccessGuard = class LogAccessGuard {
18
18
  const req = !!context.switchToHttp
19
19
  ? context.switchToHttp().getRequest()
20
20
  : context; // hook for using as method
21
- const params = node_querystring_1.default.parse(req.url.split("?")[1]);
21
+ const params = node_querystring_1.default.parse(req.url.split('?')[1]);
22
22
  if (log_service_1.LogService.options.key && params.key !== log_service_1.LogService.options.key) {
23
- throw new common_1.HttpException("Unauthorized", 401);
23
+ throw new common_1.HttpException('Unauthorized', 401);
24
24
  }
25
25
  return true;
26
26
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./interceptors/log.interceptor";
2
- export * from "./log.module";
3
- export * from "./types/index";
4
- export * from "./services/log.service";
1
+ export * from './interceptors/log.interceptor';
2
+ export * from './log.module';
3
+ export * from './types/index';
4
+ export * from './services/log.service';
@@ -1,7 +1,7 @@
1
- import type { CallHandler, NestInterceptor } from "@nestjs/common";
2
- import { Observable } from "rxjs";
3
- import { LogService } from "../services/log.service";
4
- import { ExecutionContextHost } from "@nestjs/core/helpers/execution-context-host";
1
+ import type { CallHandler, NestInterceptor } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ import { LogService } from '../services/log.service';
4
+ import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
5
5
  export declare class LogInterceptor implements NestInterceptor {
6
6
  private readonly logService;
7
7
  constructor(logService: LogService);
@@ -1,4 +1,4 @@
1
- import { LogModuleOptions } from "./types";
1
+ import { LogModuleOptions } from './types';
2
2
  export declare class LogModule {
3
3
  static init(app: any, options?: LogModuleOptions): Promise<void>;
4
4
  }
@@ -31,12 +31,12 @@ let LogModule = class LogModule {
31
31
  }
32
32
  app.useGlobalInterceptors(new log_interceptor_1.LogInterceptor(logService)); // intercept all errors
33
33
  if (options === null || options === void 0 ? void 0 : options.path) {
34
- app.useStaticAssets((0, node_path_1.join)(__dirname, "..", "public"), {
34
+ app.useStaticAssets((0, node_path_1.join)(__dirname, '..', 'public'), {
35
35
  prefix: options.path,
36
36
  });
37
37
  const httpAdapter = app.getHttpAdapter();
38
38
  // frontend settings endpoint
39
- httpAdapter.get((0, node_path_1.join)(options.path, "settings"), async (req, res) => {
39
+ httpAdapter.get((0, node_path_1.join)(options.path, 'settings'), async (req, res) => {
40
40
  var _a, _b, _c, _d;
41
41
  logAccessGuard.canActivate(req);
42
42
  const result = {};
@@ -44,22 +44,22 @@ let LogModule = class LogModule {
44
44
  result.websocket = {
45
45
  namespace: (_a = options.websocket) === null || _a === void 0 ? void 0 : _a.namespace,
46
46
  port: (_b = options.websocket) === null || _b === void 0 ? void 0 : _b.port,
47
- host: ((_c = options.websocket) === null || _c === void 0 ? void 0 : _c.host) || ((_d = req.headers) === null || _d === void 0 ? void 0 : _d.host.split(":")[0]),
47
+ host: ((_c = options.websocket) === null || _c === void 0 ? void 0 : _c.host) || ((_d = req.headers) === null || _d === void 0 ? void 0 : _d.host.split(':')[0]),
48
48
  };
49
49
  }
50
50
  res.json(result);
51
51
  });
52
52
  // get all logs endpoint
53
- httpAdapter.get((0, node_path_1.join)(options.path, "api"), async (req, res) => {
53
+ httpAdapter.get((0, node_path_1.join)(options.path, 'api'), async (req, res) => {
54
54
  logAccessGuard.canActivate(req);
55
55
  res.json(await logService.getAll());
56
56
  });
57
57
  // delete log endpoint
58
- httpAdapter.delete((0, node_path_1.join)(options.path, "api"), async (req, res) => {
58
+ httpAdapter.delete((0, node_path_1.join)(options.path, 'api'), async (req, res) => {
59
59
  logAccessGuard.canActivate(req);
60
- const params = node_querystring_1.default.parse(req.url.split("?")[1]);
60
+ const params = node_querystring_1.default.parse(req.url.split('?')[1]);
61
61
  if (!params.id) {
62
- throw new common_1.HttpException("id is required", 400);
62
+ throw new common_1.HttpException('id is required', 400);
63
63
  }
64
64
  res.json(await logService.delete(params.id.toString()));
65
65
  });
@@ -1,11 +1,11 @@
1
- import { LoggerService, OnApplicationShutdown } from "@nestjs/common";
2
- import { MemoryDbService } from "./memory-db.service";
3
- import { LogModuleOptions } from "../types";
4
- import { DataSource, EntitySchema } from "typeorm";
5
- import { ExecutionContextHost } from "@nestjs/core/helpers/execution-context-host";
6
- import { setInterval } from "timers";
7
- import { WsService } from "./ws.service";
8
- import { Subscription } from "rxjs";
1
+ import { LoggerService, OnApplicationShutdown } from '@nestjs/common';
2
+ import { MemoryDbService } from './memory-db.service';
3
+ import { LogModuleOptions } from '../types';
4
+ import { DataSource, EntitySchema } from 'typeorm';
5
+ import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
6
+ import { setInterval } from 'timers';
7
+ import { WsService } from './ws.service';
8
+ import { Subscription } from 'rxjs';
9
9
  export declare class LogService implements LoggerService, OnApplicationShutdown {
10
10
  private readonly memoryDbService;
11
11
  private readonly wsService;
@@ -33,7 +33,7 @@ let LogService = LogService_1 = class LogService {
33
33
  }
34
34
  async connectDb(options) {
35
35
  var _a, _b, _c, _d, _e, _f, _g;
36
- LogService_1.Log = (0, log_entity_1.createLogEntity)(((_a = options.database) === null || _a === void 0 ? void 0 : _a.collection) || ((_b = options.database) === null || _b === void 0 ? void 0 : _b.table) || defaults_1.defaultTable, ((_c = options.database) === null || _c === void 0 ? void 0 : _c.type) || "mongodb");
36
+ LogService_1.Log = (0, log_entity_1.createLogEntity)(((_a = options.database) === null || _a === void 0 ? void 0 : _a.collection) || ((_b = options.database) === null || _b === void 0 ? void 0 : _b.table) || defaults_1.defaultTable, ((_c = options.database) === null || _c === void 0 ? void 0 : _c.type) || 'mongodb');
37
37
  if (!LogService_1.options) {
38
38
  this.setOptions(options);
39
39
  }
@@ -46,7 +46,7 @@ let LogService = LogService_1 = class LogService {
46
46
  };
47
47
  LogService_1.connection = new typeorm_1.DataSource(dataSourceOptions);
48
48
  await LogService_1.connection.initialize();
49
- if (dataSourceOptions.type !== "mongodb") {
49
+ if (dataSourceOptions.type !== 'mongodb') {
50
50
  const queryRunner = LogService_1.connection.createQueryRunner();
51
51
  try {
52
52
  await queryRunner.connect();
@@ -68,13 +68,13 @@ let LogService = LogService_1 = class LogService {
68
68
  if (options.websocket && !LogService_1.subscription) {
69
69
  LogService_1.subscription = this.wsService.onMessage.subscribe(async (message) => {
70
70
  switch (message.action) {
71
- case "getLogs":
71
+ case 'getLogs':
72
72
  this.wsService.sendMessage({
73
- action: "list",
73
+ action: 'list',
74
74
  data: await this.getAll(),
75
75
  });
76
76
  break;
77
- case "delete":
77
+ case 'delete':
78
78
  this.delete(message.data._id);
79
79
  break;
80
80
  }
@@ -126,36 +126,40 @@ let LogService = LogService_1 = class LogService {
126
126
  async getAll() {
127
127
  return this.getConnection().find(LogService_1.Log, {
128
128
  select: [
129
- "_id",
130
- "type",
131
- "message",
132
- "count",
133
- "createdAt",
134
- "updatedAt",
135
- "context",
136
- "trace",
137
- "breadcrumbs",
129
+ '_id',
130
+ 'type',
131
+ 'message',
132
+ 'count',
133
+ 'createdAt',
134
+ 'updatedAt',
135
+ 'context',
136
+ 'trace',
137
+ 'breadcrumbs',
138
138
  ],
139
- order: { updatedAt: "DESC" },
139
+ order: { updatedAt: 'DESC' },
140
140
  });
141
141
  }
142
142
  async delete(_id) {
143
143
  this.wsService.sendMessage({
144
- action: "delete",
144
+ action: 'delete',
145
145
  data: { _id },
146
146
  });
147
147
  return this.getConnection().delete(LogService_1.Log, _id);
148
148
  }
149
149
  async smartInsert(data) {
150
+ var _a;
150
151
  const currentDate = new Date();
151
152
  const connection = this.getConnection();
152
153
  // find the same log in DB
153
- const log = await connection.findOne(LogService_1.Log, {
154
- where: {
155
- type: data.type,
156
- message: data.message,
157
- },
158
- });
154
+ let log;
155
+ if ((_a = LogService_1.options) === null || _a === void 0 ? void 0 : _a.join) {
156
+ log = await connection.findOne(LogService_1.Log, {
157
+ where: {
158
+ type: data.type,
159
+ message: data.message,
160
+ },
161
+ });
162
+ }
159
163
  const context = data.context ? this.parseContext(data.context) : undefined;
160
164
  if (log) {
161
165
  const updatedLog = {
@@ -166,10 +170,10 @@ let LogService = LogService_1 = class LogService {
166
170
  updatedAt: currentDate,
167
171
  };
168
172
  this.wsService.sendMessage({
169
- action: "update",
173
+ action: 'update',
170
174
  data: { ...log, ...updatedLog },
171
175
  });
172
- await connection.update(LogService_1.Log, log["_id"], {
176
+ await connection.update(LogService_1.Log, log['_id'], {
173
177
  context,
174
178
  trace: data.trace,
175
179
  breadcrumbs: this.breadcrumbs,
@@ -191,7 +195,7 @@ let LogService = LogService_1 = class LogService {
191
195
  const res = await connection.insert(LogService_1.Log, insertedLog);
192
196
  const _id = this.getNewObjectId(res);
193
197
  this.wsService.sendMessage({
194
- action: "insert",
198
+ action: 'insert',
195
199
  data: { _id, ...insertedLog },
196
200
  });
197
201
  return { _id, ...insertedLog };
@@ -237,9 +241,9 @@ let LogService = LogService_1 = class LogService {
237
241
  var _a, _b;
238
242
  if ((_a = LogService_1.options) === null || _a === void 0 ? void 0 : _a.maxSize) {
239
243
  const latest = await this.getConnection().find(LogService_1.Log, {
240
- order: { updatedAt: "DESC" },
244
+ order: { updatedAt: 'DESC' },
241
245
  take: (_b = LogService_1.options) === null || _b === void 0 ? void 0 : _b.maxSize,
242
- select: ["_id"],
246
+ select: ['_id'],
243
247
  });
244
248
  const latestIds = latest.map((item) => item.id);
245
249
  await LogService_1.connection
@@ -247,13 +251,13 @@ let LogService = LogService_1 = class LogService {
247
251
  .createQueryBuilder()
248
252
  .delete()
249
253
  .from(LogService_1.Log)
250
- .where("_id NOT IN (:...ids)", { ids: latestIds })
254
+ .where('_id NOT IN (:...ids)', { ids: latestIds })
251
255
  .execute();
252
256
  }
253
257
  }
254
258
  };
255
259
  exports.LogService = LogService;
256
- LogService.Log = (0, log_entity_1.createLogEntity)(defaults_1.defaultTable, "memory");
260
+ LogService.Log = (0, log_entity_1.createLogEntity)(defaults_1.defaultTable, 'memory');
257
261
  exports.LogService = LogService = LogService_1 = __decorate([
258
262
  (0, common_1.Injectable)({ scope: common_1.Scope.TRANSIENT }),
259
263
  __metadata("design:paramtypes", [memory_db_service_1.MemoryDbService,
@@ -1 +1 @@
1
- {"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAKwB;AACxB,2DAAsD;AACtD,0CAA2C;AAC3C,oCAA8D;AAC9D,qCAKiB;AACjB,uDAAyD;AAEzD,mCAAqC;AACrC,wDAAqD;AACrD,6CAAyC;AAIlC,IAAM,UAAU,kBAAhB,MAAM,UAAU;IASrB,YACmB,eAAgC,EAChC,SAAoB;QADpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,cAAS,GAAT,SAAS,CAAW;QAJvC,gBAAW,GAAU,EAAE,CAAC;IAKrB,CAAC;IAEJ,qBAAqB;QACnB,IAAI,YAAU,CAAC,KAAK,EAAE,CAAC;YACrB,aAAa,CAAC,YAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;;QACvC,YAAU,CAAC,GAAG,GAAG,IAAA,4BAAe,EAC9B,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,UAAU,MAAI,MAAA,OAAO,CAAC,QAAQ,0CAAE,KAAK,CAAA,IAAI,uBAAY,EACvE,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI,KAAI,SAAS,CACpC,CAAC;QAEF,IAAI,CAAC,YAAU,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,iBAAiB,GAAG;YACxB,IAAI,EAAE,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI;YAC5B,QAAQ,EAAE,MAAA,OAAO,CAAC,QAAQ,0CAAE,QAAQ;YACpC,IAAI,EAAE,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI;YAC5B,IAAI,EAAE,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI;YAC5B,QAAQ,EAAE,CAAC,YAAU,CAAC,GAAG,CAAC;SACN,CAAC;QAEvB,YAAU,CAAC,UAAU,GAAG,IAAI,oBAAU,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,YAAU,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAEzC,IAAI,iBAAiB,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,YAAU,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAE9D,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAE5B,MAAM,KAAK,GAAG,IAAA,2BAAY,EAAC,YAAU,CAAC,GAAG,CAAC,CAAC;gBAE3C,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;oBAAS,CAAC;gBACT,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,YAAU,CAAC,KAAK,EAAE,CAAC;YACrB,aAAa,CAAC,YAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,YAAU,CAAC,KAAK,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,0BAA0B;QAE7F,OAAO,YAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,OAAyB;QAClC,YAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAE7B,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,YAAU,CAAC,YAAY,EAAE,CAAC;YAClD,YAAU,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAC1D,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChB,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;oBACvB,KAAK,SAAS;wBACZ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;4BACzB,MAAM,EAAE,MAAM;4BACd,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;yBAC1B,CAAC,CAAC;wBACH,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9B,MAAM;gBACV,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,aAAa,CAAC,UAAe;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,OAA8B;QACjD,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE,eAAO,CAAC,GAAG;YACjB,OAAO;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAc,EAAE,OAA8B;QACnE,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE,eAAO,CAAC,KAAK;YACnB,OAAO;YACP,KAAK;YACL,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAA8B;QAClD,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE,eAAO,CAAC,IAAI;YAClB,OAAO;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAA8B;QACnD,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE,eAAO,CAAC,KAAK;YACnB,OAAO;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,OAA8B;QACrD,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE,eAAO,CAAC,OAAO;YACrB,OAAO;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAU,CAAC,GAAG,EAAE;YAC/C,MAAM,EAAE;gBACN,KAAK;gBACL,MAAM;gBACN,SAAS;gBACT,OAAO;gBACP,WAAW;gBACX,WAAW;gBACX,SAAS;gBACT,OAAO;gBACP,aAAa;aACd;YACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACzB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,YAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAKzB;;QACC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,0BAA0B;QAC1B,IAAI,GAAG,CAAC;QAER,IAAI,MAAA,YAAU,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;YAC7B,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAU,CAAC,GAAG,EAAE;gBAC7C,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3E,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,UAAU,GAAG;gBACjB,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;gBACpB,SAAS,EAAE,WAAW;aACvB,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBACzB,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE;aAChC,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,MAAM,CAAC,YAAU,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;gBACpB,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACnC,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,WAAW;SACvB,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,YAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACzB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE;SAC9B,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IACjC,CAAC;IAEO,cAAc,CAAC,MAAW;QAChC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAEO,aAAa;;QACnB,OAAO,CAAA,MAAA,YAAU,CAAC,UAAU,0CAAE,OAAO,KAAI,IAAI,CAAC,eAAe,CAAC;IAChE,CAAC;IAEO,YAAY,CAAC,OAA6B;QAChD,MAAM,GAAG,GAAqB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,CAAC;YAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YACpB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,CAAC;YAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,YAAY;;QACxB,IAAI,MAAA,YAAU,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAU,CAAC,GAAG,EAAE;gBAC7D,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC5B,IAAI,EAAE,MAAA,YAAU,CAAC,OAAO,0CAAE,OAAO;gBACjC,MAAM,EAAE,CAAC,KAAK,CAAC;aAChB,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhD,MAAM,YAAU,CAAC,UAAU;iBACxB,aAAa,CAAC,YAAU,CAAC,GAAG,CAAC;iBAC7B,kBAAkB,EAAE;iBACpB,MAAM,EAAE;iBACR,IAAI,CAAC,YAAU,CAAC,GAAG,CAAC;iBACpB,KAAK,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;iBACjD,OAAO,EAAE,CAAC;QACf,CAAC;IACH,CAAC;;AAzSU,gCAAU;AAGd,cAAG,GAAiB,IAAA,4BAAe,EAAC,uBAAY,EAAE,QAAQ,CAAC,AAAxD,CAAyD;qBAHxD,UAAU;IADtB,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,SAAS,EAAE,CAAC;qCAWD,mCAAe;QACrB,sBAAS;GAX5B,UAAU,CA0StB"}
@@ -1,4 +1,4 @@
1
- import { EntitySchema } from "typeorm";
1
+ import { EntitySchema } from 'typeorm';
2
2
  export declare class MemoryDbService {
3
3
  private db;
4
4
  constructor();
@@ -26,8 +26,8 @@ let MemoryDbService = class MemoryDbService {
26
26
  insert(entity, data) {
27
27
  const table = this.getTableName(entity);
28
28
  // generate new random _id
29
- const randomData = (0, crypto_1.randomBytes)(24).toString("hex");
30
- const _id = (0, crypto_1.createHash)("sha256").update(randomData).digest("hex");
29
+ const randomData = (0, crypto_1.randomBytes)(24).toString('hex');
30
+ const _id = (0, crypto_1.createHash)('sha256').update(randomData).digest('hex');
31
31
  this.db[table].push({
32
32
  ...data,
33
33
  _id, // unique index
@@ -37,7 +37,7 @@ let MemoryDbService = class MemoryDbService {
37
37
  async update(entity, condition, data) {
38
38
  const table = this.getTableName(entity);
39
39
  let index = null;
40
- if (typeof condition === "string") {
40
+ if (typeof condition === 'string') {
41
41
  index = this.findIndex(entity, { where: { _id: condition } });
42
42
  }
43
43
  if (condition === null || condition === void 0 ? void 0 : condition.where) {
@@ -94,8 +94,8 @@ let MemoryDbService = class MemoryDbService {
94
94
  // handle null or non-object values
95
95
  if (obj1 == null ||
96
96
  obj2 == null ||
97
- typeof obj1 !== "object" ||
98
- typeof obj2 !== "object") {
97
+ typeof obj1 !== 'object' ||
98
+ typeof obj2 !== 'object') {
99
99
  return false;
100
100
  }
101
101
  // compare keys length
@@ -1,5 +1,5 @@
1
- import { LogModuleOptions } from "../types";
2
- import { Subject } from "rxjs";
1
+ import { LogModuleOptions } from '../types';
2
+ import { Subject } from 'rxjs';
3
3
  export declare class WsService {
4
4
  onMessage: Subject<any>;
5
5
  private ws;
@@ -7,7 +7,7 @@ export declare class WsService {
7
7
  private connectionTimeout;
8
8
  private options;
9
9
  private key;
10
- setupConnection(options: LogModuleOptions["websocket"], key?: string): void;
10
+ setupConnection(options: LogModuleOptions['websocket'], key?: string): void;
11
11
  sendMessage(message: any): void;
12
12
  private handleError;
13
13
  private closeConnection;
@@ -18,9 +18,9 @@ let WsService = class WsService {
18
18
  this.connectionTimeout = 500;
19
19
  this.options = {
20
20
  port: 8080,
21
- host: "localhost",
21
+ host: 'localhost',
22
22
  };
23
- this.key = "";
23
+ this.key = '';
24
24
  this.handleError = () => {
25
25
  const serverUrl = this.getServerUrl();
26
26
  console.error(`Server ${serverUrl} is not available.`);
@@ -29,13 +29,13 @@ let WsService = class WsService {
29
29
  this.closeConnection = (connection) => {
30
30
  clearTimeout(connection.pingTimeout);
31
31
  if (this.connected) {
32
- console.log("Connection has been closed by server.");
32
+ console.log('Connection has been closed by server.');
33
33
  this.connected = false;
34
34
  this.handleError();
35
35
  }
36
36
  };
37
37
  this.ping = (connection) => {
38
- console.log("Ping remote server.");
38
+ console.log('Ping remote server.');
39
39
  clearTimeout(connection.pingTimeout);
40
40
  connection.pingTimeout = setTimeout(() => {
41
41
  connection.terminate();
@@ -44,8 +44,8 @@ let WsService = class WsService {
44
44
  this.handleMessage = (message) => {
45
45
  try {
46
46
  const data = JSON.parse((message.data || message).toString());
47
- if (this.key !== "" && data.key !== this.key) {
48
- throw new Error("WebSocket unauthorized");
47
+ if (this.key !== '' && data.key !== this.key) {
48
+ throw new Error('WebSocket unauthorized');
49
49
  }
50
50
  if (this.options)
51
51
  if (data.action) {
@@ -58,7 +58,7 @@ let WsService = class WsService {
58
58
  };
59
59
  this.getServerUrl = () => {
60
60
  var _a, _b, _c;
61
- return `${((_a = this.options) === null || _a === void 0 ? void 0 : _a.secure) ? "wss" : "ws"}://${(_b = this.options) === null || _b === void 0 ? void 0 : _b.host}:${(_c = this.options) === null || _c === void 0 ? void 0 : _c.port}`;
61
+ return `${((_a = this.options) === null || _a === void 0 ? void 0 : _a.secure) ? 'wss' : 'ws'}://${(_b = this.options) === null || _b === void 0 ? void 0 : _b.host}:${(_c = this.options) === null || _c === void 0 ? void 0 : _c.port}`;
62
62
  };
63
63
  this.handleOpenConnection = async () => {
64
64
  this.connected = true;
@@ -66,7 +66,7 @@ let WsService = class WsService {
66
66
  console.log(`${serverUrl} has been connected.`);
67
67
  };
68
68
  }
69
- setupConnection(options, key = "") {
69
+ setupConnection(options, key = '') {
70
70
  var _a;
71
71
  this.options = {
72
72
  ...this.options,
@@ -84,12 +84,12 @@ let WsService = class WsService {
84
84
  port: (_a = this.options) === null || _a === void 0 ? void 0 : _a.port,
85
85
  });
86
86
  console.log(`Logs WebSocket server is listening on port ${this.options.port}`);
87
- wsServer.on("error", this.handleError);
88
- wsServer.on("open", () => this.handleOpenConnection());
89
- wsServer.on("ping", () => this.ping(this.ws));
90
- wsServer.on("close", () => this.closeConnection(this.ws));
91
- wsServer.on("message", this.handleMessage);
92
- wsServer.on("connection", (connection) => {
87
+ wsServer.on('error', this.handleError);
88
+ wsServer.on('open', () => this.handleOpenConnection());
89
+ wsServer.on('ping', () => this.ping(this.ws));
90
+ wsServer.on('close', () => this.closeConnection(this.ws));
91
+ wsServer.on('message', this.handleMessage);
92
+ wsServer.on('connection', (connection) => {
93
93
  this.ws = connection;
94
94
  connection.onmessage = this.handleMessage;
95
95
  });
@@ -1,3 +1,3 @@
1
- export * from "./context.type";
2
- export * from "./log.type";
3
- export * from "./options.type";
1
+ export * from './context.type';
2
+ export * from './log.type';
3
+ export * from './options.type';
@@ -2,6 +2,7 @@ import { DataSourceOptions } from "typeorm";
2
2
  export type LogModuleOptions = {
3
3
  path?: string;
4
4
  key?: string;
5
+ join?: boolean;
5
6
  maxRecords?: number;
6
7
  maxAge?: number;
7
8
  maxSize?: number;
@@ -1,2 +1,2 @@
1
- import { EntitySchema, Table } from "typeorm";
1
+ import { EntitySchema, Table } from 'typeorm';
2
2
  export declare function entity2table(entity: EntitySchema): Table;
@@ -11,7 +11,7 @@ function entity2table(entity) {
11
11
  type: resolveColumnType(col === null || col === void 0 ? void 0 : col.type),
12
12
  isPrimary: !!(col === null || col === void 0 ? void 0 : col.primary),
13
13
  isGenerated: !!(col === null || col === void 0 ? void 0 : col.generated),
14
- generationStrategy: (col === null || col === void 0 ? void 0 : col.generated) ? "increment" : undefined,
14
+ generationStrategy: (col === null || col === void 0 ? void 0 : col.generated) ? 'increment' : undefined,
15
15
  isUnique: !!(col === null || col === void 0 ? void 0 : col.unique),
16
16
  isNullable: !!(col === null || col === void 0 ? void 0 : col.nullable),
17
17
  default: col === null || col === void 0 ? void 0 : col.default,
@@ -21,15 +21,15 @@ function entity2table(entity) {
21
21
  function resolveColumnType(type) {
22
22
  switch (type) {
23
23
  case String:
24
- return "text";
24
+ return 'text';
25
25
  case Number:
26
- return "int";
26
+ return 'int';
27
27
  case Date:
28
- return "timestamp";
28
+ return 'timestamp';
29
29
  case Boolean:
30
- return "boolean";
30
+ return 'boolean';
31
31
  default:
32
- return "text";
32
+ return 'text';
33
33
  }
34
34
  }
35
35
  //# sourceMappingURL=entity2table.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viplance/nestjs-logger",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "NestJS internal logging system",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,6 +21,9 @@
21
21
  "mariadb",
22
22
  "sqlite",
23
23
  "memory",
24
+ "websocket",
25
+ "realtime",
26
+ "UI",
24
27
  "free"
25
28
  ],
26
29
  "author": "Dzmitry Sharko",