@codebam/cf-workers-telegram-bot 9.3.3 → 9.4.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 CHANGED
@@ -6,8 +6,7 @@ CF Workers Telegram Bot
6
6
  </h3>
7
7
 
8
8
  <h6 align="center">
9
- <a href="https://codebam.github.io/cf-workers-telegram-bot/">Docs</a>
10
- <a href="https://github.com/codebam/cf-workers-telegram-bot/wiki">Wiki</a>
9
+ <a href="https://cf-workers-telegram-bot.codebam.ca">Docs</a>
11
10
  </h6>
12
11
 
13
12
  <p align="center">
package/dist/main.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import TelegramBot from './telegram_bot.js';
2
2
  import TelegramExecutionContext from './telegram_execution_context.js';
3
3
  import Webhook from './webhook.js';
4
- import TelegramApi from './telegram_api.js';
4
+ import TelegramApi, { TelegramApiBaseParams, SendMessageParams, SendMessageDraftParams, SendPhotoParams, SendVideoParams, SendChatActionParams, AnswerCallbackParams, AnswerInlineParams, AnswerGuestParams, SendInvoiceParams, AnswerPreCheckoutParams, TelegramApiParams } from './telegram_api.js';
5
5
  import TelegramCommand from './types/TelegramCommand.js';
6
6
  import TelegramFrom from './types/TelegramFrom.js';
7
7
  import TelegramChat from './types/TelegramChat.js';
@@ -18,6 +18,12 @@ import TelegramInlineQueryType from './types/TelegramInlineQueryType.js';
18
18
  import TelegramInlineQueryResult from './types/TelegramInlineQueryResult.js';
19
19
  import TelegramInlineQueryResultPhoto from './types/TelegramInlineQueryResultPhoto.js';
20
20
  import TelegramInlineQueryResultArticle from './types/TelegramInlineQueryResultArticle.js';
21
+ import TelegramInlineQueryResultVideo from './types/TelegramInlineQueryResultVideo.js';
21
22
  import ChatPermissions from './types/ChatPermissions.js';
23
+ import TelegramBusinessMessage from './types/TelegramBusinessMessage.js';
24
+ import TelegramCallbackQuery from './types/TelegramCallbackQuery.js';
25
+ import TelegramPreCheckoutQuery from './types/TelegramPreCheckoutQuery.js';
26
+ import TelegramDocument from './types/TelegramDocument.js';
27
+ import TelegramSuccessfulPayment from './types/TelegramSuccessfulPayment.js';
22
28
  export default TelegramBot;
23
- export { TelegramBot, TelegramExecutionContext, Webhook, TelegramApi, TelegramCommand, TelegramFrom, TelegramChat, TelegramUser, TelegramMessageEntity, TelegramPhotoSize, TelegramMessage, TelegramGuestMessage, TelegramInputMessageContent, TelegramInlineQuery, TelegramUpdate, PartialTelegramUpdate, TelegramInlineQueryType, TelegramInlineQueryResult, TelegramInlineQueryResultPhoto, TelegramInlineQueryResultArticle, ChatPermissions, };
29
+ export { TelegramBot, TelegramExecutionContext, Webhook, TelegramApi, TelegramApiBaseParams, SendMessageParams, SendMessageDraftParams, SendPhotoParams, SendVideoParams, SendChatActionParams, AnswerCallbackParams, AnswerInlineParams, AnswerGuestParams, SendInvoiceParams, AnswerPreCheckoutParams, TelegramApiParams, TelegramCommand, TelegramFrom, TelegramChat, TelegramUser, TelegramMessageEntity, TelegramPhotoSize, TelegramMessage, TelegramGuestMessage, TelegramInputMessageContent, TelegramInlineQuery, TelegramUpdate, PartialTelegramUpdate, TelegramInlineQueryType, TelegramInlineQueryResult, TelegramInlineQueryResultPhoto, TelegramInlineQueryResultArticle, TelegramInlineQueryResultVideo, ChatPermissions, TelegramBusinessMessage, TelegramCallbackQuery, TelegramPreCheckoutQuery, TelegramDocument, TelegramSuccessfulPayment, };
package/dist/main.js CHANGED
@@ -6,5 +6,6 @@ import TelegramUpdate from './types/TelegramUpdate.js';
6
6
  import TelegramInlineQueryResult from './types/TelegramInlineQueryResult.js';
7
7
  import TelegramInlineQueryResultPhoto from './types/TelegramInlineQueryResultPhoto.js';
8
8
  import TelegramInlineQueryResultArticle from './types/TelegramInlineQueryResultArticle.js';
9
+ import TelegramInlineQueryResultVideo from './types/TelegramInlineQueryResultVideo.js';
9
10
  export default TelegramBot;
