UNPKG

dataveil

Version:

A robust TypeScript library for masking sensitive data including card numbers, emails, passwords, phone numbers, and more.

28 lines (27 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.maskUUID = maskUUID; function maskUUID(uuid, options) { if (options === void 0) { options = {}; } if (!uuid || typeof uuid !== 'string') { throw new Error('UUID must be a non-empty string'); } var uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; if (!uuidRegex.test(uuid)) { throw new Error('Invalid UUID format'); } var _a = options.maskChar, maskChar = _a === void 0 ? "*" : _a, _b = options.unmaskedStartDigits, unmaskedStartDigits = _b === void 0 ? 4 : _b, _c = options.unmaskedEndDigits, unmaskedEndDigits = _c === void 0 ? 4 : _c; if (!maskChar || maskChar.length !== 1) { throw new Error('Mask character must be a single character'); } if (unmaskedStartDigits < 0 || unmaskedEndDigits < 0) { throw new Error('Unmasked digits cannot be negative'); } if (unmaskedStartDigits + unmaskedEndDigits >= uuid.length) { return uuid; } var start = uuid.slice(0, unmaskedStartDigits); var end = uuid.slice(-unmaskedEndDigits); var masked = maskChar.repeat(uuid.length - start.length - end.length); return start + masked + end; }