Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Node.js Quick Start

Installation

npm install idsmith

Validation

const {
  BankAccount, PersonalId, CreditCard, CompanyId,
  Swift, DriverLicense, Passport, TaxId, validateIban
} = require('idsmith');

// IBAN
validateIban('DE47508562162522867909');  // true

// Personal ID
PersonalId.validate('US', '446-72-2445');  // true

// Credit Card
CreditCard.validate('4152839405126374');  // true

// Bank Account
BankAccount.validate('US', '021000021-123456789');  // true

// Company ID
CompanyId.validate('GB', 'GB123456789');  // true

// Driver's License
DriverLicense.validate('US', 'A123456789012');  // true

// Passport
Passport.validate('DE', 'C01234567');  // true

// Tax ID (TIN)
TaxId.validate('IN', 'ABCDE1234F');  // true

// SWIFT/BIC
Swift.validate('CHASGB2LXXX');  // true

Generation

const {
  BankAccount, PersonalId, CreditCard, CompanyId, Swift,
  DriverLicense, Passport, TaxId,
  generateIban, formatIban
} = require('idsmith');

// Generate an IBAN
const iban = generateIban('DE');
console.log(formatIban(iban));  // DE47 5085 6216 2522 8679 09

// Generate a bank account
const account = BankAccount.generate('US');
console.log(account.formatted);    // 021000021 | 123456789
console.log(account.countryCode);  // US

// Generate a personal ID with options
const code = PersonalId.generate('EE', 'female', 1990);
console.log(code);  // 49001011234

// Generate a credit card
const card = CreditCard.generate('visa');
console.log(card.formatted);  // 4152 8394 0512 6374
console.log(card.brand);      // VISA

// Generate a company ID
const company = CompanyId.generate('GB');
console.log(company.code);  // GB123456789

// Generate a SWIFT code
const swift = Swift.generate('US');
console.log(swift.code);  // CHASUSU5XXX

// Generate a Driver's License
const dl = DriverLicense.generate('US');

// Generate a Passport
const passport = Passport.generate('DE');

// Generate a Tax ID (TIN)
const tin = TaxId.generate('IN');

TypeScript

Full TypeScript support is included. Types are auto-generated from Rust definitions.

import {
  BankAccount, PersonalId, CreditCard,
  generateIban, validateIban,
  type AccountResult, type CardResult
} from 'idsmith';

const account: AccountResult = BankAccount.generate('US');
const card: CardResult = CreditCard.generate('visa');
const valid: boolean = validateIban('DE47508562162522867909');

Parsing

const result = PersonalId.parse('EE', '49001011234');
console.log(result.dob);     // 1990-01-01
console.log(result.gender);  // female
console.log(result.valid);   // true

Listing Supported Countries

const { BankAccount, PersonalId, CreditCard, ibanCountries } = require('idsmith');

// IBAN countries
const countries = ibanCountries();  // ['AD', 'AE', 'AL', ...]

// Bank account countries
BankAccount.listCountries().forEach(c => {
  console.log(`${c.code} - ${c.name} (${c.format})`);
});

// Personal ID countries
PersonalId.listCountries().forEach(c => {
  console.log(`${c.code} - ${c.countryName} (${c.idName})`);
});

// Credit card brands
CreditCard.listBrands();  // ['Visa', 'Mastercard', ...]

// Check support
BankAccount.isSupported('US');  // true
PersonalId.isSupported('EE');   // true

Error Handling

Unsupported countries throw an error:

try {
  PersonalId.generate('XX');
} catch (e) {
  console.error(e.message);  // Unsupported country: XX
}