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
- Host: GitHub
- URL: https://github.com/theroyalwhee0/ident
- Owner: theroyalwhee0
- License: apache-2.0
- Created: 2017-02-05T16:06:09.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T00:59:22.000Z (almost 3 years ago)
- Last Synced: 2025-02-10T13:37:49.649Z (over 1 year ago)
- Topics: identifier, token, unique
- Language: TypeScript
- Homepage:
- Size: 660 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.