@mtkruto/node 0.1.138 → 0.1.140

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 (287) hide show
  1. package/esm/3_types.d.ts +10 -36
  2. package/esm/3_types.js +10 -36
  3. package/esm/4_constants.d.ts +1 -1
  4. package/esm/4_constants.js +1 -1
  5. package/esm/5_client.d.ts +1 -1
  6. package/esm/5_client.js +1 -1
  7. package/esm/_dnt.polyfills.d.ts +6 -0
  8. package/esm/client/0_filters.d.ts +60 -0
  9. package/esm/client/0_filters.js +27 -0
  10. package/esm/client/0_message.js +2 -2
  11. package/esm/client/{3_params.d.ts → 0_params.d.ts} +30 -33
  12. package/esm/client/0_types.d.ts +39 -0
  13. package/esm/client/0_types.js +2 -0
  14. package/esm/client/0_utilities.d.ts +1 -47
  15. package/esm/client/0_utilities.js +0 -27
  16. package/esm/client/1_composer.d.ts +1 -1
  17. package/esm/client/1_composer.js +1 -1
  18. package/esm/client/1_file_manager.d.ts +10 -0
  19. package/esm/client/1_file_manager.js +241 -0
  20. package/esm/client/1_update_manager.d.ts +18 -0
  21. package/esm/client/1_update_manager.js +553 -0
  22. package/esm/client/2_message_manager.d.ts +40 -0
  23. package/esm/client/2_message_manager.js +621 -0
  24. package/esm/client/3_chat_list_manager.d.ts +21 -0
  25. package/esm/client/3_chat_list_manager.js +353 -0
  26. package/esm/client/3_reaction_manager.d.ts +16 -0
  27. package/esm/client/3_reaction_manager.js +61 -0
  28. package/esm/client/4_client.d.ts +187 -60
  29. package/esm/client/4_client.js +492 -1699
  30. package/esm/connection/1_connection_web_socket.js +6 -6
  31. package/esm/deps/raw.githubusercontent.com/MTKruto/debug/main/deps.d.ts +1 -1
  32. package/esm/deps/raw.githubusercontent.com/MTKruto/debug/main/deps.js +1 -1
  33. package/esm/deps/raw.githubusercontent.com/MTKruto/object-inspect/main/index.d.ts +1 -0
  34. package/esm/deps/raw.githubusercontent.com/MTKruto/object-inspect/main/index.js +524 -0
  35. package/esm/mod.d.ts +1 -0
  36. package/esm/mod.js +1 -0
  37. package/esm/storage/0_storage.d.ts +5 -3
  38. package/esm/storage/0_storage.js +14 -4
  39. package/esm/tl/1_tl_object.d.ts +1 -0
  40. package/esm/tl/1_tl_object.js +24 -0
  41. package/esm/types/0_bot_command.d.ts +1 -0
  42. package/esm/types/0_chat_member_rights.d.ts +37 -0
  43. package/esm/types/0_chat_photo.d.ts +4 -4
  44. package/esm/types/0_file_source.d.ts +5 -0
  45. package/esm/types/0_giveaway_parameters.js +2 -1
  46. package/esm/types/0_id.d.ts +4 -0
  47. package/esm/types/0_message_entity.d.ts +20 -20
  48. package/esm/types/1__getters.d.ts +2 -2
  49. package/esm/types/1_animation.d.ts +1 -1
  50. package/esm/types/1_bot_command_scope.d.ts +5 -4
  51. package/esm/types/1_chat_p.d.ts +5 -6
  52. package/esm/types/1_document.d.ts +1 -0
  53. package/esm/types/1_input_message_content.d.ts +88 -0
  54. package/esm/types/1_photo.d.ts +1 -1
  55. package/esm/types/1_sticker.d.ts +1 -1
  56. package/esm/types/1_user.d.ts +1 -1
  57. package/esm/types/1_video.d.ts +1 -1
  58. package/esm/types/1_video_note.d.ts +1 -1
  59. package/esm/types/2_inline_keyboard_button.d.ts +10 -10
  60. package/esm/types/2_message_reaction_count.d.ts +3 -0
  61. package/esm/types/2_message_reaction_count.js +17 -1
  62. package/esm/types/2_message_reactions.d.ts +15 -0
  63. package/esm/types/2_message_reactions.js +37 -0
  64. package/esm/types/3_reply_markup.d.ts +42 -0
  65. package/esm/types/3_reply_markup.js +117 -0
  66. package/esm/types/4_inline_query_result.d.ts +193 -0
  67. package/esm/types/{5_inline_query_result.js → 4_inline_query_result.js} +2 -2
  68. package/esm/types/4_message.d.ts +36 -39
  69. package/esm/types/4_message.js +7 -24
  70. package/esm/types/5_callback_query.d.ts +2 -1
  71. package/esm/types/5_chat.d.ts +8 -5
  72. package/esm/types/6_update.d.ts +12 -2
  73. package/esm/utilities/0_buffer.js +9 -6
  74. package/esm/utilities/0_object.d.ts +1 -1
  75. package/esm/utilities/0_object.js +1 -6
  76. package/esm/utilities/1_misc.d.ts +2 -0
  77. package/esm/utilities/1_misc.js +6 -0
  78. package/package.json +1 -2
  79. package/script/3_types.d.ts +10 -36
  80. package/script/3_types.js +10 -36
  81. package/script/4_constants.d.ts +1 -1
  82. package/script/4_constants.js +1 -1
  83. package/script/5_client.d.ts +1 -1
  84. package/script/5_client.js +1 -1
  85. package/script/_dnt.polyfills.d.ts +6 -0
  86. package/script/client/0_filters.d.ts +60 -0
  87. package/script/client/0_filters.js +31 -0
  88. package/script/client/0_message.js +1 -1
  89. package/script/client/{3_params.d.ts → 0_params.d.ts} +30 -33
  90. package/script/client/0_types.d.ts +39 -0
  91. package/script/client/0_types.js +6 -0
  92. package/script/client/0_utilities.d.ts +1 -47
  93. package/script/client/0_utilities.js +1 -29
  94. package/script/client/1_composer.d.ts +1 -1
  95. package/script/client/1_composer.js +2 -2
  96. package/script/client/1_file_manager.d.ts +10 -0
  97. package/script/client/1_file_manager.js +245 -0
  98. package/script/client/1_update_manager.d.ts +18 -0
  99. package/script/client/1_update_manager.js +557 -0
  100. package/script/client/2_message_manager.d.ts +40 -0
  101. package/script/client/2_message_manager.js +625 -0
  102. package/script/client/3_chat_list_manager.d.ts +21 -0
  103. package/script/client/3_chat_list_manager.js +357 -0
  104. package/script/client/3_reaction_manager.d.ts +16 -0
  105. package/script/client/3_reaction_manager.js +65 -0
  106. package/script/client/4_client.d.ts +187 -60
  107. package/script/client/4_client.js +491 -1699
  108. package/script/connection/1_connection_web_socket.js +5 -5
  109. package/script/deps/raw.githubusercontent.com/MTKruto/debug/main/deps.d.ts +1 -1
  110. package/script/deps/raw.githubusercontent.com/MTKruto/debug/main/deps.js +2 -2
  111. package/script/deps/raw.githubusercontent.com/MTKruto/object-inspect/main/index.d.ts +1 -0
  112. package/script/deps/raw.githubusercontent.com/MTKruto/object-inspect/main/index.js +550 -0
  113. package/script/mod.d.ts +1 -0
  114. package/script/mod.js +1 -0
  115. package/script/storage/0_storage.d.ts +5 -3
  116. package/script/storage/0_storage.js +14 -4
  117. package/script/tl/1_tl_object.d.ts +1 -0
  118. package/script/tl/1_tl_object.js +24 -0
  119. package/script/types/0_bot_command.d.ts +1 -0
  120. package/script/types/0_chat_member_rights.d.ts +37 -0
  121. package/script/types/0_chat_photo.d.ts +4 -4
  122. package/script/types/0_file_source.d.ts +5 -0
  123. package/script/types/0_giveaway_parameters.js +2 -1
  124. package/script/types/0_id.d.ts +4 -0
  125. package/script/types/0_message_entity.d.ts +20 -20
  126. package/script/types/1__getters.d.ts +2 -2
  127. package/script/types/1_animation.d.ts +1 -1
  128. package/script/types/1_bot_command_scope.d.ts +5 -4
  129. package/script/types/1_chat_p.d.ts +5 -6
  130. package/script/types/1_document.d.ts +1 -0
  131. package/script/types/1_input_message_content.d.ts +88 -0
  132. package/script/types/1_photo.d.ts +1 -1
  133. package/script/types/1_sticker.d.ts +1 -1
  134. package/script/types/1_user.d.ts +1 -1
  135. package/script/types/1_video.d.ts +1 -1
  136. package/script/types/1_video_note.d.ts +1 -1
  137. package/script/types/2_inline_keyboard_button.d.ts +10 -10
  138. package/script/types/2_message_reaction_count.d.ts +3 -0
  139. package/script/types/2_message_reaction_count.js +19 -0
  140. package/script/types/2_message_reactions.d.ts +15 -0
  141. package/script/types/2_message_reactions.js +41 -0
  142. package/script/types/3_reply_markup.d.ts +42 -0
  143. package/script/types/3_reply_markup.js +122 -0
  144. package/script/types/4_inline_query_result.d.ts +193 -0
  145. package/script/types/{5_inline_query_result.js → 4_inline_query_result.js} +3 -3
  146. package/script/types/4_message.d.ts +36 -39
  147. package/script/types/4_message.js +6 -23
  148. package/script/types/5_callback_query.d.ts +2 -1
  149. package/script/types/5_chat.d.ts +8 -5
  150. package/script/types/6_update.d.ts +12 -2
  151. package/script/utilities/0_buffer.js +9 -6
  152. package/script/utilities/0_object.d.ts +1 -1
  153. package/script/utilities/0_object.js +1 -6
  154. package/script/utilities/1_misc.d.ts +2 -0
  155. package/script/utilities/1_misc.js +9 -1
  156. package/esm/types/0_chat_id.d.ts +0 -4
  157. package/esm/types/0_force_reply.d.ts +0 -12
  158. package/esm/types/0_force_reply.js +0 -17
  159. package/esm/types/0_input_contact_message_content.d.ts +0 -11
  160. package/esm/types/0_input_location_message_content.d.ts +0 -15
  161. package/esm/types/0_input_venue_message_content.d.ts +0 -19
  162. package/esm/types/0_reply_keyboard_remove.d.ts +0 -10
  163. package/esm/types/0_reply_keyboard_remove.js +0 -8
  164. package/esm/types/1_input_invoice_message_content.d.ts +0 -23
  165. package/esm/types/1_input_text_message_content.d.ts +0 -8
  166. package/esm/types/1_input_text_message_content.js +0 -1
  167. package/esm/types/2_input_message_content.d.ts +0 -6
  168. package/esm/types/2_input_message_content.js +0 -1
  169. package/esm/types/2_reply_keyboard_markup.d.ts +0 -12
  170. package/esm/types/2_reply_keyboard_markup.js +0 -37
  171. package/esm/types/3_inline_keyboard_markup.d.ts +0 -8
  172. package/esm/types/3_inline_keyboard_markup.js +0 -24
  173. package/esm/types/4_inline_query_result_article.d.ts +0 -15
  174. package/esm/types/4_inline_query_result_article.js +0 -1
  175. package/esm/types/4_inline_query_result_audio.d.ts +0 -17
  176. package/esm/types/4_inline_query_result_audio.js +0 -1
  177. package/esm/types/4_inline_query_result_cached_audio.d.ts +0 -14
  178. package/esm/types/4_inline_query_result_cached_audio.js +0 -1
  179. package/esm/types/4_inline_query_result_cached_document.d.ts +0 -15
  180. package/esm/types/4_inline_query_result_cached_document.js +0 -1
  181. package/esm/types/4_inline_query_result_cached_gif.d.ts +0 -15
  182. package/esm/types/4_inline_query_result_cached_gif.js +0 -1
  183. package/esm/types/4_inline_query_result_cached_mpeg4_gif.d.ts +0 -15
  184. package/esm/types/4_inline_query_result_cached_mpeg4_gif.js +0 -1
  185. package/esm/types/4_inline_query_result_cached_photo.d.ts +0 -16
  186. package/esm/types/4_inline_query_result_cached_photo.js +0 -1
  187. package/esm/types/4_inline_query_result_cached_sticker.d.ts +0 -9
  188. package/esm/types/4_inline_query_result_cached_sticker.js +0 -1
  189. package/esm/types/4_inline_query_result_cached_video.d.ts +0 -16
  190. package/esm/types/4_inline_query_result_cached_video.js +0 -1
  191. package/esm/types/4_inline_query_result_cached_voice.d.ts +0 -15
  192. package/esm/types/4_inline_query_result_cached_voice.js +0 -1
  193. package/esm/types/4_inline_query_result_contact.d.ts +0 -15
  194. package/esm/types/4_inline_query_result_contact.js +0 -1
  195. package/esm/types/4_inline_query_result_document.d.ts +0 -18
  196. package/esm/types/4_inline_query_result_document.js +0 -1
  197. package/esm/types/4_inline_query_result_game.d.ts +0 -7
  198. package/esm/types/4_inline_query_result_game.js +0 -1
  199. package/esm/types/4_inline_query_result_gif.d.ts +0 -20
  200. package/esm/types/4_inline_query_result_gif.js +0 -1
  201. package/esm/types/4_inline_query_result_location.d.ts +0 -18
  202. package/esm/types/4_inline_query_result_location.js +0 -1
  203. package/esm/types/4_inline_query_result_mpeg4_gif.d.ts +0 -20
  204. package/esm/types/4_inline_query_result_mpeg4_gif.js +0 -1
  205. package/esm/types/4_inline_query_result_photo.d.ts +0 -19
  206. package/esm/types/4_inline_query_result_photo.js +0 -1
  207. package/esm/types/4_inline_query_result_venue.d.ts +0 -19
  208. package/esm/types/4_inline_query_result_venue.js +0 -1
  209. package/esm/types/4_inline_query_result_video.d.ts +0 -21
  210. package/esm/types/4_inline_query_result_video.js +0 -1
  211. package/esm/types/4_inline_query_result_voice.d.ts +0 -16
  212. package/esm/types/4_inline_query_result_voice.js +0 -1
  213. package/esm/types/4_reply_markup.d.ts +0 -7
  214. package/esm/types/4_reply_markup.js +0 -22
  215. package/esm/types/5_inline_query_result.d.ts +0 -28
  216. package/script/types/0_chat_id.d.ts +0 -4
  217. package/script/types/0_force_reply.d.ts +0 -12
  218. package/script/types/0_force_reply.js +0 -22
  219. package/script/types/0_input_contact_message_content.d.ts +0 -11
  220. package/script/types/0_input_location_message_content.d.ts +0 -15
  221. package/script/types/0_input_venue_message_content.d.ts +0 -19
  222. package/script/types/0_reply_keyboard_remove.d.ts +0 -10
  223. package/script/types/0_reply_keyboard_remove.js +0 -13
  224. package/script/types/1_input_invoice_message_content.d.ts +0 -23
  225. package/script/types/1_input_text_message_content.d.ts +0 -8
  226. package/script/types/1_input_text_message_content.js +0 -2
  227. package/script/types/2_input_message_content.d.ts +0 -6
  228. package/script/types/2_input_message_content.js +0 -2
  229. package/script/types/2_reply_keyboard_markup.d.ts +0 -12
  230. package/script/types/2_reply_keyboard_markup.js +0 -42
  231. package/script/types/3_inline_keyboard_markup.d.ts +0 -8
  232. package/script/types/3_inline_keyboard_markup.js +0 -29
  233. package/script/types/4_inline_query_result_article.d.ts +0 -15
  234. package/script/types/4_inline_query_result_article.js +0 -2
  235. package/script/types/4_inline_query_result_audio.d.ts +0 -17
  236. package/script/types/4_inline_query_result_audio.js +0 -2
  237. package/script/types/4_inline_query_result_cached_audio.d.ts +0 -14
  238. package/script/types/4_inline_query_result_cached_audio.js +0 -2
  239. package/script/types/4_inline_query_result_cached_document.d.ts +0 -15
  240. package/script/types/4_inline_query_result_cached_document.js +0 -2
  241. package/script/types/4_inline_query_result_cached_gif.d.ts +0 -15
  242. package/script/types/4_inline_query_result_cached_gif.js +0 -2
  243. package/script/types/4_inline_query_result_cached_mpeg4_gif.d.ts +0 -15
  244. package/script/types/4_inline_query_result_cached_mpeg4_gif.js +0 -2
  245. package/script/types/4_inline_query_result_cached_photo.d.ts +0 -16
  246. package/script/types/4_inline_query_result_cached_photo.js +0 -2
  247. package/script/types/4_inline_query_result_cached_sticker.d.ts +0 -9
  248. package/script/types/4_inline_query_result_cached_sticker.js +0 -2
  249. package/script/types/4_inline_query_result_cached_video.d.ts +0 -16
  250. package/script/types/4_inline_query_result_cached_video.js +0 -2
  251. package/script/types/4_inline_query_result_cached_voice.d.ts +0 -15
  252. package/script/types/4_inline_query_result_cached_voice.js +0 -2
  253. package/script/types/4_inline_query_result_contact.d.ts +0 -15
  254. package/script/types/4_inline_query_result_contact.js +0 -2
  255. package/script/types/4_inline_query_result_document.d.ts +0 -18
  256. package/script/types/4_inline_query_result_document.js +0 -2
  257. package/script/types/4_inline_query_result_game.d.ts +0 -7
  258. package/script/types/4_inline_query_result_game.js +0 -2
  259. package/script/types/4_inline_query_result_gif.d.ts +0 -20
  260. package/script/types/4_inline_query_result_gif.js +0 -2
  261. package/script/types/4_inline_query_result_location.d.ts +0 -18
  262. package/script/types/4_inline_query_result_location.js +0 -2
  263. package/script/types/4_inline_query_result_mpeg4_gif.d.ts +0 -20
  264. package/script/types/4_inline_query_result_mpeg4_gif.js +0 -2
  265. package/script/types/4_inline_query_result_photo.d.ts +0 -19
  266. package/script/types/4_inline_query_result_photo.js +0 -2
  267. package/script/types/4_inline_query_result_venue.d.ts +0 -19
  268. package/script/types/4_inline_query_result_venue.js +0 -2
  269. package/script/types/4_inline_query_result_video.d.ts +0 -21
  270. package/script/types/4_inline_query_result_video.js +0 -2
  271. package/script/types/4_inline_query_result_voice.d.ts +0 -16
  272. package/script/types/4_inline_query_result_voice.js +0 -2
  273. package/script/types/4_reply_markup.d.ts +0 -7
  274. package/script/types/4_reply_markup.js +0 -26
  275. package/script/types/5_inline_query_result.d.ts +0 -28
  276. /package/esm/{client/3_params.js → _dnt.polyfills.js} +0 -0
  277. /package/esm/{types/0_chat_id.js → client/0_params.js} +0 -0
  278. /package/esm/types/{0_input_contact_message_content.js → 0_chat_member_rights.js} +0 -0
  279. /package/esm/types/{0_input_location_message_content.js → 0_file_source.js} +0 -0
  280. /package/esm/types/{0_input_venue_message_content.js → 0_id.js} +0 -0
  281. /package/esm/types/{1_input_invoice_message_content.js → 1_input_message_content.js} +0 -0
  282. /package/script/{client/3_params.js → _dnt.polyfills.js} +0 -0
  283. /package/script/{types/0_chat_id.js → client/0_params.js} +0 -0
  284. /package/script/types/{0_input_contact_message_content.js → 0_chat_member_rights.js} +0 -0
  285. /package/script/types/{0_input_location_message_content.js → 0_file_source.js} +0 -0
  286. /package/script/types/{0_input_venue_message_content.js → 0_id.js} +0 -0
  287. /package/script/types/{1_input_invoice_message_content.js → 1_input_message_content.js} +0 -0
