{"_id":"@balegraf/balegraf","_rev":"12-0590ae215b8304eeccfca684a32ab83c","name":"@balegraf/balegraf","dist-tags":{"latest":"0.16.3"},"versions":{"0.2.11":{"name":"@balegraf/balegraf","version":"0.2.11","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.2.11","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"c4569e4edd6d876fd35ad807effca852edfc60e0","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.2.11.tgz","fileCount":20,"integrity":"sha512-qU4t7ukWEkrrESznTzZSlgTHhA9ihZFVwEL0O0gkgxhBwkuJp597+PEZGRXHOHHZYu6FKwQRXBl8bN0N7J7fdA==","signatures":[{"sig":"MEUCIQC4m59sCOTf0G9sErPVzuGNuCLjSMkzxV7Gj/bPam56mQIgZ38XliIS+Srlx+1sy7+UA3cD1eWMMqE3UpcGRqeD2UI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15468},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d37768e8db7e3f5f491e980dbad978c55062de97","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.2.11_1780950913972_0.8435838627781425","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@balegraf/balegraf","version":"0.3.0","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.3.0","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"e17ebff879e6e04ac8cd35443cf7b78cc2f2a28c","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.3.0.tgz","fileCount":28,"integrity":"sha512-0hQ+r2QniygZDxcz6TRQdufF5u0w+1NX9piC8XB3D+BaejUboIgKakcTccB+zJa8kYLxnPjFHxdrkNKsUVcBqQ==","signatures":[{"sig":"MEYCIQCnCMQ0oCdUbRgzJdjZKIuitSe41BKJx3W8gpsXe3IbYgIhAIjrbdIhtq0tfcseC5RViE1hoEULVkbTsY39X77IkmZt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19084},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"db0bc9ba69cc4f9551bfd26b38306bf4ecf75be9","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.3.0_1780957641251_0.6144141182191896","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@balegraf/balegraf","version":"0.4.0","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.4.0","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"1949267985887b9d36eba41fb12bc5cd904081e8","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.4.0.tgz","fileCount":30,"integrity":"sha512-6ISDKCkS6iXu4ifpvS8XJW1Olkcf6hRtbB+tJKHX8zrnkt9FeKf65Z4inXoJMZ0aUW9vEPkf2K2C8vGQ9KzGWQ==","signatures":[{"sig":"MEUCIQCHDAiVO+zHlYPpHo7U5Qf3yrxq2oYEfJ99ts6tFW1QSQIgJT/7575AXqx1KfpBMOCZeHrdjlcn9MgWZmfZQOnNOQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24074},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1a5c3c6a7e7717aac52d91e53048a216b36da3e5","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.4.0_1781033060998_0.4214381230853719","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@balegraf/balegraf","version":"0.4.1","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.4.1","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"f2e263abd921dcb2a1985b93ee3a0542f73f2b5e","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.4.1.tgz","fileCount":30,"integrity":"sha512-x9UXM/o+JOmEEuDcH3csicwwhqxGS0Da/0TvgbAlNAtmk3CV6yo0J8ol+ygwZJEMsLLNzebtJ4GNltf6gS4nuQ==","signatures":[{"sig":"MEUCIHUii59rXvJ6TGfZg1IkoeIthCbAUZ42EkYUyQOIa/u+AiEArqO5pTtY+4jchAgtfCtwdiz41IR/51EAo0LUQf9a9AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24436},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"987dcf6a2ccb69f99b98a3850633ba82e50895d0","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.4.1_1781036002780_0.5659562854027729","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@balegraf/balegraf","version":"0.5.0","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.5.0","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"9206ea3562a0018a8e9cf94ab433ab602382ab62","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.5.0.tgz","fileCount":30,"integrity":"sha512-FE5X+qr8CcZP2T7RVNTI0MMQwJuYpFvgXF+DJZ0gzK/Fo7TVGmSygodtl9JAaLzM8s496zbJri0d3+zITvtzsQ==","signatures":[{"sig":"MEQCIAxGzHarEioQpvZJy62kOP1AwLlBIffbDORxwoOJbSDeAiBOJrCpNIIFIFItnyrM13d72wIw9iLmxF2zBI2o3/jNrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25427},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"6c9324ef355af09e41b6c7635343adefa9202939","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.5.0_1781036004973_0.1438608809326365","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@balegraf/balegraf","version":"0.8.4","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.8.4","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"7614aa0779a13c66368837c55b044d74862edc78","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.8.4.tgz","fileCount":32,"integrity":"sha512-TTSZJATG8CyjpR2IfWJdmPgtcm+9/PwDaNcQWqcqaegJvYJ5EiaeF9PNpjLUsqyS2JfZoDkpCnCFIEqfbn8WpQ==","signatures":[{"sig":"MEUCIEmaAhJ+ye2Bc+Ag3DRNacOzU6a0OSMiJNCSJ98SSIUJAiEAtMq52DoVAwgVGcnImo4s6Yc2Ik/g5C9DUZ9XmddZjRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31948},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"29d4639489f8a872f815324805a91b5fe32c4f80","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.8.4_1781053172635_0.04894210084397699","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@balegraf/balegraf","version":"0.9.2","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.9.2","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"d1ff473f5865edb62ca6d78f6a874d988c6e3f82","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.9.2.tgz","fileCount":32,"integrity":"sha512-M4zEjd1d9QL+DdMpu/iv5BH5tkaTlVW/ZMo/hzJxZjcLLgD+G5dMsVv0atkWV6D9DAgm0nT436Z71MtJ40ufQA==","signatures":[{"sig":"MEQCIALgbdR4H2s1RGgRsa6caF4WjdfNkitmEjZ3dWZm9BI6AiBFLy40OuUpe8UDwa5bky0DjEBCFYiFD2+wOpluGSmBaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36769},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"99b62fcb7b4bcff295f0f75733100d27014b77e3","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.9.2_1781122416031_0.951094187332042","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@balegraf/balegraf","version":"0.12.1","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.12.1","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"b8ca0ed6c7f6d308a2f33baa7cf0a324f286a209","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.12.1.tgz","fileCount":32,"integrity":"sha512-lQ7dDaWWv6HfxLEqlAtkeXIeS8mDI/HIkUpaJrniBnrYSLJbvek84a58Eiyx1jyaT87cv468LXwbAztTF46eIQ==","signatures":[{"sig":"MEYCIQDrmvmX3Xe6dFMqRaXaHYra0EwhOEeVoLL/AJ/KYTdttwIhAIEzFIIlqPVrz5+FOhPoA11g8KunjFb29NkxVOtdnAtm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41944},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"55b909cbe631342ff3a5d5a77e3445c91953a499","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typedoc":"^0.28.19","typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.12.1_1781390511691_0.477455954245285","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@balegraf/balegraf","version":"0.13.0","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.13.0","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"e5184ffc162a763bf549828bbba56c094403d2bf","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.13.0.tgz","fileCount":32,"integrity":"sha512-RZKM6juR6yhcK+gvSq+PetJrjiMR/ehOK9Tl+6/pY6fig3Zad83AterzIcZ0oC/Puld2quOh2eTdroLwgWhLlA==","signatures":[{"sig":"MEUCIQDQp94ySaGlDUpaGzo/WZy7EtXb50t3aA3N/oBsloE60AIgJBkHh9/MhHHRDvk+46VtD+MmX66+PDcPbV2T/lO+Czg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41947},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"da0b29b4706cc2de054693dfe74acad3fdd4931a","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typedoc":"^0.28.19","typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.13.0_1781390822957_0.7119980587897885","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@balegraf/balegraf","version":"0.15.1","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.15.1","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"e41522120b69f950cb33e06d8e6415740d6469a4","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.15.1.tgz","fileCount":32,"integrity":"sha512-cyLIv8fqJclNn92DgmqJJBrlfbeAK/UABcEFhURHn+pmzzAhkRrBJcdulXuzM3+8z/jkU68aIQNHfoTxWiH/jQ==","signatures":[{"sig":"MEQCIFwYQ2246psBS2LArTPELzzCRAIvASwSS92XpPmvHedOAiBpO/Y+Fvzjhyq3GL7eS/eQDuuiyY07Ih40asjKeQKzpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44033},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"df0f246d4373019a4be11d3463e3c882a26f704c","scripts":{"build":"tsc -p ."},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.22.3","dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typedoc":"^0.28.19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.15.1_1781659902069_0.9684528021883638","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"@balegraf/balegraf","version":"0.15.3","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","_id":"@balegraf/balegraf@0.15.3","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"dist":{"shasum":"81db7f37e0318f3fe0cf4e07ac38ac214309fbf0","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.15.3.tgz","fileCount":34,"integrity":"sha512-tJGAUGtYivk5kIxLRo+XTlZOawsYrz95jzWpuMUsReWLoka7yfTihnoV+eBhDW+ZTwf34wUxrjLwwmIQrPK0qw==","signatures":[{"sig":"MEUCICAXDEETZRlT7RMbqSHCZPyJUSnwKQpecmbTJPeVNmyqAiEApFCfVJny+3EoDrCAYTVYjlhEDDwJJS+YzK/7Zil43tY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46249},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5a4c6ac373ae3c16d43976ab291d89afcbf9efba","scripts":{"build":"tsc -p .","build:dev":"tsc -w"},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"repository":{"url":"git+https://github.com/Ghostmaysam1/balegraf.git","type":"git"},"_npmVersion":"10.9.8","description":"create Bale bots with a Telegraf-like framework for Bale messenger","directories":{},"_nodeVersion":"22.23.1","dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.0.0","typedoc":"^0.28.19","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/balegraf_0.15.3_1784633473103_0.33836420425445923","host":"s3://npm-registry-packages-npm-production"}},"0.16.3":{"name":"@balegraf/balegraf","version":"0.16.3","description":"create Bale bots with a Telegraf-like framework for Bale messenger","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p .","build:dev":"tsc -w"},"repository":{"type":"git","url":"git+https://github.com/Ghostmaysam1/balegraf.git"},"homepage":"https://github.com/Ghostmaysam1/balegraf","bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"author":{"name":"Meysam Asefi Najafi"},"keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"license":"MIT","engines":{"node":">=20"},"devDependencies":{"ts-node":"^10.0.0","typedoc":"^0.28.19","typescript":"^5.0.0","vitest":"^1.0.0"},"dependencies":{"axios":"^1.17.0","form-data":"^4.0.5"},"_id":"@balegraf/balegraf@0.16.3","gitHead":"7ac65cb40995b9bd08330c03bdd45222a752071e","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-LAkVXOjpxWYKorv0b737qwgK1rgO4X9vE0eeiUiqy1g4GM5zyCB2B6Py4Mb09f23WwizUgV/USDOlI7JOVOznw==","shasum":"622d8945972e86bc8843ea2da158da30c5bc907d","tarball":"https://registry.npmjs.org/@balegraf/balegraf/-/balegraf-0.16.3.tgz","fileCount":42,"unpackedSize":53953,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFA+3oDldvSCS6KhT0mc0IHmfcAyNaecK69DlKtMFwQxAiA1BKaFOVmcmxko4UdqRo+otJYthZckdQdcnbewNacELg=="}]},"_npmUser":{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"},"directories":{},"maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/balegraf_0.16.3_1784646168482_0.17343289422781694"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-08T20:35:13.788Z","modified":"2026-07-21T15:02:48.823Z","0.2.11":"2026-06-08T20:35:14.115Z","0.3.0":"2026-06-08T22:27:21.381Z","0.4.0":"2026-06-09T19:24:21.151Z","0.4.1":"2026-06-09T20:13:22.918Z","0.5.0":"2026-06-09T20:13:25.115Z","0.8.4":"2026-06-10T00:59:32.786Z","0.9.2":"2026-06-10T20:13:36.230Z","0.12.1":"2026-06-13T22:41:51.823Z","0.13.0":"2026-06-13T22:47:03.088Z","0.15.1":"2026-06-17T01:31:42.202Z","0.15.3":"2026-07-21T11:31:13.233Z","0.16.3":"2026-07-21T15:02:48.616Z"},"bugs":{"url":"https://github.com/Ghostmaysam1/balegraf/issues"},"author":{"name":"Meysam Asefi Najafi"},"license":"MIT","homepage":"https://github.com/Ghostmaysam1/balegraf","keywords":["bale","bot","bale-api","bale-bot-api","balegraf","bale-bot","bale_bot"],"repository":{"type":"git","url":"git+https://github.com/Ghostmaysam1/balegraf.git"},"description":"create Bale bots with a Telegraf-like framework for Bale messenger","maintainers":[{"name":"ghostmaysam","email":"recoveryghostmaysam@gmail.com"}],"readme":"<header>\n\n<div align=\"center\">\n<img src=\"./docs/assets/Icon.png\" alt=\"logo\" height=\"200\" align=\"center\">\n<h1 align=\"center\">balegraf.js</h1>\n\n<p>Modern Bale Bot API framework for Node.js</p>\n\n<a href=\"https://github.com/Ghostmaysam1/balegraf\">\n\t<img src=\"https://img.shields.io/github/package-json/v/Ghostmaysam1/balegraf\n  \" alt=\"Version\" />\n</a>\n<a href=\"https://packagephobia.com/result?p=@balegraf/balegraf@0.9.2\">\n\t<img src=\"https://flat.badgen.net/packagephobia/install/@balegraf/balegraf@0.9.2\" alt=\"install size\" />\n</a>\n<a href=\"https://github.com/telegraf/telegraf\">\n\t<img src=\"https://img.shields.io/github/languages/top/Ghostmaysam1/balegraf?style=flat-square&logo=github\" alt=\"GitHub top language\" />\n</a>\n</div>\n\n</header>\n\n## Features\n\n- Telegraf-style API\n- Middleware system (`bot.use`)\n- Command handlers (`bot.command`)\n- Text matching (`bot.hears`)\n- Callback query handlers (`bot.action`)\n- Event handlers (`bot.on`)\n- Inline keyboards\n- Reply keyboards\n- Keyboard removal\n- Callback query support\n- Callback query answers (`ctx.answerCallbackQuery`)\n- Message editing support\n- Message deletion support\n- Photo sending support\n- File upload support\n- `InputFile` helpers for path, file ID, URL, buffer, and stream\n- Button helpers: `Markup.button.text`, `Markup.button.contact`, `Markup.button.location`, `Markup.button.url`, `Markup.button.copy`\n- Type guards: `IsMessage`, `IsEditedMessage`, `IsCallbackQuery`, `IsPreCheckoutQuery`\n- Pre-checkout query support (`bot.on('pre_checkout_query')`)\n- TypeScript support\n- Long polling updates\n- Lightweight core\n\n---\n\n## Installation\n\n```bash\nnpm install @balegraf/balegraf\n```\n\n---\n\n## Quick Start\n\n```ts\nimport { Balegraf, Markup } from \"@balegraf/balegraf\";\n\nconst bot = new Balegraf(process.env.BALE_TOKEN!);\n\nbot.command(\"start\", async (ctx) => {\n  await ctx.reply(\n    \"Choose an option\",\n    Markup.inlineKeyboard([[Markup.button.callback(\"Click Me\", \"click_me\")]]),\n  );\n});\n\nbot.action(\"click_me\", async (ctx) => {\n  await ctx.answerCallbackQuery();\n\n  await ctx.reply(\"Button clicked!\");\n});\n\nbot.launch();\n```\n\n---\n\n## Editing Inline Messages\n\n```ts\nbot.action(\"edit\", async (ctx) => {\n  await ctx.editMessageText(\n    \"Message updated\",\n    Markup.inlineKeyboard([[Markup.button.callback(\"Done\", \"done\")]]),\n  );\n\n  await ctx.answerCallbackQuery();\n});\n```\n\n---\n\n## Middleware\n\n```ts\nbot.use(async (ctx, next) => {\n  console.log(ctx.update);\n\n  await next();\n});\n```\n\n---\n\n## Commands\n\n```ts\nbot.command(\"start\", async (ctx) => {\n  await ctx.reply(\"Welcome!\");\n});\n```\n\n---\n\n## Text Matching\n\nString matching:\n\n```ts\nbot.hears(\"hello\", async (ctx) => {\n  await ctx.reply(\"Hi!\");\n});\n```\n\nRegex matching:\n\n```ts\nbot.hears(/hello|سلام/i, async (ctx) => {\n  await ctx.reply(\"Hi!\");\n});\n```\n\n---\n\n## Actions\n\nHandle callback queries from inline keyboards.\n\n```ts\nbot.action(\"like\", async (ctx) => {\n  await ctx.answerCallbackQuery(\"Liked!\");\n});\n\nbot.action(\"delete\", async (ctx) => {\n  await ctx.answerCallbackQuery(\"Deleted!\");\n});\n```\n\nRegex actions:\n\n```ts\nbot.action(/^user:\\d+$/, async (ctx) => {\n  console.log(ctx.callbackData);\n});\n```\n\n---\n\n## Event Handlers\n\n```ts\nbot.on(\"message\", async (ctx) => {\n  console.log(ctx.message);\n});\n```\n\n```ts\nbot.on(\"callback_query\", async (ctx) => {\n  await ctx.answerCallbackQuery(\"You clicked the button!\", true);\n  await ctx.reply(JSON.stringify(ctx.callbackQuery));\n});\n```\n\n> `bot.on('callback_query', ...)` now receives a `CallbackQueryContext`, so `ctx.answerCallbackQuery()` is available directly.\n\n---\n\n## Inline Keyboard\n\n```ts\nimport { Markup } from \"@balegraf/balegraf\";\n\nawait ctx.reply(\n  \"Choose an option\",\n  Markup.inlineKeyboard([\n    [Markup.button.callback(\"Click Me\", \"click_me\")],\n    [Markup.button.text(\"Just a Button\")],\n  ]),\n);\n```\n\n> `Markup.inlineKeyboard` now accepts plain text buttons via `Markup.button.text()`.\n\n---\n\n## Button Helpers\n\nUse built-in helper methods to create text, contact, location, URL, and copy buttons for inline keyboards.\n\n```ts\nawait ctx.reply(\n  \"Choose an option\",\n  Markup.inlineKeyboard([\n    [Markup.button.text(\"Plain text\")],\n    [Markup.button.url(\"Open site\", \"https://example.com\")],\n    [Markup.button.contact(\"Share contact\")],\n    [Markup.button.location(\"Share location\")],\n    [Markup.button.copy(\"Copy text\")],\n  ]),\n);\n```\n\n---\n\n## Reply Keyboard\n\n```ts\nawait ctx.reply(\n  \"Choose an option\",\n  Markup.keyboard([[\"Profile\", \"Settings\"], [\"Help\"]]),\n);\n```\n\n> `Markup.keyboard` accepts string buttons directly and converts them to keyboard buttons.\n\n---\n\n## Remove Keyboard\n\n```ts\nawait ctx.reply(\"Keyboard removed\", Markup.removeKeyboard());\n```\n\n---\n\n## Sending Photos\n\nUsing a local file:\n\n```ts\nimport { InputFile } from \"@balegraf/balegraf\";\n\nawait ctx.replyWithPhoto(InputFile.fromPath(\"./photo.jpg\"));\n```\n\nWith caption:\n\n```ts\nawait ctx.replyWithPhoto(InputFile.fromPath(\"./photo.jpg\"), {\n  caption: \"Example photo\",\n});\n```\n\nWith inline keyboard:\n\n```ts\nawait ctx.replyWithPhoto(InputFile.fromPath(\"./photo.jpg\"), {\n  caption: \"Choose an option\",\n  replyMarkup: Markup.inlineKeyboard([\n    [Markup.button.callback(\"Like\", \"like\")],\n  ]),\n});\n```\n\n---\n\n## InputFile\n\nCreate files from different sources.\n\n### Local File\n\n```ts\nInputFile.fromPath(\"./photo.jpg\");\n```\n\n### File ID\n\n```ts\nInputFile.fromFileId(fileId);\n```\n\n### URL\n\n```ts\nInputFile.fromUrl(\"https://example.com/photo.jpg\");\n```\n\n### Buffer\n\n```ts\nInputFile.fromBuffer(buffer, \"photo.jpg\");\n```\n\n### Stream\n\n```ts\nInputFile.fromStream(fs.createReadStream(\"./photo.jpg\"), \"photo.jpg\");\n```\n\n---\n\n## Editing Messages\n\n### Edit Text\n\n```ts\nawait ctx.editMessageText(\"Updated text\");\n```\n\nWith inline keyboard:\n\n```ts\nawait ctx.editMessageText(\n  \"Updated text\",\n  Markup.inlineKeyboard([[Markup.button.callback(\"Refresh\", \"refresh\")]]),\n);\n```\n\n### Edit Caption\n\n```ts\nawait ctx.editMessageCaption(\n  \"Updated caption\",\n  ctx.callbackQuery.message.reply_markup,\n);\n```\n\n### Edit Reply Markup\n\n```ts\nawait ctx.editMessageReplyMarkup(\n  Markup.inlineKeyboard([[Markup.button.callback(\"New Button\", \"new_button\")]]),\n);\n```\n\n---\n\n## Deleting Messages\n\n```ts\nawait ctx.deleteMessage();\n```\n\n---\n\n## Context\n\n### Properties\n\n```ts\nctx.update;\nctx.updateType;\n\nctx.message;\nctx.callbackQuery;\n\nctx.callbackData;\n\nctx.user;\nctx.chat;\n```\n\n### Methods\n\n```ts\nctx.reply(...)\nctx.replyWithPhoto(...)\n\nctx.answerCallbackQuery(...)\nctx.answerPreCheckoutQuery(...)\n\nctx.editMessageText(...)\nctx.editMessageCaption(...)\nctx.editMessageReplyMarkup(...)\n\nctx.deleteMessage()\n```\n\n---\n\n## Type Guards\n\n```ts\nimport { IsMessage, IsPreCheckoutQuery } from \"@balegraf/balegraf\";\n\nbot.on(\"message\", async (ctx) => {\n  if (IsMessage(ctx)) {\n    await ctx.reply(\"This is a message update\");\n  }\n});\n\nbot.on(\"pre_checkout_query\", async (ctx) => {\n  if (IsPreCheckoutQuery(ctx)) {\n    await ctx.answerPreCheckoutQuery(true);\n  }\n});\n```\n\n---\n\n## Pre-checkout Queries\n\n```ts\nbot.on(\"pre_checkout_query\", async (ctx) => {\n  await ctx.answerPreCheckoutQuery(true);\n});\n```\n\n---\n\n## Update Types\n\nSupported update types:\n\n```ts\nmessage;\nedited_message;\ncallback_query;\npre_checkout_query;\n```\n\n---\n\n> Note:\n> `editMessageText`, `editMessageCaption`,\n> `editMessageReplyMarkup`, and `deleteMessage`\n> operate on the current message associated with the\n> incoming update, similar to Telegraf.\n\n## Requirements\n\n- Node.js 20+\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}