@viplance/nestjs-logger 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -66,4 +66,4 @@ Connect the database to store logs.<br />
66
66
  - warn(message: string)
67
67
  - debug(message: string)
68
68
  - verbose(message: string)
69
- - addBreadcrumb(any)
69
+ - addBreadcrumb(breadcrumb: any)
@@ -0,0 +1,4 @@
1
+ import { CanActivate, ExecutionContext } from "@nestjs/common";
2
+ export declare class LogAccessGuard implements CanActivate {
3
+ canActivate(context: ExecutionContext): boolean;
4
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LogAccessGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const log_service_1 = require("../services/log.service");
15
+ const node_querystring_1 = __importDefault(require("node:querystring"));
16
+ let LogAccessGuard = class LogAccessGuard {
17
+ canActivate(context) {
18
+ const req = !!context.switchToHttp
19
+ ? context.switchToHttp().getRequest()
20
+ : context; // hook for using as method
21
+ const params = node_querystring_1.default.parse(req.url.split("?")[1]);
22
+ if (log_service_1.LogService.options.key && params.key !== log_service_1.LogService.options.key) {
23
+ throw new common_1.HttpException("Unauthorized", 401);
24
+ }
25
+ return true;
26
+ }
27
+ };
28
+ exports.LogAccessGuard = LogAccessGuard;
29
+ exports.LogAccessGuard = LogAccessGuard = __decorate([
30
+ (0, common_1.Injectable)()
31
+ ], LogAccessGuard);
32
+ //# sourceMappingURL=access.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.guard.js","sourceRoot":"","sources":["../../src/guards/access.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,yDAAqD;AACrD,wEAA2C;AAGpC,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,WAAW,CAAC,OAAyB;QACnC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY;YAChC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE;YACrC,CAAC,CAAC,OAAO,CAAC,CAAC,2BAA2B;QAExC,MAAM,MAAM,GAAG,0BAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,IAAI,wBAAU,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,wBAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACpE,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAdY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CAc1B"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./log.interceptor";
1
+ export * from "./interceptors/log.interceptor";
2
2
  export * from "./log.module";
3
3
  export * from "./types/index";
4
4
  export * from "./services/log.service";
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./log.interceptor"), exports);
17
+ __exportStar(require("./interceptors/log.interceptor"), exports);
18
18
  __exportStar(require("./log.module"), exports);
19
19
  __exportStar(require("./types/index"), exports);
20
20
  __exportStar(require("./services/log.service"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,+CAA6B;AAC7B,gDAA8B;AAC9B,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,+CAA6B;AAC7B,gDAA8B;AAC9B,yDAAuC"}
@@ -0,0 +1,9 @@
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
+ export declare class LogInterceptor implements NestInterceptor {
6
+ private readonly logService;
7
+ constructor(logService: LogService);
8
+ intercept(context: ExecutionContextHost, next: CallHandler): Observable<any>;
9
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LogInterceptor = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const rxjs_1 = require("rxjs");
18
+ const log_service_1 = require("../services/log.service");
19
+ let LogInterceptor = class LogInterceptor {
20
+ constructor(logService) {
21
+ this.logService = logService;
22
+ }
23
+ intercept(context, next) {
24
+ return next.handle().pipe((0, rxjs_1.tap)({
25
+ error: (error) => {
26
+ var _a, _b;
27
+ (_a = this.logService) === null || _a === void 0 ? void 0 : _a.error(error.message, error.stack, context);
28
+ (_b = this.logService) === null || _b === void 0 ? void 0 : _b.clearBreadcrumbs();
29
+ },
30
+ complete: () => {
31
+ var _a;
32
+ (_a = this.logService) === null || _a === void 0 ? void 0 : _a.clearBreadcrumbs();
33
+ },
34
+ }));
35
+ }
36
+ };
37
+ exports.LogInterceptor = LogInterceptor;
38
+ exports.LogInterceptor = LogInterceptor = __decorate([
39
+ (0, common_1.Injectable)(),
40
+ __param(0, (0, common_1.Inject)(log_service_1.LogService)),
41
+ __metadata("design:paramtypes", [log_service_1.LogService])
42
+ ], LogInterceptor);
43
+ //# sourceMappingURL=log.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/log.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAoD;AACpD,+BAAuC;AACvC,yDAAqD;AAI9C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAAiD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE3E,SAAS,CAAC,OAA6B,EAAE,IAAiB;QACxD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,UAAG,EAAC;YACF,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;;gBACf,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,EAAE,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;;gBACb,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,EAAE,CAAC;YACtC,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAhBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,wBAAU,CAAC,CAAA;qCAA8B,wBAAU;GAD5D,cAAc,CAgB1B"}
@@ -13,31 +13,40 @@ exports.LogModule = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const log_service_1 = require("./services/log.service");
15
15
  const memory_db_service_1 = require("./services/memory-db.service");
16
- const log_interceptor_1 = require("./log.interceptor");
16
+ const log_interceptor_1 = require("./interceptors/log.interceptor");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
18
  const node_querystring_1 = __importDefault(require("node:querystring"));
19
19
  const core_1 = require("@nestjs/core");
20
20
  const node_path_1 = require("node:path");
21
+ const access_guard_1 = require("./guards/access.guard");
21
22
  let LogModule = class LogModule {
22
23
  static async init(app, options) {
23
24
  app.resolve(log_service_1.LogService);
24
25
  const logService = await app.resolve(log_service_1.LogService);
26
+ const logAccessGuard = await app.get(access_guard_1.LogAccessGuard);
27
+ if (options) {
28
+ logService.setOptions(options);
29
+ }
25
30
  app.useGlobalInterceptors(new log_interceptor_1.LogInterceptor(logService)); // intercept all errors
26
31
  if (options === null || options === void 0 ? void 0 : options.path) {
27
32
  app.useStaticAssets((0, node_path_1.join)(__dirname, "..", "public"), {
28
33
  prefix: options.path,
29
34
  });
30
35
  const httpAdapter = app.getHttpAdapter();
36
+ // get all logs endpoint
31
37
  httpAdapter.get((0, node_path_1.join)(options.path, "api"), async (req, res) => {
32
- var _a;
33
- if ((_a = log_service_1.LogService.options) === null || _a === void 0 ? void 0 : _a.key) {
34
- const params = node_querystring_1.default.parse(req.url.split("?")[1]);
35
- if (params.key && params.key !== log_service_1.LogService.options.key) {
36
- throw new common_1.HttpException("Unauthorized", 401);
37
- }
38
- }
38
+ logAccessGuard.canActivate(req);
39
39
  res.json(await logService.getAll());
40
40
  });
41
+ // delete log endpoint
42
+ httpAdapter.delete((0, node_path_1.join)(options.path, "api"), async (req, res) => {
43
+ logAccessGuard.canActivate(req);
44
+ const params = node_querystring_1.default.parse(req.url.split("?")[1]);
45
+ if (!params.id) {
46
+ throw new common_1.HttpException("id is required", 400);
47
+ }
48
+ res.json(await logService.delete(params.id.toString()));
49
+ });
41
50
  }
42
51
  if (options === null || options === void 0 ? void 0 : options.database) {
43
52
  await logService.connectDb(options);
@@ -49,7 +58,7 @@ exports.LogModule = LogModule = __decorate([
49
58
  (0, common_1.Global)(),
50
59
  (0, common_1.Module)({
51
60
  imports: [typeorm_1.TypeOrmModule],
52
- providers: [core_1.ApplicationConfig, log_service_1.LogService, memory_db_service_1.MemoryDbService],
61
+ providers: [core_1.ApplicationConfig, access_guard_1.LogAccessGuard, log_service_1.LogService, memory_db_service_1.MemoryDbService],
53
62
  exports: [typeorm_1.TypeOrmModule, log_service_1.LogService, memory_db_service_1.MemoryDbService],
54
63
  })
55
64
  ], LogModule);
@@ -1 +1 @@
1
- {"version":3,"file":"log.module.js","sourceRoot":"","sources":["../src/log.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAC/D,wDAAoD;AACpD,oEAA+D;AAC/D,uDAAmD;AAEnD,6CAAgD;AAChD,wEAA2C;AAC3C,uCAAiD;AACjD,yCAAiC;AAQ1B,IAAM,SAAS,GAAf,MAAM,SAAS;IACb,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,GAAQ,EACR,OAA0B;QAE1B,GAAG,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;QAExB,MAAM,UAAU,GAAe,MAAM,GAAG,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;QAE7D,GAAG,CAAC,qBAAqB,CAAC,IAAI,gCAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAuB;QAElF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;YAClB,GAAG,CAAC,eAAe,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACnD,MAAM,EAAE,OAAO,CAAC,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;YACzC,WAAW,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;;gBACtE,IAAI,MAAA,wBAAU,CAAC,OAAO,0CAAE,GAAG,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,0BAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAExD,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,wBAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;wBACxD,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF,CAAA;AAlCY,8BAAS;oBAAT,SAAS;IANrB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC;QACxB,SAAS,EAAE,CAAC,wBAAiB,EAAE,wBAAU,EAAE,mCAAe,CAAC;QAC3D,OAAO,EAAE,CAAC,uBAAa,EAAE,wBAAU,EAAE,mCAAe,CAAC;KACtD,CAAC;GACW,SAAS,CAkCrB"}
1
+ {"version":3,"file":"log.module.js","sourceRoot":"","sources":["../src/log.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAC/D,wDAAoD;AACpD,oEAA+D;AAC/D,oEAAgE;AAEhE,6CAAgD;AAChD,wEAA2C;AAC3C,uCAAiD;AACjD,yCAAiC;AACjC,wDAAuD;AAQhD,IAAM,SAAS,GAAf,MAAM,SAAS;IACb,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,GAAQ,EACR,OAA0B;QAE1B,GAAG,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;QAExB,MAAM,UAAU,GAAe,MAAM,GAAG,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAmB,MAAM,GAAG,CAAC,GAAG,CAAC,6BAAc,CAAC,CAAC;QAErE,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,qBAAqB,CAAC,IAAI,gCAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAuB;QAElF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;YAClB,GAAG,CAAC,eAAe,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACnD,MAAM,EAAE,OAAO,CAAC,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;YAEzC,wBAAwB;YACxB,WAAW,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;gBACtE,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAEhC,GAAG,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,WAAW,CAAC,MAAM,CAChB,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EACzB,KAAK,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;gBAC3B,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAEhC,MAAM,MAAM,GAAG,0BAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,sBAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CACF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF,CAAA;AAnDY,8BAAS;oBAAT,SAAS;IANrB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC;QACxB,SAAS,EAAE,CAAC,wBAAiB,EAAE,6BAAc,EAAE,wBAAU,EAAE,mCAAe,CAAC;QAC3E,OAAO,EAAE,CAAC,uBAAa,EAAE,wBAAU,EAAE,mCAAe,CAAC;KACtD,CAAC;GACW,SAAS,CAmDrB"}
@@ -13,6 +13,7 @@ export declare class LogService implements LoggerService {
13
13
  breadcrumbs: any[];
14
14
  constructor(memoryDbService: MemoryDbService);
15
15
  connectDb(options: LogModuleOptions): Promise<DataSource>;
16
+ setOptions(options: LogModuleOptions): void;
16
17
  addBreadcrumb(breadcrumb: any): void;
17
18
  clearBreadcrumbs(): void;
18
19
  log(message: string, context?: ExecutionContextHost): void;
@@ -21,6 +22,7 @@ export declare class LogService implements LoggerService {
21
22
  debug(message: string, context?: ExecutionContextHost): void;
22
23
  verbose(message: string, context?: ExecutionContextHost): void;
23
24
  getAll(): Promise<any[]>;
25
+ delete(id: string): Promise<import("typeorm").DeleteResult>;
24
26
  private smartInsert;
25
27
  private getConnection;
26
28
  private parseContext;
@@ -26,7 +26,7 @@ let LogService = LogService_1 = class LogService {
26
26
  async connectDb(options) {
27
27
  var _a, _b, _c, _d, _e, _f;
28
28
  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);
29
- LogService_1.options = options;
29
+ this.setOptions(options);
30
30
  const dataSourceOptions = {
31
31
  type: (_c = options.database) === null || _c === void 0 ? void 0 : _c.type,
32
32
  database: (_d = options.database) === null || _d === void 0 ? void 0 : _d.database,
@@ -42,6 +42,9 @@ let LogService = LogService_1 = class LogService {
42
42
  LogService_1.timer = (0, timers_1.setInterval)(this.checkRecords, 1000 * 60 * 60); // check one time per hour
43
43
  return LogService_1.connection;
44
44
  }
45
+ setOptions(options) {
46
+ LogService_1.options = options;
47
+ }
45
48
  addBreadcrumb(breadcrumb) {
46
49
  this.breadcrumbs.push(breadcrumb);
47
50
  }
@@ -100,6 +103,9 @@ let LogService = LogService_1 = class LogService {
100
103
  order: { updatedAt: "DESC" },
101
104
  });
102
105
  }
106
+ async delete(id) {
107
+ return this.getConnection().delete(LogService_1.Log, id);
108
+ }
103
109
  async smartInsert(data) {
104
110
  const currentDate = new Date();
105
111
  const connection = this.getConnection();
@@ -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":"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"}
@@ -8,6 +8,7 @@ export declare class MemoryDbService {
8
8
  select?: string[];
9
9
  }): Promise<any[]>;
10
10
  getOneById(entity: EntitySchema, _id: string): Promise<any>;
11
+ delete(entity: EntitySchema, _id: string): Promise<any>;
11
12
  findByProperty(entity: EntitySchema, field: string, value: string): any[];
12
13
  findOne(entity: EntitySchema, condition: {
13
14
  where: any;
@@ -70,6 +70,11 @@ let MemoryDbService = class MemoryDbService {
70
70
  const table = this.getTableName(entity);
71
71
  return Promise.resolve(this.db[table].find((item) => item._id === _id));
72
72
  }
73
+ async delete(entity, _id) {
74
+ const table = this.getTableName(entity);
75
+ this.db[table] = this.db[table].filter((item) => item._id !== _id);
76
+ return Promise.resolve(_id);
77
+ }
73
78
  findByProperty(entity, field, value) {
74
79
  const table = this.getTableName(entity);
75
80
  return this.db[table].filter((item) => item[field] === value);
@@ -1 +1 @@
1
- {"version":3,"file":"memory-db.service.js","sourceRoot":"","sources":["../../src/services/memory-db.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-db.service.js","sourceRoot":"","sources":["../../src/services/memory-db.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viplance/nestjs-logger",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "NestJS internal logging system",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -160,6 +160,7 @@ function renderLogs() {
160
160
 
161
161
  async function getLogs() {
162
162
  const { origin, pathname, search } = window.location;
163
+
163
164
  const res = await fetch(`${origin}${pathname}api${search}`);
164
165
 
165
166
  if (res.ok) {
@@ -176,6 +177,31 @@ async function getLogs() {
176
177
  }
177
178
 
178
179
  renderLogs();
180
+ } else {
181
+ alert("An error occurred while fetching logs.");
182
+ }
183
+ }
184
+
185
+ async function deleteLog(id) {
186
+ if (!confirm("Are you sure? It can't be undone.")) return;
187
+
188
+ const { origin, pathname, search: searchParams } = window.location;
189
+
190
+ const searchParamsWithId = new URLSearchParams(searchParams);
191
+ searchParamsWithId.set("id", id);
192
+
193
+ const res = await fetch(
194
+ `${origin}${pathname}api?${searchParamsWithId.toString()}`,
195
+ {
196
+ method: "DELETE",
197
+ }
198
+ );
199
+
200
+ if (res.ok) {
201
+ closePopup();
202
+ getLogs();
203
+ } else {
204
+ alert("An error occurred while deleting log.");
179
205
  }
180
206
  }
181
207
 
@@ -30,7 +30,12 @@ function showLogDetails(log) {
30
30
  `
31
31
  : ""
32
32
  }
33
- <button class="white mt-2" onclick="closePopup()">Close</button>
33
+ <div class="content">
34
+ <button class="white mt-2" onclick="closePopup()">Close</button>
35
+ <button class="light mt-2" onclick="deleteLog('${
36
+ log._id
37
+ }')">Delete</button>
38
+ </div>
34
39
  </div>
35
40
  <div>`;
36
41
 
@@ -311,6 +311,7 @@ nav ul li:hover {
311
311
  overflow-y: scroll;
312
312
  z-index: 1;
313
313
  opacity: 0.97;
314
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
314
315
  }
315
316
 
316
317
  /* JSON viewer */
@@ -338,5 +339,6 @@ nav ul li:hover {
338
339
  #popup {
339
340
  width: 100%;
340
341
  left: 0;
342
+ box-shadow: none;
341
343
  }
342
344
  }
@@ -0,0 +1,25 @@
1
+ import {
2
+ CanActivate,
3
+ ExecutionContext,
4
+ HttpException,
5
+ Injectable,
6
+ } from "@nestjs/common";
7
+ import { LogService } from "../services/log.service";
8
+ import querystring from "node:querystring";
9
+
10
+ @Injectable()
11
+ export class LogAccessGuard implements CanActivate {
12
+ canActivate(context: ExecutionContext): boolean {
13
+ const req = !!context.switchToHttp
14
+ ? context.switchToHttp().getRequest()
15
+ : context; // hook for using as method
16
+
17
+ const params = querystring.parse(req.url.split("?")[1]);
18
+
19
+ if (LogService.options.key && params.key !== LogService.options.key) {
20
+ throw new HttpException("Unauthorized", 401);
21
+ }
22
+
23
+ return true;
24
+ }
25
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./log.interceptor";
1
+ export * from "./interceptors/log.interceptor";
2
2
  export * from "./log.module";
3
3
  export * from "./types/index";
4
4
  export * from "./services/log.service";
@@ -1,7 +1,7 @@
1
1
  import type { CallHandler, NestInterceptor } from "@nestjs/common";
2
2
  import { Inject, Injectable } from "@nestjs/common";
3
3
  import { Observable, tap } from "rxjs";
4
- import { LogService } from "./services/log.service";
4
+ import { LogService } from "../services/log.service";
5
5
  import { ExecutionContextHost } from "@nestjs/core/helpers/execution-context-host";
6
6
 
7
7
  @Injectable()
package/src/log.module.ts CHANGED
@@ -1,17 +1,18 @@
1
1
  import { Module, Global, HttpException } from "@nestjs/common";
2
2
  import { LogService } from "./services/log.service";
3
3
  import { MemoryDbService } from "./services/memory-db.service";
4
- import { LogInterceptor } from "./log.interceptor";
4
+ import { LogInterceptor } from "./interceptors/log.interceptor";
5
5
  import { LogModuleOptions } from "./types";
6
6
  import { TypeOrmModule } from "@nestjs/typeorm";
7
7
  import querystring from "node:querystring";
8
8
  import { ApplicationConfig } from "@nestjs/core";
9
9
  import { join } from "node:path";
10
+ import { LogAccessGuard } from "./guards/access.guard";
10
11
 
11
12
  @Global()
12
13
  @Module({
13
14
  imports: [TypeOrmModule],
14
- providers: [ApplicationConfig, LogService, MemoryDbService],
15
+ providers: [ApplicationConfig, LogAccessGuard, LogService, MemoryDbService],
15
16
  exports: [TypeOrmModule, LogService, MemoryDbService],
16
17
  })
17
18
  export class LogModule {
@@ -22,6 +23,11 @@ export class LogModule {
22
23
  app.resolve(LogService);
23
24
 
24
25
  const logService: LogService = await app.resolve(LogService);
26
+ const logAccessGuard: LogAccessGuard = await app.get(LogAccessGuard);
27
+
28
+ if (options) {
29
+ logService.setOptions(options);
30
+ }
25
31
 
26
32
  app.useGlobalInterceptors(new LogInterceptor(logService)); // intercept all errors
27
33
 
@@ -31,17 +37,29 @@ export class LogModule {
31
37
  });
32
38
 
33
39
  const httpAdapter = app.getHttpAdapter();
40
+
41
+ // get all logs endpoint
34
42
  httpAdapter.get(join(options.path, "api"), async (req: any, res: any) => {
35
- if (LogService.options?.key) {
43
+ logAccessGuard.canActivate(req);
44
+
45
+ res.json(await logService.getAll());
46
+ });
47
+
48
+ // delete log endpoint
49
+ httpAdapter.delete(
50
+ join(options.path, "api"),
51
+ async (req: any, res: any) => {
52
+ logAccessGuard.canActivate(req);
53
+
36
54
  const params = querystring.parse(req.url.split("?")[1]);
37
55
 
38
- if (params.key && params.key !== LogService.options.key) {
39
- throw new HttpException("Unauthorized", 401);
56
+ if (!params.id) {
57
+ throw new HttpException("id is required", 400);
40
58
  }
41
- }
42
59
 
43
- res.json(await logService.getAll());
44
- });
60
+ res.json(await logService.delete(params.id.toString()));
61
+ }
62
+ );
45
63
  }
46
64
 
47
65
  if (options?.database) {
@@ -28,7 +28,7 @@ export class LogService implements LoggerService {
28
28
  options.database?.collection || options.database?.table || defaultTable
29
29
  );
30
30
 
31
- LogService.options = options;
31
+ this.setOptions(options);
32
32
 
33
33
  const dataSourceOptions = {
34
34
  type: options.database?.type,
@@ -51,6 +51,10 @@ export class LogService implements LoggerService {
51
51
  return LogService.connection;
52
52
  }
53
53
 
54
+ setOptions(options: LogModuleOptions) {
55
+ LogService.options = options;
56
+ }
57
+
54
58
  addBreadcrumb(breadcrumb: any) {
55
59
  this.breadcrumbs.push(breadcrumb);
56
60
  }
@@ -117,6 +121,10 @@ export class LogService implements LoggerService {
117
121
  });
118
122
  }
119
123
 
124
+ async delete(id: string) {
125
+ return this.getConnection().delete(LogService.Log, id);
126
+ }
127
+
120
128
  private async smartInsert(data: {
121
129
  type: LogType;
122
130
  message: string;
@@ -92,6 +92,13 @@ export class MemoryDbService {
92
92
  return Promise.resolve(this.db[table].find((item) => item._id === _id));
93
93
  }
94
94
 
95
+ public async delete(entity: EntitySchema, _id: string): Promise<any> {
96
+ const table = this.getTableName(entity);
97
+ this.db[table] = this.db[table].filter((item) => item._id !== _id);
98
+
99
+ return Promise.resolve(_id);
100
+ }
101
+
95
102
  public findByProperty(
96
103
  entity: EntitySchema,
97
104
  field: string,