@mtcute/core 0.10.2 → 0.11.0

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 (963) hide show
  1. package/cjs/highlevel/base.d.ts +1 -1
  2. package/cjs/highlevel/base.js +29 -23
  3. package/cjs/highlevel/base.js.map +1 -1
  4. package/cjs/highlevel/client.d.ts +3 -2
  5. package/cjs/highlevel/client.js +1 -0
  6. package/cjs/highlevel/client.js.map +1 -1
  7. package/cjs/highlevel/managers/app-config-manager.js +7 -5
  8. package/cjs/highlevel/managers/app-config-manager.js.map +1 -1
  9. package/cjs/highlevel/methods/_init.js.map +1 -1
  10. package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
  11. package/cjs/highlevel/methods/auth/start.js.map +1 -1
  12. package/cjs/highlevel/methods/auth/utils.js.map +1 -1
  13. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  14. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  15. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
  17. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
  18. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  19. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
  20. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  21. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
  22. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  23. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
  24. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
  25. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  26. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
  27. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  28. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  29. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  30. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  31. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  32. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
  33. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  34. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
  35. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
  36. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  37. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  38. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
  39. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
  40. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  41. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
  42. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  43. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  44. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  45. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  46. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  47. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  48. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  49. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  50. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  51. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
  52. package/cjs/highlevel/methods/files/download-iterable.js +1 -1
  53. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  54. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
  55. package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
  56. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  57. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
  58. package/cjs/highlevel/methods/files/normalize-input-media.js +1 -2
  59. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  60. package/cjs/highlevel/methods/files/upload-file.js +7 -6
  61. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  62. package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
  63. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  64. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  65. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  66. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  67. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  68. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
  69. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  70. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  71. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  72. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  73. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  74. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  75. package/cjs/highlevel/methods/messages/get-history.js +5 -1
  76. package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
  77. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  78. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
  79. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  80. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
  81. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
  82. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
  83. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  84. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  85. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  86. package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
  87. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
  88. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
  89. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  90. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
  91. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
  92. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  93. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  94. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
  95. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  96. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  97. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
  98. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
  99. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  100. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  101. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
  102. package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
  103. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
  104. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  105. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  106. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  107. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
  108. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  109. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  110. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  111. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  112. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
  113. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
  114. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
  115. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  116. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  117. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  118. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  119. package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
  120. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  121. package/cjs/highlevel/methods/users/get-users.js.map +1 -1
  122. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  123. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  124. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
  125. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  126. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  127. package/cjs/highlevel/storage/service/current-user.js +2 -0
  128. package/cjs/highlevel/storage/service/current-user.js.map +1 -1
  129. package/cjs/highlevel/storage/service/peers.js +5 -1
  130. package/cjs/highlevel/storage/service/peers.js.map +1 -1
  131. package/cjs/highlevel/storage/service/ref-messages.js +3 -0
  132. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
  133. package/cjs/highlevel/storage/service/updates.js +1 -0
  134. package/cjs/highlevel/storage/service/updates.js.map +1 -1
  135. package/cjs/highlevel/storage/storage.d.ts +1 -1
  136. package/cjs/highlevel/storage/storage.js +17 -4
  137. package/cjs/highlevel/storage/storage.js.map +1 -1
  138. package/cjs/highlevel/types/auth/sent-code.js +1 -0
  139. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  140. package/cjs/highlevel/types/bots/game-high-score.js +2 -0
  141. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
  142. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
  143. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
  144. package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
  145. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
  146. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
  147. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
  148. package/cjs/highlevel/types/conversation.js +13 -7
  149. package/cjs/highlevel/types/conversation.js.map +1 -1
  150. package/cjs/highlevel/types/errors.js +3 -0
  151. package/cjs/highlevel/types/errors.js.map +1 -1
  152. package/cjs/highlevel/types/files/file-location.js +3 -0
  153. package/cjs/highlevel/types/files/file-location.js.map +1 -1
  154. package/cjs/highlevel/types/files/uploaded-file.js +1 -1
  155. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
  156. package/cjs/highlevel/types/files/utils.d.ts +3 -3
  157. package/cjs/highlevel/types/files/utils.js.map +1 -1
  158. package/cjs/highlevel/types/files/web-document.js +1 -0
  159. package/cjs/highlevel/types/files/web-document.js.map +1 -1
  160. package/cjs/highlevel/types/media/audio.js +3 -2
  161. package/cjs/highlevel/types/media/audio.js.map +1 -1
  162. package/cjs/highlevel/types/media/contact.js +2 -1
  163. package/cjs/highlevel/types/media/contact.js.map +1 -1
  164. package/cjs/highlevel/types/media/dice.js +125 -124
  165. package/cjs/highlevel/types/media/dice.js.map +1 -1
  166. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  167. package/cjs/highlevel/types/media/document.js +2 -4
  168. package/cjs/highlevel/types/media/document.js.map +1 -1
  169. package/cjs/highlevel/types/media/game.js +2 -1
  170. package/cjs/highlevel/types/media/game.js.map +1 -1
  171. package/cjs/highlevel/types/media/invoice.js +4 -1
  172. package/cjs/highlevel/types/media/invoice.js.map +1 -1
  173. package/cjs/highlevel/types/media/location.js +4 -5
  174. package/cjs/highlevel/types/media/location.js.map +1 -1
  175. package/cjs/highlevel/types/media/photo.js +8 -1
  176. package/cjs/highlevel/types/media/photo.js.map +1 -1
  177. package/cjs/highlevel/types/media/poll.js +4 -1
  178. package/cjs/highlevel/types/media/poll.js.map +1 -1
  179. package/cjs/highlevel/types/media/sticker.js +3 -1
  180. package/cjs/highlevel/types/media/sticker.js.map +1 -1
  181. package/cjs/highlevel/types/media/story.js +3 -1
  182. package/cjs/highlevel/types/media/story.js.map +1 -1
  183. package/cjs/highlevel/types/media/thumbnail.js +35 -22
  184. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  185. package/cjs/highlevel/types/media/venue.js +2 -1
  186. package/cjs/highlevel/types/media/venue.js.map +1 -1
  187. package/cjs/highlevel/types/media/video.js +3 -1
  188. package/cjs/highlevel/types/media/video.js.map +1 -1
  189. package/cjs/highlevel/types/media/voice.js +2 -1
  190. package/cjs/highlevel/types/media/voice.js.map +1 -1
  191. package/cjs/highlevel/types/media/web-page.js +2 -1
  192. package/cjs/highlevel/types/media/web-page.js.map +1 -1
  193. package/cjs/highlevel/types/messages/dialog.js +3 -0
  194. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  195. package/cjs/highlevel/types/messages/draft-message.js +1 -0
  196. package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
  197. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  198. package/cjs/highlevel/types/messages/message-entity.js +2 -0
  199. package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
  200. package/cjs/highlevel/types/messages/message-forward.js +2 -0
  201. package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
  202. package/cjs/highlevel/types/messages/message-media.js.map +1 -1
  203. package/cjs/highlevel/types/messages/message-reactions.js +4 -0
  204. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
  205. package/cjs/highlevel/types/messages/message-replies.js +2 -0
  206. package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
  207. package/cjs/highlevel/types/messages/message.js +6 -0
  208. package/cjs/highlevel/types/messages/message.js.map +1 -1
  209. package/cjs/highlevel/types/messages/replied-message.js +2 -0
  210. package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
  211. package/cjs/highlevel/types/misc/sticker-set.js +7 -1
  212. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  213. package/cjs/highlevel/types/misc/takeout-session.js +5 -0
  214. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
  215. package/cjs/highlevel/types/peers/chat-colors.js +2 -0
  216. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
  217. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
  218. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
  219. package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
  220. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
  221. package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
  222. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  223. package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
  224. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
  225. package/cjs/highlevel/types/peers/chat-location.js +1 -0
  226. package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
  227. package/cjs/highlevel/types/peers/chat-member.js +2 -0
  228. package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
  229. package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
  230. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
  231. package/cjs/highlevel/types/peers/chat-photo.js +5 -0
  232. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  233. package/cjs/highlevel/types/peers/chat-preview.js +2 -0
  234. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
  235. package/cjs/highlevel/types/peers/chat.js +12 -1
  236. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  237. package/cjs/highlevel/types/peers/forum-topic.js +9 -6
  238. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
  239. package/cjs/highlevel/types/peers/peer.js.map +1 -1
  240. package/cjs/highlevel/types/peers/peers-index.js +3 -1
  241. package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
  242. package/cjs/highlevel/types/peers/user.js +5 -1
  243. package/cjs/highlevel/types/peers/user.js.map +1 -1
  244. package/cjs/highlevel/types/premium/boost-slot.js +2 -0
  245. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
  246. package/cjs/highlevel/types/premium/boost-stats.js +1 -0
  247. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
  248. package/cjs/highlevel/types/premium/boost.js +2 -0
  249. package/cjs/highlevel/types/premium/boost.js.map +1 -1
  250. package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
  251. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
  252. package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
  253. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
  254. package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
  255. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
  256. package/cjs/highlevel/types/reactions/types.js.map +1 -1
  257. package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
  258. package/cjs/highlevel/types/stories/all-stories.js +3 -1
  259. package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
  260. package/cjs/highlevel/types/stories/interactive/base.js +1 -0
  261. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
  262. package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
  263. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  264. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
  265. package/cjs/highlevel/types/stories/interactive/input.js +1 -0
  266. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
  267. package/cjs/highlevel/types/stories/interactive/location.js +2 -1
  268. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
  269. package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
  270. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
  271. package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
  272. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
  273. package/cjs/highlevel/types/stories/peer-stories.js +2 -0
  274. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
  275. package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
  276. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
  277. package/cjs/highlevel/types/stories/story-interactions.js +2 -0
  278. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
  279. package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
  280. package/cjs/highlevel/types/stories/story-viewer.js +6 -0
  281. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
  282. package/cjs/highlevel/types/stories/story.js +2 -0
  283. package/cjs/highlevel/types/stories/story.js.map +1 -1
  284. package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
  285. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  286. package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
  287. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
  288. package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
  289. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
  290. package/cjs/highlevel/types/updates/callback-query.js +4 -0
  291. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  292. package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
  293. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
  294. package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
  295. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
  296. package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
  297. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  298. package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
  299. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
  300. package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
  301. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
  302. package/cjs/highlevel/types/updates/history-read-update.js +1 -0
  303. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
  304. package/cjs/highlevel/types/updates/inline-query.js +2 -0
  305. package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
  306. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  307. package/cjs/highlevel/types/updates/poll-update.js +2 -0
  308. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  309. package/cjs/highlevel/types/updates/poll-vote.js +2 -0
  310. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
  311. package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
  312. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  313. package/cjs/highlevel/types/updates/story-update.js +2 -0
  314. package/cjs/highlevel/types/updates/story-update.js.map +1 -1
  315. package/cjs/highlevel/types/updates/user-status-update.js +1 -0
  316. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  317. package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
  318. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
  319. package/cjs/highlevel/updates/manager.d.ts +1 -1
  320. package/cjs/highlevel/updates/manager.js +50 -28
  321. package/cjs/highlevel/updates/manager.js.map +1 -1
  322. package/cjs/highlevel/updates/parsed.js.map +1 -1
  323. package/cjs/highlevel/updates/utils.js.map +1 -1
  324. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  325. package/cjs/highlevel/utils/entities.js.map +1 -1
  326. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  327. package/cjs/highlevel/utils/file-type.js +35 -1
  328. package/cjs/highlevel/utils/file-type.js.map +1 -1
  329. package/cjs/highlevel/utils/file-utils.js +1 -1
  330. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  331. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  332. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  333. package/cjs/highlevel/utils/memoize.js.map +1 -1
  334. package/cjs/highlevel/utils/peer-utils.js.map +1 -1
  335. package/cjs/highlevel/utils/query-batcher.js.map +1 -1
  336. package/cjs/highlevel/utils/rps-meter.js +3 -0
  337. package/cjs/highlevel/utils/rps-meter.js.map +1 -1
  338. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  339. package/cjs/highlevel/utils/string-session.d.ts +1 -2
  340. package/cjs/highlevel/utils/string-session.js +27 -7
  341. package/cjs/highlevel/utils/string-session.js.map +1 -1
  342. package/cjs/highlevel/utils/voice-utils.js.map +1 -1
  343. package/cjs/highlevel/worker/app-config.d.ts +2 -3
  344. package/cjs/highlevel/worker/app-config.js +6 -3
  345. package/cjs/highlevel/worker/app-config.js.map +1 -1
  346. package/cjs/highlevel/worker/errors.js.map +1 -1
  347. package/cjs/highlevel/worker/invoker.js +3 -2
  348. package/cjs/highlevel/worker/invoker.js.map +1 -1
  349. package/cjs/highlevel/worker/port.d.ts +16 -17
  350. package/cjs/highlevel/worker/port.js +74 -49
  351. package/cjs/highlevel/worker/port.js.map +1 -1
  352. package/cjs/highlevel/worker/protocol.d.ts +2 -2
  353. package/cjs/highlevel/worker/protocol.js.map +1 -1
  354. package/cjs/highlevel/worker/storage.d.ts +9 -13
  355. package/cjs/highlevel/worker/storage.js +34 -19
  356. package/cjs/highlevel/worker/storage.js.map +1 -1
  357. package/cjs/highlevel/worker/worker.js +3 -0
  358. package/cjs/highlevel/worker/worker.js.map +1 -1
  359. package/cjs/network/auth-key.js +8 -1
  360. package/cjs/network/auth-key.js.map +1 -1
  361. package/cjs/network/authorization.js.map +1 -1
  362. package/cjs/network/client.d.ts +1 -1
  363. package/cjs/network/client.js +39 -14
  364. package/cjs/network/client.js.map +1 -1
  365. package/cjs/network/config-manager.js.map +1 -1
  366. package/cjs/network/mtproto-session.d.ts +1 -1
  367. package/cjs/network/mtproto-session.js +40 -30
  368. package/cjs/network/mtproto-session.js.map +1 -1
  369. package/cjs/network/multi-session-connection.d.ts +2 -2
  370. package/cjs/network/multi-session-connection.js +13 -7
  371. package/cjs/network/multi-session-connection.js.map +1 -1
  372. package/cjs/network/network-manager.d.ts +2 -3
  373. package/cjs/network/network-manager.js +49 -28
  374. package/cjs/network/network-manager.js.map +1 -1
  375. package/cjs/network/persistent-connection.d.ts +3 -3
  376. package/cjs/network/persistent-connection.js +33 -22
  377. package/cjs/network/persistent-connection.js.map +1 -1
  378. package/cjs/network/server-salt.js +4 -5
  379. package/cjs/network/server-salt.js.map +1 -1
  380. package/cjs/network/session-connection.d.ts +1 -1
  381. package/cjs/network/session-connection.js +22 -12
  382. package/cjs/network/session-connection.js.map +1 -1
  383. package/cjs/network/transports/abstract.d.ts +2 -2
  384. package/cjs/network/transports/abstract.js +1 -0
  385. package/cjs/network/transports/abstract.js.map +1 -1
  386. package/cjs/network/transports/intermediate.js +1 -0
  387. package/cjs/network/transports/intermediate.js.map +1 -1
  388. package/cjs/network/transports/obfuscated.js +3 -0
  389. package/cjs/network/transports/obfuscated.js.map +1 -1
  390. package/cjs/network/transports/streamed.d.ts +1 -1
  391. package/cjs/network/transports/streamed.js +1 -4
  392. package/cjs/network/transports/streamed.js.map +1 -1
  393. package/cjs/network/transports/wrapped.d.ts +1 -1
  394. package/cjs/network/transports/wrapped.js +2 -0
  395. package/cjs/network/transports/wrapped.js.map +1 -1
  396. package/cjs/platform.js.map +1 -1
  397. package/cjs/storage/driver.js +3 -4
  398. package/cjs/storage/driver.js.map +1 -1
  399. package/cjs/storage/memory/driver.js +1 -3
  400. package/cjs/storage/memory/driver.js.map +1 -1
  401. package/cjs/storage/memory/index.js +5 -7
  402. package/cjs/storage/memory/index.js.map +1 -1
  403. package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
  404. package/cjs/storage/memory/repository/auth-keys.js +2 -0
  405. package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
  406. package/cjs/storage/memory/repository/kv.d.ts +1 -1
  407. package/cjs/storage/memory/repository/kv.js +2 -0
  408. package/cjs/storage/memory/repository/kv.js.map +1 -1
  409. package/cjs/storage/memory/repository/peers.d.ts +1 -1
  410. package/cjs/storage/memory/repository/peers.js +2 -0
  411. package/cjs/storage/memory/repository/peers.js.map +1 -1
  412. package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
  413. package/cjs/storage/memory/repository/ref-messages.js +2 -0
  414. package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
  415. package/cjs/storage/service/auth-keys.js +2 -0
  416. package/cjs/storage/service/auth-keys.js.map +1 -1
  417. package/cjs/storage/service/base.js +4 -0
  418. package/cjs/storage/service/base.js.map +1 -1
  419. package/cjs/storage/service/default-dcs.js +2 -0
  420. package/cjs/storage/service/default-dcs.js.map +1 -1
  421. package/cjs/storage/service/future-salts.js +2 -1
  422. package/cjs/storage/service/future-salts.js.map +1 -1
  423. package/cjs/storage/sqlite/driver.js +10 -10
  424. package/cjs/storage/sqlite/driver.js.map +1 -1
  425. package/cjs/storage/sqlite/index.d.ts +1 -1
  426. package/cjs/storage/sqlite/index.js +5 -0
  427. package/cjs/storage/sqlite/index.js.map +1 -1
  428. package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
  429. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
  430. package/cjs/storage/sqlite/repository/kv.js +5 -0
  431. package/cjs/storage/sqlite/repository/kv.js.map +1 -1
  432. package/cjs/storage/sqlite/repository/peers.js +6 -0
  433. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  434. package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
  435. package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
  436. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
  437. package/cjs/storage/storage.d.ts +1 -3
  438. package/cjs/storage/storage.js +21 -13
  439. package/cjs/storage/storage.js.map +1 -1
  440. package/cjs/types/errors.js +13 -0
  441. package/cjs/types/errors.js.map +1 -1
  442. package/cjs/utils/async-lock.js +1 -3
  443. package/cjs/utils/async-lock.js.map +1 -1
  444. package/cjs/utils/bigint-utils.js.map +1 -1
  445. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  446. package/cjs/utils/buffer-utils.js.map +1 -1
  447. package/cjs/utils/condition-variable.js +2 -0
  448. package/cjs/utils/condition-variable.js.map +1 -1
  449. package/cjs/utils/crypto/factorization.js.map +1 -1
  450. package/cjs/utils/crypto/keys.js.map +1 -1
  451. package/cjs/utils/crypto/miller-rabin.js.map +1 -1
  452. package/cjs/utils/crypto/password.js.map +1 -1
  453. package/cjs/utils/crypto/utils.js.map +1 -1
  454. package/cjs/utils/dcs.js +1 -1
  455. package/cjs/utils/dcs.js.map +1 -1
  456. package/cjs/utils/deque.js +8 -2
  457. package/cjs/utils/deque.js.map +1 -1
  458. package/cjs/utils/early-timer.js +4 -1
  459. package/cjs/utils/early-timer.js.map +1 -1
  460. package/cjs/utils/error-reporting.js.map +1 -1
  461. package/cjs/utils/function-utils.js.map +1 -1
  462. package/cjs/utils/linked-list.js +4 -1
  463. package/cjs/utils/linked-list.js.map +1 -1
  464. package/cjs/utils/links/bots.js.map +1 -1
  465. package/cjs/utils/links/chat.js.map +1 -1
  466. package/cjs/utils/links/common.js.map +1 -1
  467. package/cjs/utils/links/misc.js.map +1 -1
  468. package/cjs/utils/logger.d.ts +2 -2
  469. package/cjs/utils/logger.js +21 -14
  470. package/cjs/utils/logger.js.map +1 -1
  471. package/cjs/utils/long-utils.js +2 -6
  472. package/cjs/utils/long-utils.js.map +1 -1
  473. package/cjs/utils/lru-map.js +5 -1
  474. package/cjs/utils/lru-map.js.map +1 -1
  475. package/cjs/utils/lru-set.js +4 -0
  476. package/cjs/utils/lru-set.js.map +1 -1
  477. package/cjs/utils/peer-utils.js.map +1 -1
  478. package/cjs/utils/reloadable.d.ts +1 -1
  479. package/cjs/utils/reloadable.js +10 -7
  480. package/cjs/utils/reloadable.js.map +1 -1
  481. package/cjs/utils/sorted-array.js +2 -0
  482. package/cjs/utils/sorted-array.js.map +1 -1
  483. package/cjs/utils/tl-json.js.map +1 -1
  484. package/cjs/utils/type-assertions.js.map +1 -1
  485. package/esm/highlevel/base.d.ts +1 -1
  486. package/esm/highlevel/base.js +29 -23
  487. package/esm/highlevel/base.js.map +1 -1
  488. package/esm/highlevel/client.d.ts +2 -1
  489. package/esm/highlevel/client.js +1 -0
  490. package/esm/highlevel/client.js.map +1 -1
  491. package/esm/highlevel/managers/app-config-manager.js +7 -5
  492. package/esm/highlevel/managers/app-config-manager.js.map +1 -1
  493. package/esm/highlevel/methods/_init.js.map +1 -1
  494. package/esm/highlevel/methods/auth/start-test.js.map +1 -1
  495. package/esm/highlevel/methods/auth/start.js.map +1 -1
  496. package/esm/highlevel/methods/auth/utils.js.map +1 -1
  497. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  498. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  499. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  500. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
  501. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
  502. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  503. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
  504. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  505. package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
  506. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  507. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
  508. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
  509. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  510. package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
  511. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  512. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  513. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  514. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  515. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  516. package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
  517. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  518. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
  519. package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
  520. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  521. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  522. package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
  523. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
  524. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  525. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
  526. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  527. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  528. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  529. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  530. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  531. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  532. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  533. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  534. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  535. package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
  536. package/esm/highlevel/methods/files/download-iterable.js +1 -1
  537. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  538. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
  539. package/esm/highlevel/methods/files/download-stream.js.map +1 -1
  540. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  541. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
  542. package/esm/highlevel/methods/files/normalize-input-media.js +1 -2
  543. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  544. package/esm/highlevel/methods/files/upload-file.js +8 -7
  545. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  546. package/esm/highlevel/methods/files/upload-media.js.map +1 -1
  547. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  548. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  549. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  550. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  551. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  552. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
  553. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  554. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  555. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  556. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  557. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  558. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  559. package/esm/highlevel/methods/messages/get-history.js +5 -1
  560. package/esm/highlevel/methods/messages/get-history.js.map +1 -1
  561. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  562. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
  563. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  564. package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
  565. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
  566. package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
  567. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  568. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  569. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  570. package/esm/highlevel/methods/messages/read-history.js.map +1 -1
  571. package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
  572. package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
  573. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  574. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
  575. package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
  576. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  577. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  578. package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
  579. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  580. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  581. package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
  582. package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
  583. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  584. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  585. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
  586. package/esm/highlevel/methods/misc/with-params.js.map +1 -1
  587. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
  588. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  589. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  590. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  591. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
  592. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  593. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  594. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  595. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  596. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
  597. package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
  598. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
  599. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  600. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  601. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  602. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  603. package/esm/highlevel/methods/stories/send-story.js.map +1 -1
  604. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  605. package/esm/highlevel/methods/users/get-users.js.map +1 -1
  606. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  607. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  608. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
  609. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  610. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  611. package/esm/highlevel/storage/service/current-user.js +2 -0
  612. package/esm/highlevel/storage/service/current-user.js.map +1 -1
  613. package/esm/highlevel/storage/service/peers.js +5 -1
  614. package/esm/highlevel/storage/service/peers.js.map +1 -1
  615. package/esm/highlevel/storage/service/ref-messages.js +3 -0
  616. package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
  617. package/esm/highlevel/storage/service/updates.js +1 -0
  618. package/esm/highlevel/storage/service/updates.js.map +1 -1
  619. package/esm/highlevel/storage/storage.d.ts +1 -1
  620. package/esm/highlevel/storage/storage.js +17 -4
  621. package/esm/highlevel/storage/storage.js.map +1 -1
  622. package/esm/highlevel/types/auth/sent-code.js +1 -0
  623. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  624. package/esm/highlevel/types/bots/game-high-score.js +2 -0
  625. package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
  626. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
  627. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
  628. package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
  629. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
  630. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
  631. package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
  632. package/esm/highlevel/types/conversation.js +13 -7
  633. package/esm/highlevel/types/conversation.js.map +1 -1
  634. package/esm/highlevel/types/errors.js +3 -0
  635. package/esm/highlevel/types/errors.js.map +1 -1
  636. package/esm/highlevel/types/files/file-location.js +3 -0
  637. package/esm/highlevel/types/files/file-location.js.map +1 -1
  638. package/esm/highlevel/types/files/uploaded-file.js +1 -1
  639. package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
  640. package/esm/highlevel/types/files/utils.d.ts +1 -1
  641. package/esm/highlevel/types/files/utils.js.map +1 -1
  642. package/esm/highlevel/types/files/web-document.js +1 -0
  643. package/esm/highlevel/types/files/web-document.js.map +1 -1
  644. package/esm/highlevel/types/media/audio.js +3 -2
  645. package/esm/highlevel/types/media/audio.js.map +1 -1
  646. package/esm/highlevel/types/media/contact.js +2 -1
  647. package/esm/highlevel/types/media/contact.js.map +1 -1
  648. package/esm/highlevel/types/media/dice.js +125 -124
  649. package/esm/highlevel/types/media/dice.js.map +1 -1
  650. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  651. package/esm/highlevel/types/media/document.js +2 -4
  652. package/esm/highlevel/types/media/document.js.map +1 -1
  653. package/esm/highlevel/types/media/game.js +2 -1
  654. package/esm/highlevel/types/media/game.js.map +1 -1
  655. package/esm/highlevel/types/media/invoice.js +4 -1
  656. package/esm/highlevel/types/media/invoice.js.map +1 -1
  657. package/esm/highlevel/types/media/location.js +4 -5
  658. package/esm/highlevel/types/media/location.js.map +1 -1
  659. package/esm/highlevel/types/media/photo.js +8 -1
  660. package/esm/highlevel/types/media/photo.js.map +1 -1
  661. package/esm/highlevel/types/media/poll.js +4 -1
  662. package/esm/highlevel/types/media/poll.js.map +1 -1
  663. package/esm/highlevel/types/media/sticker.js +3 -1
  664. package/esm/highlevel/types/media/sticker.js.map +1 -1
  665. package/esm/highlevel/types/media/story.js +3 -1
  666. package/esm/highlevel/types/media/story.js.map +1 -1
  667. package/esm/highlevel/types/media/thumbnail.js +35 -22
  668. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  669. package/esm/highlevel/types/media/venue.js +2 -1
  670. package/esm/highlevel/types/media/venue.js.map +1 -1
  671. package/esm/highlevel/types/media/video.js +3 -1
  672. package/esm/highlevel/types/media/video.js.map +1 -1
  673. package/esm/highlevel/types/media/voice.js +2 -1
  674. package/esm/highlevel/types/media/voice.js.map +1 -1
  675. package/esm/highlevel/types/media/web-page.js +2 -1
  676. package/esm/highlevel/types/media/web-page.js.map +1 -1
  677. package/esm/highlevel/types/messages/dialog.js +3 -0
  678. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  679. package/esm/highlevel/types/messages/draft-message.js +1 -0
  680. package/esm/highlevel/types/messages/draft-message.js.map +1 -1
  681. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  682. package/esm/highlevel/types/messages/message-entity.js +2 -0
  683. package/esm/highlevel/types/messages/message-entity.js.map +1 -1
  684. package/esm/highlevel/types/messages/message-forward.js +2 -0
  685. package/esm/highlevel/types/messages/message-forward.js.map +1 -1
  686. package/esm/highlevel/types/messages/message-media.js.map +1 -1
  687. package/esm/highlevel/types/messages/message-reactions.js +4 -0
  688. package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
  689. package/esm/highlevel/types/messages/message-replies.js +2 -0
  690. package/esm/highlevel/types/messages/message-replies.js.map +1 -1
  691. package/esm/highlevel/types/messages/message.js +6 -0
  692. package/esm/highlevel/types/messages/message.js.map +1 -1
  693. package/esm/highlevel/types/messages/replied-message.js +2 -0
  694. package/esm/highlevel/types/messages/replied-message.js.map +1 -1
  695. package/esm/highlevel/types/misc/sticker-set.js +7 -1
  696. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  697. package/esm/highlevel/types/misc/takeout-session.js +5 -0
  698. package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
  699. package/esm/highlevel/types/peers/chat-colors.js +2 -0
  700. package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
  701. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
  702. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
  703. package/esm/highlevel/types/peers/chat-event/index.js +2 -0
  704. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
  705. package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
  706. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  707. package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
  708. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
  709. package/esm/highlevel/types/peers/chat-location.js +1 -0
  710. package/esm/highlevel/types/peers/chat-location.js.map +1 -1
  711. package/esm/highlevel/types/peers/chat-member.js +2 -0
  712. package/esm/highlevel/types/peers/chat-member.js.map +1 -1
  713. package/esm/highlevel/types/peers/chat-permissions.js +1 -0
  714. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
  715. package/esm/highlevel/types/peers/chat-photo.js +5 -0
  716. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  717. package/esm/highlevel/types/peers/chat-preview.js +2 -0
  718. package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
  719. package/esm/highlevel/types/peers/chat.js +12 -1
  720. package/esm/highlevel/types/peers/chat.js.map +1 -1
  721. package/esm/highlevel/types/peers/forum-topic.js +9 -6
  722. package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
  723. package/esm/highlevel/types/peers/peer.js.map +1 -1
  724. package/esm/highlevel/types/peers/peers-index.js +3 -1
  725. package/esm/highlevel/types/peers/peers-index.js.map +1 -1
  726. package/esm/highlevel/types/peers/user.js +5 -1
  727. package/esm/highlevel/types/peers/user.js.map +1 -1
  728. package/esm/highlevel/types/premium/boost-slot.js +2 -0
  729. package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
  730. package/esm/highlevel/types/premium/boost-stats.js +1 -0
  731. package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
  732. package/esm/highlevel/types/premium/boost.js +2 -0
  733. package/esm/highlevel/types/premium/boost.js.map +1 -1
  734. package/esm/highlevel/types/reactions/emoji-status.js +1 -0
  735. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
  736. package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
  737. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
  738. package/esm/highlevel/types/reactions/reaction-count.js +1 -0
  739. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
  740. package/esm/highlevel/types/reactions/types.js.map +1 -1
  741. package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
  742. package/esm/highlevel/types/stories/all-stories.js +3 -1
  743. package/esm/highlevel/types/stories/all-stories.js.map +1 -1
  744. package/esm/highlevel/types/stories/interactive/base.js +1 -0
  745. package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
  746. package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
  747. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  748. package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
  749. package/esm/highlevel/types/stories/interactive/input.js +1 -0
  750. package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
  751. package/esm/highlevel/types/stories/interactive/location.js +2 -1
  752. package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
  753. package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
  754. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
  755. package/esm/highlevel/types/stories/interactive/venue.js +2 -1
  756. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
  757. package/esm/highlevel/types/stories/peer-stories.js +2 -0
  758. package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
  759. package/esm/highlevel/types/stories/stealth-mode.js +1 -0
  760. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
  761. package/esm/highlevel/types/stories/story-interactions.js +2 -0
  762. package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
  763. package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
  764. package/esm/highlevel/types/stories/story-viewer.js +6 -0
  765. package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
  766. package/esm/highlevel/types/stories/story.js +2 -0
  767. package/esm/highlevel/types/stories/story.js.map +1 -1
  768. package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
  769. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  770. package/esm/highlevel/types/updates/bot-reaction.js +4 -0
  771. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
  772. package/esm/highlevel/types/updates/bot-stopped.js +2 -0
  773. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
  774. package/esm/highlevel/types/updates/callback-query.js +4 -0
  775. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  776. package/esm/highlevel/types/updates/chat-join-request.js +2 -0
  777. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
  778. package/esm/highlevel/types/updates/chat-member-update.js +2 -0
  779. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
  780. package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
  781. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  782. package/esm/highlevel/types/updates/delete-message-update.js +1 -0
  783. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
  784. package/esm/highlevel/types/updates/delete-story-update.js +2 -0
  785. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
  786. package/esm/highlevel/types/updates/history-read-update.js +1 -0
  787. package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
  788. package/esm/highlevel/types/updates/inline-query.js +2 -0
  789. package/esm/highlevel/types/updates/inline-query.js.map +1 -1
  790. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  791. package/esm/highlevel/types/updates/poll-update.js +2 -0
  792. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  793. package/esm/highlevel/types/updates/poll-vote.js +2 -0
  794. package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
  795. package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
  796. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  797. package/esm/highlevel/types/updates/story-update.js +2 -0
  798. package/esm/highlevel/types/updates/story-update.js.map +1 -1
  799. package/esm/highlevel/types/updates/user-status-update.js +1 -0
  800. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  801. package/esm/highlevel/types/updates/user-typing-update.js +1 -0
  802. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
  803. package/esm/highlevel/updates/manager.js +50 -28
  804. package/esm/highlevel/updates/manager.js.map +1 -1
  805. package/esm/highlevel/updates/parsed.js.map +1 -1
  806. package/esm/highlevel/updates/utils.js.map +1 -1
  807. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  808. package/esm/highlevel/utils/entities.js.map +1 -1
  809. package/esm/highlevel/utils/file-type.d.ts +1 -0
  810. package/esm/highlevel/utils/file-type.js +34 -0
  811. package/esm/highlevel/utils/file-type.js.map +1 -1
  812. package/esm/highlevel/utils/file-utils.js +1 -1
  813. package/esm/highlevel/utils/file-utils.js.map +1 -1
  814. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  815. package/esm/highlevel/utils/inspectable.js.map +1 -1
  816. package/esm/highlevel/utils/memoize.js.map +1 -1
  817. package/esm/highlevel/utils/peer-utils.js.map +1 -1
  818. package/esm/highlevel/utils/query-batcher.js.map +1 -1
  819. package/esm/highlevel/utils/rps-meter.js +3 -0
  820. package/esm/highlevel/utils/rps-meter.js.map +1 -1
  821. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  822. package/esm/highlevel/utils/string-session.d.ts +1 -2
  823. package/esm/highlevel/utils/string-session.js +27 -7
  824. package/esm/highlevel/utils/string-session.js.map +1 -1
  825. package/esm/highlevel/utils/voice-utils.js.map +1 -1
  826. package/esm/highlevel/worker/app-config.d.ts +2 -3
  827. package/esm/highlevel/worker/app-config.js +6 -3
  828. package/esm/highlevel/worker/app-config.js.map +1 -1
  829. package/esm/highlevel/worker/errors.js.map +1 -1
  830. package/esm/highlevel/worker/invoker.js +3 -2
  831. package/esm/highlevel/worker/invoker.js.map +1 -1
  832. package/esm/highlevel/worker/port.d.ts +16 -17
  833. package/esm/highlevel/worker/port.js +74 -49
  834. package/esm/highlevel/worker/port.js.map +1 -1
  835. package/esm/highlevel/worker/protocol.d.ts +1 -1
  836. package/esm/highlevel/worker/protocol.js.map +1 -1
  837. package/esm/highlevel/worker/storage.d.ts +9 -13
  838. package/esm/highlevel/worker/storage.js +34 -19
  839. package/esm/highlevel/worker/storage.js.map +1 -1
  840. package/esm/highlevel/worker/worker.js +3 -0
  841. package/esm/highlevel/worker/worker.js.map +1 -1
  842. package/esm/network/auth-key.js +8 -1
  843. package/esm/network/auth-key.js.map +1 -1
  844. package/esm/network/authorization.js.map +1 -1
  845. package/esm/network/client.js +39 -14
  846. package/esm/network/client.js.map +1 -1
  847. package/esm/network/config-manager.js.map +1 -1
  848. package/esm/network/mtproto-session.js +40 -30
  849. package/esm/network/mtproto-session.js.map +1 -1
  850. package/esm/network/multi-session-connection.d.ts +1 -1
  851. package/esm/network/multi-session-connection.js +13 -7
  852. package/esm/network/multi-session-connection.js.map +1 -1
  853. package/esm/network/network-manager.d.ts +2 -3
  854. package/esm/network/network-manager.js +49 -28
  855. package/esm/network/network-manager.js.map +1 -1
  856. package/esm/network/persistent-connection.d.ts +2 -2
  857. package/esm/network/persistent-connection.js +33 -22
  858. package/esm/network/persistent-connection.js.map +1 -1
  859. package/esm/network/server-salt.js +4 -5
  860. package/esm/network/server-salt.js.map +1 -1
  861. package/esm/network/session-connection.d.ts +1 -1
  862. package/esm/network/session-connection.js +22 -12
  863. package/esm/network/session-connection.js.map +1 -1
  864. package/esm/network/transports/abstract.d.ts +1 -1
  865. package/esm/network/transports/abstract.js +1 -0
  866. package/esm/network/transports/abstract.js.map +1 -1
  867. package/esm/network/transports/intermediate.js +1 -0
  868. package/esm/network/transports/intermediate.js.map +1 -1
  869. package/esm/network/transports/obfuscated.js +3 -0
  870. package/esm/network/transports/obfuscated.js.map +1 -1
  871. package/esm/network/transports/streamed.js +1 -4
  872. package/esm/network/transports/streamed.js.map +1 -1
  873. package/esm/network/transports/wrapped.js +2 -0
  874. package/esm/network/transports/wrapped.js.map +1 -1
  875. package/esm/platform.js.map +1 -1
  876. package/esm/storage/driver.js +3 -4
  877. package/esm/storage/driver.js.map +1 -1
  878. package/esm/storage/memory/driver.js +1 -3
  879. package/esm/storage/memory/driver.js.map +1 -1
  880. package/esm/storage/memory/index.js +5 -7
  881. package/esm/storage/memory/index.js.map +1 -1
  882. package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
  883. package/esm/storage/memory/repository/auth-keys.js +2 -0
  884. package/esm/storage/memory/repository/auth-keys.js.map +1 -1
  885. package/esm/storage/memory/repository/kv.d.ts +1 -1
  886. package/esm/storage/memory/repository/kv.js +2 -0
  887. package/esm/storage/memory/repository/kv.js.map +1 -1
  888. package/esm/storage/memory/repository/peers.d.ts +1 -1
  889. package/esm/storage/memory/repository/peers.js +2 -0
  890. package/esm/storage/memory/repository/peers.js.map +1 -1
  891. package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
  892. package/esm/storage/memory/repository/ref-messages.js +2 -0
  893. package/esm/storage/memory/repository/ref-messages.js.map +1 -1
  894. package/esm/storage/service/auth-keys.js +2 -0
  895. package/esm/storage/service/auth-keys.js.map +1 -1
  896. package/esm/storage/service/base.js +4 -0
  897. package/esm/storage/service/base.js.map +1 -1
  898. package/esm/storage/service/default-dcs.js +2 -0
  899. package/esm/storage/service/default-dcs.js.map +1 -1
  900. package/esm/storage/service/future-salts.js +2 -1
  901. package/esm/storage/service/future-salts.js.map +1 -1
  902. package/esm/storage/sqlite/driver.js +10 -10
  903. package/esm/storage/sqlite/driver.js.map +1 -1
  904. package/esm/storage/sqlite/index.d.ts +1 -1
  905. package/esm/storage/sqlite/index.js +5 -0
  906. package/esm/storage/sqlite/index.js.map +1 -1
  907. package/esm/storage/sqlite/repository/auth-keys.js +9 -0
  908. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
  909. package/esm/storage/sqlite/repository/kv.js +5 -0
  910. package/esm/storage/sqlite/repository/kv.js.map +1 -1
  911. package/esm/storage/sqlite/repository/peers.js +6 -0
  912. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  913. package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
  914. package/esm/storage/sqlite/repository/ref-messages.js +6 -0
  915. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
  916. package/esm/storage/storage.d.ts +1 -3
  917. package/esm/storage/storage.js +21 -13
  918. package/esm/storage/storage.js.map +1 -1
  919. package/esm/types/errors.js +13 -0
  920. package/esm/types/errors.js.map +1 -1
  921. package/esm/utils/async-lock.js +1 -3
  922. package/esm/utils/async-lock.js.map +1 -1
  923. package/esm/utils/bigint-utils.js.map +1 -1
  924. package/esm/utils/binary/asn1-parser.js.map +1 -1
  925. package/esm/utils/buffer-utils.js.map +1 -1
  926. package/esm/utils/condition-variable.js +2 -0
  927. package/esm/utils/condition-variable.js.map +1 -1
  928. package/esm/utils/crypto/factorization.js.map +1 -1
  929. package/esm/utils/crypto/keys.js.map +1 -1
  930. package/esm/utils/crypto/miller-rabin.js.map +1 -1
  931. package/esm/utils/crypto/password.js.map +1 -1
  932. package/esm/utils/crypto/utils.js.map +1 -1
  933. package/esm/utils/dcs.js +1 -1
  934. package/esm/utils/dcs.js.map +1 -1
  935. package/esm/utils/deque.js +8 -2
  936. package/esm/utils/deque.js.map +1 -1
  937. package/esm/utils/early-timer.js +4 -1
  938. package/esm/utils/early-timer.js.map +1 -1
  939. package/esm/utils/error-reporting.js.map +1 -1
  940. package/esm/utils/function-utils.js.map +1 -1
  941. package/esm/utils/linked-list.js +4 -1
  942. package/esm/utils/linked-list.js.map +1 -1
  943. package/esm/utils/links/bots.js.map +1 -1
  944. package/esm/utils/links/chat.js.map +1 -1
  945. package/esm/utils/links/common.js.map +1 -1
  946. package/esm/utils/links/misc.js.map +1 -1
  947. package/esm/utils/logger.d.ts +2 -2
  948. package/esm/utils/logger.js +21 -14
  949. package/esm/utils/logger.js.map +1 -1
  950. package/esm/utils/long-utils.js +2 -6
  951. package/esm/utils/long-utils.js.map +1 -1
  952. package/esm/utils/lru-map.js +5 -1
  953. package/esm/utils/lru-map.js.map +1 -1
  954. package/esm/utils/lru-set.js +4 -0
  955. package/esm/utils/lru-set.js.map +1 -1
  956. package/esm/utils/peer-utils.js.map +1 -1
  957. package/esm/utils/reloadable.js +10 -7
  958. package/esm/utils/reloadable.js.map +1 -1
  959. package/esm/utils/sorted-array.js +2 -0
  960. package/esm/utils/sorted-array.js.map +1 -1
  961. package/esm/utils/tl-json.js.map +1 -1
  962. package/esm/utils/type-assertions.js.map +1 -1
  963. package/package.json +11 -11
