New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

obscure-string

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

obscure-string

Mask the middle of strings with custom characters — perfect for hiding secrets, emails, or IDs.

latest
Source
npmnpm
Version
1.0.7
Version published
Maintainers
1
Created
Source

🕶️ obscure-string

NPM Version Build Status License Types Included Bundle Size

A tiny utility to mask part of a string — perfect for hiding secrets, emails, API keys, and IDs. Fully customizable and zero dependencies.

✨ Features

  • 🔐 Hide sensitive values in logs and UIs
  • ⚙️ Customizable mask char, prefix, and suffix lengths
  • 🪶 Zero dependencies (<1KB gzipped)
  • 🧪 Fully tested with edge case handling
  • 🧠 TypeScript definitions included
  • 📦 Supports CommonJS, ESM, Node.js, bundlers
  • 🖥️ CLI support coming soon

📦 Install

npm install obscure-string
# or
yarn add obscure-string

🚀 Quick Start

const { obscureString } = require('obscure-string');

obscureString('mysecretkey');
// → 'mys*****key'

obscureString('john.doe@example.com', {
  prefixLength: 2,
  suffixLength: 4,
  maskChar: '#',
});
// → 'jo##############.com'

⚙️ Options

OptionTypeDefaultDescription
maskCharstring*Character used for masking
prefixLengthnumber3Visible characters at the beginning
suffixLengthnumber3Visible characters at the end

If the input string is shorter than prefixLength + suffixLength, it's returned unchanged.

🧪 Examples

obscureString('mysecretkey');
// → 'mys*****key'

obscureString('supersecretvalue', { prefixLength: 2, suffixLength: 2 });
// → 'su************ue'

obscureString('veryshort', { prefixLength: 5, suffixLength: 5 });
// → 'veryshort' (too short to mask)

obscureString(null);
// → '' (non-string input)

obscureString('1234567890', { prefixLength: 2, suffixLength: 2 });
// → '12******90'

🔠 TypeScript Support

export function obscureString(
  str: string,
  options?: {
    maskChar?: string;
    prefixLength?: number;
    suffixLength?: number;
  }
): string;

🧪 Running Tests

npm test

Uses Jest for unit testing. See __tests__/ for test cases.

🧹 Formatting

npm run format

Uses Prettier with .prettierrc config.

🖥️ CLI (Coming Soon)

A CLI version is planned:

npx obscure-string "my-secret-token" --prefix 2 --suffix 4 --char "#"

👥 Contributing

Contributions welcome!

  • 🍴 Fork the repo
  • 🛠 Create a feature branch
  • ✅ Add tests and update docs
  • 🚀 Open a pull request

✅ Roadmap

  • Base string masking
  • TypeScript support
  • Prettier formatting
  • Jest test suite
  • CLI via npx
  • GitHub Actions CI
  • Optional string-type detectors (email, token, etc.)
  • VSCode extension (stretch)

🧾 License

MIT © PDR

Made with ❤️ to keep your secrets secret.

Keywords

mask

FAQs

Package last updated on 14 Apr 2025

Related posts