telegram-botbuilder 1.6.5 → 2.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 (165) hide show
  1. package/Changelog.md +81 -0
  2. package/MIGRATION.md +453 -0
  3. package/README.md +403 -0
  4. package/lib/actions/callback_action.d.ts +14 -0
  5. package/lib/actions/callback_action.d.ts.map +1 -0
  6. package/lib/actions/callback_action.js +25 -0
  7. package/lib/actions/callback_action.js.map +1 -0
  8. package/lib/actions/change_dialog.d.ts +10 -0
  9. package/lib/actions/change_dialog.d.ts.map +1 -0
  10. package/lib/actions/change_dialog.js +17 -0
  11. package/lib/actions/change_dialog.js.map +1 -0
  12. package/lib/actions/control_flow.d.ts +26 -0
  13. package/lib/actions/control_flow.d.ts.map +1 -0
  14. package/lib/actions/control_flow.js +61 -0
  15. package/lib/actions/control_flow.js.map +1 -0
  16. package/lib/actions/index.d.ts +6 -0
  17. package/lib/actions/index.d.ts.map +1 -0
  18. package/lib/actions/index.js +11 -0
  19. package/lib/actions/index.js.map +1 -0
  20. package/lib/actions/send_message.d.ts +16 -0
  21. package/lib/actions/send_message.d.ts.map +1 -0
  22. package/lib/actions/send_message.js +32 -0
  23. package/lib/actions/send_message.js.map +1 -0
  24. package/lib/actions/wait_for_input.d.ts +14 -0
  25. package/lib/actions/wait_for_input.d.ts.map +1 -0
  26. package/lib/actions/wait_for_input.js +54 -0
  27. package/lib/actions/wait_for_input.js.map +1 -0
  28. package/lib/core/bot_builder.d.ts +145 -0
  29. package/lib/core/bot_builder.d.ts.map +1 -0
  30. package/lib/core/bot_builder.js +678 -0
  31. package/lib/core/bot_builder.js.map +1 -0
  32. package/lib/core/button_registry.d.ts +39 -0
  33. package/lib/core/button_registry.d.ts.map +1 -0
  34. package/lib/core/button_registry.js +84 -0
  35. package/lib/core/button_registry.js.map +1 -0
  36. package/lib/core/dialog_manager.d.ts +71 -0
  37. package/lib/core/dialog_manager.d.ts.map +1 -0
  38. package/lib/core/dialog_manager.js +146 -0
  39. package/lib/core/dialog_manager.js.map +1 -0
  40. package/lib/core/index.d.ts +8 -0
  41. package/lib/core/index.d.ts.map +1 -0
  42. package/lib/core/index.js +8 -0
  43. package/lib/core/index.js.map +1 -0
  44. package/lib/core/input_manager.d.ts +49 -0
  45. package/lib/core/input_manager.d.ts.map +1 -0
  46. package/lib/core/input_manager.js +129 -0
  47. package/lib/core/input_manager.js.map +1 -0
  48. package/lib/core/keyboard_builder.d.ts +35 -0
  49. package/lib/core/keyboard_builder.d.ts.map +1 -0
  50. package/lib/core/keyboard_builder.js +87 -0
  51. package/lib/core/keyboard_builder.js.map +1 -0
  52. package/lib/core/middleware_chain.d.ts +25 -0
  53. package/lib/core/middleware_chain.d.ts.map +1 -0
  54. package/lib/core/middleware_chain.js +54 -0
  55. package/lib/core/middleware_chain.js.map +1 -0
  56. package/lib/core/schema_compiler.d.ts +25 -0
  57. package/lib/core/schema_compiler.d.ts.map +1 -0
  58. package/lib/core/schema_compiler.js +65 -0
  59. package/lib/core/schema_compiler.js.map +1 -0
  60. package/lib/errors/bot_error.d.ts +7 -0
  61. package/lib/errors/bot_error.d.ts.map +1 -0
  62. package/lib/errors/bot_error.js +17 -0
  63. package/lib/errors/bot_error.js.map +1 -0
  64. package/lib/errors/dialog_error.d.ts +12 -0
  65. package/lib/errors/dialog_error.d.ts.map +1 -0
  66. package/lib/errors/dialog_error.js +22 -0
  67. package/lib/errors/dialog_error.js.map +1 -0
  68. package/lib/errors/index.d.ts +5 -0
  69. package/lib/errors/index.d.ts.map +1 -0
  70. package/lib/errors/index.js +5 -0
  71. package/lib/errors/index.js.map +1 -0
  72. package/lib/errors/telegram_error.d.ts +12 -0
  73. package/lib/errors/telegram_error.d.ts.map +1 -0
  74. package/lib/errors/telegram_error.js +39 -0
  75. package/lib/errors/telegram_error.js.map +1 -0
  76. package/lib/errors/validation_error.d.ts +19 -0
  77. package/lib/errors/validation_error.d.ts.map +1 -0
  78. package/lib/errors/validation_error.js +35 -0
  79. package/lib/errors/validation_error.js.map +1 -0
  80. package/lib/index.d.ts +6 -2
  81. package/lib/index.d.ts.map +1 -1
  82. package/lib/index.js +9 -18
  83. package/lib/index.js.map +1 -1
  84. package/lib/types/action.d.ts +58 -0
  85. package/lib/types/action.d.ts.map +1 -0
  86. package/lib/types/action.js +2 -0
  87. package/lib/types/action.js.map +1 -0
  88. package/lib/types/config.d.ts +36 -0
  89. package/lib/types/config.d.ts.map +1 -0
  90. package/lib/types/config.js +12 -0
  91. package/lib/types/config.js.map +1 -0
  92. package/lib/types/dialog.d.ts +39 -0
  93. package/lib/types/dialog.d.ts.map +1 -0
  94. package/lib/types/dialog.js +2 -0
  95. package/lib/types/dialog.js.map +1 -0
  96. package/lib/types/index.d.ts +10 -0
  97. package/lib/types/index.d.ts.map +1 -0
  98. package/lib/types/index.js +3 -0
  99. package/lib/types/index.js.map +1 -0
  100. package/lib/types/internal.d.ts +58 -0
  101. package/lib/types/internal.d.ts.map +1 -0
  102. package/lib/types/internal.js +11 -0
  103. package/lib/types/internal.js.map +1 -0
  104. package/lib/types/keyboard.d.ts +41 -0
  105. package/lib/types/keyboard.d.ts.map +1 -0
  106. package/lib/types/keyboard.js +2 -0
  107. package/lib/types/keyboard.js.map +1 -0
  108. package/lib/types/middleware.d.ts +24 -0
  109. package/lib/types/middleware.d.ts.map +1 -0
  110. package/lib/types/middleware.js +2 -0
  111. package/lib/types/middleware.js.map +1 -0
  112. package/lib/types/schema.d.ts +17 -0
  113. package/lib/types/schema.d.ts.map +1 -0
  114. package/lib/types/schema.js +2 -0
  115. package/lib/types/schema.js.map +1 -0
  116. package/lib/utils/constants.d.ts +33 -0
  117. package/lib/utils/constants.d.ts.map +1 -0
  118. package/lib/utils/constants.js +33 -0
  119. package/lib/utils/constants.js.map +1 -0
  120. package/lib/utils/deep_copy.d.ts +6 -0
  121. package/lib/utils/deep_copy.d.ts.map +1 -0
  122. package/lib/utils/deep_copy.js +45 -0
  123. package/lib/utils/deep_copy.js.map +1 -0
  124. package/lib/utils/hash.d.ts +17 -0
  125. package/lib/utils/hash.d.ts.map +1 -0
  126. package/lib/utils/hash.js +50 -0
  127. package/lib/utils/hash.js.map +1 -0
  128. package/lib/utils/index.d.ts +7 -0
  129. package/lib/utils/index.d.ts.map +1 -0
  130. package/lib/utils/index.js +7 -0
  131. package/lib/utils/index.js.map +1 -0
  132. package/lib/utils/logger.d.ts +17 -0
  133. package/lib/utils/logger.d.ts.map +1 -0
  134. package/lib/utils/logger.js +91 -0
  135. package/lib/utils/logger.js.map +1 -0
  136. package/lib/utils/resolvers.d.ts +29 -0
  137. package/lib/utils/resolvers.d.ts.map +1 -0
  138. package/lib/utils/resolvers.js +60 -0
  139. package/lib/utils/resolvers.js.map +1 -0
  140. package/lib/utils/type_guards.d.ts +22 -0
  141. package/lib/utils/type_guards.d.ts.map +1 -0
  142. package/lib/utils/type_guards.js +38 -0
  143. package/lib/utils/type_guards.js.map +1 -0
  144. package/lib/validation/index.d.ts +2 -0
  145. package/lib/validation/index.d.ts.map +1 -0
  146. package/lib/validation/index.js +2 -0
  147. package/lib/validation/index.js.map +1 -0
  148. package/lib/validation/schema_validator.d.ts +11 -0
  149. package/lib/validation/schema_validator.d.ts.map +1 -0
  150. package/lib/validation/schema_validator.js +156 -0
  151. package/lib/validation/schema_validator.js.map +1 -0
  152. package/package.json +59 -15
  153. package/lib/bot-service.d.ts +0 -27
  154. package/lib/bot-service.d.ts.map +0 -1
  155. package/lib/bot-service.js +0 -326
  156. package/lib/bot-service.js.map +0 -1
  157. package/lib/bot-struct.d.ts +0 -58
  158. package/lib/bot-struct.d.ts.map +0 -1
  159. package/lib/bot-struct.js +0 -3
  160. package/lib/bot-struct.js.map +0 -1
  161. package/readme.md +0 -54
  162. package/src/bot-service.ts +0 -289
  163. package/src/bot-struct.ts +0 -59
  164. package/src/index.ts +0 -2
  165. package/tsconfig.json +0 -108
