{"id":23188029,"url":"https://github.com/theroyalwhee0/ident","last_synced_at":"2025-04-05T05:43:12.240Z","repository":{"id":17014331,"uuid":"81003909","full_name":"theroyalwhee0/ident","owner":"theroyalwhee0","description":"Unique Identifier Generator","archived":false,"fork":false,"pushed_at":"2023-07-19T00:59:22.000Z","size":676,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-10T13:37:49.649Z","etag":null,"topics":["identifier","token","unique"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theroyalwhee0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-05T16:06:09.000Z","updated_at":"2023-03-17T12:07:29.000Z","dependencies_parsed_at":"2025-02-10T13:46:59.329Z","dependency_job_id":null,"html_url":"https://github.com/theroyalwhee0/ident","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theroyalwhee0%2Fident","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theroyalwhee0%2Fident/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theroyalwhee0%2Fident/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theroyalwhee0%2Fident/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theroyalwhee0","download_url":"https://codeload.github.com/theroyalwhee0/ident/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294463,"owners_count":20915338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["identifier","token","unique"],"created_at":"2024-12-18T11:12:31.731Z","updated_at":"2025-04-05T05:43:12.221Z","avatar_url":"https://github.com/theroyalwhee0.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @theroyalwhee0/ident\n\n## A Unique Identifier Generator for Node\nGenerates unique non-predictable distributed identifiers.\nIt 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/).\n\n\n## Installation\n`npm install @theroyalwhee0/ident`\n\n*or*\n\n`yarn add @theroyalwhee0/ident`\n\n\n## Documentation\nThe identGenerator() function creates a iterable sequence of tokens. The validation*Factory() functions validates a given token's structure and check the partial HMAC values.\n\n[API Documentation](https://theroyalwhee0.github.io/ident/)\n\n\n## Usage\n```js\nconst { identGenerator, validationBothFactory } = require('@theroyalwhee0/ident');\nconst verifyKey = 'bird';\nconst signKey = 'seed';\nconst idents = identGenerator({\n    node: 1,\n    verifyKey, signKey,\n  });\nconst validate = validationBothFactory({\n    verifyKey, signKey,\n  });\nconst { value: ident1 } = idents.next();\nconst { value: ident2 } = idents.next();\nconsole.log(`${ident1}, ${ident2}`);\nconsole.log(`${validate(ident1)}, ${validate(ident2)}`);\n```\n\n## Testing.\nRunning ```npm run test``` will run the test suite under Mocha. Running ```npm run test-watch``` will run the test suite in watch mode.\n\n\n## Links\n- GitHub: https://github.com/theroyalwhee0/ident/\n- NPM: https://www.npmjs.com/package/@theroyalwhee0/ident/\n\n\n## History\n- v1.1.0  - 2022-09-06\n  - Change to TypeScript.\n  - Fix deprecations.\n  - Move testing to Mocha.\n- v1.0.5 - 2022-06-02\n  - Bump depends for security.\n- v1.0.4 - 2021-02-14\n  - Bump version of snowman.\n  - Remove dates from documentation.\n- v1.0.3 - 2021-02-06\n  - Bump version of snowman.\n- v1.0.2 - 2021-02-04\n  - Add documentation.\n  - Upgrade depends, fix deprecated references.\n  - Remove unused dev depends.\n- v1.0.1 - 2021-01-29\n  - Upgrade to latest version of [@theroyalwhee0/snowman](https://www.npmjs.com/package/@theroyalwhee0/snowman/)\n- v1.0.0 - 2021-01-07\n  - Initial release of v1 library.\n\n Previous versions are a different unsupported library that shares the same name.\n\n\n## Legal \u0026 License\nCopyright 2021-2022 Adam Mill\n\nThis library is released under Apache 2 license. See [LICENSE](https://github.com/theroyalwhee0/ident/blob/master/LICENSE) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheroyalwhee0%2Fident","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheroyalwhee0%2Fident","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheroyalwhee0%2Fident/lists"}