@creator.co/wapi 1.5.6 → 1.5.8

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.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,12 +16,10 @@ export declare enum LOG_LEVELS {
16
16
  * Configuration options for the logger.
17
17
  * @typedef {Object} LoggerConfig
18
18
  * @property {boolean | Array<string>} [sensitiveFilteringKeywords] - Specifies whether to filter sensitive keywords in log messages. Can be a boolean value or an array of strings.
19
- * @property {number} [sensitiveMaxKeys] - Maximum number of keys from an object that sensitive filtering will be applied to. Default value is 10; Increases here should be together with max size at node VM
20
19
  * @property {LOG_LEVELS | string} [logLevel] - The log level to use for logging. Can be one of the predefined log levels or a custom string value.
21
20
  */
22
21
  export type LoggerConfig = {
23
22
  sensitiveFilteringKeywords?: boolean | Array<string>;
24
- sensitiveMaxKeys?: number;
25
23
  logLevel?: LOG_LEVELS | string;
26
24
  };
27
25
  /**
@@ -39,7 +37,7 @@ export default class Logger {
39
37
  */
40
38
  private transactionID;
41
39
  /**
42
- * An array of strings representing a blacklist of filters, or false if no blacklist is set.
40
+ * An array of strings representing a blacklist of filters
43
41
  */
44
42
  private filterBlacklist;
45
43
  /**
@@ -156,4 +154,7 @@ export default class Logger {
156
154
  * @returns {string} - The value with sensitive information suppressed.
157
155
  */
158
156
  private suppressSensitiveInfo;
157
+ private suppressSensitiveInfoItem;
158
+ private suppressSensitiveString;
159
+ private suppressSensitiveObject;
159
160
  }
@@ -10,6 +10,22 @@ var __values = (this && this.__values) || function(o) {
10
10
  };
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
13
29
  Object.defineProperty(exports, "__esModule", { value: true });
14
30
  exports.LOG_LEVELS = void 0;
15
31
  var abind = require("abind");
