swift-license
v1.1.0
Published
Swift License System for WhatsApp Bot
Maintainers
Readme
@swift/license
Swift License System for WhatsApp Bot — v1.1.0
Install
npm install swift-licenseRequirements
- Node.js v22 or newer
Quick Start
import { loadLicense } from "swift-license"
const license = await loadLicense({
token: "SWIFT-001",
api: "https://your-license-api.com"
})
if (!license.success) {
console.error("License gagal:", license.message)
process.exit(1)
}
console.log("Bot Number:", license.botNumber)
console.log("Owner:", license.owner)Config Options
| Key | Type | Wajib | Default | Keterangan |
|--------------|----------|-------|---------|--------------------------------------------|
| token | string | ✅ | — | License token |
| api | string | ✅ | — | Base URL license server |
| botNumber | string | ⚠️* | — | Nomor bot (wajib untuk checkLicense) |
| hmacSecret | string | ❌ | — | HMAC secret (kalau server pakai signature) |
| timeout | number | ❌ | 15000 | Timeout request dalam ms |
| retries | number | ❌ | 1 | Jumlah retry kalau gagal karena jaringan |
| retryDelay | number | ❌ | 700 | Delay antar retry dalam ms |
API
loadLicense(config)
Ambil info license dan kembalikan { botNumber, owner }.
verifyLicense(config)
Sama seperti loadLicense, tapi menggunakan endpoint /check dengan validasi botNumber.
checkLicense(config)
Raw check ke server — kembalikan response asli.
getLicenseInfo(config)
Raw info dari server — kembalikan response asli.
applyLicense(config, target?)
Apply license ke object target (default: globalThis).
Set pairingPhoneNumber dan owner otomatis.
createLicenseClient(defaultConfig)
Buat instance client dengan config default.
import { createLicenseClient } from "swift-license"
const client = createLicenseClient({
token: "SWIFT-001",
api: "https://your-license-api.com",
hmacSecret: "your-hmac-secret",
timeout: 10000,
retries: 2
})
const info = await client.load()HMAC Signature
Kalau license server kamu pakai verifikasi HMAC, cukup tambahkan hmacSecret ke config.
Package otomatis akan kirim header:
x-timestamp: <unix ms>
x-signature: <hmac-sha256 hex>Format payload HMAC: {timestamp}.{jsonBody}
Error Handling
Semua fungsi selalu return object — tidak pernah throw.
const result = await loadLicense({ token: "", api: "" })
// → { success: false, message: "License token tidak boleh kosong" }Kondisi yang ditangani otomatis:
- Token / API kosong → pesan jelas
- URL tidak valid → pesan jelas
- Request timeout → pesan jelas
- Error jaringan → retry, lalu pesan jelas
- Response bukan JSON → pesan jelas
- HTTP 4xx/5xx → status code + pesan dari server
Author
Fauzialifatah
Creator of Swift License System
GitHub: https://github.com/Alifatahfauzi
License
MIT
