README.md

@cutticat/passwords

Password encoding and generation library.

Contents

Overview

The library provides password encoders (PlainText, Bcrypt, DelegatingPasswordEncoder, DefaultPasswordEncoder) and a random password generation function. It uses types from @cutticat/types and alphabets from @cutticat/text.

Installation

pnpm i @cutticat/passwords

Quick start

import {
  BcryptPasswordEncoder,
  DefaultPasswordEncoder,
  generateRandomPassword,
  PlainTextPasswordEncoder,
} from "@cutticat/passwords"

// Password generation
const password = generateRandomPassword(16)

// Bcrypt encoding
const encoder = new BcryptPasswordEncoder()
const encoded = await encoder.encode(password)
const matches = await encoder.matches(password, encoded) // true

// Default encoder (plain in dev, bcrypt in prod)
const defaultEncoder = new DefaultPasswordEncoder({ isDevelopment: false })
const hash = await defaultEncoder.encode(password)

API

Generation

  • generateRandomPassword(length?, chars?) — generates a random password
  • defaultPasswordLength — default length (16)
  • defaultPasswordChars — default characters (letters, digits, special characters)

Encoders

  • PasswordEncoder — encoder interface (encode, matches)
  • PlainTextPasswordEncoder — plain-text passwords (dev only)
  • BcryptPasswordEncoder — bcrypt encoding
  • DelegatingPasswordEncoder — delegates to a selected encoder
  • DefaultPasswordEncoder — plain in dev, bcrypt in prod
  • DefaultPasswordEncoderOptions — options: isDevelopment, bcrypt.saltRounds
  • DelegatingPasswordEncoderOptions — encoders, defaultEncoderName, fallbackEncoder, fallbackStrategy

Documentation

See also:

Full API documentation is available in JSDoc comments. Use your IDE autocomplete to browse it.

Requirements

  • Node.js >= 22.0.0
  • pnpm >= 10.17.0
  • TypeScript >= 5.9.0
Описание
A library for working with passwords
Конвейеры
5 успешных
5 с ошибкой
Разработчики