# @nexim/sanitizer

![NPM Version](https://img.shields.io/npm/v/@nexim/sanitizer)
![npm bundle size](https://img.shields.io/bundlephobia/min/@nexim/sanitizer)
![Build & Lint & Test](https://github.com/the-nexim/nanolib/actions/workflows/build-lint-test.yaml/badge.svg)
![NPM Downloads](https://img.shields.io/npm/dm/@nexim/sanitizer)
![NPM License](https://img.shields.io/npm/l/@nexim/sanitizer)

## Overview

`@nexim/sanitizer` provides utilities for sanitizing phone numbers and numeric inputs with TypeScript type safety. It handles Unicode digit conversion, input validation, and standardization of formats.

## Installation

Install the package using npm or yarn:

```sh
npm install @nexim/sanitizer

# Or using yarn
yarn add @nexim/sanitizer
```

## Features

- **Number Sanitization**: Convert Unicode digits to English format with validation
- **Phone Number Sanitization**: Standardize phone numbers with country code support
- **Type Safety**: Full TypeScript support with proper type definitions
- **Unicode Support**: Handle Persian, Arabic, and other Unicode digit systems
- **Logging**: Built-in logging for debugging and monitoring

## Quick Usage

```ts
import { sanitizeNumberToEnglish, sanitizePhoneNumber } from '@nexim/sanitizer';

// Sanitize numbers
sanitizeNumberToEnglish(123); // returns 123
sanitizeNumberToEnglish('۱۲۳'); // returns 123
sanitizeNumberToEnglish('abc'); // returns null

// Sanitize phone numbers
sanitizePhoneNumber('09123456789'); // returns 989123456789
sanitizePhoneNumber('+98 912 345 6789'); // returns 989123456789
sanitizePhoneNumber('۰۹۱۲۳۴۵۶۷۸۹'); // returns 989123456789
```

## Documentation

Read full documentation [here](./docs/README.md).
