@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,225 @@
1
+ import { createServer, } from "node:http";
2
+ import { timingSafeEqual } from "node:crypto";
3
+ // Максимальный размер тела запроса — защита от переполнения памяти
4
+ const MAX_BODY_SIZE = 1024 * 1024; // 1 MB
5
+ /**
6
+ * Транспорт на основе Webhook.
7
+ *
8
+ * Webhook эффективнее для production — MAX сам присылает обновления.
9
+ * Требует публичный HTTPS endpoint.
10
+ */
11
+ export class WebhookTransport {
12
+ subscriptionsApi;
13
+ path;
14
+ port;
15
+ host;
16
+ secretToken;
17
+ webhookUrl;
18
+ autoRegister;
19
+ server = null;
20
+ // startPromise — мьютекс жизненного цикла (аналог Bot.startPromise):
21
+ // не null пока сервер поднимается или работает, предотвращает двойной listen.
22
+ startPromise = null;
23
+ updateHandler = null;
24
+ errorHandler = null;
25
+ constructor(subscriptionsApi, config) {
26
+ this.subscriptionsApi = subscriptionsApi;
27
+ this.path = config?.path ?? "/webhook";
28
+ this.port = config?.port ?? 3000;
29
+ this.host = config?.host ?? "0.0.0.0";
30
+ this.secretToken = config?.secretToken ?? null;
31
+ this.webhookUrl = config?.url ?? null;
32
+ this.autoRegister = config?.autoRegister ?? false;
33
+ }
34
+ async start() {
35
+ if (this.startPromise !== null) {
36
+ await this.startPromise;
37
+ throw new Error("WebhookTransport уже запущен. Вызовите stop() перед повторным запуском.");
38
+ }
39
+ this.startPromise = this._doStart();
40
+ return this.startPromise;
41
+ }
42
+ async _doStart() {
43
+ // Автоматическая регистрация webhook URL если указан
44
+ if (this.autoRegister && this.webhookUrl) {
45
+ await this.subscriptionsApi.subscribe({ url: this.webhookUrl });
46
+ }
47
+ const server = createServer(this.handleRequest.bind(this));
48
+ await new Promise((resolve, reject) => {
49
+ server.once("error", (err) => {
50
+ this.startPromise = null; // сбрасываем мьютекс при ошибке
51
+ reject(err);
52
+ });
53
+ server.listen(this.port, this.host, () => resolve());
54
+ });
55
+ this.server = server;
56
+ }
57
+ async stop() {
58
+ if (this.startPromise === null) {
59
+ return; // уже остановлен — идемпотентно
60
+ }
61
+ // Держим mutex (startPromise) установленным на весь период остановки.
62
+ // Это закрывает race condition: параллельный start() увидит не-null promise
63
+ // и заблокируется до полного завершения stop(), а не до сброса null.
64
+ const stopTask = (async () => {
65
+ // Дожидаемся завершения старта перед остановкой
66
+ try {
67
+ await this.startPromise;
68
+ }
69
+ catch {
70
+ /* start упал — сервер не поднят */
71
+ }
72
+ // Отписка при остановке — только если autoRegister, только если сервер поднялся
73
+ if (this.autoRegister && this.server) {
74
+ try {
75
+ await this.subscriptionsApi.unsubscribe();
76
+ }
77
+ catch {
78
+ // Игнорируем ошибки при остановке
79
+ }
80
+ }
81
+ await new Promise((resolve) => {
82
+ if (this.server) {
83
+ this.server.close(() => {
84
+ this.server = null;
85
+ resolve();
86
+ });
87
+ }
88
+ else {
89
+ resolve();
90
+ }
91
+ });
92
+ })();
93
+ // Заменяем mutex на stopTask — он не-null до полного завершения
94
+ this.startPromise = stopTask;
95
+ try {
96
+ await stopTask;
97
+ }
98
+ finally {
99
+ // Сбрасываем только если никто не перезаписал mutex между await-ами
100
+ if (this.startPromise === stopTask) {
101
+ this.startPromise = null;
102
+ }
103
+ }
104
+ }
105
+ onUpdate(handler) {
106
+ this.updateHandler = handler;
107
+ }
108
+ onError(handler) {
109
+ this.errorHandler = handler;
110
+ }
111
+ /**
112
+ * Получить middleware для интеграции с Express/Fastify/Koa.
113
+ *
114
+ * Позволяет встроить webhook в существующий сервер разработчика.
115
+ */
116
+ getMiddleware() {
117
+ return (req, res, next) => {
118
+ const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
119
+ if (url.pathname === this.path && req.method === "POST") {
120
+ this.handleRequest(req, res);
121
+ }
122
+ else if (next) {
123
+ next();
124
+ }
125
+ else {
126
+ res.writeHead(404);
127
+ res.end();
128
+ }
129
+ };
130
+ }
131
+ handleRequest(req, res) {
132
+ const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
133
+ // Проверяем path и метод
134
+ if (url.pathname !== this.path || req.method !== "POST") {
135
+ res.writeHead(404);
136
+ res.end();
137
+ return;
138
+ }
139
+ // Валидация секретного токена — защита от поддельных запросов
140
+ if (this.secretToken) {
141
+ const receivedToken = req.headers["x-secret-token"];
142
+ if (typeof receivedToken !== "string" ||
143
+ !this.verifyToken(receivedToken)) {
144
+ // Timing-safe сравнение защищает от timing attack —
145
+ // злоумышленник не сможет подобрать токен по времени ответа
146
+ res.writeHead(403);
147
+ res.end();
148
+ return;
149
+ }
150
+ }
151
+ // Проверка Content-Length — защита от переполнения памяти
152
+ const contentLength = parseInt(req.headers["content-length"] ?? "0", 10);
153
+ if (contentLength > MAX_BODY_SIZE) {
154
+ res.writeHead(413); // Payload Too Large
155
+ res.end();
156
+ return;
157
+ }
158
+ // Отвечаем 200 до обработки —
159
+ // MAX ждёт подтверждения и сделает retry при долгом ответе
160
+ res.writeHead(200);
161
+ res.end();
162
+ // Обработка асинхронно — не задерживаем ответ сервера
163
+ this.parseBody(req)
164
+ .then((update) => this.emitUpdate(update))
165
+ .catch((error) => this.emitError(error instanceof Error ? error : new Error(String(error))));
166
+ }
167
+ verifyToken(received) {
168
+ if (!this.secretToken)
169
+ return true;
170
+ const a = Buffer.from(received);
171
+ const b = Buffer.from(this.secretToken);
172
+ // Длины должны совпадать для timingSafeEqual
173
+ if (a.length !== b.length)
174
+ return false;
175
+ return timingSafeEqual(a, b);
176
+ }
177
+ parseBody(req) {
178
+ return new Promise((resolve, reject) => {
179
+ const chunks = [];
180
+ let size = 0;
181
+ req.on("data", (chunk) => {
182
+ size += chunk.length;
183
+ // Дополнительная проверка размера при потоковом чтении
184
+ if (size > MAX_BODY_SIZE) {
185
+ req.destroy();
186
+ reject(new Error("Превышен максимальный размер тела запроса"));
187
+ return;
188
+ }
189
+ chunks.push(chunk);
190
+ });
191
+ req.on("end", () => {
192
+ try {
193
+ const body = Buffer.concat(chunks).toString("utf-8");
194
+ const update = JSON.parse(body);
195
+ resolve(update);
196
+ }
197
+ catch {
198
+ reject(new Error("Ошибка парсинга тела запроса"));
199
+ }
200
+ });
201
+ req.on("error", reject);
202
+ });
203
+ }
204
+ emitUpdate(update) {
205
+ if (this.updateHandler) {
206
+ try {
207
+ this.updateHandler(update);
208
+ }
209
+ catch (error) {
210
+ this.emitError(error instanceof Error ? error : new Error(String(error)));
211
+ }
212
+ }
213
+ }
214
+ emitError(error) {
215
+ if (this.errorHandler) {
216
+ try {
217
+ this.errorHandler(error);
218
+ }
219
+ catch {
220
+ // Игнорируем ошибки в обработчике ошибок
221
+ }
222
+ }
223
+ }
224
+ }
225
+ //# sourceMappingURL=WebhookTransport.js.map
@@ -0,0 +1,4 @@
1
+ export { LongPollingTransport } from "./LongPollingTransport.js";
2
+ export { WebhookTransport } from "./WebhookTransport.js";
3
+ export type { IUpdateTransport, LongPollingConfig, WebhookConfig, UpdateHandler, ErrorHandler, } from "./interfaces.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { LongPollingTransport } from "./LongPollingTransport.js";
2
+ export { WebhookTransport } from "./WebhookTransport.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,74 @@
1
+ import type { Update, UpdateType } from "../types/update.js";
2
+ /**
3
+ * Обработчик обновлений
4
+ */
5
+ export type UpdateHandler = (update: Update) => void;
6
+ /**
7
+ * Обработчик ошибок
8
+ */
9
+ export type ErrorHandler = (error: Error) => void;
10
+ /**
11
+ * Конфигурация Long Polling
12
+ */
13
+ export interface LongPollingConfig {
14
+ /** Таймаут ожидания обновлений в секундах (по умолчанию 25) */
15
+ timeout?: number;
16
+ /** Максимальное количество обновлений за запрос (по умолчанию 100) */
17
+ limit?: number;
18
+ /** Задержка перед повторной попыткой при ошибке в мс (по умолчанию 5000) */
19
+ retryDelay?: number;
20
+ /**
21
+ * Фильтр типов обновлений — бот получит только перечисленные типы.
22
+ * Если не указан — приходят все типы.
23
+ *
24
+ * @example Получать только сообщения и нажатия кнопок
25
+ * allowedUpdates: ['message_created', 'message_callback']
26
+ */
27
+ allowedUpdates?: UpdateType[];
28
+ /**
29
+ * Сбрасывать маркер при перезапуске (по умолчанию `false`).
30
+ *
31
+ * По умолчанию (значение `false`) бот продолжает с последнего запомненного
32
+ * маркера — обновления, пришедшие во время остановки, будут получены
33
+ * после старта. Установите `true` если хотите всегда начинать с самых
34
+ * актуальных обновлений без обработки пропущенных во время остановки.
35
+ *
36
+ * Внезависимо от этой настройки, маркер автоматически сбрасывается
37
+ * если API возвращает 400/404 (маркер устарел или невалиден).
38
+ */
39
+ resetMarkerOnRestart?: boolean;
40
+ }
41
+ /**
42
+ * Конфигурация Webhook
43
+ */
44
+ export interface WebhookConfig {
45
+ /** URL path для вебхука (по умолчанию '/webhook') */
46
+ path?: string;
47
+ /** Порт сервера (по умолчанию 3000) */
48
+ port?: number;
49
+ /** Хост сервера (по умолчанию '0.0.0.0') */
50
+ host?: string;
51
+ /** Секретный токен для валидации запросов */
52
+ secretToken?: string;
53
+ /** Публичный URL для регистрации webhook */
54
+ url?: string;
55
+ /** Автоматически регистрировать webhook при старте */
56
+ autoRegister?: boolean;
57
+ }
58
+ /**
59
+ * Интерфейс транспорта для получения обновлений.
60
+ *
61
+ * Позволяет использовать разные стратегии (Long Polling / Webhook)
62
+ * с единым интерфейсом.
63
+ */
64
+ export interface IUpdateTransport {
65
+ /** Запустить транспорт */
66
+ start(): Promise<void>;
67
+ /** Остановить транспорт */
68
+ stop(): Promise<void>;
69
+ /** Установить обработчик обновлений */
70
+ onUpdate(handler: UpdateHandler): void;
71
+ /** Установить обработчик ошибок */
72
+ onError(handler: ErrorHandler): void;
73
+ }
74
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/transport/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,2BAA2B;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,mCAAmC;IACnC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1,19 @@
1
+ import type { User } from "./common.js";
2
+ /**
3
+ * Команда бота
4
+ */
5
+ export interface BotCommand {
6
+ command: string;
7
+ /** Описание команды — необязательное (в API не nullable, но может отсутствовать) */
8
+ description?: string | null;
9
+ }
10
+ /**
11
+ * Информация о боте
12
+ */
13
+ export interface BotInfo extends User {
14
+ description: string | null;
15
+ avatar_url: string | null;
16
+ full_avatar_url: string | null;
17
+ commands: BotCommand[] | null;
18
+ }
19
+ //# sourceMappingURL=bot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/types/bot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,IAAI;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bot.js.map
@@ -0,0 +1,94 @@
1
+ import type { Image, User, UserWithPhoto } from "./common.js";
2
+ import type { Message } from "./message.js";
3
+ /**
4
+ * Статус чата
5
+ */
6
+ export type ChatStatus = "active" | "removed" | "left" | "closed";
7
+ /**
8
+ * Тип чата
9
+ */
10
+ export type ChatType = "chat" | "dialog";
11
+ /**
12
+ * Групповой чат
13
+ */
14
+ export interface Chat {
15
+ chat_id: number;
16
+ type: "chat";
17
+ status: ChatStatus;
18
+ title: string | null;
19
+ icon: Image | null;
20
+ /** Unix-время последнего события */
21
+ last_event_time: number;
22
+ participants_count: number;
23
+ owner_id: number | null;
24
+ /** Участники с временем последней активности */
25
+ participants: Record<string, number> | null;
26
+ is_public: boolean;
27
+ link: string | null;
28
+ description: string | null;
29
+ /** Собеседник в диалоге */
30
+ dialog_with_user?: UserWithPhoto;
31
+ /** ID сообщения с кнопкой, через которую был инициирован чат */
32
+ chat_message_id: string | null;
33
+ pinned_message?: Message | null;
34
+ }
35
+ /**
36
+ * Участник чата
37
+ */
38
+ export interface ChatMember extends User {
39
+ permissions: string[] | null;
40
+ }
41
+ /**
42
+ * Получатель сообщения
43
+ */
44
+ export interface Recipient {
45
+ chat_id: number | null;
46
+ chat_type: ChatType;
47
+ user_id: number | null;
48
+ }
49
+ /**
50
+ * Параметры получения списка чатов
51
+ */
52
+ export interface GetChatsParams {
53
+ count?: number;
54
+ marker?: number;
55
+ }
56
+ /**
57
+ * Ответ со списком чатов
58
+ */
59
+ export interface ChatsResponse {
60
+ chats: Chat[];
61
+ marker: number | null;
62
+ }
63
+ /**
64
+ * Запрос на обновление чата
65
+ */
66
+ export interface UpdateChatRequest {
67
+ title?: string | null;
68
+ description?: string | null;
69
+ }
70
+ /**
71
+ * Запрос на добавление участников
72
+ */
73
+ export interface AddMembersRequest {
74
+ user_ids: number[];
75
+ }
76
+ /**
77
+ * Запрос на добавление администратора
78
+ */
79
+ export interface AddAdminRequest {
80
+ user_id: number;
81
+ }
82
+ /**
83
+ * Запрос на отправку действия в чат
84
+ */
85
+ export interface SendActionRequest {
86
+ action: string;
87
+ }
88
+ /**
89
+ * Запрос на закрепление сообщения
90
+ */
91
+ export interface PinMessageRequest {
92
+ message_id: string;
93
+ }
94
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/types/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,gEAAgE;IAChE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Базовые типы, используемые во всём SDK
3
+ */
4
+ /**
5
+ * Пользователь MAX
6
+ */
7
+ export interface User {
8
+ user_id: number;
9
+ first_name: string;
10
+ last_name: string | null;
11
+ /** @deprecated Устаревшее поле, используйте first_name + last_name */
12
+ name?: string | null;
13
+ username: string | null;
14
+ is_bot: boolean;
15
+ /** Unix-время в миллисекундах */
16
+ last_activity_time: number;
17
+ }
18
+ /**
19
+ * Пользователь с аватаром
20
+ */
21
+ export interface UserWithPhoto extends User {
22
+ avatar_url: string | null;
23
+ full_avatar_url: string | null;
24
+ }
25
+ /**
26
+ * Изображение (аватар, иконка)
27
+ */
28
+ export interface Image {
29
+ url: string;
30
+ }
31
+ /**
32
+ * Ответ API с ошибкой
33
+ */
34
+ export interface ApiErrorResponse {
35
+ code: string;
36
+ message: string;
37
+ }
38
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Базовые типы, используемые во всём SDK
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1,9 @@
1
+ export * from "./common.js";
2
+ export * from "./bot.js";
3
+ export * from "./chat.js";
4
+ export * from "./message.js";
5
+ export * from "./update.js";
6
+ export * from "./subscription.js";
7
+ export * from "./keyboard.js";
8
+ export * from "./upload.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ // Реэкспорт всех типов для удобного импорта
2
+ export * from "./common.js";
3
+ export * from "./bot.js";
4
+ export * from "./chat.js";
5
+ export * from "./message.js";
6
+ export * from "./update.js";
7
+ export * from "./subscription.js";
8
+ export * from "./keyboard.js";
9
+ export * from "./upload.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Намерение кнопки (цвет)
3
+ */
4
+ export type ButtonIntent = "default" | "positive" | "negative";
5
+ /** Кнопка с callback-данными */
6
+ export interface CallbackButton {
7
+ type: "callback";
8
+ /** Видимый текст кнопки (1-128 символов) */
9
+ text: string;
10
+ /** Данные callback (до 1024 символов) */
11
+ payload: string;
12
+ intent?: ButtonIntent;
13
+ }
14
+ /** Кнопка-ссылка */
15
+ export interface LinkButton {
16
+ type: "link";
17
+ text: string;
18
+ /** URL (до 2048 символов) */
19
+ url: string;
20
+ intent?: ButtonIntent;
21
+ }
22
+ /** Запрос контакта */
23
+ export interface RequestContactButton {
24
+ type: "request_contact";
25
+ text: string;
26
+ intent?: ButtonIntent;
27
+ }
28
+ /** Запрос геолокации */
29
+ export interface RequestGeoLocationButton {
30
+ type: "request_geo_location";
31
+ text: string;
32
+ /** Отправить геолокацию без подтверждения */
33
+ quick?: boolean;
34
+ intent?: ButtonIntent;
35
+ }
36
+ /** Открыть мини-приложение */
37
+ export interface OpenAppButton {
38
+ type: "open_app";
39
+ text: string;
40
+ web_app?: string;
41
+ contact_id?: number;
42
+ payload?: string;
43
+ intent?: ButtonIntent;
44
+ }
45
+ /** Отправить текстовое сообщение от пользователя */
46
+ export interface MessageButton {
47
+ type: "message";
48
+ text: string;
49
+ intent?: ButtonIntent;
50
+ }
51
+ /**
52
+ * Кнопка создания нового чата с ботом.
53
+ * При нажатии открывается диалог создания чата с заданным заголовком.
54
+ */
55
+ export interface ChatButton {
56
+ type: "chat";
57
+ text: string;
58
+ /** Название создаваемого чата */
59
+ chat_title: string;
60
+ /** Описание чата (опционально) */
61
+ chat_description?: string | null;
62
+ /** Payload, который будет передан боту при старте чата через bot_started */
63
+ start_payload?: string | null;
64
+ /** UUID для дедупликации — позволяет избежать создания дублирующих чатов */
65
+ uuid?: string | null;
66
+ }
67
+ /**
68
+ * Дискриминированный union кнопок — TypeScript проверяет обязательные поля для каждого типа.
69
+ * Например, payload обязателен только для callback, url только для link.
70
+ */
71
+ export type Button = CallbackButton | LinkButton | RequestContactButton | RequestGeoLocationButton | OpenAppButton | MessageButton | ChatButton;
72
+ /**
73
+ * Payload inline-клавиатуры
74
+ */
75
+ export interface InlineKeyboardPayload {
76
+ buttons: Button[][];
77
+ }
78
+ /**
79
+ * Вложение inline-клавиатуры
80
+ */
81
+ export interface InlineKeyboardAttachment {
82
+ type: "inline_keyboard";
83
+ payload: InlineKeyboardPayload;
84
+ }
85
+ /**
86
+ * Кнопка inline-клавиатуры для API (только callback, legacy-тип)
87
+ */
88
+ export interface InlineKeyboardButton {
89
+ type: "callback";
90
+ /** Видимый текст кнопки (1-128 символов) */
91
+ text: string;
92
+ /** Токен кнопки (до 1024 символов) */
93
+ payload: string;
94
+ /** Намерение (по умолчанию "default") */
95
+ intent?: ButtonIntent;
96
+ }
97
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../src/types/keyboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/D,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,sBAAsB;AACtB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAwB;AACxB,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,GACd,cAAc,GACd,UAAU,GACV,oBAAoB,GACpB,wBAAwB,GACxB,aAAa,GACb,aAAa,GACb,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyboard.js.map