UNPKG

srid

Version:

A library for generating secure shared, traceable, and country-aware IDs for users, wallets, and transactions.

103 lines (65 loc) β€’ 2.61 kB
# SRID – Shared Root Identifier Library [![npm version](https://img.shields.io/npm/v/srid.svg)](https://www.npmjs.com/package/srid) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) `SRID` is a library that provides a simple and consistent way to generate **linked, traceable, and country-aware unique IDs** for users, wallets, and transactions. Ideal for remittance platforms, fintech products, and audit-oriented systems. --- ## πŸ”— Why SRID? SRID establishes a common root identifier that ties together all related entities (user, wallet, transactions) in your system. It’s lightweight, deterministic, and designed for traceability. --- ## ✨ Features - Shared Root Identifier (SRID) generation - Country code + date + hash-based format - Linked User ID, Wallet ID, and Transaction ID - Sequential transaction ID suffixes - Lightweight, zero-dependency --- ## πŸ“¦ Installation ```bash npm install srid ``` --- ## πŸš€ Usage ```ts import SRID from 'srid'; const srid = new SRID('KE'); console.log(srid.getSharedId()); // e.g., KE250326-A7K2Z9 console.log(srid.generateUserId()); // e.g., USR-KE250326-A7K2Z9 console.log(srid.generateWalletId()); // e.g., WLT-KE250326-A7K2Z9 console.log(srid.generateTransactionId()); // e.g., TXN-KE250326-A7K2Z9-001 console.log(srid.generateTransactionId()); // e.g., TXN-KE250326-A7K2Z9-002 ``` --- ## πŸ“š ID Structure | ID Type | Format Example | |------------------|-------------------------------------| | Shared ID | `KE250326-A7K2Z9` | | User ID | `USR-KE250326-A7K2Z9` | | Wallet ID | `WLT-KE250326-A7K2Z9` | | Transaction ID | `TXN-KE250326-A7K2Z9-001` | > Format: `[Prefix]-[CountryCode][YYMMDD]-[HashChunk](-Sequence)` --- ## πŸ§ͺ Running Tests ```bash npm test ``` Tests are written using [Jest](https://jestjs.io/). --- ## πŸ› οΈ API Reference ### `new SRID(countryCode: string)` Creates a new SRID instance using a country code (e.g., "KE"). ### `getSharedId(): string` Returns the core shared ID (used in all other IDs). ### `generateUserId(): string` Returns a user ID with the shared root. ### `generateWalletId(): string` Returns a wallet ID tied to the same root. ### `generateTransactionId(): string` Returns a unique transaction ID with a sequential suffix. --- ## πŸ’‘ Use Cases - Cross-border remittance and wallet platforms - Systems that require linked IDs across entities - Auditable financial record management --- ## πŸ“„ License MIT Β© 2025