telegram-bot-api-nodejs 1.2.6 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.d.ts +30 -37
  2. package/index.js +37 -38
  3. package/package.json +3 -3
package/index.d.ts CHANGED
@@ -26,6 +26,16 @@ export interface SendMessageOptions extends SendBasicOptions {
26
26
  disable_web_page_preview?: boolean;
27
27
  entities?: MessageEntity[];
28
28
  }
29
+ export interface SendPhotoOptions extends SendBasicOptions {
30
+ photo: string;
31
+ caption?: string;
32
+ parse_mode?: ParseMode;
33
+ }
34
+ export interface SendAudioOptions extends SendBasicOptions {
35
+ audio: string;
36
+ caption?: string;
37
+ parse_mode?: ParseMode;
38
+ }
29
39
  export interface SendAnimationOptions extends SendBasicOptions {
30
40
  animation: string;
31
41
  parse_mode?: ParseMode;
@@ -36,6 +46,16 @@ export interface SendDocumentOptions extends SendBasicOptions {
36
46
  parse_mode?: ParseMode;
37
47
  caption?: string;
38
48
  }
49
+ export interface SendVideoOptions extends SendBasicOptions {
50
+ video: string;
51
+ caption?: string;
52
+ parse_mode?: ParseMode;
53
+ }
54
+ export interface SendVoiceOptions extends SendBasicOptions {
55
+ voice: string;
56
+ caption?: string;
57
+ parse_mode?: ParseMode;
58
+ }
39
59
  export interface SendMediaGroupOptions extends SendBasicOptions {
40
60
  media: Array<InputMediaAudio | InputMediaDocument | InputMediaPhoto | InputMediaVideo>;
41
61
  }
@@ -1082,44 +1102,13 @@ export declare function deleteMessage(token: string, payload: {
1082
1102
  chat_id: string | number;
1083
1103
  message_id: number;
1084
1104
  }, signal: AbortSignal): Promise<{}>;
1085
- export declare function sendPhoto(token: string, payload: SendBasicOptions & {
1086
- photo: string;
1087
- caption?: string;
1088
- parse_mode?: ParseMode;
1089
- }, signal: AbortSignal): Promise<Message>;
1090
- export declare function sendAudio(token: string, payload: SendBasicOptions & {
1091
- audio: string;
1092
- caption?: string;
1093
- parse_mode?: ParseMode;
1094
- }, signal: AbortSignal): Promise<Message>;
1095
- export declare function sendAnimation(token: string, payload: SendAnimationOptions, signal: AbortSignal): Promise<Message>;
1096
- /**
1097
- * @example
1098
- *
1099
- * const body = new FormData()
1100
- *
1101
- * body.append("chat_id", payload.chat_id)
1102
- * body.append("caption", payload.caption)
1103
- * body.append("document", payload.document, payload.documentName)
1104
- *
1105
- * if (payload.parse_mode) {
1106
- * body.append("parse_mode", payload.parse_mode)
1107
- * }
1108
- *
1109
- * sendDocument("token", payload)
1110
- */
1105
+ export declare function sendPhoto(token: string, payload: SendPhotoOptions | FormData, signal: AbortSignal): Promise<Message>;
1106
+ export declare function sendAudio(token: string, payload: SendAudioOptions | FormData, signal: AbortSignal): Promise<Message>;
1107
+ export declare function sendAnimation(token: string, payload: SendAnimationOptions | FormData, signal: AbortSignal): Promise<Message>;
1111
1108
  export declare function sendDocument(token: string, payload: SendDocumentOptions | FormData, signal: AbortSignal): Promise<Message>;
1112
- export declare function sendVideo(token: string, payload: SendBasicOptions & {
1113
- video: string;
1114
- caption?: string;
1115
- parse_mode?: ParseMode;
1116
- }, signal: AbortSignal): Promise<Message>;
1117
- export declare function sendVoice(token: string, payload: SendBasicOptions & {
1118
- voice: string;
1119
- caption?: string;
1120
- parse_mode?: ParseMode;
1121
- }, signal: AbortSignal): Promise<Message>;
1122
- export declare function sendMediaGroup(token: string, payload: SendMediaGroupOptions, signal: AbortSignal): Promise<Message[]>;
1109
+ export declare function sendVideo(token: string, payload: SendVideoOptions | FormData, signal: AbortSignal): Promise<Message>;
1110
+ export declare function sendVoice(token: string, payload: SendVoiceOptions | FormData, signal: AbortSignal): Promise<Message>;
1111
+ export declare function sendMediaGroup(token: string, payload: SendMediaGroupOptions | FormData, signal: AbortSignal): Promise<Message[]>;
1123
1112
  export declare function setMessageReaction(token: string, payload: {
1124
1113
  chat_id: string | number;
1125
1114
  message_id: number;
@@ -1155,6 +1144,8 @@ export declare function getBusinessConnection(token: string, payload: {
1155
1144
  * Parsers
1156
1145
  */
1157
1146
  export declare function parseUpdate(update: any): Update;
1147
+ export declare function prepareFormBody(payload: FormData | Object): BodyInit | string;
1148
+ export declare function prepareFormHeaders(forPayload: FormData | Object): HeadersInit | undefined;
1158
1149
  export declare function parseResponse<T>(response: Response): Promise<T>;
1159
1150
  export declare class TelegramError extends Error {
1160
1151
  status: number;
@@ -1185,12 +1176,14 @@ export declare function isMessageToEditNotFoundError(err: unknown): boolean;
1185
1176
  export declare function isMessageToDeleteNotFoundError(err: unknown): boolean;
1186
1177
  export declare function isMessageNotModifiedError(err: unknown): boolean;
1187
1178
  export declare function isWrongTypeOfTheWebPageContentError(err: unknown): boolean;
1179
+ export declare function isWebpageMediaEmptyError(err: unknown): boolean;
1188
1180
  export declare function isFailToGetHTTPURLContentError(err: unknown): boolean;
1189
1181
  export declare function isWrongFileIdentifierError(err: unknown): boolean;
1190
1182
  export declare function isInvalidFileUrlSpecifiedError(err: unknown): boolean;
1191
1183
  export declare function isMessageDeleteError(err: unknown): boolean;
1192
1184
  export declare function isBotNotMemberGroupChatError(err: unknown): boolean;
1193
1185
  export declare function isBusinessPeerUsageMissingError(err: unknown): boolean;
1186
+ export declare function isInvalidPhotoDimensionsError(err: unknown): boolean;
1194
1187
  export declare function parseRetryAfterTime(err: unknown): number;
1195
1188
  export declare function resolveNameFromMessageOrigin(messageOrigin: MessageOrigin): string;
1196
1189
  export declare function resolveChatName(chat: any): string;
package/index.js CHANGED
@@ -66,80 +66,56 @@ export function deleteMessage(token, payload, signal) {
66
66
  export function sendPhoto(token, payload, signal) {
67
67
  return fetch(`https://api.telegram.org/bot${token}/sendPhoto`, {
68
68
  method: "POST",
69
- body: JSON.stringify(payload),
70
- headers,
69
+ body: prepareFormBody(payload),
70
+ headers: prepareFormHeaders(payload),
71
71
  signal
72
72
  }).then(parseResponse);
73
73
  }
74
74
  export function sendAudio(token, payload, signal) {
75
75
  return fetch(`https://api.telegram.org/bot${token}/sendAudio`, {
76
76
  method: "POST",
77
- body: JSON.stringify(payload),
78
- headers,
77
+ body: prepareFormBody(payload),
78
+ headers: prepareFormHeaders(payload),
79
79
  signal
80
80
  }).then(parseResponse);
81
81
  }
82
82
  export function sendAnimation(token, payload, signal) {
83
83
  return fetch(`https://api.telegram.org/bot${token}/sendAnimation`, {
84
84
  method: "POST",
85
- body: JSON.stringify(payload),
86
- headers,
85
+ body: prepareFormBody(payload),
86
+ headers: prepareFormHeaders(payload),
87
87
  signal
88
88
  }).then(parseResponse);
89
89
  }
90
- /**
91
- * @example
92
- *
93
- * const body = new FormData()
94
- *
95
- * body.append("chat_id", payload.chat_id)
96
- * body.append("caption", payload.caption)
97
- * body.append("document", payload.document, payload.documentName)
98
- *
99
- * if (payload.parse_mode) {
100
- * body.append("parse_mode", payload.parse_mode)
101
- * }
102
- *
103
- * sendDocument("token", payload)
104
- */
105
90
  export function sendDocument(token, payload, signal) {
106
- let h = headers;
107
- let b = undefined;
108
- if (payload instanceof FormData) {
109
- h = undefined;
110
- b = payload;
111
- }
112
- else {
113
- b = JSON.stringify(payload);
114
- }
115
91
  return fetch(`https://api.telegram.org/bot${token}/sendDocument`, {
116
92
  method: "POST",
117
- body: b,
118
- headers: h,
93
+ body: prepareFormBody(payload),
94
+ headers: prepareFormHeaders(payload),
119
95
  signal
120
96
  }).then(parseResponse);
121
97
  }
122
98
  export function sendVideo(token, payload, signal) {
123
99
  return fetch(`https://api.telegram.org/bot${token}/sendVideo`, {
124
100
  method: "POST",
125
- body: JSON.stringify(payload),
126
- headers,
101
+ body: prepareFormBody(payload),
102
+ headers: prepareFormHeaders(payload),
127
103
  signal
128
104
  }).then(parseResponse);
129
105
  }
130
106
  export function sendVoice(token, payload, signal) {
131
107
  return fetch(`https://api.telegram.org/bot${token}/sendVoice`, {
132
108
  method: "POST",
133
- body: JSON.stringify(payload),
134
- headers,
109
+ body: prepareFormBody(payload),
110
+ headers: prepareFormHeaders(payload),
135
111
  signal
136
112
  }).then(parseResponse);
137
113
  }
138
114
  export function sendMediaGroup(token, payload, signal) {
139
115
  return fetch(`https://api.telegram.org/bot${token}/sendMediaGroup`, {
140
116
  method: "POST",
141
- body: JSON.stringify(payload),
142
- headers,
117
+ body: prepareFormBody(payload),
118
+ headers: prepareFormHeaders(payload),
143
119
  signal
144
120
  }).then(parseResponse);
145
121
  }
@@ -497,6 +473,21 @@ function parseReactionCount(reaction) {
497
473
  total_count: Number(reaction.total_count),
498
474
  };
499
475
  }
476
+ export function prepareFormBody(payload) {
477
+ if (payload instanceof FormData) {
478
+ return payload;
479
+ }
480
+ return JSON.stringify(payload);
481
+ }
482
+ export function prepareFormHeaders(forPayload) {
483
+ if (forPayload instanceof FormData) {
484
+ return undefined;
485
+ }
486
+ return {
487
+ "Accept": "application/json",
488
+ "Content-Type": "application/json",
489
+ };
490
+ }
500
491
  export function parseResponse(response) {
501
492
  return response.text().then(function (text) {
502
493
  let data;
@@ -616,6 +607,11 @@ export function isMessageNotModifiedError(err) {
616
607
  export function isWrongTypeOfTheWebPageContentError(err) {
617
608
  return err instanceof Error && err.message.includes("wrong type of the web page content");
618
609
  }
610
+ // Bad Request: failed to send message #1 with the error message "WEBPAGE_MEDIA_EMPTY"
611
+ export function isWebpageMediaEmptyError(err) {
612
+ return err instanceof Error
613
+ && /^Bad Request: failed to send message #\d+ with the error message "WEBPAGE_MEDIA_EMPTY"$/.test(err.message);
614
+ }
619
615
  // Bad Request: failed to get HTTP URL content
620
616
  export function isFailToGetHTTPURLContentError(err) {
621
617
  return err instanceof Error && err.message.includes("failed to get HTTP URL content");
@@ -638,6 +634,9 @@ export function isBotNotMemberGroupChatError(err) {
638
634
  export function isBusinessPeerUsageMissingError(err) {
639
635
  return err instanceof Error && err.message === "Bad Request: BUSINESS_PEER_USAGE_MISSING";
640
636
  }
637
+ export function isInvalidPhotoDimensionsError(err) {
638
+ return err instanceof Error && err.message.includes("PHOTO_INVALID_DIMENSIONS");
639
+ }
641
640
  export function parseRetryAfterTime(err) {
642
641
  if (!(err instanceof Error)) {
643
642
  throw new RangeError("`err` needs to be an Error");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telegram-bot-api-nodejs",
3
- "version": "1.2.6",
3
+ "version": "1.2.9",
4
4
  "description": "Telegram Bot API client for nodejs",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -25,9 +25,9 @@
25
25
  "author": "",
26
26
  "license": "ISC",
27
27
  "devDependencies": {
28
- "@types/node": "^25.0.9"
28
+ "@types/node": "^25.2.2"
29
29
  },
30
30
  "dependencies": {
31
- "@typescript/native-preview": "^7.0.0-dev.20260119.1"
31
+ "@typescript/native-preview": "^7.0.0-dev.20260208.1"
32
32
  }
33
33
  }