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 🙏

© 2024 – Pkg Stats / Ryan Hefner

uuid-token-generator

v1.0.0

Published

Generates random tokens with custom size and base-encoding using the RFC 4122 v4 UUID algorithm

Downloads

11,099

Readme

UUID Token Generator

NPM Version Build Status Coverage Status Dependency Status devDependency Status

Provides a class that generates random tokens with custom size and base-encoding using the RFC 4122 v4 UUID algorithm. Generated tokens are strings that are guaranteed to always be the same length, depending on the bit-size specified for the token.

Great for generating things like API keys and compact UIDs.


WARNING


This package is no longer being maintained because a better one exists—uid-generator—which is better for the following reasons:

  • It has more flexible token generation options
    • i.e. You can specify the length of the token that you'd like to generate
  • It has both a synchronous and asynchronous interface
  • It is less likely to produce colliding tokens
  • It's more performant

Installation

npm install uuid-token-generator --save

Usage

const TokenGenerator = require('uuid-token-generator');

const tokgen = new TokenGenerator(); // Default is a 128-bit token encoded in base58
tokgen.generate();
// -> '4QhmRwHwwrgFqXULXNtx4d'

const tokgen2 = new TokenGenerator(256, TokenGenerator.BASE62);
tokgen2.generate();
// -> 'x6GCX3aq9hIT8gjhvO96ObYj0W5HBVTsj64eqCuVc5X'

API

new TokenGenerator([bitSize][, baseEncoding]) ⇒ Object

Creates a new TokenGenerator instance that generates bitSize-bit tokens encoded using the characters in baseEncoding.

| Param | Default | Type | Description | |:------|:--------|:-----|:------------| | [bitSize] | 128 | number | The size of the token to generate in bits. Must be a multiple of 128. | | [baseEncoding] | TokenGenerator.BASE58 | string | One of the TokenGenerator.BASE## constants or a custom string of characters to use to encode the token. |

Example

new TokenGenerator();
new TokenGenerator(256);
new TokenGenerator(TokenGenerator.BASE36);
new TokenGenerator(512, TokenGenerator.BASE62);
new TokenGenerator('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/'); // Custom encoding (base64)

TokenGenerator.BASE16 : String

0123456789abcdef

TokenGenerator.BASE36 : String

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ

TokenGenerator.BASE58 : String

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

TokenGenerator.BASE62 : String

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

TokenGenerator.BASE66 : String

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~

(all ASCII characters that do not need to be encoded in a URI as specified by RFC 3986)

TokenGenerator.BASE71 : String

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'()*-._~

(all ASCII characters that are not encoded by encodeURIComponent())


tokgen.generate() ⇒ String

Generates a random token.

Returns: String - A random token that is always tokgen.tokenLength characters long.

Example

const tokgen = new TokenGenerator();
tokgen.generate();
// -> 'vf5NrETkUKCa6FhkyRSazD'

(readonly) tokgen.bitSize : Number

The size of the token that will be generated in bits (the bitSize value passed to the TokenGenerator constructor).

Example

new TokenGenerator().bitSize // -> 128
new TokenGenerator(256).bitSize // -> 256

(readonly) tokgen.baseEncoding : String

The set of characters used to encode the token (the baseEncoding value passed to the TokenGenerator constructor).

Example

new TokenGenerator().baseEncoding // -> '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
new TokenGenerator('abc').baseEncoding // -> 'abc'

(readonly) tokgen.base : Number

The base of the token that will be generated (which is the number of characters in the baseEncoding).

Example

new TokenGenerator().base // -> 58
new TokenGenerator(TokenGenerator.BASE62).base // -> 62
new TokenGenerator('abc').base // -> 3

(readonly) tokgen.tokenLength : Number

The length of the token that will be generated. The generated token will always be this length.
Calculated as such: tokenLength = Math.ceil(bitSize / Math.log2(base))

Example

new TokenGenerator().tokenLength // -> 22
new TokenGenerator(256, TokenGenerator.BASE62).tokenLength // -> 43