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.
- package/Changelog.md +81 -0
- package/MIGRATION.md +453 -0
- package/README.md +403 -0
- package/lib/actions/callback_action.d.ts +14 -0
- package/lib/actions/callback_action.d.ts.map +1 -0
- package/lib/actions/callback_action.js +25 -0
- package/lib/actions/callback_action.js.map +1 -0
- package/lib/actions/change_dialog.d.ts +10 -0
- package/lib/actions/change_dialog.d.ts.map +1 -0
- package/lib/actions/change_dialog.js +17 -0
- package/lib/actions/change_dialog.js.map +1 -0
- package/lib/actions/control_flow.d.ts +26 -0
- package/lib/actions/control_flow.d.ts.map +1 -0
- package/lib/actions/control_flow.js +61 -0
- package/lib/actions/control_flow.js.map +1 -0
- package/lib/actions/index.d.ts +6 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +11 -0
- package/lib/actions/index.js.map +1 -0
- package/lib/actions/send_message.d.ts +16 -0
- package/lib/actions/send_message.d.ts.map +1 -0
- package/lib/actions/send_message.js +32 -0
- package/lib/actions/send_message.js.map +1 -0
- package/lib/actions/wait_for_input.d.ts +14 -0
- package/lib/actions/wait_for_input.d.ts.map +1 -0
- package/lib/actions/wait_for_input.js +54 -0
- package/lib/actions/wait_for_input.js.map +1 -0
- package/lib/core/bot_builder.d.ts +145 -0
- package/lib/core/bot_builder.d.ts.map +1 -0
- package/lib/core/bot_builder.js +678 -0
- package/lib/core/bot_builder.js.map +1 -0
- package/lib/core/button_registry.d.ts +39 -0
- package/lib/core/button_registry.d.ts.map +1 -0
- package/lib/core/button_registry.js +84 -0
- package/lib/core/button_registry.js.map +1 -0
- package/lib/core/dialog_manager.d.ts +71 -0
- package/lib/core/dialog_manager.d.ts.map +1 -0
- package/lib/core/dialog_manager.js +146 -0
- package/lib/core/dialog_manager.js.map +1 -0
- package/lib/core/index.d.ts +8 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/index.js +8 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/input_manager.d.ts +49 -0
- package/lib/core/input_manager.d.ts.map +1 -0
- package/lib/core/input_manager.js +129 -0
- package/lib/core/input_manager.js.map +1 -0
- package/lib/core/keyboard_builder.d.ts +35 -0
- package/lib/core/keyboard_builder.d.ts.map +1 -0
- package/lib/core/keyboard_builder.js +87 -0
- package/lib/core/keyboard_builder.js.map +1 -0
- package/lib/core/middleware_chain.d.ts +25 -0
- package/lib/core/middleware_chain.d.ts.map +1 -0
- package/lib/core/middleware_chain.js +54 -0
- package/lib/core/middleware_chain.js.map +1 -0
- package/lib/core/schema_compiler.d.ts +25 -0
- package/lib/core/schema_compiler.d.ts.map +1 -0
- package/lib/core/schema_compiler.js +65 -0
- package/lib/core/schema_compiler.js.map +1 -0
- package/lib/errors/bot_error.d.ts +7 -0
- package/lib/errors/bot_error.d.ts.map +1 -0
- package/lib/errors/bot_error.js +17 -0
- package/lib/errors/bot_error.js.map +1 -0
- package/lib/errors/dialog_error.d.ts +12 -0
- package/lib/errors/dialog_error.d.ts.map +1 -0
- package/lib/errors/dialog_error.js +22 -0
- package/lib/errors/dialog_error.js.map +1 -0
- package/lib/errors/index.d.ts +5 -0
- package/lib/errors/index.d.ts.map +1 -0
- package/lib/errors/index.js +5 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/errors/telegram_error.d.ts +12 -0
- package/lib/errors/telegram_error.d.ts.map +1 -0
- package/lib/errors/telegram_error.js +39 -0
- package/lib/errors/telegram_error.js.map +1 -0
- package/lib/errors/validation_error.d.ts +19 -0
- package/lib/errors/validation_error.d.ts.map +1 -0
- package/lib/errors/validation_error.js +35 -0
- package/lib/errors/validation_error.js.map +1 -0
- package/lib/index.d.ts +6 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +9 -18
- package/lib/index.js.map +1 -1
- package/lib/types/action.d.ts +58 -0
- package/lib/types/action.d.ts.map +1 -0
- package/lib/types/action.js +2 -0
- package/lib/types/action.js.map +1 -0
- package/lib/types/config.d.ts +36 -0
- package/lib/types/config.d.ts.map +1 -0
- package/lib/types/config.js +12 -0
- package/lib/types/config.js.map +1 -0
- package/lib/types/dialog.d.ts +39 -0
- package/lib/types/dialog.d.ts.map +1 -0
- package/lib/types/dialog.js +2 -0
- package/lib/types/dialog.js.map +1 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +3 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/internal.d.ts +58 -0
- package/lib/types/internal.d.ts.map +1 -0
- package/lib/types/internal.js +11 -0
- package/lib/types/internal.js.map +1 -0
- package/lib/types/keyboard.d.ts +41 -0
- package/lib/types/keyboard.d.ts.map +1 -0
- package/lib/types/keyboard.js +2 -0
- package/lib/types/keyboard.js.map +1 -0
- package/lib/types/middleware.d.ts +24 -0
- package/lib/types/middleware.d.ts.map +1 -0
- package/lib/types/middleware.js +2 -0
- package/lib/types/middleware.js.map +1 -0
- package/lib/types/schema.d.ts +17 -0
- package/lib/types/schema.d.ts.map +1 -0
- package/lib/types/schema.js +2 -0
- package/lib/types/schema.js.map +1 -0
- package/lib/utils/constants.d.ts +33 -0
- package/lib/utils/constants.d.ts.map +1 -0
- package/lib/utils/constants.js +33 -0
- package/lib/utils/constants.js.map +1 -0
- package/lib/utils/deep_copy.d.ts +6 -0
- package/lib/utils/deep_copy.d.ts.map +1 -0
- package/lib/utils/deep_copy.js +45 -0
- package/lib/utils/deep_copy.js.map +1 -0
- package/lib/utils/hash.d.ts +17 -0
- package/lib/utils/hash.d.ts.map +1 -0
- package/lib/utils/hash.js +50 -0
- package/lib/utils/hash.js.map +1 -0
- package/lib/utils/index.d.ts +7 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +7 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/logger.d.ts +17 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +91 -0
- package/lib/utils/logger.js.map +1 -0
- package/lib/utils/resolvers.d.ts +29 -0
- package/lib/utils/resolvers.d.ts.map +1 -0
- package/lib/utils/resolvers.js +60 -0
- package/lib/utils/resolvers.js.map +1 -0
- package/lib/utils/type_guards.d.ts +22 -0
- package/lib/utils/type_guards.d.ts.map +1 -0
- package/lib/utils/type_guards.js +38 -0
- package/lib/utils/type_guards.js.map +1 -0
- package/lib/validation/index.d.ts +2 -0
- package/lib/validation/index.d.ts.map +1 -0
- package/lib/validation/index.js +2 -0
- package/lib/validation/index.js.map +1 -0
- package/lib/validation/schema_validator.d.ts +11 -0
- package/lib/validation/schema_validator.d.ts.map +1 -0
- package/lib/validation/schema_validator.js +156 -0
- package/lib/validation/schema_validator.js.map +1 -0
- package/package.json +59 -15
- package/lib/bot-service.d.ts +0 -27
- package/lib/bot-service.d.ts.map +0 -1
- package/lib/bot-service.js +0 -326
- package/lib/bot-service.js.map +0 -1
- package/lib/bot-struct.d.ts +0 -58
- package/lib/bot-struct.d.ts.map +0 -1
- package/lib/bot-struct.js +0 -3
- package/lib/bot-struct.js.map +0 -1
- package/readme.md +0 -54
- package/src/bot-service.ts +0 -289
- package/src/bot-struct.ts +0 -59
- package/src/index.ts +0 -2
- package/tsconfig.json +0 -108
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot_builder.js","sourceRoot":"","sources":["../../src/core/bot_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { InlineButton, ReplyButton } from "../types/keyboard.js";
|
|
2
|
+
import type { RegisteredInlineButton, RegisteredReplyButton } from "../types/internal.js";
|
|
3
|
+
export declare class ButtonRegistry {
|
|
4
|
+
private readonly inline_buttons;
|
|
5
|
+
private readonly reply_buttons;
|
|
6
|
+
/**
|
|
7
|
+
* Register an inline button and return its hash
|
|
8
|
+
*/
|
|
9
|
+
register_inline(dialog_id: string, button: InlineButton, index: number): string;
|
|
10
|
+
/**
|
|
11
|
+
* Get an inline button by its hash
|
|
12
|
+
*/
|
|
13
|
+
get_inline(hash: string): RegisteredInlineButton | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Register a reply button (multiple buttons can have same text)
|
|
16
|
+
*/
|
|
17
|
+
register_reply(dialog_id: string, button: ReplyButton, resolved_text: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Find reply buttons matching text, optionally filtered by dialog
|
|
20
|
+
*/
|
|
21
|
+
find_reply(text: string, dialog_id?: string): RegisteredReplyButton[];
|
|
22
|
+
/**
|
|
23
|
+
* Check if an inline button hash exists
|
|
24
|
+
*/
|
|
25
|
+
has_inline(hash: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Clear all registered buttons
|
|
28
|
+
*/
|
|
29
|
+
clear(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Get count of registered inline buttons
|
|
32
|
+
*/
|
|
33
|
+
get inline_count(): number;
|
|
34
|
+
/**
|
|
35
|
+
* Get count of registered reply button texts
|
|
36
|
+
*/
|
|
37
|
+
get reply_count(): number;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=button_registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button_registry.d.ts","sourceRoot":"","sources":["../../src/core/button_registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAI1F,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmD;IAEjF;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAY/E;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAI5D;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAmBnF;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAcrE;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { hash_button } from "../utils/hash.js";
|
|
2
|
+
import { deep_copy } from "../utils/deep_copy.js";
|
|
3
|
+
export class ButtonRegistry {
|
|
4
|
+
inline_buttons = new Map();
|
|
5
|
+
reply_buttons = new Map();
|
|
6
|
+
/**
|
|
7
|
+
* Register an inline button and return its hash
|
|
8
|
+
*/
|
|
9
|
+
register_inline(dialog_id, button, index) {
|
|
10
|
+
const hash = hash_button(dialog_id, button, index);
|
|
11
|
+
this.inline_buttons.set(hash, {
|
|
12
|
+
hash,
|
|
13
|
+
dialog_id,
|
|
14
|
+
button: deep_copy(button),
|
|
15
|
+
});
|
|
16
|
+
return hash;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get an inline button by its hash
|
|
20
|
+
*/
|
|
21
|
+
get_inline(hash) {
|
|
22
|
+
return this.inline_buttons.get(hash);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Register a reply button (multiple buttons can have same text)
|
|
26
|
+
*/
|
|
27
|
+
register_reply(dialog_id, button, resolved_text) {
|
|
28
|
+
const registered = {
|
|
29
|
+
text: resolved_text,
|
|
30
|
+
dialog_id,
|
|
31
|
+
button: deep_copy(button),
|
|
32
|
+
};
|
|
33
|
+
const existing = this.reply_buttons.get(resolved_text);
|
|
34
|
+
if (existing) {
|
|
35
|
+
// Check if already registered for this dialog
|
|
36
|
+
const already_exists = existing.some((b) => b.dialog_id === dialog_id);
|
|
37
|
+
if (!already_exists) {
|
|
38
|
+
existing.push(registered);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.reply_buttons.set(resolved_text, [registered]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Find reply buttons matching text, optionally filtered by dialog
|
|
47
|
+
*/
|
|
48
|
+
find_reply(text, dialog_id) {
|
|
49
|
+
const buttons = this.reply_buttons.get(text);
|
|
50
|
+
if (!buttons) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
if (dialog_id) {
|
|
54
|
+
return buttons.filter((b) => b.dialog_id === dialog_id);
|
|
55
|
+
}
|
|
56
|
+
return buttons;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if an inline button hash exists
|
|
60
|
+
*/
|
|
61
|
+
has_inline(hash) {
|
|
62
|
+
return this.inline_buttons.has(hash);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Clear all registered buttons
|
|
66
|
+
*/
|
|
67
|
+
clear() {
|
|
68
|
+
this.inline_buttons.clear();
|
|
69
|
+
this.reply_buttons.clear();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get count of registered inline buttons
|
|
73
|
+
*/
|
|
74
|
+
get inline_count() {
|
|
75
|
+
return this.inline_buttons.size;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get count of registered reply button texts
|
|
79
|
+
*/
|
|
80
|
+
get reply_count() {
|
|
81
|
+
return this.reply_buttons.size;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=button_registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button_registry.js","sourceRoot":"","sources":["../../src/core/button_registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,OAAO,cAAc;IACR,cAAc,GAAwC,IAAI,GAAG,EAAE,CAAC;IAChE,aAAa,GAAyC,IAAI,GAAG,EAAE,CAAC;IAEjF;;OAEG;IACH,eAAe,CAAC,SAAiB,EAAE,MAAoB,EAAE,KAAa;QACpE,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,EAAE,MAAwB,EAAE,KAAK,CAAC,CAAC;QAErE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE;YAC5B,IAAI;YACJ,SAAS;YACT,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiB,EAAE,MAAmB,EAAE,aAAqB;QAC1E,MAAM,UAAU,GAA0B;YACxC,IAAI,EAAE,aAAa;YACnB,SAAS;YACT,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;SAC1B,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,CAAC;YACb,8CAA8C;YAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY,EAAE,SAAkB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { UserState, MessageType } from "../types/internal.js";
|
|
2
|
+
export declare class DialogManager {
|
|
3
|
+
private readonly states;
|
|
4
|
+
private readonly start_dialog;
|
|
5
|
+
constructor(start_dialog: string);
|
|
6
|
+
/**
|
|
7
|
+
* Get user state, creating default if doesn't exist
|
|
8
|
+
*/
|
|
9
|
+
get_state(chat_id: number): UserState;
|
|
10
|
+
/**
|
|
11
|
+
* Check if user has existing state
|
|
12
|
+
*/
|
|
13
|
+
has_state(chat_id: number): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Update user's current dialog
|
|
16
|
+
*/
|
|
17
|
+
set_dialog(chat_id: number, dialog_id: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Update last bot message info
|
|
20
|
+
*/
|
|
21
|
+
set_last_message(chat_id: number, message_id: number, message_type: MessageType): void;
|
|
22
|
+
/**
|
|
23
|
+
* Set input waiting state
|
|
24
|
+
*/
|
|
25
|
+
set_waiting(chat_id: number, wait_id: string, input_types: string[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Clear input waiting state
|
|
28
|
+
*/
|
|
29
|
+
clear_waiting(chat_id: number): void;
|
|
30
|
+
/**
|
|
31
|
+
* Check if user is waiting for input
|
|
32
|
+
*/
|
|
33
|
+
is_waiting(chat_id: number): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Get current wait ID
|
|
36
|
+
*/
|
|
37
|
+
get_wait_id(chat_id: number): string;
|
|
38
|
+
/**
|
|
39
|
+
* Set reply keyboard active state
|
|
40
|
+
*/
|
|
41
|
+
set_reply_keyboard_active(chat_id: number, active: boolean): void;
|
|
42
|
+
/**
|
|
43
|
+
* Set custom user data
|
|
44
|
+
*/
|
|
45
|
+
set_custom_data(chat_id: number, key: string, value: unknown): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get custom user data
|
|
48
|
+
*/
|
|
49
|
+
get_custom_data<T>(chat_id: number, key: string): T | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Delete custom user data
|
|
52
|
+
*/
|
|
53
|
+
delete_custom_data(chat_id: number, key: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Reset user to start dialog
|
|
56
|
+
*/
|
|
57
|
+
reset(chat_id: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* Remove user state entirely
|
|
60
|
+
*/
|
|
61
|
+
remove(chat_id: number): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Get all chat IDs with state
|
|
64
|
+
*/
|
|
65
|
+
get_all_chat_ids(): number[];
|
|
66
|
+
/**
|
|
67
|
+
* Clean up inactive users (for memory management)
|
|
68
|
+
*/
|
|
69
|
+
cleanup_inactive(max_age_ms: number): number;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=dialog_manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog_manager.d.ts","sourceRoot":"","sources":["../../src/core/dialog_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInE,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,EAAE,MAAM;IAIhC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAcrC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMpD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,IAAI;IAOtF;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ1E;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAKjE;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMnE;;OAEG;IACH,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK/D;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IASzD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAa7C"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { DEFAULT_USER_STATE } from "../types/internal.js";
|
|
2
|
+
import { deep_copy } from "../utils/deep_copy.js";
|
|
3
|
+
export class DialogManager {
|
|
4
|
+
states = new Map();
|
|
5
|
+
start_dialog;
|
|
6
|
+
constructor(start_dialog) {
|
|
7
|
+
this.start_dialog = start_dialog;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get user state, creating default if doesn't exist
|
|
11
|
+
*/
|
|
12
|
+
get_state(chat_id) {
|
|
13
|
+
let state = this.states.get(chat_id);
|
|
14
|
+
if (!state) {
|
|
15
|
+
state = {
|
|
16
|
+
...deep_copy(DEFAULT_USER_STATE),
|
|
17
|
+
current_dialog_id: this.start_dialog,
|
|
18
|
+
};
|
|
19
|
+
this.states.set(chat_id, state);
|
|
20
|
+
}
|
|
21
|
+
return state;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if user has existing state
|
|
25
|
+
*/
|
|
26
|
+
has_state(chat_id) {
|
|
27
|
+
return this.states.has(chat_id);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Update user's current dialog
|
|
31
|
+
*/
|
|
32
|
+
set_dialog(chat_id, dialog_id) {
|
|
33
|
+
const state = this.get_state(chat_id);
|
|
34
|
+
state.current_dialog_id = dialog_id;
|
|
35
|
+
state.last_activity = Date.now();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Update last bot message info
|
|
39
|
+
*/
|
|
40
|
+
set_last_message(chat_id, message_id, message_type) {
|
|
41
|
+
const state = this.get_state(chat_id);
|
|
42
|
+
state.last_bot_message_id = message_id;
|
|
43
|
+
state.last_message_type = message_type;
|
|
44
|
+
state.last_activity = Date.now();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Set input waiting state
|
|
48
|
+
*/
|
|
49
|
+
set_waiting(chat_id, wait_id, input_types) {
|
|
50
|
+
const state = this.get_state(chat_id);
|
|
51
|
+
state.waiting_for_input = true;
|
|
52
|
+
state.input_wait_id = wait_id;
|
|
53
|
+
state.input_wait_types = input_types;
|
|
54
|
+
state.last_activity = Date.now();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Clear input waiting state
|
|
58
|
+
*/
|
|
59
|
+
clear_waiting(chat_id) {
|
|
60
|
+
const state = this.get_state(chat_id);
|
|
61
|
+
state.waiting_for_input = false;
|
|
62
|
+
state.input_wait_id = "";
|
|
63
|
+
state.input_wait_types = [];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if user is waiting for input
|
|
67
|
+
*/
|
|
68
|
+
is_waiting(chat_id) {
|
|
69
|
+
return this.get_state(chat_id).waiting_for_input;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get current wait ID
|
|
73
|
+
*/
|
|
74
|
+
get_wait_id(chat_id) {
|
|
75
|
+
return this.get_state(chat_id).input_wait_id;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Set reply keyboard active state
|
|
79
|
+
*/
|
|
80
|
+
set_reply_keyboard_active(chat_id, active) {
|
|
81
|
+
const state = this.get_state(chat_id);
|
|
82
|
+
state.reply_keyboard_active = active;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Set custom user data
|
|
86
|
+
*/
|
|
87
|
+
set_custom_data(chat_id, key, value) {
|
|
88
|
+
const state = this.get_state(chat_id);
|
|
89
|
+
state.custom_data[key] = value;
|
|
90
|
+
state.last_activity = Date.now();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get custom user data
|
|
94
|
+
*/
|
|
95
|
+
get_custom_data(chat_id, key) {
|
|
96
|
+
const state = this.get_state(chat_id);
|
|
97
|
+
return state.custom_data[key];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Delete custom user data
|
|
101
|
+
*/
|
|
102
|
+
delete_custom_data(chat_id, key) {
|
|
103
|
+
const state = this.get_state(chat_id);
|
|
104
|
+
if (key in state.custom_data) {
|
|
105
|
+
delete state.custom_data[key];
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Reset user to start dialog
|
|
112
|
+
*/
|
|
113
|
+
reset(chat_id) {
|
|
114
|
+
this.states.set(chat_id, {
|
|
115
|
+
...deep_copy(DEFAULT_USER_STATE),
|
|
116
|
+
current_dialog_id: this.start_dialog,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Remove user state entirely
|
|
121
|
+
*/
|
|
122
|
+
remove(chat_id) {
|
|
123
|
+
return this.states.delete(chat_id);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get all chat IDs with state
|
|
127
|
+
*/
|
|
128
|
+
get_all_chat_ids() {
|
|
129
|
+
return Array.from(this.states.keys());
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Clean up inactive users (for memory management)
|
|
133
|
+
*/
|
|
134
|
+
cleanup_inactive(max_age_ms) {
|
|
135
|
+
const now = Date.now();
|
|
136
|
+
let removed = 0;
|
|
137
|
+
for (const [chat_id, state] of this.states) {
|
|
138
|
+
if (now - state.last_activity > max_age_ms) {
|
|
139
|
+
this.states.delete(chat_id);
|
|
140
|
+
removed++;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return removed;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=dialog_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog_manager.js","sourceRoot":"","sources":["../../src/core/dialog_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { BotBuilder } from "./bot_builder.js";
|
|
2
|
+
export { DialogManager } from "./dialog_manager.js";
|
|
3
|
+
export { ButtonRegistry } from "./button_registry.js";
|
|
4
|
+
export { KeyboardBuilder } from "./keyboard_builder.js";
|
|
5
|
+
export { MiddlewareChain } from "./middleware_chain.js";
|
|
6
|
+
export { InputManager } from "./input_manager.js";
|
|
7
|
+
export { SchemaCompiler } from "./schema_compiler.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { BotBuilder } from "./bot_builder.js";
|
|
2
|
+
export { DialogManager } from "./dialog_manager.js";
|
|
3
|
+
export { ButtonRegistry } from "./button_registry.js";
|
|
4
|
+
export { KeyboardBuilder } from "./keyboard_builder.js";
|
|
5
|
+
export { MiddlewareChain } from "./middleware_chain.js";
|
|
6
|
+
export { InputManager } from "./input_manager.js";
|
|
7
|
+
export { SchemaCompiler } from "./schema_compiler.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { WaitForInputOptions, WaitResult, FileWaitResult } from "../types/action.js";
|
|
2
|
+
import type { PendingInput } from "../types/internal.js";
|
|
3
|
+
import type { Logger } from "../utils/logger.js";
|
|
4
|
+
export declare class InputManager {
|
|
5
|
+
private readonly pending;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
private readonly default_timeout;
|
|
8
|
+
constructor(logger: Logger, default_timeout?: number);
|
|
9
|
+
/**
|
|
10
|
+
* Create a new input wait
|
|
11
|
+
*/
|
|
12
|
+
create_wait<T = string>(chat_id: number, input_types: string[], options?: WaitForInputOptions): {
|
|
13
|
+
wait_id: string;
|
|
14
|
+
promise: Promise<WaitResult<T>>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Check if there's a pending wait for a chat
|
|
18
|
+
*/
|
|
19
|
+
get_pending(chat_id: number, wait_id: string): PendingInput | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a wait with a result
|
|
22
|
+
*/
|
|
23
|
+
resolve_wait<T = string>(wait_id: string, result: WaitResult<T> | FileWaitResult): void;
|
|
24
|
+
/**
|
|
25
|
+
* Cancel a wait
|
|
26
|
+
*/
|
|
27
|
+
cancel_wait(wait_id: string, message?: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Cancel all pending waits for a chat
|
|
30
|
+
*/
|
|
31
|
+
cancel_all_for_chat(chat_id: number): number;
|
|
32
|
+
/**
|
|
33
|
+
* Check if input matches cancel keywords
|
|
34
|
+
*/
|
|
35
|
+
is_cancel_input(text: string, wait_id: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Validate input using the pending wait's validator
|
|
38
|
+
*/
|
|
39
|
+
validate_input(wait_id: string, input: string): Promise<boolean | string>;
|
|
40
|
+
/**
|
|
41
|
+
* Get count of pending waits
|
|
42
|
+
*/
|
|
43
|
+
get pending_count(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Clear all pending waits
|
|
46
|
+
*/
|
|
47
|
+
clear_all(): void;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=input_manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input_manager.d.ts","sourceRoot":"","sources":["../../src/core/input_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,MAAkC;IAK/E;;OAEG;IACH,WAAW,CAAC,CAAC,GAAG,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE;IAkCvD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAQvE;;OAEG;IACH,YAAY,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI;IAqBvF;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAQpD;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAa5C;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IASvD;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IAU/E;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,SAAS,IAAI,IAAI;CAKlB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { generate_wait_id } from "../utils/hash.js";
|
|
2
|
+
import { ERROR_MESSAGES, DEFAULTS } from "../utils/constants.js";
|
|
3
|
+
export class InputManager {
|
|
4
|
+
pending = new Map();
|
|
5
|
+
logger;
|
|
6
|
+
default_timeout;
|
|
7
|
+
constructor(logger, default_timeout = DEFAULTS.INPUT_TIMEOUT_MS) {
|
|
8
|
+
this.logger = logger;
|
|
9
|
+
this.default_timeout = default_timeout;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a new input wait
|
|
13
|
+
*/
|
|
14
|
+
create_wait(chat_id, input_types, options) {
|
|
15
|
+
const wait_id = generate_wait_id();
|
|
16
|
+
const timeout = options?.timeout ?? this.default_timeout;
|
|
17
|
+
const cancel_keywords = options?.cancel_keywords ?? DEFAULTS.CANCEL_KEYWORDS;
|
|
18
|
+
const promise = new Promise((resolve, reject) => {
|
|
19
|
+
const pending = {
|
|
20
|
+
wait_id,
|
|
21
|
+
chat_id,
|
|
22
|
+
resolve: resolve,
|
|
23
|
+
reject,
|
|
24
|
+
input_types,
|
|
25
|
+
validator: options?.validator,
|
|
26
|
+
cancel_keywords: cancel_keywords,
|
|
27
|
+
};
|
|
28
|
+
// Set timeout
|
|
29
|
+
if (timeout > 0) {
|
|
30
|
+
pending.timeout_handle = setTimeout(() => {
|
|
31
|
+
this.resolve_wait(wait_id, {
|
|
32
|
+
success: false,
|
|
33
|
+
timed_out: true,
|
|
34
|
+
error: options?.timeout_message ?? ERROR_MESSAGES.INPUT_TIMEOUT,
|
|
35
|
+
});
|
|
36
|
+
}, timeout);
|
|
37
|
+
}
|
|
38
|
+
this.pending.set(wait_id, pending);
|
|
39
|
+
this.logger.debug(`Created input wait ${wait_id} for chat ${chat_id}`);
|
|
40
|
+
});
|
|
41
|
+
return { wait_id, promise };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if there's a pending wait for a chat
|
|
45
|
+
*/
|
|
46
|
+
get_pending(chat_id, wait_id) {
|
|
47
|
+
const pending = this.pending.get(wait_id);
|
|
48
|
+
if (pending && pending.chat_id === chat_id) {
|
|
49
|
+
return pending;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolve a wait with a result
|
|
55
|
+
*/
|
|
56
|
+
resolve_wait(wait_id, result) {
|
|
57
|
+
const pending = this.pending.get(wait_id);
|
|
58
|
+
if (!pending) {
|
|
59
|
+
this.logger.debug(`Attempted to resolve unknown wait ${wait_id}`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Clear timeout
|
|
63
|
+
if (pending.timeout_handle) {
|
|
64
|
+
clearTimeout(pending.timeout_handle);
|
|
65
|
+
}
|
|
66
|
+
// Remove from pending
|
|
67
|
+
this.pending.delete(wait_id);
|
|
68
|
+
// Resolve the promise
|
|
69
|
+
pending.resolve(result);
|
|
70
|
+
this.logger.debug(`Resolved wait ${wait_id}`);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cancel a wait
|
|
74
|
+
*/
|
|
75
|
+
cancel_wait(wait_id, message) {
|
|
76
|
+
this.resolve_wait(wait_id, {
|
|
77
|
+
success: false,
|
|
78
|
+
cancelled: true,
|
|
79
|
+
error: message ?? ERROR_MESSAGES.INPUT_CANCELLED,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Cancel all pending waits for a chat
|
|
84
|
+
*/
|
|
85
|
+
cancel_all_for_chat(chat_id) {
|
|
86
|
+
let cancelled = 0;
|
|
87
|
+
for (const [wait_id, pending] of this.pending) {
|
|
88
|
+
if (pending.chat_id === chat_id) {
|
|
89
|
+
this.cancel_wait(wait_id);
|
|
90
|
+
cancelled++;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return cancelled;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if input matches cancel keywords
|
|
97
|
+
*/
|
|
98
|
+
is_cancel_input(text, wait_id) {
|
|
99
|
+
const pending = this.pending.get(wait_id);
|
|
100
|
+
if (!pending)
|
|
101
|
+
return false;
|
|
102
|
+
return pending.cancel_keywords.some((keyword) => text.toLowerCase().trim() === keyword.toLowerCase());
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Validate input using the pending wait's validator
|
|
106
|
+
*/
|
|
107
|
+
async validate_input(wait_id, input) {
|
|
108
|
+
const pending = this.pending.get(wait_id);
|
|
109
|
+
if (!pending?.validator) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
return await pending.validator(input);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get count of pending waits
|
|
116
|
+
*/
|
|
117
|
+
get pending_count() {
|
|
118
|
+
return this.pending.size;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Clear all pending waits
|
|
122
|
+
*/
|
|
123
|
+
clear_all() {
|
|
124
|
+
for (const [wait_id] of this.pending) {
|
|
125
|
+
this.cancel_wait(wait_id, "Bot stopped");
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=input_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input_manager.js","sourceRoot":"","sources":["../../src/core/input_manager.ts"],"names":[],"mappings":"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"}
|