tgplus 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +52 -0
- package/README.md +1512 -0
- package/dist/adapters.d.ts +46 -0
- package/dist/adapters.js +83 -0
- package/dist/adapters.js.map +1 -0
- package/dist/bot.d.ts +50 -0
- package/dist/bot.js +180 -0
- package/dist/bot.js.map +1 -0
- package/dist/client.d.ts +1139 -0
- package/dist/client.js +529 -0
- package/dist/client.js.map +1 -0
- package/dist/composer.d.ts +88 -0
- package/dist/composer.js +233 -0
- package/dist/composer.js.map +1 -0
- package/dist/context.d.ts +72 -0
- package/dist/context.js +149 -0
- package/dist/context.js.map +1 -0
- package/dist/decorators.d.ts +33 -0
- package/dist/decorators.js +39 -0
- package/dist/decorators.js.map +1 -0
- package/dist/filters.d.ts +19 -0
- package/dist/filters.js +81 -0
- package/dist/filters.js.map +1 -0
- package/dist/i18n.d.ts +30 -0
- package/dist/i18n.js +41 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/keyboard.d.ts +62 -0
- package/dist/keyboard.js +96 -0
- package/dist/keyboard.js.map +1 -0
- package/dist/rateLimit.d.ts +19 -0
- package/dist/rateLimit.js +32 -0
- package/dist/rateLimit.js.map +1 -0
- package/dist/richMessage.d.ts +111 -0
- package/dist/richMessage.js +221 -0
- package/dist/richMessage.js.map +1 -0
- package/dist/scenes.d.ts +57 -0
- package/dist/scenes.js +105 -0
- package/dist/scenes.js.map +1 -0
- package/dist/session-redis.d.ts +27 -0
- package/dist/session-redis.js +36 -0
- package/dist/session-redis.js.map +1 -0
- package/dist/session-sqlite.d.ts +29 -0
- package/dist/session-sqlite.js +34 -0
- package/dist/session-sqlite.js.map +1 -0
- package/dist/session.d.ts +30 -0
- package/dist/session.js +35 -0
- package/dist/session.js.map +1 -0
- package/dist/types.d.ts +2485 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
package/dist/client.js
ADDED
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Api = exports.Transport = exports.TelegramApiError = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const node_stream_1 = require("node:stream");
|
|
7
|
+
class TelegramApiError extends Error {
|
|
8
|
+
method;
|
|
9
|
+
errorCode;
|
|
10
|
+
parameters;
|
|
11
|
+
constructor(method, errorCode, description, parameters) {
|
|
12
|
+
super(`${method} failed (${errorCode}): ${description}`);
|
|
13
|
+
this.method = method;
|
|
14
|
+
this.errorCode = errorCode;
|
|
15
|
+
this.parameters = parameters;
|
|
16
|
+
this.name = "TelegramApiError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.TelegramApiError = TelegramApiError;
|
|
20
|
+
class Transport {
|
|
21
|
+
token;
|
|
22
|
+
root;
|
|
23
|
+
maxRetries;
|
|
24
|
+
minIntervalMs;
|
|
25
|
+
queue = Promise.resolve();
|
|
26
|
+
constructor(token, opts = {}) {
|
|
27
|
+
this.token = token;
|
|
28
|
+
this.root = `${opts.apiRoot ?? "https://api.telegram.org"}/bot${token}`;
|
|
29
|
+
this.maxRetries = opts.floodControl?.maxRetries ?? 3;
|
|
30
|
+
this.minIntervalMs = opts.minIntervalMs ?? 0;
|
|
31
|
+
}
|
|
32
|
+
schedule(fn) {
|
|
33
|
+
if (!this.minIntervalMs)
|
|
34
|
+
return fn();
|
|
35
|
+
const result = this.queue.then(fn);
|
|
36
|
+
this.queue = result.catch(() => undefined).then(() => sleep(this.minIntervalMs));
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
async call(method, params = {}, attempt = 0) {
|
|
40
|
+
return this.schedule(async () => {
|
|
41
|
+
try {
|
|
42
|
+
return await this.performCall(method, params);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
if (err instanceof TelegramApiError && err.errorCode === 429 && err.parameters?.retry_after !== undefined && attempt < this.maxRetries) {
|
|
46
|
+
await sleep(err.parameters.retry_after * 1000);
|
|
47
|
+
return this.call(method, params, attempt + 1);
|
|
48
|
+
}
|
|
49
|
+
throw err;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async performCall(method, params = {}) {
|
|
54
|
+
const p = params;
|
|
55
|
+
const hasFile = Object.values(p).some(isInputFileValue);
|
|
56
|
+
const url = `${this.root}/${method}`;
|
|
57
|
+
const res = hasFile
|
|
58
|
+
? await this.callMultipart(url, p)
|
|
59
|
+
: await fetch(url, {
|
|
60
|
+
method: "POST",
|
|
61
|
+
headers: { "content-type": "application/json" },
|
|
62
|
+
body: JSON.stringify(stripUndefined(p)),
|
|
63
|
+
});
|
|
64
|
+
const body = (await res.json());
|
|
65
|
+
if (!body.ok) {
|
|
66
|
+
throw new TelegramApiError(method, body.error_code ?? 0, body.description ?? "unknown error", body.parameters);
|
|
67
|
+
}
|
|
68
|
+
return body.result;
|
|
69
|
+
}
|
|
70
|
+
async callMultipart(url, params) {
|
|
71
|
+
const p = stripUndefined(params);
|
|
72
|
+
const needsStreaming = Object.values(p).some((v) => isInputFileValue(v) && !Buffer.isBuffer(v.source));
|
|
73
|
+
if (!needsStreaming) {
|
|
74
|
+
// All file fields (if any) are Buffers, already fully in memory — the
|
|
75
|
+
// simple, proven FormData path. Unchanged from before this feature existed.
|
|
76
|
+
const form = new FormData();
|
|
77
|
+
for (const [key, value] of Object.entries(p)) {
|
|
78
|
+
if (isInputFileValue(value)) {
|
|
79
|
+
form.append(key, new Blob([value.source]), resolveFilename(value));
|
|
80
|
+
}
|
|
81
|
+
else if (typeof value === "object") {
|
|
82
|
+
form.append(key, JSON.stringify(value));
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
form.append(key, String(value));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return fetch(url, { method: "POST", body: form });
|
|
89
|
+
}
|
|
90
|
+
// At least one field is a local file path or a real Node stream — build
|
|
91
|
+
// the multipart body by hand and stream it, so large files never need to
|
|
92
|
+
// be fully buffered in memory. Node's fetch requires `duplex: 'half'`
|
|
93
|
+
// when the body is a stream.
|
|
94
|
+
const boundary = "tgplus-" + Math.random().toString(36).slice(2) + Date.now().toString(36);
|
|
95
|
+
const body = node_stream_1.Readable.from(buildMultipartBody(p, boundary));
|
|
96
|
+
return fetch(url, {
|
|
97
|
+
method: "POST",
|
|
98
|
+
headers: { "content-type": `multipart/form-data; boundary=${boundary}` },
|
|
99
|
+
body: body,
|
|
100
|
+
duplex: "half",
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
getFileDownloadUrl(filePath) {
|
|
104
|
+
const tokenPart = this.root.split("/bot")[1];
|
|
105
|
+
const base = this.root.split("/bot")[0];
|
|
106
|
+
return `${base}/file/bot${tokenPart}/${filePath}`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.Transport = Transport;
|
|
110
|
+
function sleep(ms) {
|
|
111
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
112
|
+
}
|
|
113
|
+
function stripUndefined(obj) {
|
|
114
|
+
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
|
|
115
|
+
}
|
|
116
|
+
function isInputFileValue(v) {
|
|
117
|
+
return !!v && typeof v === "object" && "source" in v;
|
|
118
|
+
}
|
|
119
|
+
function resolveFilename(v) {
|
|
120
|
+
if (v.filename)
|
|
121
|
+
return v.filename;
|
|
122
|
+
if (typeof v.source === "string")
|
|
123
|
+
return (0, node_path_1.basename)(v.source);
|
|
124
|
+
return "file";
|
|
125
|
+
}
|
|
126
|
+
/** Yields chunks without ever holding more than one chunk of a stream/file in memory at once (Buffer sources are the one exception — they're already fully in memory by definition). */
|
|
127
|
+
async function* fileChunks(source) {
|
|
128
|
+
if (Buffer.isBuffer(source)) {
|
|
129
|
+
yield source;
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const stream = typeof source === "string" ? (0, node_fs_1.createReadStream)(source) : source;
|
|
133
|
+
for await (const chunk of stream) {
|
|
134
|
+
yield chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** Hand-built multipart/form-data body, streamed chunk by chunk rather than buffered — used when any field is a local file path or a real Node stream. */
|
|
138
|
+
async function* buildMultipartBody(fields, boundary) {
|
|
139
|
+
const enc = new TextEncoder();
|
|
140
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
141
|
+
if (isInputFileValue(value)) {
|
|
142
|
+
const filename = resolveFilename(value);
|
|
143
|
+
yield enc.encode(`--${boundary}\r\nContent-Disposition: form-data; name="${key}"; filename="${filename}"\r\nContent-Type: application/octet-stream\r\n\r\n`);
|
|
144
|
+
yield* fileChunks(value.source);
|
|
145
|
+
yield enc.encode(`\r\n`);
|
|
146
|
+
}
|
|
147
|
+
else if (typeof value === "object") {
|
|
148
|
+
yield enc.encode(`--${boundary}\r\nContent-Disposition: form-data; name="${key}"\r\n\r\n${JSON.stringify(value)}\r\n`);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
yield enc.encode(`--${boundary}\r\nContent-Disposition: form-data; name="${key}"\r\n\r\n${String(value)}\r\n`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
yield enc.encode(`--${boundary}--\r\n`);
|
|
155
|
+
}
|
|
156
|
+
class Api {
|
|
157
|
+
transport;
|
|
158
|
+
constructor(transport) {
|
|
159
|
+
this.transport = transport;
|
|
160
|
+
}
|
|
161
|
+
/** Escape hatch: call ANY method by name, typed or not. Always up to date. */
|
|
162
|
+
call(method, params = {}) {
|
|
163
|
+
return this.transport.call(method, params);
|
|
164
|
+
}
|
|
165
|
+
fileUrl(filePath) {
|
|
166
|
+
return this.transport.getFileDownloadUrl(filePath);
|
|
167
|
+
}
|
|
168
|
+
// ----- Getting updates -----
|
|
169
|
+
getMe() { return this.call("getMe"); }
|
|
170
|
+
logOut() { return this.call("logOut"); }
|
|
171
|
+
close() { return this.call("close"); }
|
|
172
|
+
getUpdates(params = {}) {
|
|
173
|
+
return this.call("getUpdates", params);
|
|
174
|
+
}
|
|
175
|
+
setWebhook(params) {
|
|
176
|
+
return this.call("setWebhook", params);
|
|
177
|
+
}
|
|
178
|
+
deleteWebhook(params = {}) { return this.call("deleteWebhook", params); }
|
|
179
|
+
getWebhookInfo() { return this.call("getWebhookInfo"); }
|
|
180
|
+
// ----- Sending messages -----
|
|
181
|
+
sendMessage(params) {
|
|
182
|
+
return this.call("sendMessage", params);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Streams a partial plain-text message to a private chat while it's being
|
|
186
|
+
* generated — the plain-text sibling of sendRichMessageDraft. Ephemeral
|
|
187
|
+
* preview (not saved in the chat); call sendMessage with the final text
|
|
188
|
+
* once generation finishes. Modeled on sendRichMessageDraft's confirmed
|
|
189
|
+
* shape (draft_id, private-chat-only) since I could not independently
|
|
190
|
+
* verify sendMessageDraft's exact parameters beyond its existence and
|
|
191
|
+
* purpose in the official changelog.
|
|
192
|
+
*/
|
|
193
|
+
sendMessageDraft(params) {
|
|
194
|
+
return this.call("sendMessageDraft", params);
|
|
195
|
+
}
|
|
196
|
+
/** New in Bot API 10.1 — structured tables, checklists, blockquotes, inline media, streamed or not. */
|
|
197
|
+
sendRichMessage(params) {
|
|
198
|
+
return this.call("sendRichMessage", params);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Streams a partial rich message to a private chat while it's being generated.
|
|
202
|
+
* The draft is ephemeral (a ~30s preview, not saved in the chat) — call
|
|
203
|
+
* sendRichMessage with the complete content once generation finishes.
|
|
204
|
+
* draft_id must be non-zero; repeated calls with the same draft_id animate
|
|
205
|
+
* between states. Private chats only (chat_id must be the numeric user id).
|
|
206
|
+
*/
|
|
207
|
+
sendRichMessageDraft(params) {
|
|
208
|
+
return this.call("sendRichMessageDraft", params);
|
|
209
|
+
}
|
|
210
|
+
forwardMessage(params) {
|
|
211
|
+
return this.call("forwardMessage", params);
|
|
212
|
+
}
|
|
213
|
+
forwardMessages(params) {
|
|
214
|
+
return this.call("forwardMessages", params);
|
|
215
|
+
}
|
|
216
|
+
copyMessage(params) {
|
|
217
|
+
return this.call("copyMessage", params);
|
|
218
|
+
}
|
|
219
|
+
copyMessages(params) {
|
|
220
|
+
return this.call("copyMessages", params);
|
|
221
|
+
}
|
|
222
|
+
sendPhoto(params) {
|
|
223
|
+
return this.call("sendPhoto", params);
|
|
224
|
+
}
|
|
225
|
+
/** Bot API 10.2+: send a short looping "live photo" (discovered via the official changelog's parameter list, not independently field-verified beyond that — the LivePhoto receive type is a best-effort model). */
|
|
226
|
+
sendLivePhoto(params) {
|
|
227
|
+
return this.call("sendLivePhoto", params);
|
|
228
|
+
}
|
|
229
|
+
sendAudio(params) {
|
|
230
|
+
return this.call("sendAudio", params);
|
|
231
|
+
}
|
|
232
|
+
sendDocument(params) {
|
|
233
|
+
return this.call("sendDocument", params);
|
|
234
|
+
}
|
|
235
|
+
sendVideo(params) {
|
|
236
|
+
return this.call("sendVideo", params);
|
|
237
|
+
}
|
|
238
|
+
sendAnimation(params) {
|
|
239
|
+
return this.call("sendAnimation", params);
|
|
240
|
+
}
|
|
241
|
+
/** Was missing entirely despite being one of the most common Bot API methods — found while auditing Context.replyWithSticker's fallback to the raw call() escape hatch. */
|
|
242
|
+
sendSticker(params) {
|
|
243
|
+
return this.call("sendSticker", params);
|
|
244
|
+
}
|
|
245
|
+
sendVoice(params) {
|
|
246
|
+
return this.call("sendVoice", params);
|
|
247
|
+
}
|
|
248
|
+
sendVideoNote(params) {
|
|
249
|
+
return this.call("sendVideoNote", params);
|
|
250
|
+
}
|
|
251
|
+
sendMediaGroup(params) {
|
|
252
|
+
return this.call("sendMediaGroup", params);
|
|
253
|
+
}
|
|
254
|
+
/** Bot API 7.6+: send photos/videos that require the receiver to pay Stars to unlock. */
|
|
255
|
+
sendPaidMedia(params) {
|
|
256
|
+
return this.call("sendPaidMedia", params);
|
|
257
|
+
}
|
|
258
|
+
sendLocation(params) {
|
|
259
|
+
return this.call("sendLocation", params);
|
|
260
|
+
}
|
|
261
|
+
editMessageLiveLocation(params) {
|
|
262
|
+
return this.call("editMessageLiveLocation", params);
|
|
263
|
+
}
|
|
264
|
+
stopMessageLiveLocation(params) {
|
|
265
|
+
return this.call("stopMessageLiveLocation", params);
|
|
266
|
+
}
|
|
267
|
+
sendVenue(params) {
|
|
268
|
+
return this.call("sendVenue", params);
|
|
269
|
+
}
|
|
270
|
+
sendContact(params) {
|
|
271
|
+
return this.call("sendContact", params);
|
|
272
|
+
}
|
|
273
|
+
sendPoll(params) {
|
|
274
|
+
return this.call("sendPoll", params);
|
|
275
|
+
}
|
|
276
|
+
/** Convenience: sendPoll with type "quiz" pre-filled, matching telegraf's sendQuiz. */
|
|
277
|
+
sendQuiz(params) {
|
|
278
|
+
return this.call("sendPoll", { ...params, type: "quiz" });
|
|
279
|
+
}
|
|
280
|
+
sendDice(params) {
|
|
281
|
+
return this.call("sendDice", params);
|
|
282
|
+
}
|
|
283
|
+
sendChatAction(params) {
|
|
284
|
+
return this.call("sendChatAction", params);
|
|
285
|
+
}
|
|
286
|
+
// ----- Editing / deleting -----
|
|
287
|
+
editMessageText(params) {
|
|
288
|
+
return this.call("editMessageText", params);
|
|
289
|
+
}
|
|
290
|
+
editMessageCaption(params) {
|
|
291
|
+
return this.call("editMessageCaption", params);
|
|
292
|
+
}
|
|
293
|
+
editMessageMedia(params) {
|
|
294
|
+
return this.call("editMessageMedia", params);
|
|
295
|
+
}
|
|
296
|
+
editMessageReplyMarkup(params) {
|
|
297
|
+
return this.call("editMessageReplyMarkup", params);
|
|
298
|
+
}
|
|
299
|
+
stopPoll(params) {
|
|
300
|
+
return this.call("stopPoll", params);
|
|
301
|
+
}
|
|
302
|
+
deleteMessage(params) { return this.call("deleteMessage", params); }
|
|
303
|
+
deleteMessages(params) { return this.call("deleteMessages", params); }
|
|
304
|
+
// ----- Ephemeral Messages (Bot API 10.2) -----
|
|
305
|
+
editEphemeralMessageText(params) {
|
|
306
|
+
return this.call("editEphemeralMessageText", params);
|
|
307
|
+
}
|
|
308
|
+
editEphemeralMessageMedia(params) {
|
|
309
|
+
return this.call("editEphemeralMessageMedia", params);
|
|
310
|
+
}
|
|
311
|
+
editEphemeralMessageCaption(params) {
|
|
312
|
+
return this.call("editEphemeralMessageCaption", params);
|
|
313
|
+
}
|
|
314
|
+
editEphemeralMessageReplyMarkup(params) {
|
|
315
|
+
return this.call("editEphemeralMessageReplyMarkup", params);
|
|
316
|
+
}
|
|
317
|
+
deleteEphemeralMessage(params) {
|
|
318
|
+
return this.call("deleteEphemeralMessage", params);
|
|
319
|
+
}
|
|
320
|
+
// ----- Files -----
|
|
321
|
+
getFile(params) { return this.call("getFile", params); }
|
|
322
|
+
/** Convenience: resolve a file_id (or an already-fetched File) straight to a downloadable URL, calling getFile for you if needed. */
|
|
323
|
+
async getFileLink(fileIdOrFile) {
|
|
324
|
+
const file = typeof fileIdOrFile === "string" ? await this.getFile({ file_id: fileIdOrFile }) : fileIdOrFile;
|
|
325
|
+
if (!file.file_path)
|
|
326
|
+
throw new Error("tgplus: file_path missing on File — Telegram may not have returned it yet");
|
|
327
|
+
return this.transport.getFileDownloadUrl(file.file_path);
|
|
328
|
+
}
|
|
329
|
+
getUserProfilePhotos(params) {
|
|
330
|
+
return this.call("getUserProfilePhotos", params);
|
|
331
|
+
}
|
|
332
|
+
/** Bot API 9.4+ */
|
|
333
|
+
getUserProfileAudios(params) {
|
|
334
|
+
return this.call("getUserProfileAudios", params);
|
|
335
|
+
}
|
|
336
|
+
// ----- Chat administration -----
|
|
337
|
+
banChatMember(params) { return this.call("banChatMember", params); }
|
|
338
|
+
unbanChatMember(params) { return this.call("unbanChatMember", params); }
|
|
339
|
+
restrictChatMember(params) { return this.call("restrictChatMember", params); }
|
|
340
|
+
promoteChatMember(params) { return this.call("promoteChatMember", params); }
|
|
341
|
+
setChatAdministratorCustomTitle(params) { return this.call("setChatAdministratorCustomTitle", params); }
|
|
342
|
+
/** Bot API 9.5+: set a member's tag, in chats that have tags enabled. */
|
|
343
|
+
setChatMemberTag(params) { return this.call("setChatMemberTag", params); }
|
|
344
|
+
banChatSenderChat(params) { return this.call("banChatSenderChat", params); }
|
|
345
|
+
unbanChatSenderChat(params) { return this.call("unbanChatSenderChat", params); }
|
|
346
|
+
setChatPermissions(params) { return this.call("setChatPermissions", params); }
|
|
347
|
+
exportChatInviteLink(params) { return this.call("exportChatInviteLink", params); }
|
|
348
|
+
createChatInviteLink(params) { return this.call("createChatInviteLink", params); }
|
|
349
|
+
editChatInviteLink(params) { return this.call("editChatInviteLink", params); }
|
|
350
|
+
revokeChatInviteLink(params) { return this.call("revokeChatInviteLink", params); }
|
|
351
|
+
approveChatJoinRequest(params) { return this.call("approveChatJoinRequest", params); }
|
|
352
|
+
declineChatJoinRequest(params) { return this.call("declineChatJoinRequest", params); }
|
|
353
|
+
/** Bot API 10.1+: respond to a join request raised as a query. */
|
|
354
|
+
answerChatJoinRequestQuery(params) { return this.call("answerChatJoinRequestQuery", params); }
|
|
355
|
+
/** Bot API 10.1+: open a Web App from a chat join request to let the user complete additional steps before approval. */
|
|
356
|
+
sendChatJoinRequestWebApp(params) { return this.call("sendChatJoinRequestWebApp", params); }
|
|
357
|
+
setChatPhoto(params) { return this.call("setChatPhoto", params); }
|
|
358
|
+
deleteChatPhoto(params) { return this.call("deleteChatPhoto", params); }
|
|
359
|
+
setChatTitle(params) { return this.call("setChatTitle", params); }
|
|
360
|
+
setChatDescription(params) { return this.call("setChatDescription", params); }
|
|
361
|
+
pinChatMessage(params) { return this.call("pinChatMessage", params); }
|
|
362
|
+
unpinChatMessage(params) { return this.call("unpinChatMessage", params); }
|
|
363
|
+
unpinAllChatMessages(params) { return this.call("unpinAllChatMessages", params); }
|
|
364
|
+
leaveChat(params) { return this.call("leaveChat", params); }
|
|
365
|
+
getChat(params) { return this.call("getChat", params); }
|
|
366
|
+
getChatAdministrators(params) { return this.call("getChatAdministrators", params); }
|
|
367
|
+
getChatMemberCount(params) { return this.call("getChatMemberCount", params); }
|
|
368
|
+
getChatMember(params) { return this.call("getChatMember", params); }
|
|
369
|
+
setChatStickerSet(params) { return this.call("setChatStickerSet", params); }
|
|
370
|
+
deleteChatStickerSet(params) { return this.call("deleteChatStickerSet", params); }
|
|
371
|
+
/** React to a message with emoji/custom-emoji/paid reactions (Bot API 7.0+). */
|
|
372
|
+
setMessageReaction(params) { return this.call("setMessageReaction", params); }
|
|
373
|
+
/** Bot API 10.0+ */
|
|
374
|
+
deleteAllMessageReactions(params) { return this.call("deleteAllMessageReactions", params); }
|
|
375
|
+
deleteMessageReaction(params) { return this.call("deleteMessageReaction", params); }
|
|
376
|
+
getUserChatBoosts(params) { return this.call("getUserChatBoosts", params); }
|
|
377
|
+
// ----- Forum topics -----
|
|
378
|
+
getForumTopicIconStickers() { return this.call("getForumTopicIconStickers"); }
|
|
379
|
+
createForumTopic(params) { return this.call("createForumTopic", params); }
|
|
380
|
+
editForumTopic(params) { return this.call("editForumTopic", params); }
|
|
381
|
+
closeForumTopic(params) { return this.call("closeForumTopic", params); }
|
|
382
|
+
reopenForumTopic(params) { return this.call("reopenForumTopic", params); }
|
|
383
|
+
deleteForumTopic(params) { return this.call("deleteForumTopic", params); }
|
|
384
|
+
unpinAllForumTopicMessages(params) { return this.call("unpinAllForumTopicMessages", params); }
|
|
385
|
+
// The "General" topic (message_thread_id-less) has its own dedicated set of methods.
|
|
386
|
+
editGeneralForumTopic(params) { return this.call("editGeneralForumTopic", params); }
|
|
387
|
+
closeGeneralForumTopic(params) { return this.call("closeGeneralForumTopic", params); }
|
|
388
|
+
reopenGeneralForumTopic(params) { return this.call("reopenGeneralForumTopic", params); }
|
|
389
|
+
hideGeneralForumTopic(params) { return this.call("hideGeneralForumTopic", params); }
|
|
390
|
+
unhideGeneralForumTopic(params) { return this.call("unhideGeneralForumTopic", params); }
|
|
391
|
+
unpinAllGeneralForumTopicMessages(params) { return this.call("unpinAllGeneralForumTopicMessages", params); }
|
|
392
|
+
// ----- Bot profile / commands / menu -----
|
|
393
|
+
setMyCommands(params) { return this.call("setMyCommands", params); }
|
|
394
|
+
deleteMyCommands(params = {}) { return this.call("deleteMyCommands", params); }
|
|
395
|
+
getMyCommands(params = {}) { return this.call("getMyCommands", params); }
|
|
396
|
+
setChatMenuButton(params = {}) { return this.call("setChatMenuButton", params); }
|
|
397
|
+
getChatMenuButton(params = {}) { return this.call("getChatMenuButton", params); }
|
|
398
|
+
setMyDefaultAdministratorRights(params = {}) { return this.call("setMyDefaultAdministratorRights", params); }
|
|
399
|
+
getMyDefaultAdministratorRights(params = {}) { return this.call("getMyDefaultAdministratorRights", params); }
|
|
400
|
+
setMyName(params = {}) { return this.call("setMyName", params); }
|
|
401
|
+
getMyName(params = {}) { return this.call("getMyName", params); }
|
|
402
|
+
setMyDescription(params = {}) { return this.call("setMyDescription", params); }
|
|
403
|
+
getMyDescription(params = {}) { return this.call("getMyDescription", params); }
|
|
404
|
+
setMyShortDescription(params = {}) { return this.call("setMyShortDescription", params); }
|
|
405
|
+
getMyShortDescription(params = {}) { return this.call("getMyShortDescription", params); }
|
|
406
|
+
/** Bot API 9.6+ */
|
|
407
|
+
setMyProfilePhoto(params) { return this.call("setMyProfilePhoto", params); }
|
|
408
|
+
/** Bot API 8.0+: change a user's emoji status, if they've granted the bot permission via a Mini App. */
|
|
409
|
+
setUserEmojiStatus(params) { return this.call("setUserEmojiStatus", params); }
|
|
410
|
+
removeMyProfilePhoto() { return this.call("removeMyProfilePhoto"); }
|
|
411
|
+
/** Telegram Passport: report validation errors on a user's submitted Passport data. */
|
|
412
|
+
setPassportDataErrors(params) { return this.call("setPassportDataErrors", params); }
|
|
413
|
+
// ----- Callback / inline queries -----
|
|
414
|
+
answerCallbackQuery(params) { return this.call("answerCallbackQuery", params); }
|
|
415
|
+
/** Same endpoint as answerCallbackQuery, but for opening a game's URL from a callback query. */
|
|
416
|
+
answerGameQuery(params) { return this.call("answerCallbackQuery", params); }
|
|
417
|
+
answerInlineQuery(params) { return this.call("answerInlineQuery", params); }
|
|
418
|
+
/** Set the result of an interaction with a Web App and send its corresponding message to the chat. */
|
|
419
|
+
answerWebAppQuery(params) { return this.call("answerWebAppQuery", params); }
|
|
420
|
+
/** Bot API 8.0+: let a Mini App hand a pre-built inline result to the user to share, without leaving the app. */
|
|
421
|
+
savePreparedInlineMessage(params) {
|
|
422
|
+
return this.call("savePreparedInlineMessage", params);
|
|
423
|
+
}
|
|
424
|
+
/** Bot API 9.6+: prepares a keyboard button that a Mini App can show to let the user request creating a managed bot — distinct from savePreparedInlineMessage above. */
|
|
425
|
+
savePreparedKeyboardButton(params) {
|
|
426
|
+
return this.call("savePreparedKeyboardButton", params);
|
|
427
|
+
}
|
|
428
|
+
// ----- Payments -----
|
|
429
|
+
sendInvoice(params) {
|
|
430
|
+
return this.call("sendInvoice", params);
|
|
431
|
+
}
|
|
432
|
+
createInvoiceLink(params) {
|
|
433
|
+
return this.call("createInvoiceLink", params);
|
|
434
|
+
}
|
|
435
|
+
answerShippingQuery(params) { return this.call("answerShippingQuery", params); }
|
|
436
|
+
answerPreCheckoutQuery(params) { return this.call("answerPreCheckoutQuery", params); }
|
|
437
|
+
// ----- Stickers -----
|
|
438
|
+
getStickerSet(params) { return this.call("getStickerSet", params); }
|
|
439
|
+
getCustomEmojiStickers(params) { return this.call("getCustomEmojiStickers", params); }
|
|
440
|
+
uploadStickerFile(params) { return this.call("uploadStickerFile", params); }
|
|
441
|
+
createNewStickerSet(params) { return this.call("createNewStickerSet", params); }
|
|
442
|
+
addStickerToSet(params) { return this.call("addStickerToSet", params); }
|
|
443
|
+
setStickerPositionInSet(params) { return this.call("setStickerPositionInSet", params); }
|
|
444
|
+
deleteStickerFromSet(params) { return this.call("deleteStickerFromSet", params); }
|
|
445
|
+
setStickerEmojiList(params) { return this.call("setStickerEmojiList", params); }
|
|
446
|
+
setStickerKeywords(params) { return this.call("setStickerKeywords", params); }
|
|
447
|
+
setStickerMaskPosition(params) { return this.call("setStickerMaskPosition", params); }
|
|
448
|
+
setStickerSetTitle(params) { return this.call("setStickerSetTitle", params); }
|
|
449
|
+
setStickerSetThumbnail(params) { return this.call("setStickerSetThumbnail", params); }
|
|
450
|
+
setCustomEmojiStickerSetThumbnail(params) { return this.call("setCustomEmojiStickerSetThumbnail", params); }
|
|
451
|
+
deleteStickerSet(params) { return this.call("deleteStickerSet", params); }
|
|
452
|
+
// ----- Games -----
|
|
453
|
+
sendGame(params) { return this.call("sendGame", params); }
|
|
454
|
+
setGameScore(params) { return this.call("setGameScore", params); }
|
|
455
|
+
getGameHighScores(params) { return this.call("getGameHighScores", params); }
|
|
456
|
+
// ----- Checklists (Bot API 9.1) — sent/edited on behalf of a business account only -----
|
|
457
|
+
sendChecklist(params) {
|
|
458
|
+
return this.call("sendChecklist", params);
|
|
459
|
+
}
|
|
460
|
+
editMessageChecklist(params) {
|
|
461
|
+
return this.call("editMessageChecklist", params);
|
|
462
|
+
}
|
|
463
|
+
// ----- Business accounts -----
|
|
464
|
+
getBusinessConnection(params) { return this.call("getBusinessConnection", params); }
|
|
465
|
+
readBusinessMessage(params) { return this.call("readBusinessMessage", params); }
|
|
466
|
+
deleteBusinessMessages(params) { return this.call("deleteBusinessMessages", params); }
|
|
467
|
+
setBusinessAccountName(params) { return this.call("setBusinessAccountName", params); }
|
|
468
|
+
setBusinessAccountUsername(params) { return this.call("setBusinessAccountUsername", params); }
|
|
469
|
+
setBusinessAccountBio(params) { return this.call("setBusinessAccountBio", params); }
|
|
470
|
+
setBusinessAccountProfilePhoto(params) { return this.call("setBusinessAccountProfilePhoto", params); }
|
|
471
|
+
removeBusinessAccountProfilePhoto(params) { return this.call("removeBusinessAccountProfilePhoto", params); }
|
|
472
|
+
setBusinessAccountGiftSettings(params) { return this.call("setBusinessAccountGiftSettings", params); }
|
|
473
|
+
getBusinessAccountStarBalance(params) { return this.call("getBusinessAccountStarBalance", params); }
|
|
474
|
+
transferBusinessAccountStars(params) { return this.call("transferBusinessAccountStars", params); }
|
|
475
|
+
getBusinessAccountGifts(params) {
|
|
476
|
+
return this.call("getBusinessAccountGifts", params);
|
|
477
|
+
}
|
|
478
|
+
/** Bot API 9.3+ */
|
|
479
|
+
getUserGifts(params) {
|
|
480
|
+
return this.call("getUserGifts", params);
|
|
481
|
+
}
|
|
482
|
+
getChatGifts(params) {
|
|
483
|
+
return this.call("getChatGifts", params);
|
|
484
|
+
}
|
|
485
|
+
convertGiftToStars(params) { return this.call("convertGiftToStars", params); }
|
|
486
|
+
upgradeGift(params) { return this.call("upgradeGift", params); }
|
|
487
|
+
transferGift(params) { return this.call("transferGift", params); }
|
|
488
|
+
postStory(params) { return this.call("postStory", params); }
|
|
489
|
+
editStory(params) { return this.call("editStory", params); }
|
|
490
|
+
deleteStory(params) { return this.call("deleteStory", params); }
|
|
491
|
+
/** Bot API 9.x+: repost a story across different business accounts the bot manages. */
|
|
492
|
+
repostStory(params) { return this.call("repostStory", params); }
|
|
493
|
+
// ----- Verification (Bot API 8.2+) -----
|
|
494
|
+
verifyUser(params) { return this.call("verifyUser", params); }
|
|
495
|
+
verifyChat(params) { return this.call("verifyChat", params); }
|
|
496
|
+
removeUserVerification(params) { return this.call("removeUserVerification", params); }
|
|
497
|
+
removeChatVerification(params) { return this.call("removeChatVerification", params); }
|
|
498
|
+
// ----- Gifts (Bot API 8.0+) -----
|
|
499
|
+
getAvailableGifts() { return this.call("getAvailableGifts"); }
|
|
500
|
+
/** Send a gift to a user or channel chat (exactly one of user_id/chat_id). Can't be converted to Stars by the receiver. */
|
|
501
|
+
sendGift(params) {
|
|
502
|
+
return this.call("sendGift", params);
|
|
503
|
+
}
|
|
504
|
+
giftPremiumSubscription(params) {
|
|
505
|
+
return this.call("giftPremiumSubscription", params);
|
|
506
|
+
}
|
|
507
|
+
// ----- Stars & Payments transactions (Bot API 7.4+) -----
|
|
508
|
+
getStarTransactions(params = {}) { return this.call("getStarTransactions", params); }
|
|
509
|
+
/** Bot API 9.3+: the bot's own Stars balance. */
|
|
510
|
+
getMyStarBalance() { return this.call("getMyStarBalance"); }
|
|
511
|
+
refundStarPayment(params) { return this.call("refundStarPayment", params); }
|
|
512
|
+
editUserStarSubscription(params) { return this.call("editUserStarSubscription", params); }
|
|
513
|
+
// ----- Suggested Posts / Direct Messages in Channels (Bot API 9.2+) -----
|
|
514
|
+
approveSuggestedPost(params) { return this.call("approveSuggestedPost", params); }
|
|
515
|
+
declineSuggestedPost(params) { return this.call("declineSuggestedPost", params); }
|
|
516
|
+
// ----- Guest mode (Bot API 10.0+) — bots being mentioned/queried by users they have no direct relationship with -----
|
|
517
|
+
/** Respond to a guest_message update, matching the shape of answerWebAppQuery. */
|
|
518
|
+
answerGuestQuery(params) { return this.call("answerGuestQuery", params); }
|
|
519
|
+
/** Retrieve the token of a bot your bot manages, after it's created via the newbot deep link flow. */
|
|
520
|
+
getManagedBotToken(params) { return this.call("getManagedBotToken", params); }
|
|
521
|
+
replaceManagedBotToken(params) { return this.call("replaceManagedBotToken", params); }
|
|
522
|
+
/** Bot API 10.0+ */
|
|
523
|
+
getManagedBotAccessSettings(params) { return this.call("getManagedBotAccessSettings", params); }
|
|
524
|
+
setManagedBotAccessSettings(params) { return this.call("setManagedBotAccessSettings", params); }
|
|
525
|
+
/** Bot API 10.0+: fetch messages from a user's personal chat (e.g. to display in a Mini App). */
|
|
526
|
+
getUserPersonalChatMessages(params) { return this.call("getUserPersonalChatMessages", params); }
|
|
527
|
+
}
|
|
528
|
+
exports.Api = Api;
|
|
529
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|