npm package: @otaxayun/baileys
Description: WhatsApp API Modification
Author: Otapengenkawin
Latest version: 6.7.33

⸙ 𝙊𝙏𝘼𝙓 — 𝙎𝙔𝙎𝙏𝙀𝙈.𝘽𝘼𝙄𝙇𝙀𝙔𝙎

<div align="center"><img src="https://i.ibb.co/LPw9Cbp/OTAX-Header.png" width="100%"/>
<a href="https://wa.me/62819459389117"><img src="https://img.shields.io/badge/WhatsApp-Owner-brightgreen?style=for-the-badge"></a>
<a href="https://t.me/Otapengenkawin"><img src="https://img.shields.io/badge/Channel-OTAX-green?style=for-the-badge"></a>
<a href="https://t.me/OtaxTeam"><img src="https://img.shields.io/badge/Telegram-Team-blue?style=for-the-badge"></a>
</div>
---

⸙ Deskripsi

sistem.baileys adalah modul inti OTAX yang menangani seluruh proses koneksi WhatsApp. Modul ini mengelola lifecycle WebSocket Baileys, validasi sesi, pairing, sinkronisasi event, media handler, hingga mekanisme auto-recovery. Sistem ini didesain untuk performa tinggi, reconnect cepat, dan stabilitas maksimal dalam ekosistem OTAX.


---

⸙ Fitur Utama

⚙️ Inisialisasi WebSocket Baileys dengan konfigurasi OTAX

🔁 Auto-reconnect dan pemulihan state ketika koneksi terputus

🧩 Integrasi penuh ke modul OTAX lain: SessionPool, SenderLock, Gateway, EventRouter

📡 Event lengkap: messages.upsert, connection.update, contacts.update, groups.update

🔒 Proteksi runtime: anti-crash, anti-tamper, auto-heal, markOnlineOnConnect control

📦 Store terintegrasi: in-memory, FS, dan adapter eksternal

🖼️ Media utility: unduh, reupload, convert, decrypt, stream

📲 Pairing mode ganda: QR dan pairing code


---

⸙ Alur Kerja sistem.baileys

1. Memuat kredensial dari OTAX_SESSION_DIR


2. Membuka koneksi WebSocket WhatsApp


3. Melakukan sinkronisasi perangkat


4. Mengaktifkan event handler inti


5. Menghubungkan store untuk riwayat dan retry


6. Menjalankan sistem proteksi runtime


7. Mengaktifkan server event internal untuk modul lain


8. Jika koneksi terputus, sistem menjalankan auto-recovery




---

⸙ Konfigurasi Sistem

Gunakan environment variable berikut:

OTAX_SESSION_DIR=./data/auth/otax
OTAX_LOG_DIR=./logs
OTAX_SENDER_NUMBER=6285XXXXXXXX
OTAX_RUNTIME_MODE=production
OTAX_USE_STORE=true

Struktur direktori yang direkomendasikan:

.
├─ system/
│  └─ baileys/
│     ├─ index.ts
│     ├─ core.ts
│     ├─ connect.ts
│     ├─ events.ts
│     └─ media.ts
├─ data/
│  └─ auth/
├─ logs/
└─ package.json


---

⸙ Inisialisasi Socket

TypeScript:

import makeWASocket, { useMultiFileAuthState, Browsers, DisconnectReason } from "@whiskeysockets/baileys"
import pino from "pino"

export async function initBaileys() {
  const { state, saveCreds } = await useMultiFileAuthState(process.env.OTAX_SESSION_DIR)
  const sock = makeWASocket({
    auth: state,
    browser: Browsers.macOS("OTAX-System"),
    markOnlineOnConnect: false,
    printQRInTerminal: true,
    logger: pino({ level: "silent" })
  })

  sock.ev.on("creds.update", saveCreds)

  sock.ev.on("connection.update", ({ connection, lastDisconnect }) => {
    const code = lastDisconnect?.error?.output?.statusCode
    if (connection === "close" && code !== DisconnectReason.loggedOut) initBaileys()
  })

  return sock
}


---

⸙ Pairing Mode

import makeWASocket from "@whiskeysockets/baileys"

export async function pairing() {
  const sock = makeWASocket({ printQRInTerminal: false })
  if (!sock.authState.creds.registered) {
    const number = process.env.OTAX_SENDER_NUMBER
    const code = await sock.requestPairingCode(number)
    console.log("Pairing Code:", code)
  }
}


---

⸙ Event Handler

export function attachEvents(sock) {
  sock.ev.on("messages.upsert", async ({ messages }) => {
    for (const m of messages) {
      const text = m.message?.conversation || m.message?.extendedTextMessage?.text || ""
      if (/^\/ping$/i.test(text)) await sock.sendMessage(m.key.remoteJid, { text: "⸙ OTAX — pong" })
    }
  })

  sock.ev.on("groups.update", console.log)
  sock.ev.on("presence.update", console.log)
  sock.ev.on("contacts.update", console.log)
}


---

⸙ Media Utility

import { downloadMediaMessage } from "@whiskeysockets/baileys"
import { createWriteStream } from "fs"

export async function saveImage(sock, m) {
  const stream = await downloadMediaMessage(m, "stream", {}, { reuploadRequest: sock.updateMediaMessage })
  stream.pipe(createWriteStream("./file.jpeg"))
}


---

⸙ Mode Rekomendasi

markOnlineOnConnect: false untuk mode silent
syncFullHistory: true untuk pemulihan riwayat
browser: Browsers.macOS("OTAX-System") agar sinkronisasi optimal
linking: pairing code untuk deploy lewat panel atau Telegram


---

⸙ Keamanan

Gunakan environment variable untuk semua kredensial
Hindari memasukkan nomor atau token langsung ke kode
Amankan folder session
Gunakan log minimal untuk menghindari bocor data
Aktifkan anti-tamper saat produksi


---

⸙ Lisensi

Berbasis pada Baileys MIT license
Distribusi mengikuti standar lisensi upstream
Gunakan secara bertanggung jawab sesuai kebijakan WhatsApp


---

⸙ Dukungan

WhatsApp Owner: wa.me/6281945938917
Telegram Team: t.me/Otapengenkawin