@bufferstudio/baileys-natsu
v1.2.3
Published
WhatsApp Web API library built from scratch
Maintainers
Readme
baileys-natsu-v1
WhatsApp Web API — lightweight, modern, interactive.
Install
npm install baileys-natsu-v1Quick Start
import makeWASocket from 'baileys-natsu-v1'
const sock = makeWASocket({
printQRInTerminal: true,
auth: { creds, keys },
})
sock.ev.on('messages.upsert', ({ messages }) => {
for (const msg of messages) {
if (msg.isSystemNotification) continue
console.log(msg.key.remoteJid, msg.message?.conversation)
}
})Features
- Interactive Messages (buttons, lists, native flow)
- Native Flow buttons:
cta_reminder,call_button,otp_button,authentication_button,voice_call,video_call_button,send_location,catalog_message,address_message,order_details,order_status,review_and_pay,payment_status,payment_method,track_order,reordenar,cancel_order,clear_chat,navegaToPantalla,flow_action,mpm,card_message,reply_button,url_button - Commerce: catalog, orders, payments
- System notification filter (
msg.isSystemNotification) - ExternalAdReply helper
- Audio group status fix
- Lottie stickers, newsletters, group mentions
- Rich text formatting
Examples
Send Native Flow buttons
import makeWASocket, { buildNativeFlowButton } from 'baileys-natsu-v1'
const sock = makeWASocket({ printQRInTerminal: true, auth })
const nativeFlow = buildNativeFlowButton(
'Recarga completada',
'Selecciona una opción',
[
{ id: 'ver_saldo', text: '💰 Ver saldo' },
{ id: 'comprar_paquete', text: '📦 Comprar paquete' },
{ id: 'hablar_agente', text: '👤 Hablar con agente' },
]
)
await sock.sendMessage('[email protected]', nativeFlow)Send List message
import { buildListMessage, buildListSection } from 'baileys-natsu-v1'
const listMsg = buildListMessage(
'Menú principal',
'Selecciona una categoría',
'Ver opciones',
[
buildListSection('📱 Planes', [
{ id: 'plan_basico', title: 'Básico', description: '10 GB por $199' },
{ id: 'plan_premium', title: 'Premium', description: 'Ilimitado por $499' },
]),
buildListSection('🎮 Extras', [
{ id: 'paquete_redes', title: 'Redes sociales', description: '5 GB redes por $99' },
]),
]
)
await sock.sendMessage('[email protected]', listMsg)Buttons with ExternalAdReply
import { buildInteractiveMessage, buildExternalAdReply } from 'baileys-natsu-v1'
const msg = buildInteractiveMessage(
'Ofertas del mes',
buildExternalAdReply({
title: '🔥 50% OFF en recargas',
body: 'Válido hasta el 31 de julio',
mediaUrl: 'https://ejemplo.com/banner.jpg',
mediaType: 1,
thumbnail: someBufferThumbnail,
sourceUrl: 'https://ejemplo.com/oferta',
sourceType: 'Banner',
}),
[
{ buttonId: 'recargar', buttonText: { displayText: '🔄 Recargar ahora' } },
{ buttonId: 'ver_mas', buttonText: { displayText: '📋 Ver ofertas' } },
]
)
await sock.sendMessage('[email protected]', msg)Catalog message
import { buildCatalogMessage } from 'baileys-natsu-v1'
const catalog = buildCatalogMessage(
'Tienda Online',
'Productos disponibles',
[
{
id: 'prod_001',
title: 'Zapatos Nike Air',
description: 'Talla única, color negro',
imageUrl: 'https://ejemplo.com/nike.jpg',
priceAmount: '1599000',
priceCurrency: 'COP',
salePriceAmount: '1299000',
},
],
'Ver catálogo completo'
)
await sock.sendMessage('[email protected]', catalog)Filter system notifications
import makeWASocket from 'baileys-natsu-v1'
const sock = makeWASocket({ printQRInTerminal: true, auth })
sock.ev.on('messages.upsert', ({ messages }) => {
messages.forEach(msg => {
if (msg.isSystemNotification) return
console.log('Mensaje real:', msg.key.remoteJid, msg.message?.conversation)
})
})API
import {
makeWASocket,
useMultiFileAuthState,
makeInMemoryStore,
downloadMediaMessage,
proto,
isSystemNotification,
buildExternalAdReply,
buildInteractiveMessage,
buildNativeFlowButton,
buildListMessage,
buildCatalogMessage,
buildOrderDetails,
buildPaymentStatus,
NATIVE_FLOW_BUTTONS,
formatRichText,
fixAudioStatusUpload,
} from 'baileys-natsu-v1'Colaboradores
- @manuelvgx — Creador, compilación, readme, tests
- @WhiskeySockets — Baileys original (WAProto)
License
MIT