@@ -1,13 +1,11 @@
1
1
  import { debug } from "../0_deps.js";
2
- import { cleanObject, UNREACHABLE, ZERO_CHANNEL_ID } from "../1_utilities.js";
2
+ import { cleanObject, fromUnixTimestamp, UNREACHABLE, ZERO_CHANNEL_ID } from "../1_utilities.js";
3
3
  import { as, types } from "../2_tl.js";
4
4
  import { FileID, FileType, FileUniqueID, FileUniqueType } from "./0__file_id.js";
5
5
  import { constructContact } from "./0_contact.js";
6
6
  import { constructDice } from "./0_dice.js";
7
- import { constructForceReply } from "./0_force_reply.js";
8
7
  import { constructLocation } from "./0_location.js";
9
8
  import { constructMessageEntity } from "./0_message_entity.js";
10
- import { constructReplyKeyboardRemove } from "./0_reply_keyboard_remove.js";
11
9
  import { constructVenue } from "./0_venue.js";
12
10
  import { constructVoice } from "./0_voice.js";
13
11
  import { constructAnimation } from "./1_animation.js";
@@ -24,8 +22,7 @@ import { constructUser } from "./1_user.js";
24
22
  import { constructVideoNote } from "./1_video_note.js";
25
23
  import { constructVideo } from "./1_video.js";
