@mtkruto/node 0.0.998 → 0.0.999

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 (185) hide show
  1. package/esm/3_types.d.ts +39 -3
  2. package/esm/3_types.js +39 -3
  3. package/esm/4_constants.d.ts +1 -1
  4. package/esm/4_constants.js +1 -1
  5. package/esm/client/3_types.d.ts +1 -5
  6. package/esm/client/4_client.d.ts +18 -2
  7. package/esm/client/4_client.js +37 -21
  8. package/esm/connection/1_connection_web_socket.js +2 -1
  9. package/esm/types/0_bot_command.d.ts +4 -0
  10. package/esm/types/0_chat_id.d.ts +4 -0
  11. package/esm/types/0_chat_id.js +1 -0
  12. package/esm/types/0_chat_photo.js +1 -1
  13. package/esm/types/0_input_contact_message_content.d.ts +6 -0
  14. package/esm/types/0_input_contact_message_content.js +1 -0
  15. package/esm/types/0_input_location_message_content.d.ts +8 -0
  16. package/esm/types/0_input_location_message_content.js +1 -0
  17. package/esm/types/0_input_venue_message_content.d.ts +10 -0
  18. package/esm/types/0_input_venue_message_content.js +1 -0
  19. package/esm/types/0_labeled_price.d.ts +4 -0
  20. package/esm/types/0_labeled_price.js +1 -0
  21. package/esm/types/0_parse_mode.d.ts +1 -0
  22. package/esm/types/0_parse_mode.js +1 -0
  23. package/esm/types/0_thumbnail.js +1 -1
  24. package/esm/types/{!0_misc.d.ts → 1__getters.d.ts} +7 -0
  25. package/esm/types/1__getters.js +1 -0
  26. package/esm/types/1_bot_command_scope.d.ts +32 -0
  27. package/esm/types/1_bot_command_scope.js +27 -0
  28. package/esm/types/1_inline_query_result_button.d.ts +6 -0
  29. package/esm/types/1_inline_query_result_button.js +1 -0
  30. package/esm/types/1_input_invoice_message_content.d.ts +23 -0
  31. package/esm/types/1_input_invoice_message_content.js +1 -0
  32. package/esm/types/1_input_text_message_content.d.ts +8 -0
  33. package/esm/types/1_input_text_message_content.js +1 -0
  34. package/esm/types/1_photo.js +1 -1
  35. package/esm/types/2_game.js +1 -1
  36. package/{script/types/1_inline_keyboard_button.d.ts → esm/types/2_inline_keyboard_button.d.ts} +2 -2
  37. package/esm/types/2_inline_query.d.ts +1 -1
  38. package/esm/types/2_input_message_content.d.ts +6 -0
  39. package/esm/types/2_input_message_content.js +1 -0
  40. package/esm/types/{2_inline_keyboard_markup.d.ts → 3_inline_keyboard_markup.d.ts} +3 -2
  41. package/esm/types/{2_inline_keyboard_markup.js → 3_inline_keyboard_markup.js} +1 -1
  42. package/esm/types/3_message.d.ts +2 -2
  43. package/esm/types/3_message.js +2 -2
  44. package/esm/types/4_callback_query.d.ts +1 -1
  45. package/esm/types/4_inline_query_result_article.d.ts +15 -0
  46. package/esm/types/4_inline_query_result_article.js +1 -0
  47. package/esm/types/4_inline_query_result_audio.d.ts +17 -0
  48. package/esm/types/4_inline_query_result_audio.js +1 -0
  49. package/esm/types/4_inline_query_result_cached_audio.d.ts +14 -0
  50. package/esm/types/4_inline_query_result_cached_audio.js +1 -0
  51. package/esm/types/4_inline_query_result_cached_document.d.ts +15 -0
  52. package/esm/types/4_inline_query_result_cached_document.js +1 -0
  53. package/esm/types/4_inline_query_result_cached_gif.d.ts +15 -0
  54. package/esm/types/4_inline_query_result_cached_gif.js +1 -0
  55. package/esm/types/4_inline_query_result_cached_mpeg4_gif.d.ts +15 -0
  56. package/esm/types/4_inline_query_result_cached_mpeg4_gif.js +1 -0
  57. package/esm/types/4_inline_query_result_cached_photo.d.ts +16 -0
  58. package/esm/types/4_inline_query_result_cached_photo.js +1 -0
  59. package/esm/types/4_inline_query_result_cached_sticker.d.ts +9 -0
  60. package/esm/types/4_inline_query_result_cached_sticker.js +1 -0
  61. package/esm/types/4_inline_query_result_cached_video.d.ts +16 -0
  62. package/esm/types/4_inline_query_result_cached_video.js +1 -0
  63. package/esm/types/4_inline_query_result_cached_voice.d.ts +15 -0
  64. package/esm/types/4_inline_query_result_cached_voice.js +1 -0
  65. package/esm/types/4_inline_query_result_contact.d.ts +15 -0
  66. package/esm/types/4_inline_query_result_contact.js +1 -0
  67. package/esm/types/4_inline_query_result_document.d.ts +18 -0
  68. package/esm/types/4_inline_query_result_document.js +1 -0
  69. package/esm/types/4_inline_query_result_game.d.ts +7 -0
  70. package/esm/types/4_inline_query_result_game.js +1 -0
  71. package/esm/types/4_inline_query_result_gif.d.ts +20 -0
  72. package/esm/types/4_inline_query_result_gif.js +1 -0
  73. package/esm/types/4_inline_query_result_location.d.ts +18 -0
  74. package/esm/types/4_inline_query_result_location.js +1 -0
  75. package/esm/types/4_inline_query_result_mpeg4_gif.d.ts +20 -0
  76. package/esm/types/4_inline_query_result_mpeg4_gif.js +1 -0
  77. package/esm/types/4_inline_query_result_photo.d.ts +19 -0
  78. package/esm/types/4_inline_query_result_photo.js +1 -0
  79. package/esm/types/4_inline_query_result_venue.d.ts +19 -0
  80. package/esm/types/4_inline_query_result_venue.js +1 -0
  81. package/esm/types/4_inline_query_result_video.d.ts +21 -0
  82. package/esm/types/4_inline_query_result_video.js +1 -0
  83. package/esm/types/4_inline_query_result_voice.d.ts +16 -0
  84. package/esm/types/4_inline_query_result_voice.js +1 -0
  85. package/esm/types/4_reply_markup.d.ts +7 -0
  86. package/esm/types/4_reply_markup.js +22 -0
  87. package/esm/types/5_inline_query_result.d.ts +29 -0
  88. package/esm/types/5_inline_query_result.js +256 -0
  89. package/package.json +1 -1
  90. package/script/3_types.d.ts +39 -3
  91. package/script/3_types.js +39 -3
  92. package/script/4_constants.d.ts +1 -1
  93. package/script/4_constants.js +1 -1
  94. package/script/client/3_types.d.ts +1 -5
  95. package/script/client/4_client.d.ts +18 -2
  96. package/script/client/4_client.js +36 -20
  97. package/script/connection/1_connection_web_socket.js +2 -1
  98. package/script/types/0_bot_command.d.ts +4 -0
  99. package/script/types/0_chat_id.d.ts +4 -0
  100. package/script/types/0_chat_id.js +2 -0
  101. package/script/types/0_chat_photo.js +7 -7
  102. package/script/types/0_input_contact_message_content.d.ts +6 -0
  103. package/script/types/0_input_contact_message_content.js +2 -0
  104. package/script/types/0_input_location_message_content.d.ts +8 -0
  105. package/script/types/0_input_location_message_content.js +2 -0
  106. package/script/types/0_input_venue_message_content.d.ts +10 -0
  107. package/script/types/0_input_venue_message_content.js +2 -0
  108. package/script/types/0_labeled_price.d.ts +4 -0
  109. package/script/types/0_labeled_price.js +2 -0
  110. package/script/types/0_parse_mode.d.ts +1 -0
  111. package/script/types/0_parse_mode.js +2 -0
  112. package/script/types/0_thumbnail.js +5 -5
  113. package/script/types/{!0_misc.d.ts → 1__getters.d.ts} +7 -0
  114. package/script/types/1__getters.js +2 -0
  115. package/script/types/1_bot_command_scope.d.ts +32 -0
  116. package/script/types/1_bot_command_scope.js +31 -0
  117. package/script/types/1_inline_query_result_button.d.ts +6 -0
  118. package/script/types/1_inline_query_result_button.js +2 -0
  119. package/script/types/1_input_invoice_message_content.d.ts +23 -0
  120. package/script/types/1_input_invoice_message_content.js +2 -0
  121. package/script/types/1_input_text_message_content.d.ts +8 -0
  122. package/script/types/1_input_text_message_content.js +2 -0
  123. package/script/types/1_photo.js +5 -5
  124. package/script/types/2_game.js +3 -3
  125. package/{esm/types/1_inline_keyboard_button.d.ts → script/types/2_inline_keyboard_button.d.ts} +2 -2
  126. package/script/types/2_inline_query.d.ts +1 -1
  127. package/script/types/2_input_message_content.d.ts +6 -0
  128. package/script/types/2_input_message_content.js +2 -0
  129. package/script/types/{2_inline_keyboard_markup.d.ts → 3_inline_keyboard_markup.d.ts} +3 -2
  130. package/script/types/{2_inline_keyboard_markup.js → 3_inline_keyboard_markup.js} +3 -3
  131. package/script/types/3_message.d.ts +2 -2
  132. package/script/types/3_message.js +12 -12
  133. package/script/types/4_callback_query.d.ts +1 -1
  134. package/script/types/4_inline_query_result_article.d.ts +15 -0
  135. package/script/types/4_inline_query_result_article.js +2 -0
  136. package/script/types/4_inline_query_result_audio.d.ts +17 -0
  137. package/script/types/4_inline_query_result_audio.js +2 -0
  138. package/script/types/4_inline_query_result_cached_audio.d.ts +14 -0
  139. package/script/types/4_inline_query_result_cached_audio.js +2 -0
  140. package/script/types/4_inline_query_result_cached_document.d.ts +15 -0
  141. package/script/types/4_inline_query_result_cached_document.js +2 -0
  142. package/script/types/4_inline_query_result_cached_gif.d.ts +15 -0
  143. package/script/types/4_inline_query_result_cached_gif.js +2 -0
  144. package/script/types/4_inline_query_result_cached_mpeg4_gif.d.ts +15 -0
  145. package/script/types/4_inline_query_result_cached_mpeg4_gif.js +2 -0
  146. package/script/types/4_inline_query_result_cached_photo.d.ts +16 -0
  147. package/script/types/4_inline_query_result_cached_photo.js +2 -0
  148. package/script/types/4_inline_query_result_cached_sticker.d.ts +9 -0
  149. package/script/types/4_inline_query_result_cached_sticker.js +2 -0
  150. package/script/types/4_inline_query_result_cached_video.d.ts +16 -0
  151. package/script/types/4_inline_query_result_cached_video.js +2 -0
  152. package/script/types/4_inline_query_result_cached_voice.d.ts +15 -0
  153. package/script/types/4_inline_query_result_cached_voice.js +2 -0
  154. package/script/types/4_inline_query_result_contact.d.ts +15 -0
  155. package/script/types/4_inline_query_result_contact.js +2 -0
  156. package/script/types/4_inline_query_result_document.d.ts +18 -0
  157. package/script/types/4_inline_query_result_document.js +2 -0
  158. package/script/types/4_inline_query_result_game.d.ts +7 -0
  159. package/script/types/4_inline_query_result_game.js +2 -0
  160. package/script/types/4_inline_query_result_gif.d.ts +20 -0
  161. package/script/types/4_inline_query_result_gif.js +2 -0
  162. package/script/types/4_inline_query_result_location.d.ts +18 -0
  163. package/script/types/4_inline_query_result_location.js +2 -0
  164. package/script/types/4_inline_query_result_mpeg4_gif.d.ts +20 -0
  165. package/script/types/4_inline_query_result_mpeg4_gif.js +2 -0
  166. package/script/types/4_inline_query_result_photo.d.ts +19 -0
  167. package/script/types/4_inline_query_result_photo.js +2 -0
  168. package/script/types/4_inline_query_result_venue.d.ts +19 -0
  169. package/script/types/4_inline_query_result_venue.js +2 -0
  170. package/script/types/4_inline_query_result_video.d.ts +21 -0
  171. package/script/types/4_inline_query_result_video.js +2 -0
  172. package/script/types/4_inline_query_result_voice.d.ts +16 -0
  173. package/script/types/4_inline_query_result_voice.js +2 -0
  174. package/script/types/4_reply_markup.d.ts +7 -0
  175. package/script/types/4_reply_markup.js +26 -0
  176. package/script/types/5_inline_query_result.d.ts +29 -0
  177. package/script/types/5_inline_query_result.js +260 -0
  178. /package/esm/types/{!0_file_id.d.ts → 0__file_id.d.ts} +0 -0
  179. /package/esm/types/{!0_file_id.js → 0__file_id.js} +0 -0
  180. /package/esm/types/{!0_misc.js → 0_bot_command.js} +0 -0
  181. /package/esm/types/{1_inline_keyboard_button.js → 2_inline_keyboard_button.js} +0 -0
  182. /package/script/types/{!0_file_id.d.ts → 0__file_id.d.ts} +0 -0
  183. /package/script/types/{!0_file_id.js → 0__file_id.js} +0 -0
  184. /package/script/types/{!0_misc.js → 0_bot_command.js} +0 -0
  185. /package/script/types/{1_inline_keyboard_button.js → 2_inline_keyboard_button.js} +0 -0
