@creator.co/wapi 1.8.3 → 1.8.4
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/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/dist/src/Logger/Logger.js +18 -7
- package/dist/src/Logger/Logger.js.map +1 -1
- package/dist/src/Util/Utils.d.ts +6 -0
- package/dist/src/Util/Utils.js +11 -0
- package/dist/src/Util/Utils.js.map +1 -1
- package/package.json +1 -1
- package/src/Logger/Logger.ts +25 -5
- package/src/Util/Utils.ts +12 -0
- package/tests/Logger/Logger.test.ts +52 -11
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@creator.co/wapi",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@creator.co/wapi",
|
|
9
|
-
"version": "1.8.
|
|
9
|
+
"version": "1.8.4",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-dynamodb": "^3.651.1",
|
package/dist/package.json
CHANGED
|
@@ -36,7 +36,7 @@ const DEFAULT_LOG_FUNCTION = PURE_CONSOLE.log.bind(PURE_CONSOLE);
|
|
|
36
36
|
* @type {string[]} blacklist - An array of strings to be converted to lowercase and used as a blacklist.
|
|
37
37
|
* @returns {string[]} - An array of lowercase strings representing the blacklist.
|
|
38
38
|
*/
|
|
39
|
-
const blacklist = ['password', 'token', 'accounts'].map(s => s.toLowerCase());
|
|
39
|
+
const blacklist = ['password', 'token', 'accounts', 'authorization', 'key'].map(s => s.toLowerCase());
|
|
40
40
|
/**
|
|
41
41
|
* Logger class for logging messages with different log levels.
|
|
42
42
|
*/
|
|
@@ -291,14 +291,25 @@ export default class Logger {
|
|
|
291
291
|
}
|
|
292
292
|
suppressSensitiveObject(value, push) {
|
|
293
293
|
Object.entries(value).forEach(([k, v]) => {
|
|
294
|
-
var _a;
|
|
295
294
|
const lower = k.toLowerCase();
|
|
296
|
-
|
|
297
|
-
if (match) {
|
|
298
|
-
value[k] = `**SUPPRESSED_SENSITIVE_DATA** (${((_a = String(v)) === null || _a === void 0 ? void 0 : _a.length) || 0} len)`;
|
|
299
|
-
}
|
|
300
|
-
else {
|
|
295
|
+
if (!v || !this.filterBlacklist.includes(lower)) {
|
|
301
296
|
push({ value: v, parent: value, key: k });
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
switch (lower) {
|
|
300
|
+
case 'password':
|
|
301
|
+
value[k] = '[MASKED]';
|
|
302
|
+
break;
|
|
303
|
+
case 'authorization':
|
|
304
|
+
value[k] = `Bearer [HASHED: ${Utils.hashValue(v)}]`;
|
|
305
|
+
break;
|
|
306
|
+
case 'token':
|
|
307
|
+
case 'key':
|
|
308
|
+
;
|
|
309
|
+
value[k] = `[HASHED: ${Utils.hashValue(v)}]`;
|
|
310
|
+
break;
|
|
311
|
+
default:
|
|
312
|
+
value[k] = `**SUPPRESSED_SENSITIVE_DATA** (${String(v).length} len)`;
|
|
302
313
|
}
|
|
303
314
|
});
|
|
304
315
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Logger/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,SAAS,MAAM,qBAAqB,CAAA;AAC3C,OAAO,UAAU,MAAM,aAAa,CAAA;AAEpC,OAAO,KAAK,MAAM,kBAAkB,CAAA;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AACD;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAC7E;;;GAGG;AACH,MAAM,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Logger/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,SAAS,MAAM,qBAAqB,CAAA;AAC3C,OAAO,UAAU,MAAM,aAAa,CAAA;AAEpC,OAAO,KAAK,MAAM,kBAAkB,CAAA;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AACD;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAC7E;;;GAGG;AACH,MAAM,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClF,CAAC,CAAC,WAAW,EAAE,CAChB,CAAA;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IA4BzB;;;;;OAKG;IACH,YAAY,MAAgC,EAAE,aAAqB;QACjE,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,EAAE;QACF,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ;YAChC,CAAC,CAAC,UAAU,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,KAAK;YAClD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B;YAC3D,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B;gBACxC,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,EAAE,CAAA;QACN,EAAE;QACF,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,EAAE;QACF,IAAI,CAAC,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACI,eAAe;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,GAAG,IAAI;QAClB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAG,IAAI;QAChB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,GAAG,IAAI;QACjB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,GAAG,IAAI;QACpB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,GAAG,IAAI;QACjB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,GAAG,IAAI;QAClB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,SAA0B,EAAE,GAAG,IAAW;QACzD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACK,aAAa;QACnB,MAAM,CAAC,OAAO,GAAG;YACf,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;YAC3D,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YACxD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YACzD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YACzD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;YAC3D,6DAA6D;YAC7D,aAAa;YACb,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YAC5D,SAAS,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC;SACpE,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,KAAiB,EAAE,GAAkB,EAAE,MAAc;QACxE,IAAI,KAAK,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,KAAK,CAAC,QAAQ,EAAE,MAAM,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QACxF,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QAC7D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,KAAa;;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QAC1D,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,IAAI,UAAU,GAAG,MAAA,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,EAAE,0CAAG,SAAS,CAAC,0CAAE,WAAW,EAAE,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAA;YAC1E,UAAU,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC,KAAK,CAAC,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAA;YACrE,OAAO,UAAU,GAAG,GAAG,IAAG,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,EAAE,0CAAG,SAAS,CAAC,0CAAE,aAAa,EAAE,CAAA,CAAA;QAC3E,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,KAAiB,EAAE,IAAS;QAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;YAAE,OAAM;QACnC,UAAU;QACV,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,6CAA6C;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YACrC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC;QACD,sBAAsB;QACtB,4BAA4B;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,CAAC;IAEO,cAAc,CAAC,GAAQ;QAC7B,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAA;QACvC,CAAC;QAED,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACnF,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,SAA0B,EAAE,GAAG,IAAW;QAC3D,gBAAgB;QAChB,MAAM,GAAG,GAAkB,EAAE,CAAA;QAC7B,iBAAiB;QACjB,IAAI,SAAS,YAAY,KAAK,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;YACrC,UAAU;YACV,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,IAAI,GAAG,IAAI,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC3D,IAAI,SAAS,CAAC,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,CAAC,kCAAkC;QACnF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;YACnC,UAAU;YACV,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,IAAI,GAAG,IAAI,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7D,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9F,CAAC;IAED;;;;;OAKG;IACK,OAAO,CAAC,KAAiB,EAAE,IAAY;QAC7C,oBAAoB,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,KAAU;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAExD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,MAAM,KAAK,GAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAE5D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,EAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;IAEO,yBAAyB,CAC/B,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAmB,EACvC,IAAkC;QAElC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;QAC5D,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC5E,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAEO,uBAAuB,CAC7B,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAmB,EACvC,IAAkC;;QAElC,IAAI,aAAa,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC;YACH,2BAA2B;YAC3B,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7C,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;YACjC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC5C,aAAa,GAAG,kCAAkC,CAAA,MAAA,MAAM,CAAC,aAAa,CAAC,0CAAE,MAAM,KAAI,CAAC,OAAO,CAAA;QAC/F,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAA;IAC7B,CAAC;IAEO,uBAAuB,CAAC,KAAa,EAAE,IAAkC;QAC/E,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;YAE7B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBACzC,OAAM;YACR,CAAC;YAED,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,UAAU;oBACb,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;oBACrB,MAAK;gBAEP,KAAK,eAAe;oBAClB,KAAK,CAAC,CAAC,CAAC,GAAG,mBAAmB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;oBACnD,MAAK;gBAEP,KAAK,OAAO,CAAC;gBACb,KAAK,KAAK;oBACR,CAAC;oBAAC,KAAa,CAAC,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;oBACtD,MAAK;gBAEP;oBACE,KAAK,CAAC,CAAC,CAAC,GAAG,kCAAkC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAA;YACxE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/dist/src/Util/Utils.d.ts
CHANGED
|
@@ -58,4 +58,10 @@ export default class Utils {
|
|
|
58
58
|
* @returns {any} The unmarshalled JavaScript object.
|
|
59
59
|
*/
|
|
60
60
|
static ddbUnmarshall(item: any): any;
|
|
61
|
+
/**
|
|
62
|
+
* helper that hashes values using SHA-256.
|
|
63
|
+
* @param {unknown} raw - The raw item for conversion.
|
|
64
|
+
* @returns {string} The hashed string.
|
|
65
|
+
*/
|
|
66
|
+
static hashValue(raw: unknown): string;
|
|
61
67
|
}
|
package/dist/src/Util/Utils.js
CHANGED
|
@@ -8,7 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import child_process from 'child_process';
|
|
11
|
+
import { createHash } from 'crypto';
|
|
11
12
|
import { convertToAttr, marshall, unmarshall } from '@aws-sdk/util-dynamodb';
|
|
13
|
+
import stringify from 'json-stringify-safe';
|
|
12
14
|
/**
|
|
13
15
|
* Utility class containing various static methods for common operations.
|
|
14
16
|
*/
|
|
@@ -143,5 +145,14 @@ export default class Utils {
|
|
|
143
145
|
}
|
|
144
146
|
return item;
|
|
145
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* helper that hashes values using SHA-256.
|
|
150
|
+
* @param {unknown} raw - The raw item for conversion.
|
|
151
|
+
* @returns {string} The hashed string.
|
|
152
|
+
*/
|
|
153
|
+
static hashValue(raw) {
|
|
154
|
+
const s = typeof raw === 'string' ? raw : stringify(raw);
|
|
155
|
+
return createHash('sha256').update(s).digest('hex');
|
|
156
|
+
}
|
|
146
157
|
}
|
|
147
158
|
//# sourceMappingURL=Utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/Util/Utils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,aAAa,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/Util/Utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Logger/Logger.ts
CHANGED
|
@@ -38,7 +38,9 @@ const DEFAULT_LOG_FUNCTION = PURE_CONSOLE.log.bind(PURE_CONSOLE)
|
|
|
38
38
|
* @type {string[]} blacklist - An array of strings to be converted to lowercase and used as a blacklist.
|
|
39
39
|
* @returns {string[]} - An array of lowercase strings representing the blacklist.
|
|
40
40
|
*/
|
|
41
|
-
const blacklist = ['password', 'token', 'accounts'].map(s =>
|
|
41
|
+
const blacklist = ['password', 'token', 'accounts', 'authorization', 'key'].map(s =>
|
|
42
|
+
s.toLowerCase()
|
|
43
|
+
)
|
|
42
44
|
|
|
43
45
|
/**
|
|
44
46
|
* Configuration options for the logger.
|
|
@@ -350,17 +352,35 @@ export default class Logger {
|
|
|
350
352
|
if (this.filterBlacklist.some(f => lower == f))
|
|
351
353
|
modifiedValue = `**SUPPRESSED_SENSITIVE_DATA** (${String(modifiedValue)?.length || 0} len)`
|
|
352
354
|
}
|
|
355
|
+
|
|
353
356
|
parent[key] = modifiedValue
|
|
354
357
|
}
|
|
355
358
|
|
|
356
359
|
private suppressSensitiveObject(value: object, push: (e: SupressableItem) => void) {
|
|
357
360
|
Object.entries(value).forEach(([k, v]) => {
|
|
358
361
|
const lower = k.toLowerCase()
|
|
359
|
-
|
|
360
|
-
if (
|
|
361
|
-
value[k] = `**SUPPRESSED_SENSITIVE_DATA** (${String(v)?.length || 0} len)`
|
|
362
|
-
} else {
|
|
362
|
+
|
|
363
|
+
if (!v || !this.filterBlacklist.includes(lower)) {
|
|
363
364
|
push({ value: v, parent: value, key: k })
|
|
365
|
+
return
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
switch (lower) {
|
|
369
|
+
case 'password':
|
|
370
|
+
value[k] = '[MASKED]'
|
|
371
|
+
break
|
|
372
|
+
|
|
373
|
+
case 'authorization':
|
|
374
|
+
value[k] = `Bearer [HASHED: ${Utils.hashValue(v)}]`
|
|
375
|
+
break
|
|
376
|
+
|
|
377
|
+
case 'token':
|
|
378
|
+
case 'key':
|
|
379
|
+
;(value as any)[k] = `[HASHED: ${Utils.hashValue(v)}]`
|
|
380
|
+
break
|
|
381
|
+
|
|
382
|
+
default:
|
|
383
|
+
value[k] = `**SUPPRESSED_SENSITIVE_DATA** (${String(v).length} len)`
|
|
364
384
|
}
|
|
365
385
|
})
|
|
366
386
|
}
|
package/src/Util/Utils.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import child_process from 'child_process'
|
|
2
|
+
import { createHash } from 'crypto'
|
|
2
3
|
|
|
3
4
|
import { convertToAttr, marshall, unmarshall } from '@aws-sdk/util-dynamodb'
|
|
5
|
+
import stringify from 'json-stringify-safe'
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Utility class containing various static methods for common operations.
|
|
@@ -129,4 +131,14 @@ export default class Utils {
|
|
|
129
131
|
}
|
|
130
132
|
return item
|
|
131
133
|
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* helper that hashes values using SHA-256.
|
|
137
|
+
* @param {unknown} raw - The raw item for conversion.
|
|
138
|
+
* @returns {string} The hashed string.
|
|
139
|
+
*/
|
|
140
|
+
public static hashValue(raw: unknown): string {
|
|
141
|
+
const s = typeof raw === 'string' ? raw : stringify(raw)
|
|
142
|
+
return createHash('sha256').update(s).digest('hex')
|
|
143
|
+
}
|
|
132
144
|
}
|
|
@@ -63,7 +63,7 @@ function testLogs(isContainer: boolean, provider?: Logger) {
|
|
|
63
63
|
)
|
|
64
64
|
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
65
65
|
1,
|
|
66
|
-
expect.stringContaining('] TEST {\n "password": "
|
|
66
|
+
expect.stringContaining('] TEST {\n "password": "[MASKED]"\n}')
|
|
67
67
|
)
|
|
68
68
|
// test if object is not mutate
|
|
69
69
|
c_expect(object.password).to.be.equals('123')
|
|
@@ -80,7 +80,7 @@ function testLogs(isContainer: boolean, provider?: Logger) {
|
|
|
80
80
|
expect(consoleProxy.log).toHaveBeenNthCalledWith(1, expect.stringContaining('] TEST'))
|
|
81
81
|
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
82
82
|
1,
|
|
83
|
-
expect.stringContaining('"password": "
|
|
83
|
+
expect.stringContaining('"password": "[MASKED]"')
|
|
84
84
|
)
|
|
85
85
|
})
|
|
86
86
|
|
|
@@ -93,9 +93,7 @@ function testLogs(isContainer: boolean, provider?: Logger) {
|
|
|
93
93
|
)
|
|
94
94
|
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
95
95
|
1,
|
|
96
|
-
expect.stringContaining(
|
|
97
|
-
'] {\n "object": {\n "password": "**SUPPRESSED_SENSITIVE_DATA** (3 len)"\n }\n}'
|
|
98
|
-
)
|
|
96
|
+
expect.stringContaining('] {\n "object": {\n "password": "[MASKED]"\n }\n}')
|
|
99
97
|
)
|
|
100
98
|
})
|
|
101
99
|
|
|
@@ -108,9 +106,7 @@ function testLogs(isContainer: boolean, provider?: Logger) {
|
|
|
108
106
|
)
|
|
109
107
|
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
110
108
|
1,
|
|
111
|
-
expect.stringContaining(
|
|
112
|
-
'] {\n "object": {\n "password": "**SUPPRESSED_SENSITIVE_DATA** (3 len)"\n }\n}'
|
|
113
|
-
)
|
|
109
|
+
expect.stringContaining('] {\n "object": {\n "password": "[MASKED]"\n }\n}')
|
|
114
110
|
)
|
|
115
111
|
})
|
|
116
112
|
|
|
@@ -146,12 +142,57 @@ function testLogs(isContainer: boolean, provider?: Logger) {
|
|
|
146
142
|
)
|
|
147
143
|
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
148
144
|
1,
|
|
149
|
-
expect.stringContaining(
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
expect.stringContaining('] TEST2 [\n {\n "password": "[MASKED]"\n }\n]')
|
|
146
|
+
)
|
|
147
|
+
})
|
|
148
|
+
test(`${type} - ${loggerType} Log - Suppress sensitive info (token)`, async () => {
|
|
149
|
+
setContainerFlag(isContainer)
|
|
150
|
+
localProvider.log({ token: 'abc123xyz' })
|
|
151
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
152
|
+
1,
|
|
153
|
+
expect.stringContaining((isContainer ? `${transactionID} ` : '') + '[INFO] [Logger.test.ts:')
|
|
154
|
+
)
|
|
155
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
156
|
+
1,
|
|
157
|
+
expect.stringContaining('"token": "[HASHED:')
|
|
158
|
+
)
|
|
159
|
+
})
|
|
160
|
+
|
|
161
|
+
test(`${type} - ${loggerType} Log - Suppress sensitive info (key)`, async () => {
|
|
162
|
+
setContainerFlag(isContainer)
|
|
163
|
+
localProvider.log({ key: 'secret-key-123' })
|
|
164
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
165
|
+
1,
|
|
166
|
+
expect.stringContaining((isContainer ? `${transactionID} ` : '') + '[INFO] [Logger.test.ts:')
|
|
152
167
|
)
|
|
168
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(1, expect.stringContaining('"key": "[HASHED:'))
|
|
153
169
|
})
|
|
154
170
|
|
|
171
|
+
test(`${type} - ${loggerType} Log - Suppress sensitive info (authorization)`, async () => {
|
|
172
|
+
setContainerFlag(isContainer)
|
|
173
|
+
localProvider.log({ authorization: 'Bearer token123' })
|
|
174
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
175
|
+
1,
|
|
176
|
+
expect.stringContaining((isContainer ? `${transactionID} ` : '') + '[INFO] [Logger.test.ts:')
|
|
177
|
+
)
|
|
178
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
179
|
+
1,
|
|
180
|
+
expect.stringContaining('"authorization": "Bearer [HASHED:')
|
|
181
|
+
)
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
test(`${type} - ${loggerType} Log - Suppress sensitive info (accounts)`, async () => {
|
|
185
|
+
setContainerFlag(isContainer)
|
|
186
|
+
localProvider.log({ accounts: 'account-data' })
|
|
187
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
188
|
+
1,
|
|
189
|
+
expect.stringContaining((isContainer ? `${transactionID} ` : '') + '[INFO] [Logger.test.ts:')
|
|
190
|
+
)
|
|
191
|
+
expect(consoleProxy.log).toHaveBeenNthCalledWith(
|
|
192
|
+
1,
|
|
193
|
+
expect.stringContaining('"accounts": "**SUPPRESSED_SENSITIVE_DATA** (12 len)"')
|
|
194
|
+
)
|
|
195
|
+
})
|
|
155
196
|
test(`${type} - ${loggerType} Log - Circular reference (Error)`, async () => {
|
|
156
197
|
setContainerFlag(isContainer)
|
|
157
198
|
class SelfRefError extends Error {
|