26
24
  import { constructGame } from "./2_game.js";
27
- import { constructReplyKeyboardMarkup } from "./2_reply_keyboard_markup.js";
28
- import { constructInlineKeyboardMarkup } from "./3_inline_keyboard_markup.js";
25
+ import { constructReplyMarkup } from "./3_reply_markup.js";
29
26
  const d = debug("types/Message");
30
27
  const keys = {
31
28
  text: ["text"],
@@ -116,7 +113,7 @@ async function constructServiceMessage(message_, chat, getEntity, getMessage) {
116
113
  out: message_.out ?? false,
117
114
  id: message_.id,
118
115
  chat: chat,
119
- date: new Date(message_.date * 1000),
116
+ date: fromUnixTimestamp(message_.date),
120
117
  isTopicMessage: false,
121
118
  };
122
119
  Object.assign(message, await getSender(message_, getEntity));
@@ -294,7 +291,7 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
294
291
  id: message_.id,
295
292
  chat: chat_,
296
293
  link,
297
- date: new Date(message_.date * 1000),
294
+ date: fromUnixTimestamp(message_.date),
298
295
  views: message_.views,
299
296
  forwards: message_.forwards,
300
297
  isTopicMessage: false,
@@ -315,21 +312,7 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
315
312
  }
316
313
  Object.assign(message, await getSender(message_, getEntity));