@@ -74,7 +90,7 @@ var Logger = /** @class */ (function () {
74
90
  ? Array.isArray(this.config.sensitiveFilteringKeywords)
75
91
  ? this.config.sensitiveFilteringKeywords
76
92
  : blacklist
77
- : false;
93
+ : [];
78
94
  //
79
95
  this.setupBindings();
80
96
  //
@@ -280,8 +296,8 @@ var Logger = /** @class */ (function () {
280
296
  for (var args_1 = __values(args), args_1_1 = args_1.next(); !args_1_1.done; args_1_1 = args_1.next()) {
281
297
  var arg = args_1_1.value;
282
298
  // Deep clone object so we dont modify source
283
- var fMsg = typeof arg === 'object' && !(arg instanceof Error) && arg
284
- ? stringify(this.suppressSensitiveInfo(JSON.parse(JSON.stringify(arg))), null, 2)
299
+ var fMsg = typeof arg === 'object' && arg
300
+ ? stringify(this.suppressSensitiveInfo(JSON.parse(stringify(arg))), null, 2)
285
301
  : this.suppressSensitiveInfo(arg);
286
302
  msg.push(fMsg);
287
303
  }
@@ -348,53 +364,59 @@ var Logger = /** @class */ (function () {
348
364
  * @returns {string} - The value with sensitive information suppressed.
349
365
  */
350
366
  Logger.prototype.suppressSensitiveInfo = function (value) {
351
- var _this = this;
352
- var _a;
353
- //really false
354
- if (!this.filterBlacklist || !this.filterBlacklist[0])
367
+ if (!value || !this.filterBlacklist.length)
355
368
  return value;
356
- // null object?
369
+ var parent = [value];
370
+ var stack = [{ value: value, parent: parent, key: 0 }];
371
+ while (stack.length > 0) {
372
+ this.suppressSensitiveInfoItem(stack.pop(), stack.push.bind(stack));
373
+ }
374
+ return parent[0];
375
+ };
376
+ Logger.prototype.suppressSensitiveInfoItem = function (_a, push) {
377
+ var value = _a.value, parent = _a.parent, key = _a.key;
357
378
  if (!value)
358
- return value;
359
- // continue handling for each type
360
- if (typeof value == 'string') {
361
- // Try to parse json string
362
- try {
363
- return this.suppressSensitiveInfo(JSON.parse(value));
364
- }
365
- catch (_b) {
366
- /* No handling */
367
- }
368
- //content based replacement
369
- this.filterBlacklist.forEach(function (f) {
370
- var _a;
371
- var match = value.toLowerCase().includes(f);
372
- if (match)
373
- value = "**SUPPRESSED_SENSITIVE_DATA** (".concat(((_a = String(value)) === null || _a === void 0 ? void 0 : _a.length) || 0, " len)");
374
- });
375
- return value;
379
+ return;
380
+ if (typeof value === 'string') {
381
+ this.suppressSensitiveString({ value: value, parent: parent, key: key }, push);
376
382
  }
377
383
  else if (Array.isArray(value)) {
378
- return value.map(function (v) { return _this.suppressSensitiveInfo(v); });
384
+ value.forEach(function (v, index) { return push({ value: v, parent: value, key: index }); });
379
385
  }
380
- else if (typeof value == 'object') {
381
- // avoid supressing long objects and causing stack overflow
382
- if (Object.keys(value).length >= (((_a = this.config) === null || _a === void 0 ? void 0 : _a.sensitiveMaxKeys) || 10))
383
- return value;
384
- // key based replacement
385
- Object.keys(value).forEach(function (elt) {
386
- var _a;
387
- // do not match sensitive keys with null vals
388
- var match = value[elt] && _this.filterBlacklist.find(function (f) { return elt.toLowerCase().includes(f); });
389
- if (match) {
390
- value[elt] = "**SUPPRESSED_SENSITIVE_DATA** (".concat(((_a = String(value[elt])) === null || _a === void 0 ? void 0 : _a.length) || 0, " len)");
391
- }
392
- else
393
- value[elt] = _this.suppressSensitiveInfo(value[elt]);
394
- });
395
- return value;
386
+ else if (typeof value === 'object') {
387
+ this.suppressSensitiveObject(value, push);
396
388
  }
397
- return value;
389
+ };
390
+ Logger.prototype.suppressSensitiveString = function (_a, push) {
391
+ var _b;
392
+ var value = _a.value, parent = _a.parent, key = _a.key;
393
+ var modifiedValue = value;
394
+ try {
395
+ // Try to parse json string
396
+ modifiedValue = JSON.parse(value);
397
+ push({ value: modifiedValue, parent: parent, key: key });
398
+ }
399
+ catch (_c) {
400
+ var lower_1 = value.toLowerCase();
401
+ if (this.filterBlacklist.some(function (f) { return lower_1.includes(f); }))
402
+ modifiedValue = "**SUPPRESSED_SENSITIVE_DATA** (".concat(((_b = String(modifiedValue)) === null || _b === void 0 ? void 0 : _b.length) || 0, " len)");
403
+ }
404
+ parent[key] = modifiedValue;
405
+ };
406
+ Logger.prototype.suppressSensitiveObject = function (value, push) {
407
+ var _this = this;
408
+ Object.entries(value).forEach(function (_a) {
409
+ var _b;
410
+ var _c = __read(_a, 2), k = _c[0], v = _c[1];
411
+ var lower = k.toLowerCase();
412
+ var match = v && _this.filterBlacklist.some(function (f) { return lower.includes(f); });
413
+ if (match) {
414
+ value[k] = "**SUPPRESSED_SENSITIVE_DATA** (".concat(((_b = String(v)) === null || _b === void 0 ? void 0 : _b.length) || 0, " len)");
415
+ }
416
+ else {
417
+ push({ value: v, parent: value, key: k });
418
+ }
419
+ });
398
420
  };
399
421
  return Logger;
400
422
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Logger/Logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,+CAAgD;AAChD,wCAAyC;AAEzC,uCAAiC;AAEjC;;;;;;;GAOG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AACD;;;;;;GAMG;AACH,IAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAC7E;;;GAGG;AACH,IAAM,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAEhE;;;;;GAKG;AACH,IAAM,SAAS,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,EAAE,EAAf,CAAe,CAAC,CAAA;AAe7E;;GAEG;AACH;IA4BE;;;;;OAKG;IACH,gBAAY,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,KAAK,CAAA;QACT,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,gCAAe,GAAtB;QACE,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,sBAAK,GAAL;QAAM,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACX,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACH,oBAAG,GAAH;QAAI,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACT,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,qBAAI,GAAJ;QAAK,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACV,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,wBAAO,GAAP;QAAQ,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACb,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,qBAAI,GAAJ;QAAK,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACV,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,sBAAK,GAAL;QAAM,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACX,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,0BAAS,GAAT,UAAU,SAAS;QAAE,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,6BAAO;;QAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACK,8BAAa,GAArB;QAAA,iBAYC;QAXC,MAAM,CAAC,OAAO,GAAG;YACf,KAAK,EAAE;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;YAAvC,CAAuC;YAC3D,GAAG,EAAE;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YAAtC,CAAsC;YACxD,IAAI,EAAE;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YAAtC,CAAsC;YACzD,IAAI,EAAE;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YAAtC,CAAsC;YACzD,KAAK,EAAE;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;YAAvC,CAAuC;YAC3D,6DAA6D;YAC7D,aAAa;YACb,OAAO,EAAE;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;YAAtC,CAAsC;YAC5D,SAAS,EAAE,UAAC,SAAS;gBAAE,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,6BAAO;;gBAAK,OAAA,KAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC;YAAhC,CAAgC;SACpE,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACK,6BAAY,GAApB,UAAqB,KAAiB,EAAE,GAAkB,EAAE,MAAc;QACxE,IAAI,eAAK,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO,UAAG,IAAI,CAAC,aAAa,CAAE,GAAG,YAAK,KAAK,CAAC,QAAQ,EAAE,gBAAM,MAAM,eAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAA;QACxF,CAAC;aAAM,CAAC;YACN,OAAO,WAAI,KAAK,CAAC,QAAQ,EAAE,gBAAM,MAAM,eAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAA;QAC7D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,2BAAU,GAAlB,UAAmB,KAAa;;QAC9B,IAAM,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,2BAAU,GAAlB,UAAmB,KAAiB,EAAE,IAAS;;QAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;YAAE,OAAM;QACnC,UAAU;QACV,IAAM,GAAG,GAAkB,EAAE,CAAA;;YAC7B,KAAkB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA,4CAAE,CAAC;gBAApB,IAAM,GAAG,iBAAA;gBACZ,6CAA6C;gBAC7C,IAAM,IAAI,GACR,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,GAAG;oBACvD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjF,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;gBACrC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChB,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;IAED;;;;;OAKG;IACK,2BAAU,GAAlB,UAAmB,SAAgB;;QAAE,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,6BAAO;;QAC1C,gBAAgB;QAChB,IAAM,GAAG,GAAkB,EAAE,CAAA;QAC7B,iBAAiB;QACjB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;;YACrC,UAAU;YACV,KAAkB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA;gBAAjB,IAAM,GAAG,iBAAA;gBAAU,IAAI,GAAG,IAAI,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAAA;;;;;;;;;QAC3D,IAAI,SAAS,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,CAAC,kCAAkC;QACjF,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,wBAAO,GAAf,UAAgB,KAAiB,EAAE,IAAY;QAC7C,oBAAoB,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,CAAC;IAED;;;;OAIG;IACK,sCAAqB,GAA7B,UAA8B,KAAU;QAAxC,iBAoCC;;QAnCC,cAAc;QACd,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QACnE,eAAe;QACf,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,kCAAkC;QAClC,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,2BAA2B;YAC3B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;YACtD,CAAC;YAAC,WAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;YACD,2BAA2B;YAC3B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAA,CAAC;;gBAC5B,IAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,KAAK;oBAAE,KAAK,GAAG,yCAAkC,CAAA,MAAA,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,KAAI,CAAC,UAAO,CAAA;YACxF,CAAC,CAAC,CAAA;YACF,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAA;QACtD,CAAC;aAAM,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;YACpC,2DAA2D;YAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,gBAAgB,KAAI,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAA;YACpF,wBAAwB;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;;gBAC5B,6CAA6C;gBAC7C,IAAM,KAAK,GACT,KAAK,CAAC,GAAG,CAAC,IAAK,KAAI,CAAC,eAA4B,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAA;gBAC3F,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,GAAG,CAAC,GAAG,yCAAkC,CAAA,MAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,0CAAE,MAAM,KAAI,CAAC,UAAO,CAAA;gBACvF,CAAC;;oBAAM,KAAK,CAAC,GAAG,CAAC,GAAG,KAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5D,CAAC,CAAC,CAAA;YACF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACH,aAAC;AAAD,CAAC,AA7QD,IA6QC"}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Logger/Logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creator.co/wapi",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,15 +44,19 @@ const blacklist = ['password', 'token', 'accounts'].map(s => s.toLowerCase())
44
44
  * Configuration options for the logger.
45
45
  * @typedef {Object} LoggerConfig
46
46
  * @property {boolean | Array<string>} [sensitiveFilteringKeywords] - Specifies whether to filter sensitive keywords in log messages. Can be a boolean value or an array of strings.
47
- * @property {number} [sensitiveMaxKeys] - Maximum number of keys from an object that sensitive filtering will be applied to. Default value is 10; Increases here should be together with max size at node VM
48
47
  * @property {LOG_LEVELS | string} [logLevel] - The log level to use for logging. Can be one of the predefined log levels or a custom string value.
49
48
  */
50
49
  export type LoggerConfig = {
51
50
  sensitiveFilteringKeywords?: boolean | Array<string>
52
- sensitiveMaxKeys?: number
53
51
  logLevel?: LOG_LEVELS | string
54
52
  }
55
53
 
54
+ type SupressableItem = {
55
+ value: any
56
+ parent: any
57
+ key: string | number
58
+ }
59
+
56
60
  /**
57
61
  * Logger class for logging messages with different log levels.
58
62
  */
@@ -68,9 +72,9 @@ export default class Logger {
68
72
  */
69
73
  private transactionID: string
70
74
  /**
71
- * An array of strings representing a blacklist of filters, or false if no blacklist is set.
75
+ * An array of strings representing a blacklist of filters
72
76
  */
73
- private filterBlacklist: Array<string> | false
77
+ private filterBlacklist: string[]
74
78
  /**
75
79
  * The current log level for the application.
76
80
  * @private
@@ -103,7 +107,7 @@ export default class Logger {
103
107
  ? Array.isArray(this.config.sensitiveFilteringKeywords)
104
108
  ? this.config.sensitiveFilteringKeywords
105
109
  : blacklist
106
- : false
110
+ : []
107
111
  //
108
112
  this.setupBindings()
109
113
  //
@@ -245,8 +249,8 @@ export default class Logger {
245
249
  for (const arg of args) {
246
250
  // Deep clone object so we dont modify source
247
251
  const fMsg =
248
- typeof arg === 'object' && !(arg instanceof Error) && arg
249
- ? stringify(this.suppressSensitiveInfo(JSON.parse(JSON.stringify(arg))), null, 2)
252
+ typeof arg === 'object' && arg
253
+ ? stringify(this.suppressSensitiveInfo(JSON.parse(stringify(arg))), null, 2)
250
254
  : this.suppressSensitiveInfo(arg)
251
255
  msg.push(fMsg)
252
256
  }
@@ -289,40 +293,59 @@ export default class Logger {
289
293
  * @returns {string} - The value with sensitive information suppressed.
290
294
  */
291
295
  private suppressSensitiveInfo(value: any): string | any[] {
292
- //really false
293
- if (!this.filterBlacklist || !this.filterBlacklist[0]) return value
294
- // null object?
295
- if (!value) return value
296
- // continue handling for each type
297
- if (typeof value == 'string') {
298
- // Try to parse json string
299
- try {
300
- return this.suppressSensitiveInfo(JSON.parse(value))
301
- } catch {
302
- /* No handling */
303
- }
304
- //content based replacement
305
- this.filterBlacklist.forEach(f => {
306
- const match = value.toLowerCase().includes(f)
307
- if (match) value = `**SUPPRESSED_SENSITIVE_DATA** (${String(value)?.length || 0} len)`
308
- })
309
- return value
296
+ if (!value || !this.filterBlacklist.length) return value
297
+
298
+ const parent = [value]
299
+ const stack: SupressableItem[] = [{ value, parent, key: 0 }]
300
+
301
+ while (stack.length > 0) {
302
+ this.suppressSensitiveInfoItem(stack.pop()!, stack.push.bind(stack))
303
+ }
304
+
305
+ return parent[0]
306
+ }
307
+
308
+ private suppressSensitiveInfoItem(
309
+ { value, parent, key }: SupressableItem,
310
+ push: (e: SupressableItem) => void
311
+ ) {
312
+ if (!value) return
313
+
314
+ if (typeof value === 'string') {
315
+ this.suppressSensitiveString({ value, parent, key }, push)
310
316
  } else if (Array.isArray(value)) {
311
- return value.map(v => this.suppressSensitiveInfo(v))
312
- } else if (typeof value == 'object') {
313
- // avoid supressing long objects and causing stack overflow
314
- if (Object.keys(value).length >= (this.config?.sensitiveMaxKeys || 10)) return value
315
- // key based replacement
316
- Object.keys(value).forEach(elt => {
317
- // do not match sensitive keys with null vals
318
- const match =
319
- value[elt] && (this.filterBlacklist as string[]).find(f => elt.toLowerCase().includes(f))
320
- if (match) {
321
- value[elt] = `**SUPPRESSED_SENSITIVE_DATA** (${String(value[elt])?.length || 0} len)`
322
- } else value[elt] = this.suppressSensitiveInfo(value[elt])
323
- })
324
- return value
317
+ value.forEach((v, index) => push({ value: v, parent: value, key: index }))
318
+ } else if (typeof value === 'object') {
319
+ this.suppressSensitiveObject(value, push)
325
320
  }
326
- return value
321
+ }
322
+
323
+ private suppressSensitiveString(
324
+ { value, parent, key }: SupressableItem,
325
+ push: (e: SupressableItem) => void
326
+ ) {
327
+ let modifiedValue = value
328
+ try {
329
+ // Try to parse json string
330
+ modifiedValue = JSON.parse(value)
331
+ push({ value: modifiedValue, parent, key })
332
+ } catch {
333
+ const lower = value.toLowerCase()
334
+ if (this.filterBlacklist.some(f => lower.includes(f)))
335
+ modifiedValue = `**SUPPRESSED_SENSITIVE_DATA** (${String(modifiedValue)?.length || 0} len)`
336
+ }
337
+ parent[key] = modifiedValue
338
+ }
339
+
340
+ private suppressSensitiveObject(value: object, push: (e: SupressableItem) => void) {
341
+ Object.entries(value).forEach(([k, v]) => {
342
+ const lower = k.toLowerCase()
343
+ const match = v && this.filterBlacklist.some(f => lower.includes(f))
344
+ if (match) {
345
+ value[k] = `**SUPPRESSED_SENSITIVE_DATA** (${String(v)?.length || 0} len)`
346
+ } else {
347
+ push({ value: v, parent: value, key: k })
348
+ }
349
+ })
327
350
  }
328
351
  }
@@ -150,6 +150,28 @@ function testLogs(isContainer: boolean, provider?: Logger) {
150
150
  )
151
151
  })
152
152
 
153
+ test(`${type} - ${loggerType} Log - Circular reference (Error)`, async () => {
154
+ setContainerFlag(isContainer)
155
+ class SelfRefError extends Error {
156
+ self: SelfRefError
157
+ constructor() {
158
+ super()
159
+ this.self = this
160
+ }
161
+ }
162
+ localProvider.log(new SelfRefError())
163
+ expect(consoleProxy.log).toHaveBeenNthCalledWith(
164
+ 1,
165
+ expect.stringContaining((isContainer ? `${transactionID} ` : '') + '[INFO] [Logger.test.ts:')
166
+ )
167
+ expect(consoleProxy.log).toHaveBeenNthCalledWith(
168
+ 1,
169
+ expect.stringContaining(
170
+ '[INFO] [Logger.test.ts:199] {\n' + ' "self": "[Circular ~]"\n' + '}'
171
+ )
172
+ )
173
+ })
174
+
153
175
  for (const logType of ['log', 'debug', 'info', 'warn', 'warning', 'error', 'exception']) {
154
176
  test(`${type} - ${loggerType} ${logType}`, async () => {
155
177
  setContainerFlag(isContainer)
@@ -179,7 +201,6 @@ describe('Logger', () => {
179
201
  {
180
202
  logLevel: 'DEBUG',
181
203
  sensitiveFilteringKeywords: true,
182
- sensitiveMaxKeys: 100,
183
204
  },
184
205
  transactionID
185
206
  )