zellige.js
Version:
A Moroccan utility library for working with CIN, phone numbers, currency, addresses, dates, and more.
48 lines (47 loc) • 1.93 kB
TypeScript
import { ERRORS, type PhoneFormat, type PhoneInput, type PhoneValidationResult, type PhoneDetails } from '../types/phone-number';
/**
* Validates a Moroccan phone number
* @param phone Phone number to validate
* @returns Validation result with details
*/
export declare function validatePhone(phone: PhoneInput): PhoneValidationResult;
/**
* Formats a phone number to specified format (NATIONAL, INTERNATIONAL, E164, RFC3966)
* @param phone Phone number to format
* @param format Desired format
* @returns Formatted number or null if invalid
*/
export declare function formatPhone(phone: PhoneInput, format?: PhoneFormat): string | null;
/**
* Gets comprehensive details about a phone number including validation, type, formats
* @param phone Phone number to analyze
* @returns Detailed phone information
*/
export declare function getPhoneDetails(phone: string): PhoneDetails;
/**
* Extracts valid Moroccan phone numbers from text
* @param text Text containing potential phone numbers
* @returns Array of valid unique numbers in national format
*/
export declare function extractPhoneNumbers(text: string): string[];
/**
* Masks a phone number for privacy (+212 XX ****** X)
* @param phone Phone number to mask
* @param maskChar Character for masking
* @returns Masked number or null if invalid
*/
export declare function maskPhone(phone: string, maskChar?: string): string | null;
/**
* Compares two phone numbers for equality after normalization
* @param phone1 First phone number
* @param phone2 Second phone number
* @returns True if numbers are equivalent
*/
export declare function arePhoneNumbersEqual(phone1: string, phone2: string): boolean;
export { ERRORS };
/**
* Sanitizes a phone number by removing non-numeric characters
* @param phone Phone number to sanitize
* @returns Sanitized number or null if invalid
*/
export declare function sanitizePhone(phone: PhoneInput): string | null;