{"_id":"nodejs-insta-private-api-mqt","_rev":"38-ffec264d6be2ee0d3a66ed007c57622c","name":"nodejs-insta-private-api-mqt","dist-tags":{"latest":"1.5.14"},"versions":{"1.3.70":{"name":"nodejs-insta-private-api-mqt","version":"1.3.70","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.70","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"4653a79f15457601118f05b87514a08143580231","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.70.tgz","fileCount":240,"integrity":"sha512-7SsVO3GdrMHtcSew5GNc/EzQaLhYng8alIpl3IjgZJw/H97nfSoUgYGIstTrsOpIM3v25DBh/sljW5LcGTAVxg==","signatures":[{"sig":"MEUCIG4b8DlJ5+xb8k6e7Vt+GtsHVmayTEL6toOyL654jZG4AiEA4C05o8f51w0SfuNtdIcZ5dEFM2fV2Uu5FTfTw/VHTQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078725},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.70_1771342849242_0.4587869014148358","host":"s3://npm-registry-packages-npm-production"}},"1.3.71":{"name":"nodejs-insta-private-api-mqt","version":"1.3.71","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.71","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"6dd8920a9eac87825aaea545df5d530bac32bcd4","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.71.tgz","fileCount":240,"integrity":"sha512-d5MHY81+4q2AFJz5Ug0gdF7rjScX4RSIdmSD1r6jxSLe3O7csDgi0lxr6YJqPb8QRFkGu1QOwh8hSPh1ZOZZAQ==","signatures":[{"sig":"MEYCIQCO1qkcgy6XUNrDoKa9VB0SNMBkDLZ4kO16oxMIWjmkHQIhAIQX9wlPe8P9bY5QOPwuge8u31w4Hsgu9im80KsOjLzn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081150},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.71_1771350259774_0.7088836244436443","host":"s3://npm-registry-packages-npm-production"}},"1.3.72":{"name":"nodejs-insta-private-api-mqt","version":"1.3.72","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.72","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"e57af0b8109b86755d39827d7a91418879803e77","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.72.tgz","fileCount":240,"integrity":"sha512-SPDRuKSrknK1wbFkjSqmjR20BQttiZq/PYf7T/C0i6DMsNeQA2Pbu552pJ1M7EkXH0aO6YtuHUmNe0vV+Plh2A==","signatures":[{"sig":"MEUCIE60m3La4RqHKWejP0FqB/8dSbFWgvpWll9bsYC891CWAiEA//YbEEOwLPav59TKyNx5OLOg8cGVRHtpvmYkHa+3UgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1083748},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.72_1771351726626_0.05885382586389509","host":"s3://npm-registry-packages-npm-production"}},"1.3.73":{"name":"nodejs-insta-private-api-mqt","version":"1.3.73","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.73","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"1bdc7caeaf9aa303be0e02b90695c3b01650357b","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.73.tgz","fileCount":240,"integrity":"sha512-EYiWtoEICNnYIckw7+JuX4zMx8LiO2HEuqrORVKqs3aBmGCHVGwIWiJalUaPYlYjJeMCeaO2oGnBPwZ+B/EPtg==","signatures":[{"sig":"MEYCIQCP+lNDqO9IRZIRmuIXKEmebZebdoE2I/xDdXigw0BPxQIhALYMCCP0ajyHLzrOVjetvjMtQHoPdmKSyQu4Ex7C0SQL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1083929},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.73_1771381246687_0.23874262159261206","host":"s3://npm-registry-packages-npm-production"}},"1.3.74":{"name":"nodejs-insta-private-api-mqt","version":"1.3.74","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.74","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"e1136965634e9d6d6402ab1a24c527da5e7422e9","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.74.tgz","fileCount":240,"integrity":"sha512-HEuy6wcKPykNw2WBJ00NjiOCobXbivFJu5b6o62Ywek/YIFUppvs7dJcsAPp4P2DNNLk8+/odBlBzrdJyfODwg==","signatures":[{"sig":"MEQCIQDApWS4rvljb/x/BxoUnRZLNOIQsQA2+4tkPITEsm3e1QIfRTp9fWgwFtISN8d0j9ps1j3IkL2P2ERkRa2Ts52ZsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081687},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.74_1771427547127_0.35378718028339806","host":"s3://npm-registry-packages-npm-production"}},"1.3.75":{"name":"nodejs-insta-private-api-mqt","version":"1.3.75","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.75","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"ef201ad6855cd95f415e3061d907c4efc7c2c442","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.75.tgz","fileCount":240,"integrity":"sha512-nogV8xfvAaoIGhF+v55dTxew1NVipho/2WCWsHxTWu95F75k7Q3SMau1q6FqEnrWDRpLHIOTe6niL29VB0bHKA==","signatures":[{"sig":"MEYCIQDMP+7qRoZxj3qqehC+c8IIu5JGvQAVjhgoP2CL3aiAkAIhAMmFfY0ZAooC3JUP8SDzX3iNsFveklMjh7MSmxWqlkRx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1088977},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.75_1771557965213_0.5745496572140623","host":"s3://npm-registry-packages-npm-production"}},"1.3.76":{"name":"nodejs-insta-private-api-mqt","version":"1.3.76","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.76","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"2a84081404ad0e2604630eff59b324f9e97b2750","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.76.tgz","fileCount":240,"integrity":"sha512-+NHNFl5Z7v9fd2A+AyPZ/gdCVsp+9HLbp3g6jdjsEBLkmLuH0Zbl/RoMaUSGpWyyIFqv7NDog+QfpTP83+eVDw==","signatures":[{"sig":"MEUCIQDZfyHq/AhAOB1KwF4MqrZs0WI2sddIoOSkCmHwFZPVYQIgKSdIdrMFa6pwks6yFICrykuzfE/acalrXZil27m1YZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1089372},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.76_1771560197027_0.6633856775418774","host":"s3://npm-registry-packages-npm-production"}},"1.3.77":{"name":"nodejs-insta-private-api-mqt","version":"1.3.77","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.77","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"7d901233b2b330a45a76636d2b30c7b2ff83b5a8","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.77.tgz","fileCount":240,"integrity":"sha512-MudIkVB2tXk0SOHBorpeMvUr7jgYWD2mEOm/sKcDiey5CV20/I9DTuwv0DCnguwk516aXWtEQ/z2yL7gXqBKxQ==","signatures":[{"sig":"MEUCIQCGc5JvXiW5HEoZe47aCB07x+LafFURFVKFoi4Zke0NnAIgYCN9Ih0pFB6S3H1poZ+ASHp1fggVbxaUoWWcoxJP49A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1090894},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.77_1771567112660_0.6187609271567405","host":"s3://npm-registry-packages-npm-production"}},"1.3.78":{"name":"nodejs-insta-private-api-mqt","version":"1.3.78","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.78","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"60f03517517b4347ac7921fdf048bca97907a92e","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.78.tgz","fileCount":240,"integrity":"sha512-0MGnqr+6axdpSJ0Le9MAy6LcM2wDpP9cu6fW+ftxjQ3wkaIExDOfuH8KuPNaCCqE+ygxz8TnsZb1OsO4cUlg6w==","signatures":[{"sig":"MEUCIQCQmyldBC2EwLufssmmxJJF1s2HK0Vha9IzFeFsxurZSQIgFZB37chZQ8a5255jl1jW7ZC+S4G0iPwL57KHJycD/t0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1090332},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6","instagram-private-api":"^1.46.1"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.78_1771571955817_0.8856945488927255","host":"s3://npm-registry-packages-npm-production"}},"1.3.79":{"name":"nodejs-insta-private-api-mqt","version":"1.3.79","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.79","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"e76a499312b98e4b6c957d8b52d67490577a5211","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.79.tgz","fileCount":240,"integrity":"sha512-9ylxz6ZU6P88rxWUckelivWk0208DP/ezD7tWlqyNMvVZUX+KVAkX3hh4lEycV0F9MzW4wDz4ai24LEVt7J2GA==","signatures":[{"sig":"MEUCIEQtc/NUPpUeboArVWEaYtIsKl8TCNTPCZ06ddvt00vTAiEAzB8BtKFecIbUkD+1ndt7bso9ju1v18iLhj1cqIHIdCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1091015},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.79_1771577424199_0.5312760165150898","host":"s3://npm-registry-packages-npm-production"}},"1.3.80":{"name":"nodejs-insta-private-api-mqt","version":"1.3.80","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.80","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"955d06e30a904e1690ee1e6d5b2f779db660e446","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.80.tgz","fileCount":240,"integrity":"sha512-S/924jRYzr7ik0ikreJPJ472fhSG1SGNI6xd0QjenxnAvKIBxrWkdH11u4q0deyzwpUjjXj0TNbF9REV32W7xA==","signatures":[{"sig":"MEQCIFpPnfmRuwdlEHW4FEiH0S8rDxFFy9BuUtVjOB3vi5mNAiBLkIIpI7iUiBRCR0tpZPLVR7m55Rl3kZqgJfVAF64eqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1096122},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.80_1771608253342_0.8561514804809178","host":"s3://npm-registry-packages-npm-production"}},"1.3.81":{"name":"nodejs-insta-private-api-mqt","version":"1.3.81","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.81","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"c39f332706559ef91f7a202113755e226159edcb","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.81.tgz","fileCount":240,"integrity":"sha512-HrBz3Q6swOqBo7w5AIyOmnV53e6mHNxuRLaPwdsUT4PbpSYmlUzsqVWaDAyXOELb8X7pqGfievUe5Y2LFw8row==","signatures":[{"sig":"MEUCIQC5VMfbD0PXCfED8mBAeZ5fQQQIYB/Dr9NvvQBHfvsuCgIgFWYgR81V7MTX9sHmZu5l0c7oPlAZEyQFqDxEz3DbC+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1112441},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.0","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.81_1771649542040_0.11035443869154227","host":"s3://npm-registry-packages-npm-production"}},"1.3.82":{"name":"nodejs-insta-private-api-mqt","version":"1.3.82","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.82","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"f0dcca6d4c128fee46c2fc6ef0507075406788ac","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.82.tgz","fileCount":240,"integrity":"sha512-2sMZqwhr+CTudpCOeafQQL5+nH79nOzOChtE9We7zHAS16zdKGdz46ipzs7hDn/zD1aILCmFS11z/hYsXEZcjg==","signatures":[{"sig":"MEUCIQCs7jSuHQbbbEJ3l3QIVKo/xibn3G5h8jG0rSrUaowSqgIgTZeCMb7UbDOiZ3YEMw4a+QxEbTnHvWhP0rCdCQQEYw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1114181},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.82_1771722710034_0.9961710050729811","host":"s3://npm-registry-packages-npm-production"}},"1.3.83":{"name":"nodejs-insta-private-api-mqt","version":"1.3.83","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.83","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"2199262f2dc25b4021931c64a4cd5a80f2971939","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.83.tgz","fileCount":240,"integrity":"sha512-CM8kfFOvxEKD0C9TsOgR2HySUrq3m5Kn3zQmm9UqjB2uavSx7cPyt5MHcafme3s2I/9xvs5wJgscu+ko3SrCKw==","signatures":[{"sig":"MEQCIESAWOv41ZReyWrIa8Qvb1hvvKCbPP0NRI3I559zDugVAiBdiyKT7QKl9M+vY0t+oxMs5S/aSgq5oHBq1JtaE2z/dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1115488},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.83_1771731894400_0.3786387006376104","host":"s3://npm-registry-packages-npm-production"}},"1.3.84":{"name":"nodejs-insta-private-api-mqt","version":"1.3.84","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.84","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"71c6b64eca84650f84a950ae44eb75ad52f6c707","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.84.tgz","fileCount":312,"integrity":"sha512-CMqnZOXC/cHPEAwTIV7D5k0udCCchC1eIjdbWOSAE55wzjTOR/eNNLEse8EV6hW8PCjmorkjw0EyAr1KcRDR1Q==","signatures":[{"sig":"MEQCIGFBK67IuBLjCGnPDSv0ztxTbZaRlZXwPgxaVikUdkBTAiAiAclE+ZfyNEiCOTd6BbinB2jP443Rb8pDeUe6p3ub/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1929008},"main":"dist/index.js","engines":{"node":">=18.0.0"},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.84_1771733019085_0.11163492339692205","host":"s3://npm-registry-packages-npm-production"}},"1.3.85":{"name":"nodejs-insta-private-api-mqt","version":"1.3.85","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.85","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api/issues"},"dist":{"shasum":"93ba86576c90bc89ee2403155a81cdc69b8eb001","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.85.tgz","fileCount":312,"integrity":"sha512-XKOrESIV5Bbjz4jg2cBlTF07yp+ypCthn+zFqxoOUsz2KUjtuuvn0p9YbgKwRHfORTNlUbF14sl5wtWtOXdzBg==","signatures":[{"sig":"MEYCIQCuLrgp0xrcRQdgr7nhFt2oyqSq9zJZpKZsYuT1LeszYQIhAM0f6MH4HBXFilozbU/+hD0jE3Xfy2AEJHiAgYfX3Bu7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1929215},"main":"dist-ts/dist/index.js","types":"src-ts/dist/index.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./src-ts/dist/index.ts","import":"./dist-ts/dist/index.js","require":"./dist-ts/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with FULL Featured REALTIME And api Rest All in one project .","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.85_1771734361131_0.6997917659214352","host":"s3://npm-registry-packages-npm-production"}},"1.3.86":{"name":"nodejs-insta-private-api-mqt","version":"1.3.86","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.86","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"dd353c25fc7df6c9ca715be91106d1b506649503","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.86.tgz","fileCount":311,"integrity":"sha512-9fIKn/2PgO+R5CjNxAzk2vhAYUVUoeitfr5oEp8jp41jpXkEqABDqUMQreYGAzZ1JxMRvn0TEWPBdTkhO+DhvQ==","signatures":[{"sig":"MEUCIQCLeN7Opz8pAYpw11gRb5IZITuUy4R8spvxWfwJBP8B4wIgeZMRNn3KZI5mwgEvpgqlbsiGOKFMbwp39rTdzLHWUSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1225053},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.86_1771736885441_0.2885492598837156","host":"s3://npm-registry-packages-npm-production"}},"1.3.87":{"name":"nodejs-insta-private-api-mqt","version":"1.3.87","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.87","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"6f7ebee0292c40432e587de17a3a4963bde71f36","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.87.tgz","fileCount":311,"integrity":"sha512-MeAJPkliH/DAVpk0PE26vwbsA3kpeV2AgHpLRkXPKwfaTXcykwILcSiqv6kUjOHffrwaxEjQ/mtHEhJce32vmg==","signatures":[{"sig":"MEUCIB/rNWy9g7Np0awMV1pgD1GykUCPKuDoishgVCcrDqEKAiEA/zo8gYEiusvHeK8aB3zrG3R0qx45+QB9GiAe160kShg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1239462},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.87_1771743338353_0.7989584918792929","host":"s3://npm-registry-packages-npm-production"}},"1.3.88":{"name":"nodejs-insta-private-api-mqt","version":"1.3.88","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.88","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"e637eeb5db570ba6547aca8fc46afc00fd02ad16","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.88.tgz","fileCount":311,"integrity":"sha512-Fe6W4NUDHNx6+/uU7gFawghruz2tpRv202ixqwCMKGoHaf2AelO4RLXbQcRYDkbMl/3zHcnbKsnmgjedo948+Q==","signatures":[{"sig":"MEUCIQDPQwHM30JN0CD5Awv+N7Wm9Lpcy8ANcj0F3ExORCewPgIgOwdcujh8hWK9WTuvBsJJ6massLMzo7szCDZYZVshuNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1235484},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.88_1771813958930_0.3995614760024886","host":"s3://npm-registry-packages-npm-production"}},"1.3.89":{"name":"nodejs-insta-private-api-mqt","version":"1.3.89","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.89","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"2d919aca3de799ea7124b604a4a4a1dd40a73f8a","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.89.tgz","fileCount":311,"integrity":"sha512-ByTQQkl2tFmG6kKPxFJLPrmnls+rZszP7Ch1HyqyRIe1bM6B3P8TqFwI8+gug5Xh+lP4kMZidDmSb/1poHWY3Q==","signatures":[{"sig":"MEUCICgzlzH9/ECVm8G1KYfs4iyvQzIHD7ckgtDxJZSi6ujOAiEA5HW1m5UCuXcCYKdt7pSKYxPP4vgaiBiokRX6YY/ri/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1251865},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.89_1771843208737_0.038713921342100166","host":"s3://npm-registry-packages-npm-production"}},"1.3.90":{"name":"nodejs-insta-private-api-mqt","version":"1.3.90","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.90","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"edfcf219d382838aa2e8741b70e1a56b5851fef9","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.90.tgz","fileCount":311,"integrity":"sha512-hziycxLJKDC0o6iY1/+B1IAzOYYWGd5ki0aBOIDF/TzzapaKurwnhbK+HMGw6rlsA1n4OrOddJmQEGI03Sg/eQ==","signatures":[{"sig":"MEUCIG9GKoUbn3d2k8UTf+bl8p3xf9v8f3u1iF0miAetuPK/AiEAoEzslCM3V3QtP5s6JLa1vRwHLH2bXfiAdgcR8MEKswI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1253152},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.90_1771871615154_0.4786705269074951","host":"s3://npm-registry-packages-npm-production"}},"1.3.91":{"name":"nodejs-insta-private-api-mqt","version":"1.3.91","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.91","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"b246ab2d598dd74db48f757d6264bb1aff2737fe","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.91.tgz","fileCount":315,"integrity":"sha512-iC8kg5sppm1vt+B1gs7Pv09i4QzfkfTAqhNWYjHpmDRE+mUFTXXaYJejFBkIBlCzzmmyvdwmEkcezah4E88zkQ==","signatures":[{"sig":"MEUCIQDXu8SAuvzt1Up3Y/Oa4XDKh0kDBnn5wLfs7yLn7fE+IwIgDe2RWY42vLL4DunuZhZ7MTUZ5k1hFTQFncn+jfKUfas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1260535},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.91_1771907930186_0.3165040224317832","host":"s3://npm-registry-packages-npm-production"}},"1.3.92":{"name":"nodejs-insta-private-api-mqt","version":"1.3.92","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.92","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"389c29294de5bb290eccd73ef9d00316d5635307","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.92.tgz","fileCount":318,"integrity":"sha512-CmS7IVTgU9cDytmvKuauRkx0QRVKwKaxl7muXmHqVJ1eEPHSZFg/H6KzkKqTvGuMuH6anRtQzUKZV+TJ8HOyAQ==","signatures":[{"sig":"MEYCIQDpIjaG4tBKlX4AzwM8rlc+Tu8e/Nc/iSk5hD9ykVKPMwIhAPAW2yxMC/gmR6K3hRNLhcAf91+vuRZ+UiWw79j037I5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1902150},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.92_1771909544784_0.17081085913826377","host":"s3://npm-registry-packages-npm-production"}},"1.3.93":{"name":"nodejs-insta-private-api-mqt","version":"1.3.93","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.3.93","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"647b5e51a8782cdcf157ed9a46fc057e7dd919e1","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.3.93.tgz","fileCount":318,"integrity":"sha512-3P0KFHNCye9U5iODeQAXcbv2A8qCIxkXAXNDysGKBnq4BIBA8mNwvXFcjalg8DATEPNMGr0reqElkn8ergV9Iw==","signatures":[{"sig":"MEUCIQD6EgAXi0WxIRERCjVvDaTFDSP4Nva9aS7fV1so7P2ElgIgeaiV03Azu5Axyg0bgsmBDYH6X4Dff2iZ2OZ++9Kr25A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1906209},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.3.93_1771988653639_0.15555094676072767","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"nodejs-insta-private-api-mqt","version":"1.4.1","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.1","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"7b6102136476286e866fb5f52a81173ed076e39f","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.1.tgz","fileCount":318,"integrity":"sha512-ZG8mB3R0nS/+we8hypPRVhMrZdSeM5ZV+evcwWeBg3PGJ2j+V96sy7gvbzFg2Dq7c+sLSckplvXJQndIT8dhsQ==","signatures":[{"sig":"MEQCIGUpWNZMSuQLncbH4LQKzlsSP7KFWhSOv2ATQuACt2ozAiA/YsyrRrHDm01uQt5Whxs0aYFHvulTzdNear1Takba7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1910506},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.1_1772002647487_0.5461196976035765","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"nodejs-insta-private-api-mqt","version":"1.4.2","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.2","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"c514c1d5da09a95c644ebebf9441c78b258679aa","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.2.tgz","fileCount":318,"integrity":"sha512-/UUlompxHASCs4g9iG2v9xF24A9y+PwB7ECjAFKXEEkOFlIYMGQPs7o63fteN2NkWqXvTBKAG1f85WQxbZG+jg==","signatures":[{"sig":"MEUCIQC0/FIlUct4A7QhYnMYFcLBDmiQXHB1UmO4/47B0cMB9QIgBlswvV5+sH0iSzt2UMa1bQY3LrrHpLI9nQMFRw+ekYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1918319},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.2_1772079296473_0.775481811852599","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"nodejs-insta-private-api-mqt","version":"1.4.3","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.3","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"5d12dc693412b8a6e29892ea9fd7c8e3a205aa54","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.3.tgz","fileCount":318,"integrity":"sha512-GGhUt4noEh4PaJMf08975Ay7M3BQmWy/0y4zpmog7c5ikoT6iQrKThs+ZVnmV1Dvd8zlgZQtXctLksW6D40rSQ==","signatures":[{"sig":"MEQCIC9WuVC+6NFCPJxj8p9QRu5vKijPg4IIifbsvaz2AcNoAiAs49WbymXA2Ykon2msvoGB+qvCLaxypBW3/z05C46v9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1918783},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.3_1772086652268_0.41445555367248543","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"nodejs-insta-private-api-mqt","version":"1.4.4","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.4","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"aef507ada3147d28f847180872b52385bda245b1","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.4.tgz","fileCount":318,"integrity":"sha512-btdyq16wAPpgKjuOVmDEkV6LcjKPBMHzm+lvL+SNVCu4siR7CKIb+T+q76ocicX/avrWOraYVlUvvFdIb7Zjcg==","signatures":[{"sig":"MEUCIQDJqs7kHVlHm2LRXWKaF8gyGZMDqLHSDuGjoG7elT0xqgIgF1J1T5JGZQhJdbtL1hRV6WmTMSfJSuqEOzJb7Brhkkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1918801},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.10.1","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.4_1772101996176_0.4194023918834415","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"nodejs-insta-private-api-mqt","version":"1.4.5","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.5","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"7e726de20a9bd362b4c414a1a98facd29b6235f5","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.5.tgz","fileCount":318,"integrity":"sha512-+k4Noc5w0O9qlRUz1L4gnHQD5fAliMCQcpkCamMkl2NGgR6OkoKDSk+rLPwnPlUV3eyc76l2F9aP3nCknRt8zw==","signatures":[{"sig":"MEQCIDsd0I/M8ABv2N+KWeLJlv1ggE7bQl++Ep/SQlzA+QPcAiB9OvACEvDzpyES/mdwjjWqGp/aHp0v3vOR1BQziUdPkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1910620},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.5_1772615457870_0.5849313497876447","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"nodejs-insta-private-api-mqt","version":"1.4.6","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.6","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"dfadcb3c5d0a595f7f0d6fcbff0ec1524a87aad4","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.6.tgz","fileCount":318,"integrity":"sha512-vJgsXvbOSxCaEWKYhAyGpJO0QswsMnNzPET268MrM+fwdUhA56dZ2NGYs4oR2mUrfc2Rht0bmuKRyfjnlpULhg==","signatures":[{"sig":"MEUCIQDNwy69KvV8K+1FUH0Z/3Oiv7fa09enV6TXOQuH12oyGgIgRtFX35IpCwruDXttyOd3nJe+pToOzeC3rFKKu3sJU7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1917608},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.6_1772619759044_0.5837290695022306","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"nodejs-insta-private-api-mqt","version":"1.4.7","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.7","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"8e26d7b1db1070ba0208a5241e9d3fcfc2402f05","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.7.tgz","fileCount":318,"integrity":"sha512-2ub62vMWgjWrWGz14f/V4MgvV9NAlNRBp8W+lys4510nNNsygb9o1OglAmgbxwEAQLtW1kD7nEttXTjGCFh5dg==","signatures":[{"sig":"MEQCIDQ7mXUmP3CZmeXtoi1vEURbuZ9qvCEtfCTjk6BveHUeAiAu3onR16lvRKLr8mWa1MOJeEDeT87MHitEcp5B4A0k4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1925487},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.7_1772621291721_0.1870622190328557","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"nodejs-insta-private-api-mqt","version":"1.4.8","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.8","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"05b8a72aec9f78ee1e24a4e78a434ec807f8b931","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.8.tgz","fileCount":319,"integrity":"sha512-7WO+BWKkx03AHUJSAfa3d9zrzavpn4G6o/VEQq9emDlv070tAR43qt5DfAXY5d1hC+17zpuMILPn6ZGH4+X6Fw==","signatures":[{"sig":"MEUCIQCD3ahYWPBip2zIKewiq2MyoHbDECUYd9rPTsgFsBBo1AIgDTwyStI0L/yHJL3LXsQfBiqAfjaYb/k7YOA5BFqhRYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1953478},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.8_1772912006765_0.013617836585958498","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"nodejs-insta-private-api-mqt","version":"1.4.9","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.9","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"ade234f67553368073be2fb7d2398277d0fa4ce5","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.9.tgz","fileCount":319,"integrity":"sha512-NJWQO/7ecqOuSLy9PCTp7lvEVzJNEnXCarkOcbeaST/kfLuZiJc6z06lKUEr8RCwK3WrfoUfa8uOIM7jY3dfdg==","signatures":[{"sig":"MEUCIQDSLX2FX5A1JAXjeUT3eZDAzW7t1J9/EJ41DKfaDogwzwIgC5s/qRFp7FfrePQ5FMoANmX+gkddD7Cu0vQ6Q+6hajU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1950049},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.9_1772973483236_0.2742770359516493","host":"s3://npm-registry-packages-npm-production"}},"1.4.10":{"name":"nodejs-insta-private-api-mqt","version":"1.4.10","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.4.10","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"cc5adc5f9062e70f3792e1f355ba35808876c646","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.4.10.tgz","fileCount":319,"integrity":"sha512-wHt+nqXWQHrh51AEO7ez26bZ4EkuH9XwVpPijySCr3zENEni+Ny6WIHUbc+WGn8G469m2lpgiNemISJ6FPUBcQ==","signatures":[{"sig":"MEYCIQChmJgwD4r30w2ZA+Wl+IsX1JrGeKex65Ucml0BypgupAIhAMlXNwo9TddC4puC6/zFohzEFy52vqnvVVj00jpTrqg6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1950568},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.4.10_1772974105087_0.8012456535410419","host":"s3://npm-registry-packages-npm-production"}},"1.5.11":{"name":"nodejs-insta-private-api-mqt","version":"1.5.11","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.5.11","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"c6d4d3307235c68a76ad26bde0d564428fdb4d02","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.5.11.tgz","fileCount":319,"integrity":"sha512-aD1dJ00m2R5p0xip+xJQfBPH4QL1w6wXgeAfmBvu9s/YoGu4PapoxMkhJHTW3LtlfCWAFPlJU6cQFdhrfLSd+g==","signatures":[{"sig":"MEYCIQCWqlAc/zJTkCxExVjQW52Q7H1a1vqtvM8FReHNHyFi/QIhAIklZg83mOY6NWzNEAchvFgf5yWrdkW5ttu6QyqbDQCZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1949927},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.11.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.3.0","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.5.11_1773093626256_0.34382927540172625","host":"s3://npm-registry-packages-npm-production"}},"1.5.12":{"name":"nodejs-insta-private-api-mqt","version":"1.5.12","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.5.12","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"3103e9a6eb433119c60decd0d93614cf3dfaf027","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.5.12.tgz","fileCount":319,"integrity":"sha512-yAbDleDJfsNTANhARkDpgMmkvHym+CWFnruBMO5H221GaOkTmVkrCd8y48Egysa3Eso+ciNFhn6lk7vhr/ouDg==","signatures":[{"sig":"MEUCIQCc7yDjTsmQKU/unyk88PqKB9TcthAQmh5l3N0oAng2TQIgLgkvlM/ttmhMDqBNlRzh3lm90TTs+7d3f7cCL9R5KTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1949927},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.12.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.8.2","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.5.12_1774862767208_0.8001390997663238","host":"s3://npm-registry-packages-npm-production"}},"1.5.13":{"name":"nodejs-insta-private-api-mqt","version":"1.5.13","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","_id":"nodejs-insta-private-api-mqt@1.5.13","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"dist":{"shasum":"747fd66c97e51fc5d8031f34f30c103d75b935b4","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.5.13.tgz","fileCount":318,"integrity":"sha512-dG9DNSW02MObfDy5VkU8bHzwodXVQ3JfY+ZddGVgp2vBlr8YDaDV9+pKGN/IoGpAsD4Li1O5qIc6zkOumq1KwQ==","signatures":[{"sig":"MEYCIQC5i4pXqltl43uitUSEAExYx3xh8ooaoADytmayuE0tBwIhAIr4qNyh0S0/e79Sj7DaIDTaEGPRgmVvkMl2obuaTGfp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1943982},"main":"dist/dist/index.js","types":"dist/dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/dist/index.d.ts","import":"./dist/dist/index.js","require":"./dist/dist/index.js"}},"scripts":{"test":"node examples/listen-to-messages.js","build":"tsc -p tsconfig.build.json","start":"node examples/listen-to-messages.js","listen":"node complete-example.js","example":"node complete-example.js"},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"repository":{"url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git","type":"git"},"_npmVersion":"11.12.0","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","directories":{},"_nodeVersion":"25.8.2","dependencies":{"pako":"^2.1.0","uuid":"^9.0.1","axios":"^1.13.5","chalk":"^5.6.2","debug":"^4.4.3","mqtts":"^1.5.0","socks":"^2.8.7","chance":"^1.1.13","crypto":"^1.0.1","lodash":"^4.17.23","crypto-js":"^4.2.0","form-data":"^4.0.5","protobufjs":"^7.5.4","node-persist":"^4.0.4","tough-cookie":"^4.1.4","eventemitter3":"^5.0.4","ts-custom-error":"^3.3.1","https-proxy-agent":"^7.0.6"},"_hasShrinkwrap":false,"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodejs-insta-private-api-mqt_1.5.13_1774863011920_0.711201302135241","host":"s3://npm-registry-packages-npm-production"}},"1.5.14":{"name":"nodejs-insta-private-api-mqt","version":"1.5.14","description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","main":"dist/dist/index.js","types":"dist/dist/index.d.ts","exports":{".":{"require":"./dist/dist/index.js","import":"./dist/dist/index.js","types":"./dist/dist/index.d.ts"}},"scripts":{"build":"tsc -p tsconfig.build.json","test":"node examples/listen-to-messages.js","start":"node examples/listen-to-messages.js","example":"node complete-example.js","listen":"node complete-example.js"},"keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"author":{"name":"BorutoSrg"},"license":"MIT","dependencies":{"axios":"^1.13.5","chalk":"^5.6.2","chance":"^1.1.13","crypto":"^1.0.1","crypto-js":"^4.2.0","debug":"^4.4.3","eventemitter3":"^5.0.4","form-data":"^4.0.5","https-proxy-agent":"^7.0.6","lodash":"^4.17.23","mqtts":"^1.5.0","node-persist":"^4.0.4","pako":"^2.1.0","protobufjs":"^7.5.4","socks":"^2.8.7","tough-cookie":"^4.1.4","ts-custom-error":"^3.3.1","uuid":"^9.0.1"},"peerDependencies":{"instagram-private-api":"^1.46.1"},"peerDependenciesMeta":{"instagram-private-api":{"optional":true}},"devDependencies":{"node-fetch":"^3.3.2","typescript":"^5.9.3"},"engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git"},"bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","_id":"nodejs-insta-private-api-mqt@1.5.14","_nodeVersion":"25.8.2","_npmVersion":"11.12.0","dist":{"integrity":"sha512-v66kO2lAqM0g/Q91jdErJv+mNyIndqm+zdGwUV6Fhdz/CHDNnjlOrLifch/3xmA6w5kM2i7h9rCzBJ88NibkXw==","shasum":"371d98046765b39d11960b85ce1473b34b6aea0f","tarball":"https://registry.npmjs.org/nodejs-insta-private-api-mqt/-/nodejs-insta-private-api-mqt-1.5.14.tgz","fileCount":319,"unpackedSize":1949927,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC+J5sqSnaOn90/HmdsrJGJGV/t2wDg9hJ1zd6LFX8BnAIhAO6uYRGq+hGHLAdoua6PRRFWudclndvVPTFC4qJYb1Dv"}]},"_npmUser":{"name":"boruto7777","email":"Borutovp191@gmail.com"},"directories":{},"maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nodejs-insta-private-api-mqt_1.5.14_1774896438897_0.3714012996831406"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T15:40:49.112Z","modified":"2026-03-30T18:47:19.235Z","1.3.70":"2026-02-17T15:40:49.462Z","1.3.71":"2026-02-17T17:44:20.003Z","1.3.72":"2026-02-17T18:08:46.779Z","1.3.73":"2026-02-18T02:20:46.881Z","1.3.74":"2026-02-18T15:12:27.373Z","1.3.75":"2026-02-20T03:26:05.400Z","1.3.76":"2026-02-20T04:03:17.289Z","1.3.77":"2026-02-20T05:58:32.862Z","1.3.78":"2026-02-20T07:19:16.076Z","1.3.79":"2026-02-20T08:50:24.458Z","1.3.80":"2026-02-20T17:24:13.511Z","1.3.81":"2026-02-21T04:52:22.276Z","1.3.82":"2026-02-22T01:11:50.225Z","1.3.83":"2026-02-22T03:44:54.617Z","1.3.84":"2026-02-22T04:03:39.317Z","1.3.85":"2026-02-22T04:26:01.350Z","1.3.86":"2026-02-22T05:08:05.661Z","1.3.87":"2026-02-22T06:55:38.577Z","1.3.88":"2026-02-23T02:32:39.111Z","1.3.89":"2026-02-23T10:40:08.940Z","1.3.90":"2026-02-23T18:33:35.315Z","1.3.91":"2026-02-24T04:38:50.607Z","1.3.92":"2026-02-24T05:05:44.942Z","1.3.93":"2026-02-25T03:04:13.835Z","1.4.1":"2026-02-25T06:57:27.732Z","1.4.2":"2026-02-26T04:14:56.684Z","1.4.3":"2026-02-26T06:17:32.505Z","1.4.4":"2026-02-26T10:33:16.422Z","1.4.5":"2026-03-04T09:10:58.182Z","1.4.6":"2026-03-04T10:22:39.279Z","1.4.7":"2026-03-04T10:48:11.885Z","1.4.8":"2026-03-07T19:33:26.931Z","1.4.9":"2026-03-08T12:38:03.473Z","1.4.10":"2026-03-08T12:48:25.281Z","1.5.11":"2026-03-09T22:00:26.450Z","1.5.12":"2026-03-30T09:26:07.451Z","1.5.13":"2026-03-30T09:30:12.107Z","1.5.14":"2026-03-30T18:47:19.122Z"},"bugs":{"url":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt/issues"},"author":{"name":"BorutoSrg"},"license":"MIT","homepage":"https://github.com/Kunboruto20/nodejs-insta-private-api-mqt#readme","keywords":["instagram","api","private","client","dm","direct","messages","stories","upload","mqtt","realtime","notifications","bot","automation","bulk-messaging","session-persistence","message-management","view-once","disappearing-media","media-download","baileys","ios","iphone","ipad","android","device-emulation","iphone-16","iphone-15","samsung","pixel"],"repository":{"type":"git","url":"git+https://github.com/Kunboruto20/nodejs-insta-private-api.git"},"description":"Complete Instagram MQTT protocol with full-featured REALTIME and REST API — all in one project.","maintainers":[{"name":"boruto7777","email":"Borutovp191@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/Kunboruto20/Rafael-script-Instagram-/main/file_000000004b007243b8d95187cb5bf425%20(1).png\" width=\"100%\" />\n</p>\n\n\n\n\nFull featured Java and nodejs Instagram api private with Mqtt full suport and api rest \n\nDear users The repository on github is currently unavailable will be available soon \n\nIf you  This Project you can help with any ammount donation at  USDC 0x8AD64F47a715eC24DeF193FBb9aC64d4E857f0f3 \n\n\n# nodejs-insta-private-api-mqt\n\nThis project implements a complete and production-ready MQTT protocol client for Instagram's real-time messaging infrastructure. Instagram uses MQTT natively for direct messages, notifications, and real-time presence updates. This library replicates that exact implementation, allowing developers to build high-performance bots and automation tools that communicate with Instagram's backend using the same protocol the official app uses.\n\nBy leveraging MQTT instead of Instagram's REST API, this library achieves sub-500ms message latency, bidirectional real-time communication, and native support for notifications, presence tracking, and thread management. The implementation is reverse-engineered from Instagram's mobile app protocol and tested extensively for reliability and compatibility.\n\n## Features (v5.66.0 - Complete REST API + MQTT)\n\n### REST API (32 Repositories)\n- **Account** - Login, 2FA (TOTP + SMS), challenge resolver, edit profile, change password, privacy settings\n- **User** - Info, search, follow/unfollow, block/unblock, mute, get posts/reels/stories with pagination\n- **Media** - Like, comment (pin/unpin/bulk delete/reply), save, archive, download, PK/shortcode conversion\n- **Reels/Clips** - Upload, configure, discover reels, download, music info\n- **Stories** - Upload photo/video stories, react, mark seen, highlights management\n- **Highlights** - Create, edit, delete highlights, add/remove stories, update cover\n- **Direct Messages** - Send text/photo/video/link/media, inbox, pending inbox, group threads\n- **Friendship** - Follow, block, restrict, close friends, favorites, pending requests\n- **Search** - Users, hashtags, places, music, recent/suggested searches\n- **Explore** - Topical explore, report, mark seen\n- **Feed** - Timeline, hashtag/location feeds, saved/liked, carousel upload\n- **Upload** - Photo/video upload with configure to feed, story, or clips\n- **Insights** - Account, media, reel, story analytics (business/creator accounts)\n- **Notes** - Create, delete, view Instagram Notes\n- **Notifications** - Per-type notification settings (likes, comments, follows, etc.)\n- **TOTP** - 2FA setup with authenticator app, SMS 2FA, backup codes\n- **Challenge** - Auto-resolve security checkpoints, verify methods\n- **Signup** - Account creation, email/phone verification, username availability\n- **Music/Tracks** - Search, get info, download audio tracks\n- **Fundraiser** - Create, donate, get fundraiser info\n- **Multiple Accounts** - Account family, switch accounts\n- **Captcha** - reCAPTCHA / hCaptcha handling\n- **Share** - Decode QR/NFC share codes, parse share URLs\n- **Bloks** - Low-level Instagram Bloks engine actions\n\n### MQTT Real-Time\n- **Real-time MQTT messaging** - Receive and send DMs with <500ms latency\n- **FBNS Push Notifications** - Follows, likes, comments, story mentions, live broadcasts\n- **33 Preset Devices** - 21 iOS + 12 Android device emulation\n- **View-Once Media** - Download disappearing photos/videos before they expire\n- **Raven (View-Once) Sending** - Send view-once and replayable photos/videos via REST\n- **sendPhoto() / sendVideo()** - Upload and send media directly via MQTT\n- **Session persistence** - Multi-file auth state for seamless reconnects\n- **Automatic reconnection** - Smart error classification with type-specific backoff\n- **Session health monitoring** - Auto-relogin, uptime tracking\n- **Persistent logging** - File-based logging with rotation\n- **Message ordering** - Per-thread message queuing\n- **Pure JavaScript** - No compilation required, works in Node.js 18+\n\n## Scope: DM-Focused Implementation\n\nThis library is optimized for Direct Messages and implements the core MQTT protocols used by Instagram for:\n- Real-time message delivery and reception\n- Presence status tracking\n- Typing indicators\n- Notifications for follows, mentions, and calls\n- Group thread management\n\n**For full MQTT coverage analysis, see [MQTT_COVERAGE_ANALYSIS.md](MQTT_COVERAGE_ANALYSIS.md)**\n\n## Installation\n\n```bash\nnpm install nodejs-insta-private-api-mqt\n```\n\nRequires **Node.js 18 or higher**.\n\n---\n\n## NEW: Custom Device Emulation (v5.60.7)\n\n**Default Device:** Samsung Galaxy S25 Ultra (Android 15) - used automatically if you don't set a custom device.\n\nThis feature allows you to **choose which phone model Instagram sees** when your bot connects. Instead of using a default device, you can emulate any Android phone like Samsung Galaxy S25 Ultra, Huawei P60 Pro, Google Pixel 9, and more.\n\n### Why Use Custom Device Emulation?\n\n- **Avoid detection** - Use realistic, modern device fingerprints\n- **Match your target audience** - Emulate devices popular in specific regions\n- **Testing** - Test how Instagram behaves with different devices\n- **Reduce bans** - Modern devices are less likely to trigger security checks\n\n### Quick Start: Use a Preset Device\n\n```javascript\nconst { IgApiClient } = require('nodejs-insta-private-api');\n\nconst ig = new IgApiClient();\n\n// Set device BEFORE login\nig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\n\n// Now login - Instagram will see a Samsung S25 Ultra\nawait ig.login({\n  username: 'your_username',\n  password: 'your_password'\n});\n\nconsole.log('Logged in with device:', ig.state.deviceString);\n```\n\n### Available Preset Devices\n\n| Device Name | Manufacturer | Android Version |\n|-------------|--------------|-----------------|\n| Samsung Galaxy S25 Ultra | Samsung | Android 15 |\n| Samsung Galaxy S24 Ultra | Samsung | Android 14 |\n| Samsung Galaxy S23 Ultra | Samsung | Android 14 |\n| Samsung Galaxy Z Fold 5 | Samsung | Android 14 |\n| Huawei P60 Pro | Huawei | Android 12 |\n| Huawei Mate 60 Pro | Huawei | Android 12 |\n| Google Pixel 8 Pro | Google | Android 14 |\n| Google Pixel 9 Pro | Google | Android 15 |\n| OnePlus 12 | OnePlus | Android 14 |\n| Xiaomi 14 Ultra | Xiaomi | Android 14 |\n| Xiaomi Redmi Note 13 Pro | Xiaomi | Android 14 |\n| OPPO Find X7 Ultra | OPPO | Android 14 |\n\n### Set a Fully Custom Device\n\nFor complete control, use `setCustomDevice()` with your own configuration:\n\n```javascript\nconst ig = new IgApiClient();\n\nig.state.setCustomDevice({\n  manufacturer: 'samsung',\n  model: 'SM-S928B',\n  device: 'e3q',\n  androidVersion: '15',\n  androidApiLevel: 35,\n  resolution: '1440x3120',\n  dpi: '505dpi',\n  chipset: 'qcom',\n  build: 'UP1A.231005.007'\n});\n```\n\n---\n\n## Quick Start: Instant MQTT Boot\n\n```javascript\nconst { IgApiClient, RealtimeClient, useMultiFileAuthState } = require('nodejs-insta-private-api-mqt');\n\nasync function startBot() {\n  const ig = new IgApiClient();\n  const auth = await useMultiFileAuthState('./auth_info_ig');\n  \n  ig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\n  \n  const realtime = new RealtimeClient(ig);\n\n  realtime.on('connected', () => {\n    console.log('Bot is online and MQTT is connected!');\n  });\n\n  realtime.on('message_live', async (msg) => {\n    console.log(`[${msg.username}]: ${msg.text}`);\n    \n    if (msg.text.toLowerCase() === 'ping') {\n      await realtime.directCommands.sendText({\n        threadId: msg.thread_id,\n        text: 'pong!'\n      });\n    }\n  });\n\n  if (!auth.hasSession()) {\n    await ig.login({\n      username: 'your_username',\n      password: 'your_password'\n    });\n    \n    await auth.saveCreds(ig);\n    await realtime.startRealTimeListener();\n    await auth.saveMqttSession(realtime);\n  }\n}\n\nstartBot().catch(console.error);\n```\n\n---\n\n## EnhancedDirectCommands - Complete MQTT Methods Reference\n\nAll MQTT direct messaging functionality is available through `realtime.directCommands`. These methods use proper payload formatting that matches the instagram_mqtt library format.\n\n### Basic Messaging\n\n#### Send Text Message\n\n```javascript\nawait realtime.directCommands.sendText({\n  threadId: '340282366841710300949128114477782749726',\n  text: 'Hello from MQTT!'\n});\n```\n\n#### Send Text (Alternative Signature)\n\n```javascript\nawait realtime.directCommands.sendTextViaRealtime(threadId, 'Hello!');\n```\n\n#### Reply to Message (Quote Reply)\n\n```javascript\nawait realtime.directCommands.replyToMessage(threadId, messageId, 'This is my reply');\n```\n\n#### Edit Message\n\n```javascript\nawait realtime.directCommands.editMessage(threadId, itemId, 'Updated text here');\n```\n\n#### Delete Message\n\n```javascript\nawait realtime.directCommands.deleteMessage(threadId, itemId);\n```\n\n---\n\n### Content Sharing\n\n#### Send Hashtag\n\n```javascript\nawait realtime.directCommands.sendHashtag({\n  threadId: threadId,\n  hashtag: 'photography',\n  text: 'Check this out'\n});\n```\n\n#### Send Like (Heart)\n\n```javascript\nawait realtime.directCommands.sendLike({\n  threadId: threadId\n});\n```\n\n#### Send Location\n\n```javascript\nawait realtime.directCommands.sendLocation({\n  threadId: threadId,\n  locationId: '123456789',\n  text: 'Meet me here'\n});\n```\n\n#### Send Media (Share Post)\n\n```javascript\nawait realtime.directCommands.sendMedia({\n  threadId: threadId,\n  mediaId: 'media_id_here',\n  text: 'Check this post'\n});\n```\n\n#### Send Profile\n\n```javascript\nawait realtime.directCommands.sendProfile({\n  threadId: threadId,\n  userId: '12345678',\n  text: 'Follow this account'\n});\n```\n\n#### Send User Story\n\n```javascript\nawait realtime.directCommands.sendUserStory({\n  threadId: threadId,\n  storyId: 'story_id_here',\n  text: 'Did you see this?'\n});\n```\n\n#### Send Link\n\n```javascript\nawait realtime.directCommands.sendLink({\n  threadId: threadId,\n  link: 'https://example.com',\n  text: 'Check this link'\n});\n```\n\n#### Send Animated Media (GIF/Sticker)\n\n```javascript\nawait realtime.directCommands.sendAnimatedMedia({\n  threadId: threadId,\n  id: 'giphy_id_here',\n  isSticker: false\n});\n```\n\n#### Send Voice Message (after upload)\n\n```javascript\nawait realtime.directCommands.sendVoice({\n  threadId: threadId,\n  uploadId: 'your_upload_id',\n  waveform: [0.1, 0.5, 0.8, 0.3],\n  waveformSamplingFrequencyHz: 10\n});\n```\n\n---\n\n### Reactions\n\n#### Send Reaction\n\n```javascript\nawait realtime.directCommands.sendReaction({\n  threadId: threadId,\n  itemId: messageId,\n  reactionType: 'like'\n});\n```\n\n#### Send Emoji Reaction\n\n```javascript\nawait realtime.directCommands.sendReaction({\n  threadId: threadId,\n  itemId: messageId,\n  reactionType: 'emoji',\n  emoji: '🔥'\n});\n```\n\n#### Remove Reaction\n\n```javascript\nawait realtime.directCommands.removeReaction({\n  threadId: threadId,\n  itemId: messageId\n});\n```\n\n---\n\n### Read Receipts & Activity\n\n#### Mark Message as Seen\n\nMarks a message as seen (read receipt) in a DM thread. This uses Instagram's REST API internally and falls back to MQTT if needed. The method returns the server response — when successful, `status` will be `\"ok\"`.\n\n```javascript\n// Basic usage — mark a specific message as seen\nconst result = await realtime.directCommands.markAsSeen({\n  threadId: '340282366841710300949128114477782749726',\n  itemId: '32661457411201420841385410521202688'\n});\nconsole.log(result.status); // \"ok\"\n```\n\n#### Auto-Read All Incoming Messages\n\nA common pattern is to automatically mark every incoming message as seen, so the sender always sees the blue \"Seen\" indicator:\n\n```javascript\nrealtime.on('message', async (data) => {\n  const threadId = data.parsed?.threadId || data.message?.thread_id;\n  const itemId = data.parsed?.messageId || data.message?.item_id;\n  const status = data.parsed?.status;\n\n  // Only mark messages from other users (skip our own)\n  if (status === 'sent' || !threadId || !itemId) return;\n\n  try {\n    await realtime.directCommands.markAsSeen({ threadId, itemId });\n  } catch (err) {\n    console.error('Failed to mark as seen:', err.message);\n  }\n});\n```\n\n#### Mark as Seen with Delay (Human-Like Behavior)\n\nIf you want the bot to appear more human, you can add a small delay before sending the read receipt:\n\n```javascript\nrealtime.on('message', async (data) => {\n  const threadId = data.parsed?.threadId || data.message?.thread_id;\n  const itemId = data.parsed?.messageId || data.message?.item_id;\n\n  if (data.parsed?.status === 'sent' || !threadId || !itemId) return;\n\n  // Wait 1-3 seconds before marking as seen\n  const delay = 1000 + Math.random() * 2000;\n  await new Promise(resolve => setTimeout(resolve, delay));\n\n  await realtime.directCommands.markAsSeen({ threadId, itemId });\n});\n```\n\n#### Indicate Typing\n\n```javascript\n// Start typing\nawait realtime.directCommands.indicateActivity({\n  threadId: threadId,\n  isActive: true\n});\n\n// Stop typing\nawait realtime.directCommands.indicateActivity({\n  threadId: threadId,\n  isActive: false\n});\n```\n\n#### Mark Visual Message as Seen (disappearing media)\n\nMark view-once photos/videos as seen. Works the same way as `markAsSeen` but specifically for disappearing media items:\n\n```javascript\nawait realtime.directCommands.markVisualMessageSeen({\n  threadId: threadId,\n  itemId: messageId\n});\n```\n\n---\n\n### Thread Management\n\n#### Add Member to Thread\n\n```javascript\nawait realtime.directCommands.addMemberToThread(threadId, userId);\n\n// Add multiple members\nawait realtime.directCommands.addMemberToThread(threadId, [userId1, userId2]);\n```\n\n#### Remove Member from Thread\n\n```javascript\nawait realtime.directCommands.removeMemberFromThread(threadId, userId);\n```\n\n#### Leave Thread\n\n```javascript\nawait realtime.directCommands.leaveThread(threadId);\n```\n\n#### Update Thread Title\n\n```javascript\nawait realtime.directCommands.updateThreadTitle(threadId, 'New Group Name');\n```\n\n#### Mute Thread\n\n```javascript\nawait realtime.directCommands.muteThread(threadId);\n\n// Mute until specific time\nawait realtime.directCommands.muteThread(threadId, Date.now() + 3600000);\n```\n\n#### Unmute Thread\n\n```javascript\nawait realtime.directCommands.unmuteThread(threadId);\n```\n\n---\n\n### Message Requests\n\n#### Approve Pending Thread\n\n```javascript\nawait realtime.directCommands.approveThread(threadId);\n```\n\n#### Decline Pending Thread\n\n```javascript\nawait realtime.directCommands.declineThread(threadId);\n```\n\n---\n\n### Moderation\n\n#### Block User in Thread\n\n```javascript\nawait realtime.directCommands.blockUserInThread(threadId, userId);\n```\n\n#### Report Thread\n\n```javascript\nawait realtime.directCommands.reportThread(threadId, 'spam');\n```\n\n---\n\n### Disappearing Media (View-Once)\n\n#### Send Disappearing Photo\n\n```javascript\nawait realtime.directCommands.sendDisappearingPhoto({\n  threadId: threadId,\n  uploadId: 'your_upload_id',\n  viewMode: 'once'  // 'once' or 'replayable'\n});\n```\n\n#### Send Disappearing Video\n\n```javascript\nawait realtime.directCommands.sendDisappearingVideo({\n  threadId: threadId,\n  uploadId: 'your_upload_id',\n  viewMode: 'once'\n});\n```\n\n---\n\n### Raven (View-Once / Disappearing) Media\n\nSend photos and videos that disappear after viewing — just like the Instagram app camera button in DMs. Instagram calls these \"raven\" messages internally.\n\n**How it works under the hood:**\n1. The photo/video is uploaded to `rupload.facebook.com/messenger_image/` (Instagram's dedicated raven upload endpoint)\n2. Then broadcast via REST to `/direct_v2/threads/broadcast/raven_attachment/`\n\nYou don't need to worry about any of that — the library handles everything. Just pick a method and go.\n\n**Two view modes:**\n| Mode | What happens |\n|------|-------------|\n| `'once'` | Recipient opens it once, then it's gone forever |\n| `'replayable'` | Recipient can replay it, but it still disappears from the chat |\n\n---\n\n#### Quick Start — Send a View-Once Photo (Standalone, No MQTT)\n\nThe simplest way to send a disappearing photo. No MQTT setup needed — just login and send:\n\n```javascript\nconst { IgApiClient, useMultiFileAuthState, sendRavenPhotoOnce } = require('nodejs-insta-private-api-mqt');\nconst fs = require('fs');\n\nasync function main() {\n  const ig = new IgApiClient();\n  const auth = await useMultiFileAuthState('./my_session');\n  ig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\n\n  // Login (or restore session)\n  await ig.login({ username: 'your_username', password: 'your_password' });\n  await auth.saveCreds(ig);\n\n  // Read any photo from disk\n  const photo = fs.readFileSync('./secret_photo.jpg');\n\n  // Send it as view-once — one line, that's it\n  const result = await sendRavenPhotoOnce(ig, photo, {\n    threadId: '340282366841710300949128114477782749726'  // your DM thread ID\n  });\n\n  console.log('Sent! Status:', result.status);  // \"ok\"\n}\n\nmain().catch(console.error);\n```\n\n---\n\n#### Send a Replayable Photo\n\nSame thing, but the recipient can replay it before it disappears:\n\n```javascript\nconst { sendRavenPhotoReplayable } = require('nodejs-insta-private-api-mqt');\n\nconst photo = fs.readFileSync('./photo.jpg');\n\nconst result = await sendRavenPhotoReplayable(ig, photo, {\n  threadId: 'your_thread_id'\n});\n\nconsole.log('Replayable photo sent!', result.status);\n```\n\n---\n\n#### Send a View-Once Video\n\nExperience the new and improved video sending! Our implementation is now fully compatible with the latest Instagram protocols.\n\n```javascript\nconst { IgApiClientExt } = require('nodejs-insta-private-api-mqt');\nconst fs = require('fs');\n\nasync function sendMySecretVideo() {\n  const ig = new IgApiClientExt();\n  await ig.login({ username: 'your_username', password: 'your_password' });\n\n  // Just read your video file\n  const videoData = fs.readFileSync('./my_awesome_video.mp4');\n\n  // Send it instantly as a view-once message\n  const result = await ig.sendRavenVideoOnce(videoData, {\n    threadId: '1234567890', // The DM thread ID\n    duration: 10,           // Video length in seconds\n    width: 720,             // Width (default 720)\n    height: 1280            // Height (default 1280)\n  });\n\n  if (result.status === 'ok') {\n    console.log('Boom! Your secret video is on its way.');\n  }\n}\n```\n\n---\n\n#### Send a Replayable Video\n\nIf you want them to be able to see it one more time before it disappears:\n\n```javascript\nconst result = await ig.sendRavenVideoReplayable(videoData, {\n  threadId: '1234567890',\n  duration: 15\n});\n```\n\n---\n\n#### Using sendRavenPhoto / sendRavenVideo Directly (Choose Mode)\n\nIf you want to pick the view mode dynamically, use the base `sendRavenPhoto` or `sendRavenVideo` functions with the `viewMode` option:\n\n```javascript\nconst { sendRavenPhoto, sendRavenVideo } = require('nodejs-insta-private-api-mqt');\nconst fs = require('fs');\n\n// Photo — choose 'once' or 'replayable'\nconst photoResult = await sendRavenPhoto(ig, fs.readFileSync('./photo.jpg'), {\n  threadId: 'your_thread_id',\n  viewMode: 'once'          // or 'replayable'\n});\n\n// Video — same pattern\nconst videoResult = await sendRavenVideo(ig, fs.readFileSync('./video.mp4'), {\n  threadId: 'your_thread_id',\n  viewMode: 'replayable',   // or 'once'\n  duration: 8,\n  width: 720,\n  height: 1280\n});\n```\n\n---\n\n#### With MQTT / RealtimeClient (directCommands)\n\nIf you already have an MQTT connection running (for receiving messages in real-time), you can use `directCommands` to send raven media without importing anything extra:\n\n```javascript\n// After setting up realtime connection...\n\nconst fs = require('fs');\nconst photo = fs.readFileSync('./secret.jpg');\n\n// View-once photo\nawait realtime.directCommands.sendRavenPhotoOnce({\n  threadId: threadId,\n  photoBuffer: photo\n});\n\n// Replayable photo\nawait realtime.directCommands.sendRavenPhotoReplayable({\n  threadId: threadId,\n  photoBuffer: photo\n});\n\n// Or specify viewMode manually\nawait realtime.directCommands.sendRavenPhoto({\n  threadId: threadId,\n  photoBuffer: photo,\n  viewMode: 'once'    // 'once' or 'replayable'\n});\n\n// View-once video\nconst video = fs.readFileSync('./clip.mp4');\nawait realtime.directCommands.sendRavenVideoOnce({\n  threadId: threadId,\n  videoBuffer: video,\n  duration: 10,\n  width: 720,\n  height: 1280\n});\n\n// Replayable video\nawait realtime.directCommands.sendRavenVideoReplayable({\n  threadId: threadId,\n  videoBuffer: video,\n  duration: 10\n});\n```\n\n---\n\n#### Complete Bot Example — Auto-Reply with Disappearing Photo\n\nHere's a full working example of a bot that automatically replies to incoming messages with a view-once photo:\n\n```javascript\nconst {\n  IgApiClient,\n  withRealtime,\n  useMultiFileAuthState,\n  GraphQLSubscriptions,\n  SkywalkerSubscriptions,\n  sendRavenPhotoOnce,\n  sendRavenPhotoReplayable,\n} = require('nodejs-insta-private-api-mqt');\nconst fs = require('fs');\n\nasync function startBot() {\n  const ig = new IgApiClient();\n  const auth = await useMultiFileAuthState('./bot_session');\n  ig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\n\n  await ig.login({ username: 'bot_username', password: 'bot_password' });\n  await auth.saveCreds(ig);\n\n  const { realtime } = withRealtime(ig);\n\n  realtime.on('message', async (data) => {\n    // When someone sends you a text message\n    if (data.message && data.message.text) {\n      const threadId = data.message.thread_id;\n      const text = data.message.text.toLowerCase();\n\n      if (text === '!secret') {\n        // Reply with a view-once photo\n        const photo = fs.readFileSync('./secret_photo.jpg');\n        await sendRavenPhotoOnce(ig, photo, { threadId });\n        console.log('Sent view-once photo to', threadId);\n      }\n\n      if (text === '!replay') {\n        // Reply with a replayable photo\n        const photo = fs.readFileSync('./replay_photo.jpg');\n        await sendRavenPhotoReplayable(ig, photo, { threadId });\n        console.log('Sent replayable photo to', threadId);\n      }\n    }\n  });\n\n  await realtime.connect({\n    graphQlSubs: [GraphQLSubscriptions.getDirectTypingSubscription(ig.state.cookieUserId)],\n    skywalkerSubs: [SkywalkerSubscriptions.directSub(ig.state.cookieUserId)],\n    irisData: await ig.request.send({ url: '/api/v1/direct_v2/inbox/', method: 'GET' }),\n  });\n\n  console.log('Bot is running! Send \"!secret\" or \"!replay\" in DMs.');\n}\n\nstartBot().catch(console.error);\n```\n\n---\n\n#### All Available Raven Functions\n\n| Function | What it does |\n|----------|-------------|\n| `sendRavenPhoto(ig, buffer, { threadId, viewMode })` | Send disappearing photo with chosen mode |\n| `sendRavenPhotoOnce(ig, buffer, { threadId })` | Send view-once photo (opens once, then gone) |\n| `sendRavenPhotoReplayable(ig, buffer, { threadId })` | Send replayable photo (can replay, still disappears) |\n| `sendRavenVideo(ig, buffer, { threadId, viewMode, duration, width, height })` | Send disappearing video with chosen mode |\n| `sendRavenVideoOnce(ig, buffer, { threadId, duration, width, height })` | Send view-once video |\n| `sendRavenVideoReplayable(ig, buffer, { threadId, duration, width, height })` | Send replayable video |\n\nAll functions return a response object with `status: 'ok'` on success and a `payload` containing the `item_id` and `thread_id`.\n\n---\n\n#### Low-Level: broadcastRaven (DirectThread Repository)\n\nIf you want full control over the process, you can handle the upload yourself and just call the broadcast. **Important:** media must be uploaded to `rupload.facebook.com/messenger_image/` (not `rupload_igphoto/`) for raven to work.\n\n```javascript\n// Step 1: Upload to messenger_image endpoint (see sendRavenPhoto.js for full headers)\n// Step 2: Broadcast\nconst result = await ig.directThread.broadcastRaven({\n  uploadId: uploadId,           // from the messenger_image upload response\n  attachmentFbid: mediaId,      // media_id from the upload response\n  threadId: threadId,\n  viewMode: 'once'              // 'once' or 'replayable'\n});\n```\n\n---\n\n### Notifications\n\n#### Send Screenshot Notification\n\n```javascript\nawait realtime.directCommands.sendScreenshotNotification({\n  threadId: threadId,\n  itemId: messageId\n});\n```\n\n#### Send Replay Notification\n\n```javascript\nawait realtime.directCommands.sendReplayNotification({\n  threadId: threadId,\n  itemId: messageId\n});\n```\n\n---\n\n### Media Upload (HTTP + Broadcast)\n\nThese methods handle the full flow: upload via HTTP rupload, then broadcast to thread.\n\n#### Send Photo\n\n```javascript\nconst fs = require('fs');\nconst photoBuffer = fs.readFileSync('./photo.jpg');\n\nawait realtime.directCommands.sendPhoto({\n  threadId: threadId,\n  photoBuffer: photoBuffer,\n  caption: 'Check this out',\n  mimeType: 'image/jpeg'\n});\n```\n\n#### Send Video\n\n```javascript\nconst fs = require('fs');\nconst videoBuffer = fs.readFileSync('./video.mp4');\n\nawait realtime.directCommands.sendVideo({\n  threadId: threadId,\n  videoBuffer: videoBuffer,\n  caption: 'Watch this',\n  duration: 15,\n  width: 720,\n  height: 1280\n});\n```\n\n---\n\n### Foreground State (Connection Keepalive)\n\n```javascript\nawait realtime.directCommands.sendForegroundState({\n  inForegroundApp: true,\n  inForegroundDevice: true,\n  keepAliveTimeout: 60\n});\n```\n\n---\n\n## Complete Method Reference Table\n\n| Method | Description |\n|--------|-------------|\n| `sendText({ threadId, text })` | Send text message |\n| `sendTextViaRealtime(threadId, text)` | Send text (alternative) |\n| `sendHashtag({ threadId, hashtag, text })` | Send hashtag |\n| `sendLike({ threadId })` | Send heart/like |\n| `sendLocation({ threadId, locationId, text })` | Send location |\n| `sendMedia({ threadId, mediaId, text })` | Share a post |\n| `sendProfile({ threadId, userId, text })` | Share a profile |\n| `sendUserStory({ threadId, storyId, text })` | Share a story |\n| `sendLink({ threadId, link, text })` | Send a link |\n| `sendAnimatedMedia({ threadId, id, isSticker })` | Send GIF/sticker |\n| `sendVoice({ threadId, uploadId, waveform })` | Send voice message |\n| `sendReaction({ threadId, itemId, emoji })` | React to message |\n| `removeReaction({ threadId, itemId })` | Remove reaction |\n| `replyToMessage(threadId, messageId, text)` | Quote reply |\n| `editMessage(threadId, itemId, newText)` | Edit message |\n| `deleteMessage(threadId, itemId)` | Delete message |\n| `markAsSeen({ threadId, itemId })` | Mark as read |\n| `indicateActivity({ threadId, isActive })` | Typing indicator |\n| `markVisualMessageSeen({ threadId, itemId })` | Mark disappearing media seen |\n| `addMemberToThread(threadId, userId)` | Add group member |\n| `removeMemberFromThread(threadId, userId)` | Remove group member |\n| `leaveThread(threadId)` | Leave group |\n| `updateThreadTitle(threadId, title)` | Change group name |\n| `muteThread(threadId, muteUntil)` | Mute thread |\n| `unmuteThread(threadId)` | Unmute thread |\n| `approveThread(threadId)` | Accept message request |\n| `declineThread(threadId)` | Decline message request |\n| `blockUserInThread(threadId, userId)` | Block user |\n| `reportThread(threadId, reason)` | Report thread |\n| `sendDisappearingPhoto({ threadId, uploadId })` | Send view-once photo (MQTT metadata only) |\n| `sendDisappearingVideo({ threadId, uploadId })` | Send view-once video (MQTT metadata only) |\n| `sendRavenPhoto({ threadId, photoBuffer, viewMode })` | Upload & send disappearing photo (full flow) |\n| `sendRavenPhotoOnce({ threadId, photoBuffer })` | Upload & send view-once photo |\n| `sendRavenPhotoReplayable({ threadId, photoBuffer })` | Upload & send replayable photo |\n| `sendRavenVideo({ threadId, videoBuffer, viewMode })` | Upload & send disappearing video (full flow) |\n| `sendRavenVideoOnce({ threadId, videoBuffer })` | Upload & send view-once video |\n| `sendRavenVideoReplayable({ threadId, videoBuffer })` | Upload & send replayable video |\n| `sendScreenshotNotification({ threadId, itemId })` | Screenshot alert |\n| `sendReplayNotification({ threadId, itemId })` | Replay alert |\n| `sendPhoto({ threadId, photoBuffer, caption })` | Upload & send photo |\n| `sendVideo({ threadId, videoBuffer, caption })` | Upload & send video |\n| `sendForegroundState(state)` | Connection keepalive |\n\n---\n\n## Download Media from Messages\n\nThis feature provides persistent media download for Instagram DM messages.\n\n### Quick Start: Save View-Once Photo\n\n```javascript\nconst { \n  downloadContentFromMessage,\n  isViewOnceMedia \n} = require('nodejs-insta-private-api-mqt');\nconst fs = require('fs');\n\nrealtime.on('message', async (data) => {\n  const msg = data.message;\n  \n  if (isViewOnceMedia(msg)) {\n    const stream = await downloadContentFromMessage(msg);\n    \n    let buffer = Buffer.from([]);\n    for await (const chunk of stream) {\n      buffer = Buffer.concat([buffer, chunk]);\n    }\n    \n    const ext = stream.mediaInfo.type.includes('video') ? 'mp4' : 'jpg';\n    fs.writeFileSync(`viewonce_${Date.now()}.${ext}`, buffer);\n  }\n});\n```\n\n### Download Regular Media\n\n```javascript\nconst { downloadMediaBuffer, hasMedia } = require('nodejs-insta-private-api-mqt');\n\nrealtime.on('message', async (data) => {\n  const msg = data.message;\n  \n  if (hasMedia(msg)) {\n    const { buffer, mediaInfo } = await downloadMediaBuffer(msg);\n    fs.writeFileSync(`media_${Date.now()}.jpg`, buffer);\n  }\n});\n```\n\n### Media Functions Reference\n\n| Function | Description |\n|----------|-------------|\n| `downloadContentFromMessage(message)` | Download as stream |\n| `downloadMediaBuffer(message)` | Download as Buffer |\n| `extractMediaUrls(message)` | Get CDN URLs |\n| `hasMedia(message)` | Check if has media |\n| `getMediaType(message)` | Get media type |\n| `isViewOnceMedia(message)` | Check if disappearing |\n\n---\n\n## Building Instagram Bots\n\nThe core of any bot built with this library is the `connection.update` event. It fires every time the MQTT connection state changes and tells you exactly what happened — whether you just connected, got disconnected, or the session expired. Combined with the `message` event for incoming DMs, these two hooks are all you need for most bots.\n\nBoth `client.on('connection.update', ...)` and `client.ev.on('connection.update', ...)` do exactly the same thing. The `.ev` property is just an alias for the client itself — use whichever style you prefer.\n\n---\n\n### Minimal Working Bot\n\nThe smallest complete bot you can write: logs in, connects to MQTT, replies \"pong\" to any \"ping\" message, and handles session expiry gracefully.\n\n```javascript\nconst {\n  IgApiClient,\n  RealtimeClient,\n  useMultiFileAuthState,\n  GraphQLSubscriptions,\n  DisconnectReason,\n} = require('nodejs-insta-private-api-mqt');\n\nasync function main() {\n  const ig = new IgApiClient();\n  const auth = await useMultiFileAuthState('./session');\n\n  ig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\n\n  if (auth.hasSession()) {\n    await auth.loadCreds(ig);\n    const valid = await auth.isSessionValid(ig).catch(() => false);\n    if (!valid) {\n      const result = await ig.login({ username: 'your_username', password: 'your_password' });\n      await auth.saveCreds(ig);\n    }\n  } else {\n    const result = await ig.login({ username: 'your_username', password: 'your_password' });\n    await auth.saveCreds(ig);\n  }\n\n  const realtime = new RealtimeClient(ig);\n\n  realtime.ev.on('connection.update', ({ connection, lastDisconnect }) => {\n    if (connection === 'connecting') {\n      console.log('Connecting to Instagram MQTT...');\n    } else if (connection === 'open') {\n      console.log('Connected! Bot is live.');\n    } else if (connection === 'close') {\n      const code = lastDisconnect?.error?.output?.statusCode;\n      if (code === DisconnectReason.loggedOut) {\n        console.log('Session expired. Delete the ./session folder and re-run the bot.');\n        process.exit(1);\n      } else {\n        console.log('Disconnected, will reconnect automatically...');\n      }\n    }\n  });\n\n  realtime.on('message', async (data) => {\n    const msg = data.message || data.parsed;\n    if (!msg?.text || !msg.thread_id) return;\n\n    if (msg.text.toLowerCase() === 'ping') {\n      await realtime.directCommands.sendText({ threadId: msg.thread_id, text: 'pong!' });\n    }\n  });\n\n  const userId = ig.state.cookieUserId;\n  await realtime.connect({\n    graphQlSubs: [\n      userId && GraphQLSubscriptions.getDirectTypingSubscription(userId),\n      GraphQLSubscriptions.getAppPresenceSubscription(),\n      GraphQLSubscriptions.getDirectStatusSubscription(),\n    ].filter(Boolean),\n  });\n\n  await new Promise(() => {});\n}\n\nmain().catch(console.error);\n```\n\n---\n\n### Production Bot — Full Lifecycle Handling\n\nA production bot needs to survive everything: sessions that expire without warning, rate limits, network drops, and server hiccups. This example shows the full setup with every disconnect reason handled and a graceful shutdown on Ctrl+C.\n\n```javascript\nconst {\n  IgApiClient,\n  RealtimeClient,\n  useMultiFileAuthState,\n  GraphQLSubscriptions,\n  DisconnectReason,\n} = require('nodejs-insta-private-api-mqt');\n\nconst SESSION_FOLDER = './bot_session';\nconst USERNAME = 'your_username';\nconst PASSWORD = 'your_password';\n\nasync function startBot() {\n  const ig = new IgApiClient();\n  const auth = await useMultiFileAuthState(SESSION_FOLDER);\n\n  ig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\n\n  // Restore or create session\n  if (auth.hasSession()) {\n    await auth.loadCreds(ig);\n    const valid = await auth.isSessionValid(ig).catch(() => false);\n    if (!valid) {\n      console.log('Session expired, logging in again...');\n      const result = await ig.login({ username: USERNAME, password: PASSWORD });\n      await auth.saveCreds(ig);\n      console.log('Logged in, session saved.');\n    } else {\n      console.log('Session restored.');\n    }\n  } else {\n    console.log('No session found, logging in...');\n    const result = await ig.login({ username: USERNAME, password: PASSWORD });\n    await auth.saveCreds(ig);\n    console.log('Logged in, session saved.');\n  }\n\n  const realtime = new RealtimeClient(ig);\n  const userId = ig.state.cookieUserId;\n\n  // Connection lifecycle — this is how you react to every state change\n  realtime.ev.on('connection.update', ({ connection, lastDisconnect, isNewLogin }) => {\n    if (connection === 'connecting') {\n      console.log('[BOT] Connecting...');\n      return;\n    }\n\n    if (connection === 'open') {\n      console.log(`[BOT] Connected${isNewLogin ? ' (first login)' : ''}`);\n      return;\n    }\n\n    if (connection === 'close') {\n      const code = lastDisconnect?.error?.output?.statusCode;\n      const msg  = lastDisconnect?.error?.message;\n\n      switch (code) {\n        case DisconnectReason.loggedOut:\n          // Instagram invalidated the session — must log in fresh\n          console.error('[BOT] Logged out by Instagram. Delete session and re-run.');\n          process.exit(1);\n          break;\n\n        case DisconnectReason.rateLimited:\n          // Too many requests — library backs off automatically\n          console.warn('[BOT] Rate limited. Backing off before next reconnect...');\n          break;\n\n        case DisconnectReason.connectionClosed:\n          // You called realtime.disconnect() — expected\n          console.log('[BOT] Disconnected intentionally.');\n          break;\n\n        case DisconnectReason.timedOut:\n          // Keepalive ping failed — library will reconnect\n          console.warn('[BOT] Connection timed out, reconnecting...');\n          break;\n\n        case DisconnectReason.reconnectFailed:\n          // All retry attempts exhausted\n          console.error(`[BOT] Reconnect failed after all attempts: ${msg}`);\n          process.exit(1);\n          break;\n\n        default:\n          // Network drop, server error, etc. — library auto-reconnects\n          console.warn(`[BOT] Disconnected (code ${code}): ${msg}`);\n      }\n    }\n  });\n\n  // Fires when the library successfully reconnects after a drop\n  realtime.on('reconnected', ({ attempt }) => {\n    console.log(`[BOT] Reconnected on attempt #${attempt}`);\n  });\n\n  // Fires when all reconnect attempts have been exhausted\n  realtime.on('reconnect_failed', ({ attempts, lastErrorType }) => {\n    console.error(`[BOT] Failed to reconnect after ${attempts} attempts. Last error type: ${lastErrorType}`);\n    process.exit(1);\n  });\n\n  // Fires after 3+ consecutive auth failures\n  realtime.on('auth_failure', ({ count }) => {\n    console.error(`[BOT] Auth failed ${count} times in a row. Session is probably expired.`);\n  });\n\n  // Non-fatal warnings (bad payload, unknown topic, etc.)\n  realtime.on('warning', (w) => {\n    console.warn('[BOT] Warning:', w?.message || w);\n  });\n\n  // Incoming DMs\n  realtime.on('message', async (data) => {\n    const msg = data.message || data.parsed;\n    if (!msg?.text || !msg.thread_id) return;\n\n    const threadId = msg.thread_id;\n    const itemId   = msg.item_id || msg.messageId;\n    const text     = msg.text.trim();\n\n    // Mark as seen\n    if (itemId) {\n      await realtime.directCommands.markAsSeen({ threadId, itemId }).catch(() => {});\n    }\n\n    console.log(`[MSG] ${msg.from_user_id || msg.userId}: \"${text}\"`);\n\n    if (text.toLowerCase() === 'ping') {\n      await realtime.directCommands.sendText({ threadId, text: 'pong!' });\n    }\n  });\n\n  // Typing indicators\n  realtime.on('typing', (data) => {\n    console.log(`[TYPING] Thread ${data?.thread_id || data?.threadId}`);\n  });\n\n  // Fetch inbox for iris data (needed for full message sync)\n  let irisData = null;\n  try {\n    irisData = await ig.request.send({ url: '/api/v1/direct_v2/inbox/', method: 'GET' });\n  } catch (_) {}\n\n  // Connect with subscriptions\n  await realtime.connect({\n    irisData: irisData || undefined,\n    graphQlSubs: [\n      userId && GraphQLSubscriptions.getDirectTypingSubscription(userId),\n      GraphQLSubscriptions.getAppPresenceSubscription(),\n      GraphQLSubscriptions.getDirectStatusSubscription(),\n      userId && GraphQLSubscriptions.getAsyncAdSubscription(userId),\n      GraphQLSubscriptions.getClientConfigUpdateSubscription(),\n    ].filter(Boolean),\n  });\n\n  console.log('[BOT] Bot is running. Send it a DM to test.');\n\n  // Graceful shutdown\n  process.on('SIGINT', () => {\n    console.log('[BOT] Shutting down...');\n    realtime.disconnect();\n    process.exit(0);\n  });\n\n  await new Promise(() => {});\n}\n\nstartBot().catch(console.error);\n```\n\n---\n\n### Smart Bot with Typing, Read Receipts, and Reactions\n\nThis pattern is what makes a bot feel human: mark the message as seen right away, show a typing indicator while \"thinking\", send the reply, then react to the original message.\n\n```javascript\nrealtime.on('message', async (data) => {\n  const msg = data.message || data.parsed;\n  if (!msg?.text || !msg.thread_id) return;\n\n  const threadId = msg.thread_id;\n  const itemId   = msg.item_id || msg.messageId;\n  const text     = msg.text.toLowerCase().trim();\n\n  // 1. Mark as seen immediately (sender sees blue \"Seen\")\n  if (itemId) {\n    await realtime.directCommands.markAsSeen({ threadId, itemId }).catch(() => {});\n  }\n\n  // 2. Show typing indicator\n  await realtime.directCommands.indicateActivity({ threadId, isActive: true });\n\n  // 3. Small delay to look human\n  await new Promise(r => setTimeout(r, 1500 + Math.random() * 1500));\n\n  // 4. Send reply based on message content\n  if (text === 'hi' || text === 'hello' || text === 'hey') {\n    await realtime.directCommands.sendText({ threadId, text: 'Hey! What can I do for you?' });\n\n    // React to the greeting\n    if (itemId) {\n      await realtime.directCommands.sendReaction({\n        threadId,\n        itemId,\n        reactionType: 'emoji',\n        emoji: '👋',\n      });\n    }\n  } else if (text === 'ping') {\n    await realtime.directCommands.sendText({ threadId, text: 'pong!' });\n  } else if (text === 'status') {\n    await realtime.directCommands.sendText({\n      threadId,\n      text: `I'm online. MQTT connected: ${realtime._mqttConnected ? 'yes' : 'no'}`,\n    });\n  } else {\n    // Default reply\n    await realtime.directCommands.sendText({\n      threadId,\n      text: \"I got your message! I don't know how to respond to that yet.\",\n    });\n  }\n\n  // 5. Stop typing indicator\n  await realtime.directCommands.indicateActivity({ threadId, isActive: false });\n});\n```\n\n---\n\n### Checking the Disconnect Reason Programmatically\n\nWhen the connection drops, `lastDisconnect.error.output.statusCode` gives you a numeric code. The `DisconnectReason` enum maps every code to a human-readable name so you don't have to remember the numbers:\n\n```javascript\nconst { DisconnectReason } = require('nodejs-insta-private-api-mqt');\n\nrealtime.ev.on('connection.update', ({ connection, lastDisconnect }) => {\n  if (connection !== 'close') return;\n\n  const code = lastDisconnect?.error?.output?.statusCode;\n  const message = lastDisconnect?.error?.message;\n  const when = lastDisconnect?.date;\n\n  console.log('Disconnected at:', when?.toISOString());\n  console.log('Reason code:', code);\n  console.log('Message:', message);\n\n  if (code === DisconnectReason.loggedOut) {\n    // 401 — Instagram says your session is invalid\n    // Only fix: delete the session folder and log in again\n    console.log('Need to re-login');\n\n  } else if (code === DisconnectReason.rateLimited) {\n    // 429 — sent too many requests too fast\n    // The library automatically applies a longer backoff for rate limits\n\n  } else if (code === DisconnectReason.connectionLost) {\n    // 408 — connection dropped with no specific reason\n    // This is the most common disconnect — usually just a network blip\n\n  } else if (code === DisconnectReason.connectionClosed) {\n    // 428 — you called realtime.disconnect() intentionally\n\n  } else if (code === DisconnectReason.timedOut) {\n    // 504 — MQTT keepalive ping timed out\n\n  } else if (code === DisconnectReason.networkError) {\n    // 503 — ECONNRESET, ETIMEDOUT, DNS failure, etc.\n\n  } else if (code === DisconnectReason.protocolError) {\n    // 500 — Thrift or MQTT parsing failed\n\n  } else if (code === DisconnectReason.serverError) {\n    // 502 — Instagram server returned a 5xx\n\n  } else if (code === DisconnectReason.reconnectFailed) {\n    // 503 — all automatic reconnect attempts were exhausted\n    process.exit(1);\n  }\n});\n```\n\n**All DisconnectReason values at a glance:**\n\n| Name | Code | When it happens |\n|------|------|-----------------|\n| `loggedOut` | 401 | Session invalid — fresh login required |\n| `rateLimited` | 429 | Too many requests — library backs off automatically |\n| `connectionLost` | 408 | Unexpected drop, no specific error info |\n| `connectionClosed` | 428 | You called `disconnect()` yourself |\n| `timedOut` | 504 | MQTT ping/keepalive timeout |\n| `networkError` | 503 | ECONNRESET, ETIMEDOUT, or DNS failure |\n| `protocolError` | 500 | Thrift or MQTT parse error |\n| `serverError` | 502 | Instagram returned a 5xx response |\n| `reconnectFailed` | 503 | All auto-reconnect attempts exhausted |\n\n---\n\n### Using startRealTimeListener() (Simpler Connect Method)\n\n`startRealTimeListener()` is a convenience wrapper around `connect()` that automatically builds the recommended set of GraphQL subscriptions for you. It also accepts optional health monitor and logger config:\n\n```javascript\nconst realtime = new RealtimeClient(ig);\n\nrealtime.ev.on('connection.update', ({ connection, lastDisconnect }) => {\n  // same as above\n});\n\nrealtime.on('message', async (data) => {\n  // handle incoming DMs\n});\n\n// Simplest connect — auto-builds subscriptions\nawait realtime.startRealTimeListener();\n\n// Or with health monitoring and file logging enabled:\nawait realtime.startRealTimeListener({\n  credentials: { username: 'your_username', password: 'your_password' },\n  enablePersistentLogger: true,\n  logDir: './mqtt-logs',\n});\n```\n\nThe health monitor periodically calls `/api/v1/accounts/current_user/` to check if the session is still valid and automatically re-logs in if it detects expiry. The persistent logger writes all MQTT events to rotating files in `logDir`, which is useful for debugging disconnects that happen when you're not watching.\n\n---\n\n### Session Health Events\n\nWhen the health monitor is enabled, these additional events fire on `realtime`:\n\n```javascript\nrealtime.on('health_check', ({ status, stats }) => {\n  // status: 'ok' or 'failed'\n  // stats: { totalUptimeHuman, uptimePercent, reconnects, ... }\n  console.log(`Health: ${status}, uptime: ${stats.totalUptimeHuman}`);\n});\n\nrealtime.on('session_expired', () => {\n  console.log('Session detected as expired by health monitor');\n});\n\nrealtime.on('relogin_success', () => {\n  console.log('Automatically re-logged in after session expiry');\n});\n\nrealtime.on('relogin_failed', ({ error }) => {\n  console.error('Auto re-login failed:', error?.message);\n});\n```\n\nYou can also pull stats at any time:\n\n```javascript\nconst health = realtime.getHealthStats();\nconsole.log('Uptime:', health.uptimePercent + '%');\nconsole.log('Reconnects so far:', health.reconnects);\nconsole.log('Session started:', health.sessionStart);\n```\n\n---\n\n## Session Management\n\n### Multi-File Auth State\n\n```javascript\nconst authState = await useMultiFileAuthState('./auth_folder');\n```\n\n| Method | Description |\n|--------|-------------|\n| `hasSession()` | Check if credentials exist |\n| `hasMqttSession()` | Check if MQTT session exists |\n| `loadCreds(ig)` | Load saved credentials |\n| `saveCreds(ig)` | Save current credentials |\n| `isSessionValid(ig)` | Validate with Instagram |\n| `loadMqttSession()` | Get saved MQTT session |\n| `saveMqttSession(realtime)` | Save MQTT session |\n| `clearSession()` | Delete all session files |\n\n---\n\n## API Reference\n\n### IgApiClient\n\n```javascript\n// Login\nawait ig.login({\n  username: 'your_username',\n  password: 'your_password'\n});\n\n// Save session\nconst serialized = ig.state.serialize();\nfs.writeFileSync('session.json', JSON.stringify(serialized));\n\n// Load session\nconst session = JSON.parse(fs.readFileSync('session.json'));\nawait ig.state.deserialize(session);\n```\n\n### Direct Messages (REST)\n\n```javascript\n// Get inbox\nconst inbox = await ig.direct.getInbox();\n\n// Get thread\nconst thread = await ig.direct.getThread(threadId);\n\n// Send text by username (looks up user, finds/creates thread, sends)\nawait ig.direct.send({ to: 'target_username', message: 'Hello!' });\n\n// Send text by user ID (no username lookup needed)\nawait ig.direct.sendToUserId('12345678', 'Hello!');\n\n// Send text to an existing thread (by thread ID)\nawait ig.directThread.sendToGroup({ threadId: '340282366841710300...', message: 'Hello!' });\n\n// Low-level broadcast (full control over payload)\nawait ig.directThread.broadcast({\n  threadIds: ['340282366841710300...'],\n  item: 'text',\n  form: { text: 'Hello!' },\n});\n```\n\n---\n\n## REST API — Full Reference (v5.66.0)\n\nEverything below uses the REST HTTP endpoints, not MQTT. You don't need `RealtimeClient` for any of this — just `IgApiClient` and a valid session.\n\n```javascript\nconst { IgApiClient } = require('nodejs-insta-private-api-mqt');\nconst ig = new IgApiClient();\n\nig.state.usePresetDevice('Samsung Galaxy S25 Ultra');\nawait ig.login({ username: 'your_username', password: 'your_password' });\n// you're ready to use any of the methods below\n```\n\n---\n\n### Authentication & Login\n\n#### Basic Login\n\n```javascript\nawait ig.login({ username: 'your_username', password: 'your_password' });\n\n// or the shorter way\nawait ig.account.login('your_username', 'your_password');\n```\n\n#### Two-Factor Authentication (2FA)\n\nWhen Instagram asks for a 2FA code, `login()` throws an error that contains the `two_factor_identifier`. Catch it and finish the flow:\n\n```javascript\ntry {\n  await ig.account.login('username', 'password');\n} catch (err) {\n  if (err.response?.body?.two_factor_required) {\n    const twoFactorId = err.response.body.two_factor_info.two_factor_identifier;\n    \n    // user enters the code from their authenticator app or SMS\n    const code = '123456';\n    \n    await ig.account.twoFactorLogin('username', code, twoFactorId, '1');\n    // verificationMethod: '1' = SMS, '3' = TOTP app\n    console.log('2FA login successful');\n  }\n}\n```\n\n#### TOTP Two-Factor Setup\n\nSet up authenticator-app-based 2FA for your account. This generates a seed you can add to Google Authenticator, Authy, etc.\n\n```javascript\n// generate a TOTP seed (this is the secret key for your authenticator app)\nconst seed = await ig.totp.generateSeed();\nconsole.log('Add this to your authenticator app:', seed.totp_seed);\n\n// after adding it, verify with a code from the app to confirm\nconst code = '123456'; // from authenticator app\nawait ig.totp.enable(code);\nconsole.log('TOTP 2FA is now enabled');\n\n// get backup codes in case you lose your authenticator\nconst backupCodes = await ig.totp.getBackupCodes();\nconsole.log('Save these somewhere safe:', backupCodes);\n\n// disable TOTP 2FA\nawait ig.totp.disable();\n```\n\n#### SMS-Based 2FA\n\n```javascript\n// enable SMS 2FA\nawait ig.totp.smsTwoFactorEnable('+1234567890');\n\n// confirm with the code you received\nawait ig.totp.smsTwoFactorConfirm('123456');\n\n// disable it later\nawait ig.totp.disableSmsTwoFactor();\n```\n\n#### Challenge Resolver\n\nWhen Instagram triggers a security checkpoint (suspicious login, new location, etc.), you need to resolve the challenge:\n\n```javascript\ntry {\n  await ig.account.login('username', 'password');\n} catch (err) {\n  if (err.response?.body?.challenge) {\n    const challengeUrl = err.response.body.challenge.api_path;\n    \n    // option 1: automatic resolution (tries to handle it for you)\n    const result = await ig.challenge.auto(challengeUrl);\n    console.log('Challenge result:', result);\n    \n    // option 2: manual step-by-step\n    // first, see what verification methods are available\n    const page = await ig.challenge.getChallengePage(challengeUrl);\n    \n    // choose SMS (0) or email (1)\n    await ig.challenge.selectVerifyMethod(challengeUrl, 1);\n    \n    // enter the code you received\n    await ig.challenge.sendSecurityCode(challengeUrl, '123456');\n  }\n}\n```\n\n---\n\n### Account Management\n\n#### Get Current User Info\n\n```javascript\nconst me = await ig.account.currentUser();\nconsole.log('Username:', me.user.username);\nconsole.log('Follower count:', me.user.follower_count);\n```\n\n#### Edit Profile\n\n```javascript\nawait ig.account.editProfile({\n  fullName: 'John Doe',\n  biography: 'building cool stuff',\n  externalUrl: 'https://example.com',\n  email: 'john@example.com',\n  phoneNumber: '+1234567890',\n  username: 'johndoe_new'\n});\n```\n\n#### Set Biography\n\n```javascript\nawait ig.account.setBiography('i like building things that work');\n```\n\n#### Set External URL / Remove Bio Links\n\n```javascript\nawait ig.account.setExternalUrl('https://mywebsite.com');\nawait ig.account.removeBioLinks();\n```\n\n#### Change Password\n\n```javascript\nawait ig.account.changePassword('old_password_here', 'new_password_here');\n```\n\n#### Switch to Private / Public\n\n```javascript\nawait ig.account.setPrivate();\nawait ig.account.setPublic();\n```\n\n#### Set Gender\n\n```javascript\n// 1 = male, 2 = female, 3 = prefer not to say, 4 = custom\nawait ig.account.setGender(1);\n```\n\n#### Profile Picture\n\n```javascript\n// you need an upload_id from a previous photo upload\nawait ig.account.profilePictureChange(uploadId);\nawait ig.account.profilePictureRemove();\n```\n\n#### Password Encryption Keys\n\n```javascript\n// get the public keys for Instagram's password encryption (needed for some flows)\nconst keys = await ig.account.passwordPublicKeys();\n```\n\n#### Account Recovery\n\n```javascript\n// send password recovery via email\nawait ig.account.sendRecoveryFlowEmail('user@example.com');\n\n// or via SMS\nawait ig.account.sendRecoveryFlowSms('+1234567890');\n```\n\n---\n\n### User Operations\n\n#### Fetch User Info\n\n```javascript\n// by username\nconst user = await ig.user.infoByUsername('instagram');\nconsole.log('User ID:', user.pk);\nconsole.log('Followers:', user.follower_count);\n\n// by user ID\nconst userById = await ig.user.info('25025320');\n```\n\n#### Resolve Username ↔ User ID\n\n```javascript\nconst userId = await ig.user.userIdFromUsername('instagram');\n// returns '25025320'\n\nconst username = await ig.user.usernameFromUserId('25025320');\n// returns 'instagram'\n```\n\n#### Search Users\n\n```javascript\nconst results = await ig.user.search('john', 20);\nresults.users.forEach(u => {\n  console.log(u.username, '-', u.full_name);\n});\n\n// exact match\nconst exact = await ig.user.searchExact('johndoe');\n```\n\n#### Follow / Unfollow\n\n```javascript\nawait ig.user.follow('25025320');\nawait ig.user.unfollow('25025320');\n```\n\n#### Block / Unblock\n\n```javascript\nawait ig.user.block('25025320');\nawait ig.user.unblock('25025320');\n\n// see all blocked users\nconst blocked = await ig.user.getBlockedUsers();\n```\n\n#### Mute / Unmute\n\n```javascript\n// mute posts, stories, or both\nawait ig.user.mute('25025320', { mutePosts: true, muteStories: true });\nawait ig.user.unmute('25025320', { unmutePosts: true, unmuteStories: true });\n```\n\n#### Get Followers / Following (with pagination)\n\n```javascript\n// get up to 200 followers at a time\nconst followers = await ig.user.getFollowers('25025320', 200);\nconsole.log('Got', followers.users.length, 'followers');\n\n// pagination — pass the maxId from the previous response\nconst moreFollowers = await ig.user.getFollowers('25025320', 200, followers.next_max_id);\n\n// same for following\nconst following = await ig.user.getFollowing('25025320', 200);\n```\n\n#### Get User's Posts (with pagination)\n\n```javascript\n// grab the latest 50 posts\nconst posts = await ig.user.getUserMedias('25025320', 50);\nposts.items.forEach(item => {\n  console.log(item.pk, '-', item.caption?.text?.substring(0, 50));\n});\n\n// next page\nconst morePosts = await ig.user.getUserMedias('25025320', 50, posts.next_max_id);\n```\n\n#### Get User's Reels / Clips\n\n```javascript\nconst reels = await ig.user.getUserReels('25025320', 50);\nconst clips = await ig.user.getUserClips('25025320', 50);\n```\n\n#### Get User's Stories\n\n```javascript\nconst stories = await ig.user.getUserStories('25025320');\nstories.reel?.items.forEach(story => {\n  console.log('Story:', story.pk, 'taken at:', story.taken_at);\n});\n```\n\n#### Get Tagged Posts\n\n```javascript\nconst tagged = await ig.user.getUserTags('25025320');\n```\n\n#### Mutual Followers\n\n```javascript\nconst mutual = await ig.user.getMutualFollowers('25025320');\n```\n\n#### Remove a Follower\n\n```javascript\nawait ig.user.removeFollower('25025320');\n```\n\n#### Report a User\n\n```javascript\n// reason: 1 = spam, 2 = inappropriate, etc.\nawait ig.user.report('25025320', 1);\n```\n\n#### Get Suggested Users\n\n```javascript\nconst suggestions = await ig.user.getSuggested();\n```\n\n#### Friendship Status (Bulk)\n\n```javascript\n// check relationship status with multiple users at once\nconst statuses = await ig.user.getFriendshipStatuses(['12345', '67890', '11111']);\n```\n\n---\n\n### Media Operations\n\n#### Get Media Info\n\n```javascript\nconst info = await ig.media.info('3193593212003331660');\nconsole.log('Type:', info.items[0].media_type);\nconsole.log('Likes:', info.items[0].like_count);\n```\n\n#### PK / Shortcode Conversion\n\nThese are super useful when you have a post URL and need the numeric ID, or the other way around.\n\n```javascript\nconst { MediaRepository } = require('nodejs-insta-private-api-mqt');\n\n// convert shortcode to numeric PK\nconst pk = MediaRepository.mediaPkFromCode('CxR7Bsejq5M');\n// '3193593212003331660'\n\n// convert PK back to shortcode\nconst code = MediaRepository.mediaCodeFromPk('3193593212003331660');\n// 'CxR7Bsejq5M'\n\n// extract PK directly from a full URL\nconst pkFromUrl = MediaRepository.mediaPkFromUrl('https://www.instagram.com/p/CxR7Bsejq5M/');\n// '3193593212003331660'\n```\n\n#### Like / Unlike\n\n```javascript\nawait ig.media.like('3193593212003331660');\nawait ig.media.unlike('3193593212003331660');\n```\n\n#### Comment\n\n```javascript\nconst comment = await ig.media.comment('3193593212003331660', 'great shot!');\nconsole.log('Comment ID:', comment.comment.pk);\n```\n\n#### Reply to a Comment\n\n```javascript\nawait ig.media.replyToComment('3193593212003331660', '17858893269000001', '@user thanks!');\n```\n\n#### Like / Unlike Comments\n\n```javascript\nawait ig.media.likeComment('3193593212003331660', '17858893269000001');\nawait ig.media.unlikeComment('3193593212003331660', '17858893269000001');\n```\n\n#### Pin / Unpin Comments\n\n```javascript\nawait ig.media.pinComment('3193593212003331660', '17858893269000001');\nawait ig.media.unpinComment('3193593212003331660', '17858893269000001');\n```\n\n#### Delete Comments (Single or Bulk)\n\n```javascript\n// single\nawait ig.media.deleteComment('3193593212003331660', '17858893269000001');\n\n// bulk delete\nawait ig.media.bulkDeleteComments('3193593212003331660', [\n  '17858893269000001',\n  '17858893269000002',\n  '17858893269000003'\n]);\n```\n\n#### Get Comments (Paginated)\n\n```javascript\nconst comments = await ig.media.comments('3193593212003331660', null, 20);\n// next page:\nconst moreComments = await ig.media.comments('3193593212003331660', comments.next_min_id, 20);\n```\n\n#### Get Comment Thread (Replies to a Comment)\n\n```javascript\nconst thread = await ig.media.commentThreadComments('3193593212003331660', '17858893269000001');\n```\n\n#### Get Likers\n\n```javascript\nconst likers = await ig.media.likers('3193593212003331660');\nlikers.users.forEach(u => console.log(u.username));\n```\n\n#### Save / Unsave\n\n```javascript\nawait ig.media.save('3193593212003331660');\n\n// save to a specific collection\nawait ig.media.save('3193593212003331660', 'collection_id_here');\n\nawait ig.media.unsave('3193593212003331660');\n```\n\n#### Archive / Unarchive\n\n```javascript\nawait ig.media.archive('3193593212003331660');\nawait ig.media.unarchive('3193593212003331660');\n```\n\n#### Delete Media\n\n```javascript\n// mediaType: 'PHOTO', 'VIDEO', 'CAROUSEL'\nawait ig.media.delete('3193593212003331660', 'PHOTO');\n```\n\n#### Edit Caption\n\n```javascript\nawait ig.media.edit('3193593212003331660', 'new caption goes here', {\n  usertags: { in: [{ user_id: '12345', position: [0.5, 0.5] }] }\n});\n```\n\n#### Enable / Disable Comments\n\n```javascript\nawait ig.media.disableComments('3193593212003331660');\nawait ig.media.enableComments('3193593212003331660');\n```\n\n#### Download Media\n\n```javascript\n// download by URL\nconst buffer = await ig.media.downloadByUrl('https://instagram.cdnurl.com/...');\n\n// download by PK (photo or video)\nconst photo = await ig.media.downloadPhoto('3193593212003331660');\nconst video = await ig.media.downloadVideo('3193593212003331660');\n```\n\n#### oEmbed\n\n```javascript\nconst oembed = await ig.media.oembed('https://www.instagram.com/p/CxR7Bsejq5M/');\nconsole.log(oembed.title, '-', oembed.author_name);\n```\n\n#### Get User Who Posted a Media\n\n```javascript\nconst user = await ig.media.getUser('3193593212003331660');\n```\n\n---\n\n### Reels / Clips\n\nUpload and browse Reels through the REST API.\n\n#### Upload a Reel\n\n```javascript\nconst result = await ig.clip.upload({\n  videoBuffer: fs.readFileSync('./reel.mp4'),\n  caption: 'check this out',\n  coverImage: fs.readFileSync('./cover.jpg'), // optional\n  duration: 15,\n  width: 1080,\n  height: 1920,\n  audisMuted: false,\n});\nconsole.log('Reel PK:', result.media?.pk);\n```\n\n#### Configure a Video as Reel (after uploading separately)\n\n```javascript\nconst configured = await ig.clip.configure({\n  upload_id: uploadId,\n  caption: 'my reel',\n  duration: 15,\n  width: 1080,\n  height: 1920,\n});\n```\n\n#### Discover Reels / Connected Reels\n\n```javascript\n// the explore-style reels feed\nconst discover = await ig.clip.discoverReels(10);\ndiscover.items.forEach(reel => {\n  console.log(reel.media.code, '-', reel.media.caption?.text?.substring(0, 40));\n});\n\n// paginate\nconst more = await ig.clip.discoverReels(10, discover.paging_info?.max_id);\n\n// connected reels (similar reels after watching one)\nconst connected = await ig.clip.connectedReels(10);\n```\n\n#### Download a Reel\n\n```javascript\nconst reelBuffer = await ig.clip.download('3193593212003331660');\n\n// or from URL\nconst reelFromUrl = await ig.clip.downloadByUrl('https://instagram.cdnurl.com/...');\n```\n\n#### Get Music Info for Reels\n\n```javascript\nconst music = await ig.clip.musicInfo({ music_canonical_id: '12345' });\n```\n\n---\n\n### Stories\n\n#### Get Your Story Feed (Tray)\n\n```javascript\nconst tray = await ig.story.getFeed();\ntray.tray.forEach(reel => {\n  console.log(reel.user.username, '- stories:', reel.media_count);\n});\n```\n\n#### Get Someone's Stories\n\n```javascript\nconst stories = await ig.story.getUserStories('25025320');\nstories.reel?.items.forEach(item => {\n  console.log('Type:', item.media_type, 'Taken at:', item.taken_at);\n});\n```\n\n#### Upload a Photo Story\n\n```javascript\nconst result = await ig.story.upload({\n  file: fs.readFileSync('./story.jpg'),\n  caption: 'hello world', // optional\n});\nconsole.log('Story ID:', result.media?.pk);\n```\n\n#### Upload a Video Story\n\n```javascript\nconst result = await ig.story.uploadVideo({\n  file: fs.readFileSync('./story.mp4'),\n  duration: 10,\n  width: 1080,\n  height: 1920,\n});\n```\n\n#### Mark Stories as Seen\n\n```javascript\nawait ig.story.seen([\n  { id: 'media_id_1', taken_at: 1700000000, user: { pk: '25025320' } }\n]);\n```\n\n#### React to a Story\n\n```javascript\nawait ig.story.react({\n  mediaId: '3193593212003331660',\n  reelId: '25025320',\n  emoji: '🔥'\n});\n```\n\n---\n\n### Highlights\n\n#### Get User's Highlights\n\n```javascript\nconst highlights = await ig.highlights.getHighlightsTray('25025320');\nhighlights.tray.forEach(h => {\n  console.log(h.id, '-', h.title);\n});\n```\n\n#### Get a Specific Highlight\n\n```javascript\nconst highlight = await ig.highlights.getHighlight('highlight:12345678');\n```\n\n#### Create a Highlight\n\n```javascript\nawait ig.highlights.create('My Trip', ['story_id_1', 'story_id_2'], 'cover_media_id');\n```\n\n#### Edit a Highlight\n\n```javascript\nawait ig.highlights.edit('highlight_id', 'Updated Title', ['new_story_id']);\n```\n\n#### Add / Remove Stories from Highlight\n\n```javascript\nawait ig.highlights.addStories('highlight_id', ['story_id_3', 'story_id_4']);\nawait ig.highlights.removeStories('highlight_id', ['story_id_1']);\n```\n\n#### Update Highlight Cover\n\n```javascript\nawait ig.highlights.updateCover('highlight_id', 'cover_media_id');\n```\n\n#### Delete a Highlight\n\n```javascript\nawait ig.highlights.delete('highlight_id');\n```\n\n---\n\n### Upload & Configure Media\n\n#### Upload a Photo Post\n\n```javascript\nconst upload = await ig.upload.photo({\n  file: fs.readFileSync('./photo.jpg'),\n});\n\nconst post = await ig.upload.configurePhoto({\n  upload_id: upload.upload_id,\n  caption: 'sunset vibes',\n  usertags: {\n    in: [{ user_id: '12345', position: [0.5, 0.5] }]\n  }\n});\nconsole.log('Posted! PK:', post.media?.pk);\n```\n\n#### Upload a Video Post\n\n```javascript\nconst upload = await ig.upload.video({\n  file: fs.readFileSync('./video.mp4'),\n  duration: 30,\n  width: 1080,\n  height: 1920,\n});\n\nconst post = await ig.upload.configureVideo({\n  upload_id: upload.upload_id,\n  caption: 'check this clip',\n  duration: 30,\n  width: 1080,\n  height: 1920,\n});\n```\n\n#### Configure as Reel (Clips)\n\n```javascript\nconst reel = await ig.upload.configureToClips({\n  upload_id: upload.upload_id,\n  caption: 'my first reel',\n  duration: 15,\n  width: 1080,\n  height: 1920,\n});\n```\n\n#### Configure as Story\n\n```javascript\nconst story = await ig.upload.configureToStory({\n  upload_id: upload.upload_id,\n});\n```\n\n#### Upload a Carousel (Multiple Photos/Videos)\n\n```javascript\nconst carousel = await ig.feed.uploadCarousel({\n  caption: 'summer trip highlights',\n  children: [\n    { type: 'photo', file: fs.readFileSync('./pic1.jpg') },\n    { type: 'photo', file: fs.readFileSync('./pic2.jpg') },\n    { type: 'video', file: fs.readFileSync('./vid1.mp4'), duration: 10, width: 1080, height: 1080 },\n  ]\n});\n```\n\n---\n\n### Feed\n\n#### Home Timeline\n\n```javascript\nconst feed = await ig.timeline.getFeed();\nfeed.feed_items?.forEach(item => {\n  const media = item.media_or_ad;\n  if (media) console.log(media.user.username, '-', media.caption?.text?.substring(0, 40));\n});\n```\n\n#### Hashtag Feed\n\n```javascript\nconst tagFeed = await ig.feed.getTag('photography');\n```\n\n#### Location Feed\n\n```javascript\nconst locFeed = await ig.feed.getLocation('213385402');\n```\n\n#### Liked Posts\n\n```javascript\nconst liked = await ig.feed.getLiked();\n```\n\n#### Saved Posts\n\n```javascript\nconst saved = await ig.feed.getSaved();\n```\n\n#### Reels Tray (Stories of People You Follow)\n\n```javascript\nconst tray = await ig.feed.reelsTray();\n```\n\n#### Explore Feed\n\n```javascript\nconst explore = await ig.feed.getExploreFeed();\n```\n\n#### Reels Feed\n\n```javascript\nconst reels = await ig.feed.getReelsFeed();\nconst userReels = await ig.feed.getUserReelsFeed('25025320');\n```\n\n#### Reels Media (Bulk)\n\n```javascript\n// get stories for multiple users at once\nconst reelsMedia = await ig.feed.reelsMedia(['25025320', '12345678']);\n```\n\n---\n\n### Timeline (Reels)\n\n```javascript\n// get reels from your timeline\nconst reels = await ig.timeline.reels(10);\n\n// explore reels\nconst exploreReels = await ig.timeline.exploreReels(10);\n```\n\n---\n\n### Direct Messages (REST API)\n\nThe REST-based DM methods. These work without MQTT — they're regular HTTP requests.\n\n#### Get Inbox\n\n```javascript\nconst inbox = await ig.direct.getInbox();\ninbox.inbox.threads.forEach(t => {\n  console.log(t.thread_title || t.users[0]?.username, '- last:', t.last_permanent_item?.text);\n});\n\n// paginate\nconst page2 = await ig.direct.getInbox(inbox.inbox.oldest_cursor, 20);\n```\n\n#### Pending Inbox (Message Requests)\n\n```javascript\nconst pending = await ig.direct.getPendingInbox();\n```\n\n#### Get a Thread\n\n```javascript\nconst thread = await ig.direct.getThread(threadId);\nthread.thread.items.forEach(msg => {\n  console.log(msg.user_id, ':', msg.text || `[${msg.item_type}]`);\n});\n```\n\n#### Send Text via REST\n\nThere are multiple ways to send a text message via the REST API:\n\n```javascript\n// Method 1: By username (auto-resolves user ID and thread)\nawait ig.direct.send({ to: 'target_username', message: 'hey there!' });\n\n// Method 2: By user ID (skips username lookup)\nawait ig.direct.sendToUserId('25025320', 'hey there!');\n\n","readmeFilename":"README.md"}