generators

Generators

A collection of minimal, dependency-free generators for developers, testers, and AI builders.

Overview

Generators provides fast, auditable modules for creating random or structured content — passwords, fake data, prompts, datasets, colors, and more — without large dependencies or opaque APIs. Each module is designed for portability, reproducibility, and simplicity.

Available modules:

All helpers are designed for use in:

Modules can be imported independently. Browser demos and a dependency-free Node regression suite are included.

🔗 Live Demos (GitHub Pages)

You can try each generator interactively in your browser:

Each page loads its respective module and allows interactive validation.

Use

Import individual ESM modules directly; no build step or dependency installation is required.

To run the regression tests with Node.js 22+:

node --experimental-default-type=module --test tests/*.test.mjs

Metric badge workflows are manually dispatched, avoiding routine commits. Regression tests run automatically on PRs and pushes.

Security and compatibility

Design Principles

  1. Deterministic randomness: Supports fixed seeds for reproducibility.
  2. Zero dependencies: Small and secure.
  3. Cross-runtime: Runs anywhere ESM works.
  4. Predictable output: Always valid and formatted.
  5. Composable: Each generator is a pure function.

Example usage

import { generatePassword } from './generate-password/password.js';
import { generateToken } from './generate-token/token.js';
import { generatePalette } from './generate-color/color.js';
import { generateHash } from './generate-hash/hash.js';
import { generateSlug } from './generate-slug/slug.js';
import { generatePhoneNumbers } from './generate-phone-number/phone.js';
import { generateCard } from './generate-card-number/card.js';
import { rows, rng } from './generate-fake-data/fake.js';

console.log(generatePassword({ length: 20 }));          // secure random password
console.log(generateToken({ type: 'hex', length: 32 })); // secure random token
console.log(generateToken({ type: 'uuid', seed: 'test' })); // predictable fixture only
console.log(generatePalette({ base: '#3366ff', count: 3 }).colors);
console.log(await generateHash('hello', 'sha-256'));
console.log(generateSlug('Café déjà vu!'));          // 'cafe-deja-vu'
console.log(generatePhoneNumbers({ state: 'CA', count: 2, seed: 'test' }));
console.log(generateCard({ brand: 'visa', seed: 'test' })); // simulated test card
console.log(rows(2, 'test'));

Folder Structure

generators/
  ├─ .github/
  │   ├─ workflows/
  │   └─ FUNDING.yml
  ├─ LICENSE
  ├─ README.md
  ├─ SECURITY.md
  ├─ package.json
  ├─ scripts/
  │   └─ bench.mjs
  ├─ generate-avatar/
  ├─ generate-card-number/
  ├─ generate-color/
  ├─ generate-fake-data/
  ├─ generate-hash/
  ├─ generate-lorem/
  ├─ generate-password/
  ├─ generate-phone-number/
  ├─ generate-prompt/
  ├─ generate-slug/
  ├─ generate-ssn/
  └─ generate-token/

Security Notes

Contributing

Pull requests for small, standalone generators are welcome. Please maintain the following rules:

License

Licensed under the MIT License — see LICENSE.

Funding

If you find this project useful, please consider sponsoring its continued maintenance and security audits.

You can sponsor this project through:


© 2025 Y Consulting LLC / Validators Project