317
314
  if (message_.reply_markup) {
318
- if (message_.reply_markup instanceof types.ReplyKeyboardMarkup) {
319
- message.replyMarkup = constructReplyKeyboardMarkup(message_.reply_markup);
320
- }
321
- else if (message_.reply_markup instanceof types.ReplyInlineMarkup) {
322
- message.replyMarkup = constructInlineKeyboardMarkup(message_.reply_markup);
323
- }
324
- else if (message_.reply_markup instanceof types.ReplyKeyboardHide) {
325
- message.replyMarkup = constructReplyKeyboardRemove(message_.reply_markup);
326
- }
327
- else if (message_.reply_markup instanceof types.ReplyKeyboardForceReply) {
328
- message.replyMarkup = constructForceReply(message_.reply_markup);
329
- }
330
- else {
331
- UNREACHABLE();
332
- }
315
+ message.replyMarkup = constructReplyMarkup(message_.reply_markup);
333
316
  }
334
317
  if (message_.via_bot_id != undefined) {
335
318
  const viaBot = await getEntity(new types.PeerUser({ user_id: message_.via_bot_id }));
@@ -348,7 +331,7 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
348
331
  message.forwardSenderName = message_.fwd_from.from_name;
349
332
  message.forwardId = message_.fwd_from.channel_post;
350
333
  message.forwardSignature = message_.fwd_from.post_author;
351
- message.forwardDate = new Date(message_.fwd_from.date * 1000);
334
+ message.forwardDate = fromUnixTimestamp(message_.fwd_from.date);
352
335
  if (message_.fwd_from.from_id instanceof types.PeerUser) {
353
336
  const entity = await getEntity(message_.fwd_from.from_id);
354
337
  if (entity) {
@@ -372,7 +355,7 @@ export async function constructMessage(message_, getEntity, getMessage, getStick
372
355
  message.mediaGroupId = String(message_.grouped_id);
373
356
  }
374
357
  if (message_.edit_date != undefined) {
375
- message.editDate = new Date(message_.edit_date * 1000);
358
+ message.editDate = fromUnixTimestamp(message_.edit_date);
376
359
  }
377
360
  if (message_.message && message_.media === undefined) {
378
361
  return {
@@ -2,12 +2,13 @@ import { types } from "../2_tl.js";
2
2
  import { EntityGetter } from "./1__getters.js";
3
3
  import { User } from "./1_user.js";
4
4
  import { Message, MessageGetter } from "./4_message.js";
5
+ /** A received callback query. */
5
6
  export interface CallbackQuery {
6
7
  id: string;
7
8
  from: User;
8
9
  message?: Message;
9
10
  inlineMessageId?: string;
10
- chatInstance?: string;
11
+ chatInstance: string;
11
12
  data?: string;
12
13
  gameShortName?: string;
13
14
  }
@@ -5,30 +5,33 @@ import { ChatPChannel, ChatPGroup, ChatPPrivate, ChatPSupergroup } from "./1_cha
5
5
  import { StickerSetNameGetter } from "./1_sticker.js";
6
6
  import { Message, MessageGetter } from "./4_message.js";
7
7
  /** @unlisted */
8
- export interface ChatBase {
8
+ export interface _ChatBase {
9
9
  order: string;
10
10
  lastMessage?: Omit<Message, "replyToMessage">;
11
11
  pinned: number;
12
12
  }
13
13
  /** @unlisted */
14
- export interface ChatChannel extends ChatBase, ChatPChannel {
14
+ export interface ChatChannel extends _ChatBase, ChatPChannel {
15
15
  also?: string[];
16
16
  photo?: ChatPhotoChat;
17
17
  }
18
18
  /** @unlisted */
19
- export interface ChatSupergroup extends ChatBase, ChatPSupergroup {
19
+ export interface ChatSupergroup extends _ChatBase, ChatPSupergroup {
20
20
  also?: string[];
21
21
  photo?: ChatPhotoChat;
22
22
  }
23
23
  /** @unlisted */
24
- export interface ChatGroup extends ChatBase, ChatPGroup {
24
+ export interface ChatGroup extends _ChatBase, ChatPGroup {
25
25
  photo?: ChatPhotoChat;
26
26
  }
27
27
  /** @unlisted */
28
- export interface ChatPrivate extends ChatBase, ChatPPrivate {
28
+ export interface ChatPrivate extends _ChatBase, ChatPPrivate {
29
29
  also?: string[];
30
30
  photo?: ChatPhotoUser;
31
31
  }
32
+ /**
33
+ * A chat with more fields.
34
+ */
32
35
  export type Chat = ChatChannel | ChatSupergroup | ChatGroup | ChatPrivate;
33
36
  export declare function getChatOrder(lastMessage: Omit<Message, "replyToMessage"> | undefined, pinned: number): string;
34
37
  export declare function constructChat(dialog: enums.Dialog, dialogs: types.messages.Dialogs | types.messages.DialogsSlice, pinnedChats: number[], getEntity: EntityGetter, getMessage: MessageGetter, getStickerSetName: StickerSetNameGetter): Promise<Chat>;
@@ -5,6 +5,7 @@ import { ChosenInlineResult } from "./2_chosen_inline_result.js";
5
5
  import { InlineQuery } from "./2_inline_query.js";
6
6
  import { MessageInteractions } from "./2_message_interactions.js";
7
7
  import { MessageReactionCount } from "./2_message_reaction_count.js";
8
+ import { MessageReactions } from "./2_message_reactions.js";
8
9
  import { Message } from "./4_message.js";
9
10
  import { CallbackQuery } from "./5_callback_query.js";
10
11
  import { Chat } from "./5_chat.js";
@@ -175,6 +176,13 @@ export interface UpdateMessageReactionCount {
175
176
  /** The new message reactions. */
176
177
  messageReactionCount: MessageReactionCount;
177
178
  }
179
+ /**
180
+ * The reactions made to a message by a user were changed. Bot-only.
181
+ * @unlisted
182
+ */
183
+ export interface UpdateMessageReactions {
184
+ messageReactions: MessageReactions;
185
+ }
178
186
  /** @unlisted */
179
187
  export interface UpdateMap {
180
188
  message: UpdateNewMessage;
@@ -190,7 +198,9 @@ export interface UpdateMap {
190
198
  deletedChat: UpdateDeletedChat;
191
199
  messageInteractions: UpdateMessageInteractions;
192
200
  messageReactionCount: UpdateMessageReactionCount;
201
+ messageReactions: UpdateMessageReactions;
193
202
  }
194
203
  /** @unlisted */
195
- export type UpdateIntersection<T> = T & Partial<UpdateConnectionState & UpdateAuthorizationState & UpdateNewMessage & UpdateEditedMessage & UpdateDeletedMessages & UpdateCallbackQuery & UpdateInlineQuery & UpdateChosenInlineResult & UpdateNewChat & UpdateEditedChat & UpdateDeletedChat & UpdateMessageInteractions & UpdateMessageReactionCount>;
196
- export type Update = UpdateConnectionState | UpdateAuthorizationState | UpdateNewMessage | UpdateEditedMessage | UpdateDeletedMessages | UpdateCallbackQuery | UpdateInlineQuery | UpdateChosenInlineResult | UpdateNewChat | UpdateEditedChat | UpdateDeletedChat | UpdateMessageInteractions | UpdateMessageReactionCount;
204
+ export type UpdateIntersection<T> = T & Partial<UpdateConnectionState & UpdateAuthorizationState & UpdateNewMessage & UpdateEditedMessage & UpdateDeletedMessages & UpdateCallbackQuery & UpdateInlineQuery & UpdateChosenInlineResult & UpdateNewChat & UpdateEditedChat & UpdateDeletedChat & UpdateMessageInteractions & UpdateMessageReactionCount & UpdateMessageReactions>;
205
+ /** An incoming update. */
206
+ export type Update = UpdateConnectionState | UpdateAuthorizationState | UpdateNewMessage | UpdateEditedMessage | UpdateDeletedMessages | UpdateCallbackQuery | UpdateInlineQuery | UpdateChosenInlineResult | UpdateNewChat | UpdateEditedChat | UpdateDeletedChat | UpdateMessageInteractions | UpdateMessageReactionCount | UpdateMessageReactions;
@@ -1,11 +1,14 @@
1
1
  export function concat(...buffers) {
2
- const bytes = new Array();
3
- for (const buffer of buffers) {
4
- for (const byte of buffer) {
5
- bytes.push(byte);
6
- }
2
+ let length = 0;
3
+ for (const b of buffers) {
4
+ length += b.length;
5
+ }
6
+ const buffer = new Uint8Array(length);
7
+ let offset = 0;
8
+ for (const b of buffers) {
9
+ buffer.set(b, offset);
10
+ offset += b.length;
7
11
  }
8
- const buffer = new Uint8Array(bytes);
9
12
  return buffer;
10
13
  }
11
14
  const bufferFromHexString = (hexString) => Uint8Array.from(hexString.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)));
@@ -1 +1 @@
1
- export declare function cleanObject<T extends Record<string, any>>(object: T, recursive?: boolean): T;
1
+ export declare function cleanObject<T extends Record<string, any>>(object: T): T;
@@ -1,15 +1,10 @@
1
1
  // deno-lint-ignore no-explicit-any
2
- export function cleanObject(object, recursive = true) {
2
+ export function cleanObject(object) {
3
3
  for (const [k, v] of Object.entries(object)) {
4
4
  switch (typeof v) {
5
5
  case "undefined":
6
6
  delete object[k];
7
7
  break;
8
- case "object":
9
- if (recursive) {
10
- // @ts-ignore: this works, no idea why it complains
11
- object[k] = cleanObject(v);
12
- }
13
8
  }
14
9
  }
15
10
  return object;
@@ -4,3 +4,5 @@ export declare function mustPromptNumber(message: string): number;
4
4
  export declare function mustPromptOneOf<T extends readonly string[]>(message: string, choices: T): T[number];
5
5
  export declare const ZERO_CHANNEL_ID = -1000000000000;
6
6
  export declare const VECTOR_CONSTRUCTOR = 481674261;
7
+ export declare function toUnixTimestamp(date: Date): number;
8
+ export declare function fromUnixTimestamp(date: number): Date;
@@ -28,3 +28,9 @@ export function mustPromptOneOf(message, choices) {
28
28
  }
29
29
  export const ZERO_CHANNEL_ID = -1000000000000;
30
30
  export const VECTOR_CONSTRUCTOR = 0x1CB5C415;
31
+ export function toUnixTimestamp(date) {
32
+ return Math.floor(date.getTime() / 1000);
33
+ }
34
+ export function fromUnixTimestamp(date) {
35
+ return new Date(date * 1000);
36
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mtkruto/node",
3
- "version": "0.1.138",
3
+ "version": "0.1.140",
4
4
  "description": "MTKruto for Node.js",
5
5
  "author": "Roj <rojvv@icloud.com>",
6
6
  "repository": {
@@ -20,7 +20,6 @@
20
20
  "test": "node test_runner.js"
21
21
  },
22
22
  "dependencies": {
23
- "object-inspect": "1.12.3",
24
23
  "@deno/shim-deno": "~0.17.0",
25
24
  "@deno/shim-crypto": "~0.3.1",
26
25
  "ws": "^8.13.0"
@@ -1,18 +1,16 @@
1
- export * from "./types/0__file_id.js";
2
1
  export * from "./types/0_authorization_state.js";
3
2
  export * from "./types/0_bot_command.js";
4
3
  export * from "./types/0_chat_action.js";
5
4
  export * from "./types/0_chat_administrator_rights.js";
6
- export * from "./types/0_chat_id.js";
5
+ export * from "./types/0_chat_member_rights.js";
7
6
  export * from "./types/0_chat_photo.js";
8
7
  export * from "./types/0_connection_state.js";
9
8
  export * from "./types/0_contact.js";
10
9
  export * from "./types/0_dice.js";
11
- export * from "./types/0_force_reply.js";
10
+ export * from "./types/0__file_id.js";
11
+ export * from "./types/0_file_source.js";
12
12
  export * from "./types/0_giveaway_parameters.js";
13
- export * from "./types/0_input_contact_message_content.js";
14
- export * from "./types/0_input_location_message_content.js";
15
- export * from "./types/0_input_venue_message_content.js";
13
+ export * from "./types/0_id.js";
16
14
  export * from "./types/0_keyboard_button_poll_type.js";
17
15
  export * from "./types/0_labeled_price.js";
18
16
  export * from "./types/0_location.js";
@@ -24,22 +22,20 @@ export * from "./types/0_network_statistics_entry.js";
24
22
  export * from "./types/0_parse_mode.js";
25
23
  export * from "./types/0_poll_option.js";
26
24
  export * from "./types/0_reaction.js";
27
- export * from "./types/0_reply_keyboard_remove.js";
28
25
  export * from "./types/0_restriction_reason.js";
29
26
  export * from "./types/0_thumbnail.js";
30
27
  export * from "./types/0_venue.js";
31
28
  export * from "./types/0_voice.js";
32
29
  export * from "./types/0_web_app_info.js";
33
- export * from "./types/1__getters.js";
34
30
  export * from "./types/1_animation.js";
35
31
  export * from "./types/1_audio.js";
36
32
  export * from "./types/1_bot_command_scope.js";
37
33
  export * from "./types/1_chat_p.js";
38
34
  export * from "./types/1_document.js";
35
+ export * from "./types/1__getters.js";
39
36
  export * from "./types/1_giveaway.js";
40
37
  export * from "./types/1_inline_query_result_button.js";
41
- export * from "./types/1_input_invoice_message_content.js";
42
- export * from "./types/1_input_text_message_content.js";
38
+ export * from "./types/1_input_message_content.js";
43
39
  export * from "./types/1_keyboard_button.js";
44
40
  export * from "./types/1_message_reaction.js";
45
41
  export * from "./types/1_network_statistics.js";
@@ -49,40 +45,18 @@ export * from "./types/1_reaction_count.js";
49
45
  export * from "./types/1_reply_quote.js";
50
46
  export * from "./types/1_sticker.js";
51
47
  export * from "./types/1_user.js";
52
- export * from "./types/1_video.js";
53
48
  export * from "./types/1_video_note.js";
49
+ export * from "./types/1_video.js";
54
50
  export * from "./types/2_chosen_inline_result.js";
55
51
  export * from "./types/2_game.js";
56
52
  export * from "./types/2_inline_keyboard_button.js";
57
53
  export * from "./types/2_inline_query.js";
58
- export * from "./types/2_input_message_content.js";
59
54
  export * from "./types/2_message_interactions.js";
60
55
  export * from "./types/2_message_reaction_count.js";
61
- export * from "./types/2_reply_keyboard_markup.js";
62
- export * from "./types/3_inline_keyboard_markup.js";
63
- export * from "./types/4_inline_query_result_article.js";
64
- export * from "./types/4_inline_query_result_audio.js";
65
- export * from "./types/4_inline_query_result_cached_audio.js";
66
- export * from "./types/4_inline_query_result_cached_document.js";
67
- export * from "./types/4_inline_query_result_cached_gif.js";
68
- export * from "./types/4_inline_query_result_cached_mpeg4_gif.js";
69
- export * from "./types/4_inline_query_result_cached_photo.js";
70
- export * from "./types/4_inline_query_result_cached_sticker.js";
71
- export * from "./types/4_inline_query_result_cached_video.js";
72
- export * from "./types/4_inline_query_result_cached_voice.js";
73
- export * from "./types/4_inline_query_result_contact.js";
74
- export * from "./types/4_inline_query_result_document.js";
75
- export * from "./types/4_inline_query_result_game.js";
76
- export * from "./types/4_inline_query_result_gif.js";
77
- export * from "./types/4_inline_query_result_location.js";
78
- export * from "./types/4_inline_query_result_mpeg4_gif.js";
79
- export * from "./types/4_inline_query_result_photo.js";
80
- export * from "./types/4_inline_query_result_venue.js";
81
- export * from "./types/4_inline_query_result_video.js";
82
- export * from "./types/4_inline_query_result_voice.js";
56
+ export * from "./types/2_message_reactions.js";
57
+ export * from "./types/3_reply_markup.js";
58
+ export * from "./types/4_inline_query_result.js";
83
59
  export * from "./types/4_message.js";
84
- export * from "./types/4_reply_markup.js";
85
60
  export * from "./types/5_callback_query.js";
86
61
  export * from "./types/5_chat.js";
87
- export * from "./types/5_inline_query_result.js";
88
62
  export * from "./types/6_update.js";
package/script/3_types.js CHANGED
@@ -14,21 +14,19 @@ 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_authorization_state.js"), exports);
19
18
  __exportStar(require("./types/0_bot_command.js"), exports);
20
19
  __exportStar(require("./types/0_chat_action.js"), exports);
21
20
  __exportStar(require("./types/0_chat_administrator_rights.js"), exports);
22
- __exportStar(require("./types/0_chat_id.js"), exports);
21
+ __exportStar(require("./types/0_chat_member_rights.js"), exports);
23
22
  __exportStar(require("./types/0_chat_photo.js"), exports);
24
23
  __exportStar(require("./types/0_connection_state.js"), exports);
25
24
  __exportStar(require("./types/0_contact.js"), exports);
26
25
  __exportStar(require("./types/0_dice.js"), exports);
27
- __exportStar(require("./types/0_force_reply.js"), exports);
26
+ __exportStar(require("./types/0__file_id.js"), exports);
27
+ __exportStar(require("./types/0_file_source.js"), exports);
28
28
  __exportStar(require("./types/0_giveaway_parameters.js"), exports);
29
- __exportStar(require("./types/0_input_contact_message_content.js"), exports);
30
- __exportStar(require("./types/0_input_location_message_content.js"), exports);
31
- __exportStar(require("./types/0_input_venue_message_content.js"), exports);
29
+ __exportStar(require("./types/0_id.js"), exports);
32
30
  __exportStar(require("./types/0_keyboard_button_poll_type.js"), exports);
33
31
  __exportStar(require("./types/0_labeled_price.js"), exports);
34
32
  __exportStar(require("./types/0_location.js"), exports);
@@ -40,22 +38,20 @@ __exportStar(require("./types/0_network_statistics_entry.js"), exports);
40
38
  __exportStar(require("./types/0_parse_mode.js"), exports);
41
39
  __exportStar(require("./types/0_poll_option.js"), exports);
42
40
  __exportStar(require("./types/0_reaction.js"), exports);
43
- __exportStar(require("./types/0_reply_keyboard_remove.js"), exports);
44
41
  __exportStar(require("./types/0_restriction_reason.js"), exports);
45
42
  __exportStar(require("./types/0_thumbnail.js"), exports);
46
43
  __exportStar(require("./types/0_venue.js"), exports);
47
44
  __exportStar(require("./types/0_voice.js"), exports);
48
45
  __exportStar(require("./types/0_web_app_info.js"), exports);
49
- __exportStar(require("./types/1__getters.js"), exports);
50
46
  __exportStar(require("./types/1_animation.js"), exports);
51
47
  __exportStar(require("./types/1_audio.js"), exports);
52
48
  __exportStar(require("./types/1_bot_command_scope.js"), exports);
53
49
  __exportStar(require("./types/1_chat_p.js"), exports);
54
50
  __exportStar(require("./types/1_document.js"), exports);
51
+ __exportStar(require("./types/1__getters.js"), exports);
55
52
  __exportStar(require("./types/1_giveaway.js"), exports);
56
53
  __exportStar(require("./types/1_inline_query_result_button.js"), exports);
57
- __exportStar(require("./types/1_input_invoice_message_content.js"), exports);
58
- __exportStar(require("./types/1_input_text_message_content.js"), exports);
54
+ __exportStar(require("./types/1_input_message_content.js"), exports);
59
55
  __exportStar(require("./types/1_keyboard_button.js"), exports);
60
56
  __exportStar(require("./types/1_message_reaction.js"), exports);
61
57
  __exportStar(require("./types/1_network_statistics.js"), exports);
@@ -65,40 +61,18 @@ __exportStar(require("./types/1_reaction_count.js"), exports);
65
61
  __exportStar(require("./types/1_reply_quote.js"), exports);
66
62
  __exportStar(require("./types/1_sticker.js"), exports);
67
63
  __exportStar(require("./types/1_user.js"), exports);
68
- __exportStar(require("./types/1_video.js"), exports);
69
64
  __exportStar(require("./types/1_video_note.js"), exports);
65
+ __exportStar(require("./types/1_video.js"), exports);
70
66
  __exportStar(require("./types/2_chosen_inline_result.js"), exports);
71
67
  __exportStar(require("./types/2_game.js"), exports);
72
68
  __exportStar(require("./types/2_inline_keyboard_button.js"), exports);
73
69
  __exportStar(require("./types/2_inline_query.js"), exports);
74
- __exportStar(require("./types/2_input_message_content.js"), exports);
75
70
  __exportStar(require("./types/2_message_interactions.js"), exports);
76
71
  __exportStar(require("./types/2_message_reaction_count.js"), exports);
77
- __exportStar(require("./types/2_reply_keyboard_markup.js"), exports);
78
- __exportStar(require("./types/3_inline_keyboard_markup.js"), exports);
79
- __exportStar(require("./types/4_inline_query_result_article.js"), exports);
80
- __exportStar(require("./types/4_inline_query_result_audio.js"), exports);
81
- __exportStar(require("./types/4_inline_query_result_cached_audio.js"), exports);
82
- __exportStar(require("./types/4_inline_query_result_cached_document.js"), exports);
83
- __exportStar(require("./types/4_inline_query_result_cached_gif.js"), exports);
84
- __exportStar(require("./types/4_inline_query_result_cached_mpeg4_gif.js"), exports);
85
- __exportStar(require("./types/4_inline_query_result_cached_photo.js"), exports);
86
- __exportStar(require("./types/4_inline_query_result_cached_sticker.js"), exports);
87
- __exportStar(require("./types/4_inline_query_result_cached_video.js"), exports);
88
- __exportStar(require("./types/4_inline_query_result_cached_voice.js"), exports);
89
- __exportStar(require("./types/4_inline_query_result_contact.js"), exports);
90
- __exportStar(require("./types/4_inline_query_result_document.js"), exports);
91
- __exportStar(require("./types/4_inline_query_result_game.js"), exports);
92
- __exportStar(require("./types/4_inline_query_result_gif.js"), exports);
93
- __exportStar(require("./types/4_inline_query_result_location.js"), exports);
94
- __exportStar(require("./types/4_inline_query_result_mpeg4_gif.js"), exports);
95
- __exportStar(require("./types/4_inline_query_result_photo.js"), exports);
96
- __exportStar(require("./types/4_inline_query_result_venue.js"), exports);
97
- __exportStar(require("./types/4_inline_query_result_video.js"), exports);
98
- __exportStar(require("./types/4_inline_query_result_voice.js"), exports);
72
+ __exportStar(require("./types/2_message_reactions.js"), exports);
73
+ __exportStar(require("./types/3_reply_markup.js"), exports);
74
+ __exportStar(require("./types/4_inline_query_result.js"), exports);
99
75
  __exportStar(require("./types/4_message.js"), exports);
100
- __exportStar(require("./types/4_reply_markup.js"), exports);
101
76
  __exportStar(require("./types/5_callback_query.js"), exports);
102
77
  __exportStar(require("./types/5_chat.js"), exports);
103
- __exportStar(require("./types/5_inline_query_result.js"), exports);
104
78
  __exportStar(require("./types/6_update.js"), exports);
@@ -4,7 +4,7 @@ export type PublicKeys = readonly [bigint, [bigint, bigint]][];
4
4
  export declare const PUBLIC_KEYS: PublicKeys;
5
5
  export declare const INITIAL_DC: DC;
6
6
  export declare const LAYER = 169;
7
- export declare const APP_VERSION = "MTKruto 0.1.138";
7
+ export declare const APP_VERSION = "MTKruto 0.1.140";
8
8
  export declare const DEVICE_MODEL: string;
9
9
  export declare const LANG_CODE: string;
10
10
  export declare const LANG_PACK = "";
@@ -79,7 +79,7 @@ exports.PUBLIC_KEYS = Object.freeze([
79
79
  ]);
80
80
  exports.INITIAL_DC = "2";
81
81
  exports.LAYER = 169;
82
- exports.APP_VERSION = "MTKruto 0.1.138";
82
+ exports.APP_VERSION = "MTKruto 0.1.140";
83
83
  // @ts-ignore: lib
84
84
  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;
85
85
  exports.LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
@@ -1,4 +1,4 @@
1
+ export * from "./client/0_params.js";
1
2
  export * from "./client/2_client_plain.js";
2
- export * from "./client/3_params.js";
3
3
  export * from "./client/4_client.js";
4
4
  export * from "./client/5_composer.js";
@@ -14,7 +14,7 @@ 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("./client/0_params.js"), exports);
17
18
  __exportStar(require("./client/2_client_plain.js"), exports);
18
- __exportStar(require("./client/3_params.js"), exports);
19
19
  __exportStar(require("./client/4_client.js"), exports);
20
20
  __exportStar(require("./client/5_composer.js"), exports);
@@ -0,0 +1,6 @@
1
+ declare global {
2
+ interface Error {
3
+ cause?: unknown;
4
+ }
5
+ }
6
+ export {};
@@ -0,0 +1,60 @@
1
+ import { CallbackQuery, ChatP, ChosenInlineResult, MessageTypes, UpdateMap, User } from "../3_types.js";
2
+ type AnyLevel1 = keyof UpdateMap;
3
+ type GetLevel1Type<L1 extends AnyLevel1> = UpdateMap[L1];
4
+ interface Level2Map {
5
+ "message": keyof MessageTypes;
6
+ "editedMessage": keyof MessageTypes;
7
+ "callbackQuery": "message" | "inlineMessageId" | "data" | "gameShortName";
8
+ "chosenInlineResult": "inlineMessageId";
9
+ }
10
+ interface Level2TypeMap {
11
+ "callbackQuery": CallbackQuery;
12
+ "chosenInlineResult": ChosenInlineResult;
13
+ }
14
+ type GetAnyLevel2<L1 extends AnyLevel1> = L1 extends keyof Level2Map ? Level2Map[L1] : never;
15
+ type AnyLevel2<L1 extends AnyLevel1 = AnyLevel1> = L1 extends unknown ? `${L1 extends "message" | "editedMessage" ? L1 | "" : L1}:${GetAnyLevel2<L1>}` : never;
16
+ type GetLevel2Type<L1 extends string, L2 extends string> = L2 extends keyof MessageTypes ? L1 extends "" ? {
17
+ [P in "message" | "editedMessage"]?: MessageTypes[L2];
18
+ } : L1 extends "message" | "editedMessage" ? {
19
+ [P in L1]: MessageTypes[L2];
20
+ } : never : L1 extends keyof Level2TypeMap ? L2 extends Level2Map[L1] ? {
21
+ [P in L1]: Level2TypeMap[P] & {
22
+ [P in L2]-?: P extends keyof Level2TypeMap[L1] ? NonNullable<Level2TypeMap[L1][P]> : never;
23
+ };
24
+ } : never : never;
25
+ type AnyLevelX = AnyLevel1 | AnyLevel2;
26
+ type FilterCore<Q extends AnyLevelX = AnyLevelX> = Q extends AnyLevel1 ? GetLevel1Type<Q> : Q extends `${infer L1}:${infer L2}` ? GetLevel2Type<L1, L2> : 1;
27
+ type Chat<T> = "msg" extends keyof T ? T & {
28
+ chat: ChatP;
29
+ } : "messageReactions" extends keyof T ? T & {
30
+ chat: ChatP;
31
+ } : "messageReactionCount" extends keyof T ? T & {
32
+ chat: ChatP;
33
+ } : T;
34
+ type Msg<T> = "message" extends keyof T ? T & {
35
+ msg: NonNullable<T["message"]>;
36
+ } : "editedMessage" extends keyof T ? T & {
37
+ msg: NonNullable<T["editedMessage"]>;
38
+ } : "callbackQuery" extends keyof T ? "message" extends keyof T["callbackQuery"] ? T & {
39
+ msg: T["callbackQuery"]["message"];
40
+ } : T : T;
41
+ type From<T> = "callbackQuery" extends keyof T ? T & {
42
+ from: User;
43
+ } : "inlineQuery" extends keyof T ? T & {
44
+ from: User;
45
+ } : "message" extends keyof T ? T & {
46
+ from?: User;
47
+ } : "editedMessage" extends keyof T ? T & {
48
+ from?: User;
49
+ } : T;
50
+ type SenderChat<T> = "message" extends keyof T ? T & {
51
+ senderChat?: ChatP;
52
+ } : "editedMessage" extends keyof T ? T & {
53
+ senderChat?: ChatP;
54
+ } : T;
55
+ type Shortcuts<T> = SenderChat<From<Chat<Msg<T>>>>;
56
+ type Filter<Q extends AnyLevelX> = Shortcuts<FilterCore<Q>>;
57
+ export type FilterQuery = AnyLevelX;
58
+ export type WithFilter<T, Q extends FilterQuery> = T & Filter<Q>;
59
+ export declare function match<Q extends FilterQuery, T extends object>(filter: Q, value: T): boolean;
60
+ export {};
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.match = void 0;
4
+ function match(filter, value) {
5
+ let [type, ...other] = filter.split(":");
6
+ if (type != "" && !(type in value)) {
7
+ return false;
8
+ }
9
+ if (type == "") {
10
+ if (other.length != 1) {
11
+ return false;
12
+ }
13
+ if ("message" in value) {
14
+ type = "message";
15
+ }
16
+ else if ("editedMessage" in value) {
17
+ type = "editedMessage";
18
+ }
19
+ else {
20
+ return false;
21
+ }
22
+ }
23
+ const field = other[0];
24
+ if (field) {
25
+ if (!(field in value[type])) {
26
+ return false;
27
+ }
28
+ }
29
+ return true;
30
+ }
31
+ exports.match = match;
@@ -5,7 +5,7 @@ const _0_deps_js_1 = require("../0_deps.js");
5
5
  const _1_utilities_js_1 = require("../1_utilities.js");
6
6
  const _2_tl_js_1 = require("../2_tl.js");
7
7
  function getMessageId(lastMsgId) {
8
- const now = new Date().getTime() / 1000 + 0;
8
+ const now = (0, _1_utilities_js_1.toUnixTimestamp)(new Date()) + 0;
9
9
  const nanoseconds = Math.floor((now - Math.floor(now)) * 1e9);
10
10
  let newMsgId = (BigInt(Math.floor(now)) <<
11
11
  32n) ||