@@ -0,0 +1,14 @@
1
+ import type { Action, WaitForInputOptions, CallbackFunction } from "../types/action.js";
2
+ /**
3
+ * Create an action that waits for text input and calls handler with result
4
+ */
5
+ export declare function wait_for_text(handler: CallbackFunction | string, options?: WaitForInputOptions): Action;
6
+ /**
7
+ * Create an action that waits for file upload and calls handler with result
8
+ */
9
+ export declare function wait_for_file(handler: CallbackFunction | string, options?: WaitForInputOptions): Action;
10
+ /**
11
+ * Create an action that waits for photo upload
12
+ */
13
+ export declare function wait_for_photo(handler: CallbackFunction | string, options?: WaitForInputOptions): Action;
14
+ //# sourceMappingURL=wait_for_input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait_for_input.d.ts","sourceRoot":"","sources":["../../src/actions/wait_for_input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExF;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAKR"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Create an action that waits for text input and calls handler with result
3
+ */
4
+ export function wait_for_text(handler, options) {
5
+ return async (context) => {
6
+ const result = await context.bot.wait_for_text(context.chat_id, options);
7
+ if (result.success && result.value !== undefined) {
8
+ if (typeof handler === "string") {
9
+ context.bot.events.emit(handler, context.chat_id, result.value);
10
+ }
11
+ else {
12
+ await handler(context.chat_id, result.value);
13
+ }
14
+ }
15
+ else if (result.cancelled && typeof handler === "string") {
16
+ context.bot.events.emit(`${handler}_cancelled`, context.chat_id);
17
+ }
18
+ else if (result.timed_out && typeof handler === "string") {
19
+ context.bot.events.emit(`${handler}_timeout`, context.chat_id);
20
+ }
21
+ };
22
+ }
23
+ /**
24
+ * Create an action that waits for file upload and calls handler with result
25
+ */
26
+ export function wait_for_file(handler, options) {
27
+ return async (context) => {
28
+ const result = await context.bot.wait_for_file(context.chat_id, options);
29
+ if (result.success) {
30
+ if (typeof handler === "string") {
31
+ context.bot.events.emit(handler, context.chat_id, result);
32
+ }
33
+ else {
34
+ await handler(context.chat_id, result);
35
+ }
36
+ }
37
+ else if (result.cancelled && typeof handler === "string") {
38
+ context.bot.events.emit(`${handler}_cancelled`, context.chat_id);
39
+ }
40
+ else if (result.timed_out && typeof handler === "string") {
41
+ context.bot.events.emit(`${handler}_timeout`, context.chat_id);
42
+ }
43
+ };
44
+ }
45
+ /**
46
+ * Create an action that waits for photo upload
47
+ */
48
+ export function wait_for_photo(handler, options) {
49
+ return wait_for_file(handler, {
50
+ ...options,
51
+ input_types: ["photo"],
52
+ });
53
+ }
54
+ //# sourceMappingURL=wait_for_input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait_for_input.js","sourceRoot":"","sources":["../../src/actions/wait_for_input.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAkC,EAClC,OAA6B;IAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAkC,EAClC,OAA6B;IAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAkC,EAClC,OAA6B;IAE7B,OAAO,aAAa,CAAC,OAAO,EAAE;QAC5B,GAAG,OAAO;QACV,WAAW,EAAE,CAAC,OAAO,CAAC;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,145 @@
1
+ import TelegramBot from "node-telegram-bot-api";
2
+ import { EventEmitter } from "node:events";
3
+ import type { Schema } from "../types/schema.js";
4
+ import type { BotConfig } from "../types/config.js";
5
+ import type { WaitForInputOptions, WaitResult, FileWaitResult } from "../types/action.js";
6
+ import type { Dialog } from "../types/dialog.js";
7
+ import type { Middleware } from "../types/middleware.js";
8
+ import type { UserState } from "../types/internal.js";
9
+ export declare class BotBuilder {
10
+ /** Raw telegram bot instance (for advanced usage) */
11
+ readonly telegram: TelegramBot;
12
+ /** Event emitter for custom events */
13
+ readonly events: EventEmitter;
14
+ private readonly config;
15
+ private readonly logger;
16
+ private readonly schema;
17
+ private readonly dialog_manager;
18
+ private readonly button_registry;
19
+ private readonly keyboard_builder;
20
+ private readonly middleware_chain;
21
+ private readonly input_manager;
22
+ constructor(schema: Schema, config: BotConfig);
23
+ /**
24
+ * Add middleware to the processing chain
25
+ */
26
+ use(middleware: Middleware): this;
27
+ /**
28
+ * Navigate user to a specific dialog
29
+ */
30
+ change_dialog(chat_id: number, dialog_id: string): Promise<void>;
31
+ /**
32
+ * Send a standalone message (not part of dialog system)
33
+ */
34
+ send_message(chat_id: number, text: string, options?: {
35
+ parse_mode?: "HTML" | "Markdown" | "MarkdownV2";
36
+ disable_web_page_preview?: boolean;
37
+ disable_notification?: boolean;
38
+ protect_content?: boolean;
39
+ }): Promise<TelegramBot.Message>;
40
+ /**
41
+ * Get current user state
42
+ */
43
+ get_user_state(chat_id: number): UserState;
44
+ /**
45
+ * Set custom data in user state
46
+ */
47
+ set_user_data(chat_id: number, key: string, value: unknown): void;
48
+ /**
49
+ * Get custom data from user state
50
+ */
51
+ get_user_data<T>(chat_id: number, key: string): T | undefined;
52
+ /**
53
+ * Reset user state to start dialog
54
+ */
55
+ reset_user(chat_id: number): Promise<void>;
56
+ /**
57
+ * Delete a message
58
+ */
59
+ delete_message(chat_id: number, message_id: number): Promise<boolean>;
60
+ /**
61
+ * Get a dialog by ID
62
+ */
63
+ get_dialog(dialog_id: string): Dialog | undefined;
64
+ /**
65
+ * Wait for user text input
66
+ */
67
+ wait_for_text(chat_id: number, options?: WaitForInputOptions): Promise<WaitResult<string>>;
68
+ /**
69
+ * Wait for user file upload
70
+ */
71
+ wait_for_file(chat_id: number, options?: WaitForInputOptions): Promise<FileWaitResult>;
72
+ /**
73
+ * Graceful shutdown
74
+ */
75
+ stop(): Promise<void>;
76
+ /**
77
+ * Set up all message handlers
78
+ */
79
+ private setup_handlers;
80
+ /**
81
+ * Handle /start command
82
+ */
83
+ private handle_start;
84
+ /**
85
+ * Handle other commands
86
+ */
87
+ private handle_command;
88
+ /**
89
+ * Handle callback queries (inline button clicks)
90
+ */
91
+ private handle_callback;
92
+ /**
93
+ * Handle regular text messages
94
+ */
95
+ private handle_message;
96
+ /**
97
+ * Handle text input when waiting
98
+ */
99
+ private handle_text_input;
100
+ /**
101
+ * Handle reply keyboard button press
102
+ */
103
+ private handle_reply_button;
104
+ /**
105
+ * Handle document upload
106
+ */
107
+ private handle_document;
108
+ /**
109
+ * Handle photo upload
110
+ */
111
+ private handle_photo;
112
+ /**
113
+ * Handle contact share
114
+ */
115
+ private handle_contact;
116
+ /**
117
+ * Handle location share
118
+ */
119
+ private handle_location;
120
+ /**
121
+ * Run middleware chain
122
+ */
123
+ private run_middleware;
124
+ /**
125
+ * Execute an action or array of actions
126
+ */
127
+ private execute_action;
128
+ /**
129
+ * Render a dialog to the user
130
+ */
131
+ private render_dialog;
132
+ /**
133
+ * Render dialog with images
134
+ */
135
+ private render_with_images;
136
+ /**
137
+ * Render text-only dialog
138
+ */
139
+ private render_text_only;
140
+ /**
141
+ * Send a new message (used as fallback)
142
+ */
143
+ private send_new_message;
144
+ }
145
+ //# sourceMappingURL=bot_builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot_builder.d.ts","sourceRoot":"","sources":["../../src/core/bot_builder.ts"],"names":[],"mappings":"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"}