@creator.co/wapi 1.5.6 → 1.5.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/dist/package.json
CHANGED
|
@@ -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
|
|
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
|
-
:
|
|
93
|
+
: [];
|
|
78
94
|
//
|
|
79
95
|
this.setupBindings();
|
|
80
96
|
//
|
|
@@ -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
|
-
|
|
352
|
-
var _a;
|
|
353
|
-
//really false
|
|
354
|
-
if (!this.filterBlacklist || !this.filterBlacklist[0])
|
|
367
|
+
if (!value || !this.filterBlacklist.length)
|
|
355
368
|
return value;
|
|
356
|
-
|
|
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
|
|
359
|
-
|
|
360
|
-
|
|
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
|
-
|
|
384
|
+
value.forEach(function (v, index) { return push({ value: v, parent: value, key: index }); });
|
|
379
385
|
}
|
|
380
|
-
else if (typeof value
|
|
381
|
-
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Logger/Logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Logger/Logger.ts
CHANGED
|
@@ -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
|
|
75
|
+
* An array of strings representing a blacklist of filters
|
|
72
76
|
*/
|
|
73
|
-
private filterBlacklist:
|
|
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
|
-
:
|
|
110
|
+
: []
|
|
107
111
|
//
|
|
108
112
|
this.setupBindings()
|
|
109
113
|
//
|
|
@@ -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
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
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
|
-
|
|
312
|
-
} else if (typeof value
|
|
313
|
-
|
|
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
|
-
|
|
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
|
}
|