@gennext/lb-infra 0.0.7 → 0.0.9
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/dist/helpers/logger/common/types.d.ts +15 -0
- package/dist/helpers/logger/common/types.d.ts.map +1 -1
- package/dist/helpers/logger/common/types.js +19 -1
- package/dist/helpers/logger/common/types.js.map +1 -1
- package/dist/helpers/logger/config.d.ts +34 -0
- package/dist/helpers/logger/config.d.ts.map +1 -0
- package/dist/helpers/logger/config.js +71 -0
- package/dist/helpers/logger/config.js.map +1 -0
- package/dist/helpers/logger/enhanced-factory.d.ts +1 -1
- package/dist/helpers/logger/factory.d.ts +41 -1
- package/dist/helpers/logger/factory.d.ts.map +1 -1
- package/dist/helpers/logger/factory.js +98 -5
- package/dist/helpers/logger/factory.js.map +1 -1
- package/dist/helpers/logger/http/access-logger.d.ts +25 -4
- package/dist/helpers/logger/http/access-logger.d.ts.map +1 -1
- package/dist/helpers/logger/http/access-logger.js +159 -22
- package/dist/helpers/logger/http/access-logger.js.map +1 -1
- package/dist/helpers/logger/http/client-ip.d.ts +1 -1
- package/dist/helpers/logger/http/client-ip.d.ts.map +1 -1
- package/dist/helpers/logger/http/client-ip.js +4 -15
- package/dist/helpers/logger/http/client-ip.js.map +1 -1
- package/dist/helpers/logger/http/index.d.ts +1 -1
- package/dist/helpers/logger/http/index.d.ts.map +1 -1
- package/dist/helpers/logger/http/index.js +1 -1
- package/dist/helpers/logger/http/index.js.map +1 -1
- package/dist/helpers/logger/http/request-context.d.ts.map +1 -1
- package/dist/helpers/logger/http/request-context.js +2 -6
- package/dist/helpers/logger/http/request-context.js.map +1 -1
- package/dist/helpers/logger/http/request-id-manager.d.ts +17 -0
- package/dist/helpers/logger/http/request-id-manager.d.ts.map +1 -0
- package/dist/helpers/logger/http/request-id-manager.js +98 -0
- package/dist/helpers/logger/http/request-id-manager.js.map +1 -0
- package/dist/helpers/logger/http/types.d.ts +10 -6
- package/dist/helpers/logger/http/types.d.ts.map +1 -1
- package/dist/helpers/logger/index.d.ts +1 -0
- package/dist/helpers/logger/index.d.ts.map +1 -1
- package/dist/helpers/logger/index.js +1 -0
- package/dist/helpers/logger/index.js.map +1 -1
- package/dist/helpers/logger/transports/dgram.transport.d.ts +2 -2
- package/dist/helpers/logger/transports/dgram.transport.d.ts.map +1 -1
- package/dist/helpers/logger/transports/dgram.transport.js +6 -11
- package/dist/helpers/logger/transports/dgram.transport.js.map +1 -1
- package/dist/helpers/logger/transports/index.d.ts +1 -1
- package/dist/utilities/lodash.utility.d.ts +3 -0
- package/dist/utilities/lodash.utility.d.ts.map +1 -0
- package/dist/utilities/lodash.utility.js +11 -0
- package/dist/utilities/lodash.utility.js.map +1 -0
- package/dist/utilities/request.utility.d.ts +2 -1
- package/dist/utilities/request.utility.d.ts.map +1 -1
- package/dist/utilities/request.utility.js +15 -5
- package/dist/utilities/request.utility.js.map +1 -1
- package/package.json +2 -1
- package/dist/helpers/logger/http/data-masking.d.ts +0 -13
- package/dist/helpers/logger/http/data-masking.d.ts.map +0 -1
- package/dist/helpers/logger/http/data-masking.js +0 -77
- package/dist/helpers/logger/http/data-masking.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import dgram from
|
|
2
|
-
import Transport from
|
|
1
|
+
import dgram from 'node:dgram';
|
|
2
|
+
import Transport from 'winston-transport';
|
|
3
3
|
export interface IDgramTransportOptions extends Transport.TransportStreamOptions {
|
|
4
4
|
label: string;
|
|
5
5
|
host: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dgram.transport.d.ts","sourceRoot":"","sources":["../../../../src/helpers/logger/transports/dgram.transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"dgram.transport.d.ts","sourceRoot":"","sources":["../../../../src/helpers/logger/transports/dgram.transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,MAAM,WAAW,sBAAuB,SAAQ,SAAS,CAAC,sBAAsB;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;CACpC;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,MAAM,CAAsB;gBAExB,IAAI,EAAE,sBAAsB;IAaxC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,cAAc,GAAG,IAAI;IAcjF,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,aAAa;IAKZ,GAAG,CACV,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;KACtB,EACD,QAAQ,EAAE,QAAQ;CAyBrB"}
|
|
@@ -31,7 +31,7 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
31
31
|
}
|
|
32
32
|
establish(opts) {
|
|
33
33
|
this.client = node_dgram_1.default.createSocket(opts.socketOptions);
|
|
34
|
-
this.client.on(
|
|
34
|
+
this.client.on('error', error => {
|
|
35
35
|
this.client?.close();
|
|
36
36
|
this.client = null;
|
|
37
37
|
throw (0, utilities_1.getError)({
|
|
@@ -42,18 +42,13 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
42
42
|
}
|
|
43
43
|
formatMessage(opts) {
|
|
44
44
|
const { timestamp, label, message, ...rest } = opts;
|
|
45
|
-
return [
|
|
46
|
-
timestamp,
|
|
47
|
-
`[${this.label ?? label}]`,
|
|
48
|
-
rest[Symbol.for("level")],
|
|
49
|
-
message,
|
|
50
|
-
].join(" ");
|
|
45
|
+
return [timestamp, `[${this.label ?? label}]`, rest[Symbol.for('level')], message].join(' ');
|
|
51
46
|
}
|
|
52
47
|
log(opts, callback) {
|
|
53
48
|
setImmediate(() => {
|
|
54
|
-
this.emit(
|
|
49
|
+
this.emit('logged', opts);
|
|
55
50
|
});
|
|
56
|
-
const logLevel = opts[Symbol.for(
|
|
51
|
+
const logLevel = opts[Symbol.for('level')];
|
|
57
52
|
if (!this.triggerLevels.has(logLevel)) {
|
|
58
53
|
callback();
|
|
59
54
|
return;
|
|
@@ -62,9 +57,9 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
62
57
|
this.establish({ socketOptions: this.socketOptions });
|
|
63
58
|
}
|
|
64
59
|
const message = this.formatMessage(opts);
|
|
65
|
-
this.client?.send(message, this.port, this.host,
|
|
60
|
+
this.client?.send(message, this.port, this.host, error => {
|
|
66
61
|
if (error) {
|
|
67
|
-
this.emit(
|
|
62
|
+
this.emit('error', error);
|
|
68
63
|
}
|
|
69
64
|
callback();
|
|
70
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dgram.transport.js","sourceRoot":"","sources":["../../../../src/helpers/logger/transports/dgram.transport.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAuC;AACvC,2CAAuC;AACvC,4DAA+B;AAC/B,0EAA0C;
|
|
1
|
+
{"version":3,"file":"dgram.transport.js","sourceRoot":"","sources":["../../../../src/helpers/logger/transports/dgram.transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './dgram.transport';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lodash.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/lodash.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.set = exports.get = void 0;
|
|
7
|
+
var get_1 = require("lodash/get");
|
|
8
|
+
Object.defineProperty(exports, "get", { enumerable: true, get: function () { return __importDefault(get_1).default; } });
|
|
9
|
+
var set_1 = require("lodash/set");
|
|
10
|
+
Object.defineProperty(exports, "set", { enumerable: true, get: function () { return __importDefault(set_1).default; } });
|
|
11
|
+
//# sourceMappingURL=lodash.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lodash.utility.js","sourceRoot":"","sources":["../../src/utilities/lodash.utility.ts"],"names":[],"mappings":";;;;;;AAAA,kCAA4C;AAAnC,2GAAA,OAAO,OAAO;AACvB,kCAA4C;AAAnC,2GAAA,OAAO,OAAO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IRequestedRemark } from '../common';
|
|
2
1
|
import { Request, Response } from '@loopback/rest';
|
|
3
2
|
import multer from 'multer';
|
|
3
|
+
import { IRequestedRemark } from '../common';
|
|
4
4
|
export declare const parseMultipartBody: (opts: {
|
|
5
5
|
storage?: multer.StorageEngine;
|
|
6
6
|
request: Request;
|
|
@@ -18,4 +18,5 @@ export declare const getRequestIp: (opts: {
|
|
|
18
18
|
export declare const getRequestRemark: (opts: {
|
|
19
19
|
request: Request;
|
|
20
20
|
}) => IRequestedRemark | undefined;
|
|
21
|
+
export declare const genHTTPRequestId: () => string;
|
|
21
22
|
//# sourceMappingURL=request.utility.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"request.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AACtE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,eAAO,MAAM,kBAAkB,GAAI,MAAM;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB,iBAeA,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,QAAQ,GAAG;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,0CAEnF,CAAC;AAGF,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,cAEtD,CAAC;AAGF,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,WAEtD,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAG,gBAAgB,GAAG,SAEhF,CAAC;AAGF,eAAO,MAAM,gBAAgB,cAO5B,CAAC"}
|
|
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getRequestRemark = exports.getRequestIp = exports.getRequestId = exports.getSchemaObject = exports.parseMultipartBody = void 0;
|
|
6
|
+
exports.genHTTPRequestId = exports.getRequestRemark = exports.getRequestIp = exports.getRequestId = exports.getSchemaObject = exports.parseMultipartBody = void 0;
|
|
7
7
|
const rest_1 = require("@loopback/rest");
|
|
8
|
-
const get_1 = __importDefault(require("lodash/get"));
|
|
9
8
|
const multer_1 = __importDefault(require("multer"));
|
|
9
|
+
const uuid_1 = require("uuid");
|
|
10
|
+
const lodash_utility_1 = require("./lodash.utility");
|
|
10
11
|
// -------------------------------------------------------------------------
|
|
11
12
|
const parseMultipartBody = (opts) => {
|
|
12
13
|
const { storage: cStorage, request, response } = opts;
|
|
@@ -30,17 +31,26 @@ const getSchemaObject = (ctor) => {
|
|
|
30
31
|
exports.getSchemaObject = getSchemaObject;
|
|
31
32
|
// -------------------------------------------------------------------------
|
|
32
33
|
const getRequestId = (opts) => {
|
|
33
|
-
return (0,
|
|
34
|
+
return (0, lodash_utility_1.get)(opts.request, 'requestId');
|
|
34
35
|
};
|
|
35
36
|
exports.getRequestId = getRequestId;
|
|
36
37
|
// -------------------------------------------------------------------------
|
|
37
38
|
const getRequestIp = (opts) => {
|
|
38
|
-
return (0,
|
|
39
|
+
return (0, lodash_utility_1.get)(opts.request, 'requestForwardedIp') ?? 'N/A';
|
|
39
40
|
};
|
|
40
41
|
exports.getRequestIp = getRequestIp;
|
|
41
42
|
// -------------------------------------------------------------------------
|
|
42
43
|
const getRequestRemark = (opts) => {
|
|
43
|
-
return (0,
|
|
44
|
+
return (0, lodash_utility_1.get)(opts.request, 'requestedRemark');
|
|
44
45
|
};
|
|
45
46
|
exports.getRequestRemark = getRequestRemark;
|
|
47
|
+
// -------------------------------------------------------------------------
|
|
48
|
+
const genHTTPRequestId = () => {
|
|
49
|
+
const now = new Date();
|
|
50
|
+
const prefix = now.getFullYear().toString().padStart(4, '0') +
|
|
51
|
+
(now.getMonth() + 1).toString().padStart(2, '0') +
|
|
52
|
+
now.getDate().toString().padStart(2, '0');
|
|
53
|
+
return `${prefix}-${(0, uuid_1.v4)()}`;
|
|
54
|
+
};
|
|
55
|
+
exports.genHTTPRequestId = genHTTPRequestId;
|
|
46
56
|
//# sourceMappingURL=request.utility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.utility.js","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"request.utility.js","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsE;AACtE,oDAA4B;AAC5B,+BAAoC;AAGpC,qDAAuC;AAEvC,4EAA4E;AACrE,MAAM,kBAAkB,GAAG,CAAC,IAIlC,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,IAAI,gBAAM,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnC,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,kBAAkB,sBAmB7B;AAEF,4EAA4E;AACrE,MAAM,eAAe,GAAG,CAAmB,IAAkC,EAAE,EAAE;IACtF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEF,4EAA4E;AACrE,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,EAAE;IACzD,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,4EAA4E;AACrE,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,EAAE;IACzD,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,KAAK,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,4EAA4E;AACrE,MAAM,gBAAgB,GAAG,CAAC,IAA0B,EAAgC,EAAE;IAC3F,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEF,4EAA4E;AACrE,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GACV,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC7C,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAChD,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,MAAM,IAAI,IAAA,SAAM,GAAE,EAAE,CAAC;AACjC,CAAC,CAAC;AAPW,QAAA,gBAAgB,oBAO3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gennext/lb-infra",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@gennext/dev-configs": "^0.0.2",
|
|
6
6
|
"@loopback/authentication": "^12.0.6",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"dayjs": "^1.11.19",
|
|
21
21
|
"ioredis": "^5.9.2",
|
|
22
22
|
"lodash": "^4.17.21",
|
|
23
|
+
"maskdata": "^1.3.4",
|
|
23
24
|
"multer": "^2.0.2",
|
|
24
25
|
"uuid": "^13.0.0",
|
|
25
26
|
"winston": "^3.19.0",
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { IDataMaskingConfig } from './types';
|
|
2
|
-
export declare class DataMasking {
|
|
3
|
-
private static readonly DEFAULT_CONFIG;
|
|
4
|
-
private static readonly EMAIL_REGEX;
|
|
5
|
-
private static readonly PHONE_REGEX;
|
|
6
|
-
private static readonly CREDIT_CARD_REGEX;
|
|
7
|
-
private static readonly PASSWORD_FIELDS;
|
|
8
|
-
private static readonly TOKEN_REGEX;
|
|
9
|
-
static mask(data: any, config?: Partial<IDataMaskingConfig>): any;
|
|
10
|
-
private static shouldMaskField;
|
|
11
|
-
private static maskValue;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data-masking.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-masking.d.ts","sourceRoot":"","sources":["../../../../src/helpers/logger/http/data-masking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAMpC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA0D;IAC7F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CACiC;IACpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyD;IAChG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAEtE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,GAAG;IAyBjE,OAAO,CAAC,MAAM,CAAC,eAAe;IAU9B,OAAO,CAAC,MAAM,CAAC,SAAS;CAoCzB"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DataMasking = void 0;
|
|
4
|
-
class DataMasking {
|
|
5
|
-
static { this.DEFAULT_CONFIG = {
|
|
6
|
-
email: true,
|
|
7
|
-
phone: true,
|
|
8
|
-
creditCard: true,
|
|
9
|
-
password: true,
|
|
10
|
-
token: true,
|
|
11
|
-
}; }
|
|
12
|
-
static { this.EMAIL_REGEX = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g; }
|
|
13
|
-
static { this.PHONE_REGEX = /\b(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})\b/g; }
|
|
14
|
-
static { this.CREDIT_CARD_REGEX = /\b(?:\d[ -]*?){13,16}\b/g; }
|
|
15
|
-
static { this.PASSWORD_FIELDS = ['password', 'pwd', 'pass', 'secret', 'token', 'key']; }
|
|
16
|
-
static { this.TOKEN_REGEX = /\b[A-Za-z0-9+/]{20,}={0,2}\b/g; }
|
|
17
|
-
static mask(data, config) {
|
|
18
|
-
const maskConfig = { ...this.DEFAULT_CONFIG, ...config };
|
|
19
|
-
if (typeof data !== 'object' || data === null) {
|
|
20
|
-
return this.maskValue(data, maskConfig);
|
|
21
|
-
}
|
|
22
|
-
if (Array.isArray(data)) {
|
|
23
|
-
return data.map(item => this.mask(item, maskConfig));
|
|
24
|
-
}
|
|
25
|
-
const masked = {};
|
|
26
|
-
for (const [key, value] of Object.entries(data)) {
|
|
27
|
-
if (this.shouldMaskField(key, maskConfig)) {
|
|
28
|
-
masked[key] = this.maskValue(value, maskConfig);
|
|
29
|
-
}
|
|
30
|
-
else if (typeof value === 'object' && value !== null) {
|
|
31
|
-
masked[key] = this.mask(value, maskConfig);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
masked[key] = this.maskValue(value, maskConfig);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return masked;
|
|
38
|
-
}
|
|
39
|
-
static shouldMaskField(fieldName, config) {
|
|
40
|
-
const lowerFieldName = fieldName.toLowerCase();
|
|
41
|
-
if (config.customFields?.includes(fieldName)) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
return this.PASSWORD_FIELDS.some(field => lowerFieldName.includes(field));
|
|
45
|
-
}
|
|
46
|
-
static maskValue(value, config) {
|
|
47
|
-
if (typeof value !== 'string') {
|
|
48
|
-
return value;
|
|
49
|
-
}
|
|
50
|
-
let masked = value;
|
|
51
|
-
if (config.email) {
|
|
52
|
-
masked = masked.replace(this.EMAIL_REGEX, match => {
|
|
53
|
-
const [username, domain] = match.split('@');
|
|
54
|
-
const maskedUsername = username.charAt(0) +
|
|
55
|
-
'*'.repeat(username.length - 2) +
|
|
56
|
-
username.charAt(username.length - 1);
|
|
57
|
-
return `${maskedUsername}@${domain}`;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
if (config.phone) {
|
|
61
|
-
masked = masked.replace(this.PHONE_REGEX, '***-***-****');
|
|
62
|
-
}
|
|
63
|
-
if (config.creditCard) {
|
|
64
|
-
masked = masked.replace(this.CREDIT_CARD_REGEX, match => {
|
|
65
|
-
return '*'.repeat(match.length - 4) + match.slice(-4);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
if (config.token) {
|
|
69
|
-
masked = masked.replace(this.TOKEN_REGEX, match => {
|
|
70
|
-
return match.substring(0, 8) + '*'.repeat(match.length - 8);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
return masked;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.DataMasking = DataMasking;
|
|
77
|
-
//# sourceMappingURL=data-masking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-masking.js","sourceRoot":"","sources":["../../../../src/helpers/logger/http/data-masking.ts"],"names":[],"mappings":"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"}
|