0.1.0 • Published 10 months ago

@bearz/secrets v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@bearz/secrets

Overview

The secrets module provides a secret generator and a secret masker.

The secret generator uses a cryptographic random number generator (csrng) defaults to NIST requirements e.g length > 8, 1 upper, 1 lower, 1 digit, and 1 special character.

The secret masker works by adding secrets and variants to the masker and then it will replace the secret with '*' which is useful to protect secrets from logs or CI/CD standard output.

logo

JSR npm version GitHub version

Documentation

Documentation is available on jsr.io

A list of other modules can be found at github.com/bearz-io/js

Usage

import { DefaultSecretGenerator, secretMasker } from "@bearz/secrets";
import { equal } from "@bearz/assert"

// secret generator / password generator
const generator = new DefaultSecretGenerator();
generator.addDefaults();

console.log(generator.generate()); // csrng generated secret 16 chars
console.log(generator.generate(30)); // csrng generated secret 30 chars

// secret masker
const masker = secretMasker;
masker.addGenerator((secret: string) => {
    return secret.toUpperCase();
});

masker.add("super secret");
masker.add("another secret");
equal(masker.mask("super secret"), "*******");
equal(masker.mask("SUPER SECRET"), "*******");
equal(masker.mask("another secret"), "*******");
equal(masker.mask("ANOTHER SECRET"), "*******");

License

MIT License

0.1.0

10 months ago