@theroyalwhee0/ident
Version:
Unique Identifier Generator
77 lines (57 loc) • 2.3 kB
Markdown
# @theroyalwhee0/ident
## A Unique Identifier Generator for Node
Generates unique non-predictable distributed identifiers.
It is built from a combination of a [snowflake ID](https://github.com/theroyalwhee0/snowman/), random bytes, and two partial HMACs. It is encoded using [base32h](https://base32h.github.io/).
## 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](https://theroyalwhee0.github.io/ident/)
## Usage
```js
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](https://www.npmjs.com/package/@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](https://github.com/theroyalwhee0/ident/blob/master/LICENSE) for more details.