An open API service indexing awesome lists of open source software.

https://github.com/theroyalwhee0/ident

Unique Identifier Generator
https://github.com/theroyalwhee0/ident

identifier token unique

Last synced: about 1 year ago
JSON representation

Unique Identifier Generator

Awesome Lists containing this project

README

          

# @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.