UNPKG

global-id-validator

Version:
146 lines (104 loc) 3.01 kB
# Global ID Validator A TypeScript library for validating various global identification numbers like passports, tax ids, social security numbers, and more. ## Installation ```bash npm install global-id-validator # or yarn add global-id-validator # or pnpm add global-id-validator ``` ## Usage ### Basic Usage ```typescript import { argentina, brazil, us, canada } from 'global-id-validator' // Validate a US passport const passportResult = us.validatePassport('AB1234567') if (passportResult.isValid) { console.log('Valid passport!', passportResult.metadata) } else { console.error('Invalid passport:', passportResult.errorMessage) } // Validate a US Social Security Number const ssnResult = us.validateSSN('123-45-6789') if (ssnResult.isValid) { console.log('Valid SSN!', ssnResult.metadata) } else { console.error('Invalid SSN:', ssnResult.errorMessage) } ``` ### Available Validators #### United States ```typescript import { us } from 'global-id-validator' // US passport const passportResult = us.validatePassport('123456789') // US Social Security Number const ssnResult = us.validateSSN('123-45-6789') ``` #### Canada ```typescript import { canada } from 'global-id-validator' // Canadian Social Insurance Number const sinResult = canada.validateSIN('046-454-286') ``` #### Argentina ```typescript import { argentina } from 'global-id-validator' // Argentine National Identity Document const dniResult = argentina.validateDNI('12345678') // Argentine Tax ID (CUIT) const cuitResult = argentina.validateCUIT('20-12345678-9') // Argentine Labor Identification Code (CUIL) const cuilResult = argentina.validateCUIL('27-12345678-9') ``` #### Brazil ```typescript import { brazil } from 'global-id-validator' // Brazilian Individual Taxpayer Registry (CPF) const cpfResult = brazil.validateCPF('123.456.789-09') // Brazilian National Registry of Legal Entities (CNPJ) const cnpjResult = brazil.validateCNPJ('12.345.678/0001-95') ``` More validators will be added in the future, feel free to contribute with your own! :) ### Validation Result All validators return a `ValidationResult` object with the following structure: ```typescript // Successful validation type ValidationSuccessResult = { // Whether the ID is valid isValid: true // Additional metadata about the ID metadata: { // Formatted value of the ID (if applicable) formattedValue: string } } // Failed validation type ValidationErrorResult = { // Whether the ID is valid isValid: false // Error message if the ID is invalid errorMessage: string } // Combined type type ValidationResult = ValidationSuccessResult | ValidationErrorResult ``` ## Development ### Setup ```bash # Install dependencies pnpm install # Build the library pnpm build # Run tests pnpm test ``` ### Commands - `pnpm build` - Build the library - `pnpm test` - Run tests - `pnpm lint` - Run linting - `pnpm format` - Format code with Prettier - `pnpm dev` - Build in watch mode ## License ISC