{"_id":"fixo-baileys","_rev":"4-7e9b481048fdeb15e0bccccc8954215a","name":"fixo-baileys","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"fixo-baileys","version":"1.0.0","keywords":["whatsapp","fixo","baileys","whatsapp-web"],"author":{"name":"Fixo"},"license":"MIT","_id":"fixo-baileys@1.0.0","maintainers":[{"name":"fixo_dev","email":"onethsara270@gmail.com"}],"dist":{"shasum":"56bdcc336dea87a7acafe18d6e82a7dc7a0de27e","tarball":"https://registry.npmjs.org/fixo-baileys/-/fixo-baileys-1.0.0.tgz","fileCount":109,"integrity":"sha512-iVVdVyIy8fEY14fQWz63qKf55uJuZ01+qar0jV0wXYw0zgfGK38XqQnPMZpMdt8iCChVvMoCXW+r2332kjIDqg==","signatures":[{"sig":"MEUCIQD36cbaSZpXLK1jfMNEQCUD75BlprBYme2Y5d9RiZCLjAIgd+lJ9ApqFG40Hq5Qlq/I3vX9txiJb9PqmsEL+aio9V8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6988535},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a35c22e77a54d8482653e226cf245fe1410546ea","scripts":{"build":"tsc && tsc-esm-fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"fixo_dev","email":"onethsara270@gmail.com"},"_npmVersion":"11.19.1","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.13.0","pino":"^9.6","p-queue":"^9.0.0","libsignal":"^6.0.0","lru-cache":"^11.1.0","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","jest":"^30.0.5","jimp":"^1.6.1","jiti":"^2.4.2","open":"^8.4.2","eslint":"^9","ts-jest":"^29.4.0","typedoc":"^0.27.9","prettier":"^3.5.3","@types/ws":"^8.0.0","@eslint/js":"^9.31.0","release-it":"^20.0.1","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.9.0","pino-pretty":"^13.1.1","tsc-esm-fix":"^3.1.2","protobufjs-cli":"^1.1.3","link-preview-js":"^3.0.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.2","eslint-plugin-prettier":"^5.4.0","typedoc-plugin-markdown":"4.4.2","@typescript-eslint/parser":"^8","@typescript-eslint/eslint-plugin":"^8"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.1.3","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fixo-baileys_1.0.0_1790104693269_0.5473911122265598","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"fixo-baileys","version":"1.0.1","keywords":["whatsapp","fixo","baileys","whatsapp-web"],"author":{"name":"Fixo"},"license":"MIT","_id":"fixo-baileys@1.0.1","maintainers":[{"name":"fixo_dev","email":"onethsara270@gmail.com"}],"dist":{"shasum":"20ae0d0ac93eaa442ee6be823c05542d4ea8fd38","tarball":"https://registry.npmjs.org/fixo-baileys/-/fixo-baileys-1.0.1.tgz","fileCount":109,"integrity":"sha512-7cDGxlhfUgCBZqKwV4yNaHyn/TD5OtYRpKnhz348KwISUkSXky191owiCqbnH+yKrJ3BHYvSkY/kVTcyzBV4Gw==","signatures":[{"sig":"MEUCIQCOQxxEtjtfe0R7SfSRi6l5DE15rHS6q8LPigKZ00yX/QIgKKHmA6o6sFrOqKS8hlhn3isogbxxJYnttBRhKOjzpWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCLxuYSqTLF+AO8vSrfLUDxdV6Efq/On+MTBvkWFpHCUQIgO462tVGhObTXbYyIg8fDllzqsvalRpW1ZLrMifv35KE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7004093},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"5a78595f73f6f4d41851b51ef36ccfc995c34785","scripts":{"build":"tsc && tsc-esm-fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"fixo_dev","email":"onethsara270@gmail.com"},"_npmVersion":"11.20.0","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.13.0","pino":"^9.6","p-queue":"^9.0.0","libsignal":"^6.0.0","lru-cache":"^11.1.0","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","jest":"^30.0.5","jimp":"^1.6.1","jiti":"^2.4.2","open":"^8.4.2","eslint":"^9","ts-jest":"^29.4.0","typedoc":"^0.27.9","prettier":"^3.5.3","@types/ws":"^8.0.0","@eslint/js":"^9.31.0","release-it":"^20.0.1","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.9.0","pino-pretty":"^13.1.1","tsc-esm-fix":"^3.1.2","protobufjs-cli":"^1.1.3","link-preview-js":"^3.0.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.2","eslint-plugin-prettier":"^5.4.0","typedoc-plugin-markdown":"4.4.2","@typescript-eslint/parser":"^8","@typescript-eslint/eslint-plugin":"^8"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.1.3","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fixo-baileys_1.0.1_1790139473953_0.03347874476812862","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"fixo-baileys","version":"1.0.3","keywords":["whatsapp","fixo","baileys","whatsapp-web"],"author":{"name":"Fixo"},"license":"MIT","_id":"fixo-baileys@1.0.3","maintainers":[{"name":"fixo_dev","email":"onethsara270@gmail.com"}],"dist":{"shasum":"d343fef57ebae600d91daef30f9c1ae3d7607ad6","tarball":"https://registry.npmjs.org/fixo-baileys/-/fixo-baileys-1.0.3.tgz","fileCount":108,"integrity":"sha512-Sq6DFMcxsDRI7+Lp0YXwwXfW65pc4KKlHc31Qg39nnOFovqdy08NA+rCmnM5m2LhOQNpMj0IDqP2YWtTE8ZDCQ==","signatures":[{"sig":"MEUCIAyL0MDECLScQRIAcxzBfTdoOLVpYCZLIOfyYs7ocX0JAiEA++OuegbRiCFDOo0Wsdn0pX+SQqFy24+633ie5CI9iM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDpCgAzcf7nvfbWWv7sIv6hjt7HXmHadJw0a/8sKS2tAwIhALRQb/R07Btzp2MvvcnV88X+fVT07ZACXcsxfBM6YGua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7017542},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"8f58f04ce9fb7703aaf4ed1be2141a0936343f61","scripts":{"build":"tsc && tsc-esm-fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"fixo_dev","email":"onethsara270@gmail.com"},"_npmVersion":"11.20.0","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.13.0","pino":"^9.6","p-queue":"^9.0.0","libsignal":"^6.0.0","lru-cache":"^11.1.0","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","jest":"^30.0.5","jimp":"^1.6.1","jiti":"^2.4.2","open":"^8.4.2","eslint":"^9","ts-jest":"^29.4.0","typedoc":"^0.27.9","prettier":"^3.5.3","@types/ws":"^8.0.0","@eslint/js":"^9.31.0","release-it":"^20.0.1","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.9.0","pino-pretty":"^13.1.1","tsc-esm-fix":"^3.1.2","protobufjs-cli":"^1.1.3","link-preview-js":"^3.0.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.2","eslint-plugin-prettier":"^5.4.0","typedoc-plugin-markdown":"4.4.2","@typescript-eslint/parser":"^8","@typescript-eslint/eslint-plugin":"^8"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.1.3","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fixo-baileys_1.0.3_1790593401258_0.7020631892123854","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"_id":"fixo-baileys@1.0.4","dist":{"shasum":"60ed843efe79564c78219c6c2d2db824911c9ea1","tarball":"https://registry.npmjs.org/fixo-baileys/-/fixo-baileys-1.0.4.tgz","fileCount":109,"integrity":"sha512-FtOYhL6EnhagxBZ0UoJfzAJ3oPg7eahTI9m7tAv2Un8c2+JOVtUSxCxDL3PKBgkimfMe42Dt/dZKWKyfHwOe0A==","signatures":[{"sig":"MEYCIQDozpl96pxSjf2wetTQAqJwKxObVbpLc4Pcby0z7Wov2AIhAPI6zeYP1SWulOBCEXw+nreJEHHQGeEyjoiq44AHaQpu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAxMkE8tBuRpP1Hf6MzC+g5dk44OuQnhQn+f5VFwxpoWAiBYD0RI1WtSXurM9wyxhzIoo3lcQn+7i05SJVLwBRSGAA=="}],"unpackedSize":7035040},"main":"lib/index.js","name":"fixo-baileys","type":"module","types":"lib/index.d.ts","author":{"name":"Fixo"},"engines":{"node":">=20.0.0"},"gitHead":"cae50f063a2bba3022c7fa09692379222bbb098a","license":"MIT","scripts":{"build":"tsc && tsc-esm-fix","prepublishOnly":"npm run build"},"version":"1.0.4","_npmUser":{"name":"fixo_dev","email":"onethsara270@gmail.com"},"keywords":["whatsapp","fixo","baileys","whatsapp-web"],"_npmVersion":"11.20.0","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"maintainers":[{"name":"fixo_dev","email":"onethsara270@gmail.com"}],"resolutions":{"tar":"^7.5.11","tmp":"^0.2.5","socks":"^2.8.8","flatted":"^3.4.2","basic-ftp":"^5.2.4","handlebars":"^4.7.9","ip-address":"^10.1.1","underscore":"^1.13.8","markdown-it":"^14.1.1","ajv@npm:^6.12.4":"^6.14.0","yaml@npm:^2.6.1":"^2.8.4","glob@npm:^10.2.2":"^10.5.0","glob@npm:^10.5.0":"^10.5.0","glob@npm:^10.3.10":"^10.5.0","js-yaml@npm:^4.1.0":"^4.1.1","js-yaml@npm:^3.13.1":"^3.14.2","minimatch@npm:^3.0.4":"^3.1.5","minimatch@npm:^3.1.2":"^3.1.5","minimatch@npm:^5.0.1":"^5.1.8","minimatch@npm:^9.0.4":"^9.0.9","minimatch@npm:^9.0.5":"^9.0.9","picomatch@npm:^2.0.4":"^2.3.2","picomatch@npm:^2.3.1":"^2.3.2","picomatch@npm:^4.0.0":"^4.0.4","picomatch@npm:^4.0.2":"^4.0.4","brace-expansion@npm:^1.1.7":"^1.1.13","brace-expansion@npm:^2.0.1":"^2.0.3"},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.13.0","pino":"^9.6","p-queue":"^9.0.0","libsignal":"^6.0.0","lru-cache":"^11.1.0","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"tsx":"^4.20.3","jest":"^30.0.5","jimp":"^1.6.1","jiti":"^2.4.2","json":"^11.0.0","open":"^8.4.2","eslint":"^9","ts-jest":"^29.4.0","typedoc":"^0.27.9","prettier":"^3.5.3","@types/ws":"^8.0.0","lru-cache":"^11.1.0","@eslint/js":"^9.31.0","release-it":"^20.0.1","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.9.0","pino-pretty":"^13.1.1","tsc-esm-fix":"^3.1.2","protobufjs-cli":"^1.1.3","link-preview-js":"^3.0.0","@eslint/eslintrc":"^3.3.1","esbuild-register":"^3.6.0","conventional-changelog":"^7.1.1","eslint-config-prettier":"^10.1.2","eslint-plugin-prettier":"^5.4.0","typedoc-plugin-markdown":"4.4.2","@typescript-eslint/parser":"^8","@whiskeysockets/eslint-config":"^1.0.0","conventional-changelog-angular":"^8.0.0","@typescript-eslint/eslint-plugin":"^8"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.1.3","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fixo-baileys_1.0.4_1791116945295_0.20780101976951393"}}},"time":{"created":"2026-09-22T19:18:13.210Z","modified":"2026-10-04T12:29:05.538Z","1.0.0":"2026-09-22T19:18:13.452Z","1.0.1":"2026-09-23T04:57:54.289Z","1.0.3":"2026-09-28T11:03:21.375Z","1.0.4":"2026-10-04T12:29:05.412Z"},"author":{"name":"Fixo"},"license":"MIT","keywords":["whatsapp","fixo","baileys","whatsapp-web"],"description":"A WebSockets library for interacting with WhatsApp Web","maintainers":[{"name":"fixo_dev","email":"onethsara270@gmail.com"}],"readme":"\n<!-- ═══════════════════════════════════════════════════════════\n     ⚡🔥 FIXO-BAILEYS — MEGA README 🔥⚡\n     Dark Neon • WhatsApp Web API • Multi-Device • Tracker-Free\n     ═══════════════════════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n<!-- ══════════ DARK NEON HERO ══════════ -->\n<img src=\"https://capsule-render.vercel.app/api?type=waving&color=0:FF1493,50:8A2BE2,100:00FFFF&height=280&section=header&text=FIXO%20BAILEYS&fontSize=90&fontColor=ffffff&animation=twinkling&fontAlignY=34&desc=%E2%9A%A1%20Next%20Generation%20WhatsApp%20Web%20API%20%E2%9A%A1&descAlignY=58&descSize=24\" width=\"100%\" />\n\n<!-- ══════════ NEON TYPING ══════════ -->\n<img src=\"https://readme-typing-svg.demolab.com?font=JetBrains+Mono&weight=700&size=22&duration=3000&pause=800&color=FF1493&center=true&vCenter=true&width=850&lines=%E2%9A%A1+FIXO-BAILEYS+%E2%9A%A1;%F0%9F%94%90+Tracker-Free+WhatsApp+API;%F0%9F%9A%80+Fast+%7C+Clean+%7C+Powerful;%F0%9F%92%96+Powered+by+FIXO+DEV+%F0%9F%92%96\" />\n\n<br/>\n\n<!-- ══════════ NEON BADGES ══════════ -->\n<p>\n  <img src=\"https://img.shields.io/badge/⚡_VERSION-1.0.4-FF1493?style=for-the-badge&labelColor=000000&logo=vercel&logoColor=FF1493\" />\n  <img src=\"https://img.shields.io/badge/📜_LICENSE-MIT-8A2BE2?style=for-the-badge&labelColor=000000&logo=opensourceinitiative&logoColor=8A2BE2\" />\n  <img src=\"https://img.shields.io/badge/🔧_NODE-%3E%3D_18-00FFFF?style=for-the-badge&labelColor=000000&logo=nodedotjs&logoColor=00FFFF\" />\n</p>\n\n<p>\n  <a href=\"https://www.npmjs.com/package/fixo-baileys\">\n    <img src=\"https://img.shields.io/npm/v/fixo-baileys?style=for-the-badge&labelColor=000000&color=FF1493&label=npm&logo=npm&logoColor=FF1493\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/fixo-baileys\">\n    <img src=\"https://img.shields.io/npm/dm/fixo-baileys?style=for-the-badge&labelColor=000000&color=8A2BE2&label=downloads&logo=npm&logoColor=8A2BE2\" />\n  </a>\n  <img src=\"https://img.shields.io/badge/💖_MADE_BY-FIXO_DEV-FF69B4?style=for-the-badge&labelColor=000000&logo=heart&logoColor=FF69B4\" />\n</p>\n\n<p>\n  <img src=\"https://img.shields.io/badge/🔐_SIGNAL-E2E_Encrypted-FF69B4?style=for-the-badge&labelColor=000000&logo=signal&logoColor=FF69B4\" />\n  <img src=\"https://img.shields.io/badge/⭐_STARS-WELCOME-FFC0CB?style=for-the-badge&labelColor=000000&logo=github&logoColor=FFC0CB\" />\n  <img src=\"https://img.shields.io/badge/🎀_PRs-OPEN-DDA0DD?style=for-the-badge&labelColor=000000&logo=git&logoColor=DDA0DD\" />\n</p>\n\n<br/>\n\n<!-- ══════════ VISITOR COUNTER ══════════ -->\n<p>\n  <img src=\"https://komarev.com/ghpvc/?username=Fixo123&label=VISITORS&color=FF1493&style=for-the-badge\" />\n  <img src=\"https://img.shields.io/github/stars/Fixo123/FIXO-BAILEYES-?style=for-the-badge&labelColor=000000&color=FF1493&label=STARS&logo=github\" />\n  <img src=\"https://img.shields.io/github/forks/Fixo123/FIXO-BAILEYES-?style=for-the-badge&labelColor=000000&color=8A2BE2&label=FORKS&logo=git\" />\n  <img src=\"https://img.shields.io/github/watchers/Fixo123/FIXO-BAILEYES-?style=for-the-badge&labelColor=000000&color=00FFFF&label=WATCHERS&logo=github\" />\n</p>\n\n<br/>\n\n<!-- ══════════ REPO CARD ══════════ -->\n<a href=\"https://github.com/Fixo123/FIXO-BAILEYES-\">\n  <img src=\"https://github-readme-stats.vercel.app/api/pin/?username=Fixo123&repo=FIXO-BAILEYES-&theme=radical&bg_color=000000&title_color=FF1493&icon_color=8A2BE2&text_color=FF69B4&border_color=FF1493\" />\n</a>\n\n<br/><br/>\n\n<img src=\"https://user-images.githubusercontent.com/73097560/115834477-dbab4500-a447-11eb-908a-139a6edaec5c.gif\" width=\"100%\" />\n\n</div>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🎯 QUICK STATS 🎯\n     ═══════════════════════════════════════════ -->\n<div align=\"center\">\n\n## 🎯 Qᴜɪᴄᴋ Sᴛᴀᴛꜱ 🎯\n\n| 📊 Metric | 💬 Value |\n|:---|:---|\n| ⚡ **Response Time** | < 50ms |\n| 📦 **Max File Size** | 2GB (streaming) |\n| 🔐 **Encryption** | Signal Protocol E2E |\n| 📱 **Platforms** | Multi-Device + Web |\n| 🎯 **API Compatibility** | 100% Baileys drop-in |\n| 🚫 **Trackers** | 0 (zero) |\n\n</div>\n\n<img src=\"https://capsule-render.vercel.app/api?type=rect&color=0:FF1493,50:8A2BE2,100:00FFFF&height=3&width=100%\" />\n\n---\n\n<!-- ═══════════════════════════════════════════\n     📚 TABLE OF CONTENTS 📚\n     ═══════════════════════════════════════════ -->\n<div align=\"center\">\n\n## 📚 Tᴀʙʟᴇ ᴏꜰ Cᴏɴᴛᴇɴᴛꜱ 📚\n\n<details open>\n<summary><b>💖 Click to expand</b></summary>\n\n<br/>\n\n| 🎀 | Section | 🎀 | Section |\n|:---:|:---|:---:|:---|\n| 🎯 | [What is FIXO-BAILEYS?](#-what-is-fixo-baileys) | 💎 | [Why FIXO-BAILEYS?](#-why-fixo-baileys) |\n| ⚡ | [Feature Arsenal](#-feature-arsenal) | 📦 | [Installation](#-installation) |\n| 🔌 | [Connection Guide](#-connection-guide) | 🎨 | [Interactive Buttons](#-interactive-buttons) |\n| 📢 | [Channel Media](#-channel-media) | 💖 | [Reactions](#-reactions) |\n| 🛠️ | [Core API Cheatsheet](#️-core-api-cheatsheet) | 🔐 | [Session Management](#-session-management) |\n| 📚 | [Event Reference](#-event-reference) | 🙏 | [Credits](#-credits) |\n| 🐍 | [Contribution Snake](#-contribution-snake) | ⚠️ | [Disclaimer](#️-disclaimer) |\n| 🃏 | [Card Menu](#-card-menu-sendcardmenu--player-card-sendplayercard) | 📢 | [Auto-Follow Channel](#-auto-follow-channel) |\n| 📣 | [Channel Status](#-channel-status-sendchannelstatus) | 📊 | [Polls](#-polls-sendpoll--sendpollvote) |\n| 🆕 | [Changelog](#-changelog) | | |\n\n</details>\n\n</div>\n\n<img src=\"https://capsule-render.vercel.app/api?type=rect&color=0:FF1493,50:8A2BE2,100:00FFFF&height=3&width=100%\" />\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🎀 WHAT IS SECTION 🎀\n     ═══════════════════════════════════════════ -->\n<div align=\"center\">\n\n## 🎀 Wʜᴀᴛ ɪꜱ FIXO-BAILEYS? 🎀\n\n</div>\n\n> ⚡ **FIXO-BAILEYS** is a **completely rebuilt, privacy-first fork** of the Baileys WhatsApp Web API — engineered from the ground up by **FIXO DEV** to deliver unmatched performance, ironclad privacy, and a buttery-smooth developer experience.\n\nWe stripped the original Baileys engine down to its core, **removed every hidden tracker**, **killed every background telemetry endpoint**, and **eliminated all the auto-follow newsletter junk**. What remains is a lean, mean, **pure messaging machine** 💫\n\n<div align=\"center\">\n\n> [!IMPORTANT]\n> 💖 **Drop-in replacement.** Every original Baileys API works identically. Zero rewriting. Zero breaking changes. Just a pure upgrade.\n\n</div>\n\n**🔑 Key Highlights:**\n\n- 🌐 **WhatsApp Web API** — Full Multi-Device support\n- 🔐 **Signal Protocol** — End-to-end encryption out of the box\n- 📦 **2GB Streaming** — Push large media without RAM blowups\n- 🚀 **Zero Telemetry** — No trackers, no analytics, no phone-home\n- 🎨 **Rich Messaging** — Buttons, lists, templates, reactions\n- ⚡ **Async/Await Native** — Modern JavaScript / TypeScript ready\n\n---\n\n<!-- ═══════════════════════════════════════════\n     💎 WHY SECTION 💎\n     ═══════════════════════════════════════════ -->\n<div align=\"center\">\n\n## 💎 Wʜʏ FIXO-BAILEYS? 💎\n\n</div>\n\n<table>\n<tr>\n<td width=\"50%\" valign=\"top\" align=\"center\">\n\n### ⚡ What You Get\n\n<br/>\n\n| | Feature |\n|:---:|:---|\n| 💖 | **100% Tracker-Free** |\n| ✨ | **Zero Bloat Code** |\n| ⚡ | **Lightning Response Time** |\n| 🎀 | **RAM-Friendly Streaming** |\n| 🌷 | **Optimized for Production Bots** |\n| 🔐 | **Secure by Default** |\n\n</td>\n<td width=\"50%\" valign=\"top\" align=\"center\">\n\n### 🚫 What We Removed\n\n<br/>\n\n| | Removed |\n|:---:|:---|\n| 🚫 | Hidden telemetry |\n| ⚠️ | Auto-follow: one channel only (see [Auto-Follow Channel](#-auto-follow-channel)) |\n| 🚫 | Background data leaks |\n| 🚫 | Unnecessary middleware |\n| 🚫 | Pointless overhead |\n| 🚫 | Trackers & analytics |\n\n</td>\n</tr>\n</table>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     ⚡ FEATURES SECTION ⚡\n     ═══════════════════════════════════════════ -->\n<div align=\"center\">\n\n## ⚡ Fᴇᴀᴛᴜʀᴇ Aʀꜱᴇɴᴀʟ ⚡\n\n<br/>\n\n| 🎁 Feature | 💬 Description | 🚦 |\n|:---|:---|:---:|\n| 📦 **2GB Streaming** | Push massive files without blowing up your RAM | ✅ |\n| 🚀 **Turbo Performance** | Built to fly even on low-tier hosting | ✅ |\n| 🎨 **Rich Buttons** | Buttons, lists, templates — full interactive API | ✅ |\n| 📢 **Channel Media** | Images, videos, audio & docs into Channels | ✅ |\n| 📣 **Channel Status** | Post text / image / video / voice statuses to your Channel like a normal WhatsApp status — `sock.sendChannelStatus()` | ✅ |\n| 🃏 **Card Menu** | Neon card-style menus & music player cards with your bot name | ✅ |\n| ⚡ **Instant Replies** | Zero-lag message pipeline | ✅ |\n| 📱 **Multi-Device** | WhatsApp Multi-Device + Web support | ✅ |\n| 🔐 **Signal Protocol** | Military-grade E2E encryption | ✅ |\n| 🎭 **Dual Connect** | QR Code **or** Pairing Code | ✅ |\n| 🔄 **Auto-Reconnect** | Smart reconnection with exponential backoff | ✅ |\n| 🗂️ **Multi-File Auth** | File-based or custom auth state | ✅ |\n| 🧩 **Plugin Ready** | Easy to extend with custom handlers | ✅ |\n| 📡 **WebSocket Events** | Full event emitter for real-time updates | ✅ |\n\n</div>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     📦 INSTALLATION 📦\n     ═══════════════════════════════════════════ -->\n<div align=\"center\">\n\n## 📦 Iɴꜱᴛᴀʟʟᴀᴛɪᴏɴ 📦\n\n</div>\n\n```bash\n# 💖 npm\nnpm install fixo-baileys\n\n# 🌸 yarn\nyarn add fixo-baileys\n\n# ✨ pnpm\npnpm add fixo-baileys\n```\n\n<div align=\"center\">\n\n<a href=\"https://www.npmjs.com/package/fixo-baileys\">\n  <img src=\"https://img.shields.io/badge/📦_View_on_npm-fixo_baileys-FF1493?style=for-the-badge&labelColor=000000&logo=npm&logoColor=FF1493\" />\n</a>\n\n<a href=\"https://www.npmjs.com/package/fixo-baileys\">\n  <img src=\"https://img.shields.io/npm/dm/fixo-baileys?style=for-the-badge&labelColor=000000&color=8A2BE2&label=downloads&logo=npm&logoColor=8A2BE2\" />\n</a>\n\n<a href=\"https://www.npmjs.com/package/fixo-baileys\">\n  <img src=\"https://img.shields.io/npm/v/fixo-baileys?style=for-the-badge&labelColor=000000&color=00FFFF&label=version&logo=npm&logoColor=00FFFF\" />\n</a>\n\n<a href=\"https://www.npmjs.com/package/fixo-baileys\">\n  <img src=\"https://img.shields.io/npm/l/fixo-baileys?style=for-the-badge&labelColor=000000&color=FF69B4&label=license&logo=npm&logoColor=FF69B4\" />\n</a>\n\n</div>\n\n💡 Pro Tip: Pair with pino for clean logging and @hapi/boom for error handling 🌷\n\n📋 Requirements:\n\n📦 Dependency 🔢 Version\nNode.js >= 18.0.0\nnpm / yarn / pnpm Latest\nMemory 512MB+ recommended\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🔌 CONNECTION GUIDE 🔌\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n🔌 Cᴏɴɴᴇᴄᴛɪᴏɴ Gᴜɪᴅᴇ 🔌\n\n</div>\n\n<details open>\n<summary><b>📱 Route 1 — QR Code 🌸</b></summary>\n\n<br/>\n\n```javascript\nimport makeWASocket, { useMultiFileAuthState } from 'fixo-baileys'\nimport P from 'pino'\n\nasync function bootUp() {\n    const { state, saveCreds } = await useMultiFileAuthState('fixo_session')\n\n    const sock = makeWASocket({\n        auth: state,\n        logger: P({ level: 'silent' }),\n        printQRInTerminal: true,\n        browser: ['FIXO-BAILEYS', 'Chrome', '1.0.0']\n    })\n\n    sock.ev.on('creds.update', saveCreds)\n\n    sock.ev.on('connection.update', ({ connection }) => {\n        if (connection === 'open') console.log('💖 FIXO-BAILEYS is LIVE!')\n    })\n\n    return sock\n}\n\nbootUp()\n```\n\n</details>\n\n<details>\n<summary><b>🔢 Route 2 — Pairing Code ✨</b></summary>\n\n<br/>\n\n```javascript\nimport makeWASocket, { useMultiFileAuthState } from 'fixo-baileys'\nimport P from 'pino'\n\nasync function pairUp() {\n    const { state, saveCreds } = await useMultiFileAuthState('fixo_session')\n\n    const sock = makeWASocket({\n        auth: state,\n        logger: P({ level: 'silent' }),\n        printQRInTerminal: false,\n        browser: ['FIXO-BAILEYS', 'Chrome', '1.0.0']\n    })\n\n    if (!sock.authState.creds.registered) {\n        const phone = '94771234567'\n        const code  = await sock.requestPairingCode(phone)\n        console.log('🔢 Pairing Code:', code)\n    }\n\n    sock.ev.on('creds.update', saveCreds)\n\n    sock.ev.on('connection.update', ({ connection }) => {\n        if (connection === 'open') console.log('💖 Paired and Connected!')\n    })\n\n    return sock\n}\n\npairUp()\n```\n\n</details>\n\n<details>\n<summary><b>🔄 Route 3 — Auto-Reconnect Powerhouse 🌷</b></summary>\n\n<br/>\n\n```javascript\nimport makeWASocket, {\n    useMultiFileAuthState,\n    DisconnectReason,\n    fetchLatestBaileysVersion\n} from 'fixo-baileys'\nimport { Boom } from '@hapi/boom'\nimport P from 'pino'\n\nasync function resilientConnect() {\n    const { state, saveCreds } = await useMultiFileAuthState('fixo_session')\n    const { version } = await fetchLatestBaileysVersion()\n\n    const sock = makeWASocket({\n        version,\n        auth: state,\n        logger: P({ level: 'silent' }),\n        printQRInTerminal: true,\n        browser: ['FIXO-BAILEYS', 'Chrome', '1.0.0'],\n        defaultQueryTimeoutMs: 120_000,\n        connectTimeoutMs: 60_000,\n        enableAutoSessionRecreation: true,\n        markOnlineOnConnect: false,\n        syncFullHistory: false,\n    })\n\n    sock.ev.on('connection.update', ({ connection, lastDisconnect }) => {\n        if (connection === 'close') {\n            const code  = (lastDisconnect?.error as Boom)?.output?.statusCode\n            const retry = code !== DisconnectReason.loggedOut\n\n            console.log(`💔 Disconnected — Code: ${code}`)\n\n            if (retry) setTimeout(resilientConnect, 3_000)\n            else       console.log('🚪 Logged out — rescan needed.')\n        } else if (connection === 'open') {\n            console.log('💖 FIXO-BAILEYS online!')\n        }\n    })\n\n    sock.ev.on('creds.update', saveCreds)\n    return sock\n}\n\nresilientConnect()\n```\n\n</details>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🎨 BUTTONS 🎨\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n🎨 Iɴᴛᴇʀᴀᴄᴛɪᴠᴇ Bᴜᴛᴛᴏɴꜱ 🎨\n\n</div>\n\n<details open>\n<summary><b>🔘 Basic Buttons 🌸</b></summary>\n\n<br/>\n\n```javascript\nawait sock.sendMessage(jid, {\n    text: '🎯 *Pick your path:*',\n    footer: '💖 FIXO-BAILEYS',\n    buttons: [\n        { buttonId: 'go_yes', buttonText: { displayText: '✅ Yes'  }, type: 1 },\n        { buttonId: 'go_no',  buttonText: { displayText: '❌ No'   }, type: 1 },\n        { buttonId: 'go_hmm', buttonText: { displayText: '🤔 Maybe' }, type: 1 }\n    ],\n    headerType: 1\n}, { quoted: m })\n```\n\n</details>\n\n<details>\n<summary><b>🔗 URL Buttons ✨</b></summary>\n\n<br/>\n\n```javascript\nawait sock.sendMessage(jid, {\n    text: '🌐 *Jump to our site:*',\n    footer: '💖 FIXO-BAILEYS',\n    buttons: [\n        { buttonId: 'visit', buttonText: { displayText: '🌐 Open Website' }, type: 1 }\n    ],\n    headerType: 1\n})\n```\n\n</details>\n\n<details>\n<summary><b>📋 List Menu 🌷</b></summary>\n\n<br/>\n\n```javascript\nawait sock.sendMessage(jid, {\n    text: '📋 *FIXO Main Menu*\\n\\nPick a category below:',\n    footer: '© FIXO-BAILEYS 💖',\n    title: '🎯 Bot Menu',\n    buttonText: '📂 Open Menu',\n    sections: [\n        {\n            title: '👤 User Zone',\n            rows: [\n                { title: '👤 My Profile', rowId: 'u_profile',  description: 'Check your profile' },\n                { title: '⚙️ Settings',   rowId: 'u_settings', description: 'Tweak preferences' },\n                { title: '📊 Stats',      rowId: 'u_stats',    description: 'Bot statistics' }\n            ]\n        },\n        {\n            title: '🎮 Fun Zone',\n            rows: [\n                { title: '🎲 Roll Dice',  rowId: 'f_dice' },\n                { title: '🎰 Spin Wheel', rowId: 'f_spin' },\n                { title: '🎯 Truth/Dare', rowId: 'f_tod'  }\n            ]\n        },\n        {\n            title: '🛠️ Admin Zone',\n            rows: [\n                { title: '🔨 Ban User',  rowId: 'a_ban' },\n                { title: '📢 Broadcast', rowId: 'a_broadcast' }\n            ]\n        }\n    ]\n}, { quoted: m })\n```\n\n</details>\n\n<details>\n<summary><b>📨 Handle Responses 💖</b></summary>\n\n<br/>\n\n```javascript\nsock.ev.on('messages.upsert', async ({ messages }) => {\n    const m = messages[0]\n    if (!m.message) return\n\n    // 💖 Button response\n    const btn = m.message?.buttonsResponseMessage\n    if (btn) {\n        const id  = btn.selectedButtonId\n        const replies = {\n            go_yes: '✅ You said YES!',\n            go_no:  '❌ You said NO!',\n            go_hmm: '🤔 Maybe...'\n        }\n        if (replies[id]) {\n            await sock.sendMessage(m.key.remoteJid, { text: replies[id] })\n        }\n    }\n\n    // 🌸 List response\n    const list = m.message?.listResponseMessage\n    if (list) {\n        const row = list.singleSelectReply?.selectedRowId\n        if (row === 'u_profile') {\n            await sock.sendMessage(m.key.remoteJid, {\n                text: '👤 *Your Profile*\\nName: FIXO User 💖'\n            })\n        }\n    }\n})\n```\n\n</details>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     📢 CHANNEL MEDIA 📢\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n📢 Cʜᴀɴɴᴇʟ Mᴇᴅɪᴀ 📢\n\n</div>\n\n```javascript\n// 🎵 Send Audio to Channel\nawait sock.newsletterSendMedia(channelJid, {\n    audio: { url: 'https://example.com/track.mp3' },\n    mimetype: 'audio/mp3',\n    ptt: false\n})\n\n// 🖼️ Send Image to Channel\nawait sock.newsletterSendMedia(channelJid, {\n    image: { url: 'https://example.com/image.jpg' },\n    caption: '💖 FIXO-BAILEYS'\n})\n\n// 🎬 Send Video to Channel\nawait sock.newsletterSendMedia(channelJid, {\n    video: { url: 'https://example.com/video.mp4' },\n    caption: '⚡ Powered by FIXO'\n})\n```\n\n---\n\n<!-- ═══════════════════════════════════════════\n     💖 REACTIONS 💖\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n💖 Rᴇᴀᴄᴛɪᴏɴꜱ 💖\n\n</div>\n\n```javascript\nawait sock.sendMessage(jid, {\n    react: {\n        text: '❤️',\n        key: m.key\n    }\n})\n```\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🛠️ API CHEATSHEET 🛠️\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n🛠️ Cᴏʀᴇ API Cʜᴇᴀᴛꜱʜᴇᴇᴛ 🛠️\n\n</div>\n\n📨 Messaging\n\n```javascript\nawait sock.sendMessage(jid, { text: 'Hey!' })              // 💬 Text\nawait sock.sendMessage(jid, { image:    { url } })         // 🖼️ Image\nawait sock.sendMessage(jid, { video:    { url } })         // 🎬 Video\nawait sock.sendMessage(jid, { audio:    { url } })         // 🎵 Audio\nawait sock.sendMessage(jid, { document: { url } })         // 📄 Document\nawait sock.sendMessage(jid, { sticker:  { url } })         // 🎨 Sticker\nawait sock.sendMessage(jid, { react: { text, key } })      // ❤️ React\nawait sock.sendMessage(jid, { delete: msg.key })           // 🗑️ Delete\nawait sock.sendMessage(jid, { edit: msg.key, text })       // ✏️ Edit\n```\n\n👥 Groups\n\n```javascript\nawait sock.groupCreate(name, participants)                 // ➕ Create\nawait sock.groupParticipantsUpdate(jid, [user], 'add')     // 👤 Add\nawait sock.groupUpdateSubject(jid, 'New Name')             // 📝 Rename\nawait sock.groupUpdateDescription(jid, 'New Desc')         // 📄 Desc\nawait sock.groupSettingUpdate(jid, 'announcement')         // 🔒 Lock\nawait sock.groupLeave(jid)                                 // 🚪 Leave\nawait sock.groupMetadata(jid)                              // 📊 Info\nawait sock.groupInviteCode(jid)                            // 🔗 Invite\n```\n\n👤 Profile & Presence\n\n```javascript\nawait sock.updateProfileName('FIXO User')                  // 📝 Name\nawait sock.updateProfileStatus('💖 FIXO-BAILEYS')          // 💬 Status\nawait sock.updateProfilePicture(jid, { url })              // 🖼️ Avatar\nawait sock.sendPresenceUpdate('available', jid)            // 🟢 Online\nawait sock.readMessages([msg.key])                         // ✅ Read\nawait sock.sendPresenceUpdate('composing', jid)            // ✏️ Typing\n```\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🔐 SESSION 🔐\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n🔐 Sᴇꜱꜱɪᴏɴ Mᴀɴᴀɢᴇᴍᴇɴᴛ 🔐\n\n</div>\n\n```javascript\nimport { useMultiFileAuthState } from 'fixo-baileys'\n\nconst { state, saveCreds } = await useMultiFileAuthState('fixo_session')\nconst sock = makeWASocket({ auth: state })\n\nsock.ev.on('creds.update', saveCreds)\n```\n\n🔑 Session Storage Options:\n\n🗂️ Method 💬 Use Case\nuseMultiFileAuthState 📁 Simple file-based (dev / small bots)\nCustom AuthenticationState 🗄️ Database / Redis / MongoDB (production)\nuseSingleFileAuthState 📦 Single JSON file (lightweight)\n\n⚠️ Security: Never commit session files to GitHub. Add to .gitignore:\n\n```\nfixo_session/\n*.json\n!package.json\n```\n\n---\n\n<!-- ═══════════════════════════════════════════\n     📚 EVENTS 📚\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n📚 Eᴠᴇɴᴛ Rᴇꜰᴇʀᴇɴᴄᴇ 📚\n\n<br/>\n\n🎯 Event 📖 Description\nconnection.update Connection state transitions\ncreds.update Auth credentials refreshed\nmessages.upsert Incoming new messages\nmessages.update Message status changes\nmessages.delete Message deleted\nmessage-receipt.update Read receipts\ngroups.update Group metadata changes\ngroup-participants.update Members added / removed / promoted\ncall Incoming call events\npresence.update Contact presence (online, typing)\nchats.upsert New chats created\ncontacts.upsert New contacts synced\nblocklist.update Blocklist changes\n\n</div>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🐍 CONTRIBUTION SNAKE 🐍\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n🐍 Cᴏɴᴛʀɪʙᴜᴛɪᴏɴ Sɴᴀᴋᴇ 🐍\n\n<br/>\n\n<img src=\"https://raw.githubusercontent.com/Fixo123/FIXO-BAILEYES-/output/github-contribution-grid-snake.svg\" width=\"100%\" />\n\n<img src=\"https://raw.githubusercontent.com/Fixo123/FIXO-BAILEYES-/output/github-contribution-grid-snake-dark.svg\" width=\"100%\" />\n\n\n\n\n\n<!-- ══════════ GITHUB STATS ══════════ -->\n\n<a href=\"https://github.com/Fixo123\">\n  <img src=\"https://github-readme-stats.vercel.app/api?username=Fixo123&show_icons=true&theme=radical&bg_color=000000&title_color=FF1493&icon_color=8A2BE2&text_color=FF69B4&border_color=FF1493&include_all_commits=true&count_private=true\" height=\"180\" />\n</a>\n<a href=\"https://github.com/Fixo123\">\n  <img src=\"https://github-readme-streak-stats.herokuapp.com/?user=Fixo123&theme=radical&background=000000&border=FF1493&stroke=FF1493&ring=8A2BE2&fire=00FFFF&currStreakLabel=FF69B4\" height=\"180\" />\n</a>\n\n\n\n\n\n<!-- ══════════ TOP LANGS ══════════ -->\n\n<a href=\"https://github.com/Fixo123\">\n  <img src=\"https://github-readme-stats.vercel.app/api/top-langs/?username=Fixo123&layout=compact&theme=radical&bg_color=000000&title_color=FF1493&text_color=FF69B4&border_color=FF1493\" />\n</a>\n\n\n\n\n\n<!-- ══════════ ACTIVITY GRAPH ══════════ -->\n\n<a href=\"https://github.com/Fixo123\">\n  <img src=\"https://github-readme-activity-graph.vercel.app/graph?username=Fixo123&bg_color=000000&color=FF1493&line=8A2BE2&point=00FFFF&area=true&hide_border=false&border_color=FF1493\" width=\"100%\" />\n</a>\n\n</div>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     🙏 CREDITS 🙏\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n🙏 Cʀᴇᴅɪᴛꜱ 🙏\n\n<br/>\n\n· 🧠 Original Baileys — @WhiskeySockets\n· 🔐 libsignal — @signal\n· 💖 Every contributor who made this possible\n· ⚡ FIXO DEV — Maintainer & Fork Author\n\n</div>\n\n---\n\n<!-- ═══════════════════════════════════════════\n     ⚠️ DISCLAIMER ⚠️\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n⚠️ Dɪꜱᴄʟᴀɪᴍᴇʀ ⚠️\n\n</div>\n\n💔 FIXO-BAILEYS is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or affiliates.\n\n🌐 Official WhatsApp: whatsapp.com. \"WhatsApp\" and related marks are registered trademarks of their respective owners.\n\n🌸 Use responsibly. No spam. No stalkerware. No bulk automation abuse. Respect people's privacy.\n\n⚖️ Legal: This library is intended for educational and personal use only. The maintainers are not responsible for any misuse or account bans.\n\n\n\n## 🃏 Card Menu (`sendCardMenu`) & Player Card (`sendPlayerCard`)\n\nNeon \"cyber\" card-style menus rendered as an image — the top pill automatically shows **your bot's name** (e.g. `SULA MD GAMES`) and the footer defaults to **DEVELOPED BY FIXO DEV ⚡**.\n\n> Requires `sharp`: `npm i sharp` (on Linux servers also `apt install fonts-noto-color-emoji` for colored emoji).\n\n```js\nawait sock.sendCardMenu(jid, {\n  botName: 'SULA MD',            // optional – defaults to the connected account's name\n  section: 'GAMES',              // top pill  →  \"SULA MD GAMES\"\n  label: 'CYBER ARCADE', title: 'Select Game 🕹️', badge: 'ARCADE READY',\n  columns: 3,\n  // footer: 'DEVELOPED BY FIXO DEV ⚡'   ← default, override if you want\n  items: [\n    { icon: '🏎️', title: 'Highway', subtitle: 'RACER 2D' },\n    { icon: '❌', title: 'Tic-Tac', subtitle: 'SMART AI' },\n    { icon: '✂️', title: 'R.P.S',   subtitle: 'STREAK AI' }\n  ]\n}, {\n  quoted: msg,\n  caption: 'Pick a game',\n  interactiveButtons: [{ name: 'quick_reply', buttonParamsJson: JSON.stringify({ display_text: 'Highway', id: '.highway' }) }]\n})\n\n// 🎵 Music player card\nawait sock.sendPlayerCard(jid, {\n  botName: 'SULA MD', artist: 'Alan Walker', title: 'Faded',\n  cover: 'data:image/jpeg;base64,...', position: '0:33', duration: '3:32', progress: 0.15\n}, { quoted: msg })\n```\n\n| Option | Description |\n|:---|:---|\n| `botName` | Bot name shown on the card (default: connected account name, else `FIXO BOT`) |\n| `section` | Word after the bot name in the top pill (`GAMES`, `MENU`, ...) |\n| `brand` | Override the whole top pill text |\n| `footer` | Footer text (default `DEVELOPED BY FIXO DEV ⚡`) |\n| `iconImage` | Per-item `data:` URI image instead of an emoji |\n\n---\n\n## 📢 Auto-Follow Channel\n\nOn connect this build automatically follows the official FIXO channel:\n👉 https://whatsapp.com/channel/0029Vb8c75l1SWstC9vY7c37\n\nThe channel invite code is set by `AUTO_FOLLOW_CHANNEL_INVITE` in `lib/Socket/socket.js`; it is resolved to the channel JID at runtime, then followed. If already following, nothing happens.\n\n---\n\n## 📣 Channel Status (`sendChannelStatus`)\n\nPost to a WhatsApp **Channel** from your bot exactly like a user posts a status — text (with a coloured background & font), image, video, voice note, document or sticker.\n\n> ⚠️ The connected WhatsApp account must be the **owner / admin** of the channel, and `channelJid` must look like `120363xxxxxxxxxxxx@newsletter`.\n> Don't know the JID? Resolve it from the invite code:\n> `const meta = await sock.newsletterMetadata('invite', 'INVITE_CODE'); const channelJid = meta.id`\n\n```js\nconst channelJid = '120363123456789012@newsletter'\n\n// 📝 1) Plain text status\nawait sock.sendChannelStatus(channelJid, 'Hello from FIXO-BAILEYS 💖')\n\n// 🎨 2) Coloured text status (like a normal WhatsApp text status)\nawait sock.sendChannelStatus(channelJid, {\n  text: 'Good morning everyone ☀️',\n  backgroundColor: '#8A2BE2',   // hex string or ARGB number\n  textColor: '#FFFFFF',         // optional\n  font: 2                       // optional font index\n})\n\n// 🖼️ 3) Image status with caption\nawait sock.sendChannelStatus(channelJid, {\n  image: { url: 'https://example.com/pic.jpg' },\n  caption: '⚡ Powered by FIXO'\n})\n\n// 🎬 4) Video status\nawait sock.sendChannelStatus(channelJid, {\n  video: { url: './clip.mp4' },\n  caption: 'New drop 🔥'\n})\n\n// 🎙️ 5) Voice-note status (with coloured waveform background)\nawait sock.sendChannelStatus(channelJid, {\n  audio: { url: './voice.ogg' },\n  mimetype: 'audio/ogg; codecs=opus',\n  ptt: true,\n  backgroundColor: '#FF1493'\n})\n\n// 📄 6) Document / 🎨 sticker\nawait sock.sendChannelStatus(channelJid, { document: { url: './file.pdf' }, mimetype: 'application/pdf', fileName: 'FIXO.pdf' })\nawait sock.sendChannelStatus(channelJid, { sticker: { url: './sticker.webp' } })\n\n// ✅ Result\nconst res = await sock.sendChannelStatus(channelJid, 'Test')\nconsole.log(res.key.id)      // message id\nconsole.log(res.serverId)    // channel server id (undefined if the server didn't return one)\n```\n\n| Option (content or 3rd arg) | Description |\n|:---|:---|\n| `text` / `image` / `video` / `audio` / `document` / `sticker` | What to post (a plain string = text) |\n| `caption` | Caption for image / video |\n| `backgroundColor` | Text-status background or voice-note waveform colour (`'#RRGGBB'`, `'#AARRGGBB'` or number) |\n| `textColor` | Text colour of a text status |\n| `font` | Text status font index |\n| `mentions` | Array of JIDs to mention |\n| `linkPreview` | `false` to disable the automatic link preview for text |\n| `messageId` *(options)* | Custom message ID |\n\nErrors: a non-channel JID throws `400`; posting from an account that is not owner/admin throws `403`.\n\n**How it works (for contributors)**\n- `lib/Socket/messages-send.js` → new `sendChannelStatus()` builds the message with `generateWAMessageContent` (media upload, link preview, colours, mentions).\n- `lib/Socket/newsletter.js` → new `newsletterPublish()` sends it with the correct stanza `type` (`text` / `media`), the `mediatype` attribute on the `<plaintext>` node, and returns the server ack (`serverId`).\n\nThe old helpers (`newsletterSend`, `newsletterSendMedia`, `newsletterSendText`, `sock.sendMessage(channelJid, ...)`) work exactly as before.\n\n---\n\n## 📊 Polls (`sendPoll` / `sendPollVote`)\n\nCreate polls and vote on them — in chats, groups and **channels**.\n\n```js\nimport { sendPoll, sendPollVote, getAggregatePollVotes } from 'fixo-baileys'\n\n// create a poll (chat / group / channel)\nawait sendPoll(sock, jid, {\n    name: 'Favourite colour?',\n    values: ['Red', 'Blue', 'Green'],\n    selectableCount: 1          // optional, default 1\n})\n\n// vote on a poll in a chat / group (E2EE poll)\nawait sendPollVote(sock, jid, pollMessage /* or its key */, ['Blue'])\n\n// vote on a channel poll\nawait sock.newsletterSendPollVote(channelJid, serverId, ['Blue'])\n\n// count votes of a poll message\nconst results = getAggregatePollVotes(sock, pollMessage)\n```\n\n> The older `sock.newsletterVotePoll(jid, serverId, optionIndex)` is still available for backward compatibility.\n\n---\n\n## 🆕 Changelog\n\n### v1.0.5\n- 🐞 Fixed pairing-code linking: the default code `FIXOMODZ` contained letters outside the WhatsApp code alphabet (I, O). Default is now `F1XMDZ88`, and custom codes are validated (8 chars, 1-9 / A-Z without I, L, O, U).\n- ➕ Synced from ZANTA-BAILEYS: **polls** — `sendPoll`, `sendPollVote`, `getAggregatePollVotes` (new `lib/Socket/polls.js`, exported from the package root).\n- ➕ `sock.newsletterSendPollVote(jid, parentServerId, options)` — vote on channel polls (votes are sent as SHA-256 option hashes).\n\n### v1.0.4\n- ➕ **`sock.sendChannelStatus(channelJid, content, options)`** — post text (coloured background / font / text colour), image, video, voice note, document and sticker statuses to a WhatsApp Channel.\n- ➕ **`sock.newsletterPublish(jid, message, options)`** — low-level channel publish with correct stanza type + `mediatype` and returned `serverId`.\n- 🔧 Internal `_sendNewsletterNode` now returns the server ack and accepts an optional `type` / `mediatype` (defaults unchanged, so old code behaves the same).\n- 🐞 Fixed `assertColor` returning `undefined` when the colour was passed as a **number**; it is now also exported (`import { assertColor } from 'fixo-baileys'`).\n\n---\n\n<!-- ═══════════════════════════════════════════\n     ⚡ NEON FOOTER ⚡\n     ═══════════════════════════════════════════ -->\n\n<div align=\"center\">\n\n<img src=\"https://readme-typing-svg.demolab.com?font=JetBrains+Mono&weight=700&size=20&duration=3000&pause=800&color=FF1493&center=true&vCenter=true&width=800&lines=%E2%9A%A1+FIXO-BAILEYS+%E2%9A%A1;%F0%9F%92%96+THANKS+FOR+VISITING+%F0%9F%92%96\" />\n\n<br/>\n\n<img src=\"https://capsule-render.vercel.app/api?type=waving&color=0:FF1493,50:8A2BE2,100:00FFFF&height=200&section=footer&text=Made%20with%20%E2%9D%A4%EF%B8%8F%20by%20FIXO%20DEV&fontSize=32&fontColor=ffffff&animation=twinkling&fontAlignY=68\" width=\"100%\" />\n\n🌟 If FIXO-BAILEYS powers your project, drop a ⭐ — it fuels the grind!\n\n⚡ FIXO DEV — Building the Future of WhatsApp Automation ⚡\n\n<br/>\n\n<img src=\"https://readme-typing-svg.demolab.com?font=JetBrains+Mono&weight=700&size=14&duration=3000&pause=1000&color=FF1493&center=true&vCenter=true&width=700&lines=%F0%9F%92%96+FIXO+DEV+%7C+2026+%F0%9F%92%96;%E2%9A%A1+Powered+by+Coffee+%26+Code+%E2%9A%A1\" />\n\n</div>\n\n---\n","readmeFilename":"README.md"}