@xbibzlibrary/telebibz 0.1.19 → 0.3.1

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 (95) hide show
  1. package/CHANGELOG.md +42 -8
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.id.md +44 -5
  4. package/README.md +45 -6
  5. package/README.zh-CN.md +44 -5
  6. package/RELEASE_AUTOMATION.md +17 -5
  7. package/bin/telebibz.mjs +1 -1
  8. package/dist/src/api/client.d.ts +3 -1
  9. package/dist/src/api/client.d.ts.map +1 -1
  10. package/dist/src/api/client.js +3 -1
  11. package/dist/src/api/client.js.map +1 -1
  12. package/dist/src/api/transport.d.ts +18 -1
  13. package/dist/src/api/transport.d.ts.map +1 -1
  14. package/dist/src/api/transport.js +26 -2
  15. package/dist/src/api/transport.js.map +1 -1
  16. package/dist/src/branding/terminal.d.ts +62 -0
  17. package/dist/src/branding/terminal.d.ts.map +1 -1
  18. package/dist/src/branding/terminal.js +258 -0
  19. package/dist/src/branding/terminal.js.map +1 -1
  20. package/dist/src/broadcast/broadcast.d.ts +50 -0
  21. package/dist/src/broadcast/broadcast.d.ts.map +1 -0
  22. package/dist/src/broadcast/broadcast.js +56 -0
  23. package/dist/src/broadcast/broadcast.js.map +1 -0
  24. package/dist/src/cli.d.ts.map +1 -1
  25. package/dist/src/cli.js +7 -3
  26. package/dist/src/cli.js.map +1 -1
  27. package/dist/src/context/context.d.ts +24 -1
  28. package/dist/src/context/context.d.ts.map +1 -1
  29. package/dist/src/context/context.js +102 -8
  30. package/dist/src/context/context.js.map +1 -1
  31. package/dist/src/core/bot.d.ts +61 -2
  32. package/dist/src/core/bot.d.ts.map +1 -1
  33. package/dist/src/core/bot.js +180 -31
  34. package/dist/src/core/bot.js.map +1 -1
  35. package/dist/src/index.d.ts +2 -0
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +2 -0
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/keyboard/index.d.ts +12 -0
  40. package/dist/src/keyboard/index.d.ts.map +1 -1
  41. package/dist/src/keyboard/index.js +13 -1
  42. package/dist/src/keyboard/index.js.map +1 -1
  43. package/dist/src/observability/logger.d.ts +28 -1
  44. package/dist/src/observability/logger.d.ts.map +1 -1
  45. package/dist/src/observability/logger.js +110 -0
  46. package/dist/src/observability/logger.js.map +1 -1
  47. package/dist/src/plugins/plugin.d.ts +2 -0
  48. package/dist/src/plugins/plugin.d.ts.map +1 -1
  49. package/dist/src/plugins/plugin.js +11 -4
  50. package/dist/src/plugins/plugin.js.map +1 -1
  51. package/dist/src/router/router.d.ts +19 -0
  52. package/dist/src/router/router.d.ts.map +1 -1
  53. package/dist/src/router/router.js +125 -23
  54. package/dist/src/router/router.js.map +1 -1
  55. package/dist/src/state/forms.d.ts +0 -1
  56. package/dist/src/state/forms.d.ts.map +1 -1
  57. package/dist/src/state/forms.js +27 -24
  58. package/dist/src/state/forms.js.map +1 -1
  59. package/dist/src/storage/storage.d.ts +10 -0
  60. package/dist/src/storage/storage.d.ts.map +1 -1
  61. package/dist/src/storage/storage.js +20 -2
  62. package/dist/src/storage/storage.js.map +1 -1
  63. package/dist/src/utils/concurrency.d.ts +25 -0
  64. package/dist/src/utils/concurrency.d.ts.map +1 -0
  65. package/dist/src/utils/concurrency.js +52 -0
  66. package/dist/src/utils/concurrency.js.map +1 -0
  67. package/dist/src/utils/text.d.ts +22 -0
  68. package/dist/src/utils/text.d.ts.map +1 -1
  69. package/dist/src/utils/text.js +0 -0
  70. package/dist/src/utils/text.js.map +1 -1
  71. package/dist/src/webhook/handler.d.ts +3 -0
  72. package/dist/src/webhook/handler.d.ts.map +1 -1
  73. package/dist/src/webhook/handler.js +85 -0
  74. package/dist/src/webhook/handler.js.map +1 -1
  75. package/dist-cjs/src/api/client.js +3 -1
  76. package/dist-cjs/src/api/transport.js +26 -2
  77. package/dist-cjs/src/branding/terminal.js +264 -1
  78. package/dist-cjs/src/broadcast/broadcast.js +58 -0
  79. package/dist-cjs/src/cli.js +7 -3
  80. package/dist-cjs/src/context/context.js +102 -8
  81. package/dist-cjs/src/core/bot.js +178 -29
  82. package/dist-cjs/src/index.js +2 -0
  83. package/dist-cjs/src/keyboard/index.js +13 -1
  84. package/dist-cjs/src/observability/logger.js +113 -1
  85. package/dist-cjs/src/plugins/plugin.js +11 -4
  86. package/dist-cjs/src/router/router.js +126 -24
  87. package/dist-cjs/src/state/forms.js +27 -24
  88. package/dist-cjs/src/storage/storage.js +20 -2
  89. package/dist-cjs/src/utils/concurrency.js +57 -0
  90. package/dist-cjs/src/utils/text.js +0 -0
  91. package/dist-cjs/src/webhook/handler.js +86 -0
  92. package/docs/API.id.md +120 -4
  93. package/docs/API.md +122 -4
  94. package/docs/API.zh-CN.md +119 -3
  95. package/package.json +3 -3
