{"_id":"malvin-baileys","_rev":"7-71148ddfbd6f4137487d5e55daf863d4","name":"malvin-baileys","dist-tags":{"latest":"2.2.5"},"versions":{"2.0.0":{"name":"malvin-baileys","version":"2.0.0","keywords":["whatsapp","automation"],"author":{"name":"Malvin King"},"license":"MIT","_id":"malvin-baileys@2.0.0","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"homepage":"","dist":{"shasum":"a74c45bff99960cf7796b0f5427824cd1118fb4e","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.0.0.tgz","fileCount":196,"integrity":"sha512-mhHdu2fpdfEy3WLZ3IWWiA1n3AUMNTFU0/fa6UxTQ3gzX3cLwv69blP1nHN8d53nO4Gir57fVYcJ2ILWqGfekQ==","signatures":[{"sig":"MEQCIFxAQ3kxnmWaAybpu6FeaG8ukcV8yrBgJzYgPFaNDxhUAiAdsIrEC2kDzC7/ZM4X5LtXwFCvaGcr95cMaSJvYkhAwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6359313},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"lint":"eslint src --ext .js,.ts,.jsx,.tsx","test":"jest","prepack":"","prepare":"","release":"release-it","lint:fix":"eslint src --fix --ext .js,.ts,.jsx,.tsx","build:all":"tsc && typedoc","build:tsc":"tsc","build:docs":"typedoc","preinstall":"node ./engine-requirements.js","gen:protobuf":"sh WAProto/GenerateStatics.sh","changelog:last":"conventional-changelog -p angular -r 2","changelog:preview":"conventional-changelog -p angular -u"},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"repository":{"url":"https://www.npmjs.com/package/"},"_npmVersion":"11.6.2","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.13.0","pino":"^9.6","p-queue":"^9.0.0","libsignal":"git+https://github.com/whiskeysockets/libsignal-node.git","lru-cache":"^11.1.0","@hapi/boom":"^9.1.3","protobufjs":"^7.2.4","async-mutex":"^0.5.0","music-metadata":"^11.7.0","@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.0","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":"^15.10.3","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.0","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/malvin-baileys_2.0.0_1767880625322_0.18012732327267633","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"malvin-baileys","version":"2.2.0","keywords":["whatsapp","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","whatsapp-api","baileys-mod","malvin-xd","XdKing2","malvin-baileys","wa-bot"],"author":{"name":"Malvin King"},"license":"MIT","_id":"malvin-baileys@2.2.0","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"homepage":"https://www.npmjs.com/package/malvin-baileys","dist":{"shasum":"9c204cbd4fb9fa5a473bd1f25af5e1ba9313ee5c","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.2.0.tgz","fileCount":197,"integrity":"sha512-9tDZ6FermnY7P3cf1yMxMbqXyJ1NpxdmL//sifKrMjpeDEk2EzFlvY3W9QFd5kMqT26IH0vYslNwKf/dboDeEQ==","signatures":[{"sig":"MEYCIQC4xBTH+msmdHJuMOWGU6j/xJm7vFZh9pAQ8P+6FwNMvAIhAIzdAG8V7c9VolcuxRT4azJT3ezHZtvoEzQsJ/woCSDX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9830310},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"lint":"eslint src --ext .js,.ts,.jsx,.tsx","test":"jest","prepack":"","prepare":"","release":"release-it","lint:fix":"eslint src --fix --ext .js,.ts,.jsx,.tsx","build:all":"tsc && typedoc","build:tsc":"tsc","build:docs":"typedoc","preinstall":"node ./engine-requirements.js","gen:protobuf":"sh WAProto/GenerateStatics.sh","changelog:last":"conventional-changelog -p angular -r 2","changelog:preview":"conventional-changelog -p angular -u"},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"repository":{"url":"https://www.npmjs.com/package/malvin-baileys"},"_npmVersion":"11.6.2","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.13.0","pino":"^7.0.0","uuid":"^9.0.0","axios":"^1.3.3","chalk":"^4.1.2","lodash":"^4.17.21","libsignal":"github:NaufalYupra/libsignal-node","@hapi/boom":"^9.1.3","node-cache":"^5.1.2","node-fetch":"^2.6.1","protobufjs":"^7.2.4","async-mutex":"^0.5.0","futoin-hkdf":"^1.5.1","audio-decode":"^2.1.3","cache-manager":"4.0.1","music-metadata":"^7.12.3","gradient-string":"^2.0.2","libphonenumber-js":"^1.10.20","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^27.0.6","jimp":"^0.16.1","json":"^11.0.0","open":"^8.4.2","sharp":"^0.30.5","ts-jest":"^27.0.3","ts-node":"^10.8.1","typedoc":"^0.24.7","@types/ws":"^8.0.0","@types/got":"^9.6.11","release-it":"^15.10.3","typescript":"^4.6.4","@types/jest":"^27.5.1","@types/node":"^16.0.0","@types/sharp":"^0.29.4","link-preview-js":"^3.0.0","qrcode-terminal":"^0.12.0","@adiwajshing/eslint-config":"github:adiwajshing/eslint-config","conventional-changelog-cli":"^2.2.2"},"peerDependencies":{"jimp":"^0.16.1","sharp":"^0.32.2","link-preview-js":"^3.0.0","qrcode-terminal":"^0.12.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"sharp":{"optional":true},"link-preview-js":{"optional":true},"qrcode-terminal":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/malvin-baileys_2.2.0_1774307938035_0.0777595214471265","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"malvin-baileys","version":"2.2.1","keywords":["whatsapp","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","whatsapp-api","baileys-mod","malvin-xd","XdKing2","malvin-baileys","wa-bot"],"author":{"name":"Malvin King"},"license":"MIT","_id":"malvin-baileys@2.2.1","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"homepage":"https://www.npmjs.com/package/malvin-baileys","dist":{"shasum":"b6eff957ee595d41c16b967060b18d3d39226718","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.2.1.tgz","fileCount":197,"integrity":"sha512-q4SaC519cYrdztZYm0WRyDHW0dTZvz3XF1bMIDAJxhQ2SRd1jYvhGVO5i02RBRd4/n+N2JAr5wkEza4KPoXLPw==","signatures":[{"sig":"MEUCIQD5hvOGMfm9aZmIGpDMIvHWDtZ1id88Ozso31GxZP0McgIgdCj9PsU4PhflSp9yyqIbwechuLQg5V+Pq6Xu0M/fMrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9830338},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"lint":"eslint src --ext .js,.ts,.jsx,.tsx","test":"jest","prepack":"","prepare":"","release":"release-it","lint:fix":"eslint src --fix --ext .js,.ts,.jsx,.tsx","build:all":"tsc && typedoc","build:tsc":"tsc","build:docs":"typedoc","preinstall":"node ./engine-requirements.js","gen:protobuf":"sh WAProto/GenerateStatics.sh","changelog:last":"conventional-changelog -p angular -r 2","changelog:preview":"conventional-changelog -p angular -u"},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"repository":{"url":"https://www.npmjs.com/package/malvin-baileys"},"_npmVersion":"11.6.2","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.13.0","pino":"^7.0.0","uuid":"^9.0.0","axios":"^1.3.3","chalk":"^4.1.2","figlet":"^1.7.0","lodash":"^4.17.21","libsignal":"github:NaufalYupra/libsignal-node","@hapi/boom":"^9.1.3","node-cache":"^5.1.2","node-fetch":"^2.6.1","protobufjs":"^7.2.4","async-mutex":"^0.5.0","futoin-hkdf":"^1.5.1","audio-decode":"^2.1.3","cache-manager":"4.0.1","music-metadata":"^7.12.3","gradient-string":"^2.0.2","libphonenumber-js":"^1.10.20","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^27.0.6","jimp":"^0.16.1","json":"^11.0.0","open":"^8.4.2","sharp":"^0.30.5","ts-jest":"^27.0.3","ts-node":"^10.8.1","typedoc":"^0.24.7","@types/ws":"^8.0.0","@types/got":"^9.6.11","release-it":"^15.10.3","typescript":"^4.6.4","@types/jest":"^27.5.1","@types/node":"^16.0.0","@types/sharp":"^0.29.4","link-preview-js":"^3.0.0","qrcode-terminal":"^0.12.0","@adiwajshing/eslint-config":"github:adiwajshing/eslint-config","conventional-changelog-cli":"^2.2.2"},"peerDependencies":{"jimp":"^0.16.1","sharp":"^0.32.2","link-preview-js":"^3.0.0","qrcode-terminal":"^0.12.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"sharp":{"optional":true},"link-preview-js":{"optional":true},"qrcode-terminal":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/malvin-baileys_2.2.1_1774339800591_0.8141372581925257","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"malvin-baileys","version":"2.2.2","keywords":["whatsapp","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","whatsapp-api","baileys-mod","malvin-xd","XdKing2","malvin-baileys","wa-bot"],"author":{"name":"Malvin King"},"license":"MIT","_id":"malvin-baileys@2.2.2","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"homepage":"https://www.npmjs.com/package/malvin-baileys","dist":{"shasum":"436a4d48c19d5bd5bf07214386b6d87e367a2923","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.2.2.tgz","fileCount":197,"integrity":"sha512-B18qpVcqk7Eq1r9ClDdMvhur04dNZEJVuUnLyS8/MNng/R0ACkwFc1syExBlh3Oa8aoNermMcXejj11JKrNfag==","signatures":[{"sig":"MEQCIHkQnHLQIIEW5sBf39Tr8HkTTib/jBb5WJJXF/peS9ueAiBO5tnbkpk4X4+dQah7fAdx06nlaX2Xb+1Ykkp+ricQBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9830338},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"lint":"eslint src --ext .js,.ts,.jsx,.tsx","test":"jest","prepack":"","prepare":"","release":"release-it","lint:fix":"eslint src --fix --ext .js,.ts,.jsx,.tsx","build:all":"tsc && typedoc","build:tsc":"tsc","build:docs":"typedoc","preinstall":"node ./engine-requirements.js","gen:protobuf":"sh WAProto/GenerateStatics.sh","changelog:last":"conventional-changelog -p angular -r 2","changelog:preview":"conventional-changelog -p angular -u"},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"repository":{"url":"https://www.npmjs.com/package/malvin-baileys"},"_npmVersion":"11.6.2","description":"A WebSockets library for interacting with WhatsApp Web","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.13.0","pino":"^7.0.0","uuid":"^9.0.0","axios":"^1.3.3","chalk":"^4.1.2","figlet":"^1.7.0","lodash":"^4.17.21","libsignal":"github:NaufalYupra/libsignal-node","@hapi/boom":"^9.1.3","node-cache":"^5.1.2","node-fetch":"^2.6.1","protobufjs":"^7.2.4","async-mutex":"^0.5.0","futoin-hkdf":"^1.5.1","audio-decode":"^2.1.3","cache-manager":"4.0.1","music-metadata":"^7.12.3","gradient-string":"^2.0.2","libphonenumber-js":"^1.10.20","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^27.0.6","jimp":"^0.16.1","json":"^11.0.0","open":"^8.4.2","sharp":"^0.30.5","ts-jest":"^27.0.3","ts-node":"^10.8.1","typedoc":"^0.24.7","@types/ws":"^8.0.0","@types/got":"^9.6.11","release-it":"^15.10.3","typescript":"^4.6.4","@types/jest":"^27.5.1","@types/node":"^16.0.0","@types/sharp":"^0.29.4","link-preview-js":"^3.0.0","qrcode-terminal":"^0.12.0","@adiwajshing/eslint-config":"github:adiwajshing/eslint-config","conventional-changelog-cli":"^2.2.2"},"peerDependencies":{"jimp":"^0.16.1","sharp":"^0.32.2","link-preview-js":"^3.0.0","qrcode-terminal":"^0.12.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"sharp":{"optional":true},"link-preview-js":{"optional":true},"qrcode-terminal":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/malvin-baileys_2.2.2_1774340745952_0.8607527269563815","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"malvin-baileys","version":"2.2.3","keywords":["whatsapp","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","whatsapp-api","baileys-mod","malvin-xd","XdKing2","malvin-baileys","wa-bot"],"author":{"name":"Malvin King"},"license":"MIT","_id":"malvin-baileys@2.2.3","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"homepage":"https://www.npmjs.com/package/malvin-baileys","dist":{"shasum":"e03de1bf1167939c82b4fc4a9a8262461f29952c","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.2.3.tgz","fileCount":427,"integrity":"sha512-h7zLIPAfuyi2ZeFXjYUvvxMyxrqcLUZZX6Mh1VLnm6tGKU4JAsrLTkjtg58ypAGR6RAtyjhJnpFktKqmz+QkxQ==","signatures":[{"sig":"MEYCIQChYujg28ulX64Au0l86MA2ELW/+ZfX3amcUnijFAiTcwIhAPfeE+pdUrO4YCNDZchdbrEA3HLeNMT68WWqz4JlfiKT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10278324},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"repository":{"url":"https://www.npmjs.com/package/malvin-baileys","type":"git"},"_npmVersion":"11.12.1","description":"WhatsApp Web API Library Modification By Malvin King.","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ws":"^8.19.0","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"npm:malvin/libsignal-node","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.4","async-mutex":"^0.5.0","music-metadata":"11.12.1","whatsapp-rust-bridge":"0.5.3","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","peerDependencies":{"jimp":"^0.16.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/malvin-baileys_2.2.3_1779658518941_0.2379553441283151","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"malvin-baileys","version":"2.2.4","keywords":["whatsapp","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","whatsapp-api","baileys-mod","malvin-xd","XdKing2","malvin-baileys","wa-bot"],"author":{"name":"Malvin King"},"license":"MIT","_id":"malvin-baileys@2.2.4","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"homepage":"https://www.npmjs.com/package/malvin-baileys","dist":{"shasum":"2e522a8d423ae72d820180315ef9996471a54566","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.2.4.tgz","fileCount":427,"integrity":"sha512-OAezyM8GUfFO/1RNtGo/a8Jt7oHhTPhdzAnEWXhrJCNnW4Q6KYxofWJAaxnqxfbixlf4BMXBqy3MoZluME9/8g==","signatures":[{"sig":"MEMCH11cu3v+/iApT32ngouVh/YlK7r7kQcLlZ8WigL+U7UCICgzFD8kt9xMA2RawON9gHCeU04g4KDjNIrXxNP3BSnm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10278324},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"repository":{"url":"https://www.npmjs.com/package/malvin-baileys","type":"git"},"_npmVersion":"11.12.1","description":"WhatsApp Web API Library Modification By Malvin King.","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ws":"^8.19.0","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"npm:malvin-libsignal-node","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.4","async-mutex":"^0.5.0","music-metadata":"11.12.1","whatsapp-rust-bridge":"0.5.3","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","peerDependencies":{"jimp":"^0.16.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/malvin-baileys_2.2.4_1779661303280_0.36552997022505385","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"malvin-baileys","version":"2.2.5","description":"WhatsApp Web API Library Modification By Malvin King.","main":"lib/index.js","types":"lib/index.d.ts","type":"module","scripts":{"preinstall":"node ./engine-requirements.js"},"engines":{"node":">=20.0.0"},"repository":{"type":"git","url":"https://www.npmjs.com/package/malvin-baileys"},"keywords":["whatsapp","movanest","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","js-whatsapp","whatsapp-api","baileys-mod","botwa","danuzz"],"homepage":"https://www.npmjs.com/package/malvin-baileys","author":{"name":"Malvin King"},"license":"MIT","dependencies":{"@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0","@hapi/boom":"^9.1.3","async-mutex":"^0.5.0","chalk":"^4.1.2","fflate":"^0.8.2","libsignal":"npm:malvin-libsignal-node","lru-cache":"^11.2.6","music-metadata":"^11.12.3","p-queue":"^9.1.0","pino":"^9.6.0","protobufjs":"^7.5.6","whatsapp-rust-bridge":"0.5.5","ws":"^8.19.0"},"peerDependencies":{"@napi-rs/image":"~1.12.0","audio-decode":"^2.2.3","better-sqlite3":"^11.0.0","jimp":"^1.6.1","link-preview-js":"^3.0.0","sharp":"*"},"peerDependenciesMeta":{"@napi-rs/image":{"optional":true},"audio-decode":{"optional":true},"better-sqlite3":{"optional":true},"jimp":{"optional":true},"link-preview-js":{"optional":true}},"resolutions":{"ajv@npm:^6.12.4":"^6.14.0","basic-ftp":"^5.2.4","brace-expansion@npm:^1.1.7":"^1.1.13","brace-expansion@npm:^2.0.1":"^2.0.3","flatted":"^3.4.2","glob@npm:^10.2.2":"^10.5.0","glob@npm:^10.3.10":"^10.5.0","glob@npm:^10.5.0":"^10.5.0","handlebars":"^4.7.9","ip-address":"^10.1.1","js-yaml@npm:^3.13.1":"^3.14.2","js-yaml@npm:^4.1.0":"^4.1.1","markdown-it":"^14.1.1","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","socks":"^2.8.8","tar":"^7.5.11","tmp":"^0.2.5","underscore":"^1.13.8","yaml@npm:^2.6.1":"^2.8.4"},"packageManager":"yarn@4.9.2","_id":"malvin-baileys@2.2.5","_nodeVersion":"25.8.2","_npmVersion":"11.12.1","dist":{"integrity":"sha512-1tVtdKc6tNdYe4I7NX+F15tVYjYd0zWi7fWd6M2S2oXbPUD1ybJVpcqBuHuk0Z+d4qWW6WiPxWs0SnWH+VV1LQ==","shasum":"bbe92f4d5a48116fc39e569bef9440c9d6d94bf4","tarball":"https://registry.npmjs.org/malvin-baileys/-/malvin-baileys-2.2.5.tgz","fileCount":431,"unpackedSize":10721381,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH58kG8OMpvI5qi6L3/GLx7jvZl9qrET7WSMXqkFulkIAiEAvifOST2IMeOkVxW87yv+V47EfghJDnc/BIkXINTPi9s="}]},"_npmUser":{"name":"xdking2","email":"malvintech2@gmail.com"},"directories":{},"maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/malvin-baileys_2.2.5_1780093423396_0.6222661986749927"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-08T13:57:05.320Z","modified":"2026-05-29T22:23:43.730Z","2.0.0":"2026-01-08T13:57:05.527Z","2.2.0":"2026-03-23T23:18:58.215Z","2.2.1":"2026-03-24T08:10:00.858Z","2.2.2":"2026-03-24T08:25:46.206Z","2.2.3":"2026-05-24T21:35:19.118Z","2.2.4":"2026-05-24T22:21:43.478Z","2.2.5":"2026-05-29T22:23:43.631Z"},"author":{"name":"Malvin King"},"license":"MIT","homepage":"https://www.npmjs.com/package/malvin-baileys","keywords":["whatsapp","movanest","baileys","whatsapp-web","whatsapp-chat","whatsapp-group","whatsapp-bot","automation","js-whatsapp","whatsapp-api","baileys-mod","botwa","danuzz"],"repository":{"type":"git","url":"https://www.npmjs.com/package/malvin-baileys"},"description":"WhatsApp Web API Library Modification By Malvin King.","maintainers":[{"name":"xdking2","email":"malvintech2@gmail.com"}],"readme":"\n# malvin-baileys\n\n[![npm version](https://badge.fury.io/js/malvin-baileys.svg)](https://badge.fury.io/js/malvin-baileys)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js Version](https://img.shields.io/node/v/malvin-baileys.svg)](https://nodejs.org/)\n[![Downloads](https://img.shields.io/npm/dm/malvin-baileys.svg)](https://npmjs.com/package/malvin-baileys)\n[![ESM only](https://img.shields.io/badge/ESM-yellow?logo=javascript&labelColor=yellow&logoColor=black&style=flat)](https://nodejs.org)\n\n<p align=\"center\">\n  <img src=\"https://i.ibb.co/Wpnx2hhF/malvin-xd.jpg\" alt=\"malvin-baileys\" width=\"500\" />\n</p>\n\n**malvin-baileys** is a cutting-edge, open-source Node.js library for seamless WhatsApp automation and integration. Built on WebSocket technology, it bypasses browser dependencies to deliver lightweight, high-performance connections. Ideal for developers crafting bots, chat automations, customer service platforms, and dynamic communication tools.\n\n> **Developer**: [@XdKing2](https://github.com/XdKing2) | **Package**: [npmjs.com/package/malvin-baileys](https://npmjs.com/package/malvin-baileys)\n\n---\n\n## 🙏 Credits & Attribution\n\n> [!NOTE]\n> This project stands on the shoulders of those who came before it.\n> Proper credit matters — always.\n\n### 📦 Upstream & Original Authors\n\n| Project | Author | Role |\n|---|---|---|\n| [Baileys](https://github.com/WhiskeySockets/Baileys) | [@WhiskeySockets](https://github.com/WhiskeySockets) | Original upstream library |\n\n\n### ✨ About This Fork\n\nThis fork builds upon **malvin-baileys** with a focus on production readiness and transparency.\n\nFull credit for the foundational fork goes to **@XdKing2** — this project would not exist without their work.\n\n> [!IMPORTANT]\n> If you fork or redistribute this project, please:\n>\n> - ✅ Keep original attributions intact\n> - ✅ Credit **@XdKing2** for the v2 fork base\n> - ✅ Credit **@WhiskeySockets** for the upstream library\n> - 🚫 Do **not** claim others' work as your own\n> - 🚫 Do **not** rename and reupload without meaningful changes and proper credit\n\n---\n\n*Made with 🤍 — because open source thrives on honesty.*\n\n## ⚙️ Changes from Upstream\n\n### 🛠️ Internal Adjustments\n- 🖼️ Fixed an issue where media could not be sent to newsletters due to an upstream issue.\n- 📁 Reintroduced `makeInMemoryStore` with a minimal ESM adaptation and small adjustments for Baileys v7.\n- 📦 Switched FFmpeg execution from `exec` to `spawn` for safer process handling.\n- 🗃️ Added `@napi-rs/image` as a supported image processing backend in `getImageProcessingLibrary()`, offering a balance between performance and compatibility.\n\n### 📨 Message Handling & Compatibility\n- 👉 Added support for sending interactive message types (button, list, interactive, template, carousel).\n- 📩 Added support for:\n  - 🖼️ Album messages\n  - 👤 Group status messages\n  - 🎞️ Status mention messages\n  - 📦 Sticker pack messages\n  - 🗓️ Event messages\n  - ✨ Rich response messages\n  - 🧾 Messages with code blocks\n  - 📋 Messages with tables\n  - 📊 Poll update messages\n  - 💭 Button/list/flow response messages\n  - 💳 Payment-related messages (request payment, payment invite, order, invoice)\n- 📰 Simplified sending messages with ad thumbnails via `externalAdReply` without requiring manual `contextInfo`.\n- 💭 Added support for quoting messages inside channels (newsletters).\n\n### 🧩 Additional Message Options\n- 👁️ Added optional boolean flags:\n  - 🤖 `ai` — AI icon on message\n  - 📣 `mentionAll` — Mention all group participants without requiring JIDs\n  - 🐱 `isLottie` — Lottie sticker wrapper\n  - 📑 `spoiler` — Spoiler message wrapper\n  - 🔧 `ephemeral`, `groupStatus`, `viewOnce`, `viewOnceV2`, `viewOnceV2Extension`, `interactiveAsTemplate` — Message wrappers\n  - 🔒 `secureMetaServiceLabel` — Secure meta service label on message\n  - 📄 `raw` — Build your message manually *(DO NOT USE FOR EXPLOITATION)*\n\n---\n\n## 📋 Index\n\n- [📥 Installation](#-installation)\n- [🧩 Import (ESM & CJS)](#-import-esm--cjs)\n- [🌐 Connect to WhatsApp](#-connect-to-whatsapp)\n- [🗄️ Implementing a Data Store](#%EF%B8%8F-implementing-a-data-store)\n- [🪪 WhatsApp IDs (JID) Formats](#-whatsapp-ids-jid-formats)\n- [✉️ Sending Messages](#%EF%B8%8F-sending-messages)\n- [📁 Sending Media Messages](#-sending-media-messages)\n- [👉 Sending Interactive Messages](#-sending-interactive-messages)\n- [✨ Rich & Structured Messages](#-rich--structured-messages)\n- [💳 Sending Payment Messages](#-sending-payment-messages)\n- [👁️ Other Message Options](#%EF%B8%8F-other-message-options)\n- [♻️ Modify Messages](#%EF%B8%8F-modify-messages)\n- [🧰 Additional Utilities](#-additional-utilities)\n- [📣 Newsletter Management](#-newsletter-management)\n- [👥 Group Management](#-group-management)\n- [👥 Community Management](#-community-management)\n- [🛒 Business Management](#-business-management)\n- [👤 Profile Management](#-profile-management)\n- [🔐 Privacy Management](#-privacy-management)\n- [📡 Events](#-events)\n- [📦 Fork Base](#-fork-base)\n- [📣 Credits](#-credits)\n\n---\n\n## 📥 Installation\n\n```bash\n# npm\nnpm install malvin-baileys\n\n# yarn\nyarn add malvin-baileys\n\n# pnpm\npnpm add malvin-baileys\n```\n\nVia package.json:\n\n```json\n{\n  \"dependencies\": {\n    \"malvin-baileys\": \"latest\"\n  }\n}\n```\n\nRequirements: Node.js ≥ 20.x\n\n---\n\n🧩 Import (ESM & CJS)\n\n```javascript\n// ESM\nimport { makeWASocket } from 'malvin-baileys'\n\n// CJS (tested and working on Node.js 24 ✅)\nconst { makeWASocket } = require('malvin-baileys')\n```\n\n---\n\n🌐 Connect to WhatsApp\n\n```javascript\nimport { makeWASocket, delay, DisconnectReason, useMultiFileAuthState } from 'malvin-baileys'\nimport { Boom } from '@hapi/boom'\nimport pino from 'pino'\n\nconst myPhoneNumber = '263XXXXXXXX'\nconst logger = pino({ level: 'silent' })\n\nconst connectToWhatsApp = async () => {\n  const { state, saveCreds } = await useMultiFileAuthState('session')\n\n  const sock = makeWASocket({ logger, auth: state })\n\n  sock.ev.on('creds.update', saveCreds)\n\n  sock.ev.on('connection.update', async (update) => {\n    const { connection, lastDisconnect } = update\n    if (connection === 'connecting' && !sock.authState.creds.registered) {\n      await delay(1500)\n      const code = await sock.requestPairingCode(myPhoneNumber, \"MRMALVIN\")\n      console.log('🔗 Pairing code:', code)\n    } else if (connection === 'close') {\n      const shouldReconnect = new Boom(lastDisconnect?.error)?.output?.statusCode !== DisconnectReason.loggedOut\n      console.log('⚠️ Connection closed, reconnecting:', shouldReconnect)\n      if (shouldReconnect) connectToWhatsApp()\n    } else if (connection === 'open') {\n      console.log('✅ Successfully connected to WhatsApp')\n    }\n  })\n\n  sock.ev.on('messages.upsert', async ({ messages }) => {\n    for (const message of messages) {\n      if (!message.message) continue\n      console.log('🔔 Got new message:', message)\n      await sock.sendMessage(message.key.remoteJid, { text: '👋🏻 Hello world' })\n    }\n  })\n}\n\nconnectToWhatsApp()\n```\n\n🔐 Auth State\n\n[!NOTE]\nYou can use the experimental useSingleFileAuthState and useSqliteAuthState as an alternative to useMultiFileAuthState. However, useSingleFileAuthState already includes an internal caching mechanism, so there is no need to wrap state.keys with makeCacheableSignalKeyStore.\n\n---\n\n🗄️ Implementing a Data Store\n\n[!CAUTION]\nKeeping an entire chat history in memory can lead to excessive RAM usage. Build your own data store for production.\n\n```javascript\nimport { makeWASocket, makeInMemoryStore, useMultiFileAuthState } from 'malvin-baileys'\nimport pino from 'pino'\n\nconst storePath = './store.json'\nconst logger = pino({ level: 'silent' })\n\nconst connectToWhatsApp = async () => {\n  const { state, saveCreds } = await useMultiFileAuthState('session')\n  const sock = makeWASocket({ logger, auth: state })\n\n  const store = makeInMemoryStore({ logger, socket: sock })\n  store.bind(sock.ev)\n\n  sock.ev.on('creds.update', saveCreds)\n\n  sock.ev.on('chats.upsert', () => {\n    console.log('✉️ Got chats', store.chats.all())\n  })\n\n  sock.ev.on('contacts.upsert', () => {\n    console.log('👥 Got contacts', Object.values(store.contacts))\n  })\n\n  // Read store from file on startup\n  store.readFromFile(storePath)\n\n  // Auto-save every 3 minutes\n  setInterval(() => store.writeToFile(storePath), 180000)\n}\n\nconnectToWhatsApp()\n```\n\n---\n\n🪪 WhatsApp IDs (JID) Formats\n\nType Format\nPrivate chat 19999999999@s.whatsapp.net\nLID 12699999999@lid\nGroup 123456789-123345@g.us\nMeta AI 11111111111@bot\nBroadcast [timestamp]@broadcast\nStories status@broadcast\nNewsletter 1234XXXX@newsletter\n\n---\n\n✉️ Sending Messages\n\n[!NOTE]\nYou can get the jid from message.key.remoteJid.\n\n🔠 Text\n\n```javascript\nsock.sendMessage(jid, {\n  text: '👋🏻 Hello'\n}, {\n  quoted: message\n})\n```\n\n🔔 Mention\n\n```javascript\n// Regular mention\nsock.sendMessage(jid, {\n  text: '👋🏻 Hello @948123456789',\n  mentions: ['948123456789@s.whatsapp.net']\n}, {\n  quoted: message\n})\n\n// Mention all (no JIDs needed)\nsock.sendMessage(jid, {\n  text: '👋🏻 Hello @all',\n  mentionAll: true\n}, {\n  quoted: message\n})\n```\n\n😁 Reaction\n\n```javascript\nsock.sendMessage(jid, {\n  react: {\n    key: message.key,\n    text: '✨'\n  }\n})\n```\n\n📌 Pin Message\n\n```javascript\nsock.sendMessage(jid, {\n  pin: message.key,\n  time: 86400, // 86400 (1d), 604800 (7d), 2592000 (30d)\n  type: 1      // 0 to unpin\n})\n```\n\n🔖 Keep Chat\n\n[!NOTE]\nKeep Chat can only be used in chats or groups with disappearing messages enabled.\n\n```javascript\nsock.sendMessage(jid, {\n  keep: message.key,\n  type: 1 // Or 2 to remove\n})\n```\n\n➡️ Forward Message\n\n```javascript\nsock.sendMessage(jid, {\n  forward: message,\n  force: true // Optional\n})\n```\n\n👤 Contact\n\n```javascript\nconst vcard = 'BEGIN:VCARD\\n'\n            + 'VERSION:3.0\\n'\n            + 'FN:Malvin King\\n'\n            + 'ORG:Malvin Tech;\\n'\n            + 'TEL;type=CELL;type=VOICE;waid=263XXXXXXXX:+263 XXXXXXX\\n'\n            + 'END:VCARD'\n\nsock.sendMessage(jid, {\n  contacts: {\n    displayName: 'Malvin King',\n    contacts: [{ vcard }]\n  }\n}, {\n  quoted: message\n})\n```\n\n📍 Location\n\n```javascript\nsock.sendMessage(jid, {\n  location: {\n    degreesLatitude: 24.121231,\n    degreesLongitude: 55.1121221,\n    name: '👋🏻 I am here'\n  }\n}, {\n  quoted: message\n})\n```\n\n🗓️ Event\n\n```javascript\nsock.sendMessage(jid, {\n  event: {\n    name: '🎶 Tech Meetup',\n    description: 'Join us for AI innovations and networking!',\n    call: 'video',\n    startDate: new Date(Date.now() + 3600000),\n    endDate: new Date(Date.now() + 28800000),\n    isCancelled: false,\n    isScheduleCall: false,\n    extraGuestsAllowed: false,\n    location: {\n      name: 'Online',\n      degreesLatitude: -6.2,\n      degreesLongitude: 106.8\n    }\n  }\n}, {\n  quoted: message\n})\n```\n\n👥 Group Invite\n\n```javascript\nconst inviteCode = groupUrl.split('chat.whatsapp.com/')[1]?.split('?')[0]\n\nsock.sendMessage(jid, {\n  groupInvite: {\n    inviteCode,\n    inviteExpiration: Date.now() + 86400000,\n    text: '👋🏻 Hello, we invite you to join our group.',\n    jid: '1201111111111@g.us',\n    subject: 'malvin-baileys',\n  }\n}, {\n  quoted: message\n})\n```\n\n🛍️ Product\n\n```javascript\nimport { randomUUID } from 'crypto'\n\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  body: '👋🏻 Check my product here!',\n  footer: 'malvin-baileys',\n  product: {\n    currencyCode: 'USD',\n    description: '🛍️ Premium product!',\n    priceAmount1000: 70_000_000,\n    productId: randomUUID(),\n    productImageCount: 1,\n    salePriceAmount1000: 65_000_000,\n    signedUrl: 'https://npmjs.com/package/malvin-baileys',\n    title: '📦 Malvin Premium',\n    url: 'https://npmjs.com/package/malvin-baileys'\n  },\n  businessOwnerJid: '0@s.whatsapp.net'\n})\n```\n\n📊 Polls\n\n```javascript\n// Regular poll\nsock.sendMessage(jid, {\n  poll: {\n    name: '🔥 Voting time',\n    values: ['Yes', 'No'],\n    selectableCount: 1,\n    toAnnouncementGroup: false,\n    endDate: new Date(Date.now() + 28800000), // Optional\n    hideVoter: false,                          // Optional\n    canAddOption: false                        // Optional\n  }\n}, {\n  quoted: message\n})\n\n// Quiz (newsletter only)\nsock.sendMessage('1211111111111@newsletter', {\n  poll: {\n    name: '🔥 Quiz',\n    values: ['Yes', 'No'],\n    correctAnswer: 'Yes',\n    pollType: 1\n  }\n})\n\n// Poll result\nsock.sendMessage(jid, {\n  pollResult: {\n    name: '📝 Poll Result',\n    votes: [\n      { name: 'Nice', voteCount: 10 },\n      { name: 'Nah', voteCount: 2 }\n    ],\n    pollType: 0 // 1 for quiz\n  }\n})\n\n// Poll update\nsock.sendMessage(jid, {\n  pollUpdate: {\n    metadata: {},\n    key: message.key,\n    vote: {\n      enclv: /* <Buffer> */,\n      encPayload: /* <Buffer> */\n    }\n  }\n}, {\n  quoted: message\n})\n```\n\n💭 Button Response\n\n```javascript\n// Using buttonsResponseMessage\nsock.sendMessage(jid, {\n  type: 'plain',\n  buttonReply: {\n    id: '#Menu',\n    displayText: '✨ Interesting Menu'\n  }\n}, {\n  quoted: message\n})\n\n// Using interactiveResponseMessage\nsock.sendMessage(jid, {\n  flowReply: {\n    format: 0,\n    text: '💭 Response',\n    name: 'menu_options',\n    paramsJson: JSON.stringify({\n      id: '#Menu',\n      description: '✨ Interesting Menu'\n    })\n  }\n}, {\n  quoted: message\n})\n\n// Using listResponseMessage\nsock.sendMessage(jid, {\n  listReply: {\n    title: '📄 See More',\n    description: '✨ Interesting Menu',\n    id: '#Menu'\n  }\n}, {\n  quoted: message\n})\n\n// Using templateButtonReplyMessage\nsock.sendMessage(jid, {\n  type: 'template',\n  buttonReply: {\n    id: '#Menu',\n    displayText: '✨ Interesting Menu',\n    index: 1\n  }\n}, {\n  quoted: message\n})\n```\n\n🎞️ Status Mention\n\n```javascript\nsock.sendMessage([jidA, jidB, jidC], {\n  text: 'Hello! 👋🏻'\n})\n```\n\n---\n\n📁 Sending Media Messages\n\n[!NOTE]\nFor media, you can pass a Buffer, { stream: Readable }, or { url: string } (local path or HTTP/HTTPS URL).\n\n🖼️ Image\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '🔥 Superb'\n}, {\n  quoted: message\n})\n```\n\n🎥 Video\n\n```javascript\nsock.sendMessage(jid, {\n  video: { url: './path/to/video.mp4' },\n  gifPlayback: false, // true → send as GIF\n  ptv: false,         // true → Picture-in-Picture (PTV)\n  caption: '🔥 Superb'\n}, {\n  quoted: message\n})\n```\n\n📃 Sticker\n\n```javascript\nsock.sendMessage(jid, {\n  sticker: { url: './path/to/sticker.webp' }\n}, {\n  quoted: message\n})\n```\n\n💽 Audio\n\n```javascript\nsock.sendMessage(jid, {\n  audio: { url: './path/to/audio.mp3' },\n  ptt: false // true → Voice Note\n}, {\n  quoted: message\n})\n```\n\n🗂️ Document\n\n```javascript\nsock.sendMessage(jid, {\n  document: { url: './path/to/document.pdf' },\n  mimetype: 'application/pdf',\n  caption: '✨ My work!'\n}, {\n  quoted: message\n})\n```\n\n🖼️ Album (Image & Video)\n\n```javascript\nsock.sendMessage(jid, {\n  album: [{\n    image: { url: './path/to/image.jpg' },\n    caption: '1st image'\n  }, {\n    video: { url: './path/to/video.mp4' },\n    caption: '1st video'\n  }, {\n    image: { url: './path/to/image.jpg' },\n    caption: '2nd image'\n  }, {\n    video: { url: './path/to/video.mp4' },\n    caption: '2nd video'\n  }]\n}, {\n  quoted: message\n})\n```\n\n📦 Sticker Pack\n\n[!IMPORTANT]\nIf sharp or @napi-rs/image is not installed, cover and stickers must already be in WebP format.\n\n```javascript\nsock.sendMessage(jid, {\n  cover: { url: './path/to/cover.webp' },\n  stickers: [\n    { data: { url: './path/to/s1.webp' } },\n    { data: { url: './path/to/s2.webp' } },\n    { data: { url: './path/to/s3.webp' } }\n  ],\n  name: '📦 Malvin Sticker Pack',\n  publisher: '🌟 Malvin King',\n  description: 'malvin-baileys'\n}, {\n  quoted: message\n})\n```\n\n---\n\n👉 Sending Interactive Messages\n\n1️⃣ Buttons\n\n```javascript\n// Simple buttons\nsock.sendMessage(jid, {\n  text: '👆🏻 Buttons!',\n  footer: 'malvin-baileys',\n  buttons: [{\n    text: '👋🏻 SignUp',\n    id: '#SignUp'\n  }]\n}, {\n  quoted: message\n})\n\n// Buttons with media & native flow sections\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '👆🏻 Buttons and Native Flow!',\n  footer: 'malvin-baileys',\n  buttons: [{\n    text: '👋🏻 Rating',\n    id: '#Rating'\n  }, {\n    text: '📋 Select',\n    sections: [{\n      title: '✨ Section 1',\n      rows: [{\n        header: '',\n        title: '💭 Secret Ingredient',\n        description: '',\n        id: '#SecretIngredient'\n      }]\n    }, {\n      title: '✨ Section 2',\n      highlight_label: '🔥 Popular',\n      rows: [{\n        header: '',\n        title: '🏷️ Coupon',\n        description: '',\n        id: '#CouponCode'\n      }]\n    }]\n  }]\n}, {\n  quoted: message\n})\n```\n\n2️⃣ List\n\n[!NOTE]\nList messages only work in private chat (@s.whatsapp.net).\n\n```javascript\nsock.sendMessage(jid, {\n  text: '📋 List!',\n  footer: 'malvin-baileys',\n  buttonText: '📋 Select',\n  title: '👋🏻 Hello',\n  sections: [{\n    title: '🚀 Menu 1',\n    rows: [{\n      title: '✨ AI',\n      description: '',\n      rowId: '#AI'\n    }]\n  }, {\n    title: '🌱 Menu 2',\n    rows: [{\n      title: '🔍 Search',\n      description: '',\n      rowId: '#Search'\n    }]\n  }]\n}, {\n  quoted: message\n})\n```\n\n3️⃣ Interactive (Native Flow)\n\n```javascript\n// Native Flow\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '🗄️ Interactive!',\n  footer: 'malvin-baileys',\n  optionText: '👉🏻 Select Options',\n  optionTitle: '📄 Select Options',\n  offerText: '🏷️ Newest Coupon!',\n  offerCode: 'MALVIN2026',\n  offerUrl: 'https://npmjs.com/package/malvin-baileys',\n  offerExpiration: Date.now() + 3_600_000,\n  nativeFlow: [{\n    text: '👋🏻 Greeting',\n    id: '#Greeting',\n    icon: 'review'\n  }, {\n    text: '📞 Call',\n    call: '263XXXXXXXX'\n  }, {\n    text: '📋 Copy',\n    copy: 'MALVIN-BAILEYS'\n  }, {\n    text: '🌐 Source',\n    url: 'https://npmjs.com/package/malvin-baileys',\n    useWebview: true\n  }, {\n    text: '📋 Select',\n    sections: [{\n      title: '✨ Section 1',\n      rows: [{ header: '', title: '🏷️ Coupon', description: '', id: '#CouponCode' }]\n    }, {\n      title: '✨ Section 2',\n      highlight_label: '🔥 Popular',\n      rows: [{ header: '', title: '💭 Secret Ingredient', description: '', id: '#SecretIngredient' }]\n    }],\n    icon: 'default'\n  }],\n  interactiveAsTemplate: false\n}, {\n  quoted: message\n})\n\n// Native Flow with Audio in the Footer\nsock.sendMessage(jid, {\n  text: '🔈 Music in the footer!',\n  audioFooter: {\n    url: './path/to/audio.mp3'\n  },\n  nativeFlow: [{\n    text: '👍🏻 Good, next',\n    id: '#Next',\n    icon: 'review'\n  }, {\n    text: '👎🏻 Skip',\n    id: '#Skip',\n    icon: 'default'\n  }]\n}, {\n  quoted: message\n})\n```\n\n4️⃣ Carousel\n\n```javascript\nsock.sendMessage(jid, {\n  text: '🗂️ Interactive with Carousel!',\n  footer: 'malvin-baileys',\n  cards: [{\n    image: { url: './path/to/image.jpg' },\n    caption: '🖼️ Image 1',\n    footer: '🏷️ Malvin Tech',\n    nativeFlow: [{\n      text: '🌐 Source',\n      url: 'https://npmjs.com/package/malvin-baileys',\n      useWebview: true\n    }]\n  }, {\n    image: { url: './path/to/image.jpg' },\n    caption: '🖼️ Image 2',\n    footer: '🏷️ Malvin Tech',\n    offerText: '🏷️ New Coupon!',\n    offerCode: 'MALVIN2026',\n    offerUrl: 'https://npmjs.com/package/malvin-baileys',\n    offerExpiration: Date.now() + 3_600_000,\n    nativeFlow: [{\n      text: '🌐 Source',\n      url: 'https://npmjs.com/package/malvin-baileys'\n    }]\n  }, {\n    image: { url: './path/to/image.jpg' },\n    caption: '🖼️ Image 3',\n    footer: '🏷️ Malvin Tech',\n    optionText: '👉🏻 Select Options',\n    optionTitle: '📄 Select Options',\n    offerText: '🏷️ New Coupon!',\n    offerCode: 'MALVIN2026',\n    offerExpiration: Date.now() + 3_600_000,\n    nativeFlow: [{\n      text: '🛒 Product',\n      id: '#Product',\n      icon: 'default'\n    }, {\n      text: '🌐 Source',\n      url: 'https://npmjs.com/package/malvin-baileys'\n    }]\n  }]\n}, {\n  quoted: message\n})\n```\n\n5️⃣ Hydrated Template\n\n```javascript\nsock.sendMessage(jid, {\n  title: '👋🏻 Hello',\n  image: { url: './path/to/image.jpg' },\n  caption: '🫙 Template!',\n  footer: 'malvin-baileys',\n  templateButtons: [{\n    text: '👉🏻 Tap Here',\n    id: '#Order'\n  }, {\n    text: '🌐 Source',\n    url: 'https://npmjs.com/package/malvin-baileys'\n  }, {\n    text: '📞 Call',\n    call: '263XXXXXXXX'\n  }]\n}, {\n  quoted: message\n})\n```\n\n---\n\n✨ Rich & Structured Messages\n\n✨ Rich Response\n\n[!NOTE]\nrichResponse[] is a representation of submessages[] inside richResponseMessage. You can still use the original submessages[] field directly — the helper below is optional.\n\n```javascript\nsock.sendMessage(jid, {\n  richResponse: [{\n    text: 'Example Usage',\n  }, {\n    language: 'javascript',\n    code: [{\n      highlightType: 0,\n      codeContent: 'console.log(\"Hello, World!\")'\n    }]\n  }, {\n    text: 'Pretty simple, right?\\n'\n  }, {\n    text: 'Comparison between Node.js, Bun, and Deno',\n  }, {\n    title: 'Runtime Comparison',\n    table: [{\n      isHeading: true,\n      items: ['', 'Node.js', 'Bun', 'Deno']\n    }, {\n      isHeading: false,\n      items: ['Engine', 'V8 (C++)', 'JavaScriptCore (C++)', 'V8 (C++)']\n    }, {\n      isHeading: false,\n      items: ['Performance', '4/5', '5/5', '4/5']\n    }]\n  }, {\n    text: 'Does this help clarify the differences?'\n  }]\n})\n```\n\n[!TIP]\nYou can add syntax highlighting by importing tokenizeCode directly from the package.\n\n```javascript\nimport { tokenizeCode } from 'malvin-baileys'\n\nconst language = 'javascript'\nconst code = 'console.log(\"Hello, World!\")'\n\nsock.sendMessage(jid, {\n  richResponse: [{\n    text: 'Example Usage',\n  }, {\n    language,\n    code: tokenizeCode(code, language)\n  }, {\n    text: 'Pretty simple, right?'\n  }]\n})\n```\n\n🧾 Message with Code Block\n\n[!NOTE]\nThis feature already includes a built-in tokenizer.\n\n```javascript\nsock.sendMessage(jid, {\n  headerText: '## Example Usage',\n  contentText: '---',\n  code: 'console.log(\"Hello, World!\")',\n  language: 'javascript',\n  footerText: 'Pretty simple, right?'\n})\n```\n\n🌏 Message with Inline Entities\n\n```javascript\nsock.sendMessage(jid, {\n  headerText: '## Check Out!',\n  contentText: '---',\n  links: [{\n    text: '1. GitHub',\n    title: 'Malvin Baileys Repository',\n    url: 'https://github.com/XdKing2/malvin-baileys'\n  }, {\n    text: '2. NPM',\n    title: 'NPM Package',\n    url: 'https://npmjs.com/package/malvin-baileys'\n  }, {\n    text: '3. WhatsApp Channel',\n    title: 'Malvin Tech Updates',\n    url: 'https://whatsapp.com/channel/0029VbB3YxTDJ6H15SKoBv3S'\n  }],\n  footerText: '---'\n})\n```\n\n📋 Message with Table\n\n```javascript\nsock.sendMessage(jid, {\n  headerText: '## Comparison between Node.js, Bun, and Deno',\n  contentText: '---',\n  title: 'Runtime Comparison',\n  table: [\n    ['', 'Node.js', 'Bun', 'Deno'],\n    ['Engine', 'V8 (C++)', 'JavaScriptCore (C++)', 'V8 (C++)'],\n    ['Performance', '4/5', '5/5', '4/5']\n  ],\n  noHeading: false,\n  footerText: 'Does this help clarify the differences?'\n})\n```\n\n---\n\n💳 Sending Payment Messages\n\n1️⃣ Payment Invite\n\n```javascript\nsock.sendMessage(jid, {\n  paymentInviteServiceType: 3 // 1, 2, or 3\n})\n```\n\n2️⃣ Invoice\n\n[!NOTE]\nInvoice messages are not fully supported yet.\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  invoiceNote: '🏷️ Invoice'\n})\n```\n\n3️⃣ Order\n\n```javascript\nsock.sendMessage(jid, {\n  orderText: '🛍️ Order',\n  thumbnail: fs.readFileSync('./path/to/image.jpg') // Must be Buffer\n}, {\n  quoted: message\n})\n```\n\n4️⃣ Request Payment\n\n```javascript\nsock.sendMessage(jid, {\n  text: '💳 Request Payment',\n  requestPaymentFrom: '0@s.whatsapp.net'\n})\n```\n\n---\n\n👁️ Other Message Options\n\n1️⃣ AI Label\n\n[!NOTE]\nOnly works in private chat (@s.whatsapp.net).\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '🤖 AI Labeled!',\n  ai: true\n}, {\n  quoted: message\n})\n```\n\n2️⃣ Ephemeral\n\n[!NOTE]\nWraps message into ephemeralMessage.\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '👁️ Ephemeral',\n  ephemeral: true\n})\n```\n\n3️⃣ External Ad Reply\n\n[!NOTE]\nAdds an ad thumbnail to messages (may not be displayed on all WhatsApp versions).\n\n```javascript\nsock.sendMessage(jid, {\n  text: '📰 External Ad Reply',\n  externalAdReply: {\n    title: '📝 Malvin Baileys',\n    body: '❓ Powerful WhatsApp API',\n    thumbnail: fs.readFileSync('./path/to/image.jpg'),\n    largeThumbnail: false,\n    url: 'https://npmjs.com/package/malvin-baileys'\n  }\n}, {\n  quoted: message\n})\n```\n\n4️⃣ Group Status\n\n[!NOTE]\nOnly works in group chat (@g.us).\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '👥 Group Status!',\n  groupStatus: true\n})\n```\n\n5️⃣ Lottie Sticker\n\n[!NOTE]\nWraps message into lottieStickerMessage.\n\n```javascript\nsock.sendMessage(jid, {\n  sticker: { url: './path/to/sticker.webp' },\n  isLottie: true\n})\n```\n\n6️⃣ Raw\n\n```javascript\nsock.sendMessage(jid, {\n  extendedTextMessage: {\n    text: '📃 Built manually from scratch using the raw WhatsApp proto structure',\n    contextInfo: {\n      externalAdReply: {\n        title: 'malvin-baileys',\n        thumbnail: fs.readFileSync('./path/to/image.jpg'),\n        sourceApp: 'whatsapp',\n        showAdAttribution: true,\n        mediaType: 1\n      }\n    }\n  },\n  raw: true\n}, {\n  quoted: message\n})\n```\n\n7️⃣ Secure Meta Service Label\n\n```javascript\nsock.sendMessage(jid, {\n  text: '🏷️ Just a label!',\n  secureMetaServiceLabel: true\n})\n```\n\n8️⃣ Spoiler\n\n[!NOTE]\nWraps message into spoilerMessage.\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '❔ Spoiler',\n  spoiler: true\n})\n```\n\n9️⃣ View Once\n\n[!NOTE]\nWraps message into viewOnceMessage.\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '👁️ View Once',\n  viewOnce: true\n})\n```\n\n🔟 View Once V2\n\n[!NOTE]\nWraps message into viewOnceMessageV2.\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '👁️ View Once V2',\n  viewOnceV2: true\n})\n```\n\n1️⃣1️⃣ View Once V2 Extension\n\n[!NOTE]\nWraps message into viewOnceMessageV2Extension.\n\n```javascript\nsock.sendMessage(jid, {\n  image: { url: './path/to/image.jpg' },\n  caption: '👁️ View Once V2 Extension',\n  viewOnceV2Extension: true\n})\n```\n\n---\n\n♻️ Modify Messages\n\n🗑️ Delete Messages\n\n```javascript\nsock.sendMessage(jid, {\n  delete: message.key\n})\n```\n\n✏️ Edit Messages\n\n```javascript\n// Edit plain text\nsock.sendMessage(jid, {\n  text: '✨ I mean, nice!',\n  edit: message.key\n})\n\n// Edit media caption\nsock.sendMessage(jid, {\n  caption: '✨ I mean, here is the image!',\n  edit: message.key\n})\n```\n\n---\n\n🧰 Additional Utilities\n\n🏷️ Find User ID (JID / LID)\n\n[!NOTE]\nThe ID must contain numbers only (no +, (), or -) and must include the country code.\n\n```javascript\n// By phone number\nconst ids = await sock.findUserId('263XXXXXXXX@s.whatsapp.net')\n\n// By LID\nconst ids = await sock.findUserId('43411111111111@lid')\n\nconsole.log(ids)\n// Output: { phoneNumber: '263XXXXXXXX@s.whatsapp.net', lid: '43411111111111@lid' }\n// On failure: { phoneNumber: '...', lid: 'id-not-found' }\n```\n\n🔑 Custom Pairing Code\n\n[!NOTE]\nPhone number must contain numbers only, no +, (), or -.\n\n```javascript\nconst phoneNumber = '263XXXXXXXX'\nconst customPairingCode = 'MRMALVIN'\n\nawait sock.requestPairingCode(phoneNumber, customPairingCode)\nconsole.log('🔗 Pairing code:', customPairingCode)\n```\n\n🖼️ Image Processing\n\n[!NOTE]\nAutomatically uses the best available image processing library: sharp, @napi-rs/image, or jimp.\n\n```javascript\nimport { getImageProcessingLibrary } from 'malvin-baileys'\nimport { readFile } from 'fs/promises'\n\nconst lib = await getImageProcessingLibrary()\nconst bufferOrFilePath = './path/to/image.jpg'\nconst width = 512\nlet output\n\n// If sharp is installed\nif (lib.sharp?.default) {\n  const img = lib.sharp.default(bufferOrFilePath)\n  output = await img.resize(width).jpeg({ quality: 80 }).toBuffer()\n}\n\n// If @napi-rs/image is installed\nelse if (lib.image?.Transformer) {\n  const inputBuffer = Buffer.isBuffer(bufferOrFilePath)\n    ? bufferOrFilePath\n    : await readFile(bufferOrFilePath)\n  const img = new lib.image.Transformer(inputBuffer)\n  output = await img.resize(width, undefined, 0).jpeg(50)\n}\n\n// If jimp is installed\nelse if (lib.jimp?.Jimp) {\n  const img = await lib.jimp.Jimp.read(bufferOrFilePath)\n  output = await img\n    .resize({ w: width, mode: lib.jimp.ResizeStrategy.BILINEAR })\n    .getBuffer('image/jpeg', { quality: 50 })\n}\n\n// Fallback\nelse {\n  throw new Error('No image processing library available')\n}\n\nconsole.log('✅ Process completed!')\nconsole.dir(output, { depth: null })\n```\n\n---\n\n📣 Newsletter Management\n\n```javascript\n// Create\nsock.newsletterCreate('Malvin Baileys', '📣 Fresh updates weekly')\n\n// Get info\nconst metadata = await sock.newsletterMetadata('1231111111111@newsletter')\nconsole.dir(metadata, { depth: null })\n\n// Get subscribers count\nconst subscribers = await sock.newsletterSubscribers('1231111111111@newsletter')\nconsole.dir(subscribers, { depth: null })\n\n// Follow and Unfollow\nsock.newsletterFollow('1231111111111@newsletter')\nsock.newsletterUnfollow('1231111111111@newsletter')\n\n// Mute and Unmute\nsock.newsletterMute('1231111111111@newsletter')\nsock.newsletterUnmute('1231111111111@newsletter')\n\n// Demote admin\nsock.newsletterDemote('1231111111111@newsletter', '263XXXXXXXX@s.whatsapp.net')\n\n// Change owner\nsock.newsletterChangeOwner('1231111111111@newsletter', '263XXXXXXXX@s.whatsapp.net')\n\n// Generic update\nsock.newsletterUpdate('1231111111111@newsletter', { name: 'malvin-baileys' })\n\n// Update name & description\nsock.newsletterUpdateName('1231111111111@newsletter', '📦 malvin-baileys')\nsock.newsletterUpdateDescription('1231111111111@newsletter', '📣 Fresh updates weekly')\n\n// Update / remove photo\nsock.newsletterUpdatePicture('1231111111111@newsletter', { url: './image.jpg' })\nsock.newsletterRemovePicture('1231111111111@newsletter')\n\n// React to a message\nsock.newsletterReactMessage('1231111111111@newsletter', '100', '💛')\n\n// Get admin count\nconst count = await sock.newsletterAdminCount('1231111111111@newsletter')\n\n// Get all subscribed newsletters\nconst newsletters = await sock.newsletterSubscribed()\nconsole.dir(newsletters, { depth: null })\n\n// Fetch messages\nconst messages = sock.newsletterFetchMessages('jid', '1231111111111@newsletter', 50, 0, 0)\nconsole.dir(messages, { depth: null })\n\n// Delete newsletter\nsock.newsletterDelete('1231111111111@newsletter')\n```\n\n---\n\n👥 Group Management\n\n```javascript\n// Create and add participants\nconst group = await sock.groupCreate('malvin-baileys', ['263XXXXXXXX@s.whatsapp.net'])\nconsole.dir(group, { depth: null })\n\n// Get info\nconst metadata = await sock.groupMetadata(jid)\nconsole.dir(metadata, { depth: null })\n\n// Invite management\nsock.groupInviteCode(jid)\nsock.groupRevokeInvite(jid)\nsock.groupAcceptInvite(inviteCode)\nsock.groupLeave(jid)\n\n// Get group info from invite link\nconst group = await sock.groupGetInviteInfo('https://chat.whatsapp.com/ABC123')\nconsole.log('👥 Got group info from link:', group)\n\n// Members\nsock.groupParticipantsUpdate(jid, ['263XXXXXXXX@s.whatsapp.net'], 'add')\nsock.groupParticipantsUpdate(jid, ['263XXXXXXXX@s.whatsapp.net'], 'remove')\nsock.groupParticipantsUpdate(jid, ['263XXXXXXXX@s.whatsapp.net'], 'promote')\nsock.groupParticipantsUpdate(jid, ['263XXXXXXXX@s.whatsapp.net'], 'demote')\n\n// Accept join requests\nsock.groupRequestParticipantsUpdate(jid, ['263XXXXXXXX@s.whatsapp.net'], 'approve')\n\n// Update info\nsock.groupUpdateSubject(jid, '📦 malvin-baileys')\nsock.groupUpdateDescription(jid, 'Updated description')\nsock.updateProfilePicture(jid, { url: './image.jpg' })\nsock.removeProfilePicture(jid)\n\n// Settings\nsock.groupSettingUpdate(jid, 'announcement')      // Admin only chat\nsock.groupSettingUpdate(jid, 'not_announcement')  // Open chat\nsock.groupSettingUpdate(jid, 'locked')            // Admin only info edit\nsock.groupSettingUpdate(jid, 'unlocked')          // All can edit info\nsock.groupMemberAddMode(jid, 'admin_add')         // Admin only can add\nsock.groupMemberAddMode(jid, 'all_member_add')    // All can add\n\n// Disappearing messages\nsock.groupToggleEphemeral(jid, 86400) // Enable (1 day)\nsock.groupToggleEphemeral(jid, 0)     // Disable\n\n// Approval mode\nsock.groupJoinApprovalMode(jid, 'on')\nsock.groupJoinApprovalMode(jid, 'off')\n\n// Fetch all participating groups\nconst groups = await sock.groupFetchAllParticipating()\nconsole.dir(groups, { depth: null })\n\n// Get pending join requests\nconst requests = await sock.groupRequestParticipantsList(jid)\nconsole.dir(requests, { depth: null })\n\n// Update bot member label\nsock.updateMemberLabel(jid, 'malvin-baileys')\n```\n\n---\n\n👥 Community Management\n\n```javascript\n// Create a new community with description\nconst community = await sock.communityCreate('malvin-baileys', '📣 Fresh updates weekly')\nconsole.dir(community, { depth: null })\n\n// Create a subgroup for community and add participants\nconst group = await sock.communityCreateGroup('📢 Announcements', ['263XXXXXXXX@s.whatsapp.net'], communityJid)\n\n// Link / unlink an existing group\nsock.communityLinkGroup(groupJid, communityJid)\nsock.communityUnlinkGroup(groupJid, communityJid)\n\n// Get info\nconst metadata = await sock.communityMetadata(jid)\nconsole.dir(metadata, { depth: null })\n\n// Invite management\nconst inviteCode = await sock.communityInviteCode(jid)\nsock.communityRevokeInvite(jid)\nsock.communityAcceptInvite(inviteCode)\nsock.communityLeave(jid)\n\n// Get community info from invite code\nconst communityInfo = await sock.communityGetInviteInfo('ABC123456789')\nconsole.log('👥 Got community info from invite code:', communityInfo)\n\n// Accept join requests\nsock.communityRequestParticipantsUpdate(jid, ['263XXXXXXXX@s.whatsapp.net'], 'approve')\n\n// Update info\nsock.communityUpdateSubject(jid, '📦 malvin-baileys')\nsock.communityUpdateDescription(jid, 'Updated description')\n\n// Settings\nsock.communitySettingUpdate(jid, 'announcement')      // Admin only chat\nsock.communitySettingUpdate(jid, 'not_announcement')  // Open chat\nsock.communitySettingUpdate(jid, 'locked')            // Admin only info edit\nsock.communitySettingUpdate(jid, 'unlocked')          // All can edit info\nsock.communityMemberAddMode(jid, 'admin_add')         // Admin only can add\nsock.communityMemberAddMode(jid, 'all_member_add')    // All can add\n\n// Disappearing messages\nsock.communityToggleEphemeral(jid, 86400) // Enable (1 day)\nsock.communityToggleEphemeral(jid, 0)     // Disable\n\n// Approval mode\nsock.communityJoinApprovalMode(jid, 'on')\nsock.communityJoinApprovalMode(jid, 'off')\n\n// Fetch all participating communities\nconst communities = await sock.communityFetchAllParticipating()\nconsole.dir(communities, { depth: null })\n\n// Fetch all linked groups\nconst linked = await sock.communityFetchLinkedGroups(jid)\nconsole.dir(linked, { depth: null })\n\n// Get pending join requests\nconst communityRequests = await sock.communityRequestParticipantsList(jid)\nconsole.dir(communityRequests, { depth: null })\n```\n\n---\n\n🛒 Business Management\n\n```javascript\n// Create a new product\nconst product = await sock.productCreate({\n  name: '🧩 Malvin Premium Product',\n  description: 'Get a full version of our product!',\n  price: 100000,\n  currency: 'USD',\n  originCountryCode: 'US',\n  images: [\n    bufferImage,\n    { url: './path/to/image.jpg' }\n  ]\n})\nconsole.dir(product, { depth: null })\n\n// Update product\nawait sock.productUpdate(productId, {\n  name: '🧩 Malvin Premium Product',\n  description: 'Get a full version with more features!',\n  price: 75000,\n  currency: 'USD',\n  images: [{ url: './path/to/image.jpg' }]\n})\n\n// Delete product\nsock.productDelete([productId])\n\n// Get catalog info\nconst { products, nextPageCursor } = await sock.getCatalog({\n  jid: '263XXXXXXXX@s.whatsapp.net',\n  limit: 10\n})\n\n// Get collections\nconst collections = await sock.getCollections('263XXXXXXXX@s.whatsapp.net', 10)\nconsole.dir(collections, { depth: null })\n\n// Get order info\nconst order = await sock.getOrderDetails(orderId, tokenBase64)\nconsole.dir(order, { depth: null })\n\n// Update business profile\nawait sock.updateBusinessProfile({\n  address: 'Harare, Zimbabwe',\n  description: '🛒 Malvin Official Store',\n  websites: ['https://npmjs.com/package/malvin-baileys'],\n  email: 'contact@example.com',\n  hours: {\n    timezone: 'Africa/Harare',\n    days: [{ day: 'mon', mode: 'open_24h' }]\n  }\n})\n\n// Update / remove cover photo\nsock.updateCoverPhoto({ url: './path/to/image.jpg' })\nsock.removeCoverPhoto(coverId)\n\n// Quick replies\nsock.addOrEditQuickReply({\n  shortcut: 'hello',\n  message: 'Hello from Malvin business account',\n})\nsock.removeQuickReply(timestamp)\n```\n\n---\n\n👤 Profile Management\n\n```javascript\n// Get profile picture URL\nconst url = await sock.profilePictureUrl(jid, 'image')\nconsole.log('🖼️ Got profile url:', url)\n\n// Update / remove profile picture\nsock.updateProfilePicture(jid, buffer)\nsock.updateProfilePicture(jid, { url })\nsock.removeProfilePicture(jid)\n\n// Update name and status\nsock.updateProfileName('Malvin Bot')\nsock.updateProfileStatus('Available')\n\n// Presence\nsock.sendPresenceUpdate('available', jid)\nsock.presenceSubscribe(jid)\n\n// Read receipts\nsock.readMessages([message.key])\nsock.sendReceipt(jid, participant, [messageId], 'read')\n\n// Block / Unblock\nsock.updateBlockStatus(jid, 'block')\nsock.updateBlockStatus(jid, 'unblock')\n\n// Fetch blocklist\nconst blocked = await sock.fetchBlocklist()\nconsole.dir(blocked, { depth: null })\n\n// Modify chats\nsock.chatModify({ archive: true, lastMessageOrig: message, lastMessage: message }, jid)\n\n// Star messages\nsock.star(jid, [{ id: messageId, fromMe: true }], true)\n\n// Contacts\nsock.addOrEditContact(jid, { displayName: 'Malvin King' })\nsock.removeContact(jid)\n\n// Labels\nsock.addChatLabel(jid, labelId)\nsock.removeChatLabel(jid, labelId)\nsock.addMessageLabel(jid, messageId, labelId)\n\n// App state sync\nsock.resyncAppState(['regular', 'critical_block'], true)\n\n// Business profile\nconst profile = await sock.getBusinessProfile(jid)\nconsole.dir(profile, { depth: null })\n```\n\n---\n\n🔐 Privacy Management\n\n```javascript\n// Last seen\nsock.updateLastSeenPrivacy('all')\nsock.updateLastSeenPrivacy('contacts')\nsock.updateLastSeenPrivacy('contact_blacklist')\nsock.updateLastSeenPrivacy('nobody')\n\n// Online status\nsock.updateOnlinePrivacy('all')\nsock.updateOnlinePrivacy('match_last_seen')\n\n// Profile picture\nsock.updateProfilePicturePrivacy('contacts')\n\n// Status\nsock.updateStatusPrivacy('contacts')\n\n// Read receipts\nsock.updateReadReceiptsPrivacy('all')\nsock.updateReadReceiptsPrivacy('none')\n\n// Groups\nsock.updateGroupsAddPrivacy('all')\nsock.updateGroupsAddPrivacy('contacts')\n\n// Messages\nsock.updateMessagesPrivacy('all')\nsock.updateMessagesPrivacy('contacts')\nsock.updateMessagesPrivacy('nobody')\n\n// Calls\nsock.updateCallPrivacy('everyone')\n\n// Default disappearing mode\nsock.updateDefaultDisappearingMode(86400)\n\n// Link previews\nsock.updateDisableLinkPreviewsPrivacy(true)\n```\n\n---\n\n📡 Events\n\n```javascript\nsock.ev.on('connection.update', (update) => {})\nsock.ev.on('creds.update', (update) => {})\nsock.ev.on('messaging-history.set', (update) => {})\nsock.ev.on('messaging-history.status', (update) => {})\nsock.ev.on('chats.upsert', (update) => {})\nsock.ev.on('chats.update', (update) => {})\nsock.ev.on('chats.delete', (update) => {})\nsock.ev.on('chats.lock', (update) => {})\nsock.ev.on('lid-mapping.update', (update) => {})\nsock.ev.on('presence.update', (update) => {})\nsock.ev.on('contacts.upsert', (update) => {})\nsock.ev.on('contacts.update', (update) => {})\nsock.ev.on('messages.delete', (update) => {})\nsock.ev.on('messages.update', (update) => {})\nsock.ev.on('messages.media-update', (update) => {})\nsock.ev.on('messages.upsert', (update) => {})\nsock.ev.on('messages.reaction', (update) => {})\nsock.ev.on('message-receipt.update', (update) => {})\nsock.ev.on('groups.upsert', (update) => {})\nsock.ev.on('groups.update', (update) => {})\nsock.ev.on('group-participants.update', (update) => {})\nsock.ev.on('group.join-request', (update) => {})\nsock.ev.on('group.member-tag.update', (update) => {})\nsock.ev.on('blocklist.set', (update) => {})\nsock.ev.on('blocklist.update', (update) => {})\nsock.ev.on('call', (update) => {})\nsock.ev.on('labels.edit', (update) => {})\nsock.ev.on('labels.association', (update) => {})\nsock.ev.on('newsletter.reaction', (update) => {})\nsock.ev.on('newsletter.view', (update) => {})\nsock.ev.on('newsletter-participants.update', (update) => {})\nsock.ev.on('newsletter-settings.update', (update) => {})\nsock.ev.on('settings.update', (update) => {})\n```\n\n---\n\n📦 Fork Base\n\n[!NOTE]\nThis fork is based on Baileys (GitHub) via malvin-baileys v2\n\n---\n\n📣 Credits\n\n[!IMPORTANT]\nThis fork uses Protocol Buffer definitions maintained by WPP Connect via wa-proto\n\nFull credit goes to the original Baileys maintainers and contributors:\n\n· WhiskeySockets/Baileys\n· @XdKing2 for the malvin-baileys distribution\n· purpshell\n· jlucaso1\n· adiwajshing\n\nAdditional enhancements and modifications by Malvin King\n\nCredits are mandatory and must remain unchanged in any form of redistribution or fork.\n\n---\n\n📄 License\n\nMIT © Malvin King — See LICENSE for details.\n\n---\n\n📞 Support & Contact\n\n· GitHub: @XdKing2\n· NPM: malvin-baileys\n· WhatsApp Channel: Malvin Tech\n\nBuilt with ❤️ for the WhatsApp dev community. Let's automate the future! 🚀\n\n```\n","readmeFilename":"README.md"}