{"_id":"@abdel-sa/password-utilities","_rev":"2-4d2af6c2ded93b66fd454292c4c74d3a","name":"@abdel-sa/password-utilities","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@abdel-sa/password-utilities","version":"1.0.0","keywords":["password","security","utilities","validation","generator"],"author":{"name":"Abdelrahman Salama"},"license":"MIT","_id":"@abdel-sa/password-utilities@1.0.0","maintainers":[{"name":"abdel-sa","email":"rahman.salama78@gmail.com"}],"contributors":[{"name":"Mohamad Aldulemi"}],"dist":{"shasum":"5c752b8b9392518927068564654f880c601add88","tarball":"https://registry.npmjs.org/@abdel-sa/password-utilities/-/password-utilities-1.0.0.tgz","fileCount":10,"integrity":"sha512-tpToDyTdLGq3Dq+5YNO0mWPore4hEUApDU9Ix2VJ1Q0c7N+guAMd/R71w+TYIK7ETZZnclYasAwEokGZsxOGkw==","signatures":[{"sig":"MEUCIGnxqykLC0JisudA0QpxNeo70yJQa+tcu69PXVvqnniIAiEAjNkrJ+0E8sBi9Pb6g/xEkPbP/FTLB1B9wNX1yiYctGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9655},"main":"src/index.js","gitHead":"dedf8548139aea6be817b94938a26a7c5bf898e1","scripts":{"test":"jest"},"_npmUser":{"name":"abdel-sa","email":"rahman.salama78@gmail.com"},"_npmVersion":"10.9.2","description":"A JavaScript library providing password utility functions including strong password generation and validation","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/password-utilities_1.0.0_1779260006722_0.9329031604577365","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abdel-sa/password-utilities","version":"1.0.1","description":"A JavaScript library providing password utility functions including strong password generation and validation","main":"src/index.js","scripts":{"test":"jest"},"keywords":["password","security","utilities","validation","generator"],"author":{"name":"Abdelrahman Salama"},"contributors":[{"name":"Mohamad Aldulemi"}],"license":"MIT","devDependencies":{"jest":"^29.7.0"},"_id":"@abdel-sa/password-utilities@1.0.1","gitHead":"bcf8309469174bc63ba6f690487436dea50195cb","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-3NvYrBJRuks7i8fbrGgIAb4UBijLIRpoudcTRNuc3q4w2QnzQ1ltFpgKVQy16dPuDqrTOT86DELs3K2oeaWMOg==","shasum":"bc680f312e5add81d8c8daa2c484d0bb7405fbce","tarball":"https://registry.npmjs.org/@abdel-sa/password-utilities/-/password-utilities-1.0.1.tgz","fileCount":10,"unpackedSize":10671,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFmbbxLMCC8mBfVJC3r7YkOliCja+V+gx1r7vcqCtbO0AiEAyloFW1CQkaC+Rxea2lFs5bLM8+ZYQGDVzIPpRq/gQkw="}]},"_npmUser":{"name":"abdel-sa","email":"rahman.salama78@gmail.com"},"directories":{},"maintainers":[{"name":"abdel-sa","email":"rahman.salama78@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/password-utilities_1.0.1_1779260499350_0.015630168768723918"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T06:53:26.608Z","modified":"2026-05-20T07:01:39.632Z","1.0.0":"2026-05-20T06:53:26.878Z","1.0.1":"2026-05-20T07:01:39.514Z"},"author":{"name":"Abdelrahman Salama"},"license":"MIT","keywords":["password","security","utilities","validation","generator"],"description":"A JavaScript library providing password utility functions including strong password generation and validation","contributors":[{"name":"Mohamad Aldulemi"}],"maintainers":[{"name":"abdel-sa","email":"rahman.salama78@gmail.com"}],"readme":"# @abdel-sa/password-utilities\n\n[![npm version](https://badge.fury.io/js/%40abdel-sa%2Fpassword-utilities.svg)](https://www.npmjs.com/package/@abdel-sa/password-utilities)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA lightweight JavaScript library for generating and validating strong passwords.\n\n## Installation\n\n**npm:**\n```bash\nnpm install @abdel-sa/password-utilities\n```\n\n**yarn:**\n```bash\nyarn add @abdel-sa/password-utilities\n```\n\n## Usage\n\n```javascript\nconst { generateStrongPassword, isStrongPassword } = require('@abdel-sa/password-utilities');\n\n// Generate a 12-character password\nconst password = generateStrongPassword(12);\nconsole.log(password); // e.g., \"pC%mD8TpCKn2\"\n\n// Validate a password\nconsole.log(isStrongPassword('pC%mD8TpCKn2')); // true\nconsole.log(isStrongPassword('Hello World'));   // false\n```\n\n## API\n\n### `generateStrongPassword(length?)`\n\nGenerates a random password using uppercase letters, lowercase letters, digits, and special characters (`!@#$%^&*()_+`). Guaranteed to always return a password that passes `isStrongPassword`.\n\n| Parameter | Type   | Default | Description                                  |\n|-----------|--------|---------|----------------------------------------------|\n| `length`  | number | `12`    | The desired password length (minimum: **8**) |\n\n**Returns:** `string`\n\n**Throws:** `Error` if `length` is less than 8.\n\n**Examples:**\n```javascript\ngenerateStrongPassword(12);  // e.g., \"pC%mD8TpCKn2\"\ngenerateStrongPassword();    // e.g., \"xK@9mLqR2#Tz\"\ngenerateStrongPassword(1);   // throws Error: Password length must be at least 8 to be strong\n```\n\n### `isStrongPassword(password)`\n\nChecks whether a password meets all strength requirements:\n\n- Minimum **8 characters**\n- At least one **uppercase letter** (A–Z)\n- At least one **lowercase letter** (a–z)\n- At least one **digit** (0–9)\n- At least one **special character** (`!@#$%^&*()_+`)\n\n| Parameter  | Type   | Description              |\n|------------|--------|--------------------------|\n| `password` | string | The password to validate |\n\n**Returns:** `boolean`\n\n**Examples:**\n```javascript\nisStrongPassword('Hello World');   // false — no digit, no special character\nisStrongPassword('pC%mD8TpCKn2'); // true\nisStrongPassword('abc');           // false — too short\nisStrongPassword('ABCabc123');     // false — no special character\n```\n\n## Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## Security\n\nIf you discover a security vulnerability, please see [SECURITY.md](SECURITY.md).\n\n## License\n\n[MIT](LICENSE) © 2026 Abdelrahman Salama & Mohamad Aldulemi\n","readmeFilename":"README.md"}