🎭 Data Faker

🎭 Preset

Presets are grouped by Faker.js namespace. The dropdown loads from listPresets() on the logic module at mount time.

📊 How many values

1 ≤ count ≤ 1,000.

🔁 Seed (optional)

⚠️ When a seed is set, output is deterministic via xoshiro128**. This is NOT cryptographically secure — never use seeded output for tokens, salts, keys, IVs, or nonces.

📤 Output ({{ preset }})

⚠️

ℹ️ About Data Faker

Faker.js-style presets, hand-rolled

Data Faker exposes a curated subset of presets that mirror the Faker.js namespace API — person.firstName, internet.email, finance.creditCardNumber, and so on. It is not a wrapper around the @faker-js/faker npm package — that dependency is not installed. Instead, the generator carries its own data tables (names, cities, companies, lorem words, MIME types, file extensions, currency codes and more) and implements each preset with a small synthesis routine. No runtime dependency on Faker.js means smaller bundle, zero supply-chain surface, deterministic behaviour across server and browser.

Pick a preset, choose how many values you want, and the tool emits one value per line. All presets are available through the public POST API too so you can wire fixtures from your test harness.

Supported presets (40 total)

  • person: firstName, lastName, fullName, jobTitle, gender
  • internet: email, username, url, domain, password, ipv4, ipv6, mac
  • address: street, city, state, zip, country, countryCode
  • phone: number (NANP), imei (Luhn-valid)
  • company: name, catchPhrase, industry
  • commerce: product, price, color
  • date: past (ISO date), future (ISO date), weekday, month
  • lorem: word, sentence, paragraph, slug (kebab-case)
  • finance: iban (GB prefix, mod-97 valid), bitcoinAddress (Base58 24–34 chars), creditCardNumber (Luhn-valid 16 digits), currencyCode (ISO 4217)
  • system: fileName, fileExtension, mimeType, semver

Randomness source

  • Default (no seed): crypto.getRandomValues — the platform CSPRNG exposed through Web Crypto (browser) and Node's webcrypto (server). Output cannot be reproduced.
  • Seeded mode: the seed string is mixed into a 128-bit state with a four-lane MurmurHash3 finaliser, then expanded through xoshiro128** (Blackman & Vigna). Same seed + same preset + same count = byte-identical output.
  • Security note: seeded mode is NOT cryptographically secure. Use for fixtures and reproducibility only — never for tokens, passwords, salts, IVs, or anything an attacker should not be able to predict.

Validation specifics

  • finance.iban produces a synthetic GB-prefix IBAN whose check digits pass the ISO 13616 mod-97 rule.
  • finance.creditCardNumber is 16 digits, leading 4 (Visa-style), Luhn-valid.
  • phone.imei is 15 digits with a Luhn check digit appended to a random 14-digit body.
  • internet.ipv4 is dotted-decimal with each octet 0–255 (first octet 1–223 to avoid 0.x.x.x and most multicast).
  • address.zip is a 5-digit US ZIP — matches /^\d{5}$/.
  • lorem.slug is kebab-case only ([a-z]+(-[a-z]+)*).

Bounds

  • count: 1 to 1,000 values per request (default 1).
  • preset: must be one of the 40 names above; case-sensitive.
  • seed: optional string up to 1,024 characters.

Source references

API Usage Example:

POST /api/tools/data/data-faker
Content-Type: application/json

{
    "preset": "person.fullName",
    "count": 5,
    "seed": "fixture"
}
Ready