@@ -0,0 +1,256 @@
1
+ import { types } from "../2_tl.js";
2
+ import { FileID } from "./0__file_id.js";
3
+ import { UNREACHABLE } from "../1_utilities.js";
4
+ import { replyMarkupToTlObject } from "./4_reply_markup.js";
5
+ // deno-lint-ignore no-explicit-any
6
+ export async function inlineQueryResultToTlObject(result_, parseText, usernameResolver) {
7
+ let document = null;
8
+ let thumb = null;
9
+ let fileId_ = null;
10
+ switch (result_.type) {
11
+ case "audio":
12
+ if ("audioUrl" in result_) {
13
+ document = new types.InputWebDocument({
14
+ url: result_.audioUrl,
15
+ size: 0,
16
+ mimeType: "audio/mpeg",
17
+ attributes: [
18
+ new types.DocumentAttributeAudio({
19
+ duration: result_.audioDuration ?? 0,
20
+ title: result_.title,
21
+ performer: result_.performer,
22
+ }),
23
+ ],
24
+ });
25
+ }
26
+ else {
27
+ fileId_ = result_.audioFileId;
28
+ }
29
+ break;
30
+ case "video":
31
+ if ("videoUrl" in result_) {
32
+ document = new types.InputWebDocument({
33
+ url: result_.videoUrl,
34
+ size: 0,
35
+ mimeType: result_.mimeType ?? "video/mp4",
36
+ attributes: [
37
+ new types.DocumentAttributeVideo({
38
+ duration: result_.videoDuration ?? 0,
39
+ h: result_.videoHeight ?? 0,
40
+ w: result_.videoWidth ?? 0,
41
+ }),
42
+ ],
43
+ });
44
+ }
45
+ else {
46
+ fileId_ = result_.videoFileId;
47
+ }
48
+ break;
49
+ case "document":
50
+ if ("documentUrl" in result_) {
51
+ document = new types.InputWebDocument({
52
+ url: result_.documentUrl,
53
+ mimeType: "application/octet-stream",
54
+ attributes: [],
55
+ size: 0,
56
+ });
57
+ }
58
+ else {
59
+ fileId_ = result_.documentFileId;
60
+ }
61
+ break;
62
+ case "gif":
63
+ if ("gifUrl" in result_) {
64
+ document = new types.InputWebDocument({
65
+ url: result_.gifUrl,
66
+ size: 0,
67
+ mimeType: "image/gif",
68
+ attributes: [
69
+ new types.DocumentAttributeVideo({
70
+ duration: result_.gifDuration ?? 0,
71
+ h: result_.gifHeight ?? 0,
72
+ w: result_.gifWidth ?? 0,
73
+ }),
74
+ ],
75
+ });
76
+ }
77
+ else {
78
+ fileId_ = result_.gifFileId;
79
+ }
80
+ break;
81
+ case "mpeg4_gif":
82
+ if ("mpeg4Url" in result_) {
83
+ document = new types.InputWebDocument({
84
+ url: result_.mpeg4Url,
85
+ size: 0,
86
+ mimeType: "video/mp4",
87
+ attributes: [
88
+ new types.DocumentAttributeVideo({
89
+ nosound: true,
90
+ duration: result_.mpeg4Duration ?? 0,
91
+ w: result_.mpeg4Width ?? 0,
92
+ h: result_.mpeg4Height ?? 0,
93
+ supportsStreaming: true,
94
+ }),
95
+ ],
96
+ });
97
+ }
98
+ else {
99
+ fileId_ = result_.mpeg4FileId;
100
+ }
101
+ break;
102
+ case "photo":
103
+ if ("photoUrl" in result_) {
104
+ document = new types.InputWebDocument({
105
+ url: result_.photoUrl,
106
+ size: 0,
107
+ mimeType: "image/jpeg",
108
+ attributes: [new types.DocumentAttributeImageSize({ w: result_.photoWidth ?? 0, h: result_.photoHeight ?? 0 })],
109
+ });
110
+ }
111
+ else {
112
+ fileId_ = result_.photoFileId;
113
+ }
114
+ break;
115
+ case "sticker":
116
+ fileId_ = result_.stickerFileId;
117
+ break;
118
+ case "voice":
119
+ if ("voiceUrl" in result_) {
120
+ document = new types.InputWebDocument({
121
+ url: result_.voiceUrl,
122
+ size: 0,
123
+ mimeType: "audio/mpeg",
124
+ attributes: [
125
+ new types.DocumentAttributeAudio({
126
+ duration: result_.voiceDuration ?? 0,
127
+ voice: true,
128
+ }),
129
+ ],
130
+ });
131
+ }
132
+ else {
133
+ fileId_ = result_.voiceFileId;
134
+ }
135
+ break;
136
+ }
137
+ const replyMarkup = "replyMarkup" in result_ && result_.replyMarkup ? await replyMarkupToTlObject(result_.replyMarkup, usernameResolver) : undefined;
138
+ if ("thumbnailUrl" in result_ && result_.thumbnailUrl) {
139
+ thumb = new types.InputWebDocument({
140
+ url: result_.thumbnailUrl,
141
+ size: 0,
142
+ mimeType: "image/jpeg",
143
+ attributes: [],
144
+ });
145
+ }
146
+ else if (result_.type == "photo") {
147
+ thumb = document;
148
+ }
149
+ let ret = ["", []];
150
+ if ("caption" in result_ && result_.caption) {
151
+ ret = parseText(result_.caption, { parseMode: result_.parseMode, entities: result_.captionEntities });
152
+ }
153
+ const { type, id } = result_;
154
+ const [message, entities] = ret;
155
+ const sendMessage = new types.InputBotInlineMessageMediaAuto({
156
+ message,
157
+ entities,
158
+ replyMarkup,
159
+ });
160
+ const title = "title" in result_ ? result_.title : undefined;
161
+ if (document != null) {
162
+ return new types.InputBotInlineResult({
163
+ id,
164
+ type,
165
+ title,
166
+ thumb: thumb == null ? undefined : thumb,
167
+ content: document,
168
+ sendMessage: new types.InputBotInlineMessageMediaAuto({
169
+ message,
170
+ entities,
171
+ replyMarkup,
172
+ }),
173
+ });
174
+ }
175
+ else if (fileId_ != null) {
176
+ const fileId = FileID.decode(fileId_);
177
+ return new types.InputBotInlineResultDocument({
178
+ id,
179
+ type,
180
+ title,
181
+ document: new types.InputDocument({
182
+ id: fileId.params.mediaId,
183
+ accessHash: fileId.params.accessHash,
184
+ fileReference: fileId.params.fileReference,
185
+ }),
186
+ sendMessage,
187
+ });
188
+ }
189
+ else if (result_.type == "location") {
190
+ return new types.InputBotInlineResult({
191
+ id,
192
+ type,
193
+ title,
194
+ sendMessage: new types.InputBotInlineMessageMediaGeo({
195
+ geoPoint: new types.InputGeoPoint({
196
+ lat: result_.latitude,
197
+ long: result_.longitude,
198
+ accuracyRadius: result_.horizontalAccuracy,
199
+ }),
200
+ heading: result_.heading,
201
+ period: result_.livePeriod,
202
+ proximityNotificationRadius: result_.proximityAlertRadius,
203
+ replyMarkup,
204
+ }),
205
+ });
206
+ }
207
+ else if (result_.type == "game") {
208
+ return new types.InputBotInlineResult({
209
+ id,
210
+ type,
211
+ title,
212
+ sendMessage: new types.InputBotInlineMessageGame({
213
+ replyMarkup,
214
+ }),
215
+ });
216
+ }
217
+ else if (result_.type == "article") {
218
+ if (!("messageText" in result_.inputMessageContent)) {
219
+ UNREACHABLE();
220
+ }
221
+ const [message, entities] = parseText(result_.inputMessageContent.messageText, { entities: result_.inputMessageContent.entities, parseMode: result_.inputMessageContent.parseMode });
222
+ return new types.InputBotInlineResult({
223
+ id,
224
+ type,
225
+ title,
226
+ sendMessage: new types.InputBotInlineMessageText({
227
+ message,
228
+ entities,
229
+ noWebpage: result_.inputMessageContent.disableWebPagePreview ? true : undefined,
230
+ replyMarkup,
231
+ }),
232
+ });
233
+ }
234
+ else if (result_.type == "venue") {
235
+ if (!result_.fourSquareId || !result_.foursquareType) {
236
+ UNREACHABLE();
237
+ }
238
+ return new types.InputBotInlineResult({
239
+ id,
240
+ type,
241
+ title,
242
+ sendMessage: new types.InputBotInlineMessageMediaVenue({
243
+ geoPoint: new types.InputGeoPoint({ long: result_.longitude, lat: result_.latitude }),
244
+ address: result_.address,
245
+ provider: "foursquare",
246
+ title: result_.title,
247
+ venueId: result_.fourSquareId,
248
+ venueType: result_.foursquareType,
249
+ replyMarkup,
250
+ }),
251
+ });
252
+ }
253
+ else {
254
+ UNREACHABLE();
255
+ }
256
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "module": "./esm/mod.js",
3
3
  "main": "./script/mod.js",
4
4
  "name": "@mtkruto/node",
5
- "version": "0.0.998",
5
+ "version": "0.0.999",
6
6
  "description": "MTKruto for Node.js",
7
7
  "author": "Roj <rojvv@icloud.com>",
8
8
  "license": "LGPL-3.0-or-later",
@@ -1,16 +1,24 @@
1
- export * from "./types/!0_file_id.js";
2
1
  export * from "./types/0_audio.js";
2
+ export * from "./types/0_bot_command.js";
3
3
  export * from "./types/0_chat_action.js";
4
4
  export * from "./types/0_chat_administrator_rights.js";
5
+ export * from "./types/0_chat_id.js";
5
6
  export * from "./types/0_chat_photo.js";
7
+ export * from "./types/0_color.js";
6
8
  export * from "./types/0_contact.js";
7
9
  export * from "./types/0_dice.js";
10
+ export * from "./types/0__file_id.js";
8
11
  export * from "./types/0_force_reply.js";
12
+ export * from "./types/0_input_contact_message_content.js";
13
+ export * from "./types/0_input_location_message_content.js";
14
+ export * from "./types/0_input_venue_message_content.js";
9
15
  export * from "./types/0_keyboard_button_poll_type.js";
16
+ export * from "./types/0_labeled_price.js";
10
17
  export * from "./types/0_location.js";
11
18
  export * from "./types/0_login_url.js";
12
19
  export * from "./types/0_mask_position.js";
13
20
  export * from "./types/0_message_entity.js";
21
+ export * from "./types/0_parse_mode.js";
14
22
  export * from "./types/0_poll_option.js";
15
23
  export * from "./types/0_reply_keyboard_remove.js";
16
24
  export * from "./types/0_thumbnail.js";
@@ -18,9 +26,13 @@ export * from "./types/0_venue.js";
18
26
  export * from "./types/0_voice.js";
19
27
  export * from "./types/0_web_app_info.js";
20
28
  export * from "./types/1_animation.js";
29
+ export * from "./types/1_bot_command_scope.js";
21
30
  export * from "./types/1_chat.js";
22
31
  export * from "./types/1_document.js";
23
- export * from "./types/1_inline_keyboard_button.js";
32
+ export * from "./types/1__getters.js";
33
+ export * from "./types/1_inline_query_result_button.js";
34
+ export * from "./types/1_input_invoice_message_content.js";
35
+ export * from "./types/1_input_text_message_content.js";
24
36
  export * from "./types/1_keyboard_button.js";
25
37
  export * from "./types/1_photo.js";
26
38
  export * from "./types/1_poll.js";
@@ -29,8 +41,32 @@ export * from "./types/1_user.js";
29
41
  export * from "./types/1_video_note.js";
30
42
  export * from "./types/1_video.js";
31
43
  export * from "./types/2_game.js";
32
- export * from "./types/2_inline_keyboard_markup.js";
44
+ export * from "./types/2_inline_keyboard_button.js";
33
45
  export * from "./types/2_inline_query.js";
46
+ export * from "./types/2_input_message_content.js";
34
47
  export * from "./types/2_reply_keyboard_markup.js";
48
+ export * from "./types/3_inline_keyboard_markup.js";
35
49
  export * from "./types/3_message.js";
36
50
  export * from "./types/4_callback_query.js";
51
+ export * from "./types/4_inline_query_result_article.js";
52
+ export * from "./types/4_inline_query_result_audio.js";
53
+ export * from "./types/4_inline_query_result_cached_audio.js";
54
+ export * from "./types/4_inline_query_result_cached_document.js";
55
+ export * from "./types/4_inline_query_result_cached_gif.js";
56
+ export * from "./types/4_inline_query_result_cached_mpeg4_gif.js";
57
+ export * from "./types/4_inline_query_result_cached_photo.js";
58
+ export * from "./types/4_inline_query_result_cached_sticker.js";
59
+ export * from "./types/4_inline_query_result_cached_video.js";
60
+ export * from "./types/4_inline_query_result_cached_voice.js";
61
+ export * from "./types/4_inline_query_result_contact.js";
62
+ export * from "./types/4_inline_query_result_document.js";
63
+ export * from "./types/4_inline_query_result_game.js";
64
+ export * from "./types/4_inline_query_result_gif.js";
65
+ export * from "./types/4_inline_query_result_location.js";
66
+ export * from "./types/4_inline_query_result_mpeg4_gif.js";
67
+ export * from "./types/4_inline_query_result_photo.js";
68
+ export * from "./types/4_inline_query_result_venue.js";
69
+ export * from "./types/4_inline_query_result_video.js";
70
+ export * from "./types/4_inline_query_result_voice.js";
71
+ export * from "./types/4_reply_markup.js";
72
+ export * from "./types/5_inline_query_result.js";
package/script/3_types.js CHANGED
@@ -14,19 +14,27 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types/!0_file_id.js"), exports);
18
17
  __exportStar(require("./types/0_audio.js"), exports);
18
+ __exportStar(require("./types/0_bot_command.js"), exports);
19
19
  __exportStar(require("./types/0_chat_action.js"), exports);
20
20
  __exportStar(require("./types/0_chat_administrator_rights.js"), exports);
21
+ __exportStar(require("./types/0_chat_id.js"), exports);
21
22
  __exportStar(require("./types/0_chat_photo.js"), exports);
23
+ __exportStar(require("./types/0_color.js"), exports);
22
24
  __exportStar(require("./types/0_contact.js"), exports);
23
25
  __exportStar(require("./types/0_dice.js"), exports);
26
+ __exportStar(require("./types/0__file_id.js"), exports);
24
27
  __exportStar(require("./types/0_force_reply.js"), exports);
28
+ __exportStar(require("./types/0_input_contact_message_content.js"), exports);
29
+ __exportStar(require("./types/0_input_location_message_content.js"), exports);
30
+ __exportStar(require("./types/0_input_venue_message_content.js"), exports);
25
31
  __exportStar(require("./types/0_keyboard_button_poll_type.js"), exports);
32
+ __exportStar(require("./types/0_labeled_price.js"), exports);
26
33
  __exportStar(require("./types/0_location.js"), exports);
27
34
  __exportStar(require("./types/0_login_url.js"), exports);
28
35
  __exportStar(require("./types/0_mask_position.js"), exports);
29
36
  __exportStar(require("./types/0_message_entity.js"), exports);
37
+ __exportStar(require("./types/0_parse_mode.js"), exports);
30
38
  __exportStar(require("./types/0_poll_option.js"), exports);
31
39
  __exportStar(require("./types/0_reply_keyboard_remove.js"), exports);
32
40
  __exportStar(require("./types/0_thumbnail.js"), exports);
@@ -34,9 +42,13 @@ __exportStar(require("./types/0_venue.js"), exports);
34
42
  __exportStar(require("./types/0_voice.js"), exports);
35
43
  __exportStar(require("./types/0_web_app_info.js"), exports);
36
44
  __exportStar(require("./types/1_animation.js"), exports);
45
+ __exportStar(require("./types/1_bot_command_scope.js"), exports);
37
46
  __exportStar(require("./types/1_chat.js"), exports);
38
47
  __exportStar(require("./types/1_document.js"), exports);
39
- __exportStar(require("./types/1_inline_keyboard_button.js"), exports);
48
+ __exportStar(require("./types/1__getters.js"), exports);
49
+ __exportStar(require("./types/1_inline_query_result_button.js"), exports);
50
+ __exportStar(require("./types/1_input_invoice_message_content.js"), exports);
51
+ __exportStar(require("./types/1_input_text_message_content.js"), exports);
40
52
  __exportStar(require("./types/1_keyboard_button.js"), exports);
41
53
  __exportStar(require("./types/1_photo.js"), exports);
42
54
  __exportStar(require("./types/1_poll.js"), exports);
@@ -45,8 +57,32 @@ __exportStar(require("./types/1_user.js"), exports);
45
57
  __exportStar(require("./types/1_video_note.js"), exports);
46
58
  __exportStar(require("./types/1_video.js"), exports);
47
59
  __exportStar(require("./types/2_game.js"), exports);
48
- __exportStar(require("./types/2_inline_keyboard_markup.js"), exports);
60
+ __exportStar(require("./types/2_inline_keyboard_button.js"), exports);
49
61
  __exportStar(require("./types/2_inline_query.js"), exports);
62
+ __exportStar(require("./types/2_input_message_content.js"), exports);
50
63
  __exportStar(require("./types/2_reply_keyboard_markup.js"), exports);
64
+ __exportStar(require("./types/3_inline_keyboard_markup.js"), exports);
51
65
  __exportStar(require("./types/3_message.js"), exports);
52
66
  __exportStar(require("./types/4_callback_query.js"), exports);
67
+ __exportStar(require("./types/4_inline_query_result_article.js"), exports);
68
+ __exportStar(require("./types/4_inline_query_result_audio.js"), exports);
69
+ __exportStar(require("./types/4_inline_query_result_cached_audio.js"), exports);
70
+ __exportStar(require("./types/4_inline_query_result_cached_document.js"), exports);
71
+ __exportStar(require("./types/4_inline_query_result_cached_gif.js"), exports);
72
+ __exportStar(require("./types/4_inline_query_result_cached_mpeg4_gif.js"), exports);
73
+ __exportStar(require("./types/4_inline_query_result_cached_photo.js"), exports);
74
+ __exportStar(require("./types/4_inline_query_result_cached_sticker.js"), exports);
75
+ __exportStar(require("./types/4_inline_query_result_cached_video.js"), exports);
76
+ __exportStar(require("./types/4_inline_query_result_cached_voice.js"), exports);
77
+ __exportStar(require("./types/4_inline_query_result_contact.js"), exports);
78
+ __exportStar(require("./types/4_inline_query_result_document.js"), exports);
79
+ __exportStar(require("./types/4_inline_query_result_game.js"), exports);
80
+ __exportStar(require("./types/4_inline_query_result_gif.js"), exports);
81
+ __exportStar(require("./types/4_inline_query_result_location.js"), exports);
82
+ __exportStar(require("./types/4_inline_query_result_mpeg4_gif.js"), exports);
83
+ __exportStar(require("./types/4_inline_query_result_photo.js"), exports);
84
+ __exportStar(require("./types/4_inline_query_result_venue.js"), exports);
85
+ __exportStar(require("./types/4_inline_query_result_video.js"), exports);
86
+ __exportStar(require("./types/4_inline_query_result_voice.js"), exports);
87
+ __exportStar(require("./types/4_reply_markup.js"), exports);
88
+ __exportStar(require("./types/5_inline_query_result.js"), exports);
@@ -5,7 +5,7 @@ export declare const PUBLIC_KEYS: PublicKeys;
5
5
  export declare const VECTOR_CONSTRUCTOR = 481674261;
6
6
  export declare const INITIAL_DC: DC;
7
7
  export declare const LAYER = 161;
8
- export declare const APP_VERSION = "MTKruto 0.0.998";
8
+ export declare const APP_VERSION = "MTKruto 0.0.999";
9
9
  export declare const DEVICE_MODEL: string;
10
10
  export declare const LANG_CODE: string;
11
11
  export declare const LANG_PACK = "";
@@ -80,7 +80,7 @@ exports.PUBLIC_KEYS = Object.freeze([
80
80
  exports.VECTOR_CONSTRUCTOR = 0x1CB5C415;
81
81
  exports.INITIAL_DC = "2-test";
82
82
  exports.LAYER = 161;
83
- exports.APP_VERSION = "MTKruto 0.0.998";
83
+ exports.APP_VERSION = "MTKruto 0.0.999";
84
84
  // @ts-ignore: lib
85
85
  exports.DEVICE_MODEL = typeof dntShim.Deno === "undefined" ? typeof navigator === "undefined" ? typeof process === "undefined" ? "Unknown" : process.platform + "-" + process.arch : navigator.userAgent.split(" ")[0] : dntShim.Deno.build.os + "-" + dntShim.Deno.build.arch;
86
86
  exports.LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
@@ -1,5 +1,5 @@
1
1
  import { MaybePromise } from "../1_utilities.js";
2
- import { CallbackQuery, ForceReply, InlineKeyboardMarkup, InlineQuery, Message, MessageEntity, ReplyKeyboardMarkup, ReplyKeyboardRemove } from "../3_types.js";
2
+ import { CallbackQuery, ChatID, ForceReply, InlineKeyboardMarkup, InlineQuery, Message, MessageEntity, ReplyKeyboardMarkup, ReplyKeyboardRemove } from "../3_types.js";
3
3
  import { With } from "./0_utilities.js";
4
4
  import { ClientPlainParams } from "./2_client_plain.js";
5
5
  export type ParseMode = "HTML" | null;
@@ -52,10 +52,6 @@ export interface AuthorizeUserParams<S = string> {
52
52
  code: S | (() => MaybePromise<S>);
53
53
  password: S | ((hint: string | null) => MaybePromise<S>);
54
54
  }
55
- /**
56
- * A chat identifier as provided by MTKruto or a string starting with a @ that is followed by a username.
57
- */
58
- export type ChatID = number | string;
59
55
  export interface SendMessagesParams {
60
56
  /**
61
57
  * The parse mode to use. If not provided, the default parse mode will be used.
@@ -2,10 +2,10 @@ import { MaybePromise } from "../1_utilities.js";
2
2
  import { functions, ReadObject, types } from "../2_tl.js";
3
3
  import { Storage } from "../3_storage.js";
4
4
  import { DC } from "../3_transport.js";
5
- import { ChatAction, Message } from "../3_types.js";
5
+ import { BotCommand, BotCommandScope, ChatAction, ChatID, InlineQueryResult, InlineQueryResultButton, Message } from "../3_types.js";
6
6
  import { With } from "./0_utilities.js";
7
7
  import { ClientAbstract } from "./1_client_abstract.js";
8
- import { AnswerCallbackQueryParams, AuthorizeUserParams, ChatID, ClientParams, EditMessageParams, FilterableUpdates, FilterUpdate, ForwardMessagesParams, Handler, ParseMode, SendMessagesParams, SendPollParams, Update } from "./3_types.js";
8
+ import { AnswerCallbackQueryParams, AuthorizeUserParams, ClientParams, EditMessageParams, FilterableUpdates, FilterUpdate, ForwardMessagesParams, Handler, ParseMode, SendMessagesParams, SendPollParams, Update } from "./3_types.js";
9
9
  export declare const getEntity: unique symbol;
10
10
  export declare const getStickerSetName: unique symbol;
11
11
  export declare const handleMigrationError: unique symbol;
@@ -192,6 +192,7 @@ export declare class Client extends ClientAbstract {
192
192
  * @param id ID of the callback query to answer.
193
193
  */
194
194
  answerCallbackQuery(id: string, params?: AnswerCallbackQueryParams): Promise<void>;
195
+ private usernameResolver;
195
196
  private constructReplyMarkup;
196
197
  private static assertMsgHas;
197
198
  /**
@@ -210,6 +211,21 @@ export declare class Client extends ClientAbstract {
210
211
  * @param messageThreadId The thread to send the chat action to.
211
212
  */
212
213
  sendChatAction(chatId: ChatID, action_: ChatAction, messageThreadId?: number): Promise<void>;
214
+ setMyCommands(commands: BotCommand[], params?: {
215
+ languageCode?: string;
216
+ scope?: BotCommandScope;
217
+ }): Promise<void>;
218
+ getMyCommands(params?: {
219
+ languageCode?: string;
220
+ scope?: BotCommandScope;
221
+ }): Promise<BotCommand[]>;
222
+ answerInlineQuery(id: string, results: InlineQueryResult[], params?: {
223
+ cacheTime?: number;
224
+ isPersonal?: boolean;
225
+ nextOffset?: string;
226
+ isGallery?: boolean;
227
+ button: InlineQueryResultButton;
228
+ }): Promise<void>;
213
229
  private handle;
214
230
  use(handler: Handler): void;
215
231
  branch(predicate: (upd: Update) => MaybePromise<boolean>, trueHandler: Handler, falseHandler: Handler): void;
@@ -215,6 +215,15 @@ class Client extends _1_client_abstract_js_1.ClientAbstract {
215
215
  writable: true,
216
216
  value: new _1_utilities_js_1.Queue("processUpdates")
217
217
  });
218
+ Object.defineProperty(this, "usernameResolver", {
219
+ enumerable: true,
220
+ configurable: true,
221
+ writable: true,
222
+ value: async (v) => {
223
+ const inputPeer = await this.getInputPeer(v).then((v) => v[_2_tl_js_1.as](_2_tl_js_1.types.InputPeerUser));
224
+ return new _2_tl_js_1.types.InputUser({ userId: inputPeer.userId, accessHash: inputPeer.accessHash });
225
+ }
226
+ });
218
227
  Object.defineProperty(this, "handle", {
219
228
  enumerable: true,
220
229
  configurable: true,
@@ -1507,29 +1516,10 @@ class Client extends _1_client_abstract_js_1.ClientAbstract {
1507
1516
  }));
1508
1517
  }
1509
1518
  async constructReplyMarkup(params) {
1510
- let replyMarkup = undefined;
1511
1519
  if (params?.replyMarkup) {
1512
1520
  await this.assertBot("replyMarkup");
1513
- if ("inlineKeyboard" in params.replyMarkup) {
1514
- replyMarkup = await (0, _3_types_js_1.inlineKeyboardMarkupToTlObject)(params.replyMarkup, async (v) => {
1515
- const inputPeer = await this.getInputPeer(v).then((v) => v[_2_tl_js_1.as](_2_tl_js_1.types.InputPeerUser));
1516
- return new _2_tl_js_1.types.InputUser({ userId: inputPeer.userId, accessHash: inputPeer.accessHash });
1517
- });
1518
- }
1519
- else if ("keyboard" in params.replyMarkup) {
1520
- replyMarkup = (0, _3_types_js_1.replyKeyboardMarkupToTlObject)(params.replyMarkup);
1521
- }
1522
- else if ("removeKeyboard" in params.replyMarkup) {
1523
- replyMarkup = (0, _3_types_js_1.replyKeyboardRemoveToTlObject)(params.replyMarkup);
1524
- }
1525
- else if ("forceReply" in params.replyMarkup) {
1526
- replyMarkup = (0, _3_types_js_1.forceReplyToTlObject)(params.replyMarkup);
1527
- }
1528
- else {
1529
- throw new Error("The replyMarkup parameter has an unexpected type");
1530
- }
1521
+ return (0, _3_types_js_1.replyMarkupToTlObject)(params.replyMarkup, this.usernameResolver.bind(this));
1531
1522
  }
1532
- return replyMarkup;
1533
1523
  }
1534
1524
  static assertMsgHas(message, key) {
1535
1525
  if (!(key in message) || message[key] === undefined) {
@@ -1637,6 +1627,32 @@ class Client extends _1_client_abstract_js_1.ClientAbstract {
1637
1627
  }
1638
1628
  await this.invoke(new _2_tl_js_1.functions.MessagesSetTyping({ peer: await this.getInputPeer(chatId), action, topMsgId: messageThreadId }));
1639
1629
  }
1630
+ async setMyCommands(commands, params) {
1631
+ await this.invoke(new _2_tl_js_1.functions.BotsSetBotCommands({
1632
+ commands: commands.map((v) => new _2_tl_js_1.types.BotCommand(v)),
1633
+ langCode: params?.languageCode ?? "",
1634
+ scope: await (0, _3_types_js_1.botCommandScopeToTlObject)(params?.scope ?? { type: "default" }, this.getInputPeer.bind(this)), // TODO: use params.scope
1635
+ }));
1636
+ }
1637
+ async getMyCommands(params) {
1638
+ const commands_ = await this.invoke(new _2_tl_js_1.functions.BotsGetBotCommands({
1639
+ langCode: params?.languageCode ?? "",
1640
+ scope: await (0, _3_types_js_1.botCommandScopeToTlObject)(params?.scope ?? { type: "default" }, this.getInputPeer.bind(this)), // TODO: use params.scope
1641
+ }));
1642
+ return commands_.map((v) => ({ command: v.command, description: v.description }));
1643
+ }
1644
+ async answerInlineQuery(id, results, params) {
1645
+ await this.invoke(new _2_tl_js_1.functions.MessagesSetInlineBotResults({
1646
+ queryId: BigInt(id),
1647
+ results: await Promise.all(results.map((v) => (0, _3_types_js_1.inlineQueryResultToTlObject)(v, this.parseText.bind(this), this.usernameResolver.bind(this)))),
1648
+ cacheTime: params?.cacheTime ?? 300,
1649
+ private: params?.isPersonal ? true : undefined,
1650
+ switchWebview: params?.button && params.button.webApp ? new _2_tl_js_1.types.InlineBotWebView({ text: params.button.text, url: params.button.webApp.url }) : undefined,
1651
+ switchPm: params?.button && params.button.startParameter ? new _2_tl_js_1.types.InlineBotSwitchPM({ text: params.button.text, startParam: params.button.startParameter }) : undefined,
1652
+ gallery: params?.isGallery ? true : undefined,
1653
+ nextOffset: params?.nextOffset,
1654
+ }));
1655
+ }
1640
1656
  use(handler) {
1641
1657
  const handle = this.handle;
1642
1658
  this.handle = async (upd, next) => {
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ConnectionWebSocket = void 0;
27
27
  const dntShim = __importStar(require("../_dnt.shims.js"));
28
28
  const _0_deps_js_1 = require("../0_deps.js");
29
+ const _1_utilities_js_1 = require("../1_utilities.js");
29
30
  const _0_connection_js_1 = require("./0_connection.js");
30
31
  const d = (0, _0_deps_js_1.debug)("ConnectionWebSocket");
31
32
  class ConnectionWebSocket extends _0_connection_js_1.ConnectionUnframed {
@@ -101,7 +102,7 @@ class ConnectionWebSocket extends _0_connection_js_1.ConnectionUnframed {
101
102
  return;
102
103
  }
103
104
  const release = await mutex.acquire();
104
- const data = new Uint8Array(await new Blob([e.data].map((v) => v instanceof Blob ? v : v instanceof ArrayBuffer ? v : Array.isArray(v) ? v.map((v) => v.buffer) : v.buffer).flat()).arrayBuffer());
105
+ const data = new Uint8Array(await new Blob([e.data].map((v) => v instanceof Blob || v instanceof Uint8Array ? v : v instanceof ArrayBuffer ? v : (0, _1_utilities_js_1.UNREACHABLE)())).arrayBuffer());
105
106
  for (const byte of data) {
106
107
  this.buffer.push(byte);
107
108
  }
@@ -0,0 +1,4 @@
1
+ export interface BotCommand {
2
+ command: string;
3
+ description: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * A chat identifier as provided by MTKruto or a string starting with a @ that is followed by a username.
3
+ */
4
+ export type ChatID = number | string;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,28 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.constructChatPhoto = void 0;
4
4
  const _2_tl_js_1 = require("../2_tl.js");
5
- const _0_file_id_js_1 = require("./!0_file_id.js");
5
+ const _0__file_id_js_1 = require("./0__file_id.js");
6
6
  function constructChatPhoto(photo, chatId, chatAccessHash) {
7
- const smallFileId = new _0_file_id_js_1.FileID(null, null, _0_file_id_js_1.FileType.ChatPhoto, photo.dcId, {
7
+ const smallFileId = new _0__file_id_js_1.FileID(null, null, _0__file_id_js_1.FileType.ChatPhoto, photo.dcId, {
8
8
  mediaId: photo.photoId,
9
- thumbnailSource: _0_file_id_js_1.ThumbnailSource.ChatPhotoSmall,
9
+ thumbnailSource: _0__file_id_js_1.ThumbnailSource.ChatPhotoSmall,
10
10
  chatId,
11
11
  chatAccessHash,
12
12
  accessHash: 0n,
13
13
  volumeId: 0n,
14
14
  localId: 0,
15
15
  }).encode();
16
- const smallFileUniqueId = new _0_file_id_js_1.FileUniqueID(_0_file_id_js_1.FileUniqueType.Document, { mediaId: photo.photoId }).encode();
17
- const bigFileId = new _0_file_id_js_1.FileID(null, null, _0_file_id_js_1.FileType.ChatPhoto, photo.dcId, {
16
+ const smallFileUniqueId = new _0__file_id_js_1.FileUniqueID(_0__file_id_js_1.FileUniqueType.Document, { mediaId: photo.photoId }).encode();
17
+ const bigFileId = new _0__file_id_js_1.FileID(null, null, _0__file_id_js_1.FileType.ChatPhoto, photo.dcId, {
18
18
  mediaId: photo.photoId,
19
- thumbnailSource: _0_file_id_js_1.ThumbnailSource.ChatPhotoBig,
19
+ thumbnailSource: _0__file_id_js_1.ThumbnailSource.ChatPhotoBig,
20
20
  chatId,
21
21
  chatAccessHash,
22
22
  accessHash: 0n,
23
23
  volumeId: 0n,
24
24
  localId: 0,
25
25
  }).encode();
26
- const bigFileUniqueId = new _0_file_id_js_1.FileUniqueID(_0_file_id_js_1.FileUniqueType.Document, { mediaId: photo.photoId }).encode();
26
+ const bigFileUniqueId = new _0__file_id_js_1.FileUniqueID(_0__file_id_js_1.FileUniqueType.Document, { mediaId: photo.photoId }).encode();
27
27
  if (photo instanceof _2_tl_js_1.types.ChatPhoto) {
28
28
  return {
29
29
  smallFileId,
@@ -0,0 +1,6 @@
1
+ export interface InputContactMessageContent {
2
+ phoneNumber: string;
3
+ firstName: string;
4
+ lastName?: string;
5
+ vcard?: string;
6
+ }