@dementevdev/maxbot-ts 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1176 -0
  4. package/dist/cjs/api/BotsApi.d.ts +17 -0
  5. package/dist/cjs/api/BotsApi.d.ts.map +1 -0
  6. package/dist/cjs/api/BotsApi.js +22 -0
  7. package/dist/cjs/api/ChatsApi.d.ts +87 -0
  8. package/dist/cjs/api/ChatsApi.d.ts.map +1 -0
  9. package/dist/cjs/api/ChatsApi.js +144 -0
  10. package/dist/cjs/api/MessagesApi.d.ts +41 -0
  11. package/dist/cjs/api/MessagesApi.d.ts.map +1 -0
  12. package/dist/cjs/api/MessagesApi.js +66 -0
  13. package/dist/cjs/api/SubscriptionsApi.d.ts +45 -0
  14. package/dist/cjs/api/SubscriptionsApi.d.ts.map +1 -0
  15. package/dist/cjs/api/SubscriptionsApi.js +69 -0
  16. package/dist/cjs/api/UploadsApi.d.ts +45 -0
  17. package/dist/cjs/api/UploadsApi.d.ts.map +1 -0
  18. package/dist/cjs/api/UploadsApi.js +113 -0
  19. package/dist/cjs/api/index.d.ts +7 -0
  20. package/dist/cjs/api/index.d.ts.map +1 -0
  21. package/dist/cjs/api/index.js +14 -0
  22. package/dist/cjs/api/interfaces.d.ts +108 -0
  23. package/dist/cjs/api/interfaces.d.ts.map +1 -0
  24. package/dist/cjs/api/interfaces.js +3 -0
  25. package/dist/cjs/bot/Bot.d.ts +380 -0
  26. package/dist/cjs/bot/Bot.d.ts.map +1 -0
  27. package/dist/cjs/bot/Bot.js +624 -0
  28. package/dist/cjs/bot/Composer.d.ts +131 -0
  29. package/dist/cjs/bot/Composer.d.ts.map +1 -0
  30. package/dist/cjs/bot/Composer.js +218 -0
  31. package/dist/cjs/bot/context/BotStartedContext.d.ts +83 -0
  32. package/dist/cjs/bot/context/BotStartedContext.d.ts.map +1 -0
  33. package/dist/cjs/bot/context/BotStartedContext.js +113 -0
  34. package/dist/cjs/bot/context/CallbackContext.d.ts +107 -0
  35. package/dist/cjs/bot/context/CallbackContext.d.ts.map +1 -0
  36. package/dist/cjs/bot/context/CallbackContext.js +158 -0
  37. package/dist/cjs/bot/context/ChatContext.d.ts +35 -0
  38. package/dist/cjs/bot/context/ChatContext.d.ts.map +1 -0
  39. package/dist/cjs/bot/context/ChatContext.js +52 -0
  40. package/dist/cjs/bot/context/MessageContext.d.ts +149 -0
  41. package/dist/cjs/bot/context/MessageContext.d.ts.map +1 -0
  42. package/dist/cjs/bot/context/MessageContext.js +228 -0
  43. package/dist/cjs/bot/context/guards.d.ts +69 -0
  44. package/dist/cjs/bot/context/guards.d.ts.map +1 -0
  45. package/dist/cjs/bot/context/guards.js +85 -0
  46. package/dist/cjs/bot/context/index.d.ts +6 -0
  47. package/dist/cjs/bot/context/index.d.ts.map +1 -0
  48. package/dist/cjs/bot/context/index.js +18 -0
  49. package/dist/cjs/bot/dispatch.d.ts +51 -0
  50. package/dist/cjs/bot/dispatch.d.ts.map +1 -0
  51. package/dist/cjs/bot/dispatch.js +201 -0
  52. package/dist/cjs/bot/index.d.ts +10 -0
  53. package/dist/cjs/bot/index.d.ts.map +1 -0
  54. package/dist/cjs/bot/index.js +24 -0
  55. package/dist/cjs/bot/lifecycle.d.ts +85 -0
  56. package/dist/cjs/bot/lifecycle.d.ts.map +1 -0
  57. package/dist/cjs/bot/lifecycle.js +167 -0
  58. package/dist/cjs/bot/metrics.d.ts +18 -0
  59. package/dist/cjs/bot/metrics.d.ts.map +1 -0
  60. package/dist/cjs/bot/metrics.js +3 -0
  61. package/dist/cjs/bot/routing.d.ts +131 -0
  62. package/dist/cjs/bot/routing.d.ts.map +1 -0
  63. package/dist/cjs/bot/routing.js +198 -0
  64. package/dist/cjs/bot/triggers.d.ts +61 -0
  65. package/dist/cjs/bot/triggers.d.ts.map +1 -0
  66. package/dist/cjs/bot/triggers.js +84 -0
  67. package/dist/cjs/core/errors/MaxError.d.ts +11 -0
  68. package/dist/cjs/core/errors/MaxError.d.ts.map +1 -0
  69. package/dist/cjs/core/errors/MaxError.js +19 -0
  70. package/dist/cjs/core/errors/errors.d.ts +59 -0
  71. package/dist/cjs/core/errors/errors.d.ts.map +1 -0
  72. package/dist/cjs/core/errors/errors.js +84 -0
  73. package/dist/cjs/core/errors/index.d.ts +3 -0
  74. package/dist/cjs/core/errors/index.d.ts.map +1 -0
  75. package/dist/cjs/core/errors/index.js +13 -0
  76. package/dist/cjs/core/http/HttpClient.d.ts +28 -0
  77. package/dist/cjs/core/http/HttpClient.d.ts.map +1 -0
  78. package/dist/cjs/core/http/HttpClient.js +148 -0
  79. package/dist/cjs/core/http/index.d.ts +3 -0
  80. package/dist/cjs/core/http/index.d.ts.map +1 -0
  81. package/dist/cjs/core/http/index.js +6 -0
  82. package/dist/cjs/core/http/interfaces.d.ts +42 -0
  83. package/dist/cjs/core/http/interfaces.d.ts.map +1 -0
  84. package/dist/cjs/core/http/interfaces.js +3 -0
  85. package/dist/cjs/core/rate-limiter/RateLimiter.d.ts +46 -0
  86. package/dist/cjs/core/rate-limiter/RateLimiter.d.ts.map +1 -0
  87. package/dist/cjs/core/rate-limiter/RateLimiter.js +110 -0
  88. package/dist/cjs/core/rate-limiter/index.d.ts +3 -0
  89. package/dist/cjs/core/rate-limiter/index.d.ts.map +1 -0
  90. package/dist/cjs/core/rate-limiter/index.js +6 -0
  91. package/dist/cjs/filters/index.d.ts +2 -0
  92. package/dist/cjs/filters/index.d.ts.map +1 -0
  93. package/dist/cjs/filters/index.js +10 -0
  94. package/dist/cjs/filters/predicates.d.ts +85 -0
  95. package/dist/cjs/filters/predicates.d.ts.map +1 -0
  96. package/dist/cjs/filters/predicates.js +111 -0
  97. package/dist/cjs/index.d.ts +11 -0
  98. package/dist/cjs/index.d.ts.map +1 -0
  99. package/dist/cjs/index.js +27 -0
  100. package/dist/cjs/middleware/compose.d.ts +28 -0
  101. package/dist/cjs/middleware/compose.d.ts.map +1 -0
  102. package/dist/cjs/middleware/compose.js +89 -0
  103. package/dist/cjs/middleware/index.d.ts +3 -0
  104. package/dist/cjs/middleware/index.d.ts.map +1 -0
  105. package/dist/cjs/middleware/index.js +7 -0
  106. package/dist/cjs/middleware/types.d.ts +17 -0
  107. package/dist/cjs/middleware/types.d.ts.map +1 -0
  108. package/dist/cjs/middleware/types.js +3 -0
  109. package/dist/cjs/package.json +3 -0
  110. package/dist/cjs/transport/LongPollingTransport.d.ts +33 -0
  111. package/dist/cjs/transport/LongPollingTransport.d.ts.map +1 -0
  112. package/dist/cjs/transport/LongPollingTransport.js +153 -0
  113. package/dist/cjs/transport/WebhookTransport.d.ts +40 -0
  114. package/dist/cjs/transport/WebhookTransport.d.ts.map +1 -0
  115. package/dist/cjs/transport/WebhookTransport.js +229 -0
  116. package/dist/cjs/transport/index.d.ts +4 -0
  117. package/dist/cjs/transport/index.d.ts.map +1 -0
  118. package/dist/cjs/transport/index.js +8 -0
  119. package/dist/cjs/transport/interfaces.d.ts +74 -0
  120. package/dist/cjs/transport/interfaces.d.ts.map +1 -0
  121. package/dist/cjs/transport/interfaces.js +3 -0
  122. package/dist/cjs/types/bot.d.ts +19 -0
  123. package/dist/cjs/types/bot.d.ts.map +1 -0
  124. package/dist/cjs/types/bot.js +3 -0
  125. package/dist/cjs/types/chat.d.ts +94 -0
  126. package/dist/cjs/types/chat.d.ts.map +1 -0
  127. package/dist/cjs/types/chat.js +3 -0
  128. package/dist/cjs/types/common.d.ts +38 -0
  129. package/dist/cjs/types/common.d.ts.map +1 -0
  130. package/dist/cjs/types/common.js +6 -0
  131. package/dist/cjs/types/index.d.ts +9 -0
  132. package/dist/cjs/types/index.d.ts.map +1 -0
  133. package/dist/cjs/types/index.js +26 -0
  134. package/dist/cjs/types/keyboard.d.ts +97 -0
  135. package/dist/cjs/types/keyboard.d.ts.map +1 -0
  136. package/dist/cjs/types/keyboard.js +3 -0
  137. package/dist/cjs/types/message.d.ts +162 -0
  138. package/dist/cjs/types/message.d.ts.map +1 -0
  139. package/dist/cjs/types/message.js +3 -0
  140. package/dist/cjs/types/subscription.d.ts +23 -0
  141. package/dist/cjs/types/subscription.d.ts.map +1 -0
  142. package/dist/cjs/types/subscription.js +3 -0
  143. package/dist/cjs/types/update.d.ts +99 -0
  144. package/dist/cjs/types/update.d.ts.map +1 -0
  145. package/dist/cjs/types/update.js +3 -0
  146. package/dist/cjs/types/upload.d.ts +29 -0
  147. package/dist/cjs/types/upload.d.ts.map +1 -0
  148. package/dist/cjs/types/upload.js +3 -0
  149. package/dist/cjs/utils/Histogram.d.ts +93 -0
  150. package/dist/cjs/utils/Histogram.d.ts.map +1 -0
  151. package/dist/cjs/utils/Histogram.js +103 -0
  152. package/dist/cjs/utils/assertNever.d.ts +19 -0
  153. package/dist/cjs/utils/assertNever.d.ts.map +1 -0
  154. package/dist/cjs/utils/assertNever.js +24 -0
  155. package/dist/cjs/utils/format.d.ts +22 -0
  156. package/dist/cjs/utils/format.d.ts.map +1 -0
  157. package/dist/cjs/utils/format.js +25 -0
  158. package/dist/cjs/utils/index.d.ts +6 -0
  159. package/dist/cjs/utils/index.d.ts.map +1 -0
  160. package/dist/cjs/utils/index.js +14 -0
  161. package/dist/cjs/utils/keyboard.d.ts +70 -0
  162. package/dist/cjs/utils/keyboard.d.ts.map +1 -0
  163. package/dist/cjs/utils/keyboard.js +166 -0
  164. package/dist/esm/api/BotsApi.d.ts +17 -0
  165. package/dist/esm/api/BotsApi.d.ts.map +1 -0
  166. package/dist/esm/api/BotsApi.js +18 -0
  167. package/dist/esm/api/ChatsApi.d.ts +87 -0
  168. package/dist/esm/api/ChatsApi.d.ts.map +1 -0
  169. package/dist/esm/api/ChatsApi.js +140 -0
  170. package/dist/esm/api/MessagesApi.d.ts +41 -0
  171. package/dist/esm/api/MessagesApi.d.ts.map +1 -0
  172. package/dist/esm/api/MessagesApi.js +62 -0
  173. package/dist/esm/api/SubscriptionsApi.d.ts +45 -0
  174. package/dist/esm/api/SubscriptionsApi.d.ts.map +1 -0
  175. package/dist/esm/api/SubscriptionsApi.js +65 -0
  176. package/dist/esm/api/UploadsApi.d.ts +45 -0
  177. package/dist/esm/api/UploadsApi.d.ts.map +1 -0
  178. package/dist/esm/api/UploadsApi.js +109 -0
  179. package/dist/esm/api/index.d.ts +7 -0
  180. package/dist/esm/api/index.d.ts.map +1 -0
  181. package/dist/esm/api/index.js +6 -0
  182. package/dist/esm/api/interfaces.d.ts +108 -0
  183. package/dist/esm/api/interfaces.d.ts.map +1 -0
  184. package/dist/esm/api/interfaces.js +2 -0
  185. package/dist/esm/bot/Bot.d.ts +380 -0
  186. package/dist/esm/bot/Bot.d.ts.map +1 -0
  187. package/dist/esm/bot/Bot.js +620 -0
  188. package/dist/esm/bot/Composer.d.ts +131 -0
  189. package/dist/esm/bot/Composer.d.ts.map +1 -0
  190. package/dist/esm/bot/Composer.js +214 -0
  191. package/dist/esm/bot/context/BotStartedContext.d.ts +83 -0
  192. package/dist/esm/bot/context/BotStartedContext.d.ts.map +1 -0
  193. package/dist/esm/bot/context/BotStartedContext.js +109 -0
  194. package/dist/esm/bot/context/CallbackContext.d.ts +107 -0
  195. package/dist/esm/bot/context/CallbackContext.d.ts.map +1 -0
  196. package/dist/esm/bot/context/CallbackContext.js +154 -0
  197. package/dist/esm/bot/context/ChatContext.d.ts +35 -0
  198. package/dist/esm/bot/context/ChatContext.d.ts.map +1 -0
  199. package/dist/esm/bot/context/ChatContext.js +48 -0
  200. package/dist/esm/bot/context/MessageContext.d.ts +149 -0
  201. package/dist/esm/bot/context/MessageContext.d.ts.map +1 -0
  202. package/dist/esm/bot/context/MessageContext.js +224 -0
  203. package/dist/esm/bot/context/guards.d.ts +69 -0
  204. package/dist/esm/bot/context/guards.d.ts.map +1 -0
  205. package/dist/esm/bot/context/guards.js +78 -0
  206. package/dist/esm/bot/context/index.d.ts +6 -0
  207. package/dist/esm/bot/context/index.d.ts.map +1 -0
  208. package/dist/esm/bot/context/index.js +6 -0
  209. package/dist/esm/bot/dispatch.d.ts +51 -0
  210. package/dist/esm/bot/dispatch.d.ts.map +1 -0
  211. package/dist/esm/bot/dispatch.js +197 -0
  212. package/dist/esm/bot/index.d.ts +10 -0
  213. package/dist/esm/bot/index.d.ts.map +1 -0
  214. package/dist/esm/bot/index.js +9 -0
  215. package/dist/esm/bot/lifecycle.d.ts +85 -0
  216. package/dist/esm/bot/lifecycle.d.ts.map +1 -0
  217. package/dist/esm/bot/lifecycle.js +163 -0
  218. package/dist/esm/bot/metrics.d.ts +18 -0
  219. package/dist/esm/bot/metrics.d.ts.map +1 -0
  220. package/dist/esm/bot/metrics.js +2 -0
  221. package/dist/esm/bot/routing.d.ts +131 -0
  222. package/dist/esm/bot/routing.d.ts.map +1 -0
  223. package/dist/esm/bot/routing.js +194 -0
  224. package/dist/esm/bot/triggers.d.ts +61 -0
  225. package/dist/esm/bot/triggers.d.ts.map +1 -0
  226. package/dist/esm/bot/triggers.js +80 -0
  227. package/dist/esm/core/errors/MaxError.d.ts +11 -0
  228. package/dist/esm/core/errors/MaxError.d.ts.map +1 -0
  229. package/dist/esm/core/errors/MaxError.js +15 -0
  230. package/dist/esm/core/errors/errors.d.ts +59 -0
  231. package/dist/esm/core/errors/errors.d.ts.map +1 -0
  232. package/dist/esm/core/errors/errors.js +75 -0
  233. package/dist/esm/core/errors/index.d.ts +3 -0
  234. package/dist/esm/core/errors/index.d.ts.map +1 -0
  235. package/dist/esm/core/errors/index.js +3 -0
  236. package/dist/esm/core/http/HttpClient.d.ts +28 -0
  237. package/dist/esm/core/http/HttpClient.d.ts.map +1 -0
  238. package/dist/esm/core/http/HttpClient.js +144 -0
  239. package/dist/esm/core/http/index.d.ts +3 -0
  240. package/dist/esm/core/http/index.d.ts.map +1 -0
  241. package/dist/esm/core/http/index.js +2 -0
  242. package/dist/esm/core/http/interfaces.d.ts +42 -0
  243. package/dist/esm/core/http/interfaces.d.ts.map +1 -0
  244. package/dist/esm/core/http/interfaces.js +2 -0
  245. package/dist/esm/core/rate-limiter/RateLimiter.d.ts +46 -0
  246. package/dist/esm/core/rate-limiter/RateLimiter.d.ts.map +1 -0
  247. package/dist/esm/core/rate-limiter/RateLimiter.js +106 -0
  248. package/dist/esm/core/rate-limiter/index.d.ts +3 -0
  249. package/dist/esm/core/rate-limiter/index.d.ts.map +1 -0
  250. package/dist/esm/core/rate-limiter/index.js +2 -0
  251. package/dist/esm/filters/index.d.ts +2 -0
  252. package/dist/esm/filters/index.d.ts.map +1 -0
  253. package/dist/esm/filters/index.js +2 -0
  254. package/dist/esm/filters/predicates.d.ts +85 -0
  255. package/dist/esm/filters/predicates.d.ts.map +1 -0
  256. package/dist/esm/filters/predicates.js +104 -0
  257. package/dist/esm/index.d.ts +11 -0
  258. package/dist/esm/index.d.ts.map +1 -0
  259. package/dist/esm/index.js +11 -0
  260. package/dist/esm/middleware/compose.d.ts +28 -0
  261. package/dist/esm/middleware/compose.d.ts.map +1 -0
  262. package/dist/esm/middleware/compose.js +85 -0
  263. package/dist/esm/middleware/index.d.ts +3 -0
  264. package/dist/esm/middleware/index.d.ts.map +1 -0
  265. package/dist/esm/middleware/index.js +2 -0
  266. package/dist/esm/middleware/types.d.ts +17 -0
  267. package/dist/esm/middleware/types.d.ts.map +1 -0
  268. package/dist/esm/middleware/types.js +2 -0
  269. package/dist/esm/transport/LongPollingTransport.d.ts +33 -0
  270. package/dist/esm/transport/LongPollingTransport.d.ts.map +1 -0
  271. package/dist/esm/transport/LongPollingTransport.js +149 -0
  272. package/dist/esm/transport/WebhookTransport.d.ts +40 -0
  273. package/dist/esm/transport/WebhookTransport.d.ts.map +1 -0
  274. package/dist/esm/transport/WebhookTransport.js +225 -0
  275. package/dist/esm/transport/index.d.ts +4 -0
  276. package/dist/esm/transport/index.d.ts.map +1 -0
  277. package/dist/esm/transport/index.js +3 -0
  278. package/dist/esm/transport/interfaces.d.ts +74 -0
  279. package/dist/esm/transport/interfaces.d.ts.map +1 -0
  280. package/dist/esm/transport/interfaces.js +2 -0
  281. package/dist/esm/types/bot.d.ts +19 -0
  282. package/dist/esm/types/bot.d.ts.map +1 -0
  283. package/dist/esm/types/bot.js +2 -0
  284. package/dist/esm/types/chat.d.ts +94 -0
  285. package/dist/esm/types/chat.d.ts.map +1 -0
  286. package/dist/esm/types/chat.js +2 -0
  287. package/dist/esm/types/common.d.ts +38 -0
  288. package/dist/esm/types/common.d.ts.map +1 -0
  289. package/dist/esm/types/common.js +5 -0
  290. package/dist/esm/types/index.d.ts +9 -0
  291. package/dist/esm/types/index.d.ts.map +1 -0
  292. package/dist/esm/types/index.js +10 -0
  293. package/dist/esm/types/keyboard.d.ts +97 -0
  294. package/dist/esm/types/keyboard.d.ts.map +1 -0
  295. package/dist/esm/types/keyboard.js +2 -0
  296. package/dist/esm/types/message.d.ts +162 -0
  297. package/dist/esm/types/message.d.ts.map +1 -0
  298. package/dist/esm/types/message.js +2 -0
  299. package/dist/esm/types/subscription.d.ts +23 -0
  300. package/dist/esm/types/subscription.d.ts.map +1 -0
  301. package/dist/esm/types/subscription.js +2 -0
  302. package/dist/esm/types/update.d.ts +99 -0
  303. package/dist/esm/types/update.d.ts.map +1 -0
  304. package/dist/esm/types/update.js +2 -0
  305. package/dist/esm/types/upload.d.ts +29 -0
  306. package/dist/esm/types/upload.d.ts.map +1 -0
  307. package/dist/esm/types/upload.js +2 -0
  308. package/dist/esm/utils/Histogram.d.ts +93 -0
  309. package/dist/esm/utils/Histogram.d.ts.map +1 -0
  310. package/dist/esm/utils/Histogram.js +99 -0
  311. package/dist/esm/utils/assertNever.d.ts +19 -0
  312. package/dist/esm/utils/assertNever.d.ts.map +1 -0
  313. package/dist/esm/utils/assertNever.js +21 -0
  314. package/dist/esm/utils/format.d.ts +22 -0
  315. package/dist/esm/utils/format.d.ts.map +1 -0
  316. package/dist/esm/utils/format.js +22 -0
  317. package/dist/esm/utils/index.d.ts +6 -0
  318. package/dist/esm/utils/index.d.ts.map +1 -0
  319. package/dist/esm/utils/index.js +5 -0
  320. package/dist/esm/utils/keyboard.d.ts +70 -0
  321. package/dist/esm/utils/keyboard.d.ts.map +1 -0
  322. package/dist/esm/utils/keyboard.js +162 -0
  323. package/dist/types/api/BotsApi.d.ts +17 -0
  324. package/dist/types/api/BotsApi.d.ts.map +1 -0
  325. package/dist/types/api/ChatsApi.d.ts +87 -0
  326. package/dist/types/api/ChatsApi.d.ts.map +1 -0
  327. package/dist/types/api/MessagesApi.d.ts +41 -0
  328. package/dist/types/api/MessagesApi.d.ts.map +1 -0
  329. package/dist/types/api/SubscriptionsApi.d.ts +45 -0
  330. package/dist/types/api/SubscriptionsApi.d.ts.map +1 -0
  331. package/dist/types/api/UploadsApi.d.ts +45 -0
  332. package/dist/types/api/UploadsApi.d.ts.map +1 -0
  333. package/dist/types/api/index.d.ts +7 -0
  334. package/dist/types/api/index.d.ts.map +1 -0
  335. package/dist/types/api/interfaces.d.ts +108 -0
  336. package/dist/types/api/interfaces.d.ts.map +1 -0
  337. package/dist/types/bot/Bot.d.ts +380 -0
  338. package/dist/types/bot/Bot.d.ts.map +1 -0
  339. package/dist/types/bot/Composer.d.ts +131 -0
  340. package/dist/types/bot/Composer.d.ts.map +1 -0
  341. package/dist/types/bot/context/BotStartedContext.d.ts +83 -0
  342. package/dist/types/bot/context/BotStartedContext.d.ts.map +1 -0
  343. package/dist/types/bot/context/CallbackContext.d.ts +107 -0
  344. package/dist/types/bot/context/CallbackContext.d.ts.map +1 -0
  345. package/dist/types/bot/context/ChatContext.d.ts +35 -0
  346. package/dist/types/bot/context/ChatContext.d.ts.map +1 -0
  347. package/dist/types/bot/context/MessageContext.d.ts +149 -0
  348. package/dist/types/bot/context/MessageContext.d.ts.map +1 -0
  349. package/dist/types/bot/context/guards.d.ts +69 -0
  350. package/dist/types/bot/context/guards.d.ts.map +1 -0
  351. package/dist/types/bot/context/index.d.ts +6 -0
  352. package/dist/types/bot/context/index.d.ts.map +1 -0
  353. package/dist/types/bot/dispatch.d.ts +51 -0
  354. package/dist/types/bot/dispatch.d.ts.map +1 -0
  355. package/dist/types/bot/index.d.ts +10 -0
  356. package/dist/types/bot/index.d.ts.map +1 -0
  357. package/dist/types/bot/lifecycle.d.ts +85 -0
  358. package/dist/types/bot/lifecycle.d.ts.map +1 -0
  359. package/dist/types/bot/metrics.d.ts +18 -0
  360. package/dist/types/bot/metrics.d.ts.map +1 -0
  361. package/dist/types/bot/routing.d.ts +131 -0
  362. package/dist/types/bot/routing.d.ts.map +1 -0
  363. package/dist/types/bot/triggers.d.ts +61 -0
  364. package/dist/types/bot/triggers.d.ts.map +1 -0
  365. package/dist/types/core/errors/MaxError.d.ts +11 -0
  366. package/dist/types/core/errors/MaxError.d.ts.map +1 -0
  367. package/dist/types/core/errors/errors.d.ts +59 -0
  368. package/dist/types/core/errors/errors.d.ts.map +1 -0
  369. package/dist/types/core/errors/index.d.ts +3 -0
  370. package/dist/types/core/errors/index.d.ts.map +1 -0
  371. package/dist/types/core/http/HttpClient.d.ts +28 -0
  372. package/dist/types/core/http/HttpClient.d.ts.map +1 -0
  373. package/dist/types/core/http/index.d.ts +3 -0
  374. package/dist/types/core/http/index.d.ts.map +1 -0
  375. package/dist/types/core/http/interfaces.d.ts +42 -0
  376. package/dist/types/core/http/interfaces.d.ts.map +1 -0
  377. package/dist/types/core/rate-limiter/RateLimiter.d.ts +46 -0
  378. package/dist/types/core/rate-limiter/RateLimiter.d.ts.map +1 -0
  379. package/dist/types/core/rate-limiter/index.d.ts +3 -0
  380. package/dist/types/core/rate-limiter/index.d.ts.map +1 -0
  381. package/dist/types/filters/index.d.ts +2 -0
  382. package/dist/types/filters/index.d.ts.map +1 -0
  383. package/dist/types/filters/predicates.d.ts +85 -0
  384. package/dist/types/filters/predicates.d.ts.map +1 -0
  385. package/dist/types/index.d.ts +11 -0
  386. package/dist/types/index.d.ts.map +1 -0
  387. package/dist/types/middleware/compose.d.ts +28 -0
  388. package/dist/types/middleware/compose.d.ts.map +1 -0
  389. package/dist/types/middleware/index.d.ts +3 -0
  390. package/dist/types/middleware/index.d.ts.map +1 -0
  391. package/dist/types/middleware/types.d.ts +17 -0
  392. package/dist/types/middleware/types.d.ts.map +1 -0
  393. package/dist/types/transport/LongPollingTransport.d.ts +33 -0
  394. package/dist/types/transport/LongPollingTransport.d.ts.map +1 -0
  395. package/dist/types/transport/WebhookTransport.d.ts +40 -0
  396. package/dist/types/transport/WebhookTransport.d.ts.map +1 -0
  397. package/dist/types/transport/index.d.ts +4 -0
  398. package/dist/types/transport/index.d.ts.map +1 -0
  399. package/dist/types/transport/interfaces.d.ts +74 -0
  400. package/dist/types/transport/interfaces.d.ts.map +1 -0
  401. package/dist/types/types/bot.d.ts +19 -0
  402. package/dist/types/types/bot.d.ts.map +1 -0
  403. package/dist/types/types/chat.d.ts +94 -0
  404. package/dist/types/types/chat.d.ts.map +1 -0
  405. package/dist/types/types/common.d.ts +38 -0
  406. package/dist/types/types/common.d.ts.map +1 -0
  407. package/dist/types/types/index.d.ts +9 -0
  408. package/dist/types/types/index.d.ts.map +1 -0
  409. package/dist/types/types/keyboard.d.ts +97 -0
  410. package/dist/types/types/keyboard.d.ts.map +1 -0
  411. package/dist/types/types/message.d.ts +162 -0
  412. package/dist/types/types/message.d.ts.map +1 -0
  413. package/dist/types/types/subscription.d.ts +23 -0
  414. package/dist/types/types/subscription.d.ts.map +1 -0
  415. package/dist/types/types/update.d.ts +99 -0
  416. package/dist/types/types/update.d.ts.map +1 -0
  417. package/dist/types/types/upload.d.ts +29 -0
  418. package/dist/types/types/upload.d.ts.map +1 -0
  419. package/dist/types/utils/Histogram.d.ts +93 -0
  420. package/dist/types/utils/Histogram.d.ts.map +1 -0
  421. package/dist/types/utils/assertNever.d.ts +19 -0
  422. package/dist/types/utils/assertNever.d.ts.map +1 -0
  423. package/dist/types/utils/format.d.ts +22 -0
  424. package/dist/types/utils/format.d.ts.map +1 -0
  425. package/dist/types/utils/index.d.ts +6 -0
  426. package/dist/types/utils/index.d.ts.map +1 -0
  427. package/dist/types/utils/keyboard.d.ts +70 -0
  428. package/dist/types/utils/keyboard.d.ts.map +1 -0
  429. package/package.json +84 -0