10
- export { TelegramBot, TelegramExecutionContext, Webhook, TelegramApi, TelegramUpdate, TelegramInlineQueryResult, TelegramInlineQueryResultPhoto, TelegramInlineQueryResultArticle, };
11
+ export { TelegramBot, TelegramExecutionContext, Webhook, TelegramApi, TelegramUpdate, TelegramInlineQueryResult, TelegramInlineQueryResultPhoto, TelegramInlineQueryResultArticle, TelegramInlineQueryResultVideo, };
@@ -2,12 +2,12 @@ import TelegramInlineQueryResultArticle from './types/TelegramInlineQueryResultA
2
2
  import TelegramInlineQueryResultPhoto from './types/TelegramInlineQueryResultPhoto.js';
3
3
  import TelegramInlineQueryResultVideo from './types/TelegramInlineQueryResultVideo.js';
4
4
  /** Interface for common Telegram API parameters */
5
- interface TelegramApiBaseParams {
5
+ export interface TelegramApiBaseParams {
6
6
  chat_id: number | string;
7
7
  business_connection_id?: string | number;
8
8
  }
9
9
  /** Interface for message parameters */
10
- interface SendMessageParams extends TelegramApiBaseParams {
10
+ export interface SendMessageParams extends TelegramApiBaseParams {
11
11
  text: string;
12
12
  parse_mode: string;
13
13
  reply_to_message_id?: number | string;
@@ -17,11 +17,11 @@ interface SendMessageParams extends TelegramApiBaseParams {
17
17
  reply_markup?: object;
18
18
  }
19
19
  /** Interface for message draft parameters */
20
- interface SendMessageDraftParams extends SendMessageParams {
20
+ export interface SendMessageDraftParams extends SendMessageParams {
21
21
  draft_id: number;
22
22
  }
23
23
  /** Interface for photo parameters */
24
- interface SendPhotoParams extends TelegramApiBaseParams {
24
+ export interface SendPhotoParams extends TelegramApiBaseParams {
25
25
  photo: string;
26
26
  caption?: string;
27
27
  parse_mode?: string;
@@ -31,7 +31,7 @@ interface SendPhotoParams extends TelegramApiBaseParams {
31
31
  reply_markup?: object;
32
32
  }
33
33
  /** Interface for video parameters */
34
- interface SendVideoParams extends TelegramApiBaseParams {
34
+ export interface SendVideoParams extends TelegramApiBaseParams {
35
35
  video: string;
36
36
  caption?: string;
37
37
  parse_mode?: string;
@@ -41,11 +41,11 @@ interface SendVideoParams extends TelegramApiBaseParams {
41
41
  reply_markup?: object;
42
42
  }
43
43
  /** Interface for chat action parameters */
44
- interface SendChatActionParams extends TelegramApiBaseParams {
44
+ export interface SendChatActionParams extends TelegramApiBaseParams {
45
45
  action: string;
46
46
  }
47
47
  /** Interface for callback query parameters */
48
- interface AnswerCallbackParams {
48
+ export interface AnswerCallbackParams {
49
49
  callback_query_id: number | string;
50
50
  text?: string;
51
51
  show_alert?: boolean;
@@ -53,7 +53,7 @@ interface AnswerCallbackParams {
53
53
  cache_time?: number;
54
54
  }
55
55
  /** Interface for inline query parameters */
56
- interface AnswerInlineParams {
56
+ export interface AnswerInlineParams {
57
57
  inline_query_id: number | string;
58
58
  results: TelegramInlineQueryResultArticle[] | TelegramInlineQueryResultPhoto[] | TelegramInlineQueryResultVideo[];
59
59
  cache_time?: number;
@@ -61,12 +61,12 @@ interface AnswerInlineParams {
61
61
  next_offset?: string;
62
62
  }
63
63
  /** Interface for guest query parameters */
64
- interface AnswerGuestParams {
64
+ export interface AnswerGuestParams {
65
65
  guest_query_id: string;
66
66
  result: TelegramInlineQueryResultArticle | TelegramInlineQueryResultPhoto | TelegramInlineQueryResultVideo;
67
67
  }
68
68
  /** Interface for invoice parameters */
69
- interface SendInvoiceParams extends TelegramApiBaseParams {
69
+ export interface SendInvoiceParams extends TelegramApiBaseParams {
70
70
  title: string;
71
71
  description: string;
72
72
  payload: string;
@@ -78,13 +78,13 @@ interface SendInvoiceParams extends TelegramApiBaseParams {
78
78
  }[];
79
79
  }
80
80
  /** Interface for pre-checkout query parameters */
81
- interface AnswerPreCheckoutParams {
81
+ export interface AnswerPreCheckoutParams {
82
82
  pre_checkout_query_id: string;
83
83
  ok: boolean;
84
84
  error_message?: string;
85
85
  }
86
86
  /** Type for all possible API parameters */
87
- type TelegramApiParams = SendMessageParams | SendPhotoParams | SendVideoParams | SendChatActionParams | AnswerCallbackParams | AnswerInlineParams | AnswerGuestParams | SendInvoiceParams | AnswerPreCheckoutParams | Record<string, unknown>;
87
+ export type TelegramApiParams = SendMessageParams | SendPhotoParams | SendVideoParams | SendChatActionParams | AnswerCallbackParams | AnswerInlineParams | AnswerGuestParams | SendInvoiceParams | AnswerPreCheckoutParams | Record<string, unknown>;
88
88
  /** Class representing the Telegram API and all its methods */
89
89
  export default class TelegramApi {
90
90
  /**
@@ -203,4 +203,3 @@ export default class TelegramApi {
203
203
  */
204
204
  answerPreCheckoutQuery(botApi: string, data: AnswerPreCheckoutParams): Promise<Response>;
205
205
  }
206
- export {};
@@ -26,6 +26,9 @@ export default class TelegramApi {
26
26
  */
27
27
  async fetchAndLog(url, slug, data) {
28
28
  const response = await fetch(url);
29
+ if (response.status !== 200) {
30
+ throw new Error(`Telegram API error: ${String(response.status)} ${response.statusText}`);
31
+ }
29
32
  const cloned = response.clone();
30
33
  try {
31
34
  const json = await cloned.json();
@@ -59,24 +62,19 @@ export default class TelegramApi {
59
62
  */
60
63
  async getFile(botApi, data, token) {
61
64
  if (!data.file_id || data.file_id === '') {
62
- return new Response('No file_id provided', { status: 400 });
65
+ throw new Error('No file_id provided');
63
66
  }
64
- try {
65
- const url = this.getApiUrl(botApi, 'getFile', data);
66
- const response = await this.fetchAndLog(url, 'getFile', data);
67
- if (!response.ok) {
68
- return new Response(`API error: ${String(response.status)} ${response.statusText}`, { status: response.status });
69
- }
70
- const json = await response.json();
71
- if (!json.ok || !json.result?.file_path) {
72
- return new Response(json.description ?? 'Failed to get file path', { status: 400 });
73
- }
74
- return await fetch(`https://api.telegram.org/file/bot${token}/${json.result.file_path}`);
67
+ const url = this.getApiUrl(botApi, 'getFile', data);
68
+ const response = await this.fetchAndLog(url, 'getFile', data);
69
+ const json = await response.json();
70
+ if (!json.ok || !json.result?.file_path) {
71
+ throw new Error(json.description ?? 'Failed to get file path');
75
72
  }
76
- catch (e) {
77
- console.error(`Error in getFile: ${e instanceof Error ? e.message : String(e)}`);
78
- return new Response(`Error retrieving file: ${e instanceof Error ? e.message : String(e)}`, { status: 500 });
73
+ const fileResponse = await fetch(`https://api.telegram.org/file/bot${token}/${json.result.file_path}`);
74
+ if (fileResponse.status !== 200) {
75
+ throw new Error(`Telegram File API error: ${String(fileResponse.status)} ${fileResponse.statusText}`);
79
76
  }
77
+ return fileResponse;
80
78
  }
81
79
  /**
82
80
  * Send a message to a given botApi
@@ -7,3 +7,4 @@ export interface TelegramDocument {
7
7
  file_unique_id: string;
8
8
  file_size: number;
9
9
  }
10
+ export default TelegramDocument;
package/dist/webhook.js CHANGED
@@ -35,6 +35,9 @@ export default class Webhook {
35
35
  });
36
36
  try {
37
37
  const response = await fetch(`${url.toString()}?${params.toString()}`);
38
+ if (response.status !== 200) {
39
+ throw new Error(`Telegram API error (setWebhook): ${String(response.status)} ${response.statusText}`);
40
+ }
38
41
  const cloned = response.clone();
39
42
  try {
40
43
  const json = await cloned.json();
@@ -65,6 +68,9 @@ export default class Webhook {
65
68
  const url = new URL(`${baseUrl}${baseUrl.endsWith('/') ? '' : '/'}deleteWebhook`);
66
69
  try {
67
70
  const response = await fetch(url.toString());
71
+ if (response.status !== 200) {
72
+ throw new Error(`Telegram API error (deleteWebhook): ${String(response.status)} ${response.statusText}`);
73
+ }
68
74
  const cloned = response.clone();
69
75
  try {
70
76
  const json = await cloned.json();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codebam/cf-workers-telegram-bot",
3
- "version": "9.3.3",
3
+ "version": "9.4.1",
4
4
  "description": "serverless telegram bot on cf workers",
5
5
  "main": "./dist/main.js",
6
6
  "module": "./dist/main.js",
@@ -48,5 +48,10 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "typedoc": "0.28.19"
51
+ },
52
+ "typedocOptions": {
53
+ "entryPoints": [
54
+ "./src/main.ts"
55
+ ]
51
56
  }
52
57
  }