npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@starley/password-validator-br

v5.3.3

Published

Validates password according to flexible and intuitive specifications

Downloads

158

Readme

logo

npm version npm downloads gh action build status coverage status

News

Add suport language to pt-Br by Starley Cazorla 18/01/2023

Add suport language to es-Ar by Starley Cazorla 19/01/2023

Original Developer and Project

Tarun Batra password-validator

Install

npm install @starley/password-validator-br

Usage

var passwordValidator = require('password-validator');

or 

import PasswordValidator from "password-validator";

// Create a schema
var schema = new passwordValidator();

// Add properties to it
schema
.is().min(8)                                    // Minimum length 8
.is().max(100)                                  // Maximum length 100
.has().uppercase()                              // Must have uppercase letters
.has().lowercase()                              // Must have lowercase letters
.has().digits(2)                                // Must have at least 2 digits
.has().not().spaces()                           // Should not have spaces
.is().not().oneOf(['Passw0rd', 'Password123']); // Blacklist these values

// Validate against a password string
console.log(schema.validate('validPASS123'));
// => true
console.log(schema.validate('invalidPASS'));
// => false

// Get a full list of rules which failed
console.log(schema.validate('joke', { list: true }));
// => [ 'min', 'uppercase', 'digits' ]

// The option language must be used together with details option, to return message according to language set. 
/** Language avaliable - If is not set, English by default, pt-Br (Brazil) and es-Ar (Argentina) */
console.log(schema.validate('joke', { details: true, language: 'pt-Br' }));
// => [ 'message': 'A senha deve ter o tamanho minimo de 8 caracteres' ]

Advanced usage

Details about failed validations

Sometimes just knowing that the password validation failed or what failed is not enough and it is important too get more context. In those cases, details option can be used to get more details about what failed.

console.log(schema.validate('joke', { details: true }));

The above code will output:

[
  {
    validation: 'min',
    arguments: 8,
    message: 'The string should have a minimum length of 8 characters'
  },
  {
    validation: 'uppercase',
    message: 'The string should have a minimum of 1 uppercase letter'
  },
  {
    validation: 'digits',
    arguments: 2,
    message: 'The string should have a minimum of 2 digits'
  }
]

Custom validation messages

The validation messages can be overriden by providing a description of the validation. For example:

schema.not().uppercase(8, 'maximum 8 chars in CAPS please')

The above validation, on failure, should return the following object:

  {
    validation: 'min',
    arguments: 8,
    inverted: true,
    message: 'maximum 8 chars in CAPS please'
  },

Plugins

Plugin functions can be added to the password validator schema for custom password validation going beyond the rules provided here. For example:

var validator = require('validator');
var passwordValidator = require('password-validator');

var schema = new passwordValidator()
    .min(3, 'Password too small')
    .usingPlugin(validator.isEmail, 'Password should be an email');

schema.validate('not-an-email', { details: true })
// [{ validation: 'usingPlugin', arguments: [Function: isEmail], message: 'Password should be an email' }]

Rules

Rules supported as of now are:

| Rules | Descriptions | |:---------------------|:---------------------------------------------------------------------------------------------------------------------------------| |digits([count], [description]) | specifies password must include digits (optionally provide count paramenter to specify at least n digits) | |letters([count], [description]) | specifies password must include letters (optionally provide count paramenter to specify at least n letters) | |lowercase([count], [description])| specifies password must include lowercase letters (optionally provide count paramenter to specify at least n lowercase letters) | |uppercase([count], [description])| specifies password must include uppercase letters (optionally provide count paramenter to specify at least n uppercase letters) | |symbols([count], [description]) | specifies password must include symbols (optionally provide count paramenter to specify at least n symbols) | |spaces([count], [description]) | specifies password must include spaces (optionally provide count paramenter to specify at least n spaces) | |min(len, [description]) | specifies minimum length | |max(len, [description]) | specifies maximum length | |oneOf(list) | specifies the whitelisted values | |not([regex], [description]) | inverts the result of validations applied next | |is() | inverts the effect of not() | |has([regex], [description]) | inverts the effect of not() and applies a regex (optional) | |usingPlugin(fn, [description]) | Executes custom function and include its result in password validation |

Options

The following options can be passed to validate method:

  • list - If set, validate method returns a list of rules which failed instead of true/false.
  • language - If set, returns message by language.

Resources

For APIs of other older versions, head to Wiki.

License

MIT License