Sub-APIs (v1) → escape hatches del transporte (v2)
En v1 el bot exponía 5 sub-APIs tipadas de WhatsApp: bot.groups,
bot.profile, bot.privacy, bot.chats, bot.presence. En v2 fueron
eliminadas del core: @botmesh/core es agnóstico de transporte, y la
gestión de grupos/privacidad/perfil es específica de WhatsApp — no existe
con la misma forma en Telegram o Discord.
Para todo lo demás — crear grupos, links de invitación, ajustes de
privacidad, archivar/fijar/silenciar chats — accede al socket crudo desde
el provider de Baileys. provider.socket lo devuelve tipado como unknown
(los tipos de Baileys no forman parte de la API de @botmesh/baileys);
socketOf(provider) de @botmesh/baileys/internal lo devuelve tipado como
el socket de la versión de Baileys instalada (sin garantía semver). Importar
/internal arrastra los .d.ts de Baileys, que no compilan con
skipLibCheck: false: mantén "skipLibCheck": true en un proyecto que lo
use (la entrada principal no lo necesita):
import { Bot } from '@botmesh/core'import { BaileysProvider } from '@botmesh/baileys'import { socketOf } from '@botmesh/baileys/internal'const provider = new BaileysProvider({ session: 'mi-bot' })const bot = new Bot({ provider })bot.on('ready', async () => { const sock = socketOf(provider) // el socket crudo de Baileys 7, tipado if (!sock) return // Equivalente de bot.groups.create(...) de v1: const group = await sock.groupCreate('Mi grupo', ['573001234567@s.whatsapp.net']) // bot.profile.setName(...) de v1: await sock.updateProfileName('Mi Bot') // bot.privacy.setLastSeen(...) de v1: await sock.updateLastSeenPrivacy('all') // bot.groups.inviteLink(...) de v1: const code = await sock.groupInviteCode(group.id)})await bot.start()
El código específico de transporte se queda específicoTodo lo que escribas contra provider.socket solo funciona con
@botmesh/baileys (y solo contra una conexión real de WhatsApp — no con el
MockProvider que usa createTestBot()). Protégelo detrás de
provider.id === 'baileys' si tu código puede correr en otros transportes.
Ver la documentación de Baileys
para la API completa del socket (groupCreate, groupMetadata,
groupParticipantsUpdate, updateProfilePicture, chatModify, …).