UNPKG

@multiplayer-app/otlp-core

Version:

Multiplayer otlp core

135 lines 2.99 kB
import { MASK_PLACEHOLDER } from '../constants.base'; var MAX_DEPTH = 8; export var sensitiveFields = [ 'password', 'pass', 'passwd', 'pwd', 'token', 'access_token', 'accessToken', 'refresh_token', 'refreshToken', 'secret', 'api_key', 'apiKey', 'authorization', 'auth_token', 'authToken', 'jwt', 'session_id', 'sessionId', 'sessionToken', 'client_secret', 'clientSecret', 'private_key', 'privateKey', 'public_key', 'publicKey', 'key', 'encryption_key', 'encryptionKey', 'credit_card', 'creditCard', 'card_number', 'cardNumber', 'cvv', 'cvc', 'ssn', 'sin', 'pin', 'security_code', 'securityCode', 'bank_account', 'bankAccount', 'iban', 'swift', 'bic', 'routing_number', 'routingNumber', 'license_key', 'licenseKey', 'otp', 'mfa_code', 'mfaCode', 'phone_number', 'phoneNumber', 'email', 'address', 'dob', 'tax_id', 'taxId', 'passport_number', 'passportNumber', 'driver_license', 'driverLicense', ]; var maskAll = function (value, depth) { if (depth === void 0) { depth = 0; } var type = typeof value; var isObject = type === 'object'; var isArray = false; if (Array.isArray(value)) { isArray = true; } if (depth > MAX_DEPTH && (isObject || isArray)) { return undefined; } if (isArray) { return value.map(function (val) { return maskAll(val, depth + 1); }, value); } if (isObject) { for (var key in value) { value[key] = maskAll(value[key], depth + 1); } return value; } if (type === 'string') { return MASK_PLACEHOLDER; } return value; }; var maskSelected = function (value, keysToMask) { var type = typeof value; var isObject = type === 'object'; if (Array.isArray(value)) { return value.map(function (val) { return maskSelected(val, keysToMask); }, value); } if (isObject) { for (var key in value) { if (key in keysToMask) { value[key] = MASK_PLACEHOLDER; } else { value[key] = maskSelected(value[key], keysToMask); } } return value; } if (type === 'string') { return value; } return value; }; export default (function (value, keysToMask) { if (keysToMask === void 0) { keysToMask = []; } var payloadJson; try { payloadJson = JSON.parse(value); } catch (_a) { payloadJson = value; } var maskedData; if (keysToMask.length) { maskedData = maskSelected(payloadJson, keysToMask); } else { maskedData = maskAll(payloadJson); } if (typeof maskedData !== 'string') { maskedData = JSON.stringify(maskedData); } return maskedData; }); //# sourceMappingURL=mask.js.map