chz-telegram-bot 0.1.20 → 0.2.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.
Files changed (38) hide show
  1. package/builtin/helpAction.ts +1 -1
  2. package/bun.lock +307 -0
  3. package/dist/builtin/helpAction.js +1 -1
  4. package/dist/dtos/responses/imageMessage.d.ts +5 -4
  5. package/dist/dtos/responses/imageMessage.d.ts.map +1 -1
  6. package/dist/dtos/responses/imageMessage.js +2 -2
  7. package/dist/dtos/responses/textMessage.d.ts +5 -4
  8. package/dist/dtos/responses/textMessage.d.ts.map +1 -1
  9. package/dist/dtos/responses/textMessage.js +2 -2
  10. package/dist/dtos/responses/videoMessage.d.ts +5 -4
  11. package/dist/dtos/responses/videoMessage.d.ts.map +1 -1
  12. package/dist/dtos/responses/videoMessage.js +2 -2
  13. package/dist/entities/botInstance.d.ts +2 -0
  14. package/dist/entities/botInstance.d.ts.map +1 -1
  15. package/dist/entities/botInstance.js +23 -2
  16. package/dist/entities/context/chatContext.d.ts +25 -21
  17. package/dist/entities/context/chatContext.d.ts.map +1 -1
  18. package/dist/entities/context/chatContext.js +32 -38
  19. package/dist/entities/context/messageContext.d.ts +60 -28
  20. package/dist/entities/context/messageContext.d.ts.map +1 -1
  21. package/dist/entities/context/messageContext.js +79 -49
  22. package/dist/services/telegramApi.d.ts.map +1 -1
  23. package/dist/services/telegramApi.js +27 -11
  24. package/dist/types/replyInfo.d.ts +6 -0
  25. package/dist/types/replyInfo.d.ts.map +1 -0
  26. package/dist/types/replyInfo.js +10 -0
  27. package/dist/types/response.d.ts +3 -2
  28. package/dist/types/response.d.ts.map +1 -1
  29. package/dtos/responses/imageMessage.ts +6 -5
  30. package/dtos/responses/textMessage.ts +6 -5
  31. package/dtos/responses/videoMessage.ts +6 -5
  32. package/entities/botInstance.ts +44 -3
  33. package/entities/context/chatContext.ts +58 -72
  34. package/entities/context/messageContext.ts +133 -88
  35. package/package.json +30 -29
  36. package/services/telegramApi.ts +30 -14
  37. package/types/replyInfo.ts +9 -0
  38. package/types/response.ts +3 -2
@@ -1,6 +1,6 @@
1
1
  import { Message } from 'telegraf/types';
2
2
  import { IStorageClient } from '../types/storage';
3
- import { BotResponse, IReplyMessage } from '../types/response';
3
+ import { BotResponse, IReplyResponse } from '../types/response';
4
4
  import { Telegram } from 'telegraf/typings/telegram';
5
5
  import { ILogger } from '../types/logger';
6
6
  import { QueueItem, ResponseProcessingQueue } from './responseProcessingQueue';
@@ -60,7 +60,7 @@ export class TelegramApiService {
60
60
  }
61
61
 
62
62
  private async pinIfShould<T>(
63
- response: IReplyMessage<T>,
63
+ response: IReplyResponse<T>,
64
64
  sentMessage: Message
65
65
  ) {
66
66
  if (response.shouldPin) {
@@ -89,11 +89,17 @@ export class TelegramApiService {
89
89
  response.chatInfo.id,
90
90
  response.content,
91
91
  {
92
- reply_to_message_id: response.replyId,
92
+ reply_parameters: response.replyInfo
93
+ ? {
94
+ message_id: response.replyInfo.id,
95
+ quote: response.replyInfo.quote
96
+ }
97
+ : undefined,
93
98
  parse_mode: 'MarkdownV2',
94
- disable_web_page_preview: response.disableWebPreview
95
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
- } as any
99
+ link_preview_options: {
100
+ is_disabled: response.disableWebPreview
101
+ }
102
+ }
97
103
  );
98
104
 
99
105
  await this.pinIfShould(response, sentMessage);
@@ -102,10 +108,15 @@ export class TelegramApiService {
102
108
  sentMessage = await this.telegram.sendPhoto(
103
109
  response.chatInfo.id,
104
110
  response.content,
105
- response.replyId
106
- ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
- ({ reply_to_message_id: response.replyId } as any)
108
- : undefined
111
+ {
112
+ reply_parameters: response.replyInfo
113
+ ? {
114
+ message_id: response.replyInfo.id,
115
+ quote: response.replyInfo.quote
116
+ }
117
+ : undefined,
118
+ parse_mode: 'MarkdownV2'
119
+ }
109
120
  );
110
121
 
111
122
  await this.pinIfShould(response, sentMessage);
@@ -114,10 +125,15 @@ export class TelegramApiService {
114
125
  sentMessage = await this.telegram.sendVideo(
115
126
  response.chatInfo.id,
116
127
  response.content,
117
- response.replyId
118
- ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
119
- ({ reply_to_message_id: response.replyId } as any)
120
- : undefined
128
+ {
129
+ reply_parameters: response.replyInfo
130
+ ? {
131
+ message_id: response.replyInfo.id,
132
+ quote: response.replyInfo.quote
133
+ }
134
+ : undefined,
135
+ parse_mode: 'MarkdownV2'
136
+ }
121
137
  );
122
138
 
123
139
  await this.pinIfShould(response, sentMessage);
@@ -0,0 +1,9 @@
1
+ export class ReplyInfo {
2
+ readonly id: number;
3
+ readonly quote: string | undefined;
4
+
5
+ constructor(id: number, quote?: string) {
6
+ this.id = id;
7
+ this.quote = quote;
8
+ }
9
+ }
package/types/response.ts CHANGED
@@ -7,6 +7,7 @@ import { TextMessage } from '../dtos/responses/textMessage';
7
7
  import { UnpinResponse } from '../dtos/responses/unpin';
8
8
  import { VideoMessage } from '../dtos/responses/videoMessage';
9
9
  import { IActionState } from './actionState';
10
+ import { ReplyInfo } from './replyInfo';
10
11
  import { IActionWithState } from './statefulAction';
11
12
  import { TraceId } from './trace';
12
13
 
@@ -38,9 +39,9 @@ export interface IChatResponse {
38
39
  readonly action: IActionWithState<IActionState>;
39
40
  }
40
41
 
41
- export interface IReplyMessage<TType> extends IChatResponse {
42
+ export interface IReplyResponse<TType> extends IChatResponse {
42
43
  readonly content: TType;
43
- readonly replyId: number | undefined;
44
+ readonly replyInfo: ReplyInfo | undefined;
44
45
  readonly disableWebPreview: boolean;
45
46
  readonly shouldPin: boolean;
46
47
  }