{"_id":"@vvlad1973/telegram-bot-client","_rev":"8-ab76f9aec15bdabb3fa48774f54e991b","name":"@vvlad1973/telegram-bot-client","dist-tags":{"latest":"2.0.5"},"versions":{"1.2.0":{"name":"@vvlad1973/telegram-bot-client","version":"1.2.0","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@1.2.0","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"11826b98626ecc971d8cd4ed3563e27697d9b0e6","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-1.2.0.tgz","fileCount":14070,"integrity":"sha512-b9o0kdAqxKuAkotiDWNyDHswe1aY0jSm1i3Lih6KWLU0pV2Ta0dZEpL+Oh10ZfZmbbKIBJ09dRnU37pDN6Jq8Q==","signatures":[{"sig":"MEUCIQC/wculTfewnFK1b5LqH+CMmXpyogeMiUB/UFHGcNyrLAIgBV283Ixv39h+BG1086lhlYUbYXHY5aHL2VelPa3XzOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3852894},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"88d44c7a192e16c77460278c47c1c0f9c6c575a0","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_1.2.0_1766353094576_0.5180467030125082","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@vvlad1973/telegram-bot-client","version":"1.3.0","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@1.3.0","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"4f2b7b07bf7a0315d68a1af6858bc0457890c455","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-1.3.0.tgz","fileCount":14070,"integrity":"sha512-OwOdrMTBAwbhOeIaqAYXrYbWjNQQlPmmY/nM/vhpysttfKAtIbmSAWLAxhYz81RdMxxI59JVutUD+fqqNWVQ0g==","signatures":[{"sig":"MEQCIFbhMSEuExzDieQqlvqW3nYAIfJq2QE8Hvc0IfDpB5PuAiBz99iI7ImFFokLiyKtkuJxmxdmF1o/T6xyW2pNkr6DDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3852894},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"44bdc52104ee2f4660a0ec00a9e8875a3a5aad16","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_1.3.0_1766391803035_0.15022433218817177","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@vvlad1973/telegram-bot-client","version":"2.0.0","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@2.0.0","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"6eaf68a3e2a611f1dccbdeb27cf0b746e41eaae4","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-2.0.0.tgz","fileCount":14090,"integrity":"sha512-/qxNStlePtLxVZnHsDmnoA+eFLmA355pJp0gIdtHma6/iEzPEub8FOAD0qlPPa/QIzjaitBIZi/0tPUEgth9Ow==","signatures":[{"sig":"MEQCIB5ifyoVnRzM0Xo/0pKH9XtVIPYoDks/rZ58JY2yWnxIAiBqLFiuvZs28YiAWMoXXMi5OX9DhAfFcCNO/6JaonAoxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4017583},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"ec409f4061eec2d17cde3da3c00d60afc98376b0","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_2.0.0_1766594010937_0.8657543326125607","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@vvlad1973/telegram-bot-client","version":"2.0.1","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@2.0.1","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"fe446d68f9107febbc73051b8853adffe58e16d1","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-2.0.1.tgz","fileCount":14090,"integrity":"sha512-zH8ArchlYVr5zzViTFPBvSXAVca8uja9xiy5eZs3F5vo+7mpjyXP4tnvsHjSxzPNElNRUJCXyMUPXrJW5LZ7WQ==","signatures":[{"sig":"MEYCIQDPa/ihIXSDroz18sK/LYUZvaynZBq/DxvIuRekSFSyaQIhANZlv71XjW9DOXSn1IyUU4L7o7egMbnSWHuPmK21jAgT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4046935},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"8f5d96af6bc5e3f5f538f257df128fde76bd685e","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.1","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_2.0.1_1766663310367_0.7605513867618126","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@vvlad1973/telegram-bot-client","version":"2.0.2","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@2.0.2","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"a1f026feccfb8846bb5261a0559a4ac59df617cf","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-2.0.2.tgz","fileCount":14090,"integrity":"sha512-ba4yNm2R6FvoGMrwxahFemPvZfGy1Xvw+DxfSOwXJ17ezL6mbAE2FV1bua0LN4p0ZUkrV7UEUtYGcp147EPntQ==","signatures":[{"sig":"MEUCIDmnCZvN7ghBGaMzgZaIXj0GFS9BCsMF6YD9KZyr89pPAiEA/hvg8AdaL35bspP8SZYwwiW1++gBa8ANUNCDHNzGcuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4046935},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"f1b7ce06aaffb1aeae96b836f7a3265691e992d5","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.1","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_2.0.2_1766670129685_0.6194274954351049","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@vvlad1973/telegram-bot-client","version":"2.0.3","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@2.0.3","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"a4a7cd5d964c16884244d17c1d4332ab6a7400e8","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-2.0.3.tgz","fileCount":14090,"integrity":"sha512-TFLzG8528qpVV665NNpFXqFKukQY9AqmGgZA0D1YNLBco9QSIyTGkjFweS8irfp1uCFXj1f3sJmJvs7kxsy4ng==","signatures":[{"sig":"MEYCIQCPGKXZySoMaidKzZksCqyq2ZWEsmC2fayl0RVNyvjFeQIhAIE6ulHATFTQskr7bgLr1iMrwbYTmSs9TyULPnrfli1H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4048190},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"9034ff7e7a9cec154fcad0a480652d3495d5adcf","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.1","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_2.0.3_1766672805392_0.050073319719696086","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@vvlad1973/telegram-bot-client","version":"2.0.4","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","_id":"@vvlad1973/telegram-bot-client@2.0.4","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"dist":{"shasum":"8692add15de51f6457694b6946ef57529510d589","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-2.0.4.tgz","fileCount":14090,"integrity":"sha512-B7gNKm6C9OxNemSAa4NbnojfoDETZtkn+phypU8V9IwqU0hS95skibf/begRUU2AdbERNQD3NByfUEygm8TweA==","signatures":[{"sig":"MEUCIQDJsFo96OzRYiRXwOrssjWhf2ggd7lnWipyyoUhsovGNQIgVUYKuyb8C2PJ4XtjC2RLzTMLlVc2ueG3E+Ug2f0cm2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4048190},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"0e728be9da5b72c8f702f4e392e9eedaa307e367","scripts":{"docs":"typedoc","lint":"eslint .","test":"vitest","build":"tsc","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","release":"standard-version","lint:fix":"eslint . --fix","changelog":"npx gen-changelog","fetch-api":"node ./scripts/fetch-telegram-api.js","release:rc":"standard-version --prerelease rc","update-api":"npm run fetch-api && npm run generate-api","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","release:beta":"standard-version --prerelease beta","release:alpha":"standard-version --prerelease alpha","test:coverage":"vitest --coverage"},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"repository":{"url":"git+https://github.com/vvlad1973/telegram-bot-client.git","type":"git"},"_npmVersion":"11.6.2","description":"This package provides Telegram Bot API client","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","ajv-draft-04":"^1.0.0","@vvlad1973/utils":"^5.1.0","@vvlad1973/base-api":"^1.0.0","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/queues-manager":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.16","ts-node":"^10.9.2","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","markdownlint-cli":"^0.47.0","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.50.1","@vitest/coverage-v8":"^4.0.16"},"_npmOperationalInternal":{"tmp":"tmp/telegram-bot-client_2.0.4_1766673475562_0.6745529302325461","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@vvlad1973/telegram-bot-client","version":"2.0.5","type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"vitest","test:coverage":"vitest --coverage","build":"tsc","lint":"eslint .","lint:fix":"eslint . --fix","lint:md":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc","lint:md:fix":"markdownlint \"**/*.md\" -i node_modules -i dist -i coverage -i docs/typedoc --fix","docs":"typedoc","changelog":"npx gen-changelog","release":"standard-version","release:alpha":"standard-version --prerelease alpha","release:beta":"standard-version --prerelease beta","release:rc":"standard-version --prerelease rc","fetch-api":"node ./scripts/fetch-telegram-api.js","generate-api":"node ./scripts/generate-api.js -i ./models/botapi_openapi.json -d ./src/api/","update-api":"npm run fetch-api && npm run generate-api"},"keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","description":"This package provides Telegram Bot API client","repository":{"type":"git","url":"git+https://github.com/vvlad1973/telegram-bot-client.git"},"bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","engines":{"node":">=18.0.0","npm":">=9.0.0"},"dependencies":{"@vvlad1973/base-api":"^1.0.0","@vvlad1973/data-validator":"^1.3.0","@vvlad1973/gen-changelog":"^1.1.5","@vvlad1973/logger-tree":"^1.4.1","@vvlad1973/queues-manager":"^2.0.1","@vvlad1973/simple-logger":"^2.1.10","@vvlad1973/utils":"^5.1.0","ajv":"^8.17.1","ajv-draft-04":"^1.0.0","ajv-formats":"^3.0.1"},"devDependencies":{"@eslint/js":"^9.39.2","@types/eslint__js":"^8.42.3","@types/node":"^25.0.3","@vitest/coverage-v8":"^4.0.16","eslint":"^9.39.2","markdownlint-cli":"^0.47.0","ts-node":"^10.9.2","typedoc":"^0.28.15","typescript":"^5.9.3","typescript-eslint":"^8.50.1","vitest":"^4.0.16"},"gitHead":"49f6156b7297d52d5ff57e3bf917d853a213d6e7","_id":"@vvlad1973/telegram-bot-client@2.0.5","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-2dH80Bz1rUGx+Neh65hYfkuWugaRcP6zSYQeNGImzP+/USHv9OCflgvo73j1+xSS+75KK1ATVI/5y/Fmh8bq1Q==","shasum":"2031581a7697dfabc4d0c178a3734f6f930e2087","tarball":"https://registry.npmjs.org/@vvlad1973/telegram-bot-client/-/telegram-bot-client-2.0.5.tgz","fileCount":7652,"unpackedSize":2652644,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEDuyfyIeeBUJWXDYQDR0e4PGfO9IiJaTDgDt/eWj4IlAiEApVvv4k4a5+X3oW3KKNUYCjW7cMlrZfFIt4+VzuMcmYg="}]},"_npmUser":{"name":"vvlad1973","email":"vvlad1973@gmail.com"},"directories":{},"maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/telegram-bot-client_2.0.5_1787178578955_0.9120553146787351"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-21T21:38:14.465Z","modified":"2026-08-19T22:29:39.330Z","1.2.0":"2025-12-21T21:38:14.829Z","1.3.0":"2025-12-22T08:23:23.301Z","2.0.0":"2025-12-24T16:33:31.214Z","2.0.1":"2025-12-25T11:48:30.649Z","2.0.2":"2025-12-25T13:42:09.947Z","2.0.3":"2025-12-25T14:26:45.609Z","2.0.4":"2025-12-25T14:37:55.781Z","2.0.5":"2026-08-19T22:29:39.162Z"},"bugs":{"url":"https://github.com/vvlad1973/telegram-bot-client/issues"},"author":{"name":"Vladislav Vnukovskiy","email":"vvlad1973@gmail.com"},"license":"MIT with Commercial Use License","homepage":"https://github.com/vvlad1973/telegram-bot-client#readme","keywords":["telegram","bot","api","telegram-bot","telegram-api","bot-api","typescript","fetch","native-fetch","long-polling","webhook","type-safe"],"repository":{"type":"git","url":"git+https://github.com/vvlad1973/telegram-bot-client.git"},"description":"This package provides Telegram Bot API client","maintainers":[{"name":"vvlad1973","email":"vvlad1973@gmail.com"}],"readme":"# @vvlad1973/telegram-bot-client\n\nМощная и типобезопасная библиотека для создания Telegram ботов на TypeScript с поддержкой нескольких токенов, системой событий и расширенной фильтрацией.\n\n## Основные возможности\n\n- **Полная типизация TypeScript** - автоматически сгенерированные типы из OpenAPI спецификации Telegram Bot API 9.2.0\n- **Event-driven архитектура** - гибкая система событий для обработки обновлений\n- **Middleware система** - цепочка обработчиков для pre-processing обновлений\n- **Расширенная фильтрация** - мощная система фильтров с поддержкой RegExp\n- **Поддержка нескольких токенов** - управление несколькими ботами одновременно\n- **Long Polling Manager** - встроенный менеджер с worker threads и автоматическими перезапусками\n- **Обертки (Wrappers)** - удобные методы для работы с сообщениями и callback query\n- **Построители (Builders)** - fluent API для создания клавиатур и команд\n- **Обработка ошибок** - иерархия специализированных классов ошибок\n- **Интеграция с логированием** - поддержка LoggerTree и SimpleLogger\n- **Native Fetch API** - использует встроенный fetch без внешних зависимостей\n\n## Установка\n\n```bash\nnpm install @vvlad1973/telegram-bot-client\n```\n\n## Быстрый старт\n\n### Создание и инициализация бота\n\nБиблиотека поддерживает три режима работы с Telegram Bot API:\n\n1. **Inactive** - неактивный режим (только для отправки запросов)\n2. **LongPolling** - получение обновлений через long polling\n3. **Webhook** - получение обновлений через webhook\n\n#### Жизненный цикл маршрута (route)\n\nКаждый бот проходит следующие этапы:\n\n1. **Создание** - конфигурация маршрута (route) с токеном и режимом\n2. **Инициализация** - вызов `getMe` для получения информации о боте\n3. **Активация** - установка режима работы (webhook/polling)\n4. **Работа** - обработка обновлений\n5. **Деактивация** - остановка получения обновлений\n6. **Завершение** - закрытие всех ресурсов\n\n### Режим 1: Inactive (только отправка)\n\nИспользуйте этот режим, когда нужно только отправлять сообщения без получения обновлений:\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\n\n// Создание клиента\nconst bot = new TelegramBotClient({\n  routes: {\n    token: 'YOUR_BOT_TOKEN',\n    mode: RouteMode.Inactive\n  }\n});\n\n// Инициализация (получает информацию о боте через getMe)\nawait bot.init();\n\n// Отправка сообщения без получения обновлений\nawait bot.sendMessage({\n  chat_id: 123456789,\n  text: 'Привет! Это одностороннее сообщение.'\n});\n\n// Завершение работы\nawait bot.shutdown();\n```\n\n### Режим 2: Long Polling (получение обновлений)\n\nLong polling - рекомендуемый режим для разработки и небольших ботов:\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\n\n// Шаг 1: Создание клиента с конфигурацией\nconst bot = new TelegramBotClient({\n  routes: {\n    token: 'YOUR_BOT_TOKEN',\n    mode: RouteMode.LongPolling,\n    longPolling: {\n      timeout: 30,           // Таймаут long polling запроса (сек)\n      limit: 100,            // Максимальное количество обновлений\n      allowedUpdates: [      // Типы обновлений (опционально)\n        'message',\n        'callback_query'\n      ]\n    }\n  }\n});\n\n// Шаг 2: Установка обработчиков событий (до инициализации)\nbot.on('/start', (params, wrapper) => {\n  wrapper.replyMessage('Добро пожаловать! Я бот в режиме Long Polling.');\n});\n\nbot.on('message.text', (wrapper) => {\n  wrapper.replyMessage(`Эхо: ${wrapper.text}`);\n});\n\nbot.on('callback_query', (wrapper) => {\n  wrapper.answer('Кнопка нажата!');\n});\n\n// Шаг 3: Инициализация (вызывает getMe, сохраняет информацию о боте)\nawait bot.init();\n\n// Шаг 4: Запуск long polling (начинает получать обновления)\nawait bot.startPolling();\n\nconsole.log('Бот запущен в режиме Long Polling');\n\n// Шаг 5: Graceful shutdown\nprocess.on('SIGINT', async () => {\n  console.log('Остановка бота...');\n  await bot.stopPolling();\n  await bot.shutdown();\n  process.exit(0);\n});\n```\n\n### Режим 3: Webhook (для продакшена)\n\nWebhook режим рекомендуется для продакшен-окружения:\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\nimport express from 'express';\n\n// Шаг 1: Создание клиента с webhook конфигурацией\nconst bot = new TelegramBotClient({\n  routes: {\n    token: 'YOUR_BOT_TOKEN',\n    mode: RouteMode.Webhook,\n    webhook: {\n      path: '/webhook/bot',           // Путь для webhook\n      secretToken: 'your-secret-123',  // Секретный токен для защиты\n      maxConnections: 100,             // Макс. одновременных соединений\n      allowedUpdates: [                // Типы обновлений\n        'message',\n        'callback_query'\n      ]\n    }\n  },\n  webhookBaseUrl: 'https://your-domain.com'  // Базовый URL (обязательно HTTPS!)\n});\n\n// Шаг 2: Установка обработчиков\nbot.on('/start', (params, wrapper) => {\n  wrapper.replyMessage('Привет! Я бот в режиме Webhook.');\n});\n\nbot.on('message.text', (wrapper) => {\n  wrapper.replyMessage(`Получено: ${wrapper.text}`);\n});\n\n// Шаг 3: Инициализация\nawait bot.init();\n\n// Шаг 4: Активация (устанавливает webhook через setWebhook)\nawait bot.activate();\n\n// Шаг 5: Настройка Express для обработки webhook\nconst app = express();\napp.use(express.json());\n\napp.post('/webhook/bot', async (req, res) => {\n  // Проверка секретного токена (опционально)\n  const secretToken = req.headers['x-telegram-bot-api-secret-token'];\n  if (secretToken !== 'your-secret-123') {\n    return res.status(403).send('Forbidden');\n  }\n\n  // Обработка обновления\n  try {\n    await bot.processUpdate(req.body);\n    res.status(200).send('OK');\n  } catch (error) {\n    console.error('Error processing update:', error);\n    res.status(500).send('Error');\n  }\n});\n\n// Шаг 6: Запуск сервера\nconst PORT = process.env.PORT || 3000;\napp.listen(PORT, () => {\n  console.log(`Webhook сервер запущен на порту ${PORT}`);\n});\n\n// Graceful shutdown\nprocess.on('SIGINT', async () => {\n  console.log('Остановка сервера...');\n  await bot.deactivate();  // Удаляет webhook через deleteWebhook\n  await bot.shutdown();\n  process.exit(0);\n});\n```\n\n### Режим 4: Переключение между режимами\n\nВы можете создать бота в одном режиме и переключить его в другой:\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\n\n// Создание в неактивном режиме\nconst bot = new TelegramBotClient({\n  routes: {\n    token: 'YOUR_BOT_TOKEN',\n    mode: RouteMode.Inactive\n  }\n});\n\n// Инициализация\nawait bot.init();\n\n// Переключение на Long Polling\nawait bot.activate(undefined, RouteMode.LongPolling);\nawait bot.startPolling();\n\n// Работа в режиме Long Polling...\nconsole.log('Работаем в Long Polling...');\nawait new Promise(resolve => setTimeout(resolve, 10000));\n\n// Остановка polling и переключение на Webhook\nawait bot.stopPolling();\nawait bot.deactivate();\n\n// Обновление конфигурации маршрута\nbot.setRoute('default', {\n  token: 'YOUR_BOT_TOKEN',\n  mode: RouteMode.Webhook,\n  webhook: { path: '/webhook' }\n});\n\n// Активация в режиме Webhook\nawait bot.activate(undefined, RouteMode.Webhook);\n\n// Теперь бот работает через webhook\n```\n\n### Режим 5: Автоматическая активация\n\nДля упрощения можно использовать автоматическую активацию:\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\n\nconst bot = new TelegramBotClient({\n  routes: {\n    token: 'YOUR_BOT_TOKEN',\n    mode: RouteMode.LongPolling,\n    autoActivate: true  // Автоматическая активация при инициализации\n  }\n});\n\n// Обработчики\nbot.on('message.text', (wrapper) => {\n  wrapper.replyMessage(`Эхо: ${wrapper.text}`);\n});\n\n// Только инициализация - активация произойдет автоматически\nawait bot.init();\n\n// Для Long Polling все равно нужно запустить polling\nawait bot.startPolling();\n```\n\n### Работа с клавиатурами\n\n```typescript\nimport { InlineKeyboardBuilder } from '@vvlad1973/telegram-bot-client';\n\n// Создание inline клавиатуры\nconst keyboard = new InlineKeyboardBuilder()\n  .appendRows(2)\n  .appendTextButton('Помощь', 'help', 0)\n  .appendTextButton('Настройки', 'settings', 0)\n  .appendUrlButton('Наш сайт', 'https://example.com', 1)\n  .build();\n\nbot.on('/menu', (params, wrapper) => {\n  wrapper.replyMessage('Выберите действие:', {\n    reply_markup: keyboard\n  });\n});\n\n// Обработка callback\nbot.on('callback_query', (wrapper) => {\n  if (wrapper.data === 'help') {\n    wrapper.editMessageText('Справка по боту...');\n    wrapper.answer();\n  }\n});\n```\n\n### Фильтрация обновлений\n\n```typescript\n// Фильтр по приватным чатам\nbot.onFilter({\n  type: 'message.text',\n  chat: 'private'\n}, (wrapper) => {\n  wrapper.replyMessage('Это приватный чат');\n});\n\n// Фильтр с RegExp\nbot.onFilter({\n  type: 'message.text',\n  contents: /^\\/admin/,\n  user: /^(111111|222222)$/ // Только определенные пользователи\n}, (wrapper) => {\n  wrapper.replyMessage('Админ-команда');\n});\n\n// Фильтр по типу чата\nbot.onFilter({\n  type: 'message.text',\n  chat_type: 'group'\n}, (wrapper) => {\n  console.log('Сообщение из группы');\n});\n```\n\n### Middleware\n\n```typescript\n// Логирование всех обновлений\nbot.use((update, next, client) => {\n  console.log('Update ID:', update.update_id);\n  next();\n});\n\n// Аутентификация\nbot.use((update, next, client) => {\n  const userId = update.message?.from?.id;\n  if (isAuthorized(userId)) {\n    next(); // Продолжить обработку\n  }\n  // Если не вызвать next(), обработка остановится\n});\n\n// Обработка ошибок\nbot.use(async (update, next, client) => {\n  try {\n    next();\n  } catch (error) {\n    console.error('Error processing update:', error);\n  }\n});\n```\n\n## Документация\n\n- [Быстрый старт](docs/QUICK-START.md) - подробное руководство для начинающих\n- [Migration Guide v2.0](docs/MIGRATION-GUIDE-v2.md) - миграция с v1.x на v2.0\n- [Справочник классов](docs/CLASS-REFERENCE.md) - полное описание всех классов\n- API Reference - TypeDoc документация (запустите `npm run docs` для генерации)\n\n## Архитектура\n\n```text\nTelegramBotClient (клиентский слой)\n    ↓ наследует\nBaseTelegramApi (сгенерированные методы API)\n    ↓ использует\nTelegramTransport (транспортный слой)\n    ↓ использует\nTelegramHttpClient (HTTP-клиент)\n    ↓ использует\nNative Fetch API\n```\n\n### Основные компоненты\n\n- **TelegramBotClient** - основной клиент с системой событий и фильтрацией\n- **TelegramTransport** - транспортный слой для HTTP-запросов\n- **TelegramHttpClient** - HTTP-клиент с автоматическими повторами\n- **TokensManager** - управление несколькими токенами ботов\n- **LongPollingManager** - менеджер long polling с worker threads\n- **MessageWrapper** - обертка для удобной работы с сообщениями\n- **CallbackQueryWrapper** - обертка для callback query\n- **InlineKeyboardBuilder** - построитель inline-клавиатур\n- **ReplyKeyboardBuilder** - построитель обычных клавиатур\n\n## Примеры использования\n\n### Несколько токенов\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\n\n// Создание клиента с несколькими маршрутами\nconst bot = new TelegramBotClient({\n  routes: [\n    {\n      token: 'TOKEN_1',\n      mode: RouteMode.LongPolling\n    },\n    {\n      token: 'TOKEN_2',\n      mode: RouteMode.Webhook,\n      webhook: { path: '/webhook/support' }\n    }\n  ],\n  defaultRouteId: 'default',\n  webhookBaseUrl: 'https://example.com'\n});\n\n// Инициализация всех маршрутов\nawait bot.init();\n\n// Активация конкретного маршрута\nawait bot.managers.lifecycle.activateRoute('default', RouteMode.LongPolling);\n\n// Отправка от конкретного бота\nawait bot.sendMessage(\n  { chat_id: 123, text: 'Hello from main bot!' },\n  { routeId: 'default' }\n);\n\nawait bot.sendMessage(\n  { chat_id: 456, text: 'Hello from support!' },\n  { routeId: 'route_1' }\n);\n\n// Запуск polling для всех маршрутов в режиме LongPolling\nawait bot.startPolling();\n```\n\n### Работа с менеджерами (Advanced)\n\n`TelegramBotClient` использует три менеджера для управления маршрутами:\n\n#### 1. RouteConfigManager - управление конфигурацией\n\n```typescript\n// Доступ к менеджеру\nconst configManager = bot.managers.config;\n\n// Получение списка всех маршрутов\nconst routeIds = configManager.getRouteIds();\nconsole.log('Доступные маршруты:', routeIds);\n\n// Получение конфигурации маршрута\nconst config = configManager.getRoute('default');\nconsole.log('Режим:', config.mode);\nconsole.log('Токен:', config.token);\n\n// Установка/обновление конфигурации маршрута\nbot.setRoute('bot2', {\n  token: 'NEW_TOKEN',\n  mode: RouteMode.LongPolling,\n  longPolling: {\n    timeout: 30,\n    limit: 100\n  }\n});\n\n// Получение ID маршрута по умолчанию\nconst defaultRouteId = configManager.getDefaultRouteId();\n\n// Проверка существования маршрута\nif (configManager.hasRoute('bot2')) {\n  console.log('Маршрут bot2 существует');\n}\n```\n\n#### 2. RouteLifecycleManager - управление жизненным циклом\n\n```typescript\n// Доступ к менеджеру\nconst lifecycleManager = bot.managers.lifecycle;\n\n// Инициализация конкретного маршрута (вызывает getMe)\nawait lifecycleManager.initRoute('bot1');\n\n// Активация маршрута в указанном режиме\nawait lifecycleManager.activateRoute('bot1', RouteMode.LongPolling);\n\n// Деактивация маршрута (удаляет webhook, останавливает polling)\nawait lifecycleManager.deactivateRoute('bot1');\n\n// Получение информации о боте (после init)\nconst botInfo = lifecycleManager.getBotInfo('bot1');\nconsole.log('Имя бота:', botInfo.username);\nconsole.log('ID бота:', botInfo.id);\n\n// Получение статуса маршрута\nconst status = lifecycleManager.getRouteStatus('bot1');\nconsole.log('Статус:', status.state);        // 'initialized', 'active', 'inactive'\nconsole.log('Режим:', status.mode);           // RouteMode\nconsole.log('Последняя ошибка:', status.lastError);\n\n// Переключение режима (деактивирует текущий и активирует новый)\nawait lifecycleManager.switchMode('bot1', RouteMode.Webhook);\n\n// Горячая перезагрузка конфигурации (применяет новые настройки)\nawait lifecycleManager.hotReload('bot1');\n```\n\n#### 3. PollingIntegrationManager - управление polling\n\n```typescript\n// Доступ к менеджеру\nconst pollingManager = bot.managers.polling;\n\n// Запуск polling для конкретного маршрута\nawait pollingManager.startPolling();\n\n// Остановка polling\nawait pollingManager.stopPolling();\n\n// Проверка активности polling для маршрута\nconst isActive = pollingManager.isPollingActive('bot1');\nconsole.log('Polling активен:', isActive);\n\n// Получение текущего offset для маршрута\nconst offset = pollingManager.getOffset('bot1');\nconsole.log('Текущий offset:', offset);\n\n// Получение статистики polling для маршрута\nconst stats = pollingManager.getStats('bot1');\nconsole.log('Всего получено обновлений:', stats.totalUpdates);\nconsole.log('Последнее обновление:', stats.lastUpdate);\nconsole.log('Статус worker:', stats.workerStatus);\n```\n\n#### Полный пример с менеджерами\n\n```typescript\nimport { TelegramBotClient, RouteMode } from '@vvlad1973/telegram-bot-client';\n\n// Создание клиента с несколькими маршрутами\nconst bot = new TelegramBotClient({\n  routes: new Map([\n    ['main', {\n      token: 'MAIN_BOT_TOKEN',\n      mode: RouteMode.Inactive\n    }],\n    ['support', {\n      token: 'SUPPORT_BOT_TOKEN',\n      mode: RouteMode.Inactive\n    }]\n  ]),\n  defaultRouteId: 'main'\n});\n\n// 1. Инициализация обоих ботов\nconsole.log('Инициализация ботов...');\nawait bot.managers.lifecycle.initRoute('main');\nawait bot.managers.lifecycle.initRoute('support');\n\n// Проверка информации о ботах\nconst mainInfo = bot.managers.lifecycle.getBotInfo('main');\nconst supportInfo = bot.managers.lifecycle.getBotInfo('support');\nconsole.log('Основной бот:', mainInfo.username);\nconsole.log('Бот поддержки:', supportInfo.username);\n\n// 2. Активация основного бота в Long Polling\nconsole.log('Активация основного бота...');\nawait bot.managers.lifecycle.activateRoute('main', RouteMode.LongPolling);\nawait bot.startPolling();\n\n// 3. Активация бота поддержки в Webhook\nconsole.log('Активация бота поддержки...');\nbot.setRoute('support', {\n  token: 'SUPPORT_BOT_TOKEN',\n  mode: RouteMode.Webhook,\n  webhook: { path: '/webhook/support' }\n});\nawait bot.managers.lifecycle.activateRoute('support', RouteMode.Webhook);\n\n// 4. Мониторинг состояния\nsetInterval(() => {\n  // Статус маршрутов\n  const mainStatus = bot.managers.lifecycle.getRouteStatus('main');\n  const supportStatus = bot.managers.lifecycle.getRouteStatus('support');\n\n  console.log('Основной бот - состояние:', mainStatus.state, 'режим:', mainStatus.mode);\n  console.log('Бот поддержки - состояние:', supportStatus.state, 'режим:', supportStatus.mode);\n\n  // Статистика polling для основного бота\n  if (bot.managers.polling.isPollingActive('main')) {\n    const stats = bot.managers.polling.getStats('main');\n    console.log('Получено обновлений:', stats.totalUpdates);\n  }\n}, 30000);\n\n// 5. Переключение режима основного бота (с Long Polling на Webhook)\nsetTimeout(async () => {\n  console.log('Переключение основного бота на Webhook...');\n  await bot.stopPolling();\n  bot.setRoute('main', {\n    token: 'MAIN_BOT_TOKEN',\n    mode: RouteMode.Webhook,\n    webhook: { path: '/webhook/main' }\n  });\n  await bot.managers.lifecycle.switchMode('main', RouteMode.Webhook);\n}, 60000);\n\n// Graceful shutdown\nprocess.on('SIGINT', async () => {\n  console.log('Остановка всех ботов...');\n\n  // Деактивация всех маршрутов\n  for (const routeId of bot.managers.config.getRouteIds()) {\n    await bot.managers.lifecycle.deactivateRoute(routeId);\n  }\n\n  await bot.shutdown();\n  process.exit(0);\n});\n```\n\n### Обработка ошибок\n\n```typescript\nimport { TelegramRateLimitError, TelegramBadRequestError } from '@vvlad1973/telegram-bot-client';\n\ntry {\n  await bot.sendMessage({\n    chat_id: chatId,\n    text: 'Hello!'\n  });\n} catch (error) {\n  if (error instanceof TelegramRateLimitError) {\n    console.log(`Rate limited. Retry after ${error.retryAfter} seconds`);\n    // Автоматическая задержка\n    await new Promise(resolve => setTimeout(resolve, error.getRetryDelay()));\n  } else if (error instanceof TelegramBadRequestError) {\n    console.error('Bad request:', error.description);\n  }\n}\n```\n\n### Логирование\n\n```typescript\nimport { SimpleLogger } from '@vvlad1973/simple-logger';\n\nconst logger = new SimpleLogger({\n  level: 'info',\n  prettyPrint: true\n});\n\nconst transport = new TelegramTransport({\n  tokens: { default: token },\n  logger\n});\n\nconst bot = new TelegramBotClient({\n  transport,\n  logger\n});\n\n// Логи автоматически выводятся на всех уровнях\n```\n\n### MessageWrapper методы\n\n```typescript\nbot.on('message.text', async (wrapper) => {\n  // Ответ на сообщение\n  await wrapper.replyMessage('Hello!');\n\n  // Отправка в тот же чат\n  await wrapper.answerMessage('Message sent!');\n\n  // Редактирование\n  await wrapper.editText('Updated text');\n\n  // Удаление\n  await wrapper.delete();\n\n  // Пересылка\n  await wrapper.forward(otherChatId);\n\n  // Закрепление\n  await wrapper.pin();\n\n  // Chat action\n  await wrapper.answerChatAction('typing');\n\n  // Отправка фото\n  await wrapper.replyPhoto('file_id_or_url', {\n    caption: 'Photo caption'\n  });\n});\n```\n\n### ReplyKeyboardBuilder\n\n```typescript\nimport { ReplyKeyboardBuilder } from '@vvlad1973/telegram-bot-client';\n\nconst keyboard = new ReplyKeyboardBuilder()\n  .appendRows(3)\n  .appendTextButton('Начать', 0)\n  .appendTextButton('Помощь', 0)\n  .appendRequestContactButton('Отправить контакт', 1)\n  .appendRequestLocationButton('Отправить локацию', 2)\n  .setResizeKeyboard(true)\n  .setOneTimeKeyboard(true)\n  .build();\n\nawait bot.sendMessage({\n  chat_id: chatId,\n  text: 'Выберите действие:',\n  reply_markup: keyboard\n});\n```\n\n## Требования\n\n- Node.js >= 18.0.0\n- npm >= 9.0.0\n- TypeScript >= 5.0 (для разработки)\n\n## Зависимости\n\nОсновные зависимости:\n\n- `@vvlad1973/base-api` - базовый API класс\n- `@vvlad1973/data-validator` - валидация данных\n- `@vvlad1973/logger-tree` - система логирования\n- `@vvlad1973/simple-logger` - простой логгер\n- `@vvlad1973/utils` - утилиты\n- `ajv` - JSON Schema валидация\n\n## Скрипты\n\n```bash\n# Сборка проекта\nnpm run build\n\n# Тестирование\nnpm test\nnpm run test:coverage\n\n# Линтинг\nnpm run lint\nnpm run lint:fix\nnpm run lint:md\nnpm run lint:md:fix\n\n# Генерация документации\nnpm run docs\n\n# Обновление API\nnpm run fetch-api      # Скачать спецификацию Telegram Bot API\nnpm run generate-api   # Сгенерировать типы и методы\nnpm run update-api     # Скачать и сгенерировать\n```\n\n## Разработка\n\n### Генерация API\n\nТипы и методы автоматически генерируются из OpenAPI спецификации:\n\n```bash\n# Скачать актуальную спецификацию\nnpm run fetch-api\n\n# Сгенерировать классы и типы\nnpm run generate-api\n\n# Или всё вместе\nnpm run update-api\n```\n\n### Структура проекта\n\n```text\ntelegram-bot-client/\n├── src/\n│   ├── api/                    # Сгенерированные API классы\n│   │   ├── BaseTelegramApi.generated.ts\n│   │   └── types/              # Сгенерированные типы\n│   ├── client/                 # TelegramBotClient\n│   ├── transport/              # Транспортный слой\n│   ├── builders/               # Построители клавиатур\n│   ├── wrappers/               # Обертки для Message и CallbackQuery\n│   ├── agents/                 # Long Polling Manager\n│   ├── errors/                 # Классы ошибок\n│   ├── helpers/                # Вспомогательные функции\n│   └── types/                  # Общие типы\n├── scripts/                    # Скрипты генерации\n├── docs/                       # Документация\n├── examples/                   # Примеры\n└── models/                     # OpenAPI спецификация\n```\n\n## Примеры\n\nВсе примеры использования представлены в разделах выше с подробными комментариями и пояснениями.\n\n## Changelog\n\nСм. [CHANGELOG.md](CHANGELOG.md) для полной истории изменений.\n\n## Лицензия\n\nMIT with Commercial Use License\n\n## Автор\n\nVladislav Vnukovskiy <vvlad1973@gmail.com>\n\n## Ссылки\n\n- [GitHub репозиторий](https://github.com/vvlad1973/telegram-bot-client)\n- [npm пакет](https://www.npmjs.com/package/@vvlad1973/telegram-bot-client)\n- [Telegram Bot API документация](https://core.telegram.org/bots/api)\n- [Создание бота через @BotFather](https://t.me/botfather)\n\n## Поддержка\n\nЕсли у вас возникли проблемы или вопросы:\n\n1. Проверьте [документацию](docs/QUICK-START.md)\n2. Посмотрите [примеры](examples/README.md)\n3. Создайте [issue на GitHub](https://github.com/vvlad1973/telegram-bot-client/issues)\n\n## Благодарности\n\n- Telegram Team за отличный Bot API\n- Сообщество разработчиков Telegram ботов\n","readmeFilename":"README.md"}