Home

@theroyalwhee0/ident

A Unique Identifier Generator for Node

Generates unique non-predictable distributed identifiers. It is built from a combination of a snowflake ID, random bytes, and two partial HMACs. It is encoded using base32h.

Installation

npm install @theroyalwhee0/ident

or

yarn add @theroyalwhee0/ident

Documentation

The identGenerator() function creates a iterable sequence of tokens. The validation*Factory() functions validates a given token's structure and check the partial HMAC values.

API Documentation

Usage

const { identGenerator, validationBothFactory } = require('@theroyalwhee0/ident');
const verifyKey = 'bird';
const signKey = 'seed';
const idents = identGenerator({
    node: 1,
    verifyKey, signKey,
  });
const validate = validationBothFactory({
    verifyKey, signKey,
  });
const { value: ident1 } = idents.next();
const { value: ident2 } = idents.next();
console.log(`${ident1}, ${ident2}`);
console.log(`${validate(ident1)}, ${validate(ident2)}`);

Testing.

Running npm run test will run the test suite under Mocha. Running npm run test-watch will run the test suite in watch mode.

Links

  • GitHub: https://github.com/theroyalwhee0/ident/
  • NPM: https://www.npmjs.com/package/@theroyalwhee0/ident/

History

  • v1.1.0 - 2022-09-06
    • Change to TypeScript.
    • Fix deprecations.
    • Move testing to Mocha.
  • v1.0.5 - 2022-06-02
    • Bump depends for security.
  • v1.0.4 - 2021-02-14
    • Bump version of snowman.
    • Remove dates from documentation.
  • v1.0.3 - 2021-02-06
    • Bump version of snowman.
  • v1.0.2 - 2021-02-04
    • Add documentation.
    • Upgrade depends, fix deprecated references.
    • Remove unused dev depends.
  • v1.0.1 - 2021-01-29
  • v1.0.0 - 2021-01-07
    • Initial release of v1 library.

Previous versions are a different unsupported library that shares the same name.

Legal & License

Copyright 2021-2022 Adam Mill

This library is released under Apache 2 license. See LICENSE for more details.

constants.js

A Unique Identifier Generator for Node
Author:
License:
  • Apache-2.0
Source:

index.js

A Unique Identifier Generator for Node
Author:
License:
  • Apache-2.0
Source: