@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.
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
- Upgrade to latest version of @theroyalwhee0/snowman
- 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.