global-id-validator
Version:
A library for validating global identifiers
146 lines (104 loc) • 3.01 kB
Markdown
A TypeScript library for validating various global identification numbers like passports, tax ids, social security numbers, and more.
```bash
npm install global-id-validator
yarn add global-id-validator
pnpm add global-id-validator
```
```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)
}
```
```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')
```
```typescript
import { canada } from 'global-id-validator'
// Canadian Social Insurance Number
const sinResult = canada.validateSIN('046-454-286')
```
```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')
```
```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! :)
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
```
```bash
pnpm install
pnpm build
pnpm test
```
- `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
ISC