@@ -13,6 +13,10 @@ const defaultOffset = {
13
13
  id: 0,
14
14
  date: 0,
15
15
  };
16
+ const defaultOffsetReverse = {
17
+ id: 1,
18
+ date: 0,
19
+ };
16
20
  /**
17
21
  * Get chat history.
18
22
  *
@@ -22,7 +26,7 @@ const defaultOffset = {
22
26
  async function getHistory(client, chatId, params) {
23
27
  if (!params)
24
28
  params = {};
25
- const { limit = 100, offset: { id: offsetId = 0, date: offsetDate = 0 } = defaultOffset, addOffset = 0, minId = 0, maxId = 0, reverse = false, } = params;
29
+ const { reverse = false, limit = 100, offset: { id: offsetId, date: offsetDate } = reverse ? defaultOffsetReverse : defaultOffset, addOffset = 0, minId = 0, maxId = 0, } = params;
26
30
  const addOffsetAdjusted = addOffset + (reverse ? -limit : 0);
27
31
  const peer = await (0, resolve_peer_js_1.resolvePeer)(client, chatId);
28
32
  const res = await client.call({
@@ -1 +1 @@
1
- {"version":3,"file":"get-history.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-history.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAIvB,0EAAmE;AAEnE,mDAAyF;AACzF,mDAAyD;AACzD,8DAAsD;AAQtD,MAAM,aAAa,GAAqB;IACpC,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,CAAC;CACV,CAAA;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAAqB,EACrB,MAsDC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EACF,KAAK,GAAG,GAAG,EACX,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,aAAa,EAClE,SAAS,GAAG,CAAC,EACb,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,OAAO,GAAG,KAAK,GAClB,GAAG,MAAM,CAAA;IAEV,MAAM,iBAAiB,GAAG,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5D,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,qBAAqB;QACxB,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,SAAS,EAAE,iBAAiB;QAC5B,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI,EAAE,cAAI,CAAC,IAAI;KAClB,CAAC,CAAA;IAEF,IAAA,oCAAe,EAAC,YAAY,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IAElE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAEzG,IAAI,OAAO;QAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;QACf;YACI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;SACtB,CAAC,CAAC;QACH,SAAS,CAAA;IAEb,OAAO,IAAA,6BAAkB,EAAC,IAAI,EAAG,GAAoC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACrG,CAAC;AAtGD,gCAsGC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { ArrayPaginated, InputPeerLike, Message, PeersIndex } from '../../types/index.js'\nimport { makeArrayPaginated } from '../../utils/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @exported\nexport interface GetHistoryOffset {\n id: number\n date: number\n}\n\nconst defaultOffset: GetHistoryOffset = {\n id: 0,\n date: 0,\n}\n\n/**\n * Get chat history.\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`.\n * @param params Additional fetch parameters\n */\nexport async function getHistory(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default 100\n */\n limit?: number\n\n /**\n * Offset for pagination\n */\n offset?: GetHistoryOffset\n\n /**\n * Additional offset from {@link offset}, in resulting messages.\n *\n * This can be used for advanced use cases, like:\n * - Loading 20 messages newer than message with ID `MSGID`:\n * `offset = MSGID, addOffset = -20, limit = 20`\n * - Loading 20 messages around message with ID `MSGID`:\n * `offset = MSGID, addOffset = -10, limit = 20`\n *\n * @default `0` (disabled)\n */\n\n addOffset?: number\n\n /**\n * Minimum message ID to return\n *\n * @default `0` (disabled).\n */\n minId?: number\n\n /**\n * Maximum message ID to return.\n *\n * Unless {@link addOffset} is used, this will work the same as {@link offset}.\n *\n * @default `0` (disabled).\n */\n maxId?: number\n\n /**\n * Whether to retrieve messages in reversed order (from older to recent),\n * starting from {@link offset} (inclusive).\n *\n * > **Note**: Using `reverse=true` requires you to pass offset from which to start\n * > fetching the messages \"downwards\". If you call `getHistory` with `reverse=true`\n * > and without any offset, it will return an empty array.\n *\n * @default false\n */\n reverse?: boolean\n },\n): Promise<ArrayPaginated<Message, GetHistoryOffset>> {\n if (!params) params = {}\n\n const {\n limit = 100,\n offset: { id: offsetId = 0, date: offsetDate = 0 } = defaultOffset,\n addOffset = 0,\n minId = 0,\n maxId = 0,\n reverse = false,\n } = params\n\n const addOffsetAdjusted = addOffset + (reverse ? -limit : 0)\n\n const peer = await resolvePeer(client, chatId)\n\n const res = await client.call({\n _: 'messages.getHistory',\n peer,\n offsetId,\n offsetDate,\n addOffset: addOffsetAdjusted,\n limit,\n maxId,\n minId,\n hash: Long.ZERO,\n })\n\n assertTypeIsNot('getHistory', res, 'messages.messagesNotModified')\n\n const peers = PeersIndex.from(res)\n const msgs = res.messages.filter((msg) => msg._ !== 'messageEmpty').map((msg) => new Message(msg, peers))\n\n if (reverse) msgs.reverse()\n\n const last = msgs[msgs.length - 1]\n const next = last ?\n {\n id: last.id + (reverse ? 1 : 0),\n date: last.raw.date,\n } :\n undefined\n\n return makeArrayPaginated(msgs, (res as tl.messages.RawMessagesSlice).count ?? msgs.length, next)\n}\n"]}
1
+ {"version":3,"file":"get-history.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-history.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAIvB,0EAAmE;AAEnE,mDAAyF;AACzF,mDAAyD;AACzD,8DAAsD;AAQtD,MAAM,aAAa,GAAqB;IACpC,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,CAAC;CACV,CAAA;AAED,MAAM,oBAAoB,GAAqB;IAC3C,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,CAAC;CACV,CAAA;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAAqB,EACrB,MAsDC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EACF,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,GAAG,EACX,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,EAC3F,SAAS,GAAG,CAAC,EACb,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,GACZ,GAAG,MAAM,CAAA;IAEV,MAAM,iBAAiB,GAAG,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5D,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,qBAAqB;QACxB,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,SAAS,EAAE,iBAAiB;QAC5B,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI,EAAE,cAAI,CAAC,IAAI;KAClB,CAAC,CAAA;IAEF,IAAA,oCAAe,EAAC,YAAY,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IAElE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAEzG,IAAI,OAAO;QAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;QACf;YACI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;SACtB,CAAC,CAAC;QACH,SAAS,CAAA;IAEb,OAAO,IAAA,6BAAkB,EAAC,IAAI,EAAG,GAAoC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACrG,CAAC;AAtGD,gCAsGC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { ArrayPaginated, InputPeerLike, Message, PeersIndex } from '../../types/index.js'\nimport { makeArrayPaginated } from '../../utils/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @exported\nexport interface GetHistoryOffset {\n id: number\n date: number\n}\n\nconst defaultOffset: GetHistoryOffset = {\n id: 0,\n date: 0,\n}\n\nconst defaultOffsetReverse: GetHistoryOffset = {\n id: 1,\n date: 0,\n}\n\n/**\n * Get chat history.\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`.\n * @param params Additional fetch parameters\n */\nexport async function getHistory(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default 100\n */\n limit?: number\n\n /**\n * Offset for pagination\n */\n offset?: GetHistoryOffset\n\n /**\n * Additional offset from {@link offset}, in resulting messages.\n *\n * This can be used for advanced use cases, like:\n * - Loading 20 messages newer than message with ID `MSGID`:\n * `offset = MSGID, addOffset = -20, limit = 20`\n * - Loading 20 messages around message with ID `MSGID`:\n * `offset = MSGID, addOffset = -10, limit = 20`\n *\n * @default `0` (disabled)\n */\n\n addOffset?: number\n\n /**\n * Minimum message ID to return\n *\n * @default `0` (disabled).\n */\n minId?: number\n\n /**\n * Maximum message ID to return.\n *\n * Unless {@link addOffset} is used, this will work the same as {@link offset}.\n *\n * @default `0` (disabled).\n */\n maxId?: number\n\n /**\n * Whether to retrieve messages in reversed order (from older to recent),\n * starting from {@link offset} (inclusive).\n *\n * > **Note**: Using `reverse=true` requires you to pass offset from which to start\n * > fetching the messages \"downwards\". If you call `getHistory` with `reverse=true`\n * > and without any offset, it will return an empty array.\n *\n * @default false\n */\n reverse?: boolean\n },\n): Promise<ArrayPaginated<Message, GetHistoryOffset>> {\n if (!params) params = {}\n\n const {\n reverse = false,\n limit = 100,\n offset: { id: offsetId, date: offsetDate } = reverse ? defaultOffsetReverse : defaultOffset,\n addOffset = 0,\n minId = 0,\n maxId = 0,\n } = params\n\n const addOffsetAdjusted = addOffset + (reverse ? -limit : 0)\n\n const peer = await resolvePeer(client, chatId)\n\n const res = await client.call({\n _: 'messages.getHistory',\n peer,\n offsetId,\n offsetDate,\n addOffset: addOffsetAdjusted,\n limit,\n maxId,\n minId,\n hash: Long.ZERO,\n })\n\n assertTypeIsNot('getHistory', res, 'messages.messagesNotModified')\n\n const peers = PeersIndex.from(res)\n const msgs = res.messages.filter((msg) => msg._ !== 'messageEmpty').map((msg) => new Message(msg, peers))\n\n if (reverse) msgs.reverse()\n\n const last = msgs[msgs.length - 1]\n const next = last ?\n {\n id: last.id + (reverse ? 1 : 0),\n date: last.raw.date,\n } :\n undefined\n\n return makeArrayPaginated(msgs, (res as tl.messages.RawMessagesSlice).count ?? msgs.length, next)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"get-message-by-link.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-message-by-link.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,4DAAqD;AACrD,gEAAkE;AAGlE,8DAAsD;AACtD,2EAAmE;AACnE,uDAA+C;AAE/C;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAuB,EAAE,IAAY;IACxE,MAAM,MAAM,GAAG,gBAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAExC,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,IAAI,2BAAe,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;KAC7D;IAED,IAAI,IAAI,CAAA;IAER,IAAI,UAAU,IAAI,MAAM,EAAE;QACtB,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;KACpD;SAAM;QACH,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAA,mCAAmB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;KAC1E;IAED,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;IAErB,IAAI,MAAM,CAAC,SAAS,EAAE;QAClB,CAAC,IAAI,CAAC,GAAG,MAAM,IAAA,iDAAqB,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC7D,KAAK,GAAG,MAAM,CAAC,SAAS,CAAA;KAC3B;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAEpD,OAAO,GAAG,CAAA;AACd,CAAC;AAzBD,4CAyBC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { links } from '../../../utils/links/index.js'\nimport { toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { getMessages } from './get-messages.js'\n\n/**\n * Given a message link (e.g. `t.me/durov/1`), fetch the relevant message.\n */\nexport async function getMessageByLink(client: ITelegramClient, link: string): Promise<Message | null> {\n const parsed = links.message.parse(link)\n\n if (!parsed) {\n throw new MtArgumentError(`Invalid message link: ${link}`)\n }\n\n let peer\n\n if ('username' in parsed) {\n peer = await resolvePeer(client, parsed.username)\n } else {\n peer = await resolvePeer(client, toggleChannelIdMark(parsed.channelId))\n }\n\n let msgId = parsed.id\n\n if (parsed.commentId) {\n [peer] = await _getDiscussionMessage(client, peer, parsed.id)\n msgId = parsed.commentId\n }\n\n const [msg] = await getMessages(client, peer, msgId)\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"get-message-by-link.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-message-by-link.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,4DAAqD;AACrD,gEAAkE;AAGlE,8DAAsD;AACtD,2EAAmE;AACnE,uDAA+C;AAE/C;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAuB,EAAE,IAAY;IACxE,MAAM,MAAM,GAAG,gBAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAExC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,2BAAe,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,IAAI,CAAA;IAER,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IACrD,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAA,mCAAmB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;IAErB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,IAAI,CAAC,GAAG,MAAM,IAAA,iDAAqB,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC7D,KAAK,GAAG,MAAM,CAAC,SAAS,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAEpD,OAAO,GAAG,CAAA;AACd,CAAC;AAzBD,4CAyBC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { links } from '../../../utils/links/index.js'\nimport { toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { getMessages } from './get-messages.js'\n\n/**\n * Given a message link (e.g. `t.me/durov/1`), fetch the relevant message.\n */\nexport async function getMessageByLink(client: ITelegramClient, link: string): Promise<Message | null> {\n const parsed = links.message.parse(link)\n\n if (!parsed) {\n throw new MtArgumentError(`Invalid message link: ${link}`)\n }\n\n let peer\n\n if ('username' in parsed) {\n peer = await resolvePeer(client, parsed.username)\n } else {\n peer = await resolvePeer(client, toggleChannelIdMark(parsed.channelId))\n }\n\n let msgId = parsed.id\n\n if (parsed.commentId) {\n [peer] = await _getDiscussionMessage(client, peer, parsed.id)\n msgId = parsed.commentId\n }\n\n const [msg] = await getMessages(client, peer, msgId)\n\n return msg\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"get-message-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-message-group.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,0EAA6D;AAE7D,mDAAuF;AACvF,6DAA8D;AAC9D,8DAAsD;AACtD,uDAA+C;AAE/C;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CAAC,MAAuB,EAAE,MAAsB;IACjF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAE3D,oCAAoC;IACpC,oCAAoC;IACpC,0DAA0D;IAC1D,wBAAwB;IACxB,0CAA0C;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,KAAK,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/C,MAAM,GAAG,GAAa,EAAE,CAAA;IAExB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAClE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAE,CAAC,SAAS,CAAA;IAEtE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,2BAAe,CAAC,6BAA6B,CAAC,CAAA;IAExE,OAAO,QAAQ,CAAC,MAAM,CAAC,8BAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;AACjF,CAAC;AAzBD,0CAyBC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { isPresent } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMessageId, Message, normalizeInputMessageId } from '../../types/index.js'\nimport { isInputPeerChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getMessages } from './get-messages.js'\n\n/**\n * Get all messages inside of a message group\n *\n * @param chatId Chat ID\n * @param message ID of one of the messages in the group\n */\nexport async function getMessageGroup(client: ITelegramClient, params: InputMessageId): Promise<Message[]> {\n const { chatId, message } = normalizeInputMessageId(params)\n\n // awesome hack stolen from pyrogram\n // groups have no more than 10 items\n // however, since for non-channels message ids are shared,\n // we use larger number.\n // still, this might not be enough :shrug:\n\n const peer = await resolvePeer(client, chatId)\n\n const delta = isInputPeerChannel(peer) ? 9 : 19\n\n const ids: number[] = []\n\n for (let i = Math.max(message - delta, 0); i <= message + delta; i++) {\n ids.push(i)\n }\n\n const messages = await getMessages(client, chatId, ids)\n const groupedId = messages.find((it) => it?.id === message)!.groupedId\n\n if (!groupedId) throw new MtArgumentError('This message is not grouped')\n\n return messages.filter(isPresent).filter((it) => it.groupedId?.eq(groupedId))\n}\n"]}
1
+ {"version":3,"file":"get-message-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-message-group.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,0EAA6D;AAE7D,mDAAuF;AACvF,6DAA8D;AAC9D,8DAAsD;AACtD,uDAA+C;AAE/C;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CAAC,MAAuB,EAAE,MAAsB;IACjF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAE3D,oCAAoC;IACpC,oCAAoC;IACpC,0DAA0D;IAC1D,wBAAwB;IACxB,0CAA0C;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,KAAK,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/C,MAAM,GAAG,GAAa,EAAE,CAAA;IAExB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAE,CAAC,SAAS,CAAA;IAEtE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,2BAAe,CAAC,6BAA6B,CAAC,CAAA;IAExE,OAAO,QAAQ,CAAC,MAAM,CAAC,8BAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;AACjF,CAAC;AAzBD,0CAyBC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { isPresent } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMessageId, Message, normalizeInputMessageId } from '../../types/index.js'\nimport { isInputPeerChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getMessages } from './get-messages.js'\n\n/**\n * Get all messages inside of a message group\n *\n * @param chatId Chat ID\n * @param message ID of one of the messages in the group\n */\nexport async function getMessageGroup(client: ITelegramClient, params: InputMessageId): Promise<Message[]> {\n const { chatId, message } = normalizeInputMessageId(params)\n\n // awesome hack stolen from pyrogram\n // groups have no more than 10 items\n // however, since for non-channels message ids are shared,\n // we use larger number.\n // still, this might not be enough :shrug:\n\n const peer = await resolvePeer(client, chatId)\n\n const delta = isInputPeerChannel(peer) ? 9 : 19\n\n const ids: number[] = []\n\n for (let i = Math.max(message - delta, 0); i <= message + delta; i++) {\n ids.push(i)\n }\n\n const messages = await getMessages(client, chatId, ids)\n const groupedId = messages.find((it) => it?.id === message)!.groupedId\n\n if (!groupedId) throw new MtArgumentError('This message is not grouped')\n\n return messages.filter(isPresent).filter((it) => it.groupedId?.eq(groupedId))\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"get-message-reactions.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-message-reactions.ts"],"names":[],"mappings":";;;AAAA,gEAA8D;AAC9D,0EAAgE;AAEhE,mDAA2F;AAC3F,qDAA6D;AAC7D,8DAAsD;AAEtD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,uBAAuB,CACzC,MAAuB,EACvB,MAAqB,EACrB,QAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,+BAA+B;QAClC,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,EAAE,EAAE,QAAQ;KACf,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;IAE1D,qDAAqD;IACrD,gDAAgD;IAChD,EAAE;IACF,+CAA+C;IAC/C,+CAA+C;IAE/C,MAAM,KAAK,GAAqC,EAAE,CAAA;IAElD,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;QAC9B,IAAA,iCAAY,EAAC,+BAA+B,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAA;QAE/E,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,2BAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,+BAAe,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KAClH;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAA;AAChE,CAAC;AA9BD,0DA8BC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mBAAmB,CACrC,MAAuB,EACvB,QAAmB;IAEnB,OAAO,uBAAuB,CAC1B,MAAM,EACN,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC9B,CAAA;AACL,CAAC;AATD,kDASC","sourcesContent":["import { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message, MessageReactions, PeersIndex } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Get reactions to messages by their IDs.\n *\n * > Apps should short-poll reactions for visible messages\n * > (that weren't sent by the user) once every 15-30 seconds,\n * > but only if `message.reactions` is set\n *\n * @param chatId ID of the chat with messages\n * @param messages Message IDs\n * @returns Reactions to corresponding messages, or `null` if there are none\n */\nexport async function getMessageReactionsById(\n client: ITelegramClient,\n chatId: InputPeerLike,\n messages: number[],\n): Promise<(MessageReactions | null)[]> {\n const res = await client.call({\n _: 'messages.getMessagesReactions',\n peer: await resolvePeer(client, chatId),\n id: messages,\n })\n\n assertIsUpdatesGroup('messages.getMessagesReactions', res)\n\n // normally the group contains updateMessageReactions\n // for each message requested that has reactions\n //\n // these updates are not ordered in any way, so\n // we don't need to pass them to updates engine\n\n const index: Record<number, MessageReactions> = {}\n\n const peers = PeersIndex.from(res)\n\n for (const update of res.updates) {\n assertTypeIs('messages.getMessagesReactions', update, 'updateMessageReactions')\n\n index[update.msgId] = new MessageReactions(update.msgId, getMarkedPeerId(update.peer), update.reactions, peers)\n }\n\n return messages.map((messageId) => index[messageId] ?? null)\n}\n\n/**\n * Get reactions to {@link Message}s.\n *\n * > **Note**: messages must all be from the same chat.\n *\n * > Apps should short-poll reactions for visible messages\n * > (that weren't sent by the user) once every 15-30 seconds,\n * > but only if `message.reactions` is set\n *\n * @param chatId ID of the chat with messages\n * @param messages Message IDs\n * @returns Reactions to corresponding messages, or `null` if there are none\n */\nexport async function getMessageReactions(\n client: ITelegramClient,\n messages: Message[],\n): Promise<(MessageReactions | null)[]> {\n return getMessageReactionsById(\n client,\n messages[0].chat.inputPeer,\n messages.map((it) => it.id),\n )\n}\n"]}
1
+ {"version":3,"file":"get-message-reactions.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-message-reactions.ts"],"names":[],"mappings":";;;AAAA,gEAA8D;AAC9D,0EAAgE;AAEhE,mDAA2F;AAC3F,qDAA6D;AAC7D,8DAAsD;AAEtD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,uBAAuB,CACzC,MAAuB,EACvB,MAAqB,EACrB,QAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,+BAA+B;QAClC,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,EAAE,EAAE,QAAQ;KACf,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;IAE1D,qDAAqD;IACrD,gDAAgD;IAChD,EAAE;IACF,+CAA+C;IAC/C,+CAA+C;IAE/C,MAAM,KAAK,GAAqC,EAAE,CAAA;IAElD,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAA,iCAAY,EAAC,+BAA+B,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAA;QAE/E,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,2BAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,+BAAe,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACnH,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAA;AAChE,CAAC;AA9BD,0DA8BC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mBAAmB,CACrC,MAAuB,EACvB,QAAmB;IAEnB,OAAO,uBAAuB,CAC1B,MAAM,EACN,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC9B,CAAA;AACL,CAAC;AATD,kDASC","sourcesContent":["import { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message, MessageReactions, PeersIndex } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Get reactions to messages by their IDs.\n *\n * > Apps should short-poll reactions for visible messages\n * > (that weren't sent by the user) once every 15-30 seconds,\n * > but only if `message.reactions` is set\n *\n * @param chatId ID of the chat with messages\n * @param messages Message IDs\n * @returns Reactions to corresponding messages, or `null` if there are none\n */\nexport async function getMessageReactionsById(\n client: ITelegramClient,\n chatId: InputPeerLike,\n messages: number[],\n): Promise<(MessageReactions | null)[]> {\n const res = await client.call({\n _: 'messages.getMessagesReactions',\n peer: await resolvePeer(client, chatId),\n id: messages,\n })\n\n assertIsUpdatesGroup('messages.getMessagesReactions', res)\n\n // normally the group contains updateMessageReactions\n // for each message requested that has reactions\n //\n // these updates are not ordered in any way, so\n // we don't need to pass them to updates engine\n\n const index: Record<number, MessageReactions> = {}\n\n const peers = PeersIndex.from(res)\n\n for (const update of res.updates) {\n assertTypeIs('messages.getMessagesReactions', update, 'updateMessageReactions')\n\n index[update.msgId] = new MessageReactions(update.msgId, getMarkedPeerId(update.peer), update.reactions, peers)\n }\n\n return messages.map((messageId) => index[messageId] ?? null)\n}\n\n/**\n * Get reactions to {@link Message}s.\n *\n * > **Note**: messages must all be from the same chat.\n *\n * > Apps should short-poll reactions for visible messages\n * > (that weren't sent by the user) once every 15-30 seconds,\n * > but only if `message.reactions` is set\n *\n * @param chatId ID of the chat with messages\n * @param messages Message IDs\n * @returns Reactions to corresponding messages, or `null` if there are none\n */\nexport async function getMessageReactions(\n client: ITelegramClient,\n messages: Message[],\n): Promise<(MessageReactions | null)[]> {\n return getMessageReactionsById(\n client,\n messages[0].chat.inputPeer,\n messages.map((it) => it.id),\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-messages.ts"],"names":[],"mappings":";;;AAGA,0EAAmE;AAEnE,4DAAuD;AACvD,yDAAsE;AACtE,6DAA8E;AAC9E,8DAAsD;AAEtD,kBAAkB;AAClB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAAqB,EACrB,UAA8B,EAC9B,SAAS,GAAG,KAAK;IAEjB,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,UAAU,GAAG,CAAC,UAAU,CAAC,CAAA;IAEzD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAA;IACjE,MAAM,GAAG,GAA0B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC,EAAE,IAAI;QACP,EAAE,EAAE,EAAE;KACT,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAA;IAE1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACzB,SAAS,CAAC,CAAC;QACP;YACI,CAAC,EAAE,sBAAsB;YACzB,EAAE,EAAE,GAAG;YACP,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QACH;YACI,CAAC,EAAE,sBAAsB;YACzB,EAAE,EAAE,GAAG;SACV,CACR,CAAA;IAED,IAAA,oCAAe,EAAC,aAAa,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,IAAI,MAAM,GAA8B,SAAS,CAAA;IAEjD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,CAAC,KAAK,cAAc;YAAE,OAAO,IAAI,CAAA;QAEzC,IAAI,CAAC,SAAS,EAAE;YACZ,uDAAuD;YACvD,8CAA8C;YAC9C,QAAQ,IAAI,CAAC,CAAC,EAAE;gBACZ,KAAK,eAAe;oBAChB,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,IAAI,IAAI,CAAA;oBAElF,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;wBAChE,OAAO,IAAI,CAAA;qBACd;oBACD,MAAK;gBACT,KAAK,eAAe,CAAC;gBACrB,KAAK,0BAA0B;oBAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE;wBACrE,OAAO,IAAI,CAAA;qBACd;oBACD,MAAK;gBACT,KAAK,eAAe;oBAChB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE;wBACrE,OAAO,IAAI,CAAA;qBACd;oBACD,MAAK;aACZ;SACJ;QAED,OAAO,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACN,CAAC;AAlED,kCAkEC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../types/utils.js'\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { isInputPeerChannel, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @available=both\n/**\n * Get messages in chat by their IDs\n *\n * Fot messages that were not found, `null` will be\n * returned at that position.\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`\n * @param messageIds Messages IDs\n * @param [fromReply=false]\n * Whether the reply to a given message should be fetched\n * (i.e. `getMessages(msg.chat.id, msg.id, true).id === msg.replyToMessageId`)\n */\nexport async function getMessages(\n client: ITelegramClient,\n chatId: InputPeerLike,\n messageIds: MaybeArray<number>,\n fromReply = false,\n): Promise<(Message | null)[]> {\n const peer = await resolvePeer(client, chatId)\n if (!Array.isArray(messageIds)) messageIds = [messageIds]\n\n const type = fromReply ? 'inputMessageReplyTo' : 'inputMessageID'\n const ids: tl.TypeInputMessage[] = messageIds.map((it) => ({\n _: type,\n id: it,\n }))\n\n const isChannel = isInputPeerChannel(peer)\n\n const res = await client.call(\n isChannel ?\n {\n _: 'channels.getMessages',\n id: ids,\n channel: toInputChannel(peer),\n } :\n {\n _: 'messages.getMessages',\n id: ids,\n },\n )\n\n assertTypeIsNot('getMessages', res, 'messages.messagesNotModified')\n\n const peers = PeersIndex.from(res)\n\n let selfId: number | null | undefined = undefined\n\n return res.messages.map((msg) => {\n if (msg._ === 'messageEmpty') return null\n\n if (!isChannel) {\n // make sure that the messages belong to the given chat\n // (channels have their own message numbering)\n switch (peer._) {\n case 'inputPeerSelf':\n if (selfId === undefined) selfId = client.storage.self.getCached()?.userId ?? null\n\n if (!(msg.peerId._ === 'peerUser' && msg.peerId.userId === selfId)) {\n return null\n }\n break\n case 'inputPeerUser':\n case 'inputPeerUserFromMessage':\n if (!(msg.peerId._ === 'peerUser' && msg.peerId.userId === peer.userId)) {\n return null\n }\n break\n case 'inputPeerChat':\n if (!(msg.peerId._ === 'peerChat' && msg.peerId.chatId === peer.chatId)) {\n return null\n }\n break\n }\n }\n\n return new Message(msg, peers)\n })\n}\n"]}
1
+ {"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-messages.ts"],"names":[],"mappings":";;;AAGA,0EAAmE;AAEnE,4DAAuD;AACvD,yDAAsE;AACtE,6DAA8E;AAC9E,8DAAsD;AAEtD,kBAAkB;AAClB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAAqB,EACrB,UAA8B,EAC9B,SAAS,GAAG,KAAK;IAEjB,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,UAAU,GAAG,CAAC,UAAU,CAAC,CAAA;IAEzD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAA;IACjE,MAAM,GAAG,GAA0B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC,EAAE,IAAI;QACP,EAAE,EAAE,EAAE;KACT,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAA;IAE1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACzB,SAAS,CAAC,CAAC;QACP;YACI,CAAC,EAAE,sBAAsB;YACzB,EAAE,EAAE,GAAG;YACP,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QACH;YACI,CAAC,EAAE,sBAAsB;YACzB,EAAE,EAAE,GAAG;SACV,CACR,CAAA;IAED,IAAA,oCAAe,EAAC,aAAa,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,IAAI,MAAM,GAA8B,SAAS,CAAA;IAEjD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,CAAC,KAAK,cAAc;YAAE,OAAO,IAAI,CAAA;QAEzC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,uDAAuD;YACvD,8CAA8C;YAC9C,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;gBACb,KAAK,eAAe;oBAChB,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,IAAI,IAAI,CAAA;oBAElF,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;wBACjE,OAAO,IAAI,CAAA;oBACf,CAAC;oBACD,MAAK;gBACT,KAAK,eAAe,CAAC;gBACrB,KAAK,0BAA0B;oBAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACtE,OAAO,IAAI,CAAA;oBACf,CAAC;oBACD,MAAK;gBACT,KAAK,eAAe;oBAChB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACtE,OAAO,IAAI,CAAA;oBACf,CAAC;oBACD,MAAK;YACb,CAAC;QACL,CAAC;QAED,OAAO,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACN,CAAC;AAlED,kCAkEC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../types/utils.js'\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { isInputPeerChannel, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @available=both\n/**\n * Get messages in chat by their IDs\n *\n * Fot messages that were not found, `null` will be\n * returned at that position.\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`\n * @param messageIds Messages IDs\n * @param [fromReply=false]\n * Whether the reply to a given message should be fetched\n * (i.e. `getMessages(msg.chat.id, msg.id, true).id === msg.replyToMessageId`)\n */\nexport async function getMessages(\n client: ITelegramClient,\n chatId: InputPeerLike,\n messageIds: MaybeArray<number>,\n fromReply = false,\n): Promise<(Message | null)[]> {\n const peer = await resolvePeer(client, chatId)\n if (!Array.isArray(messageIds)) messageIds = [messageIds]\n\n const type = fromReply ? 'inputMessageReplyTo' : 'inputMessageID'\n const ids: tl.TypeInputMessage[] = messageIds.map((it) => ({\n _: type,\n id: it,\n }))\n\n const isChannel = isInputPeerChannel(peer)\n\n const res = await client.call(\n isChannel ?\n {\n _: 'channels.getMessages',\n id: ids,\n channel: toInputChannel(peer),\n } :\n {\n _: 'messages.getMessages',\n id: ids,\n },\n )\n\n assertTypeIsNot('getMessages', res, 'messages.messagesNotModified')\n\n const peers = PeersIndex.from(res)\n\n let selfId: number | null | undefined = undefined\n\n return res.messages.map((msg) => {\n if (msg._ === 'messageEmpty') return null\n\n if (!isChannel) {\n // make sure that the messages belong to the given chat\n // (channels have their own message numbering)\n switch (peer._) {\n case 'inputPeerSelf':\n if (selfId === undefined) selfId = client.storage.self.getCached()?.userId ?? null\n\n if (!(msg.peerId._ === 'peerUser' && msg.peerId.userId === selfId)) {\n return null\n }\n break\n case 'inputPeerUser':\n case 'inputPeerUserFromMessage':\n if (!(msg.peerId._ === 'peerUser' && msg.peerId.userId === peer.userId)) {\n return null\n }\n break\n case 'inputPeerChat':\n if (!(msg.peerId._ === 'peerChat' && msg.peerId.chatId === peer.chatId)) {\n return null\n }\n break\n }\n }\n\n return new Message(msg, peers)\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"get-reply-to.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-reply-to.ts"],"names":[],"mappings":";;;AAEA,uDAA+C;AAC/C,qEAA4D;AAE5D;;;;;;GAMG;AACI,KAAK,UAAU,UAAU,CAAC,MAAuB,EAAE,OAAgB;IACtE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE;QAC7B,OAAO,IAAI,CAAA;KACd;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,aAAa,EAAE;QACxC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAEjF,OAAO,GAAG,CAAA;KACb;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,0CAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO,GAAG,CAAA;AACd,CAAC;AAdD,gCAcC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { getMessages } from './get-messages.js'\nimport { getMessagesUnsafe } from './get-messages-unsafe.js'\n\n/**\n * For messages containing a reply, fetch the message that is being replied.\n *\n * Note that even if a message has {@link replyToMessage},\n * the message itself may have been deleted, in which case\n * this method will also return `null`.\n */\nexport async function getReplyTo(client: ITelegramClient, message: Message): Promise<Message | null> {\n if (!message.replyToMessage?.id) {\n return null\n }\n\n if (message.raw.peerId._ === 'peerChannel') {\n const [msg] = await getMessages(client, message.chat.inputPeer, message.id, true)\n\n return msg\n }\n\n const [msg] = await getMessagesUnsafe(client, message.id, true)\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"get-reply-to.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-reply-to.ts"],"names":[],"mappings":";;;AAEA,uDAA+C;AAC/C,qEAA4D;AAE5D;;;;;;GAMG;AACI,KAAK,UAAU,UAAU,CAAC,MAAuB,EAAE,OAAgB;IACtE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAEjF,OAAO,GAAG,CAAA;IACd,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,0CAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO,GAAG,CAAA;AACd,CAAC;AAdD,gCAcC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { getMessages } from './get-messages.js'\nimport { getMessagesUnsafe } from './get-messages-unsafe.js'\n\n/**\n * For messages containing a reply, fetch the message that is being replied.\n *\n * Note that even if a message has {@link replyToMessage},\n * the message itself may have been deleted, in which case\n * this method will also return `null`.\n */\nexport async function getReplyTo(client: ITelegramClient, message: Message): Promise<Message | null> {\n if (!message.replyToMessage?.id) {\n return null\n }\n\n if (message.raw.peerId._ === 'peerChannel') {\n const [msg] = await getMessages(client, message.chat.inputPeer, message.id, true)\n\n return msg\n }\n\n const [msg] = await getMessagesUnsafe(client, message.id, true)\n\n return msg\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"iter-history.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-history.ts"],"names":[],"mappings":";;;AAEA,8DAAsD;AACtD,qDAA6C;AAE7C;;;;;GAKG;AACI,KAAK,SAAS,CAAC,CAAC,WAAW,CAC9B,MAAuB,EACvB,MAAqB,EACrB,MAcC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAE3F,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;IACtC,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,qDAAqD;IACrD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,SAAS;QACL,MAAM,GAAG,GAAG,MAAM,IAAA,2BAAU,EAAC,MAAM,EAAE,IAAI,EAAE;YACvC,MAAM;YACN,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,KAAK;YACL,KAAK;YACL,OAAO;SACV,CAAC,CAAA;QAEF,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;SACjC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QACjB,SAAS,GAAG,CAAC,CAAA;KAChB;AACL,CAAC;AAjDD,kCAiDC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getHistory } from './get-history.js'\n\n/**\n * Iterate over chat history. Wrapper over {@link getHistory}\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`.\n * @param params Additional fetch parameters\n */\nexport async function* iterHistory(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: Parameters<typeof getHistory>[2] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default Infinity, i.e. all messages\n */\n limit?: number\n\n /**\n * Chunk size. Usually you shouldn't care about this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const { limit = Infinity, chunkSize = 100, minId = 0, maxId = 0, reverse = false } = params\n\n let { offset, addOffset = 0 } = params\n let current = 0\n\n // resolve peer once and pass an InputPeer afterwards\n const peer = await resolvePeer(client, chatId)\n\n for (;;) {\n const res = await getHistory(client, peer, {\n offset,\n addOffset,\n limit: Math.min(chunkSize, limit - current),\n maxId,\n minId,\n reverse,\n })\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) return\n offset = res.next\n addOffset = 0\n }\n}\n"]}
1
+ {"version":3,"file":"iter-history.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-history.ts"],"names":[],"mappings":";;;AAEA,8DAAsD;AACtD,qDAA6C;AAE7C;;;;;GAKG;AACI,KAAK,SAAS,CAAC,CAAC,WAAW,CAC9B,MAAuB,EACvB,MAAqB,EACrB,MAcC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAE3F,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;IACtC,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,qDAAqD;IACrD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,SAAS,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,IAAA,2BAAU,EAAC,MAAM,EAAE,IAAI,EAAE;YACvC,MAAM;YACN,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,KAAK;YACL,KAAK;YACL,OAAO;SACV,CAAC,CAAA;QAEF,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QACjB,SAAS,GAAG,CAAC,CAAA;IACjB,CAAC;AACL,CAAC;AAjDD,kCAiDC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getHistory } from './get-history.js'\n\n/**\n * Iterate over chat history. Wrapper over {@link getHistory}\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`.\n * @param params Additional fetch parameters\n */\nexport async function* iterHistory(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: Parameters<typeof getHistory>[2] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default Infinity, i.e. all messages\n */\n limit?: number\n\n /**\n * Chunk size. Usually you shouldn't care about this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const { limit = Infinity, chunkSize = 100, minId = 0, maxId = 0, reverse = false } = params\n\n let { offset, addOffset = 0 } = params\n let current = 0\n\n // resolve peer once and pass an InputPeer afterwards\n const peer = await resolvePeer(client, chatId)\n\n for (;;) {\n const res = await getHistory(client, peer, {\n offset,\n addOffset,\n limit: Math.min(chunkSize, limit - current),\n maxId,\n minId,\n reverse,\n })\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) return\n offset = res.next\n addOffset = 0\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"iter-reaction-users.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-reaction-users.ts"],"names":[],"mappings":";;;AACA,mDAAoG;AACpG,8DAAsD;AACtD,mEAA0D;AAE1D;;;;;;;;GAQG;AACI,KAAK,SAAS,CAAC,CAAC,iBAAiB,CACpC,MAAuB,EACvB,MAcC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;IAEpD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEvB,MAAM,QAAQ,GAAG,IAAA,iCAAsB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAErD,SAAS;QACL,MAAM,GAAG,GAAG,MAAM,IAAA,wCAAgB,EAAC,MAAM,EAAE;YACvC,MAAM,EAAE,IAAI;YACZ,OAAO;YACP,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,MAAM;SACT,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QAEjB,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE;YACxB,MAAM,QAAQ,CAAA;YAEd,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,MAAK;SAChC;KACJ;AACL,CAAC;AA7CD,8CA6CC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { normalizeInputMessageId, normalizeInputReaction, PeerReaction } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getReactionUsers } from './get-reaction-users.js'\n\n/**\n * Iterate over users who have reacted to the message.\n *\n * Wrapper over {@link getReactionUsers}.\n *\n * @param chatId Chat ID\n * @param messageId Message ID\n * @param params\n */\nexport async function* iterReactionUsers(\n client: ITelegramClient,\n params: Parameters<typeof getReactionUsers>[1] & {\n /**\n * Limit the number of events returned.\n *\n * @default `Infinity`, i.e. all events are returned\n */\n limit?: number\n\n /**\n * Chunk size, usually not needed.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<PeerReaction> {\n const { chatId, message } = normalizeInputMessageId(params)\n const peer = await resolvePeer(client, chatId)\n\n const { limit = Infinity, chunkSize = 100 } = params\n\n let current = 0\n let { offset } = params\n\n const reaction = normalizeInputReaction(params.emoji)\n\n for (;;) {\n const res = await getReactionUsers(client, {\n chatId: peer,\n message,\n emoji: reaction,\n limit: Math.min(chunkSize, limit - current),\n offset,\n })\n\n offset = res.next\n\n for (const reaction of res) {\n yield reaction\n\n if (++current >= limit) break\n }\n }\n}\n"]}
1
+ {"version":3,"file":"iter-reaction-users.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-reaction-users.ts"],"names":[],"mappings":";;;AACA,mDAAoG;AACpG,8DAAsD;AACtD,mEAA0D;AAE1D;;;;;;;;GAQG;AACI,KAAK,SAAS,CAAC,CAAC,iBAAiB,CACpC,MAAuB,EACvB,MAcC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;IAEpD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEvB,MAAM,QAAQ,GAAG,IAAA,iCAAsB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAErD,SAAS,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,IAAA,wCAAgB,EAAC,MAAM,EAAE;YACvC,MAAM,EAAE,IAAI;YACZ,OAAO;YACP,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,MAAM;SACT,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QAEjB,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YACzB,MAAM,QAAQ,CAAA;YAEd,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,MAAK;QACjC,CAAC;IACL,CAAC;AACL,CAAC;AA7CD,8CA6CC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { normalizeInputMessageId, normalizeInputReaction, PeerReaction } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getReactionUsers } from './get-reaction-users.js'\n\n/**\n * Iterate over users who have reacted to the message.\n *\n * Wrapper over {@link getReactionUsers}.\n *\n * @param chatId Chat ID\n * @param messageId Message ID\n * @param params\n */\nexport async function* iterReactionUsers(\n client: ITelegramClient,\n params: Parameters<typeof getReactionUsers>[1] & {\n /**\n * Limit the number of events returned.\n *\n * @default `Infinity`, i.e. all events are returned\n */\n limit?: number\n\n /**\n * Chunk size, usually not needed.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<PeerReaction> {\n const { chatId, message } = normalizeInputMessageId(params)\n const peer = await resolvePeer(client, chatId)\n\n const { limit = Infinity, chunkSize = 100 } = params\n\n let current = 0\n let { offset } = params\n\n const reaction = normalizeInputReaction(params.emoji)\n\n for (;;) {\n const res = await getReactionUsers(client, {\n chatId: peer,\n message,\n emoji: reaction,\n limit: Math.min(chunkSize, limit - current),\n offset,\n })\n\n offset = res.next\n\n for (const reaction of res) {\n yield reaction\n\n if (++current >= limit) break\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"iter-search-global.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-search-global.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAC7D,mDAAoD;AACpD,yDAAiD;AAEjD;;;;;;;;GAQG;AACI,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAuB,EACvB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,wBAAa,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;IAE9F,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,SAAS;QACL,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAY,EAAC,MAAM,EAAE;YACnC,KAAK;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,OAAO;YACP,OAAO;YACP,MAAM;SACT,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAM;QAEvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;SACjC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;KACpB;AACL,CAAC;AAlDD,4CAkDC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message, SearchFilters } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/index.js'\nimport { searchGlobal } from './search-global.js'\n\n/**\n * Search for messages globally from all of your chats.\n *\n * Iterable version of {@link searchGlobal}\n *\n * **Note**: Due to Telegram limitations, you can only get up to ~10000 messages\n *\n * @param params Search parameters\n */\nexport async function* iterSearchGlobal(\n client: ITelegramClient,\n params?: Parameters<typeof searchGlobal>[1] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default `Infinity`, i.e. all messages are returned\n */\n limit?: number\n\n /**\n * Chunk size, which will be passed as `limit` parameter\n * for `messages.search`. Usually you shouldn't care about this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const { query = '', filter = SearchFilters.Empty, limit = Infinity, chunkSize = 100 } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n\n let { offset } = params\n let current = 0\n\n for (;;) {\n const res = await searchGlobal(client, {\n query,\n filter,\n limit: Math.min(chunkSize, limit - current),\n minDate,\n maxDate,\n offset,\n })\n\n if (!res.length) return\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) return\n offset = res.next\n }\n}\n"]}
1
+ {"version":3,"file":"iter-search-global.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-search-global.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAC7D,mDAAoD;AACpD,yDAAiD;AAEjD;;;;;;;;GAQG;AACI,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAuB,EACvB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,wBAAa,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;IAE9F,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,SAAS,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAY,EAAC,MAAM,EAAE;YACnC,KAAK;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,OAAO;YACP,OAAO;YACP,MAAM;SACT,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAM;QAEvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;IACrB,CAAC;AACL,CAAC;AAlDD,4CAkDC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message, SearchFilters } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/index.js'\nimport { searchGlobal } from './search-global.js'\n\n/**\n * Search for messages globally from all of your chats.\n *\n * Iterable version of {@link searchGlobal}\n *\n * **Note**: Due to Telegram limitations, you can only get up to ~10000 messages\n *\n * @param params Search parameters\n */\nexport async function* iterSearchGlobal(\n client: ITelegramClient,\n params?: Parameters<typeof searchGlobal>[1] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default `Infinity`, i.e. all messages are returned\n */\n limit?: number\n\n /**\n * Chunk size, which will be passed as `limit` parameter\n * for `messages.search`. Usually you shouldn't care about this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const { query = '', filter = SearchFilters.Empty, limit = Infinity, chunkSize = 100 } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n\n let { offset } = params\n let current = 0\n\n for (;;) {\n const res = await searchGlobal(client, {\n query,\n filter,\n limit: Math.min(chunkSize, limit - current),\n minDate,\n maxDate,\n offset,\n })\n\n if (!res.length) return\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) return\n offset = res.next\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"iter-search-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-search-messages.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAC7D,6DAAyD;AACzD,8DAAsD;AACtD,6DAAqD;AAErD;;;;;;;GAOG;AACI,KAAK,SAAS,CAAC,CAAC,kBAAkB,CACrC,MAAuB,EACvB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EACF,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAChC,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,GAAG,EACf,MAAM,GAAG,wBAAa,CAAC,KAAK,GAC/B,GAAG,MAAM,CAAA;IAEV,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzF,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAClC,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,SAAS;QACL,MAAM,GAAG,GAAG,MAAM,IAAA,mCAAc,EAAC,MAAM,EAAE;YACrC,KAAK;YACL,MAAM,EAAE,IAAI;YACZ,MAAM;YACN,SAAS;YACT,KAAK;YACL,KAAK;YACL,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,OAAO;YACP,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;SAC9C,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,MAAK;QAEtB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;SACjC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAK;QACpB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QACjB,SAAS,GAAG,SAAS,CAAA;KACxB;AACL,CAAC;AApED,gDAoEC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message, SearchFilters } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { searchMessages } from './search-messages.js'\n\n/**\n * Search for messages inside a specific chat\n *\n * Iterable version of {@link searchMessages}\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`.\n * @param params Additional search parameters\n */\nexport async function* iterSearchMessages(\n client: ITelegramClient,\n params?: Parameters<typeof searchMessages>[1] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default `Infinity`, i.e. all messages are returned\n */\n limit?: number\n\n /**\n * Chunk size, which will be passed as `limit` parameter\n * for `messages.search`. Usually you shouldn't care about this.\n *\n * @default `100`\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const {\n query = '',\n chatId = { _: 'inputPeerEmpty' },\n minId = 0,\n maxId = 0,\n threadId,\n limit = Infinity,\n chunkSize = 100,\n filter = SearchFilters.Empty,\n } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n const peer = await resolvePeer(client, chatId)\n const fromUser = params.fromUser ? await resolvePeer(client, params.fromUser) : undefined\n\n let { offset, addOffset } = params\n let current = 0\n\n for (;;) {\n const res = await searchMessages(client, {\n query,\n chatId: peer,\n offset,\n addOffset,\n minId,\n maxId,\n threadId,\n filter,\n fromUser,\n minDate,\n maxDate,\n limit: Math.min(chunkSize, limit - current),\n })\n\n if (!res.length) break\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) break\n offset = res.next\n addOffset = undefined\n }\n}\n"]}
1
+ {"version":3,"file":"iter-search-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-search-messages.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAC7D,6DAAyD;AACzD,8DAAsD;AACtD,6DAAqD;AAErD;;;;;;;GAOG;AACI,KAAK,SAAS,CAAC,CAAC,kBAAkB,CACrC,MAAuB,EACvB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EACF,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAChC,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,GAAG,EACf,MAAM,GAAG,wBAAa,CAAC,KAAK,GAC/B,GAAG,MAAM,CAAA;IAEV,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzF,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAClC,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,SAAS,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,IAAA,mCAAc,EAAC,MAAM,EAAE;YACrC,KAAK;YACL,MAAM,EAAE,IAAI;YACZ,MAAM;YACN,SAAS;YACT,KAAK;YACL,KAAK;YACL,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,OAAO;YACP,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;SAC9C,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,MAAK;QAEtB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAK;QACpB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QACjB,SAAS,GAAG,SAAS,CAAA;IACzB,CAAC;AACL,CAAC;AApED,gDAoEC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message, SearchFilters } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { searchMessages } from './search-messages.js'\n\n/**\n * Search for messages inside a specific chat\n *\n * Iterable version of {@link searchMessages}\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`.\n * @param params Additional search parameters\n */\nexport async function* iterSearchMessages(\n client: ITelegramClient,\n params?: Parameters<typeof searchMessages>[1] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default `Infinity`, i.e. all messages are returned\n */\n limit?: number\n\n /**\n * Chunk size, which will be passed as `limit` parameter\n * for `messages.search`. Usually you shouldn't care about this.\n *\n * @default `100`\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const {\n query = '',\n chatId = { _: 'inputPeerEmpty' },\n minId = 0,\n maxId = 0,\n threadId,\n limit = Infinity,\n chunkSize = 100,\n filter = SearchFilters.Empty,\n } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n const peer = await resolvePeer(client, chatId)\n const fromUser = params.fromUser ? await resolvePeer(client, params.fromUser) : undefined\n\n let { offset, addOffset } = params\n let current = 0\n\n for (;;) {\n const res = await searchMessages(client, {\n query,\n chatId: peer,\n offset,\n addOffset,\n minId,\n maxId,\n threadId,\n filter,\n fromUser,\n minDate,\n maxDate,\n limit: Math.min(chunkSize, limit - current),\n })\n\n if (!res.length) break\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) break\n offset = res.next\n addOffset = undefined\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"read-history.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/read-history.ts"],"names":[],"mappings":";;;AAAA,0EAA8D;AAG9D,qDAA0D;AAC1D,6DAA8E;AAC9E,8DAAsD;AAEtD;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAAqB,EACrB,MAYC;IAED,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,aAAa,EAAE;QACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,uBAAuB;YAC1B,IAAI;SACP,CAAC,CAAA;QAEF,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,CAAC,kBAAkB,CAAC,IAAA,4BAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;SACtF;aAAM;YACH,MAAM,CAAC,kBAAkB,CAAC,IAAA,4BAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;SACtE;KACJ;IAED,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,sBAAsB;YACzB,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;YAC7B,KAAK;SACR,CAAC,CAAA;QAEF,IAAA,+BAAU,EAAC,sBAAsB,EAAE,CAAC,CAAC,CAAA;KACxC;SAAM;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,sBAAsB;YACzB,IAAI;YACJ,KAAK;SACR,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,IAAA,4BAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;KACtE;AACL,CAAC;AAlDD,kCAkDC","sourcesContent":["import { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { createDummyUpdate } from '../../updates/utils.js'\nimport { isInputPeerChannel, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Mark chat history as read.\n *\n * @param chatId Chat ID\n */\nexport async function readHistory(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: {\n /**\n * Message up until which to read history\n *\n * @default 0, i.e. read everything\n */\n maxId?: number\n\n /**\n * Whether to also clear all mentions in the chat\n */\n clearMentions?: boolean\n },\n): Promise<void> {\n const { maxId = 0, clearMentions } = params ?? {}\n\n const peer = await resolvePeer(client, chatId)\n\n if (clearMentions) {\n const res = await client.call({\n _: 'messages.readMentions',\n peer,\n })\n\n if (isInputPeerChannel(peer)) {\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount, peer.channelId))\n } else {\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n }\n }\n\n if (isInputPeerChannel(peer)) {\n const r = await client.call({\n _: 'channels.readHistory',\n channel: toInputChannel(peer),\n maxId,\n })\n\n assertTrue('channels.readHistory', r)\n } else {\n const res = await client.call({\n _: 'messages.readHistory',\n peer,\n maxId,\n })\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n }\n}\n"]}
1
+ {"version":3,"file":"read-history.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/read-history.ts"],"names":[],"mappings":";;;AAAA,0EAA8D;AAG9D,qDAA0D;AAC1D,6DAA8E;AAC9E,8DAAsD;AAEtD;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAAqB,EACrB,MAYC;IAED,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,uBAAuB;YAC1B,IAAI;SACP,CAAC,CAAA;QAEF,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,kBAAkB,CAAC,IAAA,4BAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QACvF,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,kBAAkB,CAAC,IAAA,4BAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QACvE,CAAC;IACL,CAAC;IAED,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,sBAAsB;YACzB,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;YAC7B,KAAK;SACR,CAAC,CAAA;QAEF,IAAA,+BAAU,EAAC,sBAAsB,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,sBAAsB;YACzB,IAAI;YACJ,KAAK;SACR,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,IAAA,4BAAiB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvE,CAAC;AACL,CAAC;AAlDD,kCAkDC","sourcesContent":["import { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { createDummyUpdate } from '../../updates/utils.js'\nimport { isInputPeerChannel, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Mark chat history as read.\n *\n * @param chatId Chat ID\n */\nexport async function readHistory(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: {\n /**\n * Message up until which to read history\n *\n * @default 0, i.e. read everything\n */\n maxId?: number\n\n /**\n * Whether to also clear all mentions in the chat\n */\n clearMentions?: boolean\n },\n): Promise<void> {\n const { maxId = 0, clearMentions } = params ?? {}\n\n const peer = await resolvePeer(client, chatId)\n\n if (clearMentions) {\n const res = await client.call({\n _: 'messages.readMentions',\n peer,\n })\n\n if (isInputPeerChannel(peer)) {\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount, peer.channelId))\n } else {\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n }\n }\n\n if (isInputPeerChannel(peer)) {\n const r = await client.call({\n _: 'channels.readHistory',\n channel: toInputChannel(peer),\n maxId,\n })\n\n assertTrue('channels.readHistory', r)\n } else {\n const res = await client.call({\n _: 'messages.readHistory',\n peer,\n maxId,\n })\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-answer.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-answer.ts"],"names":[],"mappings":";;;AAGA,mDAA2C;AAC3C,+DAAsD;AACtD,iDAAyC;AAEzC,iFAAiF;AACjF,SAAgB,UAAU,CACtB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAwC;IAE3C,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE;QAC9D,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;KAC7D;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACnC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IAEjD,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC;AAbD,gCAaC;AAED,kFAAkF;AAClF,SAAgB,WAAW,CACvB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAyC;IAE5C,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE;QAC9D,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;KAC9D;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IAEjD,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAbD,kCAaC;AAED,wFAAwF;AACxF,SAAgB,gBAAgB,CAC5B,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAA8C;IAEjD,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE;QAC9D,OAAO,IAAA,oCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;KACnE;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IAEjD,OAAO,IAAA,oCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACzE,CAAC;AAbD,4CAaC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { ParametersSkip2 } from '../../types/utils.js'\nimport { sendMedia } from './send-media.js'\nimport { sendMediaGroup } from './send-media-group.js'\nimport { sendText } from './send-text.js'\n\n/** Send a text to the same chat (and topic, if applicable) as a given message */\nexport function answerText(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendText>\n): ReturnType<typeof sendText> {\n if (!message.isTopicMessage || !message.replyToMessage?.threadId) {\n return sendText(client, message.chat.inputPeer, ...params)\n }\n\n const [text, params_ = {}] = params\n params_.replyTo = message.replyToMessage.threadId\n\n return sendText(client, message.chat.inputPeer, text, params_)\n}\n\n/** Send a media to the same chat (and topic, if applicable) as a given message */\nexport function answerMedia(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMedia>\n): ReturnType<typeof sendMedia> {\n if (!message.isTopicMessage || !message.replyToMessage?.threadId) {\n return sendMedia(client, message.chat.inputPeer, ...params)\n }\n\n const [media, params_ = {}] = params\n params_.replyTo = message.replyToMessage.threadId\n\n return sendMedia(client, message.chat.inputPeer, media, params_)\n}\n\n/** Send a media group to the same chat (and topic, if applicable) as a given message */\nexport function answerMediaGroup(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMediaGroup>\n): ReturnType<typeof sendMediaGroup> {\n if (!message.isTopicMessage || !message.replyToMessage?.threadId) {\n return sendMediaGroup(client, message.chat.inputPeer, ...params)\n }\n\n const [media, params_ = {}] = params\n params_.replyTo = message.replyToMessage.threadId\n\n return sendMediaGroup(client, message.chat.inputPeer, media, params_)\n}\n"]}
1
+ {"version":3,"file":"send-answer.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-answer.ts"],"names":[],"mappings":";;;AAGA,mDAA2C;AAC3C,+DAAsD;AACtD,iDAAyC;AAEzC,iFAAiF;AACjF,SAAgB,UAAU,CACtB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAwC;IAE3C,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;QAC/D,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACnC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IAEjD,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC;AAbD,gCAaC;AAED,kFAAkF;AAClF,SAAgB,WAAW,CACvB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAyC;IAE5C,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;QAC/D,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IAEjD,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAbD,kCAaC;AAED,wFAAwF;AACxF,SAAgB,gBAAgB,CAC5B,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAA8C;IAEjD,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;QAC/D,OAAO,IAAA,oCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IAEjD,OAAO,IAAA,oCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACzE,CAAC;AAbD,4CAaC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { ParametersSkip2 } from '../../types/utils.js'\nimport { sendMedia } from './send-media.js'\nimport { sendMediaGroup } from './send-media-group.js'\nimport { sendText } from './send-text.js'\n\n/** Send a text to the same chat (and topic, if applicable) as a given message */\nexport function answerText(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendText>\n): ReturnType<typeof sendText> {\n if (!message.isTopicMessage || !message.replyToMessage?.threadId) {\n return sendText(client, message.chat.inputPeer, ...params)\n }\n\n const [text, params_ = {}] = params\n params_.replyTo = message.replyToMessage.threadId\n\n return sendText(client, message.chat.inputPeer, text, params_)\n}\n\n/** Send a media to the same chat (and topic, if applicable) as a given message */\nexport function answerMedia(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMedia>\n): ReturnType<typeof sendMedia> {\n if (!message.isTopicMessage || !message.replyToMessage?.threadId) {\n return sendMedia(client, message.chat.inputPeer, ...params)\n }\n\n const [media, params_ = {}] = params\n params_.replyTo = message.replyToMessage.threadId\n\n return sendMedia(client, message.chat.inputPeer, media, params_)\n}\n\n/** Send a media group to the same chat (and topic, if applicable) as a given message */\nexport function answerMediaGroup(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMediaGroup>\n): ReturnType<typeof sendMediaGroup> {\n if (!message.isTopicMessage || !message.replyToMessage?.threadId) {\n return sendMediaGroup(client, message.chat.inputPeer, ...params)\n }\n\n const [media, params_ = {}] = params\n params_.replyTo = message.replyToMessage.threadId\n\n return sendMediaGroup(client, message.chat.inputPeer, media, params_)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-comment.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-comment.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAI1D,mDAA2C;AAC3C,+DAAsD;AACtD,mDAAwE;AACxE,iDAAyC;AAEzC;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACvB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAwC;IAE3C,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QACrC,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;KAC/C;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;QAClD,MAAM,IAAI,2BAAe,CAAC,6CAA6C,CAAC,CAAA;KAC3E;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACnC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE9B,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC;AAjBD,kCAiBC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CACxB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAyC;IAE5C,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QACrC,OAAO,IAAA,0BAAU,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;KAChD;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;QAClD,MAAM,IAAI,2BAAe,CAAC,6CAA6C,CAAC,CAAA;KAC3E;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE9B,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAjBD,oCAiBC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC7B,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAA8C;IAEjD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QACrC,OAAO,IAAA,+BAAe,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;KACrD;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;QAClD,MAAM,IAAI,2BAAe,CAAC,6CAA6C,CAAC,CAAA;KAC3E;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE9B,OAAO,IAAA,oCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACzE,CAAC;AAjBD,8CAiBC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { ParametersSkip2 } from '../../types/utils.js'\nimport { sendMedia } from './send-media.js'\nimport { sendMediaGroup } from './send-media-group.js'\nimport { replyMedia, replyMediaGroup, replyText } from './send-reply.js'\nimport { sendText } from './send-text.js'\n\n/**\n * Send a text comment to a given message.\n *\n * If this is a normal message (not a channel post),\n * a simple reply will be sent.\n *\n * @throws MtArgumentError\n * If this is a channel post which does not have comments section.\n * To check if a post has comments, use {@link Message#replies}.hasComments\n */\nexport function commentText(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendText>\n): ReturnType<typeof sendText> {\n if (message.chat.chatType !== 'channel') {\n return replyText(client, message, ...params)\n }\n\n if (!message.replies || !message.replies.hasComments) {\n throw new MtArgumentError('This message does not have comments section')\n }\n\n const [text, params_ = {}] = params\n params_.commentTo = message.id\n\n return sendText(client, message.chat.inputPeer, text, params_)\n}\n\n/**\n * Send a text comment to a given message.\n *\n * If this is a normal message (not a channel post),\n * a simple reply will be sent.\n *\n * @throws MtArgumentError\n * If this is a channel post which does not have comments section.\n * To check if a post has comments, use {@link Message#replies}.hasComments\n */\nexport function commentMedia(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMedia>\n): ReturnType<typeof sendMedia> {\n if (message.chat.chatType !== 'channel') {\n return replyMedia(client, message, ...params)\n }\n\n if (!message.replies || !message.replies.hasComments) {\n throw new MtArgumentError('This message does not have comments section')\n }\n\n const [media, params_ = {}] = params\n params_.commentTo = message.id\n\n return sendMedia(client, message.chat.inputPeer, media, params_)\n}\n\n/**\n * Send a text comment to a given message.\n *\n * If this is a normal message (not a channel post),\n * a simple reply will be sent.\n *\n * @throws MtArgumentError\n * If this is a channel post which does not have comments section.\n * To check if a post has comments, use {@link Message#replies}.hasComments\n */\nexport function commentMediaGroup(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMediaGroup>\n): ReturnType<typeof sendMediaGroup> {\n if (message.chat.chatType !== 'channel') {\n return replyMediaGroup(client, message, ...params)\n }\n\n if (!message.replies || !message.replies.hasComments) {\n throw new MtArgumentError('This message does not have comments section')\n }\n\n const [media, params_ = {}] = params\n params_.commentTo = message.id\n\n return sendMediaGroup(client, message.chat.inputPeer, media, params_)\n}\n"]}
1
+ {"version":3,"file":"send-comment.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-comment.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAI1D,mDAA2C;AAC3C,+DAAsD;AACtD,mDAAwE;AACxE,iDAAyC;AAEzC;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACvB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAwC;IAE3C,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,2BAAe,CAAC,6CAA6C,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACnC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE9B,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC;AAjBD,kCAiBC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CACxB,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAAyC;IAE5C,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAA,0BAAU,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,2BAAe,CAAC,6CAA6C,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE9B,OAAO,IAAA,yBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAjBD,oCAiBC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC7B,MAAuB,EACvB,OAAgB,EAChB,GAAG,MAA8C;IAEjD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAA,+BAAe,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,2BAAe,CAAC,6CAA6C,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAA;IACpC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAE9B,OAAO,IAAA,oCAAc,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACzE,CAAC;AAjBD,8CAiBC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { ParametersSkip2 } from '../../types/utils.js'\nimport { sendMedia } from './send-media.js'\nimport { sendMediaGroup } from './send-media-group.js'\nimport { replyMedia, replyMediaGroup, replyText } from './send-reply.js'\nimport { sendText } from './send-text.js'\n\n/**\n * Send a text comment to a given message.\n *\n * If this is a normal message (not a channel post),\n * a simple reply will be sent.\n *\n * @throws MtArgumentError\n * If this is a channel post which does not have comments section.\n * To check if a post has comments, use {@link Message#replies}.hasComments\n */\nexport function commentText(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendText>\n): ReturnType<typeof sendText> {\n if (message.chat.chatType !== 'channel') {\n return replyText(client, message, ...params)\n }\n\n if (!message.replies || !message.replies.hasComments) {\n throw new MtArgumentError('This message does not have comments section')\n }\n\n const [text, params_ = {}] = params\n params_.commentTo = message.id\n\n return sendText(client, message.chat.inputPeer, text, params_)\n}\n\n/**\n * Send a text comment to a given message.\n *\n * If this is a normal message (not a channel post),\n * a simple reply will be sent.\n *\n * @throws MtArgumentError\n * If this is a channel post which does not have comments section.\n * To check if a post has comments, use {@link Message#replies}.hasComments\n */\nexport function commentMedia(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMedia>\n): ReturnType<typeof sendMedia> {\n if (message.chat.chatType !== 'channel') {\n return replyMedia(client, message, ...params)\n }\n\n if (!message.replies || !message.replies.hasComments) {\n throw new MtArgumentError('This message does not have comments section')\n }\n\n const [media, params_ = {}] = params\n params_.commentTo = message.id\n\n return sendMedia(client, message.chat.inputPeer, media, params_)\n}\n\n/**\n * Send a text comment to a given message.\n *\n * If this is a normal message (not a channel post),\n * a simple reply will be sent.\n *\n * @throws MtArgumentError\n * If this is a channel post which does not have comments section.\n * To check if a post has comments, use {@link Message#replies}.hasComments\n */\nexport function commentMediaGroup(\n client: ITelegramClient,\n message: Message,\n ...params: ParametersSkip2<typeof sendMediaGroup>\n): ReturnType<typeof sendMediaGroup> {\n if (message.chat.chatType !== 'channel') {\n return replyMediaGroup(client, message, ...params)\n }\n\n if (!message.replies || !message.replies.hasComments) {\n throw new MtArgumentError('This message does not have comments section')\n }\n\n const [media, params_ = {}] = params\n params_.commentTo = message.id\n\n return sendMediaGroup(client, message.chat.inputPeer, media, params_)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-common.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-common.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,gEAA8D;AAE9D,qDAA8D;AAI9D,mDAAwE;AACxE,qDAAqD;AAErD,8DAAsD;AACtD,2EAAmE;AACnE,uDAA+C;AA+F/C;;;GAGG;AACI,KAAK,UAAU,4BAA4B,CAC9C,MAAuB,EACvB,MAAqB,EACrB,MAAwB;IAExB,IAAI,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,IAAI,OAAO,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAA;IAEnG,IAAI,MAAM,CAAC,SAAS,EAAE;QAClB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,IAAA,iDAAqB,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,6BAAkB,EAAC,MAAM,CAAC,SAAS,CAAE,CAAC,CAAA;KACrG;IAED,IAAI,MAAM,CAAC,SAAS,EAAE;QAClB,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,2BAAe,CAAC,4CAA4C,CAAC,CAAA;SAC1E;QAED,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAEpD,IAAI,CAAC,GAAG,EAAE;YACN,MAAM,IAAI,kCAAsB,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;SAClF;KACJ;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,EAAE;QAChC,MAAM,IAAI,2BAAe,CAAC,4DAA4D,CAAC,CAAA;KAC1F;IAED,IAAI,SAAS,GAAoC,SAAS,CAAA;IAE1D,IAAI,OAAO,EAAE;QACT,SAAS,GAAG;YACR,CAAC,EAAE,qBAAqB;YACxB,YAAY,EAAE,OAAO;YACrB,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI;YAC7B,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,QAAkC;YAC/D,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,CAAA;KACJ;SAAM,IAAI,MAAM,CAAC,YAAY,EAAE;QAC5B,SAAS,GAAG;YACR,CAAC,EAAE,mBAAmB;YACtB,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,IAAI;SACP,CAAA;KACJ;IAED,IAAI,YAAY,GAAuB,SAAS,CAAA;IAEhD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC9B,YAAY,GAAG,UAAU,CAAA;KAC5B;SAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;QACxB,YAAY,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;KAChD;IAED,OAAO;QACH,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,YAAY;QACZ,OAAO,EAAE,IAAA,6BAAe,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;KACjD,CAAA;AACL,CAAC;AA/DD,oEA+DC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { MtMessageNotFoundError } from '../../types/errors.js'\nimport { Message } from '../../types/messages/message.js'\nimport { TextWithEntities } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { normalizeDate, normalizeMessageId } from '../../utils/index.js'\nimport { _getPeerChainId } from '../misc/chain-id.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { getMessages } from './get-messages.js'\n\n// @exported\nexport interface CommonSendParams {\n /**\n * Message to reply to. Either a message object or message ID.\n *\n * For forums - can also be an ID of the topic (i.e. its top message ID)\n *\n * Can also be a message from another chat, in which case a quote will be sent.\n */\n replyTo?: number | Message\n\n /**\n * Whether to throw an error if {@link replyTo}\n * message does not exist.\n *\n * If that message was not found, `NotFoundError` is thrown,\n * with `text` set to `MESSAGE_NOT_FOUND`.\n *\n * Incurs an additional request, so only use when really needed.\n *\n * @default `false`\n */\n mustReply?: boolean\n\n /**\n * Message to comment to. Either a message object or message ID.\n *\n * This overwrites `replyTo` if it was passed\n */\n commentTo?: number | Message\n\n /**\n * Story to reply to.\n *\n * Must be the story sent by the peer you are sending the message to.\n *\n * Can't be used together with {@link replyTo} or {@link commentTo}.\n */\n replyToStory?: number\n\n /**\n * Quoted text. Must be exactly contained in the message\n * being quoted to be accepted by the server (as well as entities)\n */\n quote?: TextWithEntities\n\n /**\n * Offset of the start of the quote in the message.\n */\n quoteOffset?: number\n\n /**\n * Whether to send this message silently.\n */\n silent?: boolean\n\n /**\n * If set, the message will be scheduled to this date.\n * When passing a number, a UNIX time in ms is expected.\n *\n * You can also pass `online` - this will send the message\n * once the peer is online. Note that this requires that\n * peer's online status to be visible to you.\n */\n schedule?: Date | number | 'online'\n\n /**\n * Whether to clear draft after sending this message.\n *\n * @default `false`\n */\n clearDraft?: boolean\n\n /**\n * Whether to disallow further forwards of this message.\n *\n * Only for bots, works even if the target chat does not\n * have content protection.\n */\n forbidForwards?: boolean\n\n /**\n * Peer to use when sending the message.\n */\n sendAs?: InputPeerLike\n\n /**\n * Whether to dispatch the returned message\n * to the client's update handler.\n */\n shouldDispatch?: true\n}\n\n/**\n * @internal\n * @noemit\n */\nexport async function _processCommonSendParameters(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params: CommonSendParams,\n) {\n let peer = await resolvePeer(client, chatId)\n\n let replyTo = normalizeMessageId(params.replyTo)\n const replyToPeer = typeof params.replyTo === 'number' ? undefined : params.replyTo?.chat.inputPeer\n\n if (params.commentTo) {\n [peer, replyTo] = await _getDiscussionMessage(client, peer, normalizeMessageId(params.commentTo)!)\n }\n\n if (params.mustReply) {\n if (!replyTo) {\n throw new MtArgumentError('mustReply used, but replyTo was not passed')\n }\n\n const msg = await getMessages(client, peer, replyTo)\n\n if (!msg) {\n throw new MtMessageNotFoundError(getMarkedPeerId(peer), replyTo, 'to reply to')\n }\n }\n\n if (params.replyToStory && replyTo) {\n throw new MtArgumentError('replyTo/commentTo and replyToStory cannot be used together')\n }\n\n let tlReplyTo: tl.TypeInputReplyTo | undefined = undefined\n\n if (replyTo) {\n tlReplyTo = {\n _: 'inputReplyToMessage',\n replyToMsgId: replyTo,\n replyToPeerId: replyToPeer,\n quoteText: params.quote?.text,\n quoteEntities: params.quote?.entities as tl.TypeMessageEntity[],\n quoteOffset: params.quoteOffset,\n }\n } else if (params.replyToStory) {\n tlReplyTo = {\n _: 'inputReplyToStory',\n storyId: params.replyToStory,\n peer,\n }\n }\n\n let scheduleDate: number | undefined = undefined\n\n if (params.schedule === 'online') {\n scheduleDate = 0x7ffffffe\n } else if (params.schedule) {\n scheduleDate = normalizeDate(params.schedule)\n }\n\n return {\n peer,\n replyTo: tlReplyTo,\n scheduleDate,\n chainId: _getPeerChainId(client, peer, 'send'),\n }\n}\n"]}
1
+ {"version":3,"file":"send-common.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-common.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,gEAA8D;AAE9D,qDAA8D;AAI9D,mDAAwE;AACxE,qDAAqD;AAErD,8DAAsD;AACtD,2EAAmE;AACnE,uDAA+C;AA+F/C;;;GAGG;AACI,KAAK,UAAU,4BAA4B,CAC9C,MAAuB,EACvB,MAAqB,EACrB,MAAwB;IAExB,IAAI,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,IAAI,OAAO,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAA;IAEnG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,IAAA,iDAAqB,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,6BAAkB,EAAC,MAAM,CAAC,SAAS,CAAE,CAAC,CAAA;IACtG,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,2BAAe,CAAC,4CAA4C,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAEpD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,kCAAsB,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACnF,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,2BAAe,CAAC,4DAA4D,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,SAAS,GAAoC,SAAS,CAAA;IAE1D,IAAI,OAAO,EAAE,CAAC;QACV,SAAS,GAAG;YACR,CAAC,EAAE,qBAAqB;YACxB,YAAY,EAAE,OAAO;YACrB,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI;YAC7B,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,QAAkC;YAC/D,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,CAAA;IACL,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7B,SAAS,GAAG;YACR,CAAC,EAAE,mBAAmB;YACtB,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,IAAI;SACP,CAAA;IACL,CAAC;IAED,IAAI,YAAY,GAAuB,SAAS,CAAA;IAEhD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,YAAY,GAAG,UAAU,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,YAAY,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,OAAO;QACH,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,YAAY;QACZ,OAAO,EAAE,IAAA,6BAAe,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;KACjD,CAAA;AACL,CAAC;AA/DD,oEA+DC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { MtMessageNotFoundError } from '../../types/errors.js'\nimport { Message } from '../../types/messages/message.js'\nimport { TextWithEntities } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { normalizeDate, normalizeMessageId } from '../../utils/index.js'\nimport { _getPeerChainId } from '../misc/chain-id.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { getMessages } from './get-messages.js'\n\n// @exported\nexport interface CommonSendParams {\n /**\n * Message to reply to. Either a message object or message ID.\n *\n * For forums - can also be an ID of the topic (i.e. its top message ID)\n *\n * Can also be a message from another chat, in which case a quote will be sent.\n */\n replyTo?: number | Message\n\n /**\n * Whether to throw an error if {@link replyTo}\n * message does not exist.\n *\n * If that message was not found, `NotFoundError` is thrown,\n * with `text` set to `MESSAGE_NOT_FOUND`.\n *\n * Incurs an additional request, so only use when really needed.\n *\n * @default `false`\n */\n mustReply?: boolean\n\n /**\n * Message to comment to. Either a message object or message ID.\n *\n * This overwrites `replyTo` if it was passed\n */\n commentTo?: number | Message\n\n /**\n * Story to reply to.\n *\n * Must be the story sent by the peer you are sending the message to.\n *\n * Can't be used together with {@link replyTo} or {@link commentTo}.\n */\n replyToStory?: number\n\n /**\n * Quoted text. Must be exactly contained in the message\n * being quoted to be accepted by the server (as well as entities)\n */\n quote?: TextWithEntities\n\n /**\n * Offset of the start of the quote in the message.\n */\n quoteOffset?: number\n\n /**\n * Whether to send this message silently.\n */\n silent?: boolean\n\n /**\n * If set, the message will be scheduled to this date.\n * When passing a number, a UNIX time in ms is expected.\n *\n * You can also pass `online` - this will send the message\n * once the peer is online. Note that this requires that\n * peer's online status to be visible to you.\n */\n schedule?: Date | number | 'online'\n\n /**\n * Whether to clear draft after sending this message.\n *\n * @default `false`\n */\n clearDraft?: boolean\n\n /**\n * Whether to disallow further forwards of this message.\n *\n * Only for bots, works even if the target chat does not\n * have content protection.\n */\n forbidForwards?: boolean\n\n /**\n * Peer to use when sending the message.\n */\n sendAs?: InputPeerLike\n\n /**\n * Whether to dispatch the returned message\n * to the client's update handler.\n */\n shouldDispatch?: true\n}\n\n/**\n * @internal\n * @noemit\n */\nexport async function _processCommonSendParameters(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params: CommonSendParams,\n) {\n let peer = await resolvePeer(client, chatId)\n\n let replyTo = normalizeMessageId(params.replyTo)\n const replyToPeer = typeof params.replyTo === 'number' ? undefined : params.replyTo?.chat.inputPeer\n\n if (params.commentTo) {\n [peer, replyTo] = await _getDiscussionMessage(client, peer, normalizeMessageId(params.commentTo)!)\n }\n\n if (params.mustReply) {\n if (!replyTo) {\n throw new MtArgumentError('mustReply used, but replyTo was not passed')\n }\n\n const msg = await getMessages(client, peer, replyTo)\n\n if (!msg) {\n throw new MtMessageNotFoundError(getMarkedPeerId(peer), replyTo, 'to reply to')\n }\n }\n\n if (params.replyToStory && replyTo) {\n throw new MtArgumentError('replyTo/commentTo and replyToStory cannot be used together')\n }\n\n let tlReplyTo: tl.TypeInputReplyTo | undefined = undefined\n\n if (replyTo) {\n tlReplyTo = {\n _: 'inputReplyToMessage',\n replyToMsgId: replyTo,\n replyToPeerId: replyToPeer,\n quoteText: params.quote?.text,\n quoteEntities: params.quote?.entities as tl.TypeMessageEntity[],\n quoteOffset: params.quoteOffset,\n }\n } else if (params.replyToStory) {\n tlReplyTo = {\n _: 'inputReplyToStory',\n storyId: params.replyToStory,\n peer,\n }\n }\n\n let scheduleDate: number | undefined = undefined\n\n if (params.schedule === 'online') {\n scheduleDate = 0x7ffffffe\n } else if (params.schedule) {\n scheduleDate = normalizeDate(params.schedule)\n }\n\n return {\n peer,\n replyTo: tlReplyTo,\n scheduleDate,\n chainId: _getPeerChainId(client, peer, 'send'),\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-copy-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-copy-group.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,0EAA6D;AAI7D,8DAAsD;AACtD,uDAA+C;AAE/C,+DAAsD;AAQtD;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAC/B,MAAuB,EACvB,MASK;IAEL,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEpC,IAAI,IAAI,CAAA;IAER,IAAI,YAAY,IAAI,MAAM,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAE7D,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,8BAAS,CAAC,CAAC,CAAA;KAC/F;SAAM;QACH,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAA;KACzB;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAU,CAAA;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YAC1D,MAAM,IAAI,2BAAe,CAAC,gDAAgD,CAAC,CAAA;SAC9E;KACJ;IAED,OAAO,IAAA,oCAAc,EACjB,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,GAAG,CAAC,GAAoB,CAAA;QAEpC,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,GAAG,CAAC,KAAM,CAAC,UAAU;YAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACzB,CAAA;IACL,CAAC,CAAC,EACF,IAAI,CACP,CAAA;AACL,CAAC;AAhDD,sCAgDC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { isPresent } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getMessages } from './get-messages.js'\nimport { CommonSendParams } from './send-common.js'\nimport { sendMediaGroup } from './send-media-group.js'\n\n// @exported\nexport interface SendCopyGroupParams extends CommonSendParams {\n /** Destination chat ID */\n toChatId: InputPeerLike\n}\n\n/**\n * Copy a message group (i.e. send the same message group, but do not forward it).\n *\n * Note that all the provided messages must be in the same message group\n */\nexport async function sendCopyGroup(\n client: ITelegramClient,\n params: SendCopyGroupParams &\n (\n | {\n /** Source chat ID */\n fromChatId: InputPeerLike\n /** Message IDs to forward */\n messages: number[]\n }\n | { messages: Message[] }\n ),\n): Promise<Message[]> {\n const { toChatId, ...rest } = params\n\n let msgs\n\n if ('fromChatId' in params) {\n const fromPeer = await resolvePeer(client, params.fromChatId)\n\n msgs = await getMessages(client, fromPeer, params.messages).then((r) => r.filter(isPresent))\n } else {\n msgs = params.messages\n }\n\n const messageGroupId = msgs[0].groupedId!\n\n for (let i = 1; i < msgs.length; i++) {\n if (!msgs[i].groupedId?.eq(messageGroupId) || !msgs[i].media) {\n throw new MtArgumentError('All messages must be in the same message group')\n }\n }\n\n return sendMediaGroup(\n client,\n toChatId,\n msgs.map((msg) => {\n const raw = msg.raw as tl.RawMessage\n\n return {\n type: 'auto',\n file: msg.media!.inputMedia,\n caption: raw.message,\n entities: raw.entities,\n }\n }),\n rest,\n )\n}\n"]}
1
+ {"version":3,"file":"send-copy-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-copy-group.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,0EAA6D;AAI7D,8DAAsD;AACtD,uDAA+C;AAE/C,+DAAsD;AAQtD;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAC/B,MAAuB,EACvB,MASK;IAEL,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEpC,IAAI,IAAI,CAAA;IAER,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAE7D,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,8BAAS,CAAC,CAAC,CAAA;IAChG,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAA;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAU,CAAA;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3D,MAAM,IAAI,2BAAe,CAAC,gDAAgD,CAAC,CAAA;QAC/E,CAAC;IACL,CAAC;IAED,OAAO,IAAA,oCAAc,EACjB,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,GAAG,CAAC,GAAoB,CAAA;QAEpC,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,GAAG,CAAC,KAAM,CAAC,UAAU;YAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACzB,CAAA;IACL,CAAC,CAAC,EACF,IAAI,CACP,CAAA;AACL,CAAC;AAhDD,sCAgDC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { isPresent } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getMessages } from './get-messages.js'\nimport { CommonSendParams } from './send-common.js'\nimport { sendMediaGroup } from './send-media-group.js'\n\n// @exported\nexport interface SendCopyGroupParams extends CommonSendParams {\n /** Destination chat ID */\n toChatId: InputPeerLike\n}\n\n/**\n * Copy a message group (i.e. send the same message group, but do not forward it).\n *\n * Note that all the provided messages must be in the same message group\n */\nexport async function sendCopyGroup(\n client: ITelegramClient,\n params: SendCopyGroupParams &\n (\n | {\n /** Source chat ID */\n fromChatId: InputPeerLike\n /** Message IDs to forward */\n messages: number[]\n }\n | { messages: Message[] }\n ),\n): Promise<Message[]> {\n const { toChatId, ...rest } = params\n\n let msgs\n\n if ('fromChatId' in params) {\n const fromPeer = await resolvePeer(client, params.fromChatId)\n\n msgs = await getMessages(client, fromPeer, params.messages).then((r) => r.filter(isPresent))\n } else {\n msgs = params.messages\n }\n\n const messageGroupId = msgs[0].groupedId!\n\n for (let i = 1; i < msgs.length; i++) {\n if (!msgs[i].groupedId?.eq(messageGroupId) || !msgs[i].media) {\n throw new MtArgumentError('All messages must be in the same message group')\n }\n }\n\n return sendMediaGroup(\n client,\n toChatId,\n msgs.map((msg) => {\n const raw = msg.raw as tl.RawMessage\n\n return {\n type: 'auto',\n file: msg.media!.inputMedia,\n caption: raw.message,\n entities: raw.entities,\n }\n }),\n rest,\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-copy.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-copy.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,gEAA8D;AAE9D,mDAA6G;AAC7G,8DAAsD;AACtD,uDAA+C;AAE/C,mDAA2C;AAC3C,iDAAyC;AAmBzC;;;;;;;GAOG;AACI,KAAK,UAAU,QAAQ,CAC1B,MAAuB,EACvB,MASK;IAEL,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEpC,IAAI,GAAG,CAAA;IAEP,IAAI,YAAY,IAAI,MAAM,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAE5D;QAAA,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAE5D,IAAI,CAAC,GAAG,EAAE;YACN,MAAM,IAAI,iCAAsB,CAAC,IAAA,+BAAe,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;SACzF;KACJ;SAAM;QACH,GAAG,GAAG,MAAM,CAAC,OAAO,CAAA;KACvB;IAED,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE;QAChC,MAAM,IAAI,2BAAe,CAAC,kCAAkC,CAAC,CAAA;KAChE;IAED,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;QAC3E,IAAI,OAAO,GAA0B,MAAM,CAAC,OAAO,CAAA;QAEnD,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;gBAC1B,OAAO,GAAG;oBACN,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;oBACrB,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ;iBAC7B,CAAA;aACJ;iBAAM;gBACH,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;aAC5B;SACJ;QAED,OAAO,IAAA,yBAAS,EACZ,MAAM,EACN,QAAQ,EACR;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU;YAC1B,OAAO;SACV,EACD,IAAI,CACP,CAAA;KACJ;IAED,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC5D,CAAC;AA5DD,4BA4DC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, InputText, Message, MtMessageNotFoundError, ReplyMarkup } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getMessages } from './get-messages.js'\nimport { CommonSendParams } from './send-common.js'\nimport { sendMedia } from './send-media.js'\nimport { sendText } from './send-text.js'\n\n// @exported\nexport interface SendCopyParams extends CommonSendParams {\n /** Target chat ID */\n toChatId: InputPeerLike\n\n /**\n * New message caption (only used for media)\n */\n caption?: InputText\n\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n}\n\n/**\n * Copy a message (i.e. send the same message, but do not forward it).\n *\n * Note that if the message contains a webpage,\n * it will be copied simply as a text message,\n * and if the message contains an invoice,\n * it can't be copied.\n */\nexport async function sendCopy(\n client: ITelegramClient,\n params: SendCopyParams &\n (\n | {\n /** Source chat ID */\n fromChatId: InputPeerLike\n /** Message ID to forward */\n message: number\n }\n | { message: Message }\n ),\n): Promise<Message> {\n const { toChatId, ...rest } = params\n\n let msg\n\n if ('fromChatId' in params) {\n const fromPeer = await resolvePeer(client, params.fromChatId)\n\n ;[msg] = await getMessages(client, fromPeer, params.message)\n\n if (!msg) {\n throw new MtMessageNotFoundError(getMarkedPeerId(fromPeer), params.message, 'to copy')\n }\n } else {\n msg = params.message\n }\n\n if (msg.raw._ === 'messageService') {\n throw new MtArgumentError(\"Service messages can't be copied\")\n }\n\n if (msg.media && msg.media.type !== 'webpage' && msg.media.type !== 'invoice') {\n let caption: InputText | undefined = params.caption\n\n if (!caption) {\n if (msg.raw.entities?.length) {\n caption = {\n text: msg.raw.message,\n entities: msg.raw.entities,\n }\n } else {\n caption = msg.raw.message\n }\n }\n\n return sendMedia(\n client,\n toChatId,\n {\n type: 'auto',\n file: msg.media.inputMedia,\n caption,\n },\n rest,\n )\n }\n\n return sendText(client, toChatId, msg.raw.message, rest)\n}\n"]}
1
+ {"version":3,"file":"send-copy.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-copy.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,gEAA8D;AAE9D,mDAA6G;AAC7G,8DAAsD;AACtD,uDAA+C;AAE/C,mDAA2C;AAC3C,iDAAyC;AAmBzC;;;;;;;GAOG;AACI,KAAK,UAAU,QAAQ,CAC1B,MAAuB,EACvB,MASK;IAEL,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEpC,IAAI,GAAG,CAAA;IAEP,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAE5D;QAAA,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAE5D,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,iCAAsB,CAAC,IAAA,+BAAe,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC1F,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,MAAM,CAAC,OAAO,CAAA;IACxB,CAAC;IAED,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,2BAAe,CAAC,kCAAkC,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5E,IAAI,OAAO,GAA0B,MAAM,CAAC,OAAO,CAAA;QAEnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC3B,OAAO,GAAG;oBACN,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;oBACrB,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ;iBAC7B,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;YAC7B,CAAC;QACL,CAAC;QAED,OAAO,IAAA,yBAAS,EACZ,MAAM,EACN,QAAQ,EACR;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU;YAC1B,OAAO;SACV,EACD,IAAI,CACP,CAAA;IACL,CAAC;IAED,OAAO,IAAA,uBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC5D,CAAC;AA5DD,4BA4DC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, InputText, Message, MtMessageNotFoundError, ReplyMarkup } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getMessages } from './get-messages.js'\nimport { CommonSendParams } from './send-common.js'\nimport { sendMedia } from './send-media.js'\nimport { sendText } from './send-text.js'\n\n// @exported\nexport interface SendCopyParams extends CommonSendParams {\n /** Target chat ID */\n toChatId: InputPeerLike\n\n /**\n * New message caption (only used for media)\n */\n caption?: InputText\n\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n}\n\n/**\n * Copy a message (i.e. send the same message, but do not forward it).\n *\n * Note that if the message contains a webpage,\n * it will be copied simply as a text message,\n * and if the message contains an invoice,\n * it can't be copied.\n */\nexport async function sendCopy(\n client: ITelegramClient,\n params: SendCopyParams &\n (\n | {\n /** Source chat ID */\n fromChatId: InputPeerLike\n /** Message ID to forward */\n message: number\n }\n | { message: Message }\n ),\n): Promise<Message> {\n const { toChatId, ...rest } = params\n\n let msg\n\n if ('fromChatId' in params) {\n const fromPeer = await resolvePeer(client, params.fromChatId)\n\n ;[msg] = await getMessages(client, fromPeer, params.message)\n\n if (!msg) {\n throw new MtMessageNotFoundError(getMarkedPeerId(fromPeer), params.message, 'to copy')\n }\n } else {\n msg = params.message\n }\n\n if (msg.raw._ === 'messageService') {\n throw new MtArgumentError(\"Service messages can't be copied\")\n }\n\n if (msg.media && msg.media.type !== 'webpage' && msg.media.type !== 'invoice') {\n let caption: InputText | undefined = params.caption\n\n if (!caption) {\n if (msg.raw.entities?.length) {\n caption = {\n text: msg.raw.message,\n entities: msg.raw.entities,\n }\n } else {\n caption = msg.raw.message\n }\n }\n\n return sendMedia(\n client,\n toChatId,\n {\n type: 'auto',\n file: msg.media.inputMedia,\n caption,\n },\n rest,\n )\n }\n\n return sendText(client, toChatId, msg.raw.message, rest)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-media-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media-group.ts"],"names":[],"mappings":";;;AAEA,gEAAyD;AAGzD,gEAAyD;AACzD,yDAAsE;AACtE,qDAA6D;AAC7D,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AAEtD,qDAAiF;AAEjF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,cAAc,CAChC,MAAuB,EACvB,MAAqB,EACrB,MAAmC,EACnC,MAmBC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,6CAA4B,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAE3G,MAAM,UAAU,GAA6B,EAAE,CAAA;IAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAErB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,KAAK,GAAG;gBACJ,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,KAAK;aACd,CAAA;SACJ;QAED,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAoB,EACzC,MAAM,EACN,KAAK,EACL;YACI,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,2DAA2D;YAC3D,8CAA8C;YAC9C,eAAe;YACf,UAAU,EAAE,IAAI;SACnB,EACD,IAAI,CACP,CAAA;QAED,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EACjD,MAAM;QACN,yDAAyD;QACzD,oFAAoF;QACnF,KAAsD,CAAC,OAAO,CAClE,CAAA;QAED,UAAU,CAAC,IAAI,CAAC;YACZ,CAAC,EAAE,kBAAkB;YACrB,QAAQ,EAAE,IAAA,0BAAU,GAAE;YACtB,KAAK,EAAE,UAAU;YACjB,OAAO;YACP,QAAQ;SACX,CAAC,CAAA;KACL;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACzB;QACI,CAAC,EAAE,yBAAyB;QAC5B,IAAI;QACJ,UAAU;QACV,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO;QACP,YAAY;QACZ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,cAAc;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,WAAW,EAAE,MAAM,CAAC,WAAW;KAClC,EACD,EAAE,OAAO,EAAE,CACd,CAAA;IAED,IAAA,+BAAoB,EAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAE9B,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;SACnB,MAAM,CACH,CAAC,CAAC,EAAiG,EAAE,CACjG,CAAC,CAAC,CAAC,KAAK,kBAAkB,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAyB,IAAI,CAAC,CAAC,CAAC,KAAK,2BAA2B,CAC7G;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAC,CAAA;IAEnF,OAAO,IAAI,CAAA;AACf,CAAC;AAnGD,wCAmGC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a group of media.\n *\n * To add a caption to the group, add caption to the first\n * media in the group and don't add caption for any other.\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param medias Medias contained in the message.\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMediaGroup(\n client: ITelegramClient,\n chatId: InputPeerLike,\n medias: (InputMediaLike | string)[],\n params?: CommonSendParams & {\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invertMedia?: boolean\n\n /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param index Index of the media in the original array\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (index: number, uploaded: number, total: number) => void\n },\n): Promise<Message[]> {\n if (!params) params = {}\n\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const multiMedia: tl.RawInputSingleMedia[] = []\n\n for (let i = 0; i < medias.length; i++) {\n let media = medias[i]\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(\n client,\n media,\n {\n progressCallback: params.progressCallback?.bind(null, i),\n // i have no fucking clue why we should upload it manually,\n // but otherwise Telegram throws MEDIA_INVALID\n // fuck my life\n uploadPeer: peer,\n },\n true,\n )\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n multiMedia.push({\n _: 'inputSingleMedia',\n randomId: randomLong(),\n media: inputMedia,\n message,\n entities,\n })\n }\n\n const res = await client.call(\n {\n _: 'messages.sendMultiMedia',\n peer,\n multiMedia,\n silent: params.silent,\n replyTo,\n scheduleDate,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n },\n { chainId },\n )\n\n assertIsUpdatesGroup('sendMediaGroup', res)\n client.handleClientUpdate(res)\n\n const peers = PeersIndex.from(res)\n\n const msgs = res.updates\n .filter(\n (u): u is tl.RawUpdateNewMessage | tl.RawUpdateNewChannelMessage | tl.RawUpdateNewScheduledMessage =>\n u._ === 'updateNewMessage' || u._ === 'updateNewChannelMessage' || u._ === 'updateNewScheduledMessage',\n )\n .map((u) => new Message(u.message, peers, u._ === 'updateNewScheduledMessage'))\n\n return msgs\n}\n"]}
1
+ {"version":3,"file":"send-media-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a group of media.\n *\n * To add a caption to the group, add caption to the first\n * media in the group and don't add caption for any other.\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param medias Medias contained in the message.\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMediaGroup(\n client: ITelegramClient,\n chatId: InputPeerLike,\n medias: (InputMediaLike | string)[],\n params?: CommonSendParams & {\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invertMedia?: boolean\n\n /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param index Index of the media in the original array\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (index: number, uploaded: number, total: number) => void\n },\n): Promise<Message[]> {\n if (!params) params = {}\n\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const multiMedia: tl.RawInputSingleMedia[] = []\n\n for (let i = 0; i < medias.length; i++) {\n let media = medias[i]\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(\n client,\n media,\n {\n progressCallback: params.progressCallback?.bind(null, i),\n // i have no fucking clue why we should upload it manually,\n // but otherwise Telegram throws MEDIA_INVALID\n // fuck my life\n uploadPeer: peer,\n },\n true,\n )\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n multiMedia.push({\n _: 'inputSingleMedia',\n randomId: randomLong(),\n media: inputMedia,\n message,\n entities,\n })\n }\n\n const res = await client.call(\n {\n _: 'messages.sendMultiMedia',\n peer,\n multiMedia,\n silent: params.silent,\n replyTo,\n scheduleDate,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n },\n { chainId },\n )\n\n assertIsUpdatesGroup('sendMediaGroup', res)\n client.handleClientUpdate(res)\n\n const peers = PeersIndex.from(res)\n\n const msgs = res.updates\n .filter(\n (u): u is tl.RawUpdateNewMessage | tl.RawUpdateNewChannelMessage | tl.RawUpdateNewScheduledMessage =>\n u._ === 'updateNewMessage' || u._ === 'updateNewChannelMessage' || u._ === 'updateNewScheduledMessage',\n )\n .map((u) => new Message(u.message, peers, u._ === 'updateNewScheduledMessage'))\n\n return msgs\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AAEzD,kEAA8E;AAK9E,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AACtD,2DAA0D;AAE1D,qDAAiF;AAEjF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,KAA8B,EAC9B,MAgCC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,KAAK,GAAG;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACd,CAAA;KACJ;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAoB,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EACjD,MAAM;IACN,yDAAyD;IACzD,oFAAoF;IACpF,MAAM,CAAC,OAAO,IAAK,KAAsD,CAAC,OAAO,CACpF,CAAA;IAED,MAAM,WAAW,GAAG,sBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,6CAA4B,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAE3G,MAAM,QAAQ,GAAG,IAAA,0BAAU,GAAE,CAAA;IAC7B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACzB;QACI,CAAC,EAAE,oBAAoB;QACvB,IAAI;QACJ,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,cAAc;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,WAAW,EAAE,MAAM,CAAC,MAAM;KAC7B,EACD,EAAE,OAAO,EAAE,CACd,CAAA;IAED,MAAM,GAAG,GAAG,IAAA,wCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE7F,OAAO,GAAG,CAAA;AACd,CAAC;AAnFD,8BAmFC","sourcesContent":["import { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a single media (a photo or a document-based media)\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param media\n * Media contained in the message. You can also pass TDLib\n * and Bot API compatible File ID, which will be wrapped\n * in {@link InputMedia.auto}\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMedia(\n client: ITelegramClient,\n chatId: InputPeerLike,\n media: InputMediaLike | string,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invert?: boolean\n\n /**\n * Override caption for `media`.\n *\n * Can be used, for example. when using File IDs\n * or when using existing InputMedia objects.\n */\n caption?: InputText\n\n /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (uploaded: number, total: number) => void\n },\n): Promise<Message> {\n if (!params) params = {}\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(client, media, params)\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n params.caption || (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const randomId = randomLong()\n const res = await client.call(\n {\n _: 'messages.sendMedia',\n peer,\n media: inputMedia,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invert,\n },\n { chainId },\n )\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"send-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AAEzD,kEAA8E;AAK9E,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AACtD,2DAA0D;AAE1D,qDAAiF;AAEjF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,KAA8B,EAC9B,MAgCC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,KAAK,GAAG;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACd,CAAA;IACL,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAoB,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EACjD,MAAM;IACN,yDAAyD;IACzD,oFAAoF;IACpF,MAAM,CAAC,OAAO,IAAK,KAAsD,CAAC,OAAO,CACpF,CAAA;IAED,MAAM,WAAW,GAAG,sBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,6CAA4B,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAE3G,MAAM,QAAQ,GAAG,IAAA,0BAAU,GAAE,CAAA;IAC7B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACzB;QACI,CAAC,EAAE,oBAAoB;QACvB,IAAI;QACJ,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,cAAc;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,WAAW,EAAE,MAAM,CAAC,MAAM;KAC7B,EACD,EAAE,OAAO,EAAE,CACd,CAAA;IAED,MAAM,GAAG,GAAG,IAAA,wCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE7F,OAAO,GAAG,CAAA;AACd,CAAC;AAnFD,8BAmFC","sourcesContent":["import { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a single media (a photo or a document-based media)\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param media\n * Media contained in the message. You can also pass TDLib\n * and Bot API compatible File ID, which will be wrapped\n * in {@link InputMedia.auto}\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMedia(\n client: ITelegramClient,\n chatId: InputPeerLike,\n media: InputMediaLike | string,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invert?: boolean\n\n /**\n * Override caption for `media`.\n *\n * Can be used, for example. when using File IDs\n * or when using existing InputMedia objects.\n */\n caption?: InputText\n\n /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (uploaded: number, total: number) => void\n },\n): Promise<Message> {\n if (!params) params = {}\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(client, media, params)\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n params.caption || (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const randomId = randomLong()\n const res = await client.call(\n {\n _: 'messages.sendMedia',\n peer,\n media: inputMedia,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invert,\n },\n { chainId },\n )\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-quote.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-quote.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { TextWithEntities } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/peer.js'\nimport { sendMedia } from './send-media.js'\nimport { sendMediaGroup } from './send-media-group.js'\nimport { sendText } from './send-text.js'\n\n// @exported\nexport type QuoteParamsFrom<T> = Omit<NonNullable<T>, 'quoteText' | 'quoteEntities'> & {\n /**\n * Destination chat ID, username, phone, `\"me\"` or `\"self\"`\n *\n * @default `message.chat`\n */\n toChatId?: InputPeerLike\n\n /** Index of the first character to quote (inclusive) */\n start: number\n\n /** Index of the last character to quote (exclusive) */\n end: number\n}\n\nfunction extractQuote(message: Message, from: number, to: number): TextWithEntities {\n const { raw } = message\n if (raw._ === 'messageService') throw new MtArgumentError('Cannot quote service message')\n\n if (!raw.message) throw new MtArgumentError('Cannot quote empty message')\n\n const text = raw.message\n if (from < 0) from = 0\n if (to > text.length) to = text.length\n\n if (from >= to) throw new MtArgumentError('Invalid quote range')\n\n if (!raw.entities) return { text: text.slice(from, to), entities: undefined }\n\n const entities: tl.TypeMessageEntity[] = []\n\n for (const ent of raw.entities) {\n const start = ent.offset\n const end = ent.offset + ent.length\n\n if (start >= to || end <= from) continue\n\n const newStart = Math.max(start, from) - from\n const newEnd = Math.min(end, to) - from\n\n const newEnt = { ...ent, offset: newStart, length: newEnd - newStart }\n entities.push(newEnt)\n }\n\n return { text: text.slice(from, to), entities }\n}\n\n/** Send a text in reply to a given quote */\nexport function quoteWithText(\n client: ITelegramClient,\n message: Message,\n params: QuoteParamsFrom<Parameters<typeof sendText>[3]> & {\n /** Text to send */\n text: Parameters<typeof sendText>[2]\n },\n): ReturnType<typeof sendText> {\n const { toChatId = message.chat, start, end, text, ...params__ } = params\n const params_ = params__ as NonNullable<Parameters<typeof sendText>[3]>\n params_.replyTo = message\n params_.quote = extractQuote(message, params.start, params.end)\n params_.quoteOffset = params.start\n\n return sendText(client, toChatId, text, params_)\n}\n\n/** Send a media in reply to a given quote */\nexport function quoteWithMedia(\n client: ITelegramClient,\n message: Message,\n params: QuoteParamsFrom<Parameters<typeof sendMedia>[3]> & {\n /** Media to send */\n media: Parameters<typeof sendMedia>[2]\n },\n): ReturnType<typeof sendMedia> {\n const { toChatId = message.chat, start, end, media, ...params__ } = params\n const params_ = params__ as NonNullable<Parameters<typeof sendMedia>[3]>\n params_.replyTo = message\n params_.quote = extractQuote(message, params.start, params.end)\n params_.quoteOffset = params.start\n\n return sendMedia(client, toChatId, media, params_)\n}\n\n/** Send a media group in reply to a given quote */\nexport function quoteWithMediaGroup(\n client: ITelegramClient,\n message: Message,\n params: QuoteParamsFrom<Parameters<typeof sendMediaGroup>[3]> & {\n /** Media group to send */\n medias: Parameters<typeof sendMediaGroup>[2]\n },\n): ReturnType<typeof sendMediaGroup> {\n const { toChatId, start, end, medias, ...params__ } = params\n const params_ = params__ as NonNullable<Parameters<typeof sendMediaGroup>[3]>\n params_.replyTo = message\n params_.quote = extractQuote(message, params.start, params.end)\n params_.quoteOffset = params.start\n\n return sendMediaGroup(client, message.chat.inputPeer, medias, params_)\n}\n"]}
1
+ {"version":3,"file":"send-quote.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-quote.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { TextWithEntities } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/peer.js'\nimport { sendMedia } from './send-media.js'\nimport { sendMediaGroup } from './send-media-group.js'\nimport { sendText } from './send-text.js'\n\n// @exported\nexport type QuoteParamsFrom<T> = Omit<NonNullable<T>, 'quoteText' | 'quoteEntities'> & {\n /**\n * Destination chat ID, username, phone, `\"me\"` or `\"self\"`\n *\n * @default `message.chat`\n */\n toChatId?: InputPeerLike\n\n /** Index of the first character to quote (inclusive) */\n start: number\n\n /** Index of the last character to quote (exclusive) */\n end: number\n}\n\nfunction extractQuote(message: Message, from: number, to: number): TextWithEntities {\n const { raw } = message\n if (raw._ === 'messageService') throw new MtArgumentError('Cannot quote service message')\n\n if (!raw.message) throw new MtArgumentError('Cannot quote empty message')\n\n const text = raw.message\n if (from < 0) from = 0\n if (to > text.length) to = text.length\n\n if (from >= to) throw new MtArgumentError('Invalid quote range')\n\n if (!raw.entities) return { text: text.slice(from, to), entities: undefined }\n\n const entities: tl.TypeMessageEntity[] = []\n\n for (const ent of raw.entities) {\n const start = ent.offset\n const end = ent.offset + ent.length\n\n if (start >= to || end <= from) continue\n\n const newStart = Math.max(start, from) - from\n const newEnd = Math.min(end, to) - from\n\n const newEnt = { ...ent, offset: newStart, length: newEnd - newStart }\n entities.push(newEnt)\n }\n\n return { text: text.slice(from, to), entities }\n}\n\n/** Send a text in reply to a given quote */\nexport function quoteWithText(\n client: ITelegramClient,\n message: Message,\n params: QuoteParamsFrom<Parameters<typeof sendText>[3]> & {\n /** Text to send */\n text: Parameters<typeof sendText>[2]\n },\n): ReturnType<typeof sendText> {\n const { toChatId = message.chat, start, end, text, ...params__ } = params\n const params_ = params__ as NonNullable<Parameters<typeof sendText>[3]>\n params_.replyTo = message\n params_.quote = extractQuote(message, params.start, params.end)\n params_.quoteOffset = params.start\n\n return sendText(client, toChatId, text, params_)\n}\n\n/** Send a media in reply to a given quote */\nexport function quoteWithMedia(\n client: ITelegramClient,\n message: Message,\n params: QuoteParamsFrom<Parameters<typeof sendMedia>[3]> & {\n /** Media to send */\n media: Parameters<typeof sendMedia>[2]\n },\n): ReturnType<typeof sendMedia> {\n const { toChatId = message.chat, start, end, media, ...params__ } = params\n const params_ = params__ as NonNullable<Parameters<typeof sendMedia>[3]>\n params_.replyTo = message\n params_.quote = extractQuote(message, params.start, params.end)\n params_.quoteOffset = params.start\n\n return sendMedia(client, toChatId, media, params_)\n}\n\n/** Send a media group in reply to a given quote */\nexport function quoteWithMediaGroup(\n client: ITelegramClient,\n message: Message,\n params: QuoteParamsFrom<Parameters<typeof sendMediaGroup>[3]> & {\n /** Media group to send */\n medias: Parameters<typeof sendMediaGroup>[2]\n },\n): ReturnType<typeof sendMediaGroup> {\n const { toChatId, start, end, medias, ...params__ } = params\n const params_ = params__ as NonNullable<Parameters<typeof sendMediaGroup>[3]>\n params_.replyTo = message\n params_.quote = extractQuote(message, params.start, params.end)\n params_.quoteOffset = params.start\n\n return sendMediaGroup(client, message.chat.inputPeer, medias, params_)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-text.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { createDummyUpdate } from '../../updates/utils.js'\nimport { inputPeerToPeer } from '../../utils/peer-utils.js'\nimport { _getRawPeerBatched } from '../chats/batched-queries.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a text message\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param text Text of the message\n * @param params Additional sending parameters\n */\nexport async function sendText(\n client: ITelegramClient,\n chatId: InputPeerLike,\n text: InputText,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * Whether to disable links preview in this message\n */\n disableWebPreview?: boolean\n\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invertMedia?: boolean\n },\n): Promise<Message> {\n if (!params) params = {}\n\n const [message, entities] = await _normalizeInputText(client, text)\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const randomId = randomLong()\n const res = await client.call(\n {\n _: 'messages.sendMessage',\n peer,\n noWebpage: params.disableWebPreview,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n },\n { chainId },\n )\n\n if (res._ === 'updateShortSentMessage') {\n // todo extract this to updates manager?\n const msg: tl.RawMessage = {\n _: 'message',\n id: res.id,\n peerId: inputPeerToPeer(peer),\n fromId: { _: 'peerUser', userId: client.storage.self.getCached()!.userId },\n message,\n date: res.date,\n out: res.out,\n replyMarkup,\n entities: res.entities,\n }\n\n // is this needed?\n // this._date = res.date\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n\n const peers = new PeersIndex()\n\n const fetchPeer = async (peer: tl.TypePeer | tl.TypeInputPeer): Promise<void> => {\n const id = getMarkedPeerId(peer)\n\n let cached = await client.storage.peers.getCompleteById(id)\n\n if (!cached) {\n cached = await _getRawPeerBatched(client, await resolvePeer(client, peer))\n }\n\n if (!cached) {\n throw new MtTypeAssertionError('sendText (@ getFullPeerById)', 'user | chat', 'null')\n }\n\n switch (cached._) {\n case 'user':\n peers.users.set(cached.id, cached)\n break\n case 'chat':\n case 'chatForbidden':\n case 'channel':\n case 'channelForbidden':\n peers.chats.set(cached.id, cached)\n break\n default:\n throw new MtTypeAssertionError(\n 'sendText (@ users.getUsers)',\n 'user | chat | channel', // not very accurate, but good enough\n cached._,\n )\n }\n }\n\n await Promise.all([fetchPeer(peer), fetchPeer(msg.fromId!)])\n\n const ret = new Message(msg, peers)\n\n return ret\n }\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"send-text.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { createDummyUpdate } from '../../updates/utils.js'\nimport { inputPeerToPeer } from '../../utils/peer-utils.js'\nimport { _getRawPeerBatched } from '../chats/batched-queries.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a text message\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param text Text of the message\n * @param params Additional sending parameters\n */\nexport async function sendText(\n client: ITelegramClient,\n chatId: InputPeerLike,\n text: InputText,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * Whether to disable links preview in this message\n */\n disableWebPreview?: boolean\n\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invertMedia?: boolean\n },\n): Promise<Message> {\n if (!params) params = {}\n\n const [message, entities] = await _normalizeInputText(client, text)\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const randomId = randomLong()\n const res = await client.call(\n {\n _: 'messages.sendMessage',\n peer,\n noWebpage: params.disableWebPreview,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n },\n { chainId },\n )\n\n if (res._ === 'updateShortSentMessage') {\n // todo extract this to updates manager?\n const msg: tl.RawMessage = {\n _: 'message',\n id: res.id,\n peerId: inputPeerToPeer(peer),\n fromId: { _: 'peerUser', userId: client.storage.self.getCached()!.userId },\n message,\n date: res.date,\n out: res.out,\n replyMarkup,\n entities: res.entities,\n }\n\n // is this needed?\n // this._date = res.date\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n\n const peers = new PeersIndex()\n\n const fetchPeer = async (peer: tl.TypePeer | tl.TypeInputPeer): Promise<void> => {\n const id = getMarkedPeerId(peer)\n\n let cached = await client.storage.peers.getCompleteById(id)\n\n if (!cached) {\n cached = await _getRawPeerBatched(client, await resolvePeer(client, peer))\n }\n\n if (!cached) {\n throw new MtTypeAssertionError('sendText (@ getFullPeerById)', 'user | chat', 'null')\n }\n\n switch (cached._) {\n case 'user':\n peers.users.set(cached.id, cached)\n break\n case 'chat':\n case 'chatForbidden':\n case 'channel':\n case 'channelForbidden':\n peers.chats.set(cached.id, cached)\n break\n default:\n throw new MtTypeAssertionError(\n 'sendText (@ users.getUsers)',\n 'user | chat | channel', // not very accurate, but good enough\n cached._,\n )\n }\n }\n\n await Promise.all([fetchPeer(peer), fetchPeer(msg.fromId!)])\n\n const ret = new Message(msg, peers)\n\n return ret\n }\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"send-typing.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-typing.ts"],"names":[],"mappings":";;;AAEA,sDAAqD;AACrD,0EAA8D;AAG9D,8DAAsD;AAEtD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAAqB,EACrB,SAA+F,QAAQ,EACvG,MAUC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;QAEtC,QAAQ,MAAM,EAAE;YACZ,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,iBAAiB;gBAClB,MAAM,GAAG,EAAE,CAAC,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAA;gBAC3D,MAAK;YACT,KAAK,KAAK;gBACN,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT,KAAK,MAAM;gBACP,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,YAAY;gBACb,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,gBAAgB;gBACjB,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,QAAQ,EAAE,CAAA;gBAC1D,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT;gBACI,IAAA,sBAAW,EAAC,MAAM,CAAC,CAAA;SAC1B;KACJ;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,oBAAoB;QACvB,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM,EAAE,QAAQ;KAC7B,CAAC,CAAA;IAEF,IAAA,+BAAU,EAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC;AAjFD,gCAiFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../types/utils.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, TypingStatus } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Sends a current user/bot typing event\n * to a conversation partner or group.\n *\n * This status is set for 6 seconds, and is\n * automatically cancelled if you send a\n * message.\n *\n * @param chatId Chat ID\n * @param status Typing status\n * @param params\n */\nexport async function sendTyping(\n client: ITelegramClient,\n chatId: InputPeerLike,\n status: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction = 'typing',\n params?: {\n /**\n * For `upload_*` and history import actions, progress of the upload\n */\n progress?: number\n\n /**\n * For comment threads, ID of the thread (i.e. top message)\n */\n threadId?: number\n },\n): Promise<void> {\n if (typeof status === 'string') {\n const progress = params?.progress ?? 0\n\n switch (status) {\n case 'typing':\n status = { _: 'sendMessageTypingAction' }\n break\n case 'cancel':\n status = { _: 'sendMessageCancelAction' }\n break\n case 'record_video':\n status = { _: 'sendMessageRecordVideoAction' }\n break\n case 'upload_video':\n status = { _: 'sendMessageUploadVideoAction', progress }\n break\n case 'record_voice':\n status = { _: 'sendMessageRecordAudioAction' }\n break\n case 'upload_voice':\n status = { _: 'sendMessageUploadAudioAction', progress }\n break\n case 'upload_photo':\n status = { _: 'sendMessageUploadPhotoAction', progress }\n break\n case 'upload_document':\n status = { _: 'sendMessageUploadDocumentAction', progress }\n break\n case 'geo':\n status = { _: 'sendMessageGeoLocationAction' }\n break\n case 'contact':\n status = { _: 'sendMessageChooseContactAction' }\n break\n case 'game':\n status = { _: 'sendMessageGamePlayAction' }\n break\n case 'record_round':\n status = { _: 'sendMessageRecordRoundAction' }\n break\n case 'upload_round':\n status = { _: 'sendMessageUploadRoundAction', progress }\n break\n case 'speak_call':\n status = { _: 'speakingInGroupCallAction' }\n break\n case 'history_import':\n status = { _: 'sendMessageHistoryImportAction', progress }\n break\n case 'sticker':\n status = { _: 'sendMessageChooseStickerAction' }\n break\n default:\n assertNever(status)\n }\n }\n\n const r = await client.call({\n _: 'messages.setTyping',\n peer: await resolvePeer(client, chatId),\n action: status,\n topMsgId: params?.threadId,\n })\n\n assertTrue('messages.setTyping', r)\n}\n"]}
1
+ {"version":3,"file":"send-typing.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-typing.ts"],"names":[],"mappings":";;;AAEA,sDAAqD;AACrD,0EAA8D;AAG9D,8DAAsD;AAEtD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAAqB,EACrB,SAA+F,QAAQ,EACvG,MAUC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;QAEtC,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,iBAAiB;gBAClB,MAAM,GAAG,EAAE,CAAC,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAA;gBAC3D,MAAK;YACT,KAAK,KAAK;gBACN,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT,KAAK,MAAM;gBACP,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,YAAY;gBACb,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,gBAAgB;gBACjB,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,QAAQ,EAAE,CAAA;gBAC1D,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT;gBACI,IAAA,sBAAW,EAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,oBAAoB;QACvB,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM,EAAE,QAAQ;KAC7B,CAAC,CAAA;IAEF,IAAA,+BAAU,EAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC;AAjFD,gCAiFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../types/utils.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, TypingStatus } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Sends a current user/bot typing event\n * to a conversation partner or group.\n *\n * This status is set for 6 seconds, and is\n * automatically cancelled if you send a\n * message.\n *\n * @param chatId Chat ID\n * @param status Typing status\n * @param params\n */\nexport async function sendTyping(\n client: ITelegramClient,\n chatId: InputPeerLike,\n status: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction = 'typing',\n params?: {\n /**\n * For `upload_*` and history import actions, progress of the upload\n */\n progress?: number\n\n /**\n * For comment threads, ID of the thread (i.e. top message)\n */\n threadId?: number\n },\n): Promise<void> {\n if (typeof status === 'string') {\n const progress = params?.progress ?? 0\n\n switch (status) {\n case 'typing':\n status = { _: 'sendMessageTypingAction' }\n break\n case 'cancel':\n status = { _: 'sendMessageCancelAction' }\n break\n case 'record_video':\n status = { _: 'sendMessageRecordVideoAction' }\n break\n case 'upload_video':\n status = { _: 'sendMessageUploadVideoAction', progress }\n break\n case 'record_voice':\n status = { _: 'sendMessageRecordAudioAction' }\n break\n case 'upload_voice':\n status = { _: 'sendMessageUploadAudioAction', progress }\n break\n case 'upload_photo':\n status = { _: 'sendMessageUploadPhotoAction', progress }\n break\n case 'upload_document':\n status = { _: 'sendMessageUploadDocumentAction', progress }\n break\n case 'geo':\n status = { _: 'sendMessageGeoLocationAction' }\n break\n case 'contact':\n status = { _: 'sendMessageChooseContactAction' }\n break\n case 'game':\n status = { _: 'sendMessageGamePlayAction' }\n break\n case 'record_round':\n status = { _: 'sendMessageRecordRoundAction' }\n break\n case 'upload_round':\n status = { _: 'sendMessageUploadRoundAction', progress }\n break\n case 'speak_call':\n status = { _: 'speakingInGroupCallAction' }\n break\n case 'history_import':\n status = { _: 'sendMessageHistoryImportAction', progress }\n break\n case 'sticker':\n status = { _: 'sendMessageChooseStickerAction' }\n break\n default:\n assertNever(status)\n }\n }\n\n const r = await client.call({\n _: 'messages.setTyping',\n peer: await resolvePeer(client, chatId),\n action: status,\n topMsgId: params?.threadId,\n })\n\n assertTrue('messages.setTyping', r)\n}\n"]}