@@ -1,10 +1,11 @@
1
1
  import type { ApiClient } from "../api/client.js";
2
- import type { Chat, ChatId, Message, ReplyMarkup, Update, User } from "../api/types.js";
2
+ import type { Chat, ChatId, InputFile, Message, ReplyMarkup, Update, User } from "../api/types.js";
3
3
  export interface ContextOptions<S extends object = Record<string, unknown>> {
4
4
  update: Update;
5
5
  api: ApiClient;
6
6
  session: S;
7
7
  services: Record<string, unknown>;
8
+ me?: User | undefined;
8
9
  }
9
10
  export declare class Context<S extends object = Record<string, unknown>> {
10
11
  readonly update: Update;
@@ -13,6 +14,9 @@ export declare class Context<S extends object = Record<string, unknown>> {
13
14
  readonly state: Record<string, unknown>;
14
15
  readonly services: Record<string, unknown>;
15
16
  readonly params: Record<string, string>;
17
+ readonly me?: User | undefined;
18
+ match?: RegExpMatchArray;
19
+ args?: string[];
16
20
  constructor(options: ContextOptions<S>);
17
21
  get message(): Message | undefined;
18
22
  get chat(): Chat | undefined;
@@ -27,9 +31,28 @@ export declare class Context<S extends object = Record<string, unknown>> {
27
31
  get chatJoinRequest(): import("../api/types.js").ChatJoinRequest | undefined;
28
32
  get reaction(): Record<string, unknown> | undefined;
29
33
  get boost(): Record<string, unknown> | undefined;
34
+ private replyExtras;
35
+ private sendMethod;
30
36
  reply(text: string, extra?: Record<string, unknown>): Promise<Message>;
31
37
  send(text: string, extra?: Record<string, unknown>): Promise<Message>;
32
38
  edit(text: string, extra?: Record<string, unknown>): Promise<Message | true>;
39
+ replyWithHTML(text: string, extra?: Record<string, unknown>): Promise<Message>;
40
+ replyWithMarkdown(text: string, extra?: Record<string, unknown>): Promise<Message>;
41
+ replyWithPhoto(photo: InputFile, extra?: Record<string, unknown>): Promise<Message>;
42
+ replyWithDocument(document: InputFile, extra?: Record<string, unknown>): Promise<Message>;
43
+ replyWithAudio(audio: InputFile, extra?: Record<string, unknown>): Promise<Message>;
44
+ replyWithVideo(video: InputFile, extra?: Record<string, unknown>): Promise<Message>;
45
+ replyWithVoice(voice: InputFile, extra?: Record<string, unknown>): Promise<Message>;
46
+ replyWithAnimation(animation: InputFile, extra?: Record<string, unknown>): Promise<Message>;
47
+ replyWithVideoNote(videoNote: InputFile, extra?: Record<string, unknown>): Promise<Message>;
48
+ replyWithSticker(sticker: InputFile, extra?: Record<string, unknown>): Promise<Message>;
49
+ replyWithMediaGroup(media: Array<Record<string, unknown>>, extra?: Record<string, unknown>): Promise<Message[]>;
50
+ replyWithLocation(latitude: number, longitude: number, extra?: Record<string, unknown>): Promise<Message>;
51
+ replyWithVenue(latitude: number, longitude: number, title: string, address: string, extra?: Record<string, unknown>): Promise<Message>;
52
+ replyWithContact(phoneNumber: string, firstName: string, extra?: Record<string, unknown>): Promise<Message>;
53
+ replyWithPoll(question: string, options: string[], extra?: Record<string, unknown>): Promise<Message>;
54
+ replyWithDice(emoji?: string, extra?: Record<string, unknown>): Promise<Message>;
55
+ sendChatAction(action: string, extra?: Record<string, unknown>): Promise<true>;
33
56
  delete(): Promise<true>;
34
57
  copy(fromChatId: ChatId, messageId: number, extra?: Record<string, unknown>): Promise<unknown>;
35
58
  forward(fromChatId: ChatId, messageId: number, extra?: Record<string, unknown>): Promise<Message>;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,15 @@ export class Context {
5
5
  state = Object.create(null);
6
6
  services;
7
7
  params = Object.create(null);
8
+ me;
9
+ match;
10
+ args;
8
11
  constructor(options) {
9
12
  this.update = options.update;
10
13
  this.api = options.api;
11
14
  this.session = options.session;
12
15
  this.services = options.services;
16
+ this.me = options.me;
13
17
  }
14
18
  get message() {
15
19
  return this.update.message
@@ -29,13 +33,21 @@ export class Context {
29
33
  ?? this.pollAnswer?.voter_chat;
30
34
  }
31
35
  get from() {
32
- return this.message?.from
33
- ?? this.callbackQuery?.from
36
+ return this.callbackQuery?.from
34
37
  ?? this.inlineQuery?.from
38
+ ?? this.update.chosen_inline_result?.from
39
+ ?? this.update.message?.from
40
+ ?? this.update.edited_message?.from
41
+ ?? this.update.channel_post?.from
42
+ ?? this.update.edited_channel_post?.from
43
+ ?? this.update.business_message?.from
44
+ ?? this.update.edited_business_message?.from
45
+ ?? this.update.guest_message?.from
35
46
  ?? this.update.chat_member?.from
36
47
  ?? this.update.my_chat_member?.from
37
48
  ?? this.update.chat_join_request?.from
38
- ?? this.pollAnswer?.user;
49
+ ?? this.pollAnswer?.user
50
+ ?? this.message?.from;
39
51
  }
40
52
  get sender() { return this.from; }
41
53
  get callbackQuery() { return this.update.callback_query; }
@@ -47,20 +59,102 @@ export class Context {
47
59
  get chatJoinRequest() { return this.update.chat_join_request; }
48
60
  get reaction() { return this.update.message_reaction; }
49
61
  get boost() { return this.update.chat_boost ?? this.update.removed_chat_boost; }
50
- async reply(text, extra = {}) {
62
+ replyExtras(extra) {
63
+ const { reply_parameters, reply_markup, ...rest } = extra;
64
+ const quoted = this.message?.message_id !== undefined ? { message_id: this.message.message_id } : undefined;
65
+ const replyParameters = quoted === undefined && reply_parameters === undefined ? undefined : { ...(quoted ?? {}), ...(reply_parameters ?? {}) };
66
+ return { replyParameters, replyMarkup: reply_markup ?? this.state.reply_markup, rest };
67
+ }
68
+ sendMethod(method, payload, extra = {}) {
51
69
  if (!this.chat)
52
- throw new Error("Cannot reply without a chat in this update.");
53
- return this.api.methods.sendMessage({ chat_id: this.chat.id, text, reply_parameters: { message_id: this.message?.message_id }, ...extra });
70
+ throw new Error(`Cannot send ${method} without a chat in this update.`);
71
+ const { replyParameters, replyMarkup, rest } = this.replyExtras(extra);
72
+ return this.api.call(method, {
73
+ chat_id: this.chat.id,
74
+ ...payload,
75
+ ...rest,
76
+ ...(replyParameters ? { reply_parameters: replyParameters } : {}),
77
+ ...(replyMarkup ? { reply_markup: replyMarkup } : {}),
78
+ });
79
+ }
80
+ async reply(text, extra = {}) {
81
+ return this.sendMethod("sendMessage", { text }, extra);
54
82
  }
55
83
  async send(text, extra = {}) {
56
84
  if (!this.chat)
57
85
  throw new Error("Cannot send without a chat in this update.");
58
- return this.api.methods.sendMessage({ chat_id: this.chat.id, text, ...extra });
86
+ const { replyMarkup, rest } = this.replyExtras(extra);
87
+ return this.api.methods.sendMessage({
88
+ chat_id: this.chat.id,
89
+ text,
90
+ ...rest,
91
+ ...(replyMarkup ? { reply_markup: replyMarkup } : {}),
92
+ });
59
93
  }
60
94
  async edit(text, extra = {}) {
61
95
  if (!this.chat || !this.message)
62
96
  throw new Error("Cannot edit without a chat and message in this update.");
63
- return this.api.methods.editMessageText({ chat_id: this.chat.id, message_id: this.message.message_id, text, ...extra });
97
+ const { replyMarkup, rest } = this.replyExtras(extra);
98
+ return this.api.methods.editMessageText({
99
+ chat_id: this.chat.id,
100
+ message_id: this.message.message_id,
101
+ text,
102
+ ...rest,
103
+ ...(replyMarkup ? { reply_markup: replyMarkup } : {}),
104
+ });
105
+ }
106
+ async replyWithHTML(text, extra = {}) {
107
+ return this.reply(text, { parse_mode: "HTML", ...extra });
108
+ }
109
+ async replyWithMarkdown(text, extra = {}) {
110
+ return this.reply(text, { parse_mode: "MarkdownV2", ...extra });
111
+ }
112
+ async replyWithPhoto(photo, extra = {}) {
113
+ return this.sendMethod("sendPhoto", { photo }, extra);
114
+ }
115
+ async replyWithDocument(document, extra = {}) {
116
+ return this.sendMethod("sendDocument", { document }, extra);
117
+ }
118
+ async replyWithAudio(audio, extra = {}) {
119
+ return this.sendMethod("sendAudio", { audio }, extra);
120
+ }
121
+ async replyWithVideo(video, extra = {}) {
122
+ return this.sendMethod("sendVideo", { video }, extra);
123
+ }
124
+ async replyWithVoice(voice, extra = {}) {
125
+ return this.sendMethod("sendVoice", { voice }, extra);
126
+ }
127
+ async replyWithAnimation(animation, extra = {}) {
128
+ return this.sendMethod("sendAnimation", { animation }, extra);
129
+ }
130
+ async replyWithVideoNote(videoNote, extra = {}) {
131
+ return this.sendMethod("sendVideoNote", { video_note: videoNote }, extra);
132
+ }
133
+ async replyWithSticker(sticker, extra = {}) {
134
+ return this.sendMethod("sendSticker", { sticker }, extra);
135
+ }
136
+ async replyWithMediaGroup(media, extra = {}) {
137
+ return this.sendMethod("sendMediaGroup", { media }, extra);
138
+ }
139
+ async replyWithLocation(latitude, longitude, extra = {}) {
140
+ return this.sendMethod("sendLocation", { latitude, longitude }, extra);
141
+ }
142
+ async replyWithVenue(latitude, longitude, title, address, extra = {}) {
143
+ return this.sendMethod("sendVenue", { latitude, longitude, title, address }, extra);
144
+ }
145
+ async replyWithContact(phoneNumber, firstName, extra = {}) {
146
+ return this.sendMethod("sendContact", { phone_number: phoneNumber, first_name: firstName }, extra);
147
+ }
148
+ async replyWithPoll(question, options, extra = {}) {
149
+ return this.sendMethod("sendPoll", { question, options }, extra);
150
+ }
151
+ async replyWithDice(emoji, extra = {}) {
152
+ return this.sendMethod("sendDice", emoji === undefined ? {} : { emoji }, extra);
153
+ }
154
+ async sendChatAction(action, extra = {}) {
155
+ if (!this.chat)
156
+ throw new Error("Cannot send chat action without a chat in this update.");
157
+ return this.api.call("sendChatAction", { chat_id: this.chat.id, action, ...extra });
64
158
  }
65
159
  async delete() {
66
160
  if (!this.chat || !this.message)
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { ApiClient } from "../api/client.js";
2
2
  import { type FetchTransportOptions, type Transport } from "../api/transport.js";
3
- import type { BotCommand, BotCommandScope, Update, User } from "../api/types.js";
3
+ import type { BotCommand, BotCommandScope, ChatId, Update, User } from "../api/types.js";
4
4
  import { Context } from "../context/context.js";
5
5
  import { type Middleware } from "../middleware/compose.js";
6
- import { Router, type RouterOptions } from "../router/router.js";
6
+ import { Router, type RouterOptions, type UpdateFilter } from "../router/router.js";
7
7
  import { EventBus, type EventMap } from "./events.js";
8
8
  import { type Storage } from "../storage/storage.js";
9
9
  import { PluginManager, type Plugin } from "../plugins/plugin.js";
10
10
  import { Logger, type LoggerOptions } from "../observability/logger.js";
11
11
  import { type Wizard } from "../state/conversation.js";
12
+ import { type BroadcastOptions, type BroadcastReport } from "../broadcast/broadcast.js";
12
13
  export type BotStatus = "created" | "initialized" | "starting" | "running" | "stopping" | "stopped" | "error";
13
14
  export type BotContext<S extends object = Record<string, unknown>> = Context<S>;
14
15
  export interface BotOptions<S extends object = Record<string, unknown>> {
@@ -25,8 +26,18 @@ export interface BotOptions<S extends object = Record<string, unknown>> {
25
26
  retryDelayMs?: number;
26
27
  maxRetryDelayMs?: number;
27
28
  };
29
+ /**
30
+ * Update-processing tuning. Updates always run in parallel across chats
31
+ * while staying ordered within a single chat. `concurrency` caps how many
32
+ * updates may be processed at the same time (default `Infinity` — bursts of
33
+ * 1000+ messages are processed at once, with no artificial cooldown).
34
+ */
35
+ updates?: {
36
+ concurrency?: number;
37
+ };
28
38
  router?: RouterOptions;
29
39
  logger?: Logger | LoggerOptions;
40
+ branding?: boolean;
30
41
  }
31
42
  export interface HealthStatus {
32
43
  status: BotStatus;
@@ -50,7 +61,20 @@ export declare class Bot<S extends object = Record<string, unknown>> {
50
61
  private pollingAbort;
51
62
  private offset;
52
63
  private me?;
64
+ /** Caps how many updates run at once (default: unlimited). */
65
+ private readonly updateLimiter;
66
+ /** Per-chat processing chains: parallel across chats, ordered within a chat. */
67
+ private readonly chatChains;
68
+ /** Memoized init so a burst of updates triggers exactly one getMe call. */
69
+ private initOnce;
70
+ private readonly brandingEnabled;
71
+ /** Branding effects run only on an interactive TTY; structured logs stay untouched otherwise. */
72
+ private readonly brandingActive;
73
+ private activeBanner;
74
+ private errorHandler?;
53
75
  constructor(options: string | BotOptions<S>);
76
+ /** Startup info logs are demoted to debug while the branding sequence owns the terminal. */
77
+ private startupLog;
54
78
  get status(): BotStatus;
55
79
  get botInfo(): User | undefined;
56
80
  use(...middleware: Middleware<Context<S>>[]): this;
@@ -58,6 +82,15 @@ export declare class Bot<S extends object = Record<string, unknown>> {
58
82
  callback(pattern: string | RegExp, handler: Middleware<Context<S>>): this;
59
83
  onText(text: string, handler: Middleware<Context<S>>): this;
60
84
  onRegex(expression: RegExp, handler: Middleware<Context<S>>): this;
85
+ /** Registers a handler for update types: `bot.on("message:photo", handler)` or `bot.on(["message:text", "callback_query:data"], handler)`. */
86
+ on(filter: UpdateFilter | UpdateFilter[], handler: Middleware<Context<S>>): this;
87
+ /** Registers a handler for exact text or a regular expression, mirroring familiar frameworks. */
88
+ hears(trigger: string | RegExp, handler: Middleware<Context<S>>): this;
89
+ /**
90
+ * Sets the error boundary for update handlers. When set, handler failures are
91
+ * passed here instead of rejecting `handleUpdate()` (webhooks answer 200).
92
+ */
93
+ catch(handler: (error: unknown, ctx: Context<S>) => void | Promise<void>): this;
61
94
  usePlugin(plugin: Plugin<Context<S>>): this;
62
95
  /**
63
96
  * Routes subsequent messages to the active Wizard step for the same chat/user.
@@ -80,7 +113,33 @@ export declare class Bot<S extends object = Record<string, unknown>> {
80
113
  getMe(): Promise<User>;
81
114
  setCommands(commands: BotCommand[], scope?: BotCommandScope, languageCode?: string): Promise<true>;
82
115
  deleteCommands(scope?: BotCommandScope, languageCode?: string): Promise<true>;
116
+ /**
117
+ * Handles a single update. Updates for different chats run in parallel;
118
+ * updates for the same chat are processed strictly in arrival order so
119
+ * sessions, wizards, and conversations never interleave. Rejects for this
120
+ * update's failure (as before) without affecting other updates.
121
+ */
83
122
  handleUpdate(update: Update): Promise<void>;
123
+ /**
124
+ * Handles a whole batch of updates at once: every chat in the batch is
125
+ * processed immediately (parallel across chats, ordered per chat), so a
126
+ * burst of 1000 messages is not stuck behind one slow handler. Individual
127
+ * handler failures are logged, emitted as `update:error`, and passed to the
128
+ * `catch()` error boundary; they never reject this promise.
129
+ */
130
+ handleUpdates(updates: readonly Update[]): Promise<void>;
131
+ /**
132
+ * Sends to many chats in parallel — built for broadcasts to 1000+ users.
133
+ * There is no proactive cooldown: every chat is attempted at once (up to
134
+ * `concurrency`). When Telegram answers 429, the send is retried
135
+ * automatically after exactly the `retry_after` delay Telegram ordered, so
136
+ * bursts deliver completely instead of failing.
137
+ */
138
+ broadcast(chatIds: readonly ChatId[], send: (chatId: ChatId) => Promise<unknown>, options?: BroadcastOptions): Promise<BroadcastReport>;
139
+ /** Runs init() once even when many updates arrive concurrently. */
140
+ private ensureInitialized;
141
+ private processUpdate;
142
+ private runUpdate;
84
143
  private conversationKey;
85
144
  private waitForRetry;
86
145
  private poll;
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/core/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/core/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAwC,MAAM,EAAmB,KAAK,aAAa,EAAmB,MAAM,4BAA4B,CAAC;AAEhJ,OAAO,EAA8B,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGtG,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAC9G,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3H;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AAEzH,qBAAa,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,qBAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IACjF,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,EAAE,CAAC,CAAO;IAClB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,YAAY,CAAC,CAA4D;gBAErE,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAgC3C,4FAA4F;IAC5F,OAAO,CAAC,UAAU;IAKlB,IAAI,MAAM,IAAI,SAAS,CAA6B;IACpD,IAAI,OAAO,IAAI,IAAI,GAAG,SAAS,CAAoB;IAEnD,GAAG,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACzE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAC3D,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAClE,8IAA8I;IAC9I,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAChF,iGAAiG;IACjG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAKtE;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAC/E,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAE3C;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAiBtE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtB,MAAM,CAAC,OAAO,GAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAcrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAExB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAK/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAClG,cAAc,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnF;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9D;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI7I,mEAAmE;IACnE,OAAO,CAAC,iBAAiB;YAWX,aAAa;YAIb,SAAS;IA6CvB,OAAO,CAAC,eAAe;YAuBT,YAAY;YAgBZ,IAAI;CAyBnB"}