Edge-compatible SMS sending for Pars - NetGSM, Twilio, and more
npm install @parsrun/smsEdge-compatible SMS sending for Pars applications.
- ๐ Edge Compatible - Works in Cloudflare Workers, Vercel Edge, Deno, Bun
- ๐ฑ Multiple Providers - NetGSM (Turkey), with Twilio coming soon
- ๐ง TypeScript First - Full type definitions included
- ๐งช Dev Mode - Console provider for local development
``bash`
npm install @parsrun/smsor
bun add @parsrun/sms
`typescript
import { createSMSService } from '@parsrun/sms';
// Create SMS service with NetGSM
const sms = createSMSService({
provider: 'netgsm',
username: process.env.NETGSM_USERNAME,
password: process.env.NETGSM_PASSWORD,
from: 'MYSENDER', // Sender ID registered with NetGSM
});
// Send a single SMS
await sms.send({
to: '905551234567',
message: 'Hello from Pars!',
});
// Send OTP
await sms.sendOTP('905551234567', '123456', 10);
// Send welcome message
await sms.sendWelcome('905551234567', 'John');
`
`typescript
import { createSMSService } from '@parsrun/sms';
const sms = createSMSService({
provider: 'netgsm',
username: 'your-username',
password: 'your-password',
from: 'SENDER_ID',
// Optional custom API URL
providerUrl: 'https://api.netgsm.com.tr/sms/send/otp',
});
`
`typescript
import { createSMSService } from '@parsrun/sms';
const sms = createSMSService({
provider: 'console',
from: 'TEST',
});
// SMS will be logged to console instead of being sent
await sms.send({
to: '905551234567',
message: 'Test message',
});
`
`bash`NetGSM
NETGSM_USERNAME=your-username
NETGSM_PASSWORD=your-password
NETGSM_SENDER=MYSENDER
NETGSM_URL=https://api.netgsm.com.tr/sms/send/otp
`typescript
class SMSService {
// Send a single SMS
send(options: SMSOptions): Promise
// Send multiple SMS messages
sendBatch(options: BatchSMSOptions): Promise
// Verify provider configuration
verify(): Promise
// Send OTP verification SMS
sendOTP(phone: string, code: string, expiresInMinutes?: number): Promise
// Send welcome SMS
sendWelcome(phone: string, name?: string): Promise
}
`
`typescript
interface SMSOptions {
to: string; // Recipient phone number
message: string; // SMS content
from?: string; // Sender ID override
tags?: Record
}
interface SMSResult {
success: boolean;
messageId?: string;
error?: string;
data?: unknown;
}
``
MIT