@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.
- package/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +1176 -0
- package/dist/cjs/api/BotsApi.d.ts +17 -0
- package/dist/cjs/api/BotsApi.d.ts.map +1 -0
- package/dist/cjs/api/BotsApi.js +22 -0
- package/dist/cjs/api/ChatsApi.d.ts +87 -0
- package/dist/cjs/api/ChatsApi.d.ts.map +1 -0
- package/dist/cjs/api/ChatsApi.js +144 -0
- package/dist/cjs/api/MessagesApi.d.ts +41 -0
- package/dist/cjs/api/MessagesApi.d.ts.map +1 -0
- package/dist/cjs/api/MessagesApi.js +66 -0
- package/dist/cjs/api/SubscriptionsApi.d.ts +45 -0
- package/dist/cjs/api/SubscriptionsApi.d.ts.map +1 -0
- package/dist/cjs/api/SubscriptionsApi.js +69 -0
- package/dist/cjs/api/UploadsApi.d.ts +45 -0
- package/dist/cjs/api/UploadsApi.d.ts.map +1 -0
- package/dist/cjs/api/UploadsApi.js +113 -0
- package/dist/cjs/api/index.d.ts +7 -0
- package/dist/cjs/api/index.d.ts.map +1 -0
- package/dist/cjs/api/index.js +14 -0
- package/dist/cjs/api/interfaces.d.ts +108 -0
- package/dist/cjs/api/interfaces.d.ts.map +1 -0
- package/dist/cjs/api/interfaces.js +3 -0
- package/dist/cjs/bot/Bot.d.ts +380 -0
- package/dist/cjs/bot/Bot.d.ts.map +1 -0
- package/dist/cjs/bot/Bot.js +624 -0
- package/dist/cjs/bot/Composer.d.ts +131 -0
- package/dist/cjs/bot/Composer.d.ts.map +1 -0
- package/dist/cjs/bot/Composer.js +218 -0
- package/dist/cjs/bot/context/BotStartedContext.d.ts +83 -0
- package/dist/cjs/bot/context/BotStartedContext.d.ts.map +1 -0
- package/dist/cjs/bot/context/BotStartedContext.js +113 -0
- package/dist/cjs/bot/context/CallbackContext.d.ts +107 -0
- package/dist/cjs/bot/context/CallbackContext.d.ts.map +1 -0
- package/dist/cjs/bot/context/CallbackContext.js +158 -0
- package/dist/cjs/bot/context/ChatContext.d.ts +35 -0
- package/dist/cjs/bot/context/ChatContext.d.ts.map +1 -0
- package/dist/cjs/bot/context/ChatContext.js +52 -0
- package/dist/cjs/bot/context/MessageContext.d.ts +149 -0
- package/dist/cjs/bot/context/MessageContext.d.ts.map +1 -0
- package/dist/cjs/bot/context/MessageContext.js +228 -0
- package/dist/cjs/bot/context/guards.d.ts +69 -0
- package/dist/cjs/bot/context/guards.d.ts.map +1 -0
- package/dist/cjs/bot/context/guards.js +85 -0
- package/dist/cjs/bot/context/index.d.ts +6 -0
- package/dist/cjs/bot/context/index.d.ts.map +1 -0
- package/dist/cjs/bot/context/index.js +18 -0
- package/dist/cjs/bot/dispatch.d.ts +51 -0
- package/dist/cjs/bot/dispatch.d.ts.map +1 -0
- package/dist/cjs/bot/dispatch.js +201 -0
- package/dist/cjs/bot/index.d.ts +10 -0
- package/dist/cjs/bot/index.d.ts.map +1 -0
- package/dist/cjs/bot/index.js +24 -0
- package/dist/cjs/bot/lifecycle.d.ts +85 -0
- package/dist/cjs/bot/lifecycle.d.ts.map +1 -0
- package/dist/cjs/bot/lifecycle.js +167 -0
- package/dist/cjs/bot/metrics.d.ts +18 -0
- package/dist/cjs/bot/metrics.d.ts.map +1 -0
- package/dist/cjs/bot/metrics.js +3 -0
- package/dist/cjs/bot/routing.d.ts +131 -0
- package/dist/cjs/bot/routing.d.ts.map +1 -0
- package/dist/cjs/bot/routing.js +198 -0
- package/dist/cjs/bot/triggers.d.ts +61 -0
- package/dist/cjs/bot/triggers.d.ts.map +1 -0
- package/dist/cjs/bot/triggers.js +84 -0
- package/dist/cjs/core/errors/MaxError.d.ts +11 -0
- package/dist/cjs/core/errors/MaxError.d.ts.map +1 -0
- package/dist/cjs/core/errors/MaxError.js +19 -0
- package/dist/cjs/core/errors/errors.d.ts +59 -0
- package/dist/cjs/core/errors/errors.d.ts.map +1 -0
- package/dist/cjs/core/errors/errors.js +84 -0
- package/dist/cjs/core/errors/index.d.ts +3 -0
- package/dist/cjs/core/errors/index.d.ts.map +1 -0
- package/dist/cjs/core/errors/index.js +13 -0
- package/dist/cjs/core/http/HttpClient.d.ts +28 -0
- package/dist/cjs/core/http/HttpClient.d.ts.map +1 -0
- package/dist/cjs/core/http/HttpClient.js +148 -0
- package/dist/cjs/core/http/index.d.ts +3 -0
- package/dist/cjs/core/http/index.d.ts.map +1 -0
- package/dist/cjs/core/http/index.js +6 -0
- package/dist/cjs/core/http/interfaces.d.ts +42 -0
- package/dist/cjs/core/http/interfaces.d.ts.map +1 -0
- package/dist/cjs/core/http/interfaces.js +3 -0
- package/dist/cjs/core/rate-limiter/RateLimiter.d.ts +46 -0
- package/dist/cjs/core/rate-limiter/RateLimiter.d.ts.map +1 -0
- package/dist/cjs/core/rate-limiter/RateLimiter.js +110 -0
- package/dist/cjs/core/rate-limiter/index.d.ts +3 -0
- package/dist/cjs/core/rate-limiter/index.d.ts.map +1 -0
- package/dist/cjs/core/rate-limiter/index.js +6 -0
- package/dist/cjs/filters/index.d.ts +2 -0
- package/dist/cjs/filters/index.d.ts.map +1 -0
- package/dist/cjs/filters/index.js +10 -0
- package/dist/cjs/filters/predicates.d.ts +85 -0
- package/dist/cjs/filters/predicates.d.ts.map +1 -0
- package/dist/cjs/filters/predicates.js +111 -0
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +27 -0
- package/dist/cjs/middleware/compose.d.ts +28 -0
- package/dist/cjs/middleware/compose.d.ts.map +1 -0
- package/dist/cjs/middleware/compose.js +89 -0
- package/dist/cjs/middleware/index.d.ts +3 -0
- package/dist/cjs/middleware/index.d.ts.map +1 -0
- package/dist/cjs/middleware/index.js +7 -0
- package/dist/cjs/middleware/types.d.ts +17 -0
- package/dist/cjs/middleware/types.d.ts.map +1 -0
- package/dist/cjs/middleware/types.js +3 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/transport/LongPollingTransport.d.ts +33 -0
- package/dist/cjs/transport/LongPollingTransport.d.ts.map +1 -0
- package/dist/cjs/transport/LongPollingTransport.js +153 -0
- package/dist/cjs/transport/WebhookTransport.d.ts +40 -0
- package/dist/cjs/transport/WebhookTransport.d.ts.map +1 -0
- package/dist/cjs/transport/WebhookTransport.js +229 -0
- package/dist/cjs/transport/index.d.ts +4 -0
- package/dist/cjs/transport/index.d.ts.map +1 -0
- package/dist/cjs/transport/index.js +8 -0
- package/dist/cjs/transport/interfaces.d.ts +74 -0
- package/dist/cjs/transport/interfaces.d.ts.map +1 -0
- package/dist/cjs/transport/interfaces.js +3 -0
- package/dist/cjs/types/bot.d.ts +19 -0
- package/dist/cjs/types/bot.d.ts.map +1 -0
- package/dist/cjs/types/bot.js +3 -0
- package/dist/cjs/types/chat.d.ts +94 -0
- package/dist/cjs/types/chat.d.ts.map +1 -0
- package/dist/cjs/types/chat.js +3 -0
- package/dist/cjs/types/common.d.ts +38 -0
- package/dist/cjs/types/common.d.ts.map +1 -0
- package/dist/cjs/types/common.js +6 -0
- package/dist/cjs/types/index.d.ts +9 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +26 -0
- package/dist/cjs/types/keyboard.d.ts +97 -0
- package/dist/cjs/types/keyboard.d.ts.map +1 -0
- package/dist/cjs/types/keyboard.js +3 -0
- package/dist/cjs/types/message.d.ts +162 -0
- package/dist/cjs/types/message.d.ts.map +1 -0
- package/dist/cjs/types/message.js +3 -0
- package/dist/cjs/types/subscription.d.ts +23 -0
- package/dist/cjs/types/subscription.d.ts.map +1 -0
- package/dist/cjs/types/subscription.js +3 -0
- package/dist/cjs/types/update.d.ts +99 -0
- package/dist/cjs/types/update.d.ts.map +1 -0
- package/dist/cjs/types/update.js +3 -0
- package/dist/cjs/types/upload.d.ts +29 -0
- package/dist/cjs/types/upload.d.ts.map +1 -0
- package/dist/cjs/types/upload.js +3 -0
- package/dist/cjs/utils/Histogram.d.ts +93 -0
- package/dist/cjs/utils/Histogram.d.ts.map +1 -0
- package/dist/cjs/utils/Histogram.js +103 -0
- package/dist/cjs/utils/assertNever.d.ts +19 -0
- package/dist/cjs/utils/assertNever.d.ts.map +1 -0
- package/dist/cjs/utils/assertNever.js +24 -0
- package/dist/cjs/utils/format.d.ts +22 -0
- package/dist/cjs/utils/format.d.ts.map +1 -0
- package/dist/cjs/utils/format.js +25 -0
- package/dist/cjs/utils/index.d.ts +6 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +14 -0
- package/dist/cjs/utils/keyboard.d.ts +70 -0
- package/dist/cjs/utils/keyboard.d.ts.map +1 -0
- package/dist/cjs/utils/keyboard.js +166 -0
- package/dist/esm/api/BotsApi.d.ts +17 -0
- package/dist/esm/api/BotsApi.d.ts.map +1 -0
- package/dist/esm/api/BotsApi.js +18 -0
- package/dist/esm/api/ChatsApi.d.ts +87 -0
- package/dist/esm/api/ChatsApi.d.ts.map +1 -0
- package/dist/esm/api/ChatsApi.js +140 -0
- package/dist/esm/api/MessagesApi.d.ts +41 -0
- package/dist/esm/api/MessagesApi.d.ts.map +1 -0
- package/dist/esm/api/MessagesApi.js +62 -0
- package/dist/esm/api/SubscriptionsApi.d.ts +45 -0
- package/dist/esm/api/SubscriptionsApi.d.ts.map +1 -0
- package/dist/esm/api/SubscriptionsApi.js +65 -0
- package/dist/esm/api/UploadsApi.d.ts +45 -0
- package/dist/esm/api/UploadsApi.d.ts.map +1 -0
- package/dist/esm/api/UploadsApi.js +109 -0
- package/dist/esm/api/index.d.ts +7 -0
- package/dist/esm/api/index.d.ts.map +1 -0
- package/dist/esm/api/index.js +6 -0
- package/dist/esm/api/interfaces.d.ts +108 -0
- package/dist/esm/api/interfaces.d.ts.map +1 -0
- package/dist/esm/api/interfaces.js +2 -0
- package/dist/esm/bot/Bot.d.ts +380 -0
- package/dist/esm/bot/Bot.d.ts.map +1 -0
- package/dist/esm/bot/Bot.js +620 -0
- package/dist/esm/bot/Composer.d.ts +131 -0
- package/dist/esm/bot/Composer.d.ts.map +1 -0
- package/dist/esm/bot/Composer.js +214 -0
- package/dist/esm/bot/context/BotStartedContext.d.ts +83 -0
- package/dist/esm/bot/context/BotStartedContext.d.ts.map +1 -0
- package/dist/esm/bot/context/BotStartedContext.js +109 -0
- package/dist/esm/bot/context/CallbackContext.d.ts +107 -0
- package/dist/esm/bot/context/CallbackContext.d.ts.map +1 -0
- package/dist/esm/bot/context/CallbackContext.js +154 -0
- package/dist/esm/bot/context/ChatContext.d.ts +35 -0
- package/dist/esm/bot/context/ChatContext.d.ts.map +1 -0
- package/dist/esm/bot/context/ChatContext.js +48 -0
- package/dist/esm/bot/context/MessageContext.d.ts +149 -0
- package/dist/esm/bot/context/MessageContext.d.ts.map +1 -0
- package/dist/esm/bot/context/MessageContext.js +224 -0
- package/dist/esm/bot/context/guards.d.ts +69 -0
- package/dist/esm/bot/context/guards.d.ts.map +1 -0
- package/dist/esm/bot/context/guards.js +78 -0
- package/dist/esm/bot/context/index.d.ts +6 -0
- package/dist/esm/bot/context/index.d.ts.map +1 -0
- package/dist/esm/bot/context/index.js +6 -0
- package/dist/esm/bot/dispatch.d.ts +51 -0
- package/dist/esm/bot/dispatch.d.ts.map +1 -0
- package/dist/esm/bot/dispatch.js +197 -0
- package/dist/esm/bot/index.d.ts +10 -0
- package/dist/esm/bot/index.d.ts.map +1 -0
- package/dist/esm/bot/index.js +9 -0
- package/dist/esm/bot/lifecycle.d.ts +85 -0
- package/dist/esm/bot/lifecycle.d.ts.map +1 -0
- package/dist/esm/bot/lifecycle.js +163 -0
- package/dist/esm/bot/metrics.d.ts +18 -0
- package/dist/esm/bot/metrics.d.ts.map +1 -0
- package/dist/esm/bot/metrics.js +2 -0
- package/dist/esm/bot/routing.d.ts +131 -0
- package/dist/esm/bot/routing.d.ts.map +1 -0
- package/dist/esm/bot/routing.js +194 -0
- package/dist/esm/bot/triggers.d.ts +61 -0
- package/dist/esm/bot/triggers.d.ts.map +1 -0
- package/dist/esm/bot/triggers.js +80 -0
- package/dist/esm/core/errors/MaxError.d.ts +11 -0
- package/dist/esm/core/errors/MaxError.d.ts.map +1 -0
- package/dist/esm/core/errors/MaxError.js +15 -0
- package/dist/esm/core/errors/errors.d.ts +59 -0
- package/dist/esm/core/errors/errors.d.ts.map +1 -0
- package/dist/esm/core/errors/errors.js +75 -0
- package/dist/esm/core/errors/index.d.ts +3 -0
- package/dist/esm/core/errors/index.d.ts.map +1 -0
- package/dist/esm/core/errors/index.js +3 -0
- package/dist/esm/core/http/HttpClient.d.ts +28 -0
- package/dist/esm/core/http/HttpClient.d.ts.map +1 -0
- package/dist/esm/core/http/HttpClient.js +144 -0
- package/dist/esm/core/http/index.d.ts +3 -0
- package/dist/esm/core/http/index.d.ts.map +1 -0
- package/dist/esm/core/http/index.js +2 -0
- package/dist/esm/core/http/interfaces.d.ts +42 -0
- package/dist/esm/core/http/interfaces.d.ts.map +1 -0
- package/dist/esm/core/http/interfaces.js +2 -0
- package/dist/esm/core/rate-limiter/RateLimiter.d.ts +46 -0
- package/dist/esm/core/rate-limiter/RateLimiter.d.ts.map +1 -0
- package/dist/esm/core/rate-limiter/RateLimiter.js +106 -0
- package/dist/esm/core/rate-limiter/index.d.ts +3 -0
- package/dist/esm/core/rate-limiter/index.d.ts.map +1 -0
- package/dist/esm/core/rate-limiter/index.js +2 -0
- package/dist/esm/filters/index.d.ts +2 -0
- package/dist/esm/filters/index.d.ts.map +1 -0
- package/dist/esm/filters/index.js +2 -0
- package/dist/esm/filters/predicates.d.ts +85 -0
- package/dist/esm/filters/predicates.d.ts.map +1 -0
- package/dist/esm/filters/predicates.js +104 -0
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/middleware/compose.d.ts +28 -0
- package/dist/esm/middleware/compose.d.ts.map +1 -0
- package/dist/esm/middleware/compose.js +85 -0
- package/dist/esm/middleware/index.d.ts +3 -0
- package/dist/esm/middleware/index.d.ts.map +1 -0
- package/dist/esm/middleware/index.js +2 -0
- package/dist/esm/middleware/types.d.ts +17 -0
- package/dist/esm/middleware/types.d.ts.map +1 -0
- package/dist/esm/middleware/types.js +2 -0
- package/dist/esm/transport/LongPollingTransport.d.ts +33 -0
- package/dist/esm/transport/LongPollingTransport.d.ts.map +1 -0
- package/dist/esm/transport/LongPollingTransport.js +149 -0
- package/dist/esm/transport/WebhookTransport.d.ts +40 -0
- package/dist/esm/transport/WebhookTransport.d.ts.map +1 -0
- package/dist/esm/transport/WebhookTransport.js +225 -0
- package/dist/esm/transport/index.d.ts +4 -0
- package/dist/esm/transport/index.d.ts.map +1 -0
- package/dist/esm/transport/index.js +3 -0
- package/dist/esm/transport/interfaces.d.ts +74 -0
- package/dist/esm/transport/interfaces.d.ts.map +1 -0
- package/dist/esm/transport/interfaces.js +2 -0
- package/dist/esm/types/bot.d.ts +19 -0
- package/dist/esm/types/bot.d.ts.map +1 -0
- package/dist/esm/types/bot.js +2 -0
- package/dist/esm/types/chat.d.ts +94 -0
- package/dist/esm/types/chat.d.ts.map +1 -0
- package/dist/esm/types/chat.js +2 -0
- package/dist/esm/types/common.d.ts +38 -0
- package/dist/esm/types/common.d.ts.map +1 -0
- package/dist/esm/types/common.js +5 -0
- package/dist/esm/types/index.d.ts +9 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +10 -0
- package/dist/esm/types/keyboard.d.ts +97 -0
- package/dist/esm/types/keyboard.d.ts.map +1 -0
- package/dist/esm/types/keyboard.js +2 -0
- package/dist/esm/types/message.d.ts +162 -0
- package/dist/esm/types/message.d.ts.map +1 -0
- package/dist/esm/types/message.js +2 -0
- package/dist/esm/types/subscription.d.ts +23 -0
- package/dist/esm/types/subscription.d.ts.map +1 -0
- package/dist/esm/types/subscription.js +2 -0
- package/dist/esm/types/update.d.ts +99 -0
- package/dist/esm/types/update.d.ts.map +1 -0
- package/dist/esm/types/update.js +2 -0
- package/dist/esm/types/upload.d.ts +29 -0
- package/dist/esm/types/upload.d.ts.map +1 -0
- package/dist/esm/types/upload.js +2 -0
- package/dist/esm/utils/Histogram.d.ts +93 -0
- package/dist/esm/utils/Histogram.d.ts.map +1 -0
- package/dist/esm/utils/Histogram.js +99 -0
- package/dist/esm/utils/assertNever.d.ts +19 -0
- package/dist/esm/utils/assertNever.d.ts.map +1 -0
- package/dist/esm/utils/assertNever.js +21 -0
- package/dist/esm/utils/format.d.ts +22 -0
- package/dist/esm/utils/format.d.ts.map +1 -0
- package/dist/esm/utils/format.js +22 -0
- package/dist/esm/utils/index.d.ts +6 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +5 -0
- package/dist/esm/utils/keyboard.d.ts +70 -0
- package/dist/esm/utils/keyboard.d.ts.map +1 -0
- package/dist/esm/utils/keyboard.js +162 -0
- package/dist/types/api/BotsApi.d.ts +17 -0
- package/dist/types/api/BotsApi.d.ts.map +1 -0
- package/dist/types/api/ChatsApi.d.ts +87 -0
- package/dist/types/api/ChatsApi.d.ts.map +1 -0
- package/dist/types/api/MessagesApi.d.ts +41 -0
- package/dist/types/api/MessagesApi.d.ts.map +1 -0
- package/dist/types/api/SubscriptionsApi.d.ts +45 -0
- package/dist/types/api/SubscriptionsApi.d.ts.map +1 -0
- package/dist/types/api/UploadsApi.d.ts +45 -0
- package/dist/types/api/UploadsApi.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +7 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/interfaces.d.ts +108 -0
- package/dist/types/api/interfaces.d.ts.map +1 -0
- package/dist/types/bot/Bot.d.ts +380 -0
- package/dist/types/bot/Bot.d.ts.map +1 -0
- package/dist/types/bot/Composer.d.ts +131 -0
- package/dist/types/bot/Composer.d.ts.map +1 -0
- package/dist/types/bot/context/BotStartedContext.d.ts +83 -0
- package/dist/types/bot/context/BotStartedContext.d.ts.map +1 -0
- package/dist/types/bot/context/CallbackContext.d.ts +107 -0
- package/dist/types/bot/context/CallbackContext.d.ts.map +1 -0
- package/dist/types/bot/context/ChatContext.d.ts +35 -0
- package/dist/types/bot/context/ChatContext.d.ts.map +1 -0
- package/dist/types/bot/context/MessageContext.d.ts +149 -0
- package/dist/types/bot/context/MessageContext.d.ts.map +1 -0
- package/dist/types/bot/context/guards.d.ts +69 -0
- package/dist/types/bot/context/guards.d.ts.map +1 -0
- package/dist/types/bot/context/index.d.ts +6 -0
- package/dist/types/bot/context/index.d.ts.map +1 -0
- package/dist/types/bot/dispatch.d.ts +51 -0
- package/dist/types/bot/dispatch.d.ts.map +1 -0
- package/dist/types/bot/index.d.ts +10 -0
- package/dist/types/bot/index.d.ts.map +1 -0
- package/dist/types/bot/lifecycle.d.ts +85 -0
- package/dist/types/bot/lifecycle.d.ts.map +1 -0
- package/dist/types/bot/metrics.d.ts +18 -0
- package/dist/types/bot/metrics.d.ts.map +1 -0
- package/dist/types/bot/routing.d.ts +131 -0
- package/dist/types/bot/routing.d.ts.map +1 -0
- package/dist/types/bot/triggers.d.ts +61 -0
- package/dist/types/bot/triggers.d.ts.map +1 -0
- package/dist/types/core/errors/MaxError.d.ts +11 -0
- package/dist/types/core/errors/MaxError.d.ts.map +1 -0
- package/dist/types/core/errors/errors.d.ts +59 -0
- package/dist/types/core/errors/errors.d.ts.map +1 -0
- package/dist/types/core/errors/index.d.ts +3 -0
- package/dist/types/core/errors/index.d.ts.map +1 -0
- package/dist/types/core/http/HttpClient.d.ts +28 -0
- package/dist/types/core/http/HttpClient.d.ts.map +1 -0
- package/dist/types/core/http/index.d.ts +3 -0
- package/dist/types/core/http/index.d.ts.map +1 -0
- package/dist/types/core/http/interfaces.d.ts +42 -0
- package/dist/types/core/http/interfaces.d.ts.map +1 -0
- package/dist/types/core/rate-limiter/RateLimiter.d.ts +46 -0
- package/dist/types/core/rate-limiter/RateLimiter.d.ts.map +1 -0
- package/dist/types/core/rate-limiter/index.d.ts +3 -0
- package/dist/types/core/rate-limiter/index.d.ts.map +1 -0
- package/dist/types/filters/index.d.ts +2 -0
- package/dist/types/filters/index.d.ts.map +1 -0
- package/dist/types/filters/predicates.d.ts +85 -0
- package/dist/types/filters/predicates.d.ts.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/middleware/compose.d.ts +28 -0
- package/dist/types/middleware/compose.d.ts.map +1 -0
- package/dist/types/middleware/index.d.ts +3 -0
- package/dist/types/middleware/index.d.ts.map +1 -0
- package/dist/types/middleware/types.d.ts +17 -0
- package/dist/types/middleware/types.d.ts.map +1 -0
- package/dist/types/transport/LongPollingTransport.d.ts +33 -0
- package/dist/types/transport/LongPollingTransport.d.ts.map +1 -0
- package/dist/types/transport/WebhookTransport.d.ts +40 -0
- package/dist/types/transport/WebhookTransport.d.ts.map +1 -0
- package/dist/types/transport/index.d.ts +4 -0
- package/dist/types/transport/index.d.ts.map +1 -0
- package/dist/types/transport/interfaces.d.ts +74 -0
- package/dist/types/transport/interfaces.d.ts.map +1 -0
- package/dist/types/types/bot.d.ts +19 -0
- package/dist/types/types/bot.d.ts.map +1 -0
- package/dist/types/types/chat.d.ts +94 -0
- package/dist/types/types/chat.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +38 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +9 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/keyboard.d.ts +97 -0
- package/dist/types/types/keyboard.d.ts.map +1 -0
- package/dist/types/types/message.d.ts +162 -0
- package/dist/types/types/message.d.ts.map +1 -0
- package/dist/types/types/subscription.d.ts +23 -0
- package/dist/types/types/subscription.d.ts.map +1 -0
- package/dist/types/types/update.d.ts +99 -0
- package/dist/types/types/update.d.ts.map +1 -0
- package/dist/types/types/upload.d.ts +29 -0
- package/dist/types/types/upload.d.ts.map +1 -0
- package/dist/types/utils/Histogram.d.ts +93 -0
- package/dist/types/utils/Histogram.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +19 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/format.d.ts +22 -0
- package/dist/types/utils/format.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/keyboard.d.ts +70 -0
- package/dist/types/utils/keyboard.d.ts.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Histogram = exports.DEFAULT_BUCKETS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Стандартные границы корзин гистограммы в миллисекундах.
|
|
6
|
+
*
|
|
7
|
+
* Покрывают диапазон от быстрых (~5ms) до медленных (~1s) обработчиков.
|
|
8
|
+
* Совпадают с дефолтными bucket-ами Prometheus Go-клиента (DefBuckets).
|
|
9
|
+
*/
|
|
10
|
+
exports.DEFAULT_BUCKETS = [
|
|
11
|
+
5, 10, 25, 50, 100, 250, 500, 1000,
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Гистограмма задержек.
|
|
15
|
+
*
|
|
16
|
+
* Накапливает измерения (в мс) по заранее заданным boundary-корзинам.
|
|
17
|
+
* Формат снимка ({@link HistogramSnapshot}) совместим с Prometheus histogram
|
|
18
|
+
* — можно скармировать напрямую `prom-client` или аналогу.
|
|
19
|
+
*
|
|
20
|
+
* @example Интеграция с onMetrics
|
|
21
|
+
* ```ts
|
|
22
|
+
* const histogram = new Histogram();
|
|
23
|
+
*
|
|
24
|
+
* bot = new Bot({
|
|
25
|
+
* token: process.env.MAX_BOT_TOKEN!,
|
|
26
|
+
* transport: "polling",
|
|
27
|
+
* onMetrics: (m) => histogram.observe(m.totalMs),
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Раз в минуту — публикуем снимок
|
|
31
|
+
* setInterval(() => {
|
|
32
|
+
* const snap = histogram.snapshot();
|
|
33
|
+
* console.log(`p50≈${snap.buckets["50"]} count=${snap.count} sum=${snap.sum}ms`);
|
|
34
|
+
* histogram.reset(); // сбрасываем для следующего окна
|
|
35
|
+
* }, 60_000);
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example Кастомные корзины
|
|
39
|
+
* ```ts
|
|
40
|
+
* const h = new Histogram([10, 50, 200, 1000, 5000]);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
class Histogram {
|
|
44
|
+
boundaries;
|
|
45
|
+
/** Кумулятивные счётчики: counts[i] = число наблюдений ≤ boundaries[i] */
|
|
46
|
+
counts;
|
|
47
|
+
_sum = 0;
|
|
48
|
+
_count = 0;
|
|
49
|
+
/**
|
|
50
|
+
* @param boundaries - Границы корзин в мс (порядок не важен, будут отсортированы).
|
|
51
|
+
* По умолчанию — {@link DEFAULT_BUCKETS}.
|
|
52
|
+
*/
|
|
53
|
+
constructor(boundaries = exports.DEFAULT_BUCKETS) {
|
|
54
|
+
// Дедупликация и сортировка по возрастанию
|
|
55
|
+
this.boundaries = [...new Set(boundaries)].sort((a, b) => a - b);
|
|
56
|
+
this.counts = new Array(this.boundaries.length).fill(0);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Записывает одно измерение.
|
|
60
|
+
*
|
|
61
|
+
* Инкрементирует все корзины, чья граница ≥ `ms` (кумулятивный формат).
|
|
62
|
+
*
|
|
63
|
+
* @param ms - Значение в миллисекундах (обычно `BotMetrics.totalMs`)
|
|
64
|
+
*/
|
|
65
|
+
observe(ms) {
|
|
66
|
+
this._sum += ms;
|
|
67
|
+
this._count++;
|
|
68
|
+
for (let i = 0; i < this.boundaries.length; i++) {
|
|
69
|
+
if (ms <= this.boundaries[i]) {
|
|
70
|
+
this.counts[i]++;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Возвращает текущий снимок гистограммы (не изменяет состояние).
|
|
76
|
+
*
|
|
77
|
+
* Структура `buckets` — кумулятивные счётчики Prometheus:
|
|
78
|
+
* - `"5"` → число наблюдений ≤ 5ms
|
|
79
|
+
* - `"10"` → число наблюдений ≤ 10ms
|
|
80
|
+
* - …
|
|
81
|
+
* - `"+Inf"` → общее число наблюдений
|
|
82
|
+
*/
|
|
83
|
+
snapshot() {
|
|
84
|
+
const buckets = {};
|
|
85
|
+
for (let i = 0; i < this.boundaries.length; i++) {
|
|
86
|
+
buckets[String(this.boundaries[i])] = this.counts[i];
|
|
87
|
+
}
|
|
88
|
+
buckets["+Inf"] = this._count;
|
|
89
|
+
return { buckets, sum: this._sum, count: this._count };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Сбрасывает все счётчики.
|
|
93
|
+
*
|
|
94
|
+
* Используйте для скользящих окон (например, раз в минуту).
|
|
95
|
+
*/
|
|
96
|
+
reset() {
|
|
97
|
+
this.counts.fill(0);
|
|
98
|
+
this._sum = 0;
|
|
99
|
+
this._count = 0;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.Histogram = Histogram;
|
|
103
|
+
//# sourceMappingURL=Histogram.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exhaustiveness check для discriminated union-ов.
|
|
3
|
+
*
|
|
4
|
+
* Вызывается в `default`-ветке switch чтобы TypeScript статически гарантировал,
|
|
5
|
+
* что все варианты union обработаны. Если ветка достигается в рантайме —
|
|
6
|
+
* бросает ошибку с понятным сообщением вместо молчаливого некорректного поведения.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* switch (update.update_type) {
|
|
11
|
+
* case "message_created": ...
|
|
12
|
+
* case "message_callback": ...
|
|
13
|
+
* default:
|
|
14
|
+
* assertNever(update); // ошибка компиляции если добавить новый update_type
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function assertNever(value: never): never;
|
|
19
|
+
//# sourceMappingURL=assertNever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertNever.d.ts","sourceRoot":"","sources":["../../../src/utils/assertNever.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAI/C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertNever = assertNever;
|
|
4
|
+
/**
|
|
5
|
+
* Exhaustiveness check для discriminated union-ов.
|
|
6
|
+
*
|
|
7
|
+
* Вызывается в `default`-ветке switch чтобы TypeScript статически гарантировал,
|
|
8
|
+
* что все варианты union обработаны. Если ветка достигается в рантайме —
|
|
9
|
+
* бросает ошибку с понятным сообщением вместо молчаливого некорректного поведения.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* switch (update.update_type) {
|
|
14
|
+
* case "message_created": ...
|
|
15
|
+
* case "message_callback": ...
|
|
16
|
+
* default:
|
|
17
|
+
* assertNever(update); // ошибка компиляции если добавить новый update_type
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
function assertNever(value) {
|
|
22
|
+
throw new Error(`assertNever: необработанный вариант: ${JSON.stringify(value)}`);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=assertNever.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Утилиты форматирования текста сообщений.
|
|
3
|
+
*/
|
|
4
|
+
export declare const md: {
|
|
5
|
+
readonly bold: (text: string) => string;
|
|
6
|
+
readonly italic: (text: string) => string;
|
|
7
|
+
readonly strike: (text: string) => string;
|
|
8
|
+
readonly underline: (text: string) => string;
|
|
9
|
+
readonly link: (text: string, url: string) => string;
|
|
10
|
+
readonly mention: (userId: number, text: string) => string;
|
|
11
|
+
readonly escape: (text: string) => string;
|
|
12
|
+
};
|
|
13
|
+
export declare const html: {
|
|
14
|
+
readonly bold: (text: string) => string;
|
|
15
|
+
readonly italic: (text: string) => string;
|
|
16
|
+
readonly strike: (text: string) => string;
|
|
17
|
+
readonly underline: (text: string) => string;
|
|
18
|
+
readonly link: (text: string, url: string) => string;
|
|
19
|
+
readonly mention: (userId: number, text: string) => string;
|
|
20
|
+
readonly escape: (text: string) => string;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,EAAE;0BACA,MAAM;4BACJ,MAAM;4BACN,MAAM;+BACH,MAAM;0BACX,MAAM,OAAO,MAAM;+BACd,MAAM,QAAQ,MAAM;4BACvB,MAAM;CACb,CAAC;AAEX,eAAO,MAAM,IAAI;0BACF,MAAM;4BACJ,MAAM;4BACN,MAAM;+BACH,MAAM;0BACX,MAAM,OAAO,MAAM;+BACd,MAAM,QAAQ,MAAM;4BAEvB,MAAM;CAEb,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.html = exports.md = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Утилиты форматирования текста сообщений.
|
|
6
|
+
*/
|
|
7
|
+
exports.md = {
|
|
8
|
+
bold: (text) => `**${text}**`,
|
|
9
|
+
italic: (text) => `_${text}_`,
|
|
10
|
+
strike: (text) => `~~${text}~~`,
|
|
11
|
+
underline: (text) => `++${text}++`,
|
|
12
|
+
link: (text, url) => `[${text}](${url})`,
|
|
13
|
+
mention: (userId, text) => `[${text}](max://user/${userId})`,
|
|
14
|
+
escape: (text) => text.replace(/[*_~+\[\]()\\]/g, "\\$&"),
|
|
15
|
+
};
|
|
16
|
+
exports.html = {
|
|
17
|
+
bold: (text) => `<b>${text}</b>`,
|
|
18
|
+
italic: (text) => `<i>${text}</i>`,
|
|
19
|
+
strike: (text) => `<del>${text}</del>`,
|
|
20
|
+
underline: (text) => `<ins>${text}</ins>`,
|
|
21
|
+
link: (text, url) => `<a href="${url}">${text}</a>`,
|
|
22
|
+
mention: (userId, text) => `<a href="max://user/${userId}">${text}</a>`,
|
|
23
|
+
escape: (text) => text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"),
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { InlineKeyboard } from "./keyboard.js";
|
|
2
|
+
export { md, html } from "./format.js";
|
|
3
|
+
export { assertNever } from "./assertNever.js";
|
|
4
|
+
export { Histogram, DEFAULT_BUCKETS } from "./Histogram.js";
|
|
5
|
+
export type { HistogramSnapshot } from "./Histogram.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_BUCKETS = exports.Histogram = exports.assertNever = exports.html = exports.md = exports.InlineKeyboard = void 0;
|
|
4
|
+
var keyboard_js_1 = require("./keyboard.js");
|
|
5
|
+
Object.defineProperty(exports, "InlineKeyboard", { enumerable: true, get: function () { return keyboard_js_1.InlineKeyboard; } });
|
|
6
|
+
var format_js_1 = require("./format.js");
|
|
7
|
+
Object.defineProperty(exports, "md", { enumerable: true, get: function () { return format_js_1.md; } });
|
|
8
|
+
Object.defineProperty(exports, "html", { enumerable: true, get: function () { return format_js_1.html; } });
|
|
9
|
+
var assertNever_js_1 = require("./assertNever.js");
|
|
10
|
+
Object.defineProperty(exports, "assertNever", { enumerable: true, get: function () { return assertNever_js_1.assertNever; } });
|
|
11
|
+
var Histogram_js_1 = require("./Histogram.js");
|
|
12
|
+
Object.defineProperty(exports, "Histogram", { enumerable: true, get: function () { return Histogram_js_1.Histogram; } });
|
|
13
|
+
Object.defineProperty(exports, "DEFAULT_BUCKETS", { enumerable: true, get: function () { return Histogram_js_1.DEFAULT_BUCKETS; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ButtonIntent, InlineKeyboardAttachment } from "../types/keyboard.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builder для inline-клавиатуры.
|
|
4
|
+
*/
|
|
5
|
+
export declare class InlineKeyboard {
|
|
6
|
+
private readonly rows;
|
|
7
|
+
private get currentRow();
|
|
8
|
+
/**
|
|
9
|
+
* Добавить callback-кнопку.
|
|
10
|
+
*/
|
|
11
|
+
button(text: string, payload: string, intent?: ButtonIntent): this;
|
|
12
|
+
/**
|
|
13
|
+
* Добавить кнопку-ссылку.
|
|
14
|
+
*/
|
|
15
|
+
url(text: string, url: string, intent?: ButtonIntent): this;
|
|
16
|
+
/**
|
|
17
|
+
* Запросить контакт пользователя (только текст).
|
|
18
|
+
*/
|
|
19
|
+
requestContact(text: string, intent?: ButtonIntent): this;
|
|
20
|
+
/**
|
|
21
|
+
* Запросить геолокацию пользователя.
|
|
22
|
+
*/
|
|
23
|
+
requestGeoLocation(text: string, options?: {
|
|
24
|
+
quick?: boolean;
|
|
25
|
+
intent?: ButtonIntent;
|
|
26
|
+
}): this;
|
|
27
|
+
/**
|
|
28
|
+
* Открыть приложение.
|
|
29
|
+
*/
|
|
30
|
+
openApp(text: string, options?: {
|
|
31
|
+
web_app?: string;
|
|
32
|
+
contact_id?: number;
|
|
33
|
+
payload?: string;
|
|
34
|
+
intent?: ButtonIntent;
|
|
35
|
+
}): this;
|
|
36
|
+
/**
|
|
37
|
+
* Создать новый чат с ботом.
|
|
38
|
+
*
|
|
39
|
+
* При нажатии открывается диалог создания чата — пользователь может его
|
|
40
|
+
* переименовать или отменить. После создания бот получит событие `bot_added`.
|
|
41
|
+
*
|
|
42
|
+
* @param text - Текст кнопки
|
|
43
|
+
* @param chatTitle - Предзаполненное название чата
|
|
44
|
+
* @param options - Дополнительные параметры
|
|
45
|
+
*/
|
|
46
|
+
chat(text: string, chatTitle: string, options?: {
|
|
47
|
+
/** Описание чата */
|
|
48
|
+
chat_description?: string | null;
|
|
49
|
+
/** Payload для bot_started (до 1024 символов) */
|
|
50
|
+
start_payload?: string | null;
|
|
51
|
+
/** UUID для предотвращения дублирования при повторных нажатиях */
|
|
52
|
+
uuid?: string | null;
|
|
53
|
+
}): this;
|
|
54
|
+
/**
|
|
55
|
+
* Отправить сообщение из клиента (текст кнопки отправится в чат от лица пользователя).
|
|
56
|
+
*/
|
|
57
|
+
message(text: string, intent?: ButtonIntent): this;
|
|
58
|
+
/**
|
|
59
|
+
* Завершить текущую строку и начать новую.
|
|
60
|
+
*/
|
|
61
|
+
row(): this;
|
|
62
|
+
/**
|
|
63
|
+
* Построить вложение inline-клавиатуры.
|
|
64
|
+
*/
|
|
65
|
+
build(): InlineKeyboardAttachment;
|
|
66
|
+
private pushButton;
|
|
67
|
+
private assertText;
|
|
68
|
+
private assertUrl;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=keyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../src/utils/keyboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAI9B;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IAEzC,OAAO,KAAK,UAAU,GAGrB;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAalE;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAc3D;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAYzD;;OAEG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,GACnD,IAAI;IAaP;;OAEG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,YAAY,CAAC;KACvB,GACA,IAAI;IAiBP;;;;;;;;;OASG;IACH,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,oBAAoB;QACpB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,iDAAiD;QACjD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,kEAAkE;QAClE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,GACA,IAAI;IAsBP;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAYlD;;OAEG;IACH,GAAG,IAAI,IAAI;IAKX;;OAEG;IACH,KAAK,IAAI,wBAAwB;IAkBjC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;CASlB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InlineKeyboard = void 0;
|
|
4
|
+
const index_js_1 = require("../core/errors/index.js");
|
|
5
|
+
const MAX_BUTTONS = 210;
|
|
6
|
+
/**
|
|
7
|
+
* Builder для inline-клавиатуры.
|
|
8
|
+
*/
|
|
9
|
+
class InlineKeyboard {
|
|
10
|
+
rows = [[]];
|
|
11
|
+
get currentRow() {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- rows всегда содержит хотя бы одну строку (инициализирована как [[]])
|
|
13
|
+
return this.rows[this.rows.length - 1];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Добавить callback-кнопку.
|
|
17
|
+
*/
|
|
18
|
+
button(text, payload, intent) {
|
|
19
|
+
this.assertText(text);
|
|
20
|
+
this.pushButton({
|
|
21
|
+
type: "callback",
|
|
22
|
+
text,
|
|
23
|
+
payload,
|
|
24
|
+
...(intent ? { intent } : {}),
|
|
25
|
+
});
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Добавить кнопку-ссылку.
|
|
30
|
+
*/
|
|
31
|
+
url(text, url, intent) {
|
|
32
|
+
this.assertText(text);
|
|
33
|
+
this.assertUrl(url);
|
|
34
|
+
this.pushButton({
|
|
35
|
+
type: "link",
|
|
36
|
+
text,
|
|
37
|
+
url,
|
|
38
|
+
...(intent ? { intent } : {}),
|
|
39
|
+
});
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Запросить контакт пользователя (только текст).
|
|
44
|
+
*/
|
|
45
|
+
requestContact(text, intent) {
|
|
46
|
+
this.assertText(text);
|
|
47
|
+
this.pushButton({
|
|
48
|
+
type: "request_contact",
|
|
49
|
+
text,
|
|
50
|
+
...(intent ? { intent } : {}),
|
|
51
|
+
});
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Запросить геолокацию пользователя.
|
|
56
|
+
*/
|
|
57
|
+
requestGeoLocation(text, options) {
|
|
58
|
+
this.assertText(text);
|
|
59
|
+
this.pushButton({
|
|
60
|
+
type: "request_geo_location",
|
|
61
|
+
text,
|
|
62
|
+
...(options?.quick ? { quick: options.quick } : {}),
|
|
63
|
+
...(options?.intent ? { intent: options.intent } : {}),
|
|
64
|
+
});
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Открыть приложение.
|
|
69
|
+
*/
|
|
70
|
+
openApp(text, options) {
|
|
71
|
+
this.assertText(text);
|
|
72
|
+
this.pushButton({
|
|
73
|
+
type: "open_app",
|
|
74
|
+
text,
|
|
75
|
+
...(options?.web_app ? { web_app: options.web_app } : {}),
|
|
76
|
+
...(typeof options?.contact_id === "number"
|
|
77
|
+
? { contact_id: options.contact_id }
|
|
78
|
+
: {}),
|
|
79
|
+
...(options?.payload ? { payload: options.payload } : {}),
|
|
80
|
+
...(options?.intent ? { intent: options.intent } : {}),
|
|
81
|
+
});
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Создать новый чат с ботом.
|
|
86
|
+
*
|
|
87
|
+
* При нажатии открывается диалог создания чата — пользователь может его
|
|
88
|
+
* переименовать или отменить. После создания бот получит событие `bot_added`.
|
|
89
|
+
*
|
|
90
|
+
* @param text - Текст кнопки
|
|
91
|
+
* @param chatTitle - Предзаполненное название чата
|
|
92
|
+
* @param options - Дополнительные параметры
|
|
93
|
+
*/
|
|
94
|
+
chat(text, chatTitle, options) {
|
|
95
|
+
this.assertText(text);
|
|
96
|
+
if (!chatTitle || typeof chatTitle !== "string") {
|
|
97
|
+
throw new index_js_1.ValidationError("chat_title должен быть непустой строкой");
|
|
98
|
+
}
|
|
99
|
+
this.pushButton({
|
|
100
|
+
type: "chat",
|
|
101
|
+
text,
|
|
102
|
+
chat_title: chatTitle,
|
|
103
|
+
...(options?.chat_description != null
|
|
104
|
+
? { chat_description: options.chat_description }
|
|
105
|
+
: {}),
|
|
106
|
+
...(options?.start_payload != null
|
|
107
|
+
? { start_payload: options.start_payload }
|
|
108
|
+
: {}),
|
|
109
|
+
...(options?.uuid != null ? { uuid: options.uuid } : {}),
|
|
110
|
+
});
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Отправить сообщение из клиента (текст кнопки отправится в чат от лица пользователя).
|
|
115
|
+
*/
|
|
116
|
+
message(text, intent) {
|
|
117
|
+
this.assertText(text);
|
|
118
|
+
this.pushButton({
|
|
119
|
+
type: "message",
|
|
120
|
+
text,
|
|
121
|
+
...(intent ? { intent } : {}),
|
|
122
|
+
});
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Завершить текущую строку и начать новую.
|
|
127
|
+
*/
|
|
128
|
+
row() {
|
|
129
|
+
this.rows.push([]);
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Построить вложение inline-клавиатуры.
|
|
134
|
+
*/
|
|
135
|
+
build() {
|
|
136
|
+
const rows = this.rows.filter((row) => row.length > 0);
|
|
137
|
+
const total = rows.reduce((count, row) => count + row.length, 0);
|
|
138
|
+
if (total > MAX_BUTTONS) {
|
|
139
|
+
throw new index_js_1.ValidationError(`Превышен лимит кнопок: ${total}/${MAX_BUTTONS}`);
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
type: "inline_keyboard",
|
|
143
|
+
payload: {
|
|
144
|
+
buttons: rows,
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
pushButton(button) {
|
|
149
|
+
this.currentRow.push(button);
|
|
150
|
+
}
|
|
151
|
+
assertText(text) {
|
|
152
|
+
if (!text || typeof text !== "string") {
|
|
153
|
+
throw new index_js_1.ValidationError("Текст кнопки должен быть непустой строкой");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
assertUrl(url) {
|
|
157
|
+
if (!url || typeof url !== "string") {
|
|
158
|
+
throw new index_js_1.ValidationError("URL должен быть строкой");
|
|
159
|
+
}
|
|
160
|
+
if (!url.startsWith("http://") && !url.startsWith("https://")) {
|
|
161
|
+
throw new index_js_1.ValidationError("URL должен начинаться с http:// или https://");
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.InlineKeyboard = InlineKeyboard;
|
|
166
|
+
//# sourceMappingURL=keyboard.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IHttpClient } from "../core/http/interfaces.js";
|
|
2
|
+
import type { BotInfo } from "../types/bot.js";
|
|
3
|
+
import type { IBotsApi } from "./interfaces.js";
|
|
4
|
+
/**
|
|
5
|
+
* API для работы с ботами.
|
|
6
|
+
*/
|
|
7
|
+
export declare class BotsApi implements IBotsApi {
|
|
8
|
+
private readonly http;
|
|
9
|
+
constructor(http: IHttpClient);
|
|
10
|
+
/**
|
|
11
|
+
* Получить информацию о текущем боте.
|
|
12
|
+
*
|
|
13
|
+
* Используется для проверки валидности токена и получения данных бота.
|
|
14
|
+
*/
|
|
15
|
+
getMe(): Promise<BotInfo>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=BotsApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotsApi.d.ts","sourceRoot":"","sources":["../../../src/api/BotsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,WAAW;IAE9C;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;CAGhC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API для работы с ботами.
|
|
3
|
+
*/
|
|
4
|
+
export class BotsApi {
|
|
5
|
+
http;
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Получить информацию о текущем боте.
|
|
11
|
+
*
|
|
12
|
+
* Используется для проверки валидности токена и получения данных бота.
|
|
13
|
+
*/
|
|
14
|
+
async getMe() {
|
|
15
|
+
return this.http.get("/me");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=BotsApi.js.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { IHttpClient } from "../core/http/interfaces.js";
|
|
2
|
+
import type { Chat, ChatMember, ChatsResponse, GetChatsParams, UpdateChatRequest } from "../types/chat.js";
|
|
3
|
+
import type { Message } from "../types/message.js";
|
|
4
|
+
import type { User } from "../types/common.js";
|
|
5
|
+
import type { IChatsApi } from "./interfaces.js";
|
|
6
|
+
/**
|
|
7
|
+
* API для работы с чатами.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ChatsApi implements IChatsApi {
|
|
10
|
+
private readonly http;
|
|
11
|
+
constructor(http: IHttpClient);
|
|
12
|
+
/**
|
|
13
|
+
* Получить список чатов, в которых участвует бот.
|
|
14
|
+
*/
|
|
15
|
+
getChats(params?: GetChatsParams): Promise<ChatsResponse>;
|
|
16
|
+
/**
|
|
17
|
+
* Получить информацию о чате по ID.
|
|
18
|
+
*/
|
|
19
|
+
getChat(chatId: number): Promise<Chat>;
|
|
20
|
+
/**
|
|
21
|
+
* Получить информацию о чате по ссылке.
|
|
22
|
+
*/
|
|
23
|
+
getChatByLink(chatLink: string): Promise<Chat>;
|
|
24
|
+
/**
|
|
25
|
+
* Обновить информацию о чате.
|
|
26
|
+
*/
|
|
27
|
+
updateChat(chatId: number, data: UpdateChatRequest): Promise<Chat>;
|
|
28
|
+
/**
|
|
29
|
+
* Удалить чат.
|
|
30
|
+
*/
|
|
31
|
+
deleteChat(chatId: number): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Отправить действие в чат (например, "печатает...").
|
|
34
|
+
*
|
|
35
|
+
* Показывает пользователям, что бот обрабатывает запрос.
|
|
36
|
+
*/
|
|
37
|
+
sendAction(chatId: number, action: string): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Получить закреплённое сообщение.
|
|
40
|
+
*/
|
|
41
|
+
getPinnedMessage(chatId: number): Promise<Message | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Закрепить сообщение в чате.
|
|
44
|
+
*/
|
|
45
|
+
pinMessage(chatId: number, messageId: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Открепить сообщение в чате.
|
|
48
|
+
*/
|
|
49
|
+
unpinMessage(chatId: number): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Получить информацию о членстве бота в чате.
|
|
52
|
+
*/
|
|
53
|
+
getBotMembership(chatId: number): Promise<ChatMember>;
|
|
54
|
+
/**
|
|
55
|
+
* Покинуть чат.
|
|
56
|
+
*/
|
|
57
|
+
leaveChat(chatId: number): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Получить участников чата.
|
|
60
|
+
*/
|
|
61
|
+
getMembers(chatId: number): Promise<{
|
|
62
|
+
members: ChatMember[];
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Добавить участников в чат.
|
|
66
|
+
*/
|
|
67
|
+
addMembers(chatId: number, userIds: number[]): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Удалить участника из чата.
|
|
70
|
+
*/
|
|
71
|
+
removeMember(chatId: number, userId: number): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Получить администраторов чата.
|
|
74
|
+
*/
|
|
75
|
+
getAdmins(chatId: number): Promise<{
|
|
76
|
+
admins: User[];
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Добавить администратора в чат.
|
|
80
|
+
*/
|
|
81
|
+
addAdmin(chatId: number, userId: number): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Удалить администратора из чата.
|
|
84
|
+
*/
|
|
85
|
+
removeAdmin(chatId: number, userId: number): Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=ChatsApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatsApi.d.ts","sourceRoot":"","sources":["../../../src/api/ChatsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,qBAAa,QAAS,YAAW,SAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,WAAW;IAE9C;;OAEG;IACG,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAS/D;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgB/D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3D;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAIpE;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAI5D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjE"}
|