{"_id":"@wasserstoff/mangi-tg-bot","_rev":"27-4202d12a262c088fc15fd1d06727bc95","name":"@wasserstoff/mangi-tg-bot","dist-tags":{"latest":"1.2.15"},"versions":{"1.0.0":{"name":"@wasserstoff/mangi-tg-bot","version":"1.0.0","keywords":[],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.0.0","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"}],"dist":{"shasum":"cb76a6ebd018e803d98d297714297e0201e3af33","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.0.0.tgz","fileCount":95,"integrity":"sha512-ZmJXxrd2imvm3c+yUm4lLUlPfyKXGhYzykGU/d5XmbXyglBXT8bSgGbDYZC/xoFJKMlOROeELFrwqtqPR570Gg==","signatures":[{"sig":"MEYCIQC+eDWyS7+jl7NlBPZ0d3L8Tdo3BWLF79LR/Ws7dlsr7wIhAKFJjz8wulCiI4Ywfe4ZylQmjDUMASpBAbCCi266AeiW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70786},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ef6f8558c6fa7dd2345abb257392f97614fbb11e","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},"_npmVersion":"10.2.4","description":"Its is telegram bot sdk","directories":{},"_nodeVersion":"21.5.0","dependencies":{"znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","pino-pretty":"^13.0.0","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.0.0_1746020971957_0.4087757527677982","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@wasserstoff/mangi-tg-bot","version":"1.0.1","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.0.1","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"}],"dist":{"shasum":"f5d1d7ea610773763a18245afb792b1c271caca8","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.0.1.tgz","fileCount":95,"integrity":"sha512-aoMJnNwmm6oSxUWS87K51PY200O4tCaJ7aExZNZJOfY5PSxl02FRtK0BO+Xnly2VmxVKGMI0KE62NMxUBz7C8w==","signatures":[{"sig":"MEQCIAWl76l6MzSye9TMrItChUA3hKXc+cUKDCiIyC7btBueAiA+In6Yu1DkvnvS2+0h583RQjmbYCWMYrth8eYI8ejVBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86876},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6c4b40c615c0ab2aab7e24d2720aee65e3de5d25","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.0","dependencies":{"znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.0.1_1746534827429_0.7832611621254315","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@wasserstoff/mangi-tg-bot","version":"1.0.2","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.0.2","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"dist":{"shasum":"04d69d7fd2b571be6dc0b32d635ec0694dd0fccf","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.0.2.tgz","fileCount":95,"integrity":"sha512-gihS2bxFoyYs/H0I84ydV3U/A9pxJ8hDrfakqN6CAcDV5PXgLCtSTksrjKKGalq2ecS1yS5riiaqupPvLs5fcg==","signatures":[{"sig":"MEQCIBpzm/4ojvr6HpY6QAvalMIVEErw9d3Ikteg3GGk47zUAiB9uQY8j9r1fiOtdnnXABfMXw29kk4QXBg+7PofIwWJ2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86931},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6c4b40c615c0ab2aab7e24d2720aee65e3de5d25","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.0","dependencies":{"znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.0.2_1746535639326_0.7049345273713934","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@wasserstoff/mangi-tg-bot","version":"1.0.3","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.0.3","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"20b651256843877b2c9568dbee7ddbbd2abeeeac","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.0.3.tgz","fileCount":95,"integrity":"sha512-2u+iLZKA7NY9SpmvdUBrWzlvA/iCYyy3B5B7kikDEeXqXmX2CiJJFVkFCtT34KYk1m/0FS51enaVwbb1zn2gVQ==","signatures":[{"sig":"MEYCIQDPp7CBcFcL0mK2npao9WaYEw/9UUrPJPv+uFWJsosebgIhANFK3EUU5D2jP9gASENzxIC2PYRsoc6DGZNO2YCBJ6ZT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87808},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"36813cdbf184a9dec85db3f8b3de8dc66e9b8742","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"21.5.0","dependencies":{"znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.0.3_1746541272390_0.8473724669417699","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@wasserstoff/mangi-tg-bot","version":"1.0.4","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.0.4","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"648791ecd81f2c936a55fe398781adf52bbaa84f","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.0.4.tgz","fileCount":99,"integrity":"sha512-ZArPLnzPu9Yw0rI6EyOfc36s12Tsl00hPDP5dADbyfTx0+gyXuAyIOvmLWrCDrcmxU6HnPk9YFE50WWINOrpMA==","signatures":[{"sig":"MEYCIQCbep+b3tF8YApuac4Q75yrUZzG6z1Xmj4ExX3yXSqyAAIhAL7/LhkS4tZU83uhTDhuQLqygSovSjlGfz8jim18ivg8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95468},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a16d76ba2266450aed9088b04e467e5f75fbc63b","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.0","dependencies":{"znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.0.4_1746608209909_0.10301333030617288","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@wasserstoff/mangi-tg-bot","version":"1.1.0","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.1.0","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"7a43a342a580b3d85ab926b49e87cbda1dc49fd3","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.1.0.tgz","fileCount":111,"integrity":"sha512-WFWGbIHPb9lW7HXleWltwEdTdhzQs3GZ4ubbf5vBRZ+heeqoS9leRsx7rbcf7D2ldp1ixBQ3FuuPZpDFRmV0+A==","signatures":[{"sig":"MEYCIQDN0mSH+aB+XhSNhLJGvS0uwSIyLoVzK7rpin5RyNhM7gIhAJZY37cIJsRGwmZaSn5JYTdn7nbvT7QjVZeVkUtyFxOX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110116},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"085ea6cb99decfc35fd2329b6862c901037109b2","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.0","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.1.0_1746797735146_0.975232022190939","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@wasserstoff/mangi-tg-bot","version":"1.1.1","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.1.1","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"40eb091c800ae3e4eca526915f035f2527ebbd84","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.1.1.tgz","fileCount":107,"integrity":"sha512-phopYHo6ZVUflaHNtxqBdnngZ42Ru6aCIn5okw6MYCZ6W3EgXvVNsu93X+7OgAyCba/yo3d/R9QIOJ4wJrFXng==","signatures":[{"sig":"MEYCIQDE8++vZJE7B2mNkw3MLQQ8IIRjng7iNlGUUUat5pRfOwIhAPYfeManrKA2xosZYKKYCPKBBs4keDSLppbzhH98u/if","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107913},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a0af88015dee16762a0e9b68fefa18371d60b346","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"21.5.0","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.1.1_1747046523389_0.7712680418492515","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.0","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.0","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"2d0e2014e3a94900212bd8e47823586074190135","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.0.tgz","fileCount":111,"integrity":"sha512-EJGi94bdckOy3SfUeHRYRsm03qzaePplJvc9nb2WeBKVfWg18vqcgqD1Atvv5i6/4xi41Oxue8yj5G6LVrMSgw==","signatures":[{"sig":"MEYCIQCbBBlPQ0xJS4W50+yRDkrd31b20HW6cW/xZXXaQ6AYGQIhAPz9qo1jyMFj0n7rJEjH1nhxy4Q9CG1wc27b2UIdEQaE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126680},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c5364f25cae6d647dd6ca94c7040784a75deff5e","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.0_1747664313320_0.5609933966950658","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.1","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.1","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"4fce1ba02956662e5d22f6a9883fe72b2e036267","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.1.tgz","fileCount":115,"integrity":"sha512-HTmkE08jeoII2yEQs+sfa/B4/0/VVNNMcNcFPWma/GJHcHpEEDsqZhPZloaWvPDpfsKogVppEuMfgPMt0oESQg==","signatures":[{"sig":"MEYCIQCV4tIgpYjrxoWBBSQZ961mZxz9/Dm5bAR8Bfv9BSUicwIhAIrhtDP4U+RJG8Ltc0z23ceks90jBVB1XMZMj/8/MlfJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143721},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d4df1e87319ad3d715192f5eb11fcf87e61d247f","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.1_1747728767839_0.6271680365233934","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.2","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.2","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"1444ba83030daea224ef548e5677a847551ea9ee","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.2.tgz","fileCount":115,"integrity":"sha512-jC0eMhNCrH4Aa+zu2Tv3zeIEBhBfwO2RX3qtYgsvriwmYYnuYYuNgF/NXiCEV1b7d20zA9VNSG71ceE9xn+yFg==","signatures":[{"sig":"MEQCIBv/XaXwKdZ2u8BlYZjSRckTTKDScyx6U9QAwIXFT4zKAiAj9H74K8tQbQhLZxJ9cbRWGqLRKEKKrlUrTSgVXisWnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144223},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a825798729933a7b1dc76296105043ef28f13c69","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.2_1748148419692_0.7246932506297363","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.3","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.3","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"56065cb5d5609723e469c346790880ba6ba4d16e","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.3.tgz","fileCount":113,"integrity":"sha512-aZwb9ixEKQ30a77tR5ZeEFusmC/wCu7HK+lu3JH/WEmlDeiDO5YUDY50E+gsTMRToETEFiTeB6dmiHtlBPq4YQ==","signatures":[{"sig":"MEUCIQCnybYnxhamq1zxQy73DHuUDpzn5LZ1M7y9DmTHPmL/6gIgKSi/VWz/lVauanXE5Wrffez+lCOOYLR79gDOD+Q7VWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142235},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b0a4e10fb9c4c9c6ef017d1014919c3ec639881e","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.3_1748315450488_0.3443429655286543","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.4","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.4","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"b9996aacf76fd71a905c07c41f8f26ebe01c17ac","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.4.tgz","fileCount":113,"integrity":"sha512-Don5jjJVl8uDmI9Ir9AEzpnJb+WRMayek/z40P9SivK9QvXo5R7MUFFiEOxMNn0dkgfZU//F7tmG2RZTAVlqlQ==","signatures":[{"sig":"MEYCIQDoa8DKluXVLhPbNJY2M2pTHQIVqpVpH/4V+O7Y4Yd98wIhAK/iiAx9sAJ6Hqv6diEdnr6BZlxw/jBHI1YfixU5MuJz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142366},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e335dff309b4d7477f9f86a1def196efab8332aa","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.4_1748611456315_0.4239880905079785","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.5","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.5","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"74e6184a3da94d4b1a57a677e691e4507ba013f1","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.5.tgz","fileCount":113,"integrity":"sha512-KrA51RR33NFNi6eS+r/pgMJPgNJTUbFMe3RhiAN7qGai96cYEjIdGg6mHheajxrhztiUTOAFtkSiETibT3mjNA==","signatures":[{"sig":"MEUCIBQ5rfZLlk0CWykYUn9c2w0FC1nHYPBmIldKB/L0MrRQAiEAw5N+44iIfR+/4b7zW4foacq8xQxQBtYARIbQsuChLFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142831},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"050e0281fccded4c1bad630007c46e283e39c9b5","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.5_1748646281808_0.49409299906531756","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.6","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","mongodb"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.6","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"db2272cc10e0f7e193a16675e8434350ecbf107b","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.6.tgz","fileCount":113,"integrity":"sha512-6dGrULdftI8sLsq42mfY8qrl02ZQIUeOAhFWhwQj8Ip/uZtx098iM+8l2v8qujrPsDqcAFB8KTnl1vw39mxoUA==","signatures":[{"sig":"MEQCIH38ZC/1OWr7EdAD6wTp+oBigXi5yn9iuBxw6oXvYKDPAiA2amxkPx8nKBn4Xa3hbpXSjPuSKUhhvD2QriMIcFUlPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150982},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"82d6eaa553c9d683d454a5440551033c06636b78","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"tdl":"^8.0.2","znv":"^0.5.0","zod":"^3.24.2","cors":"^2.8.5","pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","express":"^5.1.0","ioredis":"^5.6.1","mongodb":"^6.15.0","mongoose":"^8.13.2","telegraf":"^4.16.3","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.14.1","@types/express":"^5.0.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.6_1748702665678_0.8464817979338928","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.7","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.7","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"171c933fcad5e91273e208b4f89f9bfabe4dfc64","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.7.tgz","fileCount":110,"integrity":"sha512-eLtrwqr5b47iQiOPgwPSVp2mPWWessMPCc794A3xZPCZ9l/Qui6EeD0LHGgIqOZex/v8AnXc1o8/R3kH6E0FcA==","signatures":[{"sig":"MEQCIBHBkgiQ4IWMxUjcqdqcR7t5Vs+3+J/6JKEXfBHOCtp0AiAyDeDPu2KhgzORSkbhOyGAOqMWvUkpxgrTs31MiIykNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149072},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d8853570451d7e1b70ff9194136700a6536c706d","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.15.1","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","@types/jsonwebtoken":"^9.0.9","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.7_1748708095643_0.8028629651545058","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.8","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.8","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"97564cc4d5fe2574be48846920a9970712553eef","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.8.tgz","fileCount":110,"integrity":"sha512-89wCwZ3QkeYumvThT/rAoXV6g/D0aLyVNySoPvGQPQ/VnK0qwK7DcB3BpE4SOI/mgdj2hjmE5VwdomseiCly+Q==","signatures":[{"sig":"MEYCIQDRmyJByc87MjkuBAmBxQK9knWVvxvHgnGjctmn3fEtzQIhAPODDulw8+I0Gm6v8eyZNCaPtxhQuuUPrM1O9Kh/VB6M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158378},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c5db246949a74c74f777edd5a03066cacc0ee117","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.8_1748933968913_0.7901073798965146","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.9","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.9","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"cb4088c14153badb567571cf08aa0312bc9c8988","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.9.tgz","fileCount":110,"integrity":"sha512-tARItdoeeeWiBvqHu2IGDXW5KEXVbZj0e1fUmiEyvAvH4CiYWXwzd20hJ0o7026LZQHPa5v6i50tKtlr7oW1sg==","signatures":[{"sig":"MEUCIBFL9+VvXqP9EmbInn/O8OKngmSgck2q1SjxR4UvqeYbAiEAgRaFN3k1ufTEp+LW5gwWN0D1Bf4mcjWlTkLM5DaCoRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161507},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5fb5a7ed926f760b53754724fb857c4933fe6635","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.9_1749021582818_0.9489782534161493","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.10","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.10","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"f84e8a678be3dec3bd7f0160c206ea8dbfc9e108","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.10.tgz","fileCount":110,"integrity":"sha512-wEy95+4vHDs1zoZAklDkqpNLJVQHsf0uT9N+RYGrtAmWJl14wBh/PMsMFUALYWil/RhhGC/JBzSS5qz0Y/bRsA==","signatures":[{"sig":"MEYCIQCnci15KNrfAIy8bznBW6tC7pegPR+r6zIjSMARK+ncvAIhAMQrf9MUh3Wv31eaCkykQf9BftjlJ18YnOAlj1/HkCKH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161972},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"eee9ea4cf962665e0c33c74acbca3501a9218dc5","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.10_1749038787774_0.6439663723545914","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.11","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.11","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"8bf38ab24c0ecd75087acffa04ce5cf83af8e79b","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.11.tgz","fileCount":110,"integrity":"sha512-Q1wFQvPcCjAYErvLetn6NOjFb0Zet5RsJ1s1i7LoR3DGX9dL8KjzzcIEIS4vg3H+q0P31r6GDZnvzrR/KviktQ==","signatures":[{"sig":"MEUCIQDWGaT5uhvPsyC53cGCifw6dxgdaXIV+xoukfdIG1wgEgIgexAXt4kubRfkuWZSFMDUBxhs7HcRo6ZvYHztYkZq4aY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161908},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4c8c50a0441d9ea5b031a31de9c4342c3ba6c1bd","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.11_1749041608357_0.2607112191008609","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.12","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.12","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot#readme","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"3cda92d09fb53c9e5509477af774a1f3e4100d97","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.12.tgz","fileCount":110,"integrity":"sha512-ERBW8bwodAyPoBKgcsCOHYxvuFNpzYWfQT1VnPIJWWSH2INP9lQ0QAqVERgemecqe3jAEmFSUOlTQZ3dVkhJvg==","signatures":[{"sig":"MEYCIQCn2f35AbaRn8Cg2/OqQnB86tYt8kaXJgukUMJM4oHgUgIhANe8REa1jaBzFCbgLsPBUpIb1sunl1FO+r5yS8E1qelJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165892},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"3a38166e8ec1c2856e18042c29a320fde3e4c1a7","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.12_1749195616447_0.9908554155385847","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.13","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.13","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"}],"homepage":"https://mangi-bot-docs.vercel.app","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"87b723c10c8cf155b9ea4dbb21993fda3d3af956","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.13.tgz","fileCount":110,"integrity":"sha512-c3NjXgeYmKixIb6ljrBy70Tw2cqCA/6QlPh+d6O+dqdO+kFTbW6buAiQg+NsfSwVjdpJpDC68PVUF0n4D8VNbg==","signatures":[{"sig":"MEYCIQC2VZGjkEQxama6QnwM1lKSwKeRhdNcSbjNn7SxDKNiBgIhALT3BLF5kY7/8IduNftsY7WlYgmOcpkotJRLP8rHgHFB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165857},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"aebc71e3367f374fd588d061acdf2147688a4124","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.13_1749991907833_0.3082079430345128","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.14","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.14","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"},{"name":"ayushchaturvedi01","email":"ayushdrew01@gmail.com"}],"homepage":"https://mangi-bot-docs.vercel.app","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"a6d00442013ebb6c2d0b3b6453d5d06ecd9482f0","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.14.tgz","fileCount":110,"integrity":"sha512-qbxHlw5SLnH6y+wxdV91Nz8pWEEzUANyFGw5EtAFE0ksHzUd3LhxlSiw/1J3IXfircK3HfTVm+xhtmDMBXkMKA==","signatures":[{"sig":"MEYCIQDuPmNaddj09vcniIFXqdBZbWgoX/OUsSLesvhNKUoAqwIhAIDfYCcpPXL4Pi88vDfUEZdYk3JgfX1q9zfSPt74DRvA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175600},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cab4dd6e6d48cef242e946dd38a3cd3cb8d646bd","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","actor":{"name":"wstf_amanupadhyay1609","type":"user","email":"aman.upadhyay@thewasserstoff.com"},"email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.16.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.14_1750912706957_0.4422998464297707","host":"s3://npm-registry-packages-npm-production"}},"1.2.15":{"name":"@wasserstoff/mangi-tg-bot","version":"1.2.15","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"author":{"name":"Wasserstoff"},"license":"ISC","_id":"@wasserstoff/mangi-tg-bot@1.2.15","maintainers":[{"name":"wasserstoff-india","email":"apps@thewasserstoff.com"},{"name":"soneshwar","email":"soneshwarsinghblog@gmail.com"},{"name":"amitpatel-wstf","email":"amit.patel@thewasserstoff.com"},{"name":"ahmadkamran","email":"ahmad.kamran@thewasserstoff.com"},{"name":"adityashah","email":"aditya.kumar@thewasserstoff.com"},{"name":"wstf_amanupadhyay1609","email":"aman.upadhyay@thewasserstoff.com"},{"name":"ankurdahiyawstf","email":"ankur.dahiya@thewasserstoff.com"},{"name":"ayushchaturvedi01","email":"ayushdrew01@gmail.com"}],"homepage":"https://mangi-bot-docs.vercel.app","bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"dist":{"shasum":"6de27a2d1f2e1d3c5d732d1953e3be6771804ef3","tarball":"https://registry.npmjs.org/@wasserstoff/mangi-tg-bot/-/mangi-tg-bot-1.2.15.tgz","fileCount":110,"integrity":"sha512-QLs4PscfpISY4Wh2ZvM99UKZuGu4JslgOrNQ4VokINrxNqvDkRtUIdGl4HKjIqy4xoSQuXke8e1s7cRnRmhboQ==","signatures":[{"sig":"MEUCIQDt/DAmVcNwET+60PKMVt/ggR5Pej+v+ZvnpZF2v1mTxwIgeXAKMY+k5Ngd3OBLWFIpi4miBCP18dr4dAUMqQeJg+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179843},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fa4a91a7fa46b98b50a67fbfbbe088f355ad1ae3","scripts":{"dev":"nodemon src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"wstf_amanupadhyay1609","actor":{"name":"wstf_amanupadhyay1609","type":"user","email":"aman.upadhyay@thewasserstoff.com"},"email":"aman.upadhyay@thewasserstoff.com"},"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","directories":{},"_nodeVersion":"22.17.0","dependencies":{"pino":"^9.6.0","input":"^1.0.1","dotenv":"^16.5.0","grammy":"^1.36.0","ioredis":"^5.6.1","telegram":"^2.26.22","pino-pretty":"^13.0.0","jsonwebtoken":"^9.0.2","node-biginteger":"^0.0.10","grammy-middlewares":"^1.0.11","source-map-support":"^0.5.21","node-graceful-shutdown":"^1.1.5","@grammyjs/storage-redis":"^2.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.1","@types/ioredis":"^4.28.10","@types/jsonwebtoken":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/mangi-tg-bot_1.2.15_1751962362892_0.6865488311746055","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-04-30T13:49:31.822Z","modified":"2025-11-23T06:55:25.373Z","1.0.0":"2025-04-30T13:49:32.137Z","1.0.1":"2025-05-06T12:33:47.607Z","1.0.2":"2025-05-06T12:47:19.515Z","1.0.3":"2025-05-06T14:21:12.609Z","1.0.4":"2025-05-07T08:56:50.072Z","1.1.0":"2025-05-09T13:35:35.341Z","1.1.1":"2025-05-12T10:42:03.552Z","1.2.0":"2025-05-19T14:18:33.563Z","1.2.1":"2025-05-20T08:12:48.062Z","1.2.2":"2025-05-25T04:46:59.911Z","1.2.3":"2025-05-27T03:10:50.699Z","1.2.4":"2025-05-30T13:24:16.542Z","1.2.5":"2025-05-30T23:04:42.008Z","1.2.6":"2025-05-31T14:44:25.879Z","1.2.7":"2025-05-31T16:14:55.842Z","1.2.8":"2025-06-03T06:59:29.150Z","1.2.9":"2025-06-04T07:19:43.012Z","1.2.10":"2025-06-04T12:06:28.008Z","1.2.11":"2025-06-04T12:53:28.560Z","1.2.12":"2025-06-06T07:40:16.660Z","1.2.13":"2025-06-15T12:51:48.045Z","1.2.14":"2025-06-26T04:38:27.146Z","1.2.15":"2025-07-08T08:12:43.088Z"},"bugs":{"url":"https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot/issues"},"author":{"name":"Wasserstoff"},"license":"ISC","homepage":"https://mangi-bot-docs.vercel.app","keywords":["telegram","bot","sdk","authentication","jwt","grammy","telegram-bot","telegram-api","redis","logging"],"repository":{"url":"git+https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot.git","type":"git"},"description":"A powerful Telegram Bot SDK with built-in authentication, session management, and database integration","maintainers":[{"email":"sushant@thewasserstoff.com","name":"strangecoder"},{"email":"apps@thewasserstoff.com","name":"wasserstoff-india"},{"email":"soneshwarsinghblog@gmail.com","name":"soneshwar"},{"email":"amit.patel@thewasserstoff.com","name":"amitpatel-wstf"},{"email":"ahmad.kamran@thewasserstoff.com","name":"ahmadkamran"},{"email":"aditya.kumar@thewasserstoff.com","name":"adityashah"},{"email":"aman.upadhyay@thewasserstoff.com","name":"wstf_amanupadhyay1609"},{"email":"ankur.dahiya@thewasserstoff.com","name":"ankurdahiyawstf"},{"email":"ayushdrew01@gmail.com","name":"ayushchaturvedi01"}],"readme":"# @wasserstoff/mangi-tg-bot SDK\n\nA powerful, flexible, and modern Telegram Bot SDK built with TypeScript. This SDK provides:\n- **JWT authentication** (fully or partially enforced)\n- **Admin approval/authentication** (for public or semi-public bots)\n- **Full session management** (CRUD helpers for custom variables)\n- **Easy integration with Redis for session and approval state**\n- **Modern, type-safe API and middleware support**\n- **Professional Logging System** (development and production-ready)\n- ⚡ **Robust Callback Query Handling**: \n  - Automatic callback query timeout prevention\n  - Built-in timeout protection for long-running operations\n  - Graceful error handling that prevents bot crashes\n  - Support for image generation and other time-consuming tasks\n\n## 🚀 Features\n\n- 🛡️ **JWT Authentication**: Secure your bot with JWT tokens. Enforce authentication on all routes (`fully`) or only on selected routes (`partially`).\n- 👥 **Admin Approval Layer**: Add an extra layer of admin approval for new users. Great for public or semi-public bots, clubs, or organizations.\n- 🗃️ **Session CRUD Helpers**: Easily manage custom session variables for each user, with built-in helpers for set/get/update/delete.\n- 💾 **Redis-backed Session & Approval**: All session and approval state is stored in Redis for performance and reliability.\n- 📝 **Type-safe, Modern API**: Built with TypeScript, with clear types and extensibility.\n- 📝 **Professional Logging System**:\n  - Colorized, detailed logs in development\n  - Optimized, minimal logs in production\n  - Automatic context logging\n  - Multiple log levels (debug, info, warn, error)\n  - Timestamp and request tracking\n  - Built with Pino for performance\n\n## 📋 Prerequisites\n\n- Node.js (v14 or higher)\n- Redis\n- Telegram Bot Token (from [@BotFather](https://t.me/BotFather))\n\n## 🛠️ Installation\n\n```bash\nnpm install @wasserstoff/mangi-tg-bot\n```\n\n## 📖 Usage Examples\n\n### 1. Basic Bot with JWT Authentication\n\n```typescript\nimport { Bot, AppConfig, CustomContext, logger } from '@wasserstoff/mangi-tg-bot';\n\nconst configWithJwtAuth: AppConfig = {\n  botToken: 'YOUR_BOT_TOKEN',\n  botMode: 'polling',\n  botAllowedUpdates: ['message', 'callback_query'],\n  redisUrl: 'YOUR_REDIS_URL',\n  isDev: true,\n  useAuth: 'fully', // All routes require JWT authentication\n  jwtSecret: 'your_jwt_secret_here',\n};\n\nasync function createJwtAuthBot() {\n  logger.info('Starting bot with JWT authentication:', configWithJwtAuth);\n  const bot = new Bot(configWithJwtAuth);\n  await bot.initialize();\n  const botManager = bot.getBotManager();\n\n  botManager.handleCommand('start', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      'Welcome! You are authenticated with JWT.'\n    );\n  });\n\n  botManager.handleCommand('whoami', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      `Your chat ID: <code>${ctx.from.id}</code>`,\n      { parse_mode: 'HTML' }\n    );\n  });\n}\n\ncreateJwtAuthBot().catch(console.error);\n```\n\n### 2. Bot with Admin Authentication/Approval\n\n```typescript\nimport { Bot, AppConfig, CustomContext, logger } from '@wasserstoff/mangi-tg-bot';\n\nconst configWithAdminAuth: AppConfig = {\n  botToken: 'YOUR_BOT_TOKEN',\n  botMode: 'polling',\n  botAllowedUpdates: ['message', 'callback_query'],\n  redisUrl: 'YOUR_REDIS_URL',\n  isDev: true,\n  useAuth: 'none',\n  adminAuthentication: true, // Enable admin approval system\n  adminChatIds: [123456789, 987654321], // Replace with your admin Telegram chat IDs\n};\n\nasync function createAdminAuthBot() {\n  logger.info('Starting bot with admin authentication:', configWithAdminAuth);\n  const bot = new Bot(configWithAdminAuth);\n  await bot.initialize();\n  const botManager = bot.getBotManager();\n\n  botManager.handleCommand('start', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      'Welcome! If you see this, you are approved by an admin.'\n    );\n  });\n\n  botManager.handleCommand('whoami', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      `Your chat ID: <code>${ctx.from.id}</code>`,\n      { parse_mode: 'HTML' }\n    );\n  });\n\n  botManager.handleCommand('secret', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      'This is a secret command only for approved users!'\n    );\n  });\n}\n\ncreateAdminAuthBot().catch(console.error);\n```\n\n### 3. Bot with Session CRUD Operations\n\n```typescript\nimport { Bot, AppConfig, CustomContext, logger } from '@wasserstoff/mangi-tg-bot';\n\nconst configWithSessionCrud: AppConfig = {\n  botToken: 'YOUR_BOT_TOKEN',\n  botMode: 'polling',\n  botAllowedUpdates: ['message', 'callback_query'],\n  redisUrl: 'YOUR_REDIS_URL',\n  isDev: true,\n  useAuth: 'none',\n};\n\nasync function createSessionCrudBot() {\n  logger.info('Starting bot with session CRUD example:', configWithSessionCrud);\n  const bot = new Bot(configWithSessionCrud);\n  await bot.initialize();\n  const botManager = bot.getBotManager();\n\n  botManager.handleCommand('setvar', async (ctx: CustomContext) => {\n    ctx.session.setCustom('foo', 'bar');\n    const foo = ctx.session.getCustom('foo');\n    ctx.session.updateCustom({ hello: 'world', count: 1 });\n    ctx.session.deleteCustom('count');\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      `Session custom variable 'foo' set to '${foo}'. Updated and deleted 'count'.`\n    );\n  });\n\n  botManager.handleCommand('getvar', async (ctx: CustomContext) => {\n    const foo = ctx.session.getCustom('foo');\n    await ctx.api.sendMessage(ctx.chat.id, `Current value of 'foo': ${foo}`);\n  });\n}\n\ncreateSessionCrudBot().catch(console.error);\n```\n\n### 4. Combined Example: JWT Auth + Admin Auth + Session CRUD\n\n```typescript\nimport { Bot, AppConfig, CustomContext, logger } from '@wasserstoff/mangi-tg-bot';\n\nconst configCombined: AppConfig = {\n  botToken: 'YOUR_BOT_TOKEN',\n  botMode: 'polling',\n  botAllowedUpdates: ['message', 'callback_query'],\n  redisUrl: 'YOUR_REDIS_URL',\n  isDev: true,\n  useAuth: 'fully', // JWT auth required for all routes\n  jwtSecret: 'your_jwt_secret_here',\n  adminAuthentication: true, // Enable admin approval system\n  adminChatIds: [123456789], // Replace with your admin Telegram chat IDs\n};\n\nasync function createCombinedBot() {\n  logger.info(\n    'Starting combined bot with JWT, admin auth, and session CRUD:',\n    configCombined\n  );\n  const bot = new Bot(configCombined);\n  await bot.initialize();\n  const botManager = bot.getBotManager();\n\n  // Set up command menu\n  botManager.setMyCommands([\n    { command: 'start', description: 'Start the bot' },\n    { command: 'whoami', description: 'Get your chat ID' },\n    { command: 'setvar', description: 'Set session variables' },\n  ]);\n\n  // Only accessible if JWT is valid AND user is approved by admin\n  botManager.handleCommand('start', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      'Welcome! You are authenticated and approved by an admin.'\n    );\n  });\n\n  // Session CRUD helpers\n  botManager.handleCommand('setvar', async (ctx: CustomContext) => {\n    ctx.session.setCustom('foo', 'bar');\n    const foo = ctx.session.getCustom('foo');\n    ctx.session.updateCustom({ hello: 'world', count: 1 });\n    ctx.session.deleteCustom('count');\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      `Session custom variable 'foo' set to '${foo}'. Updated and deleted 'count'.`\n    );\n  });\n\n  botManager.handleCommand('getvar', async (ctx: CustomContext) => {\n    const foo = ctx.session.getCustom('foo');\n    await ctx.api.sendMessage(ctx.chat.id, `Current value of 'foo': ${foo}`);\n  });\n\n  // Show user their chat ID (useful for admin setup)\n  botManager.handleCommand('whoami', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      `Your chat ID: <code>${ctx.from.id}</code>`,\n      { parse_mode: 'HTML' }\n    );\n  });\n\n  // Example: Only approved users with valid JWT can access this command\n  botManager.handleCommand('secret', async (ctx: CustomContext) => {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      'This is a secret command only for authenticated and approved users!'\n    );\n  });\n}\n\ncreateCombinedBot().catch(console.error);\n```\n\n## 🔧 Callback Query Handling & Long-Running Operations\n\nThe SDK now includes robust handling for callback queries and long-running operations. Here are the key improvements:\n\n### ✅ Automatic Timeout Prevention\n\nCallback queries are automatically answered immediately when received, preventing Telegram's 30-second timeout:\n\n```typescript\nbotManager.handleCallback((ctx) => ctx.callbackQuery.data === \"generate_image\", async (ctx: CustomContext) => {\n  try {\n    // Send a \"processing\" message first\n    const processingMsg = await ctx.api.sendMessage(\n      ctx.chat.id,\n      \"🔄 Generating your image... Please wait.\"\n    );\n\n    // Your long-running operation (e.g., image generation API call)\n    const imageUrl = await generateImageFromAPI(prompt);\n    \n    // Send the result\n    await ctx.api.sendPhoto(ctx.chat.id, imageUrl, {\n      caption: \"Here's your generated image! 🎨\"\n    });\n\n    // Clean up processing message\n    await ctx.api.deleteMessage(ctx.chat.id, processingMsg.message_id);\n  } catch (error) {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      \"❌ Sorry, there was an error. Please try again.\"\n    );\n  }\n});\n```\n\n### ⏱️ Built-in Timeout Protection\n\nAll handlers have built-in timeout protection:\n- **Callback queries**: 25 seconds\n- **Commands**: 30 seconds  \n- **Messages**: 30 seconds\n\n### 🛡️ Error Handling\n\nThe SDK includes comprehensive error handling that prevents bot crashes:\n\n```typescript\n// Errors are automatically caught and logged\n// Users receive appropriate error messages\n// The bot continues running even if individual operations fail\n```\n\n### 📋 Best Practices for Long-Running Operations\n\n1. **Always answer callback queries immediately** (handled automatically by the SDK)\n2. **Send a processing message** to keep users informed\n3. **Use try-catch blocks** for error handling\n4. **Clean up temporary messages** after completion\n5. **Provide retry options** when operations fail\n\n### 🎨 Example: Image Generation Bot\n\n```typescript\nbotManager.handleMessage((ctx) => ctx.message.text === \"generate\", async (ctx: CustomContext) => {\n  await ctx.api.sendMessage(\n    ctx.chat.id,\n    \"🎨 Image Generation Demo\\n\\nClick the button below to generate an image:\",\n    {\n      reply_markup: {\n        inline_keyboard: [[{ text: \"🖼️ Generate Image\", callback_data: \"generate_image\" }]]\n      }\n    }\n  );\n});\n\nbotManager.handleCallback((ctx) => ctx.callbackQuery.data === \"generate_image\", async (ctx: CustomContext) => {\n  try {\n    // Send processing message\n    const processingMsg = await ctx.api.sendMessage(\n      ctx.chat.id,\n      \"🔄 Generating your image... Please wait.\"\n    );\n\n    // Simulate long-running operation\n    await new Promise(resolve => setTimeout(resolve, 5000));\n\n    // Send result\n    await ctx.api.sendPhoto(\n      ctx.chat.id,\n      \"https://via.placeholder.com/400x300/FF0000/FFFFFF?text=Generated+Image\",\n      {\n        caption: \"Here's your generated image! 🎨\",\n        reply_markup: {\n          inline_keyboard: [[\n            { text: \"Generate Another\", callback_data: \"generate_image\" },\n            { text: \"Done\", callback_data: \"done\" }\n          ]]\n        }\n      }\n    );\n\n    // Clean up\n    await ctx.api.deleteMessage(ctx.chat.id, processingMsg.message_id);\n  } catch (error) {\n    await ctx.api.sendMessage(\n      ctx.chat.id,\n      \"❌ Sorry, there was an error generating your image. Please try again.\",\n      {\n        reply_markup: {\n          inline_keyboard: [[{ text: \"Try Again\", callback_data: \"generate_image\" }]]\n        }\n      }\n    );\n  }\n});\n```\n\n---\n\n## 🗃️ Session Management (CRUD Helpers)\n\nThe SDK provides easy CRUD helpers for managing session variables in `ctx.session.custom`.\n\n### **Session CRUD API**\n\n- `ctx.session.setCustom(key, value)` — Set a variable in `session.custom`\n- `ctx.session.getCustom(key)` — Get a variable from `session.custom`\n- `ctx.session.updateCustom({ ... })` — Update multiple variables in `session.custom`\n- `ctx.session.deleteCustom(key)` — Delete a variable from `session.custom`\n- `ctx.session.save(callback)` — Persist the session to Redis immediately (optional, usually auto-saved)\n\n#### **Example Usage in a Command Handler**\n\n```typescript\nbotManager.handleCommand('setvar', async (ctx: CustomContext) => {\n  // Set a simple variable\n  ctx.session.setCustom('foo', 'bar');\n  // Set a nested variable\n  ctx.session.setCustom('profile.name', 'Alice');\n  // Get a variable\n  const foo = ctx.session.getCustom('foo');\n  const name = ctx.session.getCustom('profile.name');\n  // Update multiple variables (including nested)\n  ctx.session.updateCustom({ 'hello': 'world', 'profile.age': 30 });\n  // Delete a variable\n  ctx.session.deleteCustom('profile.name');\n  // Save session if available (optional)\n  if (typeof ctx.session.save === 'function') {\n    ctx.session.save(() => {});\n  }\n  await ctx.reply(`Session custom variable 'foo' set to '${foo}', name: '${name}'. Updated and deleted 'profile.name'.`);\n});\n```\n\n---\n## 📝 Command Menu Management\n\nThe SDK provides a convenient way to set up and manage your bot's command menu using the `setMyCommands` method. This allows you to define a list of commands that will appear in the bot's menu interface.\n\n### **Setting Up Command Menu**\n\n```typescript\nbotManager.setMyCommands([\n  { command: 'start', description: 'Start the bot' },\n  { command: 'help', description: 'Show help information' },\n  { command: 'settings', description: 'Configure bot settings' }\n]);\n```\n\nThe command menu will be displayed to users when they open the bot's chat interface, making it easier for them to discover and use available commands.\n\n---\n\n## 🔍 Professional Logging System\n\nThe SDK includes a professional logging system built with Pino that automatically adapts to your environment:\n\n- In development mode (`isDev: true`), you get detailed, colorized logs\n- In production mode (`isDev: false`), logs are minimized to essential information\n\n### **Logger Features**\n\n- 🎨 **Colorized Output**: Development logs are colorized for better readability\n- ⏰ **Timestamp Information**: Each log includes precise timestamp\n- 🔍 **Debug Mode**: Extensive debugging information in development\n- 🎯 **Production Ready**: Optimized, minimal logging in production\n- 📊 **Log Levels**: Supports multiple log levels (debug, info, warn, error)\n\n### **Using the Logger**\n\n```typescript\nimport { createSdkLogger } from '@wasserstoff/mangi-tg-bot';\n\n// Create a logger instance\nconst logger = createSdkLogger(config.isDev);\n\n// Usage examples\nlogger.info('Bot initialized successfully');\nlogger.debug('Processing update:', update);\nlogger.warn('Rate limit approaching');\nlogger.error('Connection failed:', error);\n```\n\n### **Automatic Context Logging**\n\nThe SDK automatically includes logging in the bot context:\n\n```typescript\nbotManager.handleCommand('example', async (ctx: CustomContext) => {\n  // Logs are automatically controlled by isDev setting\n  ctx.logger.info('Processing example command');\n  ctx.logger.debug('Session state:', ctx.session);\n  \n  await ctx.reply('Command processed!');\n});\n```\n\n### **Production vs Development Logging**\n\n- **Development Mode** (`isDev: true`):\n  - Detailed debug information\n  - Session state logging\n  - Command processing details\n  - Redis operations logging\n  - Colorized, formatted output\n\n- **Production Mode** (`isDev: false`):\n  - Critical errors only\n  - Important state changes\n  - Minimal operational logs\n  - Optimized for performance\n\nTo switch between modes, simply set `isDev` in your configuration:\n\n```typescript\nconst config: AppConfig = {\n  // ... other config options ...\n  isDev: process.env.NODE_ENV !== 'production'\n};\n```\n\n---\n\n## 👥 Admin Authentication/Approval\n\nAdd an extra layer of admin approval for new users. This is ideal for public or semi-public bots, clubs, or organizations where you want to control who can use the bot.\n\n- **New users** are set to `pending` in Redis and cannot use the bot until approved.\n- **Admins** receive approval requests and can approve/deny users via inline buttons.\n- **Only approved users** (status `member` or `admin`) can interact with the bot.\n\n### How it works\n1. When a new user interacts with the bot, their status is set to `pending` in Redis.\n2. All admins (specified in `adminChatIds`) receive a message with Approve/Deny buttons.\n3. When an admin approves, the user's status is set to `member` and they are notified.\n4. Only users with status `member` or `admin` can use the bot; others are blocked until approved.\n\n### Example: Admin Approval\n```typescript\nconst configWithAdminAuth: AppConfig = {\n  botToken: 'YOUR_BOT_TOKEN',\n  botMode: 'polling',\n  botAllowedUpdates: ['message', 'callback_query'],\n  redisUrl: 'YOUR_REDIS_URL',\n  isDev: true,\n  useAuth: 'none',\n  adminAuthentication: true,\n  adminChatIds: [123456789, 987654321], // Replace with your admin Telegram chat IDs\n};\n\nconst bot = new Bot(configWithAdminAuth);\nconst botManager = bot.getBotManager();\nbotManager.handleCommand('start', async (ctx: CustomContext) => {\n  await ctx.reply('Welcome! If you see this, you are approved by an admin.');\n});\nbotManager.handleCommand('whoami', async (ctx: CustomContext) => {\n  await ctx.reply(`Your chat ID: <code>${ctx.from?.id}</code>`, { parse_mode: 'HTML' });\n});\nbotManager.handleCommand('secret', async (ctx: CustomContext) => {\n  await ctx.reply('This is a secret command only for approved users!');\n});\n```\n\n---\n\n## 🛡️ Automatic Context Safety (No More !)\n\nThe SDK now ensures that `ctx.session`, `ctx.chat`, and `ctx.from` are always present in your handlers. You can safely use `ctx.session.whatever`, `ctx.chat.id`, etc., **without** needing to write `ctx.session!` or add type guards.\n\nThis is handled automatically by the SDK's internal middleware and does **not** require any code changes for existing users.\n\n**Example:**\n```typescript\nbotManager.handleCommand('start', async (ctx: CustomContext) => {\n  // No need for ctx.session! or ctx.chat!\n  ctx.session.setCustom('foo', 'bar');\n  await ctx.api.sendMessage(ctx.chat.id, 'Welcome!');\n});\n```\n\n---\n\n## 📄 License\n\nISC\n\n## 📚 GitHub Repository\n\nThis project is available on GitHub:\n[https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot](https://github.com/AmanUpadhyay1609/-wasserstoff-mangi-tg-bot)\n\nIssues, feature requests, and contributions are welcome!\n\n## ⚠️ Important: Registering Event Listeners Safely\n\n### Do NOT Attach Event Listeners Directly to the Bot Instance\n\n**Never use:**\n```ts\nconst botInstance = botManager.getBot();\nbotInstance.on(\"chat_member\", (ctx) => { /* ... */ }); // ❌ This will cause errors!\n```\n\n#### Why?\n- The grammY framework (and this SDK) throw a runtime error if you try to add event listeners after the bot has started, or from within other listeners.\n- This can cause a memory leak and eventually crash your bot. The error message will look like:\n  > Error: It looks like you are registering more listeners on your bot from within other listeners! ...\n\n### ✅ Correct Way: Use `handleEvent` on BotManager\n\n**Always use:**\n```ts\nbotManager.handleEvent(\"chat_member\", async (ctx) => {\n  // Your logic here\n});\n```\n\n- This ensures all listeners are registered before the bot starts, using the SDK's internal Composer.\n- Works for any event type supported by grammY (e.g., `chat_member`, `my_chat_member`, etc.).\n\n#### Example\n```ts\nbotManager.handleEvent(\"chat_member\", async (ctx) => {\n  console.log(\"A user joined or left the group:\", ctx);\n});\n```\n\n**Summary:**\n- ❌ Do NOT use `botInstance.on(...)` directly.\n- ✅ Use `botManager.handleEvent(...)` for all event listeners, including group events.\n- See `src/example.ts` for a working example.\n\n### Type-Safe Event Names with Autocompletion\n\nThe `handleEvent` method uses grammY's built-in `FilterQuery` type for the event name. This means:\n- **You get autocompletion and type safety** in your editor for all valid event names (like `\"message\"`, `\"chat_member\"`, `\"message:text\"`, etc.).\n- **You can't accidentally use an invalid event name**—TypeScript will warn you.\n\n**Example:**\n```ts\nbotManager.handleEvent(\"chat_member\", async (ctx) => { /* ... */ }); // ✅ autocompleted, type-checked\n```\n\n> **Tip:** Start typing inside the quotes and your editor (VS Code, WebStorm, etc.) will suggest all valid grammY event names. You can also use arrays for multiple events.\n\n#### What is `FilterQuery`?\n- `FilterQuery` is a type from grammY that represents all valid event filter strings.\n- See [grammY filter queries documentation](https://grammy.dev/guide/filter-queries.html) for more info and examples.\n","readmeFilename":"README.md"}