Requisitos
O
zapo requer Node.js >= 20.9.0. O pacote entrega builds duais ESM/CJS e tipos TypeScript completos.Instale o pacote principal
O ecossistema de pacotes
zapo-js é o único install obrigatório. Todo o resto é um pacote opcional @zapo-js/* que você adiciona conforme a necessidade:
zapo-js — client core, coordinators, contrato de store
@zapo-js/store-sqlite — backend SQLite
@zapo-js/store-postgres — backend PostgreSQL
@zapo-js/store-mysql — backend MySQL
@zapo-js/store-redis — backend Redis
@zapo-js/store-mongo — backend MongoDB
@zapo-js/media-utils — thumbnails, probes, waveforms
@zapo-js/voip — chamadas de voz do WhatsApp
@zapo-js/wam — paridade de telemetria do WhatsApp Web (analytics)
@zapo-js/mcp-server — ferramenta dev: controle por um agente de IA
@zapo-js/fake-server — ferramenta dev: servidor de teste in-process
Adicione um backend de armazenamento
Ozapo persiste o estado de autenticação e do Signal por meio de uma store plugável. Escolha o backend que combina com o seu deployment e instale o pacote dele:
Você também pode rodar sem backend algum — a store em memória embutida funciona de imediato e é ótima para testes. Ela apenas não sobrevive a um restart do processo, então você teria que reparear a cada boot.
Peer dependencies opcionais
Instale-as apenas se você usar a funcionalidade correspondente:pino+pino-pretty— necessários apenas se você usarcreatePinoLogger. Sem eles, oConsoleLoggerembutido é usado.ws— necessário apenas para rotear o WebSocket através de um proxy. OWebSocketnativo do runtime não consegue receber umAgent/dispatcher HTTP, então ozaporecorre aowspara a pernaproxy.ws. Sem um proxy, oWebSocketembutido é usado e você não precisa deste pacote.argo-codec— necessário apenas para conexões mobile (por enquanto). O fluxo companion padrão (QR / código de pareamento) não o usa.
Enviando mídia
ffmpeg/ffprobe e usa sharp, então garanta que esses binários estejam disponíveis. Veja o guia de mídia para saber como conectar o processador ao client.
@zapo-js/media-utils também lista file-type (^19) como peer dependency opcional. Instale-o (npm install file-type) para habilitar a detecção automática de mimetype — sem ele, a resolução de mimetype do guia de mídia volta a exigir um mimetype explícito em cada envio.Chamadas de voz
Instale@zapo-js/voip para fazer e receber chamadas de voz do WhatsApp. Ele é distribuído como um plugin de WaClient e puxa duas peer dependencies próprias:
@roamhq/wrtc— SCTP para o transporte de relay.libmlow-wasm— perfil Opus do WhatsApp, em WebAssembly (sem build nativo).
voipPlugin() ao client.
Paridade de telemetria
Instale@zapo-js/wam para que a sessão emita as batches de analytics client-side w:stats que uma aba real do WhatsApp Web envia — uma melhoria de paridade de wire / anti-fingerprinting, não obrigatória para mensageria.
zapo-js. O registry de eventos WAM (@vinikjkkj/wa-wam) é fixado como dependencies regular do plugin, então vem transitivamente.
Veja o guia WAM para saber como conectar wamPlugin() ao client. É opt-in: pule-o a menos que você especificamente queira a paridade.
