zellige.js
Version:
A Moroccan utility library for working with CIN, phone numbers, currency, addresses, dates, and more.
145 lines (104 loc) โข 4.63 kB
Markdown
<p align="center">
<img width="100px" src=".github/images/zellige.png" align="center" alt=":large_blue_diamond: zellige.js" />
<h2 align="center">:large_blue_diamond: zellige.js
<p align="center">Tiles of Moroccan Utilities</p>
<p align="center">
<a href="https://github.com/aitmiloud/zellige/issues">
<img alt="Issues" src="https://img.shields.io/github/issues/aitmiloud/zellige?style=flat&color=336791" />
</a>
<a href="https://github.com/aitmiloud/zellige/pulls">
<img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/aitmiloud/zellige?style=flat&color=336791" />
</a>
<a href="https://github.com/aitmiloud/zellige">
<img alt="Npm Total Downloads" src="https://img.shields.io/npm/dt/zellige.js" />
</a>
<a href="https://github.com/aitmiloud/zellige">
<img alt="GitHub release" src="https://img.shields.io/github/release/aitmiloud/zellige.svg?style=flat&color=336791" />
</a>
<a href="https://github.com/aitmiloud/zellige">
<img alt="GitHub Downloads" src="https://img.shields.io/npm/l/zellige.js" />
</a>
</p>
[](https://codecov.io/gh/aitmiloud/zellige)
# Zellige.js
Zellige.js is a simple, powerful utility package designed to handle all the boring stuffโlike validating CINs, phone numbers, IBANs, RIBs, and passportsโspecific to Morocco.
### Why Use Zellige.js? ๐ค
Let's face itโyouโre tired of Googling how to validate a CIN, phone number, IBAN, or passport every time you start a new project. And if you're like most developers, you probably end up copying and pasting validation code from old projects or Stack Overflow, only to realize it's never quite right.
With Zellige.js, you get everything you need in one packageโproperly validated and tested for Morocco-specific fields. It saves you time, reduces errors, and means you donโt have to rewrite the same functions over and over again.
Why spend time reinventing the wheel when you could just install Zellige and move on to the more important tasks?
```typescript
import { validateCIN } from 'zellige.js';
// Simple and intuitive API
const result = validateCIN('AB123456');
```
## ๐ Features (Please contribute for more ๐)
### CIN (National ID) Processing
- ๐ Advanced validation algorithms
- ๐จ Flexible formatting options
- ๐ข Region and office information extraction
- ๐ก๏ธ Built-in security features
### Phone Number Utilities (WIP)
- ๐ฑ Support for all Moroccan carriers
- ๐ International format conversion
- โจ Smart formatting options
- โก Carrier detection
### Bank Account Processing (WIP)
- ๐ฆ Support for major Moroccan banks
- ๐ข RIB validation
- ๐ Bank information extraction
- ๐ Secure handling
### Passport Processing
- ๐ Moroccan passport validation
- ๐ Series and number validation
## ๐ป Installation
```bash
npm install zellige.js
# or
yarn add zellige
# or
pnpm add zellige
```
## ๐ฏ Quick Start
```typescript
import { formatCIN, validatePhoneNumber, getBankInfo } from 'zellige.js';
// Format a CIN
const formattedCIN = formatCIN('AB123456', {
format: 'spaced',
case: 'upper',
}); // => 'AB 123 456'
// Validate a phone number
const isValidPhone = validatePhoneNumber('+212612345678');
// Get bank information
const bankDetails = getBankInfo('007123456789012345678901');
```
## ๐ ๏ธ Type Safety
Zellige is built with TypeScript at its core, providing:
```typescript
interface CINOptions {
format: 'spaced' | 'dashed' | 'compact';
case: 'upper' | 'lower';
includeMeta?: boolean;
}
// All functions come with detailed type definitions
const result: CINValidationResult = validateCIN('AB123456');
```
## ๐ค Contributing
We welcome contributions! Whether it's:
- ๐ Bug fixes
- โจ New features
- ๐ Documentation improvements
- ๐งช Additional test cases
Check out our [Contributing Guide](https://github.com/aitmiloud/zellige/blob/main/.github/PULL_REQUEST_TEMPLATE.md) to get started.
## ๐ License
Zellige is MIT licensed. See the [LICENSE](/license.md) file for details.
## ๐ Support
- ๐ [Report a bug](https://github.com/aitmiloud/zellige/issues)
- ๐ก [Request a feature](https://github.com/aitmiloud/zellige/issues)
- ๐ค [Ask a question](https://github.com/aitmiloud/zellige/discussions)
## ๐ Production Ready
- โ
Comprehensive error handling
- ๐ Input sanitization
- โก Performance optimized
- ๐งช Extensive test coverage
- ๐ Detailed documentation
Built with โค๏ธ for the Moroccan developer community