@@ -0,0 +1,107 @@
1
+ import type { ContextApi, SendOptions } from "./MessageContext.js";
2
+ import type { User } from "../../types/common.js";
3
+ import type { Message, NewMessageBody } from "../../types/message.js";
4
+ import type { CallbackUpdate } from "../../types/update.js";
5
+ import type { Context } from "../Bot.js";
6
+ /**
7
+ * Опции ответа на callback
8
+ */
9
+ export interface AnswerOptions {
10
+ /** Обновить текущее сообщение */
11
+ message?: NewMessageBody;
12
+ /** Одноразовое уведомление пользователю */
13
+ notification?: string;
14
+ }
15
+ /**
16
+ * Контекст callback-запроса (нажатие на inline-кнопку).
17
+ */
18
+ export declare class CallbackContext {
19
+ private readonly update;
20
+ private readonly api;
21
+ /**
22
+ * Результат совпадения RegExp из `bot.action()`.
23
+ *
24
+ * Доступен только внутри обработчика `action()` с RegExp-паттерном.
25
+ * Содержит полный `RegExpExecArray`: `ctx.match[0]` — полное совпадение,
26
+ * `ctx.match[1]`, `ctx.match[2]`, ... — группы захвата.
27
+ *
28
+ * `null` если обработчик вызван не через `action()` или паттерн — строка.
29
+ *
30
+ * @example
31
+ * bot.action(/^buy:(\d+)$/, async (ctx) => {
32
+ * if (isCallbackContext(ctx)) console.log(ctx.match?.[1]); // id товара
33
+ * });
34
+ */
35
+ match: RegExpExecArray | null;
36
+ constructor(update: CallbackUpdate, api: ContextApi);
37
+ /** Исходное обновление */
38
+ get raw(): CallbackUpdate;
39
+ /** ID callback-запроса */
40
+ get callbackId(): string;
41
+ /** Данные callback (payload кнопки) */
42
+ get data(): string;
43
+ /**
44
+ * Сообщение, к которому была прикреплена кнопка.
45
+ * Может отсутствовать, если сообщение было удалено к моменту callback.
46
+ */
47
+ get message(): Message | null;
48
+ /** ID чата */
49
+ get chatId(): number | null;
50
+ /** Пользователь, нажавший кнопку — гарантировано присутствие API */
51
+ get callbackUser(): User;
52
+ /** ID пользователя, нажавшего кнопку */
53
+ get userId(): number;
54
+ /** Локаль пользователя */
55
+ get locale(): string | null;
56
+ /**
57
+ * Ответить на callback.
58
+ *
59
+ * Закрывает "часики" на кнопке и опционально показывает уведомление.
60
+ */
61
+ answer(options?: AnswerOptions): Promise<void>;
62
+ /**
63
+ * Ответить сообщением в чат.
64
+ *
65
+ * Бросает ошибку, если chat_id недоступен — сообщение было удалено.
66
+ */
67
+ reply(text: string, options?: SendOptions): Promise<Message>;
68
+ /**
69
+ * Редактировать сообщение с кнопкой.
70
+ */
71
+ editMessage(text: string, options?: SendOptions): Promise<void>;
72
+ /**
73
+ * Удалить сообщение с кнопкой.
74
+ *
75
+ * Бросает ошибку, если сообщение было удалено до callback.
76
+ *
77
+ * @example
78
+ * await ctx.deleteMessage();
79
+ */
80
+ deleteMessage(): Promise<void>;
81
+ /**
82
+ * Отправить произвольное действие в чат.
83
+ *
84
+ * Распространённые значения: `"typing_on"`, `"sending_photo"`,
85
+ * `"sending_video"`, `"sending_audio"`, `"sending_file"`, `"mark_seen"`.
86
+ *
87
+ * Бросает ошибку, если chat_id недоступен — сообщение удалено.
88
+ *
89
+ * @example
90
+ * await ctx.sendAction('typing_on');
91
+ */
92
+ sendAction(action: string): Promise<void>;
93
+ /**
94
+ * Проверить тип контекста с сужением типа (type narrowing).
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * bot.on('callback', async (ctx) => {
99
+ * if (ctx.has(hasCallbackPayload('confirm'))) {
100
+ * await ctx.answer({ notification: 'Подтверждено!' });
101
+ * }
102
+ * });
103
+ * ```
104
+ */
105
+ has<R extends Context>(filter: (ctx: Context) => ctx is R): this is R;
106
+ }
107
+ //# sourceMappingURL=CallbackContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallbackContext.d.ts","sourceRoot":"","sources":["../../../../src/bot/context/CallbackContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAmBxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAnBtB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,eAAe,GAAG,IAAI,CAAQ;gBAIlB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,UAAU;IAGlC,0BAA0B;IAC1B,IAAI,GAAG,IAAI,cAAc,CAExB;IAED,0BAA0B;IAC1B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAE5B;IAED,cAAc;IACd,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED,oEAAoE;IACpE,IAAI,YAAY,IAAI,IAAI,CAEvB;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,0BAA0B;IAC1B,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED;;;;OAIG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBlE;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAerE;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;;;;;;;;;OAUG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;CAGtE"}
@@ -0,0 +1,35 @@
1
+ import type { User } from "../../types/common.js";
2
+ import type { ChatUpdate } from "../../types/update.js";
3
+ import type { Context } from "../Bot.js";
4
+ /**
5
+ * Контекст системного события чата (bot_added, bot_removed, user_added, user_removed, chat_title_changed).
6
+ *
7
+ * Системные события не содержат message — для них неприменимы reply/send.
8
+ * Отдельный тип предотвращает runtime ошибки при обращении к message в MessageContext.
9
+ */
10
+ export declare class ChatContext {
11
+ private readonly update;
12
+ constructor(update: ChatUpdate);
13
+ /** Исходное обновление */
14
+ get raw(): ChatUpdate;
15
+ /** ID чата, в котором произошло событие */
16
+ get chatId(): number;
17
+ /** Пользователь, инициировавший событие */
18
+ get user(): User;
19
+ /** ID пользователя */
20
+ get userId(): number;
21
+ /** Является ли чат каналом */
22
+ get isChannel(): boolean;
23
+ /**
24
+ * Проверить тип контекста с сужением типа (type narrowing).
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * bot.on('bot_added', async (ctx) => {
29
+ * if (ctx.has(isPrivateChat)) { ... }
30
+ * });
31
+ * ```
32
+ */
33
+ has<R extends Context>(filter: (ctx: Context) => ctx is R): this is R;
34
+ }
35
+ //# sourceMappingURL=ChatContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../../src/bot/context/ChatContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;GAKG;AACH,qBAAa,WAAW;IAGpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAGrC,0BAA0B;IAC1B,IAAI,GAAG,IAAI,UAAU,CAEpB;IAED,2CAA2C;IAC3C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2CAA2C;IAC3C,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,sBAAsB;IACtB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,8BAA8B;IAC9B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;;;;;OASG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;CAGtE"}
@@ -0,0 +1,149 @@
1
+ import type { IBotsApi, IChatsApi, IMessagesApi, ISubscriptionsApi, IUploadsApi } from "../../api/interfaces.js";
2
+ import type { Attachment, Message, NewMessageBody } from "../../types/message.js";
3
+ import type { MessageUpdate } from "../../types/update.js";
4
+ import type { Context } from "../Bot.js";
5
+ /**
6
+ * API, доступные в контексте
7
+ */
8
+ export interface ContextApi {
9
+ bots: IBotsApi;
10
+ chats: IChatsApi;
11
+ messages: IMessagesApi;
12
+ subscriptions: ISubscriptionsApi;
13
+ uploads: IUploadsApi;
14
+ }
15
+ /**
16
+ * Опции отправки сообщения
17
+ */
18
+ export interface SendOptions {
19
+ format?: "markdown" | "html";
20
+ attachments?: NewMessageBody["attachments"];
21
+ notify?: boolean;
22
+ disable_link_preview?: boolean;
23
+ }
24
+ /**
25
+ * Контекст сообщения.
26
+ *
27
+ * Оборачивает MessageUpdate и добавляет удобные методы для ответа.
28
+ * Избавляет разработчика от необходимости передавать chatId/userId в каждый метод.
29
+ */
30
+ export declare class MessageContext {
31
+ private readonly update;
32
+ private readonly api;
33
+ /**
34
+ * Результат совпадения RegExp из `bot.hears()`.
35
+ *
36
+ * Доступен только внутри обработчика `hears()` с RegExp-паттерном.
37
+ * Содержит полный `RegExpExecArray`: `ctx.match[0]` — полное совпадение,
38
+ * `ctx.match[1]`, `ctx.match[2]`, ... — группы захвата.
39
+ *
40
+ * `null` если обработчик вызван не через `hears()` или паттерн — строка.
41
+ *
42
+ * @example
43
+ * bot.hears(/(\d+)/, async (ctx) => {
44
+ * if (isMessageContext(ctx)) console.log(ctx.match?.[1]); // первая группа
45
+ * });
46
+ */
47
+ match: RegExpExecArray | null;
48
+ constructor(update: MessageUpdate, api: ContextApi);
49
+ /** Исходное обновление */
50
+ get raw(): MessageUpdate;
51
+ /** Сообщение */
52
+ get message(): Message;
53
+ /** Текст сообщения */
54
+ get text(): string | undefined;
55
+ /** ID сообщения. null если сообщение не содержит body (например, пересланное без текста). */
56
+ get messageId(): string | null;
57
+ /** ID чата (если сообщение из чата) */
58
+ get chatId(): number | null;
59
+ /** ID отправителя */
60
+ get senderId(): number | undefined;
61
+ /** Имя отправителя */
62
+ get senderName(): string | undefined;
63
+ /** Username отправителя */
64
+ get senderUsername(): string | null | undefined;
65
+ /** Локаль пользователя */
66
+ get locale(): string | null;
67
+ /** Тип чата */
68
+ get chatType(): "chat" | "dialog";
69
+ /** Это личное сообщение? */
70
+ get isPrivate(): boolean;
71
+ /** Это сообщение в группе? */
72
+ get isGroup(): boolean;
73
+ /** Вложения сообщения */
74
+ get attachments(): Attachment[] | null;
75
+ /**
76
+ * Ответить на сообщение.
77
+ *
78
+ * Бросает ошибку, если chat_id недоступен — это защищает от молчаливого падения если message.recipient не содержит chat_id.
79
+ */
80
+ reply(text: string, options?: SendOptions): Promise<Message>;
81
+ /**
82
+ * Ответить с цитированием исходного сообщения.
83
+ *
84
+ * Бросает ошибку, если chat_id или mid недоступны.
85
+ */
86
+ replyWithQuote(text: string, options?: SendOptions): Promise<Message>;
87
+ /**
88
+ * Отправить действие "печатает..." в чат.
89
+ *
90
+ * Бросает ошибку, если chat_id недоступен — согласован со стилем reply().
91
+ */
92
+ sendTyping(): Promise<void>;
93
+ /**
94
+ * Отправить произвольное действие в чат.
95
+ *
96
+ * Распространённые значения: `"typing_on"`, `"sending_photo"`,
97
+ * `"sending_video"`, `"sending_audio"`, `"sending_file"`, `"mark_seen"`.
98
+ *
99
+ * Бросает ошибку, если chat_id недоступен.
100
+ *
101
+ * @example
102
+ * await ctx.sendAction('sending_photo');
103
+ */
104
+ sendAction(action: string): Promise<void>;
105
+ /**
106
+ * Редактировать текущее сообщение.
107
+ *
108
+ * Бросает ошибку, если message_id недоступен.
109
+ *
110
+ * @example
111
+ * await ctx.editMessage('Обновлённый текст');
112
+ */
113
+ editMessage(text: string, options?: SendOptions): Promise<void>;
114
+ /**
115
+ * Удалить текущее сообщение.
116
+ *
117
+ * Бросает ошибку, если message_id недоступен.
118
+ *
119
+ * @example
120
+ * await ctx.deleteMessage();
121
+ */
122
+ deleteMessage(): Promise<void>;
123
+ /**
124
+ * Проверить тип контекста с сужением типа (type narrowing).
125
+ *
126
+ * Принимает предикат-фильтр и возвращает `true`, если данный контекст
127
+ * удовлетворяет условию. TypeScript автоматически суживает тип внутри
128
+ * блока `if` до более конкретного.
129
+ *
130
+ * @example С predicate из filters
131
+ * ```ts
132
+ * bot.on('message', async (ctx) => {
133
+ * if (ctx.has(hasText)) {
134
+ * console.log(ctx.text.toUpperCase()); // ctx.text: string (не undefined)
135
+ * }
136
+ * });
137
+ * ```
138
+ *
139
+ * @example Произвольный предикат
140
+ * ```ts
141
+ * const isAdmin = (ctx: Context): ctx is MessageContext =>
142
+ * isMessageContext(ctx) && ctx.senderId === ADMIN_ID;
143
+ *
144
+ * if (ctx.has(isAdmin)) { ... }
145
+ * ```
146
+ */
147
+ has<R extends Context>(filter: (ctx: Context) => ctx is R): this is R;
148
+ }
149
+ //# sourceMappingURL=MessageContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageContext.d.ts","sourceRoot":"","sources":["../../../../src/bot/context/MessageContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,iBAAiB,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IAmBvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAnBtB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,eAAe,GAAG,IAAI,CAAQ;gBAIlB,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,UAAU;IAGlC,0BAA0B;IAC1B,IAAI,GAAG,IAAI,aAAa,CAEvB;IAED,gBAAgB;IAChB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,sBAAsB;IACtB,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,6FAA6F;IAC7F,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,uCAAuC;IACvC,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED,qBAAqB;IACrB,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,sBAAsB;IACtB,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAQnC;IAED,2BAA2B;IAC3B,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAE9C;IAED,0BAA0B;IAC1B,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED,eAAe;IACf,IAAI,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAEhC;IAED,4BAA4B;IAC5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8BAA8B;IAC9B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,yBAAyB;IACzB,IAAI,WAAW,IAAI,UAAU,EAAE,GAAG,IAAI,CAErC;IAED;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBlE;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC3E;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;;;;;;;OAUG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C;;;;;;;OAOG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAerE;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;CAGtE"}
@@ -0,0 +1,69 @@
1
+ import { BotStartedContext } from "./BotStartedContext.js";
2
+ import { CallbackContext } from "./CallbackContext.js";
3
+ import { ChatContext } from "./ChatContext.js";
4
+ import { MessageContext } from "./MessageContext.js";
5
+ import type { Context } from "../Bot.js";
6
+ /**
7
+ * Type guard: проверяет, что контекст является `MessageContext`.
8
+ *
9
+ * Применяется в middleware для сужения типа:
10
+ * @example
11
+ * bot.use(async (ctx, next) => {
12
+ * if (isMessageContext(ctx)) {
13
+ * console.log(ctx.text); // string | undefined — TS знает тип
14
+ * }
15
+ * await next();
16
+ * });
17
+ */
18
+ export declare function isMessageContext(ctx: Context): ctx is MessageContext;
19
+ /**
20
+ * Type guard: проверяет, что контекст является `CallbackContext`.
21
+ *
22
+ * @example
23
+ * bot.use(async (ctx, next) => {
24
+ * if (isCallbackContext(ctx)) {
25
+ * console.log(ctx.data); // payload кнопки
26
+ * }
27
+ * await next();
28
+ * });
29
+ */
30
+ export declare function isCallbackContext(ctx: Context): ctx is CallbackContext;
31
+ /**
32
+ * Type guard: проверяет, что контекст является `ChatContext`.
33
+ *
34
+ * @example
35
+ * bot.use(async (ctx, next) => {
36
+ * if (isChatContext(ctx)) {
37
+ * console.log(ctx.chatId); // number — всегда есть в ChatContext
38
+ * }
39
+ * await next();
40
+ * });
41
+ */
42
+ export declare function isChatContext(ctx: Context): ctx is ChatContext;
43
+ /**
44
+ * Type guard: проверяет, что контекст является `BotStartedContext`.
45
+ *
46
+ * Используй для обработки нажатия Start или перехода по deep link:
47
+ * @example
48
+ * bot.use(async (ctx, next) => {
49
+ * if (isBotStartedContext(ctx)) {
50
+ * console.log(ctx.startPayload); // payload из deep link или null
51
+ * }
52
+ * await next();
53
+ * });
54
+ */
55
+ export declare function isBotStartedContext(ctx: Context): ctx is BotStartedContext;
56
+ /**
57
+ * Type guard: проверяет конкретный `update_type`.
58
+ *
59
+ * Используй когда нужно сузить тип внутри MessageContext или ChatContext:
60
+ * @example
61
+ * bot.use(async (ctx, next) => {
62
+ * if (isUpdateType(ctx, 'message_created')) {
63
+ * // ctx — MessageContext с update_type === 'message_created'
64
+ * }
65
+ * await next();
66
+ * });
67
+ */
68
+ export declare function isUpdateType<T extends Context>(ctx: Context, updateType: T["raw"]["update_type"]): ctx is T;
69
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../../src/bot/context/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAEpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAEtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAE1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5C,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,GAClC,GAAG,IAAI,CAAC,CAEV"}
@@ -0,0 +1,6 @@
1
+ export { MessageContext, type SendOptions, type ContextApi, } from "./MessageContext.js";
2
+ export { CallbackContext, type AnswerOptions } from "./CallbackContext.js";
3
+ export { ChatContext } from "./ChatContext.js";
4
+ export { BotStartedContext } from "./BotStartedContext.js";
5
+ export { isMessageContext, isCallbackContext, isChatContext, isBotStartedContext, isUpdateType, } from "./guards.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bot/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,aAAa,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type ContextApi } from "./context/MessageContext.js";
2
+ import type { Middleware } from "../middleware/types.js";
3
+ import type { Update } from "../types/update.js";
4
+ import type { BotMetrics } from "./metrics.js";
5
+ import type { Context, EventHandler } from "./Bot.js";
6
+ /**
7
+ * Слой диспетчеризации и семафора.
8
+ *
9
+ * Отвечает за:
10
+ * - Создание контекста из сырого обновления (`createContext`)
11
+ * - Запуск пайплайна middleware + handlers (`handleUpdate`, `runHandlersWithSemaphore`)
12
+ * - Backpressure (семафор: `acquireSemaphore` / `releaseSemaphore`)
13
+ * - Маршрутизацию ошибок (`handleError`)
14
+ *
15
+ * Не содержит бизнес-логики маршрутизации — она вынесена в {@link BotRouting}.
16
+ */
17
+ export declare abstract class BotDispatch<Ctx extends Context> {
18
+ protected readonly handlers: Map<string, EventHandler<Ctx>[]>;
19
+ protected readonly middlewares: Middleware<Ctx>[];
20
+ protected contextApi: ContextApi;
21
+ protected _contextFactory: (base: Context) => Ctx;
22
+ protected concurrency: number;
23
+ protected errorHandler: ((error: Error) => void) | null;
24
+ protected slowHandler: ((ms: number, updateType: string) => void) | null;
25
+ protected slowThresholdMs: number;
26
+ protected unknownUpdateHandler: ((raw: Record<string, unknown>) => void) | null;
27
+ protected metricsHandler: ((metrics: BotMetrics) => void) | null;
28
+ private activeCount;
29
+ private readonly waitQueue;
30
+ protected handleUpdate(update: Update): void;
31
+ private runHandlersWithSemaphore;
32
+ /**
33
+ * Захватить слот семафора.
34
+ * Если свободных слотов нет — ждём в очереди.
35
+ */
36
+ private acquireSemaphore;
37
+ /**
38
+ * Освободить слот семафора и разбудить следующего в очереди.
39
+ */
40
+ private releaseSemaphore;
41
+ protected handleError(error: Error): void;
42
+ /**
43
+ * Создаёт типизированный контекст из сырого обновления.
44
+ *
45
+ * Возвращает `null` если `update_type` неизвестен SDK **и** задан хук
46
+ * `onUnknownUpdate` — хук уже вызван, update нужно пропустить.
47
+ * Если хук не задан — бросает ошибку через `assertNever` → `errorHandler`.
48
+ */
49
+ private createContext;
50
+ }
51
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/bot/dispatch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW,CAAC,GAAG,SAAS,OAAO;IAEnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAa;IAC1E,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAM;IAKvD,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC;IAClC,SAAS,CAAC,eAAe,EAAG,CAAC,IAAI,EAAE,OAAO,KAAK,GAAG,CAAC;IACnD,SAAS,CAAC,WAAW,EAAG,MAAM,CAAC;IAG/B,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/D,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CACjE;IACP,SAAS,CAAC,eAAe,SAAK;IAC9B,SAAS,CAAC,oBAAoB,EAC1B,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GACxC,IAAI,CAAQ;IAChB,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAGxE,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAInD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;YA6B9B,wBAAwB;IAoEtC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAczC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;CAkCtB"}
@@ -0,0 +1,10 @@
1
+ export { Bot, type BotConfig, type Context, type EventHandler } from "./Bot.js";
2
+ export { Composer, type Filter } from "./Composer.js";
3
+ export { type HearsTrigger, type CommandTrigger, matchCommand, } from "./triggers.js";
4
+ export type { BotMetrics } from "./metrics.js";
5
+ export { MessageContext, type ContextApi, type SendOptions, } from "./context/MessageContext.js";
6
+ export { CallbackContext, type AnswerOptions, } from "./context/CallbackContext.js";
7
+ export { ChatContext } from "./context/ChatContext.js";
8
+ export { BotStartedContext } from "./context/BotStartedContext.js";
9
+ export { isMessageContext, isCallbackContext, isChatContext, isBotStartedContext, isUpdateType, } from "./context/guards.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,85 @@
1
+ import type { IBotsApi, IChatsApi, IMessagesApi, ISubscriptionsApi, IUploadsApi } from "../api/interfaces.js";
2
+ import type { IUpdateTransport } from "../transport/interfaces.js";
3
+ import type { BotInfo } from "../types/bot.js";
4
+ import type { Message } from "../types/message.js";
5
+ import type { SubscriptionInfo } from "../types/subscription.js";
6
+ import type { SendOptions } from "./context/MessageContext.js";
7
+ import { BotRouting } from "./routing.js";
8
+ import type { Context } from "./Bot.js";
9
+ /**
10
+ * Слой жизненного цикла и удобных методов.
11
+ *
12
+ * Отвечает за:
13
+ * - Запуск / остановку бота (`start` / `stop`) с Promise-мьютексом
14
+ * - Управление webhook (`setWebhookUrl`, `deleteWebhook`, `getWebhookInfo`)
15
+ * - Высокоуровневые методы отправки (`sendMessage`, `sendPrivateMessage`, `getMe`)
16
+ * - Конфигурацию наблюдателей (`onError`, `onSlowHandler`)
17
+ *
18
+ * Расширяет {@link BotRouting} — использует маршруты и middleware из него.
19
+ *
20
+ * Поля `api` и `transport` объявлены как `abstract` — конкретные значения
21
+ * предоставляет конструктор `Bot`.
22
+ */
23
+ export declare abstract class BotLifecycle<Ctx extends Context> extends BotRouting<Ctx> {
24
+ /** Доступ к низкоуровневым API для продвинутых сценариев */
25
+ abstract readonly api: {
26
+ readonly bots: IBotsApi;
27
+ readonly chats: IChatsApi;
28
+ readonly messages: IMessagesApi;
29
+ readonly subscriptions: ISubscriptionsApi;
30
+ readonly uploads: IUploadsApi;
31
+ };
32
+ /** Транспорт: LongPolling или Webhook */
33
+ protected abstract readonly transport: IUpdateTransport;
34
+ private startPromise;
35
+ /**
36
+ * Установить URL для webhook.
37
+ */
38
+ setWebhookUrl(url: string): Promise<void>;
39
+ /**
40
+ * Удалить webhook.
41
+ */
42
+ deleteWebhook(): Promise<void>;
43
+ /**
44
+ * Получить информацию о текущем webhook.
45
+ */
46
+ getWebhookInfo(): Promise<SubscriptionInfo>;
47
+ /**
48
+ * Зарегистрировать обработчик ошибок.
49
+ */
50
+ onError(handler: (error: Error) => void): this;
51
+ /**
52
+ * Назначить коллбэк для медленных обработчиков.
53
+ *
54
+ * Если обработка обновления заняла больше `thresholdMs` мс,
55
+ * вызывается `cb` с фактическим временем выполнения и типом обновления.
56
+ *
57
+ * @example
58
+ * bot.onSlowHandler(500, (ms, type) => {
59
+ * log.warn({ ms, type }, 'slow handler detected');
60
+ * });
61
+ */
62
+ onSlowHandler(thresholdMs: number, cb: (ms: number, updateType: string) => void): this;
63
+ /**
64
+ * Получить информацию о боте.
65
+ */
66
+ getMe(): Promise<BotInfo>;
67
+ /**
68
+ * Отправить сообщение в чат.
69
+ */
70
+ sendMessage(chatId: number, text: string, options?: SendOptions): Promise<Message>;
71
+ /**
72
+ * Отправить личное сообщение пользователю.
73
+ */
74
+ sendPrivateMessage(userId: number, text: string, options?: SendOptions): Promise<Message>;
75
+ /**
76
+ * Запустить бота.
77
+ */
78
+ start(): Promise<void>;
79
+ /**
80
+ * Остановить бота.
81
+ */
82
+ stop(): Promise<void>;
83
+ private _doStart;
84
+ }
85
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/bot/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,8BAAsB,YAAY,CAChC,GAAG,SAAS,OAAO,CACnB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;QAChC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;QAC1C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;KAC/B,CAAC;IAEF,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAMxD,OAAO,CAAC,YAAY,CAA8B;IAIlD;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMjD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAK9C;;;;;;;;;;OAUG;IACH,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAC3C,IAAI;IAQP;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC;IAgBnB;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC;IAkBnB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA8Bb,QAAQ;CAMvB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Метрики обработки одного обновления.
3
+ *
4
+ * Передаются в колбэк `BotConfig.onMetrics` после каждого обработанного update.
5
+ */
6
+ export interface BotMetrics {
7
+ /** Тип обновления (`message_created`, `message_callback`, и т.д.) */
8
+ updateType: string;
9
+ /** Общее время обработки update в миллисекундах (middleware + handlers) */
10
+ totalMs: number;
11
+ /** Размер очереди семафора **до** захвата слота (число ожидающих updates) */
12
+ queueSizeAtStart: number;
13
+ /** Число ошибок, выброшенных handlers во время обработки этого update */
14
+ handlerErrors: number;
15
+ /** Время выполнения каждого middleware в миллисекундах (в порядке регистрации) */
16
+ middlewareTimes: number[];
17
+ }
18
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/bot/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B"}