# @kevit/mask

> Masking helpers for Sensitive data

Latest version **1.0.5** (published 2025-05-09) · GPL-3 license · 0 weekly downloads

## Install

```sh
npm install @kevit/mask
pnpm add @kevit/mask
yarn add @kevit/mask
bun add @kevit/mask
```

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2025-05-09 |
| First published | 2023-02-22 |
| Weekly downloads | 0 |
| License | GPL-3 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 52.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Darshit Mehta |
| Maintainers | dkbhadeshiya, harpalsinh.gohil, parth.kevit, darshit.mehta |
| Keywords | data-mask, mask, masking |

## Links

- npm: https://www.npmjs.com/package/@kevit/mask
- Repository: https://github.com/kevit-io/mask
- Homepage: https://github.com/kevit-io/mask#readme
- Issues: https://github.com/kevit-io/mask/issues
- npm.io page: https://npm.io/package/@kevit/mask

## Recent versions

- 1.0.5 (latest) — 2025-05-09
- 1.0.4 — 2024-10-28
- 1.0.3 — 2023-04-04
- 1.0.2 — 2023-03-22
- 1.0.1 — 2023-03-22
- 1.0.0 — 2023-02-22

## README

@kevit/mask
-----------

## Description
This is a small utility that helps mask sensitive information from logs, databases, or practically anywhere.

It exposes a simple function that accepts JSON or string-type data and replaces sensitive data with masked data.

This can be used inside various hooks such as Mongoose hooks, Express middlewares, in the frontend before rendering data, or before sending data back to the backend.

## Usage
### Example with JSON data:
```ts
const data = {
    "name": "John Doe",
    "email": "abc@xyc.com",
    "mobile": "9833316908",
    "aadhar": "123456789012",
    "dob": "01/01/1990",
    "pancard": "ABBPG6789L",
    "passportNumber": "A2190457",
    "pincode": "360001",
    "ssn": "123-45-6789",
    "creditCard": "1234-5678-9876-5432",
    "driversLicense": "A1234567",
    "bankAccount": "1234567890123456",
    "iban": "GB82WEST12345698765432",
    "tin": "987-65-4321",
    "healthInsuranceNumber": "H123456789",
    "employeeId": "EMP12345",
    "ipAddress": "192.168.1.1",
    "url": "https://example.com?token=abc123",
    "macAddress": "00:1A:2B:3C:4D:5E",
    "geoCoordinates": "37.7749,-122.4194",
    "username": "johndoe",
    "socialMediaHandle": "@johndoe",
    "filePath": "/home/user/documents/file.txt",
    "timestamp": "2025-05-09T14:30:00Z"
};

const result = getUpdateLogData(data);
console.log(result);

/* Output
{
  name: 'John Doe',
  email: 'XXXXXX@XXX.XX',
  mobile: '9833XXXX08',
  aadhar: 'XXXXXXXX9012',
  dob: 'XX/XX/XXXX',
  pancard: 'AXXXXXXXXL',
  passportNumber: 'A2XXX57',
  pincode: '3XXX1',
  ssn: 'XXX-XX-XXXX',
  creditCard: '1234-XXXX-XXXX-5432',
  driversLicense: 'AXXXXXXX',
  bankAccount: '123XXXXXXXXX3456',
  iban: 'GB82XXXXXXXXXXXXXX65432',
  tin: 'XXX-XX-XXXX',
  healthInsuranceNumber: 'HXXXXXXXXX',
  employeeId: 'EMPXXXXX',
  ipAddress: '192.***.***.1',
  url: 'https://example.com?token=***',
  macAddress: '00:1A:2B:3C:4D:XX',
  geoCoordinates: '37.****,-122.****',
  username: 'j*******e',
  socialMediaHandle: '@******',
  filePath: '/***/documents/***.txt',
  timestamp: '2025-05-09T**:**:**Z'
}
*/
```

Example with String Data: 
```ts
import { getUpdateLogData } from '@kevit/mask';
const data = `This is a multi-line string containing the following values:
    name: John Doe  
    email: abc@xyc.com
    mobile: 9833316908
    aadhar: 123456789012
    dob: 01/01/1990
    pancard: ABBPG6789L
    passportNumber: A2190457
    pincode: 360001
    ssn: 123-45-6789
    creditCard: 1234-5678-9876-5432
    driversLicense: A1234567
    bankAccount: 1234567890123456
    iban: GB82WEST12345698765432
    tin: 987-65-4321
    healthInsuranceNumber: H123456789
    employeeId: EMP12345
`

const result = getUpdateLogData(data);
console.log(result)

/**
 * Output:
 *  This is a multi-line string containing the following values:
 *  name: John Doe  
 *  email: XXXXXX@XXX.XX
 *  mobile: 9833XXXX08
 *  aadhar: XXXXXXXX9012
 *  dob: XX/XX/XXXX
 *  pancard: AXXXXXXX9L
 *  passportNumber: A2XXX57
 *  pincode: 3XXX1
 *  ssn: XXX-XX-XXXX
 *  creditCard: 1234-XXXX-XXXX-5432
 *  driversLicense: AXXXXXXX
 *  bankAccount: 123XXXXXXXXX3456
 *  iban: GB82XXXXXXXXXXXXXX65432
 *  tin: XXX-XX-XXXX
 *  healthInsuranceNumber: HXXXXXXXXX
 *  employeeId: EMPXXXXX
 */
```

## The functions we are providing ##

| Function Name | Description |
|---|---|
| updateMaskedAdharaCardNumber | This function will mask the Aadhaar card number details |
| updateMaskedDob | This function will mask the date of birth of the user |
| updateMaskedEmailId | This function will mask the email address of the user |
| updateMaskedMobileNumber | This function will mask the mobile number of the user |
| updateMaskedPanCard | This function will mask the PAN card number |
| updateMaskedPassportNumber | This function will mask the passport number of the user |
| updateMaskedPinCode | This function will mask the pin code of the user |
| updateMaskedSSN | This function will mask Social Security Numbers (SSN) |
| updateMaskedCreditCard | This function will mask Credit Card Numbers |
| updateMaskedDriversLicense | This function will mask Driver's License Numbers |
| updateMaskedBankAccount | This function will mask Bank Account Numbers |
| updateMaskedIBAN | This function will mask International Bank Account Numbers (IBAN) |
| updateMaskedTIN | This function will mask Tax Identification Numbers (TIN) |
| updateMaskedHealthInsuranceNumber | This function will mask Health Insurance Numbers |
| updateMaskedEmployeeID | This function will mask Employee IDs |
| updateMaskedIPAddress | This function will mask IP Addresses |
| updateMaskedURL | This function will mask URLs |
| updateMaskedMacAddress | This function will mask MAC Addresses |
| updateMaskedGeoCoordinates | This function will mask Geo Coordinates |
| updateMaskedUsername | This function will mask Usernames |
| updateMaskedSocialMediaHandle | This function will mask Social Media Handles |
| updateMaskedFilePath | This function will mask File Paths |
| updateMaskedTimestamp | This function will mask Timestamps |
| getUpdateLogData | This function will mask all the details of the user mentioned in the above table |

---
_Source: https://npm.io/package/@kevit/mask · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
