npm package: @selfrwrd/baileys
Description: Super WhatsApp Web API
Author: himmel-ext
Latest version: 1.0.5

# Baileys (Mod)

![npm](https://img.shields.io/npm/v/@selfrwrd/baileys?style=flat-square)
![lisensi](https://img.shields.io/npm/l/@selfrwrd/baileys?style=flat-square)
![GitHub issues](https://img.shields.io/github/issues/selfrwrd/Baileys?style=flat-square)

Baileys adalah library WhatsApp Web API non-resmi yang ringan, lengkap, dan canggih, ditulis dalam JavaScript/TypeScript.

## 🚀 Tentang Proyek Ini

Library ini berkomunikasi langsung dengan WebSocket WhatsApp, sehingga tidak memerlukan *browser* otomatis seperti Selenium. Ini membuatnya sangat cepat, efisien, dan ideal untuk bot atau otomatisasi.

Berdasarkan file yang ada, versi ini tampaknya mendukung fitur-fitur modern WhatsApp, termasuk:

* **Pesan:** Mengirim dan menerima semua jenis pesan (teks, gambar, video, audio, stiker, dokumen, lokasi).
* **Manajemen Grup:** Membuat grup, menambah/mengeluarkan anggota, mengubah admin, memperbarui info grup.
* **Manajemen Komunitas:** Dukungan untuk fitur Komunitas WhatsApp.
* **Manajemen Newsletter:** Kemampuan untuk berinteraksi dengan Saluran (Newsletter).
* **Fitur Bisnis:** Interaksi dengan katalog produk dan fitur WhatsApp Business lainnya.
* **Multi-Device:** Mendukung mode Multi-Device secara penuh.
* **Event Listener:** Mendengarkan berbagai pembaruan *real-time* (status koneksi, pesan masuk, pembaruan grup, status dibaca, dll.).

## ⚠️ Peringatan Wajib (Disclaimer)

**PENTING:** Ini adalah API non-resmi dan penggunaannya **melanggar Ketentuan Layanan WhatsApp**. Akun Anda memiliki risiko untuk diblokir (di-*banned*) secara sementara atau permanen oleh WhatsApp.

Gunakan dengan risiko Anda sendiri. Developer tidak bertanggung jawab atas segala konsekuensi yang timbul dari penggunaan library ini.

## 💾 Instalasi

Anda dapat menginstal library ini menggunakan `npm` atau `yarn`:

```bash
npm install @selfrwrd/baileys

Atau jika Anda menggunakan yarn:
yarn add @selfrwrd/baileys

⚡ Contoh Penggunaan
Berikut adalah contoh dasar untuk terhubung ke WhatsApp, mencetak QR code di terminal, menyimpan sesi, dan membalas pesan "ping" dengan "pong".
const { default: makeWASocket, useMultiFileAuthState, DisconnectReason } = require('@selfrwrd/baileys');
const { Boom } = require('@hapi/boom');
const pino = require('pino');

// Fungsi utama untuk menjalankan bot
async function connectToWhatsApp() {
    // Siapkan penyimpanan otentikasi multi-file
    const { state, saveCreds } = await useMultiFileAuthState('baileys_auth_info');
    
    // Buat koneksi socket
    const himmel = makeWASocket({
        // Gunakan logger pino (level 'silent' agar tidak terlalu berisik)
        logger: pino({ level: 'silent' }),
        printQRInTerminal: true,
        auth: state
    });

    // Menyimpan kredensial setiap kali ada pembaruan
    himmel.ev.on('creds.update', saveCreds);

    // Menangani pembaruan koneksi
    himmel.ev.on('connection.update', (update) => {
        const { connection, lastDisconnect } = update;
        if (connection === 'close') {
            // Cek apakah perlu menyambung ulang
            const shouldReconnect = (lastDisconnect.error instanceof Boom)
                ? lastDisconnect.error.output.statusCode !== DisconnectReason.loggedOut
                : true;
            
            console.log('Koneksi terputus:', lastDisconnect.error, ', menyambung ulang:', shouldReconnect);
            
            if (shouldReconnect) {
                connectToWhatsApp();
            }
        } else if (connection === 'open') {
            console.log('Koneksi berhasil tersambung! ✨');
        }
    });

    // Menangani pesan yang masuk
    himmel.ev.on('messages.upsert', async (m) => {
        console.log('Pesan baru:', JSON.stringify(m, undefined, 2));

        // Ambil pesan pertama (selalu dalam bentuk array)
        const msg = m.messages[0];
        if (!msg.key.fromMe && m.type === 'notify') {
            
            // Cek jika pesan adalah "ping"
            if (msg.message?.conversation === 'ping') {
                await himmel.sendMessage(msg.key.remoteJid, { text: 'pong!' }, { quote: msg });
            }
        }
    });
}

// Jalankan bot
connectToWhatsApp();

📄 Lisensi
Proyek ini (Baileys) dilisensikan di bawah Lisensi MIT.