{"_id":"@alexiom/mask-data-lite","name":"@alexiom/mask-data-lite","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@alexiom/mask-data-lite","version":"1.0.0","description":"A lightweight JavaScript/TypeScript utility for masking and desensitizing sensitive data like phone numbers, emails, ID cards, and bank cards.","main":"src/index.js","types":"src/index.d.ts","scripts":{"test":"jest"},"keywords":["mask","privacy","sensitive-data","phone","email","id-card","bank-card","desensitize","data-masking","security","pii","javascript","typescript"],"author":{"name":"CPM Calculator","email":"https://cpm-calculator.io/"},"license":"ISC","devDependencies":{"jest":"^29.7.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js","types":"./src/index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/your-username/mask-data-lite.git"},"bugs":{"url":"https://github.com/your-username/mask-data-lite/issues"},"homepage":"https://github.com/your-username/mask-data-lite#readme","publishConfig":{"access":"public"},"_id":"@alexiom/mask-data-lite@1.0.0","_nodeVersion":"24.1.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-tcuRbN+FIhyG7MvZGJvUNyxioUWyDWm+dLojuWNGWpsufA0XTJoG7Y6eEL2FRl0Xau8GdrHadqxFqMijgbuDSg==","shasum":"37d12a0ce07330fc0ca9e876d5664ccaabde7339","tarball":"https://registry.npmjs.org/@alexiom/mask-data-lite/-/mask-data-lite-1.0.0.tgz","fileCount":5,"unpackedSize":20885,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHTYEf4DiMTCIhro232CpIk89kLzuLYs1cWG14UyEjnSAiBnr3RUgiii6/vbbS7ejinbjIXwXd7IQ9Rgs2zlSR5eGg=="}]},"_npmUser":{"name":"alexiom","email":"cby821555203@gmail.com"},"directories":{},"maintainers":[{"name":"alexiom","email":"cby821555203@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mask-data-lite_1.0.0_1769226356127_0.41675564228193807"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-24T03:45:55.976Z","1.0.0":"2026-01-24T03:45:56.262Z","modified":"2026-01-24T03:45:56.546Z"},"maintainers":[{"name":"alexiom","email":"cby821555203@gmail.com"}],"description":"A lightweight JavaScript/TypeScript utility for masking and desensitizing sensitive data like phone numbers, emails, ID cards, and bank cards.","homepage":"https://github.com/your-username/mask-data-lite#readme","keywords":["mask","privacy","sensitive-data","phone","email","id-card","bank-card","desensitize","data-masking","security","pii","javascript","typescript"],"repository":{"type":"git","url":"git+https://github.com/your-username/mask-data-lite.git"},"author":{"name":"CPM Calculator","email":"https://cpm-calculator.io/"},"bugs":{"url":"https://github.com/your-username/mask-data-lite/issues"},"license":"ISC","readme":"# mask-data-lite\n\nA lightweight JavaScript/TypeScript utility for masking and desensitizing sensitive data like phone numbers, emails, ID cards, and bank cards.\n\n## Features\n\n- **Phone Number Masking** - Mask phone numbers with customizable format\n- **Email Masking** - Mask email addresses while preserving domain\n- **ID Card Masking** - Mask Chinese ID card numbers\n- **Bank Card Masking** - Mask bank card numbers\n- **Auto-detection** - Automatically detect data type and apply appropriate masking\n- **Customizable** - Configure masking characters, prefix/suffix length\n- **TypeScript Support** - Full TypeScript type definitions included\n- **Zero Dependencies** - Lightweight with no external dependencies\n\n## Installation\n\n```bash\nnpm install mask-data-lite\n```\n\n## Usage\n\n### ES Modules\n\n```javascript\nimport { maskPhone, maskEmail, maskIdCard, maskBankCard, mask } from 'mask-data-lite';\n```\n\n### CommonJS\n\n```javascript\nconst { maskPhone, maskEmail, maskIdCard, maskBankCard, mask } = require('mask-data-lite');\n```\n\n## API\n\n### `maskPhone(phone, options?)`\n\nMask a phone number.\n\n```javascript\nmaskPhone('13812345678')\n// '138****5678'\n\nmaskPhone('13812345678', { keepStart: 3, keepEnd: 2 })\n// '138*****78'\n\nmaskPhone('13812345678', { maskChar: 'X' })\n// '138XXXX5678'\n```\n\nOptions:\n- `keepStart` (default: 3) - Number of digits to keep at the start\n- `keepEnd` (default: 4) - Number of digits to keep at the end\n- `maskChar` (default: '*') - Character to use for masking\n\n### `maskEmail(email, options?)`\n\nMask an email address.\n\n```javascript\nmaskEmail('alice@gmail.com')\n// 'a***@gmail.com'\n\nmaskEmail('bob@example.com', { keepStart: 2, keepEnd: 1 })\n// 'b**o@example.com'\n\nmaskEmail('charlie@domain.com', { maskDomain: true })\n// 'c***@***'\n```\n\nOptions:\n- `keepStart` (default: 1) - Number of characters to keep at the start of username\n- `keepEnd` (default: 0) - Number of characters to keep at the end of username\n- `maskChar` (default: '*') - Character to use for masking\n- `maskDomain` (default: false) - Whether to mask the domain part\n\n### `maskIdCard(idCard, options?)`\n\nMask an ID card number (Chinese format).\n\n```javascript\nmaskIdCard('110101199001011234')\n// '110***********1234'\n\nmaskIdCard('110101199001011234', { keepStart: 6, keepEnd: 4 })\n// '110101******1234'\n```\n\nOptions:\n- `keepStart` (default: 3) - Number of digits to keep at the start\n- `keepEnd` (default: 4) - Number of digits to keep at the end\n- `maskChar` (default: '*') - Character to use for masking\n\n### `maskBankCard(cardNumber, options?)`\n\nMask a bank card number.\n\n```javascript\nmaskBankCard('6222021234567890123')\n// '6222***********0123'\n\nmaskBankCard('6222021234567890123', { keepStart: 6, keepEnd: 4 })\n// '622202*******0123'\n```\n\nOptions:\n- `keepStart` (default: 4) - Number of digits to keep at the start\n- `keepEnd` (default: 4) - Number of digits to keep at the end\n- `maskChar` (default: '*') - Character to use for masking\n\n### `maskString(str, options?)`\n\nMask any string with custom options.\n\n```javascript\nmaskString('Hello World')\n// 'H*********d'\n\nmaskString('Hello World', { keepStart: 2, keepEnd: 2 })\n// 'He*******ld'\n```\n\nOptions:\n- `keepStart` (default: 1) - Number of characters to keep at the start\n- `keepEnd` (default: 1) - Number of characters to keep at the end\n- `maskChar` (default: '*') - Character to use for masking\n\n### `mask(data, options?)`\n\nAuto-detect data type and apply appropriate masking.\n\n```javascript\nmask('13812345678')              // '138****5678' (phone)\nmask('alice@gmail.com')          // 'a***@gmail.com' (email)\nmask('110101199001011234')       // '110***********1234' (ID card)\nmask('6222021234567890123')      // '6222***********0123' (bank card)\nmask('Hello World')              // 'H*********d' (generic string)\n```\n\n## TypeScript\n\nThis package includes TypeScript type definitions out of the box.\n\n```typescript\nimport { maskPhone, MaskPhoneOptions } from 'mask-data-lite';\n\nconst options: MaskPhoneOptions = {\n  keepStart: 3,\n  keepEnd: 4,\n  maskChar: '*'\n};\n\nconst masked = maskPhone('13812345678', options);\n```\n\n## Author\n\nCreated with ❤️ by the team behind [CPM Calculator](https://cpm-calculator.io/) - a free tool for calculating and optimizing your digital advertising costs. Check it out for more useful utilities!\n\n## License\n\nISC\n","readmeFilename":"README.md","_rev":"1-972c44d1acd9f63b44089b6e79000d79"}