{"_id":"@666tommy/baileys","_rev":"11-24a388d2794299eb9a4855b2611398aa","name":"@666tommy/baileys","dist-tags":{"latest":"5.0.2"},"versions":{"5.0.1":{"name":"@666tommy/baileys","version":"5.0.1","keywords":["777nyxara","baileys","interactive","whatsapp","whatsapp-bot"],"author":{"name":"777nyxara"},"license":"MIT","_id":"@666tommy/baileys@5.0.1","maintainers":[{"name":"666tommy.rpg","email":"666tommy.rpg@gmail.com"}],"homepage":"https://github.com/777nyxara/777nyxara/baileys","dist":{"shasum":"3ba2f12c3fdab515ede0501434ee1427b2724a75","tarball":"https://registry.npmjs.org/@666tommy/baileys/-/baileys-5.0.1.tgz","fileCount":184,"integrity":"sha512-QwY8utvkTAJkY18hNvVx8wicEK1/I93d5TihsCMHbb9j0/0lKQdwjM0Nm6HsbmxIV/dAt1DIjpp297sHU+gMaQ==","signatures":[{"sig":"MEUCIBm17S+HFB74LoQ9mvP0UyG9G7BPNln+E235kwZCPECGAiEAuBjSnJ2b4kMemJq5mpYZrP5qgTQHXnN8gc7ILg6kZdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41125577},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"test":"jest"},"_npmUser":{"name":"666tommy.rpg","email":"666tommy.rpg@gmail.com"},"repository":{"url":"git@github.com:777nyxara/777nyxara/baileys.git"},"_npmVersion":"11.13.0","description":"Baileys with the WhatsApp Web API using WebSocket.","directories":{"lib":"lib"},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.18.1","pino":"^9.18.0","axios":"^1.13.0","chalk":"^5.3.0","fflate":"^0.8.3","lodash":"^4.17.21","libsignal":"npm:@meta.inc/libsignal@*","lru-cache":"^11.5.2","@hapi/boom":"^10.0.1","protobufjs":"^8.8.0","async-mutex":"^0.5.0","audio-decode":"^3.12.0","cache-manager":"^7.2.9","music-metadata":"^11.15.0","gradient-string":"^3.0.0","link-preview-js":"^5.0.0","qrcode-terminal":"^0.12.0","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.5.3"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"jest":"^30.4.2","jimp":"^1.6.1","json":"^11.0.0","open":"^11.0.1","eslint":"^9.20.0","ts-jest":"^29.4.12","ts-node":"^10.9.2","typedoc":"^0.28.20","@types/ws":"^8.18.1","release-it":"^21.0.2","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.11.0","conventional-changelog-cli":"^5.0.0","@whiskeysockets/eslint-config":"^1.0.0"},"peerDependencies":{"jimp":"^1.6.1"},"peerDependenciesMeta":{"jimp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/baileys_5.0.1_1787900589951_0.2550539517519588","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@666tommy/baileys","version":"5.0.2","description":"Baileys with the WhatsApp Web API using WebSocket.","keywords":["777nyxara","baileys","interactive","whatsapp","whatsapp-bot"],"homepage":"https://github.com/777nyxara/777nyxara/baileys","repository":{"url":"git@github.com:777nyxara/777nyxara/baileys.git"},"license":"MIT","author":{"name":"777nyxara"},"main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"jest"},"dependencies":{"@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.5.3","@hapi/boom":"^10.0.1","async-mutex":"^0.5.0","audio-decode":"^3.12.0","axios":"^1.13.0","cache-manager":"^7.2.9","chalk":"^5.3.0","fflate":"^0.8.3","gradient-string":"^3.0.0","libsignal":"npm:@meta.inc/libsignal@*","link-preview-js":"^5.0.0","lodash":"^4.17.21","lru-cache":"^11.5.2","music-metadata":"^11.15.0","pino":"^9.18.0","protobufjs":"^8.8.0","qrcode-terminal":"^0.12.0","ws":"^8.18.1"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.0.0","@types/ws":"^8.18.1","@whiskeysockets/eslint-config":"^1.0.0","conventional-changelog-cli":"^5.0.0","eslint":"^9.20.0","jest":"^30.4.2","jimp":"^1.6.1","json":"^11.0.0","open":"^11.0.1","release-it":"^21.0.2","ts-jest":"^29.4.12","ts-node":"^10.9.2","typedoc":"^0.28.20","typedoc-plugin-markdown":"^4.11.0","typescript":"^5.8.2"},"peerDependencies":{"jimp":"^1.6.1"},"peerDependenciesMeta":{"jimp":{"optional":true}},"packageManager":"yarn@1.22.22","engines":{"node":">=20.0.0"},"directories":{"lib":"lib"},"_id":"@666tommy/baileys@5.0.2","_nodeVersion":"24.14.1","_npmVersion":"11.13.0","dist":{"integrity":"sha512-7n0HTFOolPLRp/n0Gnf143gYQZx4JfEKe/FfnOfvI6TE/CGACNPdeMDu+fXxfGVIojqHDK9A1FT3NCoI3zdwVQ==","shasum":"04b982c8f86ea84ae4cfe84edacf112c3e58bb78","tarball":"https://registry.npmjs.org/@666tommy/baileys/-/baileys-5.0.2.tgz","fileCount":185,"unpackedSize":41134235,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC9qSpgfJLxJXSGb5+u48HilCcvI6Fk8jIH7ERsEAgpJQIgW+tHHcpwm8fMBivAh6F1efwqDgoV31XKq1Z5IaajRL4="}]},"_npmUser":{"name":"666tommy.rpg","email":"666tommy.rpg@gmail.com"},"maintainers":[{"name":"666tommy.rpg","email":"666tommy.rpg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/baileys_5.0.2_1787902008975_0.4742219258062459"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-28T07:03:09.711Z","modified":"2026-08-28T07:26:49.380Z","6.6.6":"2026-08-28T04:47:19.356Z","666.666.66":"2026-08-28T05:00:28.777Z","5.6.8":"2026-08-28T05:09:09.107Z","5.6.9":"2026-08-28T05:18:46.638Z","6.0.0":"2026-08-28T05:27:00.189Z","5.0.1":"2026-08-28T07:03:10.139Z","5.0.2":"2026-08-28T07:26:49.217Z"},"author":{"name":"777nyxara"},"license":"MIT","homepage":"https://github.com/777nyxara/777nyxara/baileys","keywords":["777nyxara","baileys","interactive","whatsapp","whatsapp-bot"],"repository":{"url":"git@github.com:777nyxara/777nyxara/baileys.git"},"description":"Baileys with the WhatsApp Web API using WebSocket.","maintainers":[{"name":"666tommy.rpg","email":"666tommy.rpg@gmail.com"}],"readme":"<div align='center'>Baileys Modification - Nyxara</div>\n\n<div align=\"center\">\n\n  <img src=\"https://files.catbox.moe/qjmt4g.jpg\" alt=\"Baileys Banner\" />\n\n  <br><br>\n\n  <a href=\"https://www.npmjs.com/package/@777nyxara/baileys\">\n    <img src=\"https://img.shields.io/npm/v/@777nyxara/baileys?color=red&label=Version&logo=npm\" alt=\"npm version\" />\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/@777nyxara/baileys\">\n    <img src=\"https://img.shields.io/npm/dt/@777nyxara/baileys?color=red&label=Downloads&logo=npm\" alt=\"npm downloads\" />\n  </a>\n\n</div>\n\n\n## 📖 Table of Contents\n\n- [Important Note](#important-note)\n- [Install](#install)\n- [Added Features and Improvements](#-added-features-and-improvements)\n- [Feature Examples](#feature-examples)\n  - [Newsletter Management](#newsletter-management)\n  - [Button and Interactive Message Management](#button-and-interactive-message-management)\n  - [Send Album Message](#send-album-message)\n  - [AI Message Icon Customization](#ai-message-icon-customization)\n  - [Custom Pairing Code Generation](#custom-pairing-code-generation)\n- [Reporting Issues](#reporting-issues)\n- [Notes](#notes)\n---\n\n## Important Note\n\nThe original repository was initially removed by its creator and subsequently taken over by [WhiskeySockets](https://github.com/WhiskeySockets). Building upon this foundation, I have implemented several enhancements and introduced new features that were not present in the original repository. These improvements aim to elevate functionality and provide a more robust and versatile experience.\n\n## Install\n\nInstall in package.json:\n```json\n\"dependencies\": {\n    \"@777nyxara/baileys\":\n}\n```\nor install in terminal:\n```\nnpm install @777nyxara/baileys\n```\n\nThen import the default function in your code:\n```ts \n// type esm\nimport makeWASocket from '@777nyxara/baileys'\n```\n\n```js\n// type cjs\nconst { default: makeWASocket } = require(\"@777nyxara/baileys\")\n```\n\n## Added Features and Improvements\n\n| Feature                               | Description                                                                                                                               |\n| :------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- |\n| 💬 **Send Messages to Channels**     | Supports sending text and media messages to channels.                                                                                     |\n| 🔘 **Button & Interactive Messages** | Supports sending button messages and interactive messages on WhatsApp Messenger and WhatsApp Business.                                   |\n| 🖼️ **Send Album Messages**           | Supports sending multiple images as an album (grouped media message), enabling richer and more organized media sharing.                  |\n| 👥 **Group with LID Support**       | Full support for group using `@lid`, ensuring compatibility with the latest WhatsApp group addressing format.                         |\n| 🤖 **AI Message Icon**               | Customize message appearances with an optional AI icon, adding a modern touch.                                                            |\n| 🖼️ **Full-Size Profile Pictures**    | Allows users to upload profile pictures in their original size without cropping, ensuring better quality and visual presentation.         |\n| 🔑 **Custom Pairing Codes**          | Users can now create and customize pairing codes as they wish, enhancing convenience and security when connecting devices.                |\n| 🛠️ **Libsignal Fixes**               | Enjoy a cleaner development experience with refined logs, providing more informative and less cluttered output from the libsignal library.|\n\nMore features and improvements will be added in the future.\n\n## Feature Examples\n\nHere are some examples of features that have been added:\n\n### Newsletter Management\n\n<details>\n<summary style=\"font-weight: bold; cursor: pointer; padding: 8px; border-bottom: 1px solid #eee; margin-bottom: 5px;\">Show Examples</summary>\n<div style=\"padding: 10px 15px; background: #f9f9f9; border: 1px solid #eee; border-top: none; border-radius: 0 0 5px 5px;\">\n\n- **To get info newsletter**\n```ts\nconst metadata = await sock.newsletterMetadata(\"invite\", \"xxxxx\")\n// or\nconst metadata = await sock.newsletterMetadata(\"jid\", \"abcd@newsletter\")\nconsole.log(metadata)\n```\n- **To update the description of a newsletter**\n```ts\nawait sock.newsletterUpdateDescription(\"abcd@newsletter\", \"New Description\")\n```\n- **To update the name of a newsletter**\n```ts\nawait sock.newsletterUpdateName(\"abcd@newsletter\", \"New Name\")\n```  \n- **To update the profile picture of a newsletter**\n```ts\nawait sock.newsletterUpdatePicture(\"abcd@newsletter\", buffer)\n```\n- **To remove the profile picture of a newsletter**\n```ts\nawait sock.newsletterRemovePicture(\"abcd@newsletter\")\n```\n- **To mute notifications for a newsletter**\n```ts\nawait sock.newsletterUnmute(\"abcd@newsletter\")\n```\n- **To mute notifications for a newsletter**\n```ts\nawait sock.newsletterMute(\"abcd@newsletter\")\n```\n- **To create a newsletter**\n```ts\nconst metadata = await sock.newsletterCreate(\"Newsletter Name\")\nconsole.log(metadata)\n```\n- **To delete a newsletter**\n```ts\nawait sock.newsletterDelete(\"abcd@newsletter\")\n```\n- **To follow a newsletter**\n```ts\nawait sock.newsletterFollow(\"abcd@newsletter\")\n```\n- **To unfollow a newsletter**\n```ts\nawait sock.newsletterUnfollow(\"abcd@newsletter\")\n```\n- **To send reaction**\n```ts\n// jid, id message & emoticon\n// way to get the ID is to copy the message url from channel\n// Example: [ https://whatsapp.com/channel/xxxxx/175 ]\n// The last number of the URL is the ID\nconst id = \"175\"\nawait sock.newsletterReactMessage(\"abcd@newsletter\", id, \"🥳\")\n```\n</div>\n</details>\n\n### Button and Interactive Message Management\n\n<details>\n<summary style=\"font-weight: bold; cursor: pointer; padding: 8px; border-bottom: 1px solid #eee; margin-bottom: 5px;\">Show Examples</summary>\n<div style=\"padding: 10px 15px; background: #f9f9f9; border: 1px solid #eee; border-top: none; border-radius: 0 0 5px 5px;\">\n\n- **To send button with text**\n```ts\nconst buttons = [\n  { buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },\n  { buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }\n]\n\nconst buttonMessage = {\n    text: \"Hi it's button message\",\n    footer: 'Hello World',\n    buttons,\n    headerType: 1\n}\n\nawait sock.sendMessage(id, buttonMessage, { quoted: null })\n```\n- **To send button with image**\n```ts\nconst buttons = [\n  { buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },\n  { buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }\n]\n\nconst buttonMessage = {\n    image: { url: \"https://example.com/abcd.jpg\" }, // image: buffer or path\n    caption: \"Hi it's button message with image\",\n    footer: 'Hello World',\n    buttons,\n    headerType: 1\n}\n\nawait sock.sendMessage(id, buttonMessage, { quoted: null })\n\n```\n- **To send button with video**\n```ts\nconst buttons = [\n  { buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },\n  { buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }\n]\n\nconst buttonMessage = {\n    video: { url: \"https://example.com/abcd.mp4\" }, // video: buffer or path\n    caption: \"Hi it's button message with video\",\n    footer: 'Hello World',\n    buttons,\n    headerType: 1\n}\n\nawait sock.sendMessage(id, buttonMessage, { quoted: null })\n```\n\n- **To send interactive message**\n```ts\nconst interactiveButtons = [\n     {\n        name: \"quick_reply\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Quick Reply\",\n             id: \"ID\"\n        })\n     },\n     {\n        name: \"cta_url\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Tap Here!\",\n             url: \"https://www.example.com/\"\n        })\n     },\n     {\n        name: \"cta_copy\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Copy Code\",\n             id: \"12345\",\n             copy_code: \"12345\"\n        })\n     }\n]\n\nconst interactiveMessage = {\n    text: \"Hello World!\",\n    title: \"this is the title\",\n    footer: \"this is the footer\",\n    interactiveButtons\n}\n\nawait sock.sendMessage(id, interactiveMessage, { quoted: null })\n```\n- **To send interactive message with image**\n```ts\nconst interactiveButtons = [\n     {\n        name: \"quick_reply\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Quick Reply\",\n             id: \"ID\"\n        })\n     },\n     {\n        name: \"cta_url\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Tap Here!\",\n             url: \"https://www.example.com/\"\n        })\n     },\n     {\n        name: \"cta_copy\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Copy Code\",\n             id: \"12345\",\n             copy_code: \"12345\"\n        })\n     }\n]\n\nconst interactiveMessage = {\n    image: { url: \"https://example.com/abcd.jpg\" }, // image: buffer or path\n    caption: \"this is the caption\",\n    title: \"this is the title\",\n    footer: \"this is the footer\",\n    interactiveButtons\n}\n\nawait sock.sendMessage(id, interactiveMessage, { quoted: null })\n```\n- **To send interactive message with video**\n```ts\nconst interactiveButtons = [\n     {\n        name: \"quick_reply\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Quick Reply\",\n             id: \"ID\"\n        })\n     },\n     {\n        name: \"cta_url\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Tap Here!\",\n             url: \"https://www.example.com/\"\n        })\n     },\n     {\n        name: \"cta_copy\",\n        buttonParamsJson: JSON.stringify({\n             display_text: \"Copy Code\",\n             id: \"12345\",\n             copy_code: \"12345\"\n        })\n     }\n]\n\nconst interactiveMessage = {\n    video: { url: \"https://example.com/abcd.mp4\" }, // video: buffer or path\n    caption: \"this is the caption\",\n    title: \"this is the title\",\n    footer: \"this is the footer\",\n    interactiveButtons\n}\n\nawait sock.sendMessage(id, interactiveMessage, { quoted: null })\n```\n- **To send list interactive**\n```ts\nconst interactiveButtons = [\n  {\n    name: \"single_select\",\n    buttonParamsJson: JSON.stringify({\n      title: \"message\",\n      sections: [\n        {\n          title: \"title\",\n          highlight_label: \"label\",\n          rows: [\n            {\n              header: \"HEADER\",\n              title: \"TITLE\",\n              description: \"DESCRIPTION\",\n              id: \"YOUR ID\"\n            },\n            {\n              header: \"HEADER\",\n              title: \"TITLE\",\n              description: \"DESCRIPTION\",\n              id: \"YOUR ID\"\n            }\n          ]\n        }\n      ]\n    })\n  }\n];\n\nconst interactiveMessage = {\n    text: \"Hello World!\",\n    title: \"this is the title\",\n    footer: \"this is the footer\",\n    interactiveButtons\n};\n\nawait sock.sendMessage(id, interactiveMessage, { quoted: null });\n```\n\n</div>\n</details>\n\n### Send Album Message\n\n<details>\n<summary style=\"font-weight: bold; cursor: pointer; padding: 8px; border-bottom: 1px solid #eee; margin-bottom: 5px;\">Show Example</summary>\n<div style=\"padding: 10px 15px; background: #f9f9f9; border: 1px solid #eee; border-top: none; border-radius: 0 0 5px 5px;\">\n\n```ts\n// Media can be a URL, buffer, or path.\nconst media = [\n  {\n    image: { url: \"https://example.com/image.jpg\" }\n  },\n  {\n    image: await getBuffer(\"https://example.com/image.jpg\")\n  },\n  {\n    video: { url: \"https://example.com/video.mp4\" }\n  }\n]\n\nawait sock.sendMessage(id, { album: media, caption: \"testing send album\" }, { quoted: null })\n```\n\n</div>\n</details>\n\n### AI Message Icon Customization\n\n<details>\n<summary style=\"font-weight: bold; cursor: pointer; padding: 8px; border-bottom: 1px solid #eee; margin-bottom: 5px;\">Show Example</summary>\n<div style=\"padding: 10px 15px; background: #f9f9f9; border: 1px solid #eee; border-top: none; border-radius: 0 0 5px 5px;\">\n\n```ts\n// To enable the AI icon for a message, simply add the \"ai: true\" parameter:\nawait sock.sendMessage(id, { text: \"Hello World\", ai: true });\n```\n\n</div>\n</details>\n\n### Custom Pairing Code Generation\n\n<details>\n<summary style=\"font-weight: bold; cursor: pointer; padding: 8px; border-bottom: 1px solid #eee; margin-bottom: 5px;\">Show Example</summary>\n<div style=\"padding: 10px 15px; background: #f9f9f9; border: 1px solid #eee; border-top: none; border-radius: 0 0 5px 5px;\">\n\n```ts\nif(usePairingCode && !sock.authState.creds.registered) {\n    const phoneNumber = await question('Please enter your mobile phone number:\\n');\n    // Define your custom 8-digit code (alphanumeric)\n    const customPairingCode = \"AKAMEMD\";\n    const code = await sock.requestPairingCode(phoneNumber, customPairingCode);\n    console.log(`Your Pairing Code: ${code?.match(/.{1,4}/g)?.join('-') || code}`);\n}\n```\n*Note: The `question` function is a placeholder for your method of obtaining user input.*\n</div>\n</details>\n\n\n## Notes\nEverything other than the modifications mentioned above remains the same as the original repository. You can check out the original repository at [WhiskeySockets](https://github.com/WhiskeySockets/Baileys)","readmeFilename":"README.md"}