bn-telegram-mcp-server 0.0.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.
- package/README.md +1031 -0
- package/dist/debug-middleware.d.ts +12 -0
- package/dist/debug-middleware.d.ts.map +1 -0
- package/dist/debug-middleware.js +36 -0
- package/dist/debug-middleware.js.map +1 -0
- package/dist/encryption.d.ts +11 -0
- package/dist/encryption.d.ts.map +1 -0
- package/dist/encryption.js +26 -0
- package/dist/encryption.js.map +1 -0
- package/dist/helpers.d.ts +27 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +103 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +176 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +29 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +114 -0
- package/dist/logger.js.map +1 -0
- package/dist/request-context.d.ts +24 -0
- package/dist/request-context.d.ts.map +1 -0
- package/dist/request-context.js +32 -0
- package/dist/request-context.js.map +1 -0
- package/dist/resolvers.d.ts +36 -0
- package/dist/resolvers.d.ts.map +1 -0
- package/dist/resolvers.js +252 -0
- package/dist/resolvers.js.map +1 -0
- package/dist/schemas.d.ts +150 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +216 -0
- package/dist/schemas.js.map +1 -0
- package/dist/telegram-client.d.ts +19 -0
- package/dist/telegram-client.d.ts.map +1 -0
- package/dist/telegram-client.js +112 -0
- package/dist/telegram-client.js.map +1 -0
- package/dist/tool-loader.d.ts +31 -0
- package/dist/tool-loader.d.ts.map +1 -0
- package/dist/tool-loader.js +121 -0
- package/dist/tool-loader.js.map +1 -0
- package/dist/tool-registry.d.ts +47 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +58 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/tools/getChat.d.ts +28 -0
- package/dist/tools/getChat.d.ts.map +1 -0
- package/dist/tools/getChat.js +69 -0
- package/dist/tools/getChat.js.map +1 -0
- package/dist/tools/getChatMembers.d.ts +34 -0
- package/dist/tools/getChatMembers.d.ts.map +1 -0
- package/dist/tools/getChatMembers.js +150 -0
- package/dist/tools/getChatMembers.js.map +1 -0
- package/dist/tools/getContacts.d.ts +28 -0
- package/dist/tools/getContacts.d.ts.map +1 -0
- package/dist/tools/getContacts.js +73 -0
- package/dist/tools/getContacts.js.map +1 -0
- package/dist/tools/getFile.d.ts +21 -0
- package/dist/tools/getFile.d.ts.map +1 -0
- package/dist/tools/getFile.js +33 -0
- package/dist/tools/getFile.js.map +1 -0
- package/dist/tools/getGroup.d.ts +27 -0
- package/dist/tools/getGroup.d.ts.map +1 -0
- package/dist/tools/getGroup.js +100 -0
- package/dist/tools/getGroup.js.map +1 -0
- package/dist/tools/getMe.d.ts +17 -0
- package/dist/tools/getMe.d.ts.map +1 -0
- package/dist/tools/getMe.js +20 -0
- package/dist/tools/getMe.js.map +1 -0
- package/dist/tools/getMessageContext.d.ts +21 -0
- package/dist/tools/getMessageContext.d.ts.map +1 -0
- package/dist/tools/getMessageContext.js +164 -0
- package/dist/tools/getMessageContext.js.map +1 -0
- package/dist/tools/getMessages.d.ts +38 -0
- package/dist/tools/getMessages.d.ts.map +1 -0
- package/dist/tools/getMessages.js +123 -0
- package/dist/tools/getMessages.js.map +1 -0
- package/dist/tools/getUser.d.ts +22 -0
- package/dist/tools/getUser.d.ts.map +1 -0
- package/dist/tools/getUser.js +38 -0
- package/dist/tools/getUser.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +12 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/sendMessage.d.ts +39 -0
- package/dist/tools/sendMessage.d.ts.map +1 -0
- package/dist/tools/sendMessage.js +116 -0
- package/dist/tools/sendMessage.js.map +1 -0
- package/dist/transformers.d.ts +133 -0
- package/dist/transformers.d.ts.map +1 -0
- package/dist/transformers.js +335 -0
- package/dist/transformers.js.map +1 -0
- package/dist/types.d.ts +55 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
- package/tools.json +252 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { withClient } from "../helpers.js";
|
|
2
|
+
import { resolveChat } from "../resolvers.js";
|
|
3
|
+
import { transformMessage } from "../transformers.js";
|
|
4
|
+
/**
|
|
5
|
+
* Send or forward messages to a chat
|
|
6
|
+
*
|
|
7
|
+
* Actions:
|
|
8
|
+
* - action="send" (default): Compose and send a new text message
|
|
9
|
+
* - action="forward": Forward existing messages from another chat
|
|
10
|
+
*
|
|
11
|
+
* Parameters:
|
|
12
|
+
* - chat: Target chat (ID or name like "Gong Zhe", "Family Group")
|
|
13
|
+
* - action: "send" | "forward" (default: "send")
|
|
14
|
+
*
|
|
15
|
+
* Send action parameters:
|
|
16
|
+
* - text: Message content
|
|
17
|
+
* - reply_to_message_id: Optional - reply to specific message
|
|
18
|
+
*
|
|
19
|
+
* Forward action parameters:
|
|
20
|
+
* - from_chat: Source chat to forward from
|
|
21
|
+
* - message_ids: Array of message IDs to forward
|
|
22
|
+
* - send_copy: Send as copy without "Forwarded from" header
|
|
23
|
+
* - remove_caption: Remove media captions when forwarding
|
|
24
|
+
*
|
|
25
|
+
* Returns (send):
|
|
26
|
+
* - The sent message with id, content, date, is_outgoing
|
|
27
|
+
*
|
|
28
|
+
* Returns (forward):
|
|
29
|
+
* - forwarded: Array of forwarded messages
|
|
30
|
+
* - count: Number of messages forwarded
|
|
31
|
+
*/
|
|
32
|
+
export async function sendMessage(req, args) {
|
|
33
|
+
return withClient(req, async (client) => {
|
|
34
|
+
const action = args.action ?? "send";
|
|
35
|
+
// Load chats first
|
|
36
|
+
await client.invoke({
|
|
37
|
+
_: "loadChats",
|
|
38
|
+
chat_list: { _: "chatListMain" },
|
|
39
|
+
limit: 100,
|
|
40
|
+
});
|
|
41
|
+
// Resolve target chat
|
|
42
|
+
const toChatId = await resolveChat(client, args.chat);
|
|
43
|
+
if (action === "forward") {
|
|
44
|
+
// Forward messages from another chat
|
|
45
|
+
if (!args.from_chat) {
|
|
46
|
+
throw new Error('from_chat is required for action="forward". Specify the source chat.');
|
|
47
|
+
}
|
|
48
|
+
if (!args.message_ids || args.message_ids.length === 0) {
|
|
49
|
+
throw new Error('message_ids is required for action="forward". Specify messages to forward.');
|
|
50
|
+
}
|
|
51
|
+
const fromChatId = await resolveChat(client, args.from_chat);
|
|
52
|
+
const result = await client.invoke({
|
|
53
|
+
_: "forwardMessages",
|
|
54
|
+
chat_id: toChatId,
|
|
55
|
+
from_chat_id: fromChatId,
|
|
56
|
+
message_ids: args.message_ids,
|
|
57
|
+
send_copy: args.send_copy ?? false,
|
|
58
|
+
remove_caption: args.remove_caption ?? false,
|
|
59
|
+
});
|
|
60
|
+
const messages = result;
|
|
61
|
+
const forwarded = (messages.messages ?? []).map((m) => transformMessage(m));
|
|
62
|
+
return {
|
|
63
|
+
forwarded,
|
|
64
|
+
count: forwarded.length,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// Default: send a new message
|
|
68
|
+
if (!args.text) {
|
|
69
|
+
throw new Error('text is required for action="send". Provide message content.');
|
|
70
|
+
}
|
|
71
|
+
const result = (await client.invoke({
|
|
72
|
+
_: "sendMessage",
|
|
73
|
+
chat_id: toChatId,
|
|
74
|
+
reply_to: args.reply_to_message_id
|
|
75
|
+
? {
|
|
76
|
+
_: "inputMessageReplyToMessage",
|
|
77
|
+
message_id: args.reply_to_message_id,
|
|
78
|
+
}
|
|
79
|
+
: undefined,
|
|
80
|
+
input_message_content: {
|
|
81
|
+
_: "inputMessageText",
|
|
82
|
+
text: {
|
|
83
|
+
_: "formattedText",
|
|
84
|
+
text: args.text,
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
}));
|
|
88
|
+
// Wait for the message to be sent (up to 10 seconds)
|
|
89
|
+
const sentMessage = await new Promise((resolve, reject) => {
|
|
90
|
+
const timeout = setTimeout(() => {
|
|
91
|
+
cleanup();
|
|
92
|
+
reject(new Error("Message send timeout - message may still be sending"));
|
|
93
|
+
}, 10000);
|
|
94
|
+
const onUpdate = (update) => {
|
|
95
|
+
const u = update;
|
|
96
|
+
if (u._ === "updateMessageSendSucceeded" &&
|
|
97
|
+
u.old_message_id === result.id) {
|
|
98
|
+
cleanup();
|
|
99
|
+
resolve(u.message);
|
|
100
|
+
}
|
|
101
|
+
else if (u._ === "updateMessageSendFailed" &&
|
|
102
|
+
u.old_message_id === result.id) {
|
|
103
|
+
cleanup();
|
|
104
|
+
reject(new Error("Failed to send message"));
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const cleanup = () => {
|
|
108
|
+
clearTimeout(timeout);
|
|
109
|
+
client.off("update", onUpdate);
|
|
110
|
+
};
|
|
111
|
+
client.on("update", onUpdate);
|
|
112
|
+
});
|
|
113
|
+
return transformMessage(sentMessage);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=sendMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendMessage.js","sourceRoot":"","sources":["../../src/tools/sendMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output transformers for converting raw TDLib responses to human-friendly formats
|
|
3
|
+
*
|
|
4
|
+
* These transform complex nested TDLib objects into simplified, readable structures
|
|
5
|
+
* that are easier for users and LLMs to understand and work with.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Format Unix timestamp to readable date string
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatTimestamp(unix: number): string;
|
|
11
|
+
/**
|
|
12
|
+
* Format Unix timestamp to relative time (e.g., "2 hours ago")
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatRelativeTime(unix: number): string;
|
|
15
|
+
export interface TransformedUser {
|
|
16
|
+
id: number;
|
|
17
|
+
name: string;
|
|
18
|
+
username?: string;
|
|
19
|
+
phone?: string;
|
|
20
|
+
status: string;
|
|
21
|
+
is_contact: boolean;
|
|
22
|
+
is_premium: boolean;
|
|
23
|
+
is_verified: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function transformUser(user: unknown): TransformedUser;
|
|
26
|
+
export interface TransformedChat {
|
|
27
|
+
id: number;
|
|
28
|
+
title: string;
|
|
29
|
+
type: string;
|
|
30
|
+
unread_count: number;
|
|
31
|
+
last_message?: {
|
|
32
|
+
preview: string;
|
|
33
|
+
sender: string;
|
|
34
|
+
date: string;
|
|
35
|
+
date_relative: string;
|
|
36
|
+
};
|
|
37
|
+
member_count?: number;
|
|
38
|
+
is_pinned: boolean;
|
|
39
|
+
is_muted: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare function transformChat(chat: unknown): TransformedChat;
|
|
42
|
+
export interface TransformedChatList {
|
|
43
|
+
chats: TransformedChat[];
|
|
44
|
+
total_count: number;
|
|
45
|
+
summary: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function transformChatList(chats: unknown[], totalCount: number): TransformedChatList;
|
|
48
|
+
export interface TransformedMessage {
|
|
49
|
+
id: number;
|
|
50
|
+
chat_id: number;
|
|
51
|
+
sender: string;
|
|
52
|
+
sender_id: number;
|
|
53
|
+
content: string;
|
|
54
|
+
content_type: string;
|
|
55
|
+
date: string;
|
|
56
|
+
date_relative: string;
|
|
57
|
+
is_outgoing: boolean;
|
|
58
|
+
is_pinned: boolean;
|
|
59
|
+
reply_to_message_id?: number;
|
|
60
|
+
file_id?: number;
|
|
61
|
+
}
|
|
62
|
+
export declare function transformMessage(message: unknown, userCache?: Map<number, string>): TransformedMessage;
|
|
63
|
+
export interface TransformedMessageHistory {
|
|
64
|
+
messages: TransformedMessage[];
|
|
65
|
+
total_count: number;
|
|
66
|
+
chat_title?: string;
|
|
67
|
+
}
|
|
68
|
+
export declare function transformMessageHistory(messages: unknown[], totalCount: number, chatTitle?: string, userCache?: Map<number, string>): TransformedMessageHistory;
|
|
69
|
+
export interface TransformedContact {
|
|
70
|
+
id: number;
|
|
71
|
+
name: string;
|
|
72
|
+
username?: string;
|
|
73
|
+
phone?: string;
|
|
74
|
+
status: string;
|
|
75
|
+
}
|
|
76
|
+
export declare function transformContacts(users: unknown[]): TransformedContact[];
|
|
77
|
+
export interface TransformedGroup {
|
|
78
|
+
id: number;
|
|
79
|
+
name: string;
|
|
80
|
+
type: "basic_group" | "supergroup" | "channel";
|
|
81
|
+
member_count: number;
|
|
82
|
+
description?: string;
|
|
83
|
+
is_verified?: boolean;
|
|
84
|
+
is_scam?: boolean;
|
|
85
|
+
join_date?: string;
|
|
86
|
+
}
|
|
87
|
+
export declare function transformBasicGroup(group: unknown, chatInfo?: unknown): TransformedGroup;
|
|
88
|
+
export declare function transformSupergroup(group: unknown, chatInfo?: unknown): TransformedGroup;
|
|
89
|
+
export interface TransformedMember {
|
|
90
|
+
user_id: number;
|
|
91
|
+
name: string;
|
|
92
|
+
username?: string;
|
|
93
|
+
status: string;
|
|
94
|
+
role: string;
|
|
95
|
+
joined_date?: string;
|
|
96
|
+
}
|
|
97
|
+
export declare function transformMembers(members: unknown[], userCache?: Map<number, {
|
|
98
|
+
name: string;
|
|
99
|
+
username?: string;
|
|
100
|
+
}>): TransformedMember[];
|
|
101
|
+
export interface TransformedFile {
|
|
102
|
+
id: number;
|
|
103
|
+
size: string;
|
|
104
|
+
size_bytes: number;
|
|
105
|
+
remote_id?: string;
|
|
106
|
+
}
|
|
107
|
+
export declare function transformFile(file: unknown): TransformedFile;
|
|
108
|
+
export interface TransformedSearchResult {
|
|
109
|
+
messages: TransformedMessage[];
|
|
110
|
+
total_count: number;
|
|
111
|
+
next_offset?: string;
|
|
112
|
+
search_query: string;
|
|
113
|
+
}
|
|
114
|
+
export declare function transformSearchResults(result: unknown, query: string, userCache?: Map<number, string>): TransformedSearchResult;
|
|
115
|
+
export interface TransformedMessageWithContext extends TransformedMessage {
|
|
116
|
+
is_target: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface TransformedMessageContext {
|
|
119
|
+
messages: TransformedMessageWithContext[];
|
|
120
|
+
target_message_id: number;
|
|
121
|
+
context_count: number;
|
|
122
|
+
chat_id: number;
|
|
123
|
+
chat_title?: string;
|
|
124
|
+
}
|
|
125
|
+
export interface TransformedMessageContextResult {
|
|
126
|
+
contexts: TransformedMessageContext[];
|
|
127
|
+
total_matches: number;
|
|
128
|
+
search_query?: string;
|
|
129
|
+
summary: string;
|
|
130
|
+
}
|
|
131
|
+
export declare function transformMessageContext(targetMessage: unknown, messagesBefore: unknown[], messagesAfter: unknown[], contextCount: number, chatId: number, chatTitle?: string, userCache?: Map<number, string>): TransformedMessageContext;
|
|
132
|
+
export declare function transformMessageContextResult(contexts: TransformedMessageContext[], totalMatches: number, searchQuery?: string): TransformedMessageContextResult;
|
|
133
|
+
//# sourceMappingURL=transformers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAavD;AAuFD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAuB5D;AAID,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAyC5D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EAAE,EAChB,UAAU,EAAE,MAAM,GACjB,mBAAmB,CASrB;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,kBAAkB,CAoDpB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,yBAAyB,CAM3B;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAWxE;AAID,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAiBxF;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,OAAO,GACjB,gBAAgB,CAoBlB;AAID,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAAE,EAClB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,iBAAiB,EAAE,CAsBrB;AAID,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CA0B5D;AAID,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,uBAAuB,CAazB;AAID,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,6BAA6B,EAAE,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EAAE,EACzB,aAAa,EAAE,OAAO,EAAE,EACxB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,yBAAyB,CAiB3B;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,yBAAyB,EAAE,EACrC,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,+BAA+B,CAWjC"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output transformers for converting raw TDLib responses to human-friendly formats
|
|
3
|
+
*
|
|
4
|
+
* These transform complex nested TDLib objects into simplified, readable structures
|
|
5
|
+
* that are easier for users and LLMs to understand and work with.
|
|
6
|
+
*/
|
|
7
|
+
// ==================== Helper Functions ====================
|
|
8
|
+
/**
|
|
9
|
+
* Format Unix timestamp to readable date string
|
|
10
|
+
*/
|
|
11
|
+
export function formatTimestamp(unix) {
|
|
12
|
+
if (!unix || unix === 0)
|
|
13
|
+
return "";
|
|
14
|
+
const date = new Date(unix * 1000);
|
|
15
|
+
return date.toISOString();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Format Unix timestamp to relative time (e.g., "2 hours ago")
|
|
19
|
+
*/
|
|
20
|
+
export function formatRelativeTime(unix) {
|
|
21
|
+
if (!unix || unix === 0)
|
|
22
|
+
return "";
|
|
23
|
+
const now = Date.now();
|
|
24
|
+
const diff = now - unix * 1000;
|
|
25
|
+
const seconds = Math.floor(diff / 1000);
|
|
26
|
+
const minutes = Math.floor(seconds / 60);
|
|
27
|
+
const hours = Math.floor(minutes / 60);
|
|
28
|
+
const days = Math.floor(hours / 24);
|
|
29
|
+
if (days > 0)
|
|
30
|
+
return `${days} day${days > 1 ? "s" : ""} ago`;
|
|
31
|
+
if (hours > 0)
|
|
32
|
+
return `${hours} hour${hours > 1 ? "s" : ""} ago`;
|
|
33
|
+
if (minutes > 0)
|
|
34
|
+
return `${minutes} minute${minutes > 1 ? "s" : ""} ago`;
|
|
35
|
+
return "just now";
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Extract text content from a message
|
|
39
|
+
*/
|
|
40
|
+
function extractMessageText(content) {
|
|
41
|
+
const c = content;
|
|
42
|
+
if (!c)
|
|
43
|
+
return "";
|
|
44
|
+
switch (c._) {
|
|
45
|
+
case "messageText":
|
|
46
|
+
return c.text?.text ?? "";
|
|
47
|
+
case "messagePhoto":
|
|
48
|
+
return c.caption?.text ? `[Photo] ${c.caption.text}` : "[Photo]";
|
|
49
|
+
case "messageVideo":
|
|
50
|
+
return c.caption?.text ? `[Video] ${c.caption.text}` : "[Video]";
|
|
51
|
+
case "messageDocument":
|
|
52
|
+
return c.caption?.text ? `[Document] ${c.caption.text}` : "[Document]";
|
|
53
|
+
case "messageAudio":
|
|
54
|
+
return c.caption?.text ? `[Audio] ${c.caption.text}` : "[Audio]";
|
|
55
|
+
case "messageVoiceNote":
|
|
56
|
+
return "[Voice message]";
|
|
57
|
+
case "messageVideoNote":
|
|
58
|
+
return "[Video message]";
|
|
59
|
+
case "messageSticker":
|
|
60
|
+
return "[Sticker]";
|
|
61
|
+
case "messageAnimation":
|
|
62
|
+
return "[GIF]";
|
|
63
|
+
case "messageLocation":
|
|
64
|
+
return "[Location]";
|
|
65
|
+
case "messageContact":
|
|
66
|
+
return "[Contact]";
|
|
67
|
+
case "messagePoll":
|
|
68
|
+
return "[Poll]";
|
|
69
|
+
default:
|
|
70
|
+
return `[${c._?.replace("message", "") ?? "Unknown"}]`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get chat type as human-readable string
|
|
75
|
+
*/
|
|
76
|
+
function getChatTypeString(type) {
|
|
77
|
+
const t = type;
|
|
78
|
+
if (!t?._)
|
|
79
|
+
return "unknown";
|
|
80
|
+
switch (t._) {
|
|
81
|
+
case "chatTypePrivate":
|
|
82
|
+
return "private";
|
|
83
|
+
case "chatTypeBasicGroup":
|
|
84
|
+
return "group";
|
|
85
|
+
case "chatTypeSupergroup":
|
|
86
|
+
return t.is_channel ? "channel" : "supergroup";
|
|
87
|
+
case "chatTypeSecret":
|
|
88
|
+
return "secret";
|
|
89
|
+
default:
|
|
90
|
+
return t._.replace("chatType", "").toLowerCase();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get user status as human-readable string
|
|
95
|
+
*/
|
|
96
|
+
function getUserStatusString(status) {
|
|
97
|
+
const s = status;
|
|
98
|
+
if (!s?._)
|
|
99
|
+
return "unknown";
|
|
100
|
+
switch (s._) {
|
|
101
|
+
case "userStatusOnline":
|
|
102
|
+
return "online";
|
|
103
|
+
case "userStatusOffline":
|
|
104
|
+
return s.was_online ? `last seen ${formatRelativeTime(s.was_online)}` : "offline";
|
|
105
|
+
case "userStatusRecently":
|
|
106
|
+
return "last seen recently";
|
|
107
|
+
case "userStatusLastWeek":
|
|
108
|
+
return "last seen within a week";
|
|
109
|
+
case "userStatusLastMonth":
|
|
110
|
+
return "last seen within a month";
|
|
111
|
+
case "userStatusEmpty":
|
|
112
|
+
return "unknown";
|
|
113
|
+
default:
|
|
114
|
+
return s._.replace("userStatus", "").toLowerCase();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export function transformUser(user) {
|
|
118
|
+
const u = user;
|
|
119
|
+
return {
|
|
120
|
+
id: u.id,
|
|
121
|
+
name: `${u.first_name ?? ""} ${u.last_name ?? ""}`.trim() || "Unknown",
|
|
122
|
+
username: u.usernames?.active_usernames?.[0],
|
|
123
|
+
phone: u.phone_number,
|
|
124
|
+
status: getUserStatusString(u.status),
|
|
125
|
+
is_contact: u.is_contact ?? false,
|
|
126
|
+
is_premium: u.is_premium ?? false,
|
|
127
|
+
is_verified: u.is_verified ?? false,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export function transformChat(chat) {
|
|
131
|
+
const c = chat;
|
|
132
|
+
const lastMsg = c.last_message;
|
|
133
|
+
let senderName = "Unknown";
|
|
134
|
+
if (lastMsg?.sender_id) {
|
|
135
|
+
if (lastMsg.sender_id._ === "messageSenderUser") {
|
|
136
|
+
senderName = `User ${lastMsg.sender_id.user_id}`;
|
|
137
|
+
}
|
|
138
|
+
else if (lastMsg.sender_id._ === "messageSenderChat") {
|
|
139
|
+
senderName = "Channel";
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
id: c.id,
|
|
144
|
+
title: c.title,
|
|
145
|
+
type: getChatTypeString(c.type),
|
|
146
|
+
unread_count: c.unread_count ?? 0,
|
|
147
|
+
last_message: lastMsg
|
|
148
|
+
? {
|
|
149
|
+
preview: extractMessageText(lastMsg.content).substring(0, 100),
|
|
150
|
+
sender: senderName,
|
|
151
|
+
date: formatTimestamp(lastMsg.date ?? 0),
|
|
152
|
+
date_relative: formatRelativeTime(lastMsg.date ?? 0),
|
|
153
|
+
}
|
|
154
|
+
: undefined,
|
|
155
|
+
is_pinned: c.positions?.[0]?.is_pinned ?? false,
|
|
156
|
+
is_muted: (c.notification_settings?.mute_for ?? 0) > 0,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
export function transformChatList(chats, totalCount) {
|
|
160
|
+
const transformed = chats.map(transformChat);
|
|
161
|
+
const unreadCount = transformed.reduce((sum, c) => sum + c.unread_count, 0);
|
|
162
|
+
return {
|
|
163
|
+
chats: transformed,
|
|
164
|
+
total_count: totalCount,
|
|
165
|
+
summary: `${transformed.length} chats loaded, ${unreadCount} unread messages`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export function transformMessage(message, userCache) {
|
|
169
|
+
const m = message;
|
|
170
|
+
let senderName = "Unknown";
|
|
171
|
+
let senderId = 0;
|
|
172
|
+
if (m.sender_id) {
|
|
173
|
+
if (m.sender_id._ === "messageSenderUser" && m.sender_id.user_id) {
|
|
174
|
+
senderId = m.sender_id.user_id;
|
|
175
|
+
senderName = userCache?.get(senderId) ?? `User ${senderId}`;
|
|
176
|
+
}
|
|
177
|
+
else if (m.sender_id._ === "messageSenderChat" && m.sender_id.chat_id) {
|
|
178
|
+
senderId = m.sender_id.chat_id;
|
|
179
|
+
senderName = "Channel";
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Extract file_id if present
|
|
183
|
+
const content = m.content;
|
|
184
|
+
let fileId;
|
|
185
|
+
if (content?.photo?.sizes) {
|
|
186
|
+
const lastSize = content.photo.sizes[content.photo.sizes.length - 1];
|
|
187
|
+
fileId = lastSize?.photo?.id;
|
|
188
|
+
}
|
|
189
|
+
else if (content?.document?.document?.id) {
|
|
190
|
+
fileId = content.document.document.id;
|
|
191
|
+
}
|
|
192
|
+
else if (content?.video?.video?.id) {
|
|
193
|
+
fileId = content.video.video.id;
|
|
194
|
+
}
|
|
195
|
+
else if (content?.audio?.audio?.id) {
|
|
196
|
+
fileId = content.audio.audio.id;
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
id: m.id,
|
|
200
|
+
chat_id: m.chat_id,
|
|
201
|
+
sender: senderName,
|
|
202
|
+
sender_id: senderId,
|
|
203
|
+
content: extractMessageText(m.content),
|
|
204
|
+
content_type: m.content?._?.replace("message", "") ?? "unknown",
|
|
205
|
+
date: formatTimestamp(m.date ?? 0),
|
|
206
|
+
date_relative: formatRelativeTime(m.date ?? 0),
|
|
207
|
+
is_outgoing: m.is_outgoing ?? false,
|
|
208
|
+
is_pinned: m.is_pinned ?? false,
|
|
209
|
+
reply_to_message_id: m.reply_to?.message_id,
|
|
210
|
+
file_id: fileId,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
export function transformMessageHistory(messages, totalCount, chatTitle, userCache) {
|
|
214
|
+
return {
|
|
215
|
+
messages: messages.map((m) => transformMessage(m, userCache)),
|
|
216
|
+
total_count: totalCount,
|
|
217
|
+
chat_title: chatTitle,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
export function transformContacts(users) {
|
|
221
|
+
return users.map((user) => {
|
|
222
|
+
const u = transformUser(user);
|
|
223
|
+
return {
|
|
224
|
+
id: u.id,
|
|
225
|
+
name: u.name,
|
|
226
|
+
username: u.username,
|
|
227
|
+
phone: u.phone,
|
|
228
|
+
status: u.status,
|
|
229
|
+
};
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
export function transformBasicGroup(group, chatInfo) {
|
|
233
|
+
const g = group;
|
|
234
|
+
const c = chatInfo;
|
|
235
|
+
return {
|
|
236
|
+
id: g.id,
|
|
237
|
+
name: c?.title ?? `Group ${g.id}`,
|
|
238
|
+
type: "basic_group",
|
|
239
|
+
member_count: g.member_count ?? 0,
|
|
240
|
+
join_date: g.status?.joined_chat_date
|
|
241
|
+
? formatTimestamp(g.status.joined_chat_date)
|
|
242
|
+
: undefined,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
export function transformSupergroup(group, chatInfo) {
|
|
246
|
+
const g = group;
|
|
247
|
+
const c = chatInfo;
|
|
248
|
+
return {
|
|
249
|
+
id: g.id,
|
|
250
|
+
name: c?.title ?? `${g.is_channel ? "Channel" : "Supergroup"} ${g.id}`,
|
|
251
|
+
type: g.is_channel ? "channel" : "supergroup",
|
|
252
|
+
member_count: g.member_count ?? 0,
|
|
253
|
+
is_verified: g.is_verified,
|
|
254
|
+
is_scam: g.is_scam,
|
|
255
|
+
join_date: g.date ? formatTimestamp(g.date) : undefined,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
export function transformMembers(members, userCache) {
|
|
259
|
+
return members.map((member) => {
|
|
260
|
+
const m = member;
|
|
261
|
+
const userId = m.member_id?.user_id ?? 0;
|
|
262
|
+
const userInfo = userCache?.get(userId);
|
|
263
|
+
const statusType = m.status?._?.replace("chatMemberStatus", "") ?? "Member";
|
|
264
|
+
return {
|
|
265
|
+
user_id: userId,
|
|
266
|
+
name: userInfo?.name ?? `User ${userId}`,
|
|
267
|
+
username: userInfo?.username,
|
|
268
|
+
status: "member",
|
|
269
|
+
role: statusType.toLowerCase(),
|
|
270
|
+
joined_date: m.status?.joined_chat_date
|
|
271
|
+
? formatTimestamp(m.status.joined_chat_date)
|
|
272
|
+
: undefined,
|
|
273
|
+
};
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
export function transformFile(file) {
|
|
277
|
+
const f = file;
|
|
278
|
+
const sizeBytes = f.size ?? f.expected_size ?? 0;
|
|
279
|
+
let sizeStr;
|
|
280
|
+
if (sizeBytes >= 1024 * 1024 * 1024) {
|
|
281
|
+
sizeStr = `${(sizeBytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
|
|
282
|
+
}
|
|
283
|
+
else if (sizeBytes >= 1024 * 1024) {
|
|
284
|
+
sizeStr = `${(sizeBytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
285
|
+
}
|
|
286
|
+
else if (sizeBytes >= 1024) {
|
|
287
|
+
sizeStr = `${(sizeBytes / 1024).toFixed(2)} KB`;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
sizeStr = `${sizeBytes} bytes`;
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
id: f.id,
|
|
294
|
+
size: sizeStr,
|
|
295
|
+
size_bytes: sizeBytes,
|
|
296
|
+
remote_id: f.remote?.id,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
export function transformSearchResults(result, query, userCache) {
|
|
300
|
+
const r = result;
|
|
301
|
+
return {
|
|
302
|
+
messages: (r.messages ?? []).map((m) => transformMessage(m, userCache)),
|
|
303
|
+
total_count: r.total_count ?? 0,
|
|
304
|
+
next_offset: r.next_offset,
|
|
305
|
+
search_query: query,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
export function transformMessageContext(targetMessage, messagesBefore, messagesAfter, contextCount, chatId, chatTitle, userCache) {
|
|
309
|
+
const targetMsg = transformMessage(targetMessage, userCache);
|
|
310
|
+
// Build single chronological array: before -> target -> after
|
|
311
|
+
const messages = [
|
|
312
|
+
...messagesBefore.map((m) => ({ ...transformMessage(m, userCache), is_target: false })),
|
|
313
|
+
{ ...targetMsg, is_target: true },
|
|
314
|
+
...messagesAfter.map((m) => ({ ...transformMessage(m, userCache), is_target: false })),
|
|
315
|
+
];
|
|
316
|
+
return {
|
|
317
|
+
messages,
|
|
318
|
+
target_message_id: targetMsg.id,
|
|
319
|
+
context_count: contextCount,
|
|
320
|
+
chat_id: chatId,
|
|
321
|
+
chat_title: chatTitle,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
export function transformMessageContextResult(contexts, totalMatches, searchQuery) {
|
|
325
|
+
const totalMessages = contexts.reduce((sum, ctx) => sum + ctx.messages.length, 0);
|
|
326
|
+
return {
|
|
327
|
+
contexts,
|
|
328
|
+
total_matches: totalMatches,
|
|
329
|
+
search_query: searchQuery,
|
|
330
|
+
summary: searchQuery
|
|
331
|
+
? `Found ${totalMatches} match(es) for "${searchQuery}", showing context for ${contexts.length} result(s) (${totalMessages} total messages)`
|
|
332
|
+
: `Showing context for ${contexts.length} message(s) (${totalMessages} total messages)`,
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=transformers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6DAA6D;AAE7D;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAEpC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACzE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,CAAC,GAAG,OAAgF,CAAC;IAC3F,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAElB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,KAAK,aAAa;YAChB,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC5B,KAAK,cAAc;YACjB,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,KAAK,cAAc;YACjB,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,KAAK,iBAAiB;YACpB,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QACzE,KAAK,cAAc;YACjB,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,KAAK,kBAAkB;YACrB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,kBAAkB;YACrB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC;QACrB,KAAK,kBAAkB;YACrB,OAAO,OAAO,CAAC;QACjB,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC;QACtB,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAa;IACtC,MAAM,CAAC,GAAG,IAA4C,CAAC;IACvD,IAAI,CAAC,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC;QACnB,KAAK,oBAAoB;YACvB,OAAO,OAAO,CAAC;QACjB,KAAK,oBAAoB;YACvB,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;QACjD,KAAK,gBAAgB;YACnB,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAe;IAC1C,MAAM,CAAC,GAAG,MAA6C,CAAC;IACxD,IAAI,CAAC,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC;QAClB,KAAK,mBAAmB;YACtB,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,KAAK,oBAAoB;YACvB,OAAO,oBAAoB,CAAC;QAC9B,KAAK,oBAAoB;YACvB,OAAO,yBAAyB,CAAC;QACnC,KAAK,qBAAqB;YACxB,OAAO,0BAA0B,CAAC;QACpC,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC;AACH,CAAC;AAeD,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,CAAC,GAAG,IAUT,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAS;QACtE,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,YAAY;QACrB,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC;QACrC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;QACjC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;QACjC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,KAAK;KACpC,CAAC;AACJ,CAAC;AAoBD,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,CAAC,GAAG,IAYT,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC;IAC/B,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;YAChD,UAAU,GAAG,QAAQ,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;YACvD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;QACjC,YAAY,EAAE,OAAO;YACnB,CAAC,CAAC;gBACE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9D,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;gBACxC,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;aACrD;YACH,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,KAAK;QAC/C,QAAQ,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;KACvD,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAC/B,KAAgB,EAChB,UAAkB;IAElB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAE5E,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,kBAAkB,WAAW,kBAAkB;KAC9E,CAAC;AACJ,CAAC;AAmBD,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,SAA+B;IAE/B,MAAM,CAAC,GAAG,OAST,CAAC;IAEF,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACjE,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;YAC/B,UAAU,GAAG,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,QAAQ,EAAE,CAAC;QAC9D,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACxE,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;YAC/B,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAA0L,CAAC;IAC7M,IAAI,MAA0B,CAAC;IAC/B,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;SAAM,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACtC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS;QAC/D,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAClC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9C,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,KAAK;QACnC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;QAC/B,mBAAmB,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU;QAC3C,OAAO,EAAE,MAAM;KAChB,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,uBAAuB,CACrC,QAAmB,EACnB,UAAkB,EAClB,SAAkB,EAClB,SAA+B;IAE/B,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7D,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAYD,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,QAAkB;IACpE,MAAM,CAAC,GAAG,KAIT,CAAC;IACF,MAAM,CAAC,GAAG,QAA8B,CAAC;IAEzC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE;QACjC,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB;YACnC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC5C,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAc,EACd,QAAkB;IAElB,MAAM,CAAC,GAAG,KAOT,CAAC;IACF,MAAM,CAAC,GAAG,QAA8B,CAAC;IAEzC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,EAAE;QACtE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;QAC7C,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;QACjC,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC;AACJ,CAAC;AAaD,MAAM,UAAU,gBAAgB,CAC9B,OAAkB,EAClB,SAA4D;IAE5D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,MAGT,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;QAE5E,OAAO;YACL,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,QAAQ,MAAM,EAAE;YACxC,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE;YAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB;gBACrC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAC5C,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,CAAC,GAAG,IAKT,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;IACjD,IAAI,OAAe,CAAC;IACpB,IAAI,SAAS,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QACpC,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,CAAC;SAAM,IAAI,SAAS,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QACpC,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC;SAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,GAAG,SAAS,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,sBAAsB,CACpC,MAAe,EACf,KAAa,EACb,SAA+B;IAE/B,MAAM,CAAC,GAAG,MAIT,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC;QAC/B,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,KAAK;KACpB,CAAC;AACJ,CAAC;AAuBD,MAAM,UAAU,uBAAuB,CACrC,aAAsB,EACtB,cAAyB,EACzB,aAAwB,EACxB,YAAoB,EACpB,MAAc,EACd,SAAkB,EAClB,SAA+B;IAE/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE7D,8DAA8D;IAC9D,MAAM,QAAQ,GAAoC;QAChD,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QACjC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KACvF,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,iBAAiB,EAAE,SAAS,CAAC,EAAE;QAC/B,aAAa,EAAE,YAAY;QAC3B,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,QAAqC,EACrC,YAAoB,EACpB,WAAoB;IAEpB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO;QACL,QAAQ;QACR,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,WAAW;QACzB,OAAO,EAAE,WAAW;YAClB,CAAC,CAAC,SAAS,YAAY,mBAAmB,WAAW,0BAA0B,QAAQ,CAAC,MAAM,eAAe,aAAa,kBAAkB;YAC5I,CAAC,CAAC,uBAAuB,QAAQ,CAAC,MAAM,gBAAgB,aAAa,kBAAkB;KAC1F,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface DebugMetadata {
|
|
2
|
+
toolName: string;
|
|
3
|
+
toolInput: unknown;
|
|
4
|
+
toolCallTime: number;
|
|
5
|
+
timestamp: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ToolResponse<T = unknown> {
|
|
8
|
+
data: T;
|
|
9
|
+
debug?: DebugMetadata;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* TDLib response types
|
|
13
|
+
*
|
|
14
|
+
* Note: These are simplified types that don't try to match TDLib's exact types.
|
|
15
|
+
* TDLib responses are complex and version-dependent. We use these as documentation
|
|
16
|
+
* of expected structure, but cast through `unknown` when needed.
|
|
17
|
+
*/
|
|
18
|
+
export interface TDLibObject {
|
|
19
|
+
_: string;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}
|
|
22
|
+
export type TelegramUser = TDLibObject & {
|
|
23
|
+
_: "user";
|
|
24
|
+
id: number;
|
|
25
|
+
first_name: string;
|
|
26
|
+
last_name?: string;
|
|
27
|
+
};
|
|
28
|
+
export type TelegramFile = TDLibObject & {
|
|
29
|
+
_: "file";
|
|
30
|
+
id: number;
|
|
31
|
+
size?: number;
|
|
32
|
+
expected_size?: number;
|
|
33
|
+
};
|
|
34
|
+
export type TelegramChat = TDLibObject & {
|
|
35
|
+
_: "chat";
|
|
36
|
+
id: number;
|
|
37
|
+
title: string;
|
|
38
|
+
};
|
|
39
|
+
export type TelegramMessage = TDLibObject & {
|
|
40
|
+
_: "message";
|
|
41
|
+
id: number;
|
|
42
|
+
chat_id: number;
|
|
43
|
+
date: number;
|
|
44
|
+
};
|
|
45
|
+
export type TelegramChats = TDLibObject & {
|
|
46
|
+
_: "chats";
|
|
47
|
+
total_count: number;
|
|
48
|
+
chat_ids: number[];
|
|
49
|
+
};
|
|
50
|
+
export type TelegramUsers = TDLibObject & {
|
|
51
|
+
_: "users";
|
|
52
|
+
total_count: number;
|
|
53
|
+
user_ids: number[];
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=types.d.ts.map
|