{"_id":"plogme","_rev":"6-1cd4680f32ceceae58f1bfce4a24b30f","name":"plogme","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"plogme","version":"1.0.0","keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","_id":"plogme@1.0.0","maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"homepage":"https://www.npmjs.com/package/plogme/","dist":{"shasum":"7084d130055ee4ef7c236a4e98469980d5e50ac8","tarball":"https://registry.npmjs.org/plogme/-/plogme-1.0.0.tgz","fileCount":154,"integrity":"sha512-Z7Oh4MELy5sprbP21M9dj6H5JkA1o/lMEzBPIGIXltx+hYhRBOgUQVB1pat9M8DlkO9DhTXSMa0Nx88kEM0MmQ==","signatures":[{"sig":"MEUCIQC9nK7up/bP/Q/hMiyiQHIXebRlkcRFlxTFTTMIIr0VtQIgJS+cep4hkn80bw6qznoaUaTBEiN2g5QCH0ZjGdXAqno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17211045},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f42e22c2933f8ae06c12988ba13440a441265cb4","scripts":{"test":"node --test","obfuscate":"node tools/obfuscate.mjs","preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"plogme","email":"plogmebot@gmail.com"},"repository":{"url":"https://pair.crysnovax.link","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","directories":{},"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":"24.15.0","dependencies":{"ws":"^8.19.0","long":"^5.2.3","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"^6.0.0","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","cache-manager":"^7.2.8","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.5","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"javascript-obfuscator":"^4.1.1"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","better-sqlite3":"^11.0.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"better-sqlite3":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plogme_1.0.0_1788630300703_0.40677319760118036","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"plogme","version":"1.0.1","keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","_id":"plogme@1.0.1","maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"homepage":"https://www.npmjs.com/package/plogme/","dist":{"shasum":"1106b0ed34fcde815bdf30dcefa5220434cb2910","tarball":"https://registry.npmjs.org/plogme/-/plogme-1.0.1.tgz","fileCount":154,"integrity":"sha512-emFRzq01K0CnRIxt44oyj4q/gjM25AYSPMj5x7wkuZUbsdkKDd1NvQqrwBignYzLU+bk7mkKYpc3azp7refTPQ==","signatures":[{"sig":"MEYCIQDOCob+J7xhm0i+GC6C89O1UOQLol8dg4ASre35yfkpsgIhAKI/uRmb+9iVm9+68uspemcU2Yy5MICpcaCohvAiWZXA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17210980},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7fae7756ea39e013b0c1b8975d17acfc8d52b317","scripts":{"test":"node --test","obfuscate":"node tools/obfuscate.mjs","preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"plogme","email":"plogmebot@gmail.com"},"repository":{"url":"https://pair.crysnovax.link","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","directories":{},"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":"24.15.0","dependencies":{"ws":"^8.19.0","long":"^5.2.3","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"^6.0.0","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","cache-manager":"^7.2.8","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.5","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"javascript-obfuscator":"^4.1.1"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","better-sqlite3":"^11.0.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"better-sqlite3":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plogme_1.0.1_1788641317945_0.6680434212055428","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"plogme","version":"1.0.2","keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","_id":"plogme@1.0.2","maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"homepage":"https://www.npmjs.com/package/plogme/","dist":{"shasum":"d6d4efcfce7c22a11a4e519634848ca8db14b166","tarball":"https://registry.npmjs.org/plogme/-/plogme-1.0.2.tgz","fileCount":154,"integrity":"sha512-9W327k/K7FsffFAbvlcJKu3xj52vvKd2MhOf+NQ6yf2E8G3sNZQM/bwovbGtrrwB7LyrIStxEgHjzBf5/pVAJA==","signatures":[{"sig":"MEYCIQDvsluzk9NrHv5mSSfQ1m5lwAq3VY21EhJ/Sp63fCwhpwIhAPArN5u1HctGNgGpJN2PdvjRayv18sAkeCs4jRV3sCYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17210933},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"295a0ec2c09ce44b4ce3efa08db167bb3a2492f7","scripts":{"test":"node --test","obfuscate":"node tools/obfuscate.mjs","preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"plogme","email":"plogmebot@gmail.com"},"repository":{"url":"https://pair.crysnovax.link","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","directories":{},"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":"24.15.0","dependencies":{"ws":"^8.19.0","long":"^5.2.3","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"^6.0.0","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","cache-manager":"^7.2.8","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.5","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"javascript-obfuscator":"^4.1.1"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","better-sqlite3":"^11.0.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"better-sqlite3":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plogme_1.0.2_1788644778786_0.34004756295315075","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"plogme","version":"1.0.3","keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","_id":"plogme@1.0.3","maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"homepage":"https://www.npmjs.com/package/plogme/","dist":{"shasum":"2972b34e365099fca36ae9f45050013cae5b64cc","tarball":"https://registry.npmjs.org/plogme/-/plogme-1.0.3.tgz","fileCount":155,"integrity":"sha512-/8RAENCo3P2rBq4VX2oMUFrJ5JEeuQSrn7LmxoakL49zYDonCndkyp36GnM0Ogv3Kn2rlXDupVzA6IYSxPxpqg==","signatures":[{"sig":"MEUCIQDIjHYJeFZ7KVrLreDzhEF2XfsUn3fRyRXFInrVsSnylAIgdnr80r45kj3euwbAe2FoejJF+y9JXzC2erM8I/BdZq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17224518},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"70de30ecb39e5fa5c0b45de79f974a067f3e5847","scripts":{"test":"node --test","obfuscate":"node tools/obfuscate.mjs","preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"plogme","email":"plogmebot@gmail.com"},"repository":{"url":"https://pair.crysnovax.link","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","directories":{},"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":"24.15.0","dependencies":{"ws":"^8.19.0","long":"^5.2.3","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"^6.0.0","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","cache-manager":"^7.2.8","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.5","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"javascript-obfuscator":"^4.1.1"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","better-sqlite3":"^11.0.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"better-sqlite3":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plogme_1.0.3_1788695352575_0.5297341715155708","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"plogme","version":"1.0.4","keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","_id":"plogme@1.0.4","maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"homepage":"https://www.npmjs.com/package/plogme/","bugs":{"url":"https://github.com/crysnovax/bailey/issues"},"dist":{"shasum":"b4e7e8de194936d17bd036a7d9a004640c190380","tarball":"https://registry.npmjs.org/plogme/-/plogme-1.0.4.tgz","fileCount":155,"integrity":"sha512-NB+Vkgk3Fm/Y9hnc6kdlv+0pjNg8A9GEB1TgKLVbc4Jd1z2Kh1t38UBcBNqAsojIT8fbxqtoFBL4zfeo1Zzdvw==","signatures":[{"sig":"MEYCIQC4mbAaSiUSkKigNCkYPQ/XgOUUKInI0jNn7csBJrORZQIhAKuHi6uOvvsXDLaMn+2GKws0iPBPzmF5tJMBR0Ofm2Xd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17242015},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"8e603f87b43c2e756b00e35035087625b880ebd7","scripts":{"test":"node --test","obfuscate":"node tools/obfuscate.mjs","preinstall":"node ./engine-requirements.js"},"_npmUser":{"name":"plogme","email":"plogmebot@gmail.com"},"repository":{"url":"git+https://github.com/crysnovax/bailey.git","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","directories":{},"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":"24.15.0","dependencies":{"ws":"^8.19.0","long":"^5.2.3","pino":"^9.6.0","fflate":"^0.8.2","p-queue":"^9.1.0","libsignal":"^6.0.0","lru-cache":"^11.2.6","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","cache-manager":"^7.2.8","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.5","@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"javascript-obfuscator":"^4.1.1"},"peerDependencies":{"jimp":"^1.6.1","sharp":"*","audio-decode":"^2.2.3","@napi-rs/image":"~1.12.0","better-sqlite3":"^11.0.0","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"@napi-rs/image":{"optional":true},"better-sqlite3":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plogme_1.0.4_1789346570563_0.27324616681364855","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"plogme","version":"1.0.5","description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","main":"lib/index.js","type":"module","scripts":{"preinstall":"node ./engine-requirements.js","test":"node --test","obfuscate":"node tools/obfuscate.mjs"},"engines":{"node":">=20.0.0"},"repository":{"type":"git","url":"git+https://github.com/crysnovax/bailey.git"},"keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"homepage":"https://www.npmjs.com/package/plogme/","author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","dependencies":{"@adiwajshing/keyed-db":"^0.2.4","@cacheable/node-cache":"^1.4.0","@hapi/boom":"^9.1.3","async-mutex":"^0.5.0","cache-manager":"^7.2.8","fflate":"^0.8.2","libsignal":"^6.0.0","long":"^5.2.3","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}},"packageManager":"yarn@4.9.2","types":"lib/index.d.ts","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"},"devDependencies":{"javascript-obfuscator":"^4.1.1"},"gitHead":"adc516869f2591662db2952a9a79b761ec3cf7ae","_id":"plogme@1.0.5","bugs":{"url":"https://github.com/crysnovax/bailey/issues"},"_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-N4sY8PHBDUDFH8S3F17Fj8F1MrYXDQD4iFIbTygojWPJ8zAmEq10m/2x+0PCLdt4GBIOA/7LVFllF0oz2oLYAQ==","shasum":"b506d162c5a6ff63d7415d8a1b2363546bed72b5","tarball":"https://registry.npmjs.org/plogme/-/plogme-1.0.5.tgz","fileCount":156,"unpackedSize":19934125,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBlLTkxdnBEUDhDGPgJWsAD6ZDMRL1Mpg7ytgyClJWvaAiBKGYvjL4EPVzXJdIxtJqYfZDHXwQHCRmiXX9f7XFxUDw=="}]},"_npmUser":{"name":"plogme","email":"plogmebot@gmail.com"},"directories":{},"maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plogme_1.0.5_1789388585090_0.8884004709322866"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-05T17:45:00.562Z","modified":"2026-09-14T12:23:05.427Z","1.0.0":"2026-09-05T17:45:00.848Z","1.0.1":"2026-09-05T20:48:38.143Z","1.0.2":"2026-09-05T21:46:18.953Z","1.0.3":"2026-09-06T11:49:12.792Z","1.0.4":"2026-09-14T00:42:50.726Z","1.0.5":"2026-09-14T12:23:05.272Z"},"bugs":{"url":"https://github.com/crysnovax/bailey/issues"},"author":{"name":"plogme"},"license":"SEE LICENSE IN LICENSE","homepage":"https://www.npmjs.com/package/plogme/","keywords":["automation","baileys","baileys-fork","baileys-mod","crysnova ai","cody ai","bot-planning-replay","plogme","interactive-messages","js-whatsapp","meta-compositing","multi-device","rich-messages","welcome-flow","whatsapp","whatsapp-api","whatsapp-bot","whatsapp-chat","whatsapp-group","whatsapp-web"],"repository":{"type":"git","url":"git+https://github.com/crysnovax/bailey.git"},"description":"Production-ready Baileys fork ⚉ with AI groups, Meta AI prompting, safe compositing fallbacks, rich responses, interactive messages, albums, newsletters, and communities — without antiban wrappers.","maintainers":[{"name":"plogme","email":"plogmebot@gmail.com"}],"readme":"# plogme\n\n`plogme` is a Node.js WhatsApp Web client based on the Baileys protocol implementation. It supports authentication, media, groups, interactive messages, status updates, albums, native flows, rich responses, and experimental Meta AI-style message envelopes.\n\n> **Experimental feature notice:** Rich responses, Meta AI-style metadata, HTML primitives, clipboard addon sections, carousels, and albums use WhatsApp Web protocol structures that may change without notice. Unsupported fields can be ignored, rejected, or rendered differently across WhatsApp versions.\n\n## Installation\n\n```bash\nnpm install plogme\n```\n\nThe current package version is **1.0.4**. Use Node.js 20 or newer.\n\n## Quick start\n\n```js\nimport {\n  makeWASocket,\n  DisconnectReason,\n  useMultiFileAuthState\n} from 'plogme'\nimport { Boom } from '@hapi/boom'\nimport pino from 'pino'\n\nasync function start() {\n  const { state, saveCreds } = await useMultiFileAuthState('./session')\n  const sock = makeWASocket({\n    auth: state,\n    logger: pino({ level: 'silent' })\n  })\n\n  sock.ev.on('creds.update', saveCreds)\n  sock.ev.on('connection.update', ({ connection, lastDisconnect }) => {\n    if (connection === 'open') console.log('Connected')\n    if (connection === 'close') {\n      const status = new Boom(lastDisconnect?.error)?.output?.statusCode\n      if (status !== DisconnectReason.loggedOut) start()\n    }\n  })\n}\n\nstart()\n```\n\nKeep authentication files private. Never commit session credentials, private keys, or `.env` files.\n\n## Authentication and pairing\n\n```js\nconst { state, saveCreds } = await useMultiFileAuthState('./session')\n\nconst sock = makeWASocket({ auth: state })\nsock.ev.on('creds.update', saveCreds)\n\nconst code = await sock.requestPairingCode('15551234567')\nconsole.log(code)\n```\n\nPairing codes require the socket to be initialized and a valid phone number in international format.\n\n## Ordinary text, mentions, reactions, and media\n\n```js\nawait sock.sendMessage(jid, { text: 'Hello!' })\n\nawait sock.sendMessage(jid, {\n  text: 'Hello @15551234567',\n  mentions: ['15551234567@s.whatsapp.net']\n})\n\nawait sock.sendMessage(jid, {\n  react: { text: '👍', key: message.key }\n})\n```\n\nMedia examples:\n\n```js\nawait sock.sendMessage(jid, {\n  image: { url: './image.jpg' },\n  caption: 'Image caption'\n})\n\nawait sock.sendMessage(jid, {\n  video: { url: './video.mp4' },\n  caption: 'Video caption',\n  gifPlayback: false\n})\n\nawait sock.sendMessage(jid, {\n  document: { url: './report.pdf' },\n  mimetype: 'application/pdf',\n  fileName: 'report.pdf'\n})\n\nawait sock.sendMessage(jid, {\n  audio: { url: './audio.ogg' },\n  mimetype: 'audio/ogg; codecs=opus'\n})\n```\n\n## Profile name and About description\n\nWhatsApp exposes the personal profile description as the **About status**. In\n`plogme`, use `updateProfileStatus`—not `updateProfileDescription`—and pass a\nplain string:\n\n```js\nawait sock.updateProfileStatus('Building helpful bots')\nawait sock.updateProfileName('Cody AI')\n```\n\nThis updates the connected account's own profile. It does not update a contact\nor group description.\n\n## Spoiler messages\n\nFor media, use `spoiler: true`. The default native mode serializes the\nsupported `contextInfo.isSpoiler` flag:\n\n```js\nawait sock.sendMessage(jid, {\n  image: { url: './classified.jpg' },\n  caption: 'Open only when ready',\n  spoiler: true\n})\n```\n\nFor clients that do not support native media spoilers, explicitly use the\ncompatibility fallback. This sends a view-once envelope; it is **not** the\nsame as a native spoiler:\n\n```js\nawait sock.sendMessage(jid, {\n  video: { url: './reveal.mp4' },\n  spoiler: true,\n  mediaSpoilerMode: 'viewOnce'\n})\n```\n\nFor text, the default fallback uses WhatsApp's rolling-out `||...||` spoiler\nformatting. Native text metadata can be requested with\n`spoilerMode: 'native'`. Rendering remains client-version dependent.\n\n```js\nawait sock.sendMessage(jid, {\n  text: 'The ending is revealed here',\n  spoiler: true\n})\n```\n\n## Rich text and Markdown\n\n`sendRichText` sends Markdown-capable text inside a forwarded GenAI rich-response envelope. Markdown rendering depends on the recipient's WhatsApp client.\n\n```js\nawait sock.sendRichText(jid, {\n  text: `**Heading**\n\nNormal text\n\n> This is a blockquote`\n})\n```\n\nA dedicated blockquote helper is also available:\n\n```js\nawait sock.sendMarkdownQuote(jid, {\n  text: `Here is the instruction:\n\n> Use this exact logo image.`\n})\n```\n\n## Copy-to-clipboard controls\n\nThere are two different clipboard-related features:\n\n1. `sendCopyButton` creates the inline GenAI `COPY_TO_CLIPBOARD` addon section.\n2. `sendRichTextCopy` and `sendQuoteCopy` place ordinary Markdown content and a clipboard addon section in the same rich response. The text does **not** need to contain a quote.\n\nNormal text with a copy action:\n\n```js\nawait sock.sendRichTextCopy(jid, {\n  text: 'npm install plogme',\n  copyText: 'npm install plogme',\n  copyLabel: 'Copy command'\n})\n```\n\nThe same behavior can be requested through `sendRichText` by supplying `copyText`:\n\n```js\nawait sock.sendRichText(jid, {\n  text: 'This is ordinary text with a copy action.',\n  copyText: 'This is ordinary text with a copy action.',\n  copyLabel: 'Copy me'\n})\n```\n\nQuote plus copy action:\n\n```js\nawait sock.sendQuoteCopy(jid, {\n  text: `Ready-to-paste instruction:\n\n> Use this exact logo image...`,\n  copyText: 'Use this exact logo image...',\n  copyLabel: 'Copy me'\n})\n```\n\n`COPY_TO_CLIPBOARD` is an in-message rich-response action. It is different from the separate copy/forward/like/dislike toolbar that WhatsApp may render below first-party Meta AI messages. That toolbar is client-generated and is not authoritatively controllable through this API.\n\n## Rich links, images, HTML, and menus\n\n```js\nawait sock.sendRichLink(jid, {\n  text: 'Open the deployment site',\n  url: 'https://example.com'\n})\n\nawait sock.sendRichImage(jid, {\n  url: 'https://example.com/image.jpg',\n  mimeType: 'image/jpeg'\n})\n\nawait sock.sendHtmlMessage(jid, {\n  html: '<h1>Hello</h1><p>Rendered HTML content</p>'\n})\n```\n\n`sendHtmlMessage` uses an experimental HTML primitive. Do not pass untrusted user input into HTML without sanitizing it.\n\nThe experimental rich menu helper accepts a header, body buttons, cards, and footer:\n\n```js\nawait sock.richMenu(jid, {\n  header: { title: 'Deploy Suite' },\n  body: {\n    title: 'Choose an action',\n    buttons: [\n      { id: 'deploy', text: 'Deploy' },\n      { id: 'logs', text: 'View logs' }\n    ]\n  },\n  footer: { text: 'Example menu' }\n})\n```\n\nAlways validate button IDs on the server. Never treat a user-controlled button ID as an authorization grant.\n\n## Carousels and rich button grids\n\nUse `sendRichButtonGrid` for media cards with native-flow buttons. A carousel needs at least one valid image, video, or product header per card. The helper accepts either `buttons` or `nativeFlow`.\n\n```js\nawait sock.sendRichButtonGrid(jid, {\n  text: 'Choose an option',\n  footer: 'Select one',\n  cards: [\n    {\n      image: { url: './first.jpg' },\n      title: 'First card',\n      caption: 'First card description',\n      buttons: [\n        { id: 'first', text: 'Select first' }\n      ]\n    },\n    {\n      image: { url: './second.jpg' },\n      title: 'Second card',\n      caption: 'Second card description',\n      buttons: [\n        { id: 'second', text: 'Select second' }\n      ]\n    }\n  ]\n})\n```\n\nSupported button properties include `id`, `text`, `url`, `call`, and `copy`. Carousel cards must have valid media headers. A card containing only text is not a valid carousel card.\n\nFor a single native-flow message:\n\n```js\nawait sock.sendMessage(jid, {\n  text: 'Open the site',\n  nativeFlow: [\n    { url: 'https://example.com', text: 'Open' }\n  ]\n})\n```\n\n## Media albums\n\nAlbums are sent as a parent album message followed by associated image or video child messages. Provide at least two media items:\n\n```js\nawait sock.sendMessage(jid, {\n  album: [\n    {\n      image: { url: './image-1.jpg' },\n      caption: 'First image'\n    },\n    {\n      image: { url: './image-2.jpg' },\n      caption: 'Second image'\n    }\n  ]\n})\n```\n\nAlbum children are required to be actual `imageMessage` or `videoMessage` payloads. A `botForwardedMessage` or `richResponseMessage` cannot be nested as an album child. If rich text or a rich-response envelope is needed, send it as a separate message before or after the album.\n\n## Experimental bot metadata\n\nThe following methods attach newer `WAProto` bot metadata fields through `messageContextInfo.botMetadata`. They are experimental and may have no visible effect unless the receiving client and server support the corresponding first-party feature.\n\n### Diagnostics metadata\n\n```js\nawait sock.sendBotDiagnostics(jid, {\n  text: 'Diagnostics test',\n  botBackend: 1, // 0 = AAPI, 1 = CLIPPY\n  toolsUsed: ['web_search', 'image_search'],\n  isThinking: true\n})\n```\n\n### Command metadata\n\n```js\nawait sock.sendBotCommand(jid, {\n  text: 'Command metadata test',\n  commandName: 'summarize',\n  commandDescription: 'Summarize the current conversation',\n  commandPrompt: 'Summarize the current conversation in five bullets'\n})\n```\n\n### Resolved tool-call metadata\n\n```js\nawait sock.sendBotToolResult(jid, {\n  text: 'Tool result test',\n  toolCallId: `tool-${Date.now()}`,\n  resolutionData: {\n    status: 'success',\n    result: { value: 'Completed' }\n  }\n})\n```\n\nYou may provide a pre-serialized result instead:\n\n```js\nawait sock.sendBotToolResult(jid, {\n  text: 'Serialized result',\n  toolCallId: 'tool-123',\n  resolutionDataSerialized: JSON.stringify({\n    status: 'success',\n    value: 'Completed'\n  })\n})\n```\n\nThese methods do not fabricate Meta's verification certificates or signatures. They should not be treated as a way to impersonate a first-party Meta AI response.\n\n## Status updates\n\nUse `backgroundColor` rather than `backgroundArgb` in the high-level API:\n\n```js\nawait sock.sendStatus({\n  text: 'Service status: online',\n  backgroundColor: 0xff102a43,\n  font: 2\n}, {\n  statusJidList: ['15551234567@s.whatsapp.net']\n})\n```\n\nAlternatively, send directly to `status@broadcast` when using the raw status protocol supported by the installed version.\n\n## Groups\n\n```js\nconst metadata = await sock.groupMetadata(groupJid)\nawait sock.groupParticipantsUpdate(groupJid, [userJid], 'add')\nawait sock.groupParticipantsUpdate(groupJid, [userJid], 'remove')\nawait sock.groupSettingUpdate(groupJid, 'announcement')\n```\n\nGroup administration requires the corresponding privileges. Handle permission failures and disconnected sessions.\n\n### Group member labels\n\n`updateMemberLabel` sets the connected account's own custom member label in a\ngroup. The first argument must be the **group JID** (`123456789-123456@g.us`),\nnot the member's individual JID:\n\n```js\nawait sock.updateMemberLabel(groupJid, 'Developer')\n```\n\nTo remove the label, pass an empty string:\n\n```js\nawait sock.updateMemberLabel(groupJid, '')\n```\n\nLabels are limited to 30 characters by the protocol. This is not an admin\noperation for assigning labels to arbitrary participants; WhatsApp associates\nthe label with the account that sends the protocol message.\n\n## WhatsApp Flows and web views\n\n```js\nawait sock.sendWhatsAppFlow(jid, {\n  flowId: '1234567890',\n  flowToken: 'example-token',\n  cta: 'Open flow',\n  text: 'Complete this form'\n})\n\nawait sock.sendRichWebview(jid, {\n  url: 'https://example.com/app',\n  text: 'Open the app',\n  buttonText: 'Open'\n})\n```\n\nThe flow ID, token, and hosted URL must be valid for the target business configuration.\n\n## Message options\n\n```js\nawait sock.sendMessage(jid, {\n  text: 'Disappearing message',\n  ephemeralExpiration: 86400\n})\n\nawait sock.sendMessage(jid, {\n  text: 'Updated text',\n  edit: message.key\n})\n\nawait sock.sendMessage(jid, {\n  delete: message.key\n})\n```\n\nRaw protocol fields are version-dependent. Unsupported fields may be ignored or rejected by WhatsApp.\n\n## Error handling and reconnection\n\nConnections may close because of logout, network interruption, protocol updates, or server-side session invalidation. Avoid starting multiple concurrent connection loops.\n\n```js\nsock.ev.on('connection.update', ({ connection, lastDisconnect }) => {\n  if (connection !== 'close') return\n\n  const status = new Boom(lastDisconnect?.error)?.output?.statusCode\n  if (status === DisconnectReason.loggedOut) {\n    console.error('Logged out; remove the old session and pair again.')\n    return\n  }\n\n  console.log('Connection interrupted; reconnect with backoff.')\n})\n```\n\n## Development\n\n```bash\nnpm install\nnpm test\n```\n\nBefore publishing, verify generated protobuf files, package contents, version metadata, and that no authentication state or environment files are included.\n\n## License\n\nReview the included license before distributing applications built with `plogme`. Keep required notices with redistributed source and binaries.\n\n## Support\n\nFor implementation questions, include the Node.js version, `plogme` version, operating system, relevant error text, and a minimal reproducible example. Never include authentication state or private account data in an issue.\n\n\n## Ported WhatsApp Web protocol features\n\nThe bundled WAProto schema is updated to WhatsApp Web version `2.3000.1047412487`, with the generated runtime, TypeScript declarations, and connection version updated together. Selected support includes newsletter follower-invite base/V2 fields, ACP2 receive-state extraction, animated wallpaper encoding, and nested audio in sticker messages. These remain experimental and client-dependent.\n\n### Animated wallpaper\n\n```js\nawait sock.sendMessage(jid, {\n  chatTheme: {\n    animatedWallpaper: { id: 'wallpaper-id', dimLevel: 0.25 }\n  }\n})\n```\n\n### Sticker with audio\n\n```js\nawait sock.sendMessage(jid, {\n  sticker: { url: './sticker.webp' },\n  stickerAudio: { url: './sound.ogg' }\n})\n```\n\n### Newsletter follower invites\n\n```js\nawait sock.sendMessage(jid, {\n  newsletterFollowerInvite: {\n    newsletterJid: '123456789@newsletter',\n    newsletterName: 'My newsletter',\n    caption: 'Follow this channel'\n  }\n})\n\nawait sock.sendMessage(jid, {\n  newsletterFollowerInviteMessageV2: {\n    newsletterJid: '123456789@newsletter',\n    newsletterName: 'My newsletter',\n    caption: 'Follow this channel'\n  }\n})\n```\n\n### Device-scoped relay options\n\n`relayMessage` supports `isSecret`, `protected`, and `me` for supported private-chat device fan-out paths. These select recipients and may add `device_fanout`; they are not encryption, access-control, or delivery guarantees and may not behave identically for groups, statuses, retries, or future clients. They are unrelated to the protobuf field `messageContextInfo.messageSecret`.\n\n```js\nawait sock.relayMessage(jid, message, {\n  messageId: messageId,\n  isSecret: true\n})\n```\n\n### Explicit album wrapper\n\nAlbums remain parent/child wire messages: one album header is relayed first, followed by separately encrypted image/video children associated with the parent key. The receiver must group them visually. The explicit wrapper accepts typed media objects and applies a caption to the first child:\n\n```js\nawait sock.sendAlbumMessage(jid, [\n  { type: 'image', data: { url: './one.jpg' } },\n  { type: 'image', data: { url: './two.jpg' } }\n], { caption: 'Album caption' })\n```\n\nRich HTML and bot-forwarded messages cannot be album children; send those separately. Album grouping is still dependent on WhatsApp server/client behavior.\n","readmeFilename":"README.md"}