npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@neelegirl/baileys

v1.5.6

Published

WhatsApp API for wa-api, a multi-device WhatsApp Web API client

Readme




❗ Wichtige Hinweise

Dieses Projekt ist eine zarte Eigenkreation von @neelegirl – es steht in keiner offiziellen Verbindung zu WhatsApp.

⚠️ Bitte benutze es verantwortungsvoll:
✖️ Kein Spam, keine Massennachrichten
✖️ Kein Missbrauch für unethische Zwecke
✔️ Stattdessen: Lasst uns respektvoll Magie verbreiten! 🌟

💬 Haftungshinweis:
Die Entwickler:innen übernehmen keine Verantwortung für den Gebrauch. Lies die MIT-Lizenz für Details.


🧚‍♀️ Warum @neelegirl/baileys?

Zauberhafte Vorteile

  • 🧠 Ultra leichtgewichtig – keine Browser- oder Selenium-Monster nötig!
  • 🌈 Moderne WebSocket-Magie direkt, schnell & stabil
  • 💖 Vollständige Multi-Device Unterstützung
  • 🧩 LID-kompatibel (Linked ID Erkennung & Nutzung)
  • 🧷 Saubere TypeScript-Typen, DX zum Verlieben

🌈 Installation (Dein magisches Setup)

Mit yarn:

yarn add @neelegirl/baileys

Mit npm:

npm i @neelegirl/baileys

Bleeding-edge direkt von GitHub:

yarn add github:neelegirl/baileys
# oder
npm i github:neelegirl/baileys

Import – ganz leicht:

import makeWASocket, { useMultiFileAuthState, Browsers } from '@neelegirl/baileys'

🌸 Quickstart (inkl. LID-Magic)

Ein kurzer, süßer Start in deinen Zauberwald – mit QR-Login, Auto-Reconnect und LID-Handling. 💫

import makeWASocket, {
  useMultiFileAuthState,
  DisconnectReason,
  fetchLatestBaileysVersion,
  jidDecode
} from '@neelegirl/baileys'

async function start() {
  const { state, saveCreds } = await useMultiFileAuthState('./auth_neele')
  const { version } = await fetchLatestBaileysVersion()

  const sock = makeWASocket({
    version,
    auth: state,
    browser: ['Neele Princess','Safari','1.0'],
    printQRInTerminal: true, // Für Desktop-Dev – mobil gern mit UI scannen
    markOnlineOnConnect: false,
    syncFullHistory: false
  })

  // 💖 LID-kompatibel: extrahiere sichere Sender-IDs
  const getSenderId = (m: any) => {
    const participant = m?.key?.participant || m?.participant || m?.sender
    const lid = participant || m?.key?.remoteJid
    const decoded = lid ? jidDecode(lid) : null
    return decoded?.user ? `${decoded.user}@${decoded.server}` : (lid || 'anon')
  }

  sock.ev.on('messages.upsert', async ({ messages }) => {
    const m = messages[0]
    if (!m?.message) return

    const from = m.key.remoteJid
    const sender = getSenderId(m)

    const body = m.message?.conversation
      || m.message?.extendedTextMessage?.text
      || m.message?.imageMessage?.caption
      || ''

    if (/^!ping$/i.test(body)) {
      await sock.sendMessage(from, { text: '🏓 Pong! Neele-Magic online ✨' }, { quoted: m })
    }

    if (/^!sticker$/i.test(body) && m.message?.imageMessage) {
      const stream = await sock.downloadMediaMessage(m)
      await sock.sendMessage(from, { sticker: stream }, { quoted: m })
    }
  })

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

  sock.ev.on('connection.update', (u) => {
    const { connection, lastDisconnect } = u
    if (connection === 'close') {
      const shouldReconnect =
        (lastDisconnect?.error as any)?.output?.statusCode !== DisconnectReason.loggedOut
      if (shouldReconnect) start()
    } else if (connection === 'open') {
      console.log('🌸 Verbunden – bereit zum Glitzern!')
    }
  })
}

start().catch(console.error)

🧁 Häufige Rezepte

  • 💌 Nachrichten: sock.sendMessage(jid, { text: 'Hello 🌸' })
  • 📸 Medien: sock.sendMessage(jid, { image: fs.readFileSync('pic.jpg'), caption: 'Kawaii!' })
  • 🎀 Sticker: Antwort auf imageMessage{ sticker: stream }
  • 👥 Gruppen: sock.groupCreate('Neele Club', [user1, user2])
  • 🧲 LID-ID: mit jidDecode() schön & sicher nutzen

💠 LID-Kompatibilität (Kurz erklärt)

LID (Linked ID) sorgt dafür, dass Benutzer:innen auch über geräteübergreifende IDs korrekt erkannt werden.
Dieses Paket ist voll LID-kompatibel:

  • Extraktion & Normalisierung von Absender-IDs
  • Sicheres Antworten, auch wenn die Gegenstelle Geräte wechselt
  • Sanfte Fallbacks, wenn keine LID vorliegt

Ergebnis: stabilere Replies, weniger Rätselraten, mehr Glitzer ✨


❤️ Credits & Danksagung

Mit Liebe, Glitzer und rosa Codezeilen von @neelegirl erschaffen.
Wenn dir dieses Projekt gefällt:

⭐ Gib ihm ein ⭐️ auf GitHub – das wär sooo süß! 🌟