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 🙏

© 2026 – Pkg Stats / Ryan Hefner

super-maker

v1.0.21

Published

Data generator designed specifically for turboMaker.

Readme

Members MIT License

superMaker

Data generator designed specifically for turboMaker. Generates random data: text, hashtags, words, dates, emails, id, url, arrays, booleans, etc.

Suitable for

  • Populating databases and creating synthetic content (posts, users, products, etc.)
  • Rapid prototyping

Features

  1. Ability to create a fully custom data storage to be used during generation.
  2. Uses Fisher-Yates shuffle — a reliable shuffling algorithm.
  3. Text generation with hashtags.
  4. Automatic hashtag extraction.
  5. Generation of unique email, id, etc., using randomBytes().
  6. Work with arrays and objects.

Installation & Usage

  1. Install the package:
npm i super-maker
  1. In the root of the project, create a file super-maker-storage.json.

Fill it with data, for example:

{
  "words": [
    "zorvian",
    "velthara",
    "quarnex"
  ],
  "hashtags": [
    "#Mercury",
    "#Venus",
    "#Moon"
  ],
  "fullName": [
    "James Smith",
    "John Johnson",
    "Robert Brown"
  ],
  "fullNames": {
    "name": [
      "James",
      "Emily",
      "Michael"
    ],
    "surname": [
      "Smith",
      "Johnson",
      "Williams"
    ]
  },
  "images": {
    "avatar": [
      "https://raw.githubusercontent.com/AndrewShedov/superMaker/refs/heads/main/storage/images/1.webp",
      "https://raw.githubusercontent.com/AndrewShedov/superMaker/refs/heads/main/storage/images/2.webp"
    ],
    "banner": [
      "https://raw.githubusercontent.com/AndrewShedov/superMaker/refs/heads/main/storage/images/1.webp",
      "https://raw.githubusercontent.com/AndrewShedov/superMaker/refs/heads/main/storage/images/2.webp"
    ]
  },
  "users": [
    "683a6251661f8f39765a75cc",
    "683a6220c57fe3aba56e3745",
    "683a622042fd1cb967541fb5",
    "683a62208355f4708ed7ed81"
  ]
}
  1. Generate data in turboMaker.

Example: posts generation:

import { superMaker } from 'super-maker';
import { ObjectId } from 'mongodb';

export const config = {
    uri: 'mongodb://127.0.0.1:27017',
    db: 'crystalTest',
    collection: 'posts',
    numberThreads: 'max',
    numberDocuments: 1_000_000,
    batchSize: 10_000,
    timeStepMs: 20
};

export async function generatingData({
    createdAt,
    updatedAt
}) {

    const user = superMaker.take.value({
        key: 'users'
    });

    const {
        title,
        text,
        hashtagsFromFullText
    } = superMaker.lorem.fullText.generate({

        titleOptions: {
            sentenceMin: 0,
            sentenceMax: 1,
            wordMin: 4,
            wordMax: 7,
            hashtagMin: 0,
            hashtagMax: 1
        },

        textOptions: {
            sentenceMin: 1,
            sentenceMax: 12,
            wordMin: 4,
            wordMax: 10,
            hashtagMin: 0,
            hashtagMax: 2
        }
    });

    return {

        title,
        text,
        hashtags: hashtagsFromFullText,

        views: superMaker.randomNumber({
            min: 120,
            max: 3125
        }),

        mainImage: superMaker.take.value({
            key: 'images.avatar'
        }),

        liked: superMaker.take.values({
            key: 'users',
            min: 3,
            max: 25
        }),

        user: new ObjectId(user),
        createdAt,
        updatedAt
    };
}

Examples of generations

Available methods

lorem: {
    words,
    sentences,
    fullText
  },

words

Takes words from the storage and outputs them in random order, uses — Fisher-Yates shuffle.

sentences

Takes words from the store and turns them into sentences with or without hashtags and outputs them randomly, uses Fisher-Yates shuffle. You can specify different output variations.

fullText

Extracts words from the storage, converts them into sentences with or without hashtags, and outputs them randomly using the Fisher-Yates shuffle. You can split a sentence into parts: title, text, hashtagsFromFullText and output each part in a separate document field, as well as specify different output variations.

take: {
   value,
   values
 },

value

Returns a single value from storage, by key.

values

Outputs an array of values from storage by key, with various variations and output settings.

randomNumber,
randomDate,
randomBoolean,
randomCrypto,
randomEmailCrypto

randomNumber

Outputs a random number in a configurable range.

randomDate

Displays a random date within a configurable range. Time format - 24 hour.

randomBoolean

Outputs a random boolean within a configurable percentage range.

randomCrypto

Outputs generated cryptographically strong pseudo-random data with the given length superMaker.randomCrypto(16). Uses - randomBytes().

randomEmailCrypto

Outputs generated cryptographically strong pseudo-random data with a given length superMaker.randomEmailCrypto(5) and frames it in '[email protected]'. Uses - randomBytes().

Full description of methods

Simulation of CRYSTAL v2.0 operation using synthetic data generated with turboMaker and superMaker:

SHEDOV.TOP CRYSTAL Discord Telegram X VK VK Video YouTube