sms-validator
Version:
SMS validation utility for Africa's Talking SMS service. Supports GSM-7/Unicode detection, E.164 validation, segment count, and optional sanitization.
72 lines (48 loc) • 1.4 kB
Markdown
# sms-validator
✅ A utility package to validate and analyze SMS messages for Africa's Talking SMS gateway.
- Supports **GSM-7** and **Unicode (UCS-2)** detection
- Calculates **SMS segments**
- Validates **international phone numbers (E.164)**
- Provides **cost estimate**, **sanitization**, and **message breakdown**
## 📦 Install
```bash
npm install sms-validator
```
## 🚀 Usage
```js
const {
validateSms,
getMessageBreakdown,
sanitizeMessage
} = require("sms-validator");
const phone = "+254712345678";
const message = "Hello, your OTP is 123456 ✅";
const result = validateSms(phone, message, { sanitize: true });
console.log(result);
const breakdown = getMessageBreakdown(message, 0.03);
console.log(breakdown);
```
## 📋 API
### `validateSms(phone, message, options)`
- Validates phone format
- Detects encoding
- Checks length validity
- Optional: sanitize message
- Returns: `isPhoneValid`, `segments`, `encoding`, `messageLength`, `isLengthValid`, `sanitized`
### `getMessageBreakdown(message, costPerSegment)`
- Returns encoding, segment count, estimated cost
### `sanitizeMessage(message)`
- Strips non-ASCII characters
## ✅ Africa's Talking Specifics
This package assumes:
- Up to **3 message parts**
- E.164 phone numbers
- Costs per segment are gateway-defined
### 📄 `LICENSE`
MIT License
Copyright (c) 2025 Jonathan Mwebaze