@riocrypto/common-server 1.0.1714 → 1.0.1716

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.
@@ -2,6 +2,7 @@ import { Logger } from "winston";
2
2
  declare class LoggerService {
3
3
  private logger;
4
4
  constructor();
5
+ private maskValue;
5
6
  private maskSensitiveData;
6
7
  getLogger(): Logger;
7
8
  initLogger(): Promise<void>;
@@ -15,8 +15,8 @@ class LoggerService {
15
15
  constructor() {
16
16
  this.maskSensitiveData = (0, winston_1.format)((info) => {
17
17
  // Mask sensitive headers
18
- if (info.metadata && info.metadata.req && info.metadata.req.headers) {
19
- const headers = info.metadata.req.headers;
18
+ if (info.meta && info.meta.req && info.meta.req.headers) {
19
+ const headers = info.meta.req.headers;
20
20
  const headerKeysToMask = [
21
21
  "x-api-key",
22
22
  "x-admin-api-key",
@@ -24,16 +24,21 @@ class LoggerService {
24
24
  ];
25
25
  headerKeysToMask.forEach((key) => {
26
26
  if (headers[key]) {
27
- headers[key] = "***MASKED***"; // Replace with your masking preference
27
+ headers[key] = this.maskValue(headers[key]); // Use maskValue function
28
28
  }
29
29
  });
30
+ // Mask cookies specifically
30
31
  if (headers.cookie) {
31
32
  headers.cookie = headers.cookie
32
33
  .split("; ")
33
34
  .map((cookie) => {
34
35
  const [key, value] = cookie.split("=");
35
- if (key === "accessToken" || key === "adminAccessCookie") {
36
- return `${key}=***MASKED***`; // Mask the sensitive cookie
36
+ if (key === "accessToken" ||
37
+ key === "adminAccessToken" ||
38
+ key === "refreshToken" ||
39
+ key === "adminRefreshToken" ||
40
+ key === "phoneVerifiedJWT") {
41
+ return `${key}=${this.maskValue(value)}`; // Mask the sensitive cookie
37
42
  }
38
43
  return cookie; // Return unmodified if not sensitive
39
44
  })
@@ -41,7 +46,7 @@ class LoggerService {
41
46
  }
42
47
  }
43
48
  // Mask sensitive request body fields
44
- if (info.metadata && info.metadata.req && info.metadata.req.body) {
49
+ if (info.meta && info.meta.req && info.meta.req.body) {
45
50
  const requestBodyFieldsToMask = [
46
51
  "password",
47
52
  "newPassword",
@@ -50,17 +55,17 @@ class LoggerService {
50
55
  "authenticatorCode",
51
56
  ];
52
57
  requestBodyFieldsToMask.forEach((field) => {
53
- if (info.metadata.req.body.hasOwnProperty(field)) {
54
- info.metadata.req.body[field] = "***MASKED***"; // Replace with your masking preference
58
+ if (info.meta.req.body.hasOwnProperty(field)) {
59
+ info.meta.req.body[field] = this.maskValue(info.meta.req.body[field]); // Use maskValue function
55
60
  }
56
61
  });
57
62
  }
58
63
  // Mask sensitive response body fields
59
- if (info.metadata && info.metadata.res && info.metadata.res.body) {
64
+ if (info.meta && info.meta.res && info.meta.res.body) {
60
65
  const responseBodyFieldsToMask = ["secret", "value"];
61
66
  responseBodyFieldsToMask.forEach((field) => {
62
- if (info.metadata.res.body.hasOwnProperty(field)) {
63
- info.metadata.res.body[field] = "***MASKED***"; // Replace with your masking preference
67
+ if (info.meta.res.body.hasOwnProperty(field)) {
68
+ info.meta.res.body[field] = this.maskValue(info.meta.res.body[field]); // Use maskValue function
64
69
  }
65
70
  });
66
71
  }
@@ -68,6 +73,11 @@ class LoggerService {
68
73
  });
69
74
  this.logger = null;
70
75
  }
76
+ maskValue(value) {
77
+ return value.length > 4
78
+ ? "*".repeat(value.length - 4) + value.slice(-4)
79
+ : value;
80
+ }
71
81
  getLogger() {
72
82
  if (!this.logger) {
73
83
  return null;
@@ -92,7 +102,7 @@ class LoggerService {
92
102
  }
93
103
  else {
94
104
  this.logger = (0, winston_1.createLogger)({
95
- level: "error",
105
+ level: "info",
96
106
  format: winston_1.format.combine(winston_1.format.timestamp(), this.maskSensitiveData(), winston_1.format.json(), winston_1.format.metadata(), winston_1.format.prettyPrint()),
97
107
  transports: [new winston_1.transports.Console()],
98
108
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riocrypto/common-server",
3
- "version": "1.0.1714",
3
+ "version": "1.0.1716",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",