unipass-validator
v0.1.3
Published
Advanced and universal password validation for browser and Node.js environments. Includes strength scoring, blacklist check, and adaptive security rules.
Downloads
20
Maintainers
Readme
UniPass Validator
TypeScript library for advanced password strength validation (browser + Node.js).
UniPass Validator is a lightweight dual-bundle library designed to evaluate password strength, provide security suggestions, detect common insecure passwords, and deliver detailed crack-time analysis — all powered by zxcvbn and enhanced blacklist checks.
📋 Features
🧠 Strength Analysis: Calculates score (0–4) + estimated crack time.
🚫 Blacklist Detection: Prevents top insecure & common credentials.
📝 Smart Suggestions: Improves password creation in real time
⚠️ Security Warnings: Identifies patterns and weak constructions.
🔌 Hybrid Package: Browser ESM + Node.js CJS support.
🧩 TypeScript Ready: Types built-in for DX excellence.
🚀 Installation
npm install unipass-validator
# or
yarn add unipass-validator💡 Basic Usage
1. 📍 Browser (ESM)
import { checkPassword, isInBlacklist } from 'unipass-validator/browser';
const result = checkPassword('123456');
console.log(result);
console.log(isInBlacklist("password")); // true2. 📚 Node.js (CJS)
const { checkPassword, isInBlacklist } = require('unipass-validator/node');
console.log(checkPassword('SuperSecureP4$$!'));
console.log(isInBlacklist("password")); // trueAPI
Main Methods
checkPassword(password: string)- Evaluates the password and returns an object containing: strength score, estimated crack time, suggestions, warnings, and whether it is in the blacklist.isInBlacklist(password: string)- Checks if the password is included in the list of common or insecure passwords and returns true or false.
⚙️ Configuration
interface PasswordAnalysis {
password: string;
score: 0 | 1 | 2 | 3 | 4;
crackTime: string;
suggestions: string[];
warnings: string;
blacklisted: boolean;
}🧪 Sample Output
{
"password": "123456",
"score": 0,
"crackTime": "less than a second",
"suggestions": [
"Add another word or two. Uncommon words are better",
"Avoid sequences or repeated characters"
],
"warnings": "Very common password",
"blacklisted": true
}📊 Password Strength Scale
| Score | Strength | Recommended? | |-------|---------------|-------------------------| | 0 | Very Weak | ❌ No | | 1 | Weak | ❌ No | | 2 | Average | ⚠️ Better, not ideal | | 3 | Secure | ✅ Good | | 4 | Very Secure | 🌟 Excellent |
🌐 Compatibility
- Node.js 14+ ✔ Supported
- Browser ESM ✔ Supported
- Typescript ✔ Full typings
- Hybrid package supports both ESM (browser) and CJS (Node)
✅ Use Cases
✔ Signup Forms
✔ Password Strength Meters
✔ Security Audits
✔ Enterprise Authentication Rules
✔ UX-First Password Guidance
⚙️ Dev & Build Scripts
You can clone this repository and run the following commands to build the project
# Build dual bundles (browser + node)
npm run build
# Build node bundle
npm run build:node
# Build browser bundle
npm run build:browser🤝 Contributing
- Fork
- New branch
- Commit (Conventional Commits preferred)
- Pull Request
Feedback, features & issues welcome! 🚀
📝 License
Apache License 2.0 — free for personal and commercial use.
