@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
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot, hasValueAtKey } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtMessageNotFoundError } from '../errors.js'\nimport { Chat } from '../peers/chat.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { DraftMessage } from './draft-message.js'\nimport { Message } from './message.js'\n\n/**\n * Type used as an input for a folder in client methods\n *\n * You can pass folder object, id or title\n */\nexport type InputDialogFolder = string | number | tl.RawDialogFilter\n\n/**\n * A dialog.\n *\n * Think of it as something that is listed\n * in Telegram's main window.\n */\nexport class Dialog {\n constructor(\n readonly raw: tl.RawDialog,\n readonly _peers: PeersIndex,\n readonly _messages: Map<number, tl.TypeMessage>,\n ) {}\n\n /**\n * Parse a list of dialogs from a TL object\n *\n * @param client Client instance\n * @param dialogs TL object\n * @param limit Maximum number of dialogs to parse\n */\n static parseTlDialogs(dialogs: tl.messages.TypeDialogs | tl.messages.TypePeerDialogs, limit?: number): Dialog[] {\n assertTypeIsNot('parseDialogs', dialogs, 'messages.dialogsNotModified')\n\n const peers = PeersIndex.from(dialogs)\n\n const messages = new Map<number, tl.TypeMessage>()\n dialogs.messages.forEach((msg) => {\n if (!msg.peerId) return\n\n messages.set(getMarkedPeerId(msg.peerId), msg)\n })\n\n const arr = dialogs.dialogs.filter(hasValueAtKey('_', 'dialog')).map((it) => new Dialog(it, peers, messages))\n\n if (limit) {\n return arr.slice(0, limit)\n }\n\n return arr\n }\n\n /**\n * Find pinned dialogs from a list of dialogs\n *\n * @param dialogs Dialogs list\n * @param folder If passed, status of pin will be checked against this folder, and not globally\n */\n static findPinned(dialogs: Dialog[], folder?: tl.RawDialogFilter): Dialog[] {\n if (folder) {\n const index: Record<number, true> = {}\n folder.pinnedPeers.forEach((peer) => {\n index[getMarkedPeerId(peer)] = true\n })\n\n return dialogs.filter((i) => index[i.chat.id])\n }\n\n return dialogs.filter((i) => i.isPinned)\n }\n\n /**\n * Create a filter predicate for the given Folder.\n * Returned predicate can be used in `Array.filter()`\n *\n * @param folder Folder to filter for\n * @param excludePinned Whether to exclude pinned folders\n */\n static filterFolder(folder: tl.TypeDialogFilter, excludePinned = true): (val: Dialog) => boolean {\n if (folder._ === 'dialogFilterDefault') {\n return () => true\n }\n\n const pinned: Record<number, true> = {}\n const include: Record<number, true> = {}\n const exclude: Record<number, true> = {}\n\n // populate indices\n if (excludePinned) {\n folder.pinnedPeers.forEach((peer) => {\n pinned[getMarkedPeerId(peer)] = true\n })\n }\n folder.includePeers.forEach((peer) => {\n include[getMarkedPeerId(peer)] = true\n })\n\n if (folder._ === 'dialogFilterChatlist') {\n return (dialog) => {\n const chatId = dialog.chat.id\n\n if (excludePinned && pinned[chatId]) return false\n\n return include[chatId] || pinned[chatId]\n }\n }\n\n folder.excludePeers.forEach((peer) => {\n exclude[getMarkedPeerId(peer)] = true\n })\n\n return (dialog) => {\n const chat = dialog.chat\n const chatId = dialog.chat.id\n const chatType = dialog.chat.chatType\n\n // manual exclusion/inclusion and pins\n if (include[chatId]) return true\n\n if (exclude[chatId] || (excludePinned && pinned[chatId])) {\n return false\n }\n\n // exclusions based on status\n if (folder.excludeRead && !dialog.isUnread) return false\n if (folder.excludeMuted && dialog.isMuted) return false\n // even though this was handled in getDialogs, this method\n // could be used outside of it, so check again\n if (folder.excludeArchived && dialog.isArchived) return false\n\n // inclusions based on chat type\n if (folder.contacts && chatType === 'private' && chat.isContact) {\n return true\n }\n if (folder.nonContacts && chatType === 'private' && !chat.isContact) {\n return true\n }\n if (folder.groups && (chatType === 'group' || chatType === 'supergroup')) {\n return true\n }\n if (folder.broadcasts && chatType === 'channel') return true\n if (folder.bots && chatType === 'bot') return true\n\n return false\n }\n }\n\n /**\n * Whether this dialog is pinned\n */\n get isPinned(): boolean {\n return this.raw.pinned!\n }\n\n /**\n * Whether this chat was manually marked as unread\n */\n get isManuallyUnread(): boolean {\n return this.raw.unreadMark!\n }\n\n /**\n * Whether this chat should be considered unread\n * (i.e. has more than 1 unread message, or has\n * a \"manually unread\" mark)\n */\n get isUnread(): boolean {\n return this.raw.unreadMark || this.raw.unreadCount > 1\n }\n\n /**\n * Whether this dialog is muted\n */\n get isMuted(): boolean {\n return this.raw.notifySettings.silent!\n }\n\n /**\n * Whether this dialog is archived\n */\n get isArchived(): boolean {\n return this.raw.folderId === 1\n }\n\n /**\n * Chat that this dialog represents\n */\n get chat(): Chat {\n const peer = this.raw.peer\n\n let chat\n\n switch (peer._) {\n case 'peerChannel':\n case 'peerChat':\n chat = this._peers.chat(peer._ === 'peerChannel' ? peer.channelId : peer.chatId)\n break\n default:\n chat = this._peers.user(peer.userId)\n break\n }\n\n return new Chat(chat)\n }\n\n /**\n * The latest message sent in this chat\n */\n get lastMessage(): Message {\n const cid = this.chat.id\n\n if (this._messages.has(cid)) {\n return new Message(this._messages.get(cid)!, this._peers)\n }\n\n throw new MtMessageNotFoundError(cid, 0)\n }\n\n /**\n * ID of the last read outgoing message in this dialog\n */\n get lastReadOutgoing(): number {\n return this.raw.readOutboxMaxId\n }\n\n /**\n * ID of the last read ingoing message in this dialog\n */\n get lastReadIngoing(): number {\n return this.raw.readInboxMaxId\n }\n\n /**\n * ID of the last read message in this dialog\n */\n get lastRead(): number {\n return Math.max(this.raw.readOutboxMaxId, this.raw.readInboxMaxId)\n }\n\n /**\n * Number of unread messages\n */\n get unreadCount(): number {\n return this.raw.unreadCount\n }\n\n /**\n * Number of unread mentions\n */\n get unreadMentionsCount(): number {\n return this.raw.unreadMentionsCount\n }\n\n /**\n * Number of unread reactions\n */\n get unreadReactionsCount(): number {\n return this.raw.unreadReactionsCount\n }\n\n /**\n * Draft message in this dialog\n */\n get draftMessage(): DraftMessage | null {\n if (this.raw.draft?._ === 'draftMessage') {\n return new DraftMessage(this.raw.draft)\n }\n\n return null\n }\n\n /**\n * TTL period of all messages in this dialog\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n}\n\nmemoizeGetters(Dialog, ['chat', 'lastMessage', 'draftMessage'])\nmakeInspectable(Dialog)\n"]}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot, hasValueAtKey } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtMessageNotFoundError } from '../errors.js'\nimport { Chat } from '../peers/chat.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { DraftMessage } from './draft-message.js'\nimport { Message } from './message.js'\n\n/**\n * Type used as an input for a folder in client methods\n *\n * You can pass folder object, id or title\n */\nexport type InputDialogFolder = string | number | tl.RawDialogFilter\n\n/**\n * A dialog.\n *\n * Think of it as something that is listed\n * in Telegram's main window.\n */\nexport class Dialog {\n constructor(\n readonly raw: tl.RawDialog,\n readonly _peers: PeersIndex,\n readonly _messages: Map<number, tl.TypeMessage>,\n ) {}\n\n /**\n * Parse a list of dialogs from a TL object\n *\n * @param client Client instance\n * @param dialogs TL object\n * @param limit Maximum number of dialogs to parse\n */\n static parseTlDialogs(dialogs: tl.messages.TypeDialogs | tl.messages.TypePeerDialogs, limit?: number): Dialog[] {\n assertTypeIsNot('parseDialogs', dialogs, 'messages.dialogsNotModified')\n\n const peers = PeersIndex.from(dialogs)\n\n const messages = new Map<number, tl.TypeMessage>()\n dialogs.messages.forEach((msg) => {\n if (!msg.peerId) return\n\n messages.set(getMarkedPeerId(msg.peerId), msg)\n })\n\n const arr = dialogs.dialogs.filter(hasValueAtKey('_', 'dialog')).map((it) => new Dialog(it, peers, messages))\n\n if (limit) {\n return arr.slice(0, limit)\n }\n\n return arr\n }\n\n /**\n * Find pinned dialogs from a list of dialogs\n *\n * @param dialogs Dialogs list\n * @param folder If passed, status of pin will be checked against this folder, and not globally\n */\n static findPinned(dialogs: Dialog[], folder?: tl.RawDialogFilter): Dialog[] {\n if (folder) {\n const index: Record<number, true> = {}\n folder.pinnedPeers.forEach((peer) => {\n index[getMarkedPeerId(peer)] = true\n })\n\n return dialogs.filter((i) => index[i.chat.id])\n }\n\n return dialogs.filter((i) => i.isPinned)\n }\n\n /**\n * Create a filter predicate for the given Folder.\n * Returned predicate can be used in `Array.filter()`\n *\n * @param folder Folder to filter for\n * @param excludePinned Whether to exclude pinned folders\n */\n static filterFolder(folder: tl.TypeDialogFilter, excludePinned = true): (val: Dialog) => boolean {\n if (folder._ === 'dialogFilterDefault') {\n return () => true\n }\n\n const pinned: Record<number, true> = {}\n const include: Record<number, true> = {}\n const exclude: Record<number, true> = {}\n\n // populate indices\n if (excludePinned) {\n folder.pinnedPeers.forEach((peer) => {\n pinned[getMarkedPeerId(peer)] = true\n })\n }\n folder.includePeers.forEach((peer) => {\n include[getMarkedPeerId(peer)] = true\n })\n\n if (folder._ === 'dialogFilterChatlist') {\n return (dialog) => {\n const chatId = dialog.chat.id\n\n if (excludePinned && pinned[chatId]) return false\n\n return include[chatId] || pinned[chatId]\n }\n }\n\n folder.excludePeers.forEach((peer) => {\n exclude[getMarkedPeerId(peer)] = true\n })\n\n return (dialog) => {\n const chat = dialog.chat\n const chatId = dialog.chat.id\n const chatType = dialog.chat.chatType\n\n // manual exclusion/inclusion and pins\n if (include[chatId]) return true\n\n if (exclude[chatId] || (excludePinned && pinned[chatId])) {\n return false\n }\n\n // exclusions based on status\n if (folder.excludeRead && !dialog.isUnread) return false\n if (folder.excludeMuted && dialog.isMuted) return false\n // even though this was handled in getDialogs, this method\n // could be used outside of it, so check again\n if (folder.excludeArchived && dialog.isArchived) return false\n\n // inclusions based on chat type\n if (folder.contacts && chatType === 'private' && chat.isContact) {\n return true\n }\n if (folder.nonContacts && chatType === 'private' && !chat.isContact) {\n return true\n }\n if (folder.groups && (chatType === 'group' || chatType === 'supergroup')) {\n return true\n }\n if (folder.broadcasts && chatType === 'channel') return true\n if (folder.bots && chatType === 'bot') return true\n\n return false\n }\n }\n\n /**\n * Whether this dialog is pinned\n */\n get isPinned(): boolean {\n return this.raw.pinned!\n }\n\n /**\n * Whether this chat was manually marked as unread\n */\n get isManuallyUnread(): boolean {\n return this.raw.unreadMark!\n }\n\n /**\n * Whether this chat should be considered unread\n * (i.e. has more than 1 unread message, or has\n * a \"manually unread\" mark)\n */\n get isUnread(): boolean {\n return this.raw.unreadMark || this.raw.unreadCount > 1\n }\n\n /**\n * Whether this dialog is muted\n */\n get isMuted(): boolean {\n return this.raw.notifySettings.silent!\n }\n\n /**\n * Whether this dialog is archived\n */\n get isArchived(): boolean {\n return this.raw.folderId === 1\n }\n\n /**\n * Chat that this dialog represents\n */\n get chat(): Chat {\n const peer = this.raw.peer\n\n let chat\n\n switch (peer._) {\n case 'peerChannel':\n case 'peerChat':\n chat = this._peers.chat(peer._ === 'peerChannel' ? peer.channelId : peer.chatId)\n break\n default:\n chat = this._peers.user(peer.userId)\n break\n }\n\n return new Chat(chat)\n }\n\n /**\n * The latest message sent in this chat\n */\n get lastMessage(): Message {\n const cid = this.chat.id\n\n if (this._messages.has(cid)) {\n return new Message(this._messages.get(cid)!, this._peers)\n }\n\n throw new MtMessageNotFoundError(cid, 0)\n }\n\n /**\n * ID of the last read outgoing message in this dialog\n */\n get lastReadOutgoing(): number {\n return this.raw.readOutboxMaxId\n }\n\n /**\n * ID of the last read ingoing message in this dialog\n */\n get lastReadIngoing(): number {\n return this.raw.readInboxMaxId\n }\n\n /**\n * ID of the last read message in this dialog\n */\n get lastRead(): number {\n return Math.max(this.raw.readOutboxMaxId, this.raw.readInboxMaxId)\n }\n\n /**\n * Number of unread messages\n */\n get unreadCount(): number {\n return this.raw.unreadCount\n }\n\n /**\n * Number of unread mentions\n */\n get unreadMentionsCount(): number {\n return this.raw.unreadMentionsCount\n }\n\n /**\n * Number of unread reactions\n */\n get unreadReactionsCount(): number {\n return this.raw.unreadReactionsCount\n }\n\n /**\n * Draft message in this dialog\n */\n get draftMessage(): DraftMessage | null {\n if (this.raw.draft?._ === 'draftMessage') {\n return new DraftMessage(this.raw.draft)\n }\n\n return null\n }\n\n /**\n * TTL period of all messages in this dialog\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n}\n\nmemoizeGetters(Dialog, ['chat', 'lastMessage', 'draftMessage'])\nmakeInspectable(Dialog)\n"]}
@@ -5,6 +5,7 @@ import { MessageEntity } from './message-entity.js';
5
5
  * A draft message
6
6
  */
7
7
  class DraftMessage {
8
+ raw;
8
9
  constructor(raw) {
9
10
  this.raw = raw;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"draft-message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/draft-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;GAEG;AACH,MAAM,OAAO,YAAY;IACrB,YAAqB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEhD;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,qBAAqB;YAAE,OAAO,IAAI,CAAA;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAU,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,MAAM,QAAQ,GAAG,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;YAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;aAC1D;SACJ;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AAED,cAAc,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1C,eAAe,CAAC,YAAY,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from './message-entity.js'\n\n/**\n * A draft message\n */\nexport class DraftMessage {\n constructor(readonly raw: tl.RawDraftMessage) {}\n\n /**\n * Text of the draft message\n */\n get text(): string {\n return this.raw.message\n }\n\n /**\n * Information about replies/quotes in this message\n */\n get replyToMessage(): tl.RawInputReplyToMessage | null {\n if (this.raw.replyTo?._ !== 'inputReplyToMessage') return null\n\n return this.raw.replyTo\n }\n\n /**\n * Date of the last time this draft was updated\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether no webpage preview will be generated\n */\n get disableWebPreview(): boolean {\n return this.raw.noWebpage!\n }\n\n /**\n * Message text entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities = []\n\n if (this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n}\n\nmemoizeGetters(DraftMessage, ['entities'])\nmakeInspectable(DraftMessage)\n"]}
1
+ {"version":3,"file":"draft-message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/draft-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;GAEG;AACH,MAAM,OAAO,YAAY;IACA;IAArB,YAAqB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEhD;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,qBAAqB;YAAE,OAAO,IAAI,CAAA;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAU,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,MAAM,QAAQ,GAAG,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3D,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AAED,cAAc,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1C,eAAe,CAAC,YAAY,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from './message-entity.js'\n\n/**\n * A draft message\n */\nexport class DraftMessage {\n constructor(readonly raw: tl.RawDraftMessage) {}\n\n /**\n * Text of the draft message\n */\n get text(): string {\n return this.raw.message\n }\n\n /**\n * Information about replies/quotes in this message\n */\n get replyToMessage(): tl.RawInputReplyToMessage | null {\n if (this.raw.replyTo?._ !== 'inputReplyToMessage') return null\n\n return this.raw.replyTo\n }\n\n /**\n * Date of the last time this draft was updated\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether no webpage preview will be generated\n */\n get disableWebPreview(): boolean {\n return this.raw.noWebpage!\n }\n\n /**\n * Message text entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities = []\n\n if (this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n}\n\nmemoizeGetters(DraftMessage, ['entities'])\nmakeInspectable(DraftMessage)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"message-action.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-action.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { _callDiscardReasonFromTl, CallDiscardReason } from '../calls/index.js'\nimport { Photo } from '../media/photo.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport type { Message } from './message.js'\n\n/** Group was created */\nexport interface ActionChatCreated {\n readonly type: 'chat_created'\n\n /** Group name */\n readonly title: string\n\n /** IDs of the users in the group */\n readonly users: number[]\n}\n\n/** Channel/supergroup was created */\nexport interface ActionChannelCreated {\n readonly type: 'channel_created'\n\n /** Original channel/supergroup title */\n readonly title: string\n}\n\n/** Chat was migrated to a supergroup with a given ID */\nexport interface ActionChatMigrateTo {\n readonly type: 'chat_migrate_to'\n\n /** Marked ID of the supergroup chat was migrated to */\n readonly id: number\n}\n\n/** Supergroup was migrated from a chat with a given ID */\nexport interface ActionChannelMigrateFrom {\n readonly type: 'channel_migrate_from'\n\n /** Marked ID of the chat this channel was migrated from */\n readonly id: number\n\n /** Old chat's title */\n readonly title: string\n}\n\n/**\n * A message has been pinned.\n *\n * To get the message itself, use {@link Message.getReplyTo}\n */\nexport interface ActionMessagePinned {\n readonly type: 'message_pinned'\n}\n\n/** History was cleared in a private chat. */\nexport interface ActionHistoryCleared {\n readonly type: 'history_cleared'\n}\n\n/** Someone scored in a game (usually only used for newly set high scores) */\nexport interface ActionGameScore {\n readonly type: 'game_score'\n\n /** Game ID */\n readonly gameId: tl.Long\n\n /** Score */\n readonly score: number\n}\n\n/** Contact has joined Telegram */\nexport interface ActionContactJoined {\n readonly type: 'contact_joined'\n}\n\n/** Group title was changed */\nexport interface ActionTitleChanged {\n readonly type: 'title_changed'\n\n /** New group name */\n readonly title: string\n}\n\n/** Group photo was changed */\nexport interface ActionPhotoChanged {\n readonly type: 'photo_changed'\n\n /** New group photo */\n readonly photo: Photo\n}\n\n/** Group photo was deleted */\nexport interface ActionPhotoDeleted {\n readonly type: 'photo_deleted'\n}\n\n/** Users were added to the chat */\nexport interface ActionUsersAdded {\n readonly type: 'users_added'\n\n /** IDs of the users that were added */\n readonly users: number[]\n}\n\n/** User has left the group */\nexport interface ActionUserLeft {\n readonly type: 'user_left'\n}\n\n/** User was removed from the group */\nexport interface ActionUserRemoved {\n readonly type: 'user_removed'\n\n /** ID of the user that was removed from the group */\n readonly user: number\n}\n\n/** User has joined the group via an invite link */\nexport interface ActionUserJoinedLink {\n readonly type: 'user_joined_link'\n\n /** ID of the user who created the link */\n readonly inviter: number\n}\n\n/**\n * User has joined the group via an invite link\n * and was approved by an administrator\n */\nexport interface ActionUserJoinedApproved {\n readonly type: 'user_joined_approved'\n}\n\n/** A payment was received from a user (bot) */\nexport interface ActionPaymentReceived {\n readonly type: 'payment_received'\n\n /** Three-letter ISO 4217 currency code */\n readonly currency: string\n\n /**\n * Price of the product in the smallest units of the currency\n * (integer, not float/double). For example, for a price of\n * `US$ 1.45`, `amount = 145`\n */\n readonly amount: tl.Long\n\n /** Bot specified invoice payload */\n readonly payload: Uint8Array\n\n /** Order information provided by the user */\n readonly info?: tl.TypePaymentRequestedInfo\n\n /** ID of the shipping option chosen by the user */\n readonly shippingOptionId?: string\n\n /** Payment provider ID */\n readonly charge?: tl.TypePaymentCharge\n}\n\n/** A payment was sent to a user */\nexport interface ActionPaymentSent {\n readonly type: 'payment_sent'\n\n /** Three-letter ISO 4217 currency code */\n readonly currency: string\n\n /**\n * Price of the product in the smallest units of the currency\n * (integer, not float/double). For example, for a price of\n * `US$ 1.45`, `amount = 145`\n */\n readonly amount: tl.Long\n}\n\n/** A phone call */\nexport interface ActionCall {\n readonly type: 'call'\n\n /** Call ID */\n readonly id: tl.Long\n\n /** Whether this is a video call */\n readonly isVideo: boolean\n\n /** Duration if the call in seconds (0 if not available) */\n readonly duration: number\n\n /** Call discard reason, if available */\n readonly reason?: CallDiscardReason\n}\n\n/** A screenshot was taken */\nexport interface ActionScreenshotTaken {\n readonly type: 'screenshot_taken'\n}\n\n/** User has authorized via the bot */\nexport interface ActionBotAllowed {\n readonly type: 'bot_allowed'\n\n /** Domain where the user has logged in */\n readonly domain?: string\n}\n\n/**\n * A user is in proximity of another user\n * (see [Proximity alerts](https://core.telegram.org/api/live-location#proximity-alert))\n */\nexport interface ActionGeoProximity {\n readonly type: 'geo_proximity'\n\n /** ID of the user who sent the geolocation with proximity alerts */\n readonly targetId: number\n\n /** ID of the user who has approached `targetId` */\n readonly userId: number\n\n /** Distance between them in meters */\n readonly distance: number\n}\n\n/** Group call has started */\nexport interface ActionGroupCallStarted {\n readonly type: 'group_call_started'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n}\n\n/** Group call has ended */\nexport interface ActionGroupCallEnded {\n readonly type: 'group_call_ended'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n\n /** Duration of the call */\n readonly duration: number\n}\n\n/** Group call has been scheduled */\nexport interface ActionGroupCallScheduled {\n readonly type: 'group_call_scheduled'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n\n /** Date when the call will start */\n readonly date: Date\n}\n\n/** Group call has ended */\nexport interface ActionGroupInvite {\n readonly type: 'group_call_invite'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n\n /** IDs of the users invited to the call */\n readonly userIds: number[]\n}\n\n/** Messages TTL changed */\nexport interface ActionTtlChanged {\n readonly type: 'ttl_changed'\n\n /** New TTL period */\n readonly period: number\n}\n\n/** Forum topic was created */\nexport interface ActionTopicCreated {\n readonly type: 'topic_created'\n\n /** Title of the topic */\n title: string\n\n /** Icon color of the topic */\n iconColor: number\n\n /** Icon emoji of the topic */\n iconCustomEmoji?: tl.Long\n}\n\n/** Forum topic was modified */\nexport interface ActionTopicEdited {\n readonly type: 'topic_edited'\n\n /** New title of the topic */\n title?: string\n\n /** New icon emoji of the topic (may be empty) */\n iconCustomEmoji?: tl.Long\n\n /** Whether the topic was opened/closed */\n closed?: boolean\n\n /** Whether the topic was (un-)hidden - only for \"General\" topic (`id=1`) */\n hidden?: boolean\n}\n\n/** A non-standard action has happened in the chat */\nexport interface ActionCustom {\n readonly type: 'custom'\n\n /** Text to be shown in the interface */\n action: string\n}\n\n/** Chat theme was changed */\nexport interface ActionThemeChanged {\n readonly type: 'theme_changed'\n\n /** Emoji representing the new theme */\n emoji: string\n}\n\n/** Data was sent from a WebView (user-side action) */\nexport interface ActionWebviewDataSent {\n readonly type: 'webview_sent'\n\n /** Text of the button that was pressed to open the WebView */\n text: string\n}\n\n/** Data was received from a WebView (bot-side action) */\nexport interface ActionWebviewDataReceived {\n readonly type: 'webview_received'\n\n /** Text of the button that was pressed to open the WebView */\n text: string\n\n /** Data received from the WebView */\n data: string\n}\n\n/** Premium subscription was gifted */\nexport interface ActionPremiumGifted {\n readonly type: 'premium_gifted'\n\n /**\n * Currency in which it was paid for.\n * Three-letter ISO 4217 currency code)\n */\n currency: string\n\n /**\n * Price of the product in the smallest units of the currency\n * (integer, not float/double). For example, for a price of\n * `US$ 1.45`, `amount = 145`\n */\n amount: number\n\n /** Duration of the gifted subscription in months */\n months: number\n\n /** If the subscription was bought with crypto, information about it */\n crypto?: {\n /** Crypto currency name */\n currency: string\n /** Price in the smallest units */\n amount: number\n }\n}\n\n/** A photo has been suggested as a profile photo */\nexport interface ActionPhotoSuggested {\n readonly type: 'photo_suggested'\n\n /** Photo that was suggested */\n photo: Photo\n}\n\n/** A peer was chosen by the user after clicking on a RequestPeer button */\nexport interface ActionPeerChosen {\n readonly type: 'peer_chosen'\n\n /** ID of the button passed earlier by the bot */\n buttonId: number\n\n /** Chosen peers */\n peers: Peer[]\n}\n\n/** A wallpaper of the chathas been changed */\nexport interface ActionWallpaperChanged {\n readonly type: 'wallpaper_changed'\n\n /**\n * Whether the user has applied the same wallpaper\n * as the other party previously set in the chat\n */\n same: boolean\n\n /**\n * Whether the wallpaper was forcefully applied for\n * both sides, without explicit confirmation from the other\n * side.\n */\n forBoth: boolean\n\n /** TL object representing the new wallpaper */\n wallpaper: tl.TypeWallPaper\n}\n\n/** A Telergam Premium gift code was received */\nexport interface ActionGiftCode {\n readonly type: 'gift_code'\n\n /** Information about the gift code */\n raw: tl.RawMessageActionGiftCode\n}\n\n/** A Telergam Premium giveaway was started */\nexport interface ActionGiveawayStarted {\n readonly type: 'giveaway_started'\n}\n\n/** A Telergam Premium giveaway was ended and results are available */\nexport interface ActionGiveawayEnded {\n readonly type: 'giveaway_ended'\n\n /** Number of winners in the giveaway */\n winners: number\n\n /** Number of undistributed prizes */\n undistributed: number\n}\n\n/** Boosts were applied to the group */\nexport interface ActionBoostApply {\n readonly type: 'boost_apply'\n\n /** Number of boosts applied */\n count: number\n}\n\nexport type MessageAction =\n | ActionChatCreated\n | ActionChannelCreated\n | ActionChatMigrateTo\n | ActionChannelMigrateFrom\n | ActionMessagePinned\n | ActionHistoryCleared\n | ActionGameScore\n | ActionContactJoined\n | ActionTitleChanged\n | ActionPhotoChanged\n | ActionPhotoDeleted\n | ActionUsersAdded\n | ActionUserLeft\n | ActionUserRemoved\n | ActionUserJoinedLink\n | ActionPaymentReceived\n | ActionPaymentSent\n | ActionCall\n | ActionScreenshotTaken\n | ActionBotAllowed\n | ActionGeoProximity\n | ActionGroupCallStarted\n | ActionGroupCallEnded\n | ActionGroupCallScheduled\n | ActionGroupInvite\n | ActionTtlChanged\n | ActionTopicCreated\n | ActionTopicEdited\n | ActionCustom\n | ActionThemeChanged\n | ActionUserJoinedApproved\n | ActionWebviewDataSent\n | ActionWebviewDataReceived\n | ActionPremiumGifted\n | ActionPhotoSuggested\n | ActionPeerChosen\n | ActionWallpaperChanged\n | ActionGiftCode\n | ActionGiveawayStarted\n | ActionGiveawayEnded\n | ActionBoostApply\n | null\n\n/** @internal */\nexport function _messageActionFromTl(this: Message, act: tl.TypeMessageAction): MessageAction {\n // todo - passport\n // messageActionSecureValuesSentMe#1b287353 values:Vector<SecureValue> credentials:SecureCredentialsEncrypted\n // messageActionSecureValuesSent#d95c6154 types:Vector<SecureValueType>\n\n switch (act._) {\n case 'messageActionChatCreate':\n return {\n type: 'chat_created',\n title: act.title,\n users: act.users,\n }\n case 'messageActionChannelCreate':\n return {\n type: 'channel_created',\n title: act.title,\n }\n case 'messageActionChatMigrateTo':\n return {\n type: 'chat_migrate_to',\n id: act.channelId,\n }\n case 'messageActionChannelMigrateFrom':\n return {\n type: 'channel_migrate_from',\n id: act.chatId,\n title: act.title,\n }\n case 'messageActionPinMessage':\n return {\n type: 'message_pinned',\n }\n case 'messageActionHistoryClear':\n return {\n type: 'history_cleared',\n }\n case 'messageActionGameScore':\n return {\n type: 'game_score',\n gameId: act.gameId,\n score: act.score,\n }\n case 'messageActionContactSignUp':\n return {\n type: 'contact_joined',\n }\n case 'messageActionChatEditTitle':\n return {\n type: 'title_changed',\n title: act.title,\n }\n case 'messageActionChatEditPhoto':\n return {\n type: 'photo_changed',\n photo: new Photo(act.photo as tl.RawPhoto),\n }\n case 'messageActionChatDeletePhoto':\n return {\n type: 'photo_deleted',\n }\n case 'messageActionChatAddUser':\n return {\n type: 'users_added',\n users: act.users,\n }\n case 'messageActionChatDeleteUser':\n if (this.raw.fromId?._ === 'peerUser' && act.userId === this.raw.fromId.userId) {\n return {\n type: 'user_left',\n }\n }\n\n return {\n type: 'user_removed',\n user: act.userId,\n }\n\n case 'messageActionChatJoinedByLink':\n return {\n type: 'user_joined_link',\n inviter: act.inviterId,\n }\n case 'messageActionPaymentSentMe':\n return {\n type: 'payment_received',\n currency: act.currency,\n amount: act.totalAmount,\n payload: act.payload,\n info: act.info,\n shippingOptionId: act.shippingOptionId,\n charge: act.charge,\n }\n case 'messageActionPaymentSent':\n return {\n type: 'payment_sent',\n currency: act.currency,\n amount: act.totalAmount,\n }\n case 'messageActionPhoneCall':\n return {\n type: 'call',\n id: act.callId,\n isVideo: Boolean(act.video),\n reason: act.reason ? _callDiscardReasonFromTl(act.reason) : undefined,\n duration: act.duration ?? 0,\n }\n case 'messageActionScreenshotTaken':\n return {\n type: 'screenshot_taken',\n }\n case 'messageActionBotAllowed':\n return {\n type: 'bot_allowed',\n domain: act.domain,\n }\n case 'messageActionGeoProximityReached':\n if (act.fromId._ !== 'peerUser' || act.toId._ !== 'peerUser') {\n return null\n }\n\n return {\n type: 'geo_proximity',\n targetId: act.toId.userId,\n userId: act.fromId.userId,\n distance: act.distance,\n }\n\n case 'messageActionGroupCall':\n if (act.duration) {\n return {\n type: 'group_call_ended',\n call: act.call,\n duration: act.duration,\n }\n }\n\n return {\n type: 'group_call_started',\n call: act.call,\n }\n case 'messageActionGroupCallScheduled':\n return {\n type: 'group_call_scheduled',\n call: act.call,\n date: new Date(act.scheduleDate * 1000),\n }\n case 'messageActionInviteToGroupCall':\n return {\n type: 'group_call_invite',\n call: act.call,\n userIds: act.users,\n }\n case 'messageActionSetMessagesTTL':\n return {\n type: 'ttl_changed',\n period: act.period,\n }\n case 'messageActionTopicCreate':\n return {\n type: 'topic_created',\n title: act.title,\n iconColor: act.iconColor,\n iconCustomEmoji: act.iconEmojiId,\n }\n case 'messageActionTopicEdit':\n return {\n type: 'topic_edited',\n title: act.title,\n iconCustomEmoji: act.iconEmojiId,\n closed: act.closed,\n hidden: act.hidden,\n }\n case 'messageActionCustomAction':\n return {\n type: 'custom',\n action: act.message,\n }\n case 'messageActionSetChatTheme':\n return {\n type: 'theme_changed',\n emoji: act.emoticon,\n }\n case 'messageActionChatJoinedByRequest':\n return {\n type: 'user_joined_approved',\n }\n case 'messageActionWebViewDataSent':\n return {\n type: 'webview_sent',\n text: act.text,\n }\n case 'messageActionWebViewDataSentMe':\n return {\n type: 'webview_received',\n text: act.text,\n data: act.data,\n }\n case 'messageActionGiftPremium':\n return {\n type: 'premium_gifted',\n currency: act.currency,\n amount: act.amount.toNumber(),\n months: act.months,\n crypto: act.cryptoAmount ?\n {\n currency: act.cryptoCurrency!,\n amount: act.cryptoAmount.toNumber(),\n } :\n undefined,\n }\n case 'messageActionSuggestProfilePhoto':\n return {\n type: 'photo_suggested',\n photo: new Photo(act.photo as tl.RawPhoto),\n }\n case 'messageActionRequestedPeer':\n return {\n type: 'peer_chosen',\n buttonId: act.buttonId,\n peers: act.peers.map((it) => parsePeer(it, this._peers)),\n }\n case 'messageActionSetChatWallPaper':\n return {\n type: 'wallpaper_changed',\n same: act.same!,\n forBoth: act.forBoth!,\n wallpaper: act.wallpaper,\n }\n case 'messageActionGiftCode':\n return {\n type: 'gift_code',\n raw: act,\n }\n case 'messageActionGiveawayLaunch':\n return {\n type: 'giveaway_started',\n }\n case 'messageActionGiveawayResults':\n return {\n type: 'giveaway_ended',\n winners: act.winnersCount,\n undistributed: act.unclaimedCount,\n }\n case 'messageActionBoostApply':\n return {\n type: 'boost_apply',\n count: act.boosts,\n }\n default:\n return null\n }\n}\n"]}
1
+ {"version":3,"file":"message-action.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-action.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { _callDiscardReasonFromTl, CallDiscardReason } from '../calls/index.js'\nimport { Photo } from '../media/photo.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport type { Message } from './message.js'\n\n/** Group was created */\nexport interface ActionChatCreated {\n readonly type: 'chat_created'\n\n /** Group name */\n readonly title: string\n\n /** IDs of the users in the group */\n readonly users: number[]\n}\n\n/** Channel/supergroup was created */\nexport interface ActionChannelCreated {\n readonly type: 'channel_created'\n\n /** Original channel/supergroup title */\n readonly title: string\n}\n\n/** Chat was migrated to a supergroup with a given ID */\nexport interface ActionChatMigrateTo {\n readonly type: 'chat_migrate_to'\n\n /** Marked ID of the supergroup chat was migrated to */\n readonly id: number\n}\n\n/** Supergroup was migrated from a chat with a given ID */\nexport interface ActionChannelMigrateFrom {\n readonly type: 'channel_migrate_from'\n\n /** Marked ID of the chat this channel was migrated from */\n readonly id: number\n\n /** Old chat's title */\n readonly title: string\n}\n\n/**\n * A message has been pinned.\n *\n * To get the message itself, use {@link Message.getReplyTo}\n */\nexport interface ActionMessagePinned {\n readonly type: 'message_pinned'\n}\n\n/** History was cleared in a private chat. */\nexport interface ActionHistoryCleared {\n readonly type: 'history_cleared'\n}\n\n/** Someone scored in a game (usually only used for newly set high scores) */\nexport interface ActionGameScore {\n readonly type: 'game_score'\n\n /** Game ID */\n readonly gameId: tl.Long\n\n /** Score */\n readonly score: number\n}\n\n/** Contact has joined Telegram */\nexport interface ActionContactJoined {\n readonly type: 'contact_joined'\n}\n\n/** Group title was changed */\nexport interface ActionTitleChanged {\n readonly type: 'title_changed'\n\n /** New group name */\n readonly title: string\n}\n\n/** Group photo was changed */\nexport interface ActionPhotoChanged {\n readonly type: 'photo_changed'\n\n /** New group photo */\n readonly photo: Photo\n}\n\n/** Group photo was deleted */\nexport interface ActionPhotoDeleted {\n readonly type: 'photo_deleted'\n}\n\n/** Users were added to the chat */\nexport interface ActionUsersAdded {\n readonly type: 'users_added'\n\n /** IDs of the users that were added */\n readonly users: number[]\n}\n\n/** User has left the group */\nexport interface ActionUserLeft {\n readonly type: 'user_left'\n}\n\n/** User was removed from the group */\nexport interface ActionUserRemoved {\n readonly type: 'user_removed'\n\n /** ID of the user that was removed from the group */\n readonly user: number\n}\n\n/** User has joined the group via an invite link */\nexport interface ActionUserJoinedLink {\n readonly type: 'user_joined_link'\n\n /** ID of the user who created the link */\n readonly inviter: number\n}\n\n/**\n * User has joined the group via an invite link\n * and was approved by an administrator\n */\nexport interface ActionUserJoinedApproved {\n readonly type: 'user_joined_approved'\n}\n\n/** A payment was received from a user (bot) */\nexport interface ActionPaymentReceived {\n readonly type: 'payment_received'\n\n /** Three-letter ISO 4217 currency code */\n readonly currency: string\n\n /**\n * Price of the product in the smallest units of the currency\n * (integer, not float/double). For example, for a price of\n * `US$ 1.45`, `amount = 145`\n */\n readonly amount: tl.Long\n\n /** Bot specified invoice payload */\n readonly payload: Uint8Array\n\n /** Order information provided by the user */\n readonly info?: tl.TypePaymentRequestedInfo\n\n /** ID of the shipping option chosen by the user */\n readonly shippingOptionId?: string\n\n /** Payment provider ID */\n readonly charge?: tl.TypePaymentCharge\n}\n\n/** A payment was sent to a user */\nexport interface ActionPaymentSent {\n readonly type: 'payment_sent'\n\n /** Three-letter ISO 4217 currency code */\n readonly currency: string\n\n /**\n * Price of the product in the smallest units of the currency\n * (integer, not float/double). For example, for a price of\n * `US$ 1.45`, `amount = 145`\n */\n readonly amount: tl.Long\n}\n\n/** A phone call */\nexport interface ActionCall {\n readonly type: 'call'\n\n /** Call ID */\n readonly id: tl.Long\n\n /** Whether this is a video call */\n readonly isVideo: boolean\n\n /** Duration if the call in seconds (0 if not available) */\n readonly duration: number\n\n /** Call discard reason, if available */\n readonly reason?: CallDiscardReason\n}\n\n/** A screenshot was taken */\nexport interface ActionScreenshotTaken {\n readonly type: 'screenshot_taken'\n}\n\n/** User has authorized via the bot */\nexport interface ActionBotAllowed {\n readonly type: 'bot_allowed'\n\n /** Domain where the user has logged in */\n readonly domain?: string\n}\n\n/**\n * A user is in proximity of another user\n * (see [Proximity alerts](https://core.telegram.org/api/live-location#proximity-alert))\n */\nexport interface ActionGeoProximity {\n readonly type: 'geo_proximity'\n\n /** ID of the user who sent the geolocation with proximity alerts */\n readonly targetId: number\n\n /** ID of the user who has approached `targetId` */\n readonly userId: number\n\n /** Distance between them in meters */\n readonly distance: number\n}\n\n/** Group call has started */\nexport interface ActionGroupCallStarted {\n readonly type: 'group_call_started'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n}\n\n/** Group call has ended */\nexport interface ActionGroupCallEnded {\n readonly type: 'group_call_ended'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n\n /** Duration of the call */\n readonly duration: number\n}\n\n/** Group call has been scheduled */\nexport interface ActionGroupCallScheduled {\n readonly type: 'group_call_scheduled'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n\n /** Date when the call will start */\n readonly date: Date\n}\n\n/** Group call has ended */\nexport interface ActionGroupInvite {\n readonly type: 'group_call_invite'\n\n /** TL object representing the call */\n readonly call: tl.TypeInputGroupCall\n\n /** IDs of the users invited to the call */\n readonly userIds: number[]\n}\n\n/** Messages TTL changed */\nexport interface ActionTtlChanged {\n readonly type: 'ttl_changed'\n\n /** New TTL period */\n readonly period: number\n}\n\n/** Forum topic was created */\nexport interface ActionTopicCreated {\n readonly type: 'topic_created'\n\n /** Title of the topic */\n title: string\n\n /** Icon color of the topic */\n iconColor: number\n\n /** Icon emoji of the topic */\n iconCustomEmoji?: tl.Long\n}\n\n/** Forum topic was modified */\nexport interface ActionTopicEdited {\n readonly type: 'topic_edited'\n\n /** New title of the topic */\n title?: string\n\n /** New icon emoji of the topic (may be empty) */\n iconCustomEmoji?: tl.Long\n\n /** Whether the topic was opened/closed */\n closed?: boolean\n\n /** Whether the topic was (un-)hidden - only for \"General\" topic (`id=1`) */\n hidden?: boolean\n}\n\n/** A non-standard action has happened in the chat */\nexport interface ActionCustom {\n readonly type: 'custom'\n\n /** Text to be shown in the interface */\n action: string\n}\n\n/** Chat theme was changed */\nexport interface ActionThemeChanged {\n readonly type: 'theme_changed'\n\n /** Emoji representing the new theme */\n emoji: string\n}\n\n/** Data was sent from a WebView (user-side action) */\nexport interface ActionWebviewDataSent {\n readonly type: 'webview_sent'\n\n /** Text of the button that was pressed to open the WebView */\n text: string\n}\n\n/** Data was received from a WebView (bot-side action) */\nexport interface ActionWebviewDataReceived {\n readonly type: 'webview_received'\n\n /** Text of the button that was pressed to open the WebView */\n text: string\n\n /** Data received from the WebView */\n data: string\n}\n\n/** Premium subscription was gifted */\nexport interface ActionPremiumGifted {\n readonly type: 'premium_gifted'\n\n /**\n * Currency in which it was paid for.\n * Three-letter ISO 4217 currency code)\n */\n currency: string\n\n /**\n * Price of the product in the smallest units of the currency\n * (integer, not float/double). For example, for a price of\n * `US$ 1.45`, `amount = 145`\n */\n amount: number\n\n /** Duration of the gifted subscription in months */\n months: number\n\n /** If the subscription was bought with crypto, information about it */\n crypto?: {\n /** Crypto currency name */\n currency: string\n /** Price in the smallest units */\n amount: number\n }\n}\n\n/** A photo has been suggested as a profile photo */\nexport interface ActionPhotoSuggested {\n readonly type: 'photo_suggested'\n\n /** Photo that was suggested */\n photo: Photo\n}\n\n/** A peer was chosen by the user after clicking on a RequestPeer button */\nexport interface ActionPeerChosen {\n readonly type: 'peer_chosen'\n\n /** ID of the button passed earlier by the bot */\n buttonId: number\n\n /** Chosen peers */\n peers: Peer[]\n}\n\n/** A wallpaper of the chathas been changed */\nexport interface ActionWallpaperChanged {\n readonly type: 'wallpaper_changed'\n\n /**\n * Whether the user has applied the same wallpaper\n * as the other party previously set in the chat\n */\n same: boolean\n\n /**\n * Whether the wallpaper was forcefully applied for\n * both sides, without explicit confirmation from the other\n * side.\n */\n forBoth: boolean\n\n /** TL object representing the new wallpaper */\n wallpaper: tl.TypeWallPaper\n}\n\n/** A Telergam Premium gift code was received */\nexport interface ActionGiftCode {\n readonly type: 'gift_code'\n\n /** Information about the gift code */\n raw: tl.RawMessageActionGiftCode\n}\n\n/** A Telergam Premium giveaway was started */\nexport interface ActionGiveawayStarted {\n readonly type: 'giveaway_started'\n}\n\n/** A Telergam Premium giveaway was ended and results are available */\nexport interface ActionGiveawayEnded {\n readonly type: 'giveaway_ended'\n\n /** Number of winners in the giveaway */\n winners: number\n\n /** Number of undistributed prizes */\n undistributed: number\n}\n\n/** Boosts were applied to the group */\nexport interface ActionBoostApply {\n readonly type: 'boost_apply'\n\n /** Number of boosts applied */\n count: number\n}\n\nexport type MessageAction =\n | ActionChatCreated\n | ActionChannelCreated\n | ActionChatMigrateTo\n | ActionChannelMigrateFrom\n | ActionMessagePinned\n | ActionHistoryCleared\n | ActionGameScore\n | ActionContactJoined\n | ActionTitleChanged\n | ActionPhotoChanged\n | ActionPhotoDeleted\n | ActionUsersAdded\n | ActionUserLeft\n | ActionUserRemoved\n | ActionUserJoinedLink\n | ActionPaymentReceived\n | ActionPaymentSent\n | ActionCall\n | ActionScreenshotTaken\n | ActionBotAllowed\n | ActionGeoProximity\n | ActionGroupCallStarted\n | ActionGroupCallEnded\n | ActionGroupCallScheduled\n | ActionGroupInvite\n | ActionTtlChanged\n | ActionTopicCreated\n | ActionTopicEdited\n | ActionCustom\n | ActionThemeChanged\n | ActionUserJoinedApproved\n | ActionWebviewDataSent\n | ActionWebviewDataReceived\n | ActionPremiumGifted\n | ActionPhotoSuggested\n | ActionPeerChosen\n | ActionWallpaperChanged\n | ActionGiftCode\n | ActionGiveawayStarted\n | ActionGiveawayEnded\n | ActionBoostApply\n | null\n\n/** @internal */\nexport function _messageActionFromTl(this: Message, act: tl.TypeMessageAction): MessageAction {\n // todo - passport\n // messageActionSecureValuesSentMe#1b287353 values:Vector<SecureValue> credentials:SecureCredentialsEncrypted\n // messageActionSecureValuesSent#d95c6154 types:Vector<SecureValueType>\n\n switch (act._) {\n case 'messageActionChatCreate':\n return {\n type: 'chat_created',\n title: act.title,\n users: act.users,\n }\n case 'messageActionChannelCreate':\n return {\n type: 'channel_created',\n title: act.title,\n }\n case 'messageActionChatMigrateTo':\n return {\n type: 'chat_migrate_to',\n id: act.channelId,\n }\n case 'messageActionChannelMigrateFrom':\n return {\n type: 'channel_migrate_from',\n id: act.chatId,\n title: act.title,\n }\n case 'messageActionPinMessage':\n return {\n type: 'message_pinned',\n }\n case 'messageActionHistoryClear':\n return {\n type: 'history_cleared',\n }\n case 'messageActionGameScore':\n return {\n type: 'game_score',\n gameId: act.gameId,\n score: act.score,\n }\n case 'messageActionContactSignUp':\n return {\n type: 'contact_joined',\n }\n case 'messageActionChatEditTitle':\n return {\n type: 'title_changed',\n title: act.title,\n }\n case 'messageActionChatEditPhoto':\n return {\n type: 'photo_changed',\n photo: new Photo(act.photo as tl.RawPhoto),\n }\n case 'messageActionChatDeletePhoto':\n return {\n type: 'photo_deleted',\n }\n case 'messageActionChatAddUser':\n return {\n type: 'users_added',\n users: act.users,\n }\n case 'messageActionChatDeleteUser':\n if (this.raw.fromId?._ === 'peerUser' && act.userId === this.raw.fromId.userId) {\n return {\n type: 'user_left',\n }\n }\n\n return {\n type: 'user_removed',\n user: act.userId,\n }\n\n case 'messageActionChatJoinedByLink':\n return {\n type: 'user_joined_link',\n inviter: act.inviterId,\n }\n case 'messageActionPaymentSentMe':\n return {\n type: 'payment_received',\n currency: act.currency,\n amount: act.totalAmount,\n payload: act.payload,\n info: act.info,\n shippingOptionId: act.shippingOptionId,\n charge: act.charge,\n }\n case 'messageActionPaymentSent':\n return {\n type: 'payment_sent',\n currency: act.currency,\n amount: act.totalAmount,\n }\n case 'messageActionPhoneCall':\n return {\n type: 'call',\n id: act.callId,\n isVideo: Boolean(act.video),\n reason: act.reason ? _callDiscardReasonFromTl(act.reason) : undefined,\n duration: act.duration ?? 0,\n }\n case 'messageActionScreenshotTaken':\n return {\n type: 'screenshot_taken',\n }\n case 'messageActionBotAllowed':\n return {\n type: 'bot_allowed',\n domain: act.domain,\n }\n case 'messageActionGeoProximityReached':\n if (act.fromId._ !== 'peerUser' || act.toId._ !== 'peerUser') {\n return null\n }\n\n return {\n type: 'geo_proximity',\n targetId: act.toId.userId,\n userId: act.fromId.userId,\n distance: act.distance,\n }\n\n case 'messageActionGroupCall':\n if (act.duration) {\n return {\n type: 'group_call_ended',\n call: act.call,\n duration: act.duration,\n }\n }\n\n return {\n type: 'group_call_started',\n call: act.call,\n }\n case 'messageActionGroupCallScheduled':\n return {\n type: 'group_call_scheduled',\n call: act.call,\n date: new Date(act.scheduleDate * 1000),\n }\n case 'messageActionInviteToGroupCall':\n return {\n type: 'group_call_invite',\n call: act.call,\n userIds: act.users,\n }\n case 'messageActionSetMessagesTTL':\n return {\n type: 'ttl_changed',\n period: act.period,\n }\n case 'messageActionTopicCreate':\n return {\n type: 'topic_created',\n title: act.title,\n iconColor: act.iconColor,\n iconCustomEmoji: act.iconEmojiId,\n }\n case 'messageActionTopicEdit':\n return {\n type: 'topic_edited',\n title: act.title,\n iconCustomEmoji: act.iconEmojiId,\n closed: act.closed,\n hidden: act.hidden,\n }\n case 'messageActionCustomAction':\n return {\n type: 'custom',\n action: act.message,\n }\n case 'messageActionSetChatTheme':\n return {\n type: 'theme_changed',\n emoji: act.emoticon,\n }\n case 'messageActionChatJoinedByRequest':\n return {\n type: 'user_joined_approved',\n }\n case 'messageActionWebViewDataSent':\n return {\n type: 'webview_sent',\n text: act.text,\n }\n case 'messageActionWebViewDataSentMe':\n return {\n type: 'webview_received',\n text: act.text,\n data: act.data,\n }\n case 'messageActionGiftPremium':\n return {\n type: 'premium_gifted',\n currency: act.currency,\n amount: act.amount.toNumber(),\n months: act.months,\n crypto: act.cryptoAmount ?\n {\n currency: act.cryptoCurrency!,\n amount: act.cryptoAmount.toNumber(),\n } :\n undefined,\n }\n case 'messageActionSuggestProfilePhoto':\n return {\n type: 'photo_suggested',\n photo: new Photo(act.photo as tl.RawPhoto),\n }\n case 'messageActionRequestedPeer':\n return {\n type: 'peer_chosen',\n buttonId: act.buttonId,\n peers: act.peers.map((it) => parsePeer(it, this._peers)),\n }\n case 'messageActionSetChatWallPaper':\n return {\n type: 'wallpaper_changed',\n same: act.same!,\n forBoth: act.forBoth!,\n wallpaper: act.wallpaper,\n }\n case 'messageActionGiftCode':\n return {\n type: 'gift_code',\n raw: act,\n }\n case 'messageActionGiveawayLaunch':\n return {\n type: 'giveaway_started',\n }\n case 'messageActionGiveawayResults':\n return {\n type: 'giveaway_ended',\n winners: act.winnersCount,\n undistributed: act.unclaimedCount,\n }\n case 'messageActionBoostApply':\n return {\n type: 'boost_apply',\n count: act.boosts,\n }\n default:\n return null\n }\n}\n"]}
@@ -4,6 +4,8 @@ import { memoizeGetters } from '../../utils/memoize.js';
4
4
  * One special entity in a text message (like mention, hashtag, URL, etc.)
5
5
  */
6
6
  class MessageEntity {
7
+ raw;
8
+ _text;
7
9
  constructor(raw, _text) {
8
10
  this.raw = raw;
9
11
  this._text = _text;
@@ -1 +1 @@
1
- {"version":3,"file":"message-entity.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\n\n/**\n * Params of the entity. `.kind` can be:\n * - 'mention': `@username`.\n * - 'hashtag': `#hashtag`.\n * - 'cashtag': `$USD`.\n * - 'bot_command': `/start`.\n * - 'url': `https://example.com`\n * - 'email': `example@example.com`.\n * - 'phone_number': `+42000`.\n * - 'bold': **bold text**.\n * - 'italic': *italic text*.\n * - 'underline': <u>underlined</u> text.\n * - 'strikethrough': <s>strikethrough</s> text.\n * - 'code': `monospaced` string.\n * - 'pre': `monospaced` block. `.language` contains the language of the block (if available).\n * - 'text_link': for clickable text URLs.\n * - 'text_mention': for user mention by name. `.userId` contains the ID of the mentioned user.\n * - 'blockquote': A blockquote\n * - 'emoji': A custom emoji. `.emojiId` contains the emoji ID.\n */\nexport type MessageEntityParams =\n | {\n kind:\n | 'mention'\n | 'hashtag'\n | 'cashtag'\n | 'bot_command'\n | 'url'\n | 'email'\n | 'phone_number'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strikethrough'\n | 'spoiler'\n | 'code'\n | 'blockquote'\n | 'bank_card'\n | 'unknown'\n }\n | { kind: 'pre'; language?: string }\n | { kind: 'text_link'; url: string }\n | { kind: 'text_mention'; userId: number }\n | { kind: 'emoji'; emojiId: tl.Long }\n\n/**\n * Kind of the entity. For more information, see {@link MessageEntityParams}\n */\nexport type MessageEntityKind = MessageEntityParams['kind']\n\n/**\n * One special entity in a text message (like mention, hashtag, URL, etc.)\n */\nexport class MessageEntity {\n constructor(\n readonly raw: tl.TypeMessageEntity,\n readonly _text?: string,\n ) {}\n\n /**\n * Offset in UTF-16 code units to the start of the entity.\n *\n * Since JS strings are UTF-16, you can use this as-is\n */\n get offset() {\n return this.raw.offset\n }\n\n /**\n * Length of the entity in UTF-16 code units.\n *\n * Since JS strings are UTF-16, you can use this as-is\n */\n get length() {\n return this.raw.length\n }\n\n /**\n * Kind of the entity (see {@link MessageEntityParams})\n */\n get kind(): MessageEntityKind {\n return this.params.kind\n }\n\n /**\n * Params of the entity\n */\n get params(): MessageEntityParams {\n switch (this.raw._) {\n case 'messageEntityMention':\n return { kind: 'mention' }\n case 'messageEntityHashtag':\n return { kind: 'hashtag' }\n case 'messageEntityCashtag':\n return { kind: 'cashtag' }\n case 'messageEntityBotCommand':\n return { kind: 'bot_command' }\n case 'messageEntityUrl':\n return { kind: 'url' }\n case 'messageEntityEmail':\n return { kind: 'email' }\n case 'messageEntityPhone':\n return { kind: 'phone_number' }\n case 'messageEntityBold':\n return { kind: 'bold' }\n case 'messageEntityItalic':\n return { kind: 'italic' }\n case 'messageEntityUnderline':\n return { kind: 'underline' }\n case 'messageEntityStrike':\n return { kind: 'strikethrough' }\n case 'messageEntitySpoiler':\n return { kind: 'spoiler' }\n case 'messageEntityCode':\n return { kind: 'code' }\n case 'messageEntityPre':\n return { kind: 'pre', language: this.raw.language }\n case 'messageEntityTextUrl':\n return { kind: 'text_link', url: this.raw.url }\n case 'messageEntityMentionName':\n return { kind: 'text_mention', userId: this.raw.userId }\n case 'messageEntityBlockquote':\n return { kind: 'blockquote' }\n case 'messageEntityCustomEmoji':\n return { kind: 'emoji', emojiId: this.raw.documentId }\n case 'messageEntityBankCard':\n return { kind: 'bank_card' }\n }\n\n return { kind: 'unknown' }\n }\n\n /**\n * Text contained in this entity.\n *\n * > **Note**: This does not take into account that entities may overlap,\n * > and is only useful for simple cases.\n */\n get text(): string {\n if (!this._text) return ''\n\n return this._text.slice(this.raw.offset, this.raw.offset + this.raw.length)\n }\n\n /**\n * Checks if this entity is of the given type, and adjusts the type accordingly.\n * @param kind\n * @returns\n */\n is<const T extends MessageEntityKind>(\n kind: T,\n ): this is MessageEntity & { params: Extract<MessageEntityParams, { kind: T }>; kind: T } {\n return this.params.kind === kind\n }\n}\n\nmemoizeGetters(MessageEntity, ['params'])\nmakeInspectable(MessageEntity)\n"]}
1
+ {"version":3,"file":"message-entity.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\n\n/**\n * Params of the entity. `.kind` can be:\n * - 'mention': `@username`.\n * - 'hashtag': `#hashtag`.\n * - 'cashtag': `$USD`.\n * - 'bot_command': `/start`.\n * - 'url': `https://example.com`\n * - 'email': `example@example.com`.\n * - 'phone_number': `+42000`.\n * - 'bold': **bold text**.\n * - 'italic': *italic text*.\n * - 'underline': <u>underlined</u> text.\n * - 'strikethrough': <s>strikethrough</s> text.\n * - 'code': `monospaced` string.\n * - 'pre': `monospaced` block. `.language` contains the language of the block (if available).\n * - 'text_link': for clickable text URLs.\n * - 'text_mention': for user mention by name. `.userId` contains the ID of the mentioned user.\n * - 'blockquote': A blockquote\n * - 'emoji': A custom emoji. `.emojiId` contains the emoji ID.\n */\nexport type MessageEntityParams =\n | {\n kind:\n | 'mention'\n | 'hashtag'\n | 'cashtag'\n | 'bot_command'\n | 'url'\n | 'email'\n | 'phone_number'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strikethrough'\n | 'spoiler'\n | 'code'\n | 'blockquote'\n | 'bank_card'\n | 'unknown'\n }\n | { kind: 'pre'; language?: string }\n | { kind: 'text_link'; url: string }\n | { kind: 'text_mention'; userId: number }\n | { kind: 'emoji'; emojiId: tl.Long }\n\n/**\n * Kind of the entity. For more information, see {@link MessageEntityParams}\n */\nexport type MessageEntityKind = MessageEntityParams['kind']\n\n/**\n * One special entity in a text message (like mention, hashtag, URL, etc.)\n */\nexport class MessageEntity {\n constructor(\n readonly raw: tl.TypeMessageEntity,\n readonly _text?: string,\n ) {}\n\n /**\n * Offset in UTF-16 code units to the start of the entity.\n *\n * Since JS strings are UTF-16, you can use this as-is\n */\n get offset() {\n return this.raw.offset\n }\n\n /**\n * Length of the entity in UTF-16 code units.\n *\n * Since JS strings are UTF-16, you can use this as-is\n */\n get length() {\n return this.raw.length\n }\n\n /**\n * Kind of the entity (see {@link MessageEntityParams})\n */\n get kind(): MessageEntityKind {\n return this.params.kind\n }\n\n /**\n * Params of the entity\n */\n get params(): MessageEntityParams {\n switch (this.raw._) {\n case 'messageEntityMention':\n return { kind: 'mention' }\n case 'messageEntityHashtag':\n return { kind: 'hashtag' }\n case 'messageEntityCashtag':\n return { kind: 'cashtag' }\n case 'messageEntityBotCommand':\n return { kind: 'bot_command' }\n case 'messageEntityUrl':\n return { kind: 'url' }\n case 'messageEntityEmail':\n return { kind: 'email' }\n case 'messageEntityPhone':\n return { kind: 'phone_number' }\n case 'messageEntityBold':\n return { kind: 'bold' }\n case 'messageEntityItalic':\n return { kind: 'italic' }\n case 'messageEntityUnderline':\n return { kind: 'underline' }\n case 'messageEntityStrike':\n return { kind: 'strikethrough' }\n case 'messageEntitySpoiler':\n return { kind: 'spoiler' }\n case 'messageEntityCode':\n return { kind: 'code' }\n case 'messageEntityPre':\n return { kind: 'pre', language: this.raw.language }\n case 'messageEntityTextUrl':\n return { kind: 'text_link', url: this.raw.url }\n case 'messageEntityMentionName':\n return { kind: 'text_mention', userId: this.raw.userId }\n case 'messageEntityBlockquote':\n return { kind: 'blockquote' }\n case 'messageEntityCustomEmoji':\n return { kind: 'emoji', emojiId: this.raw.documentId }\n case 'messageEntityBankCard':\n return { kind: 'bank_card' }\n }\n\n return { kind: 'unknown' }\n }\n\n /**\n * Text contained in this entity.\n *\n * > **Note**: This does not take into account that entities may overlap,\n * > and is only useful for simple cases.\n */\n get text(): string {\n if (!this._text) return ''\n\n return this._text.slice(this.raw.offset, this.raw.offset + this.raw.length)\n }\n\n /**\n * Checks if this entity is of the given type, and adjusts the type accordingly.\n * @param kind\n * @returns\n */\n is<const T extends MessageEntityKind>(\n kind: T,\n ): this is MessageEntity & { params: Extract<MessageEntityParams, { kind: T }>; kind: T } {\n return this.params.kind === kind\n }\n}\n\nmemoizeGetters(MessageEntity, ['params'])\nmakeInspectable(MessageEntity)\n"]}
@@ -7,6 +7,8 @@ import { parsePeer } from '../peers/peer.js';
7
7
  * Information about forwarded message origin
8
8
  */
9
9
  class MessageForwardInfo {
10
+ raw;
11
+ _peers;
10
12
  constructor(raw, _peers) {
11
13
  this.raw = raw;
12
14
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"message-forward.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-forward.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAc,MAAM,kBAAkB,CAAA;AAIxD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC3B,YACa,GAA2B,EAC3B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAwB;QAC3B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACnB,OAAO;gBACH,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;aACjC,CAAA;SACJ;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACjB,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;SACjD;QAED,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,SAAS,CAAC,CAAA;IACjG,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAExC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACnE,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAA;IACtC,CAAC;CACJ;AAED,cAAc,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;AAC1D,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Chat } from '../peers/chat.js'\nimport { parsePeer, PeerSender } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { _messageMediaFromTl } from './message-media.js'\n\n/**\n * Information about forwarded message origin\n */\nexport class MessageForwardInfo {\n constructor(\n readonly raw: tl.RawMessageFwdHeader,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Date the original message was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Sender of the original message (either user or a channel)\n * or their name (for users with private forwards)\n */\n get sender(): PeerSender {\n if (this.raw.fromName) {\n return {\n type: 'anonymous',\n displayName: this.raw.fromName,\n }\n }\n\n if (this.raw.fromId) {\n return parsePeer(this.raw.fromId, this._peers)\n }\n\n throw new MtTypeAssertionError('MessageForwardInfo', 'to have fromId or fromName', 'neither')\n }\n\n /**\n * For \"saved\" messages (i.e. messages forwarded to yourself,\n * \"Saved Messages\"), the peer where the message was originally sent\n */\n fromChat(): Chat | null {\n if (!this.raw.savedFromPeer) return null\n\n return Chat._parseFromPeer(this.raw.savedFromPeer, this._peers)\n }\n\n /**\n * For messages forwarded from channels,\n * identifier of the original message in the channel\n */\n get fromMessageId(): number | null {\n return this.raw.savedFromMsgId ?? null\n }\n\n /**\n * For messages forwarded from channels,\n * signature of the post author (if present)\n */\n get signature(): string | null {\n return this.raw.postAuthor ?? null\n }\n}\n\nmemoizeGetters(MessageForwardInfo, ['sender', 'fromChat'])\nmakeInspectable(MessageForwardInfo)\n"]}
1
+ {"version":3,"file":"message-forward.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-forward.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAc,MAAM,kBAAkB,CAAA;AAIxD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAEd;IACA;IAFb,YACa,GAA2B,EAC3B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAwB;QAC3B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;gBACH,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;aACjC,CAAA;QACL,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,SAAS,CAAC,CAAA;IACjG,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAExC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACnE,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAA;IACtC,CAAC;CACJ;AAED,cAAc,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;AAC1D,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Chat } from '../peers/chat.js'\nimport { parsePeer, PeerSender } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { _messageMediaFromTl } from './message-media.js'\n\n/**\n * Information about forwarded message origin\n */\nexport class MessageForwardInfo {\n constructor(\n readonly raw: tl.RawMessageFwdHeader,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Date the original message was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Sender of the original message (either user or a channel)\n * or their name (for users with private forwards)\n */\n get sender(): PeerSender {\n if (this.raw.fromName) {\n return {\n type: 'anonymous',\n displayName: this.raw.fromName,\n }\n }\n\n if (this.raw.fromId) {\n return parsePeer(this.raw.fromId, this._peers)\n }\n\n throw new MtTypeAssertionError('MessageForwardInfo', 'to have fromId or fromName', 'neither')\n }\n\n /**\n * For \"saved\" messages (i.e. messages forwarded to yourself,\n * \"Saved Messages\"), the peer where the message was originally sent\n */\n fromChat(): Chat | null {\n if (!this.raw.savedFromPeer) return null\n\n return Chat._parseFromPeer(this.raw.savedFromPeer, this._peers)\n }\n\n /**\n * For messages forwarded from channels,\n * identifier of the original message in the channel\n */\n get fromMessageId(): number | null {\n return this.raw.savedFromMsgId ?? null\n }\n\n /**\n * For messages forwarded from channels,\n * signature of the post author (if present)\n */\n get signature(): string | null {\n return this.raw.postAuthor ?? null\n }\n}\n\nmemoizeGetters(MessageForwardInfo, ['sender', 'fromChat'])\nmakeInspectable(MessageForwardInfo)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"message-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-media.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { Audio } from '../media/audio.js'\nimport { Contact } from '../media/contact.js'\nimport { Dice } from '../media/dice.js'\nimport { Document } from '../media/document.js'\nimport { parseDocument } from '../media/document-utils.js'\nimport { Game } from '../media/game.js'\nimport { Invoice } from '../media/invoice.js'\nimport { LiveLocation, Location } from '../media/location.js'\nimport { Photo } from '../media/photo.js'\nimport { Poll } from '../media/poll.js'\nimport { Sticker } from '../media/sticker.js'\nimport { MediaStory } from '../media/story.js'\nimport { Venue } from '../media/venue.js'\nimport { Video } from '../media/video.js'\nimport { Voice } from '../media/voice.js'\nimport { WebPage } from '../media/web-page.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\n/** A media inside of a {@link Message} */\nexport type MessageMedia =\n | Photo\n | Dice\n | Contact\n | Audio\n | Voice\n | Sticker\n | Document\n | Video\n | Location\n | LiveLocation\n | Game\n | WebPage\n | Venue\n | Poll\n | Invoice\n | MediaStory\n | null\nexport type MessageMediaType = Exclude<MessageMedia, null>['type']\n\n// todo: successful_payment, connected_website\n\n/** @internal */\nexport function _messageMediaFromTl(peers: PeersIndex | null, m: tl.TypeMessageMedia): MessageMedia {\n switch (m._) {\n case 'messageMediaPhoto':\n if (!(m.photo?._ === 'photo')) return null\n\n return new Photo(m.photo, m)\n case 'messageMediaDice':\n return new Dice(m)\n case 'messageMediaContact':\n return new Contact(m)\n case 'messageMediaDocument':\n if (!(m.document?._ === 'document')) return null\n\n return parseDocument(m.document, m)\n case 'messageMediaGeo':\n if (!(m.geo._ === 'geoPoint')) return null\n\n return new Location(m.geo)\n case 'messageMediaGeoLive':\n if (!(m.geo._ === 'geoPoint')) return null\n\n return new LiveLocation(m)\n case 'messageMediaGame':\n return new Game(m.game)\n case 'messageMediaWebPage':\n if (!(m.webpage._ === 'webPage')) return null\n\n return new WebPage(m.webpage)\n case 'messageMediaVenue':\n return new Venue(m)\n case 'messageMediaPoll':\n if (!peers) {\n // should only be possible in extended media\n // (and afaik polls can't be there)\n throw new MtTypeAssertionError(\"can't create poll without peers index\", 'PeersIndex', 'null')\n }\n\n return new Poll(m.poll, peers, m.results)\n case 'messageMediaInvoice': {\n const extended =\n m.extendedMedia?._ === 'messageExtendedMedia' ? _messageMediaFromTl(peers, m.extendedMedia.media) : null\n\n return new Invoice(m, extended)\n }\n case 'messageMediaStory': {\n if (!peers) {\n // should only be possible in extended media\n // (and afaik stories can't be there)\n throw new MtTypeAssertionError(\"can't create story without peers index\", 'PeersIndex', 'null')\n }\n\n return new MediaStory(m, peers)\n }\n default:\n return null\n }\n}\n"]}
1
+ {"version":3,"file":"message-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-media.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { Audio } from '../media/audio.js'\nimport { Contact } from '../media/contact.js'\nimport { Dice } from '../media/dice.js'\nimport { Document } from '../media/document.js'\nimport { parseDocument } from '../media/document-utils.js'\nimport { Game } from '../media/game.js'\nimport { Invoice } from '../media/invoice.js'\nimport { LiveLocation, Location } from '../media/location.js'\nimport { Photo } from '../media/photo.js'\nimport { Poll } from '../media/poll.js'\nimport { Sticker } from '../media/sticker.js'\nimport { MediaStory } from '../media/story.js'\nimport { Venue } from '../media/venue.js'\nimport { Video } from '../media/video.js'\nimport { Voice } from '../media/voice.js'\nimport { WebPage } from '../media/web-page.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\n/** A media inside of a {@link Message} */\nexport type MessageMedia =\n | Photo\n | Dice\n | Contact\n | Audio\n | Voice\n | Sticker\n | Document\n | Video\n | Location\n | LiveLocation\n | Game\n | WebPage\n | Venue\n | Poll\n | Invoice\n | MediaStory\n | null\nexport type MessageMediaType = Exclude<MessageMedia, null>['type']\n\n// todo: successful_payment, connected_website\n\n/** @internal */\nexport function _messageMediaFromTl(peers: PeersIndex | null, m: tl.TypeMessageMedia): MessageMedia {\n switch (m._) {\n case 'messageMediaPhoto':\n if (!(m.photo?._ === 'photo')) return null\n\n return new Photo(m.photo, m)\n case 'messageMediaDice':\n return new Dice(m)\n case 'messageMediaContact':\n return new Contact(m)\n case 'messageMediaDocument':\n if (!(m.document?._ === 'document')) return null\n\n return parseDocument(m.document, m)\n case 'messageMediaGeo':\n if (!(m.geo._ === 'geoPoint')) return null\n\n return new Location(m.geo)\n case 'messageMediaGeoLive':\n if (!(m.geo._ === 'geoPoint')) return null\n\n return new LiveLocation(m)\n case 'messageMediaGame':\n return new Game(m.game)\n case 'messageMediaWebPage':\n if (!(m.webpage._ === 'webPage')) return null\n\n return new WebPage(m.webpage)\n case 'messageMediaVenue':\n return new Venue(m)\n case 'messageMediaPoll':\n if (!peers) {\n // should only be possible in extended media\n // (and afaik polls can't be there)\n throw new MtTypeAssertionError(\"can't create poll without peers index\", 'PeersIndex', 'null')\n }\n\n return new Poll(m.poll, peers, m.results)\n case 'messageMediaInvoice': {\n const extended =\n m.extendedMedia?._ === 'messageExtendedMedia' ? _messageMediaFromTl(peers, m.extendedMedia.media) : null\n\n return new Invoice(m, extended)\n }\n case 'messageMediaStory': {\n if (!peers) {\n // should only be possible in extended media\n // (and afaik stories can't be there)\n throw new MtTypeAssertionError(\"can't create story without peers index\", 'PeersIndex', 'null')\n }\n\n return new MediaStory(m, peers)\n }\n default:\n return null\n }\n}\n"]}
@@ -6,6 +6,10 @@ import { ReactionCount } from '../reactions/reaction-count.js';
6
6
  * Reactions on a message
7
7
  */
8
8
  class MessageReactions {
9
+ messageId;
10
+ chatId;
11
+ raw;
12
+ _peers;
9
13
  constructor(messageId, chatId, raw, _peers) {
10
14
  this.messageId = messageId;
11
15
  this.chatId = chatId;
@@ -1 +1 @@
1
- {"version":3,"file":"message-reactions.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-reactions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACzB,YACa,SAAiB,EACjB,MAAc,EACd,GAA2B,EAC3B,MAAkB;QAHlB,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAwB;QAC3B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;;;OAIG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAW,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACrG,CAAC;CACJ;AAED,cAAc,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAClE,eAAe,CAAC,gBAAgB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/index.js'\nimport { PeerReaction } from '../reactions/peer-reaction.js'\nimport { ReactionCount } from '../reactions/reaction-count.js'\n\n/**\n * Reactions on a message\n */\nexport class MessageReactions {\n constructor(\n readonly messageId: number,\n readonly chatId: number,\n readonly raw: tl.RawMessageReactions,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether you can use {@link getUsers}\n * (or {@link TelegramClient.getReactionUsers})\n * to get the users who reacted to this message\n */\n get usersVisible(): boolean {\n return this.raw.canSeeList!\n }\n\n /**\n * Reactions on the message, along with their counts\n */\n get reactions(): ReactionCount[] {\n return this.raw.results.map((it) => new ReactionCount(it))\n }\n\n /**\n * Recently reacted users.\n * To get a full list of users, use {@link getUsers}\n */\n get recentReactions(): PeerReaction[] {\n return this.raw.recentReactions?.map((reaction) => new PeerReaction(reaction, this._peers)) ?? []\n }\n}\n\nmemoizeGetters(MessageReactions, ['reactions', 'recentReactions'])\nmakeInspectable(MessageReactions)\n"]}
1
+ {"version":3,"file":"message-reactions.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-reactions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAEZ;IACA;IACA;IACA;IAJb,YACa,SAAiB,EACjB,MAAc,EACd,GAA2B,EAC3B,MAAkB;QAHlB,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAwB;QAC3B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;;;OAIG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAW,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACrG,CAAC;CACJ;AAED,cAAc,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAClE,eAAe,CAAC,gBAAgB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/index.js'\nimport { PeerReaction } from '../reactions/peer-reaction.js'\nimport { ReactionCount } from '../reactions/reaction-count.js'\n\n/**\n * Reactions on a message\n */\nexport class MessageReactions {\n constructor(\n readonly messageId: number,\n readonly chatId: number,\n readonly raw: tl.RawMessageReactions,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether you can use {@link getUsers}\n * (or {@link TelegramClient.getReactionUsers})\n * to get the users who reacted to this message\n */\n get usersVisible(): boolean {\n return this.raw.canSeeList!\n }\n\n /**\n * Reactions on the message, along with their counts\n */\n get reactions(): ReactionCount[] {\n return this.raw.results.map((it) => new ReactionCount(it))\n }\n\n /**\n * Recently reacted users.\n * To get a full list of users, use {@link getUsers}\n */\n get recentReactions(): PeerReaction[] {\n return this.raw.recentReactions?.map((reaction) => new PeerReaction(reaction, this._peers)) ?? []\n }\n}\n\nmemoizeGetters(MessageReactions, ['reactions', 'recentReactions'])\nmakeInspectable(MessageReactions)\n"]}
@@ -6,6 +6,8 @@ import { parsePeer } from '../peers/peer.js';
6
6
  * Information about replies to a message
7
7
  */
8
8
  class MessageRepliesInfo {
9
+ raw;
10
+ _peers;
9
11
  constructor(raw, _peers) {
10
12
  this.raw = raw;
11
13
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"message-replies.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-replies.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAA;AAGlD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC3B,YACa,GAAyB,EACzB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAsB;QACzB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,QAAS,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACpF,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAEpC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACzD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACjF,CAAC;CACJ;AAED,cAAc,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;AAC9D,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\n/**\n * Information about replies to a message\n */\nexport class MessageRepliesInfo {\n constructor(\n readonly raw: tl.RawMessageReplies,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether this message is a channel post that has a comments thread\n * in the linked discussion group\n */\n get hasComments(): boolean {\n return this.raw.comments!\n }\n\n /**\n * Total number of replies\n */\n get count(): number {\n return this.raw.replies\n }\n\n /**\n * Whether this reply thread has unread messages\n */\n get hasUnread(): boolean {\n return this.raw.readMaxId !== undefined && this.raw.readMaxId !== this.raw.maxId\n }\n\n /**\n * ID of the last message in the thread (if any)\n */\n get lastMessageId(): number | null {\n return this.raw.maxId ?? null\n }\n\n /**\n * ID of the last read message in the thread (if any)\n */\n get lastReadMessageId(): number | null {\n return this.raw.readMaxId ?? null\n }\n\n /**\n * ID of the discussion group for the post\n *\n * `null` if the post is not a channel post\n */\n get discussion(): number | null {\n if (!this.raw.channelId) return null\n\n return getMarkedPeerId(this.raw.channelId, 'channel')\n }\n\n /**\n * Last few commenters to the post (usually 3)\n */\n get repliers(): Peer[] {\n return this.raw.recentRepliers?.map((it) => parsePeer(it, this._peers)) ?? []\n }\n}\n\nmemoizeGetters(MessageRepliesInfo, ['discussion', 'repliers'])\nmakeInspectable(MessageRepliesInfo)\n"]}
1
+ {"version":3,"file":"message-replies.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message-replies.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAA;AAGlD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAEd;IACA;IAFb,YACa,GAAyB,EACzB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAsB;QACzB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,QAAS,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACpF,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAEpC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACzD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACjF,CAAC;CACJ;AAED,cAAc,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;AAC9D,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\n/**\n * Information about replies to a message\n */\nexport class MessageRepliesInfo {\n constructor(\n readonly raw: tl.RawMessageReplies,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether this message is a channel post that has a comments thread\n * in the linked discussion group\n */\n get hasComments(): boolean {\n return this.raw.comments!\n }\n\n /**\n * Total number of replies\n */\n get count(): number {\n return this.raw.replies\n }\n\n /**\n * Whether this reply thread has unread messages\n */\n get hasUnread(): boolean {\n return this.raw.readMaxId !== undefined && this.raw.readMaxId !== this.raw.maxId\n }\n\n /**\n * ID of the last message in the thread (if any)\n */\n get lastMessageId(): number | null {\n return this.raw.maxId ?? null\n }\n\n /**\n * ID of the last read message in the thread (if any)\n */\n get lastReadMessageId(): number | null {\n return this.raw.readMaxId ?? null\n }\n\n /**\n * ID of the discussion group for the post\n *\n * `null` if the post is not a channel post\n */\n get discussion(): number | null {\n if (!this.raw.channelId) return null\n\n return getMarkedPeerId(this.raw.channelId, 'channel')\n }\n\n /**\n * Last few commenters to the post (usually 3)\n */\n get repliers(): Peer[] {\n return this.raw.recentRepliers?.map((it) => parsePeer(it, this._peers)) ?? []\n }\n}\n\nmemoizeGetters(MessageRepliesInfo, ['discussion', 'repliers'])\nmakeInspectable(MessageRepliesInfo)\n"]}
@@ -19,6 +19,12 @@ import { RepliedMessageInfo } from './replied-message.js';
19
19
  * A Telegram message.
20
20
  */
21
21
  class Message {
22
+ _peers;
23
+ isScheduled;
24
+ /**
25
+ * Raw TL object.
26
+ */
27
+ raw;
22
28
  constructor(raw, _peers,
23
29
  /**
24
30
  * Whether the message is scheduled.
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertNever } from '../../../types/utils.js'\nimport { getMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { BotKeyboard, ReplyMarkup } from '../bots/keyboards/index.js'\nimport { TextWithEntities } from '../misc/index.js'\nimport { Chat } from '../peers/chat.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\nimport { _messageActionFromTl, MessageAction } from './message-action.js'\nimport { MessageEntity } from './message-entity.js'\nimport { MessageForwardInfo } from './message-forward.js'\nimport { _messageMediaFromTl, MessageMedia } from './message-media.js'\nimport { MessageReactions } from './message-reactions.js'\nimport { MessageRepliesInfo } from './message-replies.js'\nimport { RepliedMessageInfo } from './replied-message.js'\n\n/**\n * A Telegram message.\n */\nexport class Message {\n /**\n * Raw TL object.\n */\n readonly raw: tl.RawMessage | tl.RawMessageService\n\n constructor(\n raw: tl.TypeMessage,\n readonly _peers: PeersIndex,\n /**\n * Whether the message is scheduled.\n * If it is, then its {@link date} is set to future.\n */\n readonly isScheduled = false,\n ) {\n assertTypeIsNot('Message#ctor', raw, 'messageEmpty')\n\n this.raw = raw\n }\n\n /** Unique message identifier inside this chat */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * For channel posts, number of views\n *\n * `null` for service messages and non-post messages.\n */\n get views(): number | null {\n return this.raw._ === 'message' ? this.raw.views ?? null : null\n }\n\n /**\n * Whether the message is incoming or outgoing:\n * - Messages received from other chats are incoming (`outgoing = false`)\n * - Messages sent by you to other chats are outgoing (`outgoing = true`)\n * - Messages to yourself (i.e. *Saved Messages*) are incoming (`outgoing = false`)\n */\n get isOutgoing(): boolean {\n return this.raw.out!\n }\n\n /**\n * Whether this message is a service message\n */\n get isService(): boolean {\n return this.raw._ === 'messageService'\n }\n\n /** Whether this message has content protection (i.e. disabled forwards) */\n get isContentProtected(): boolean {\n return this.raw._ === 'message' && this.raw.noforwards!\n }\n\n /**\n * Multiple media messages with the same grouped ID\n * indicate an album or media group\n *\n * `null` for service messages and non-grouped messages\n */\n get groupedId(): tl.Long | null {\n return this.raw._ === 'message' ? this.raw.groupedId ?? null : null\n }\n\n /**\n * Same as {@link groupedId}, but is globally unique across chats.\n */\n get groupedIdUnique(): string | null {\n if (!(this.raw._ === 'message' && this.raw.groupedId !== undefined)) return null\n\n return `${this.raw.groupedId.low}|${this.raw.groupedId.high}|${getMarkedPeerId(this.raw.peerId)}`\n }\n\n /**\n * Message sender.\n *\n * Usually is a {@link User}, but can be a {@link Chat}\n * in case the message was sent by an anonymous admin, anonymous premium user,\n * or if the message is a forwarded channel post.\n *\n * If the message was sent by an anonymous admin,\n * sender will equal to {@link chat}.\n *\n * If the message is a forwarded channel post,\n * sender is the channel itself.\n */\n get sender(): Peer {\n const from = this.raw.fromId\n\n if (!from) {\n if (this.raw.peerId._ === 'peerUser') {\n return new User(this._peers.user(this.raw.peerId.userId))\n }\n\n // anon admin, return the chat\n return this.chat\n }\n\n return parsePeer(from, this._peers)\n }\n\n /**\n * Conversation the message belongs to\n */\n get chat(): Chat {\n return Chat._parseFromMessage(this.raw, this._peers)\n }\n\n /**\n * Date the message was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * If this message is a forward, contains info about it.\n */\n get forward(): MessageForwardInfo | null {\n if (this.raw._ !== 'message' || !this.raw.fwdFrom) {\n return null\n }\n\n return new MessageForwardInfo(this.raw.fwdFrom, this._peers)\n }\n\n /**\n * Whether the message is a channel post that was\n * automatically forwarded to the connected discussion group\n */\n get isAutomaticForward(): boolean {\n if (this.raw._ === 'messageService' || !this.raw.fwdFrom) return false\n\n const fwd = this.raw.fwdFrom\n\n return Boolean(\n this.chat.chatType === 'supergroup' &&\n fwd.savedFromMsgId &&\n fwd.savedFromPeer?._ === 'peerChannel' &&\n getMarkedPeerId(fwd.savedFromPeer) !== getMarkedPeerId(this.raw.peerId),\n )\n }\n\n /**\n * Information about comments (for channels) or replies (for groups)\n */\n get replies(): MessageRepliesInfo | null {\n if (this.raw._ !== 'message' || !this.raw.replies) return null\n\n return new MessageRepliesInfo(this.raw.replies, this._peers)\n }\n\n /**\n * For replies, information about the that is being replied to.\n *\n * Mutually exclusive with {@link replyToStory}\n */\n get replyToMessage(): RepliedMessageInfo | null {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return null\n\n return new RepliedMessageInfo(this.raw.replyTo, this._peers)\n }\n\n /**\n * For replies, information about the story that is being replied to\n *\n * Mutually exclusive with {@link replyToMessage}\n */\n get replyToStory(): tl.RawMessageReplyStoryHeader | null {\n if (this.raw.replyTo?._ !== 'messageReplyStoryHeader') return null\n\n return this.raw.replyTo\n }\n\n /** Whether this message is in a forum topic */\n get isTopicMessage(): boolean {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return false\n\n return this.raw.replyTo.forumTopic!\n }\n\n /**\n * Whether this message contains mention of the current user\n */\n get isMention(): boolean {\n return this.raw.mentioned!\n }\n\n /**\n * If this message is generated from an inline query,\n * information about the bot which generated it\n */\n get viaBot(): User | null {\n if (this.raw._ === 'messageService' || !this.raw.viaBotId) {\n return null\n }\n\n return new User(this._peers.user(this.raw.viaBotId))\n }\n\n /**\n * Message text or media caption.\n *\n * Empty string for service messages\n * (you should handle i18n yourself)\n */\n get text(): string {\n return this.raw._ === 'messageService' ? '' : this.raw.message\n }\n\n /**\n * Message text/caption entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities: MessageEntity[] = []\n\n if (this.raw._ === 'message' && this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n\n get textWithEntities(): TextWithEntities {\n if (this.raw._ === 'messageService') return { text: '', entities: [] }\n\n return {\n text: this.raw.message,\n entities: this.raw.entities,\n }\n }\n\n /**\n * Message action. `null` for non-service messages\n * or for unsupported events.\n *\n * For unsupported events, use `.raw.action` directly.\n */\n get action(): MessageAction | null {\n if (this.raw._ === 'message') {\n return null\n }\n\n return _messageActionFromTl.call(this, this.raw.action)\n }\n\n /**\n * Message media. `null` for text-only and service messages\n * and for unsupported media types.\n *\n * For unsupported media types, use `.raw.media` directly.\n */\n get media(): MessageMedia {\n if (this.raw._ === 'messageService' || !this.raw.media || this.raw.media._ === 'messageMediaEmpty') {\n return null\n }\n\n return _messageMediaFromTl(this._peers, this.raw.media)\n }\n\n /**\n * Whether this is a premium media\n * (e.g. >2gb file or fullscreen sticker)\n * that was forwarded without author by a non-premium user\n */\n get isForwardedPremiumMedia(): boolean {\n return this.raw._ === 'message' && this.raw.media?._ === 'messageMediaDocument' && this.raw.media.nopremium!\n }\n\n /**\n * TTL period of the message, in seconds.\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n\n /**\n * Reply markup provided with this message, if any.\n */\n get markup(): ReplyMarkup | null {\n if (this.raw._ === 'messageService' || !this.raw.replyMarkup) {\n return null\n }\n\n const rm = this.raw.replyMarkup\n\n switch (rm._) {\n case 'replyKeyboardHide':\n return {\n type: 'reply_hide',\n selective: rm.selective,\n }\n case 'replyKeyboardForceReply':\n return {\n type: 'force_reply',\n singleUse: rm.singleUse,\n selective: rm.selective,\n }\n case 'replyKeyboardMarkup':\n return {\n type: 'reply',\n resize: rm.resize,\n singleUse: rm.singleUse,\n selective: rm.selective,\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n case 'replyInlineMarkup':\n return {\n type: 'inline',\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n default:\n assertNever(rm)\n }\n }\n\n /**\n * Whether this message can be forwarded\n *\n * `false` for service mesasges and private restricted chats/chanenls\n */\n get canBeForwarded(): boolean {\n return this.raw._ === 'message' && !this.raw.noforwards\n }\n\n get reactions(): MessageReactions | null {\n if (this.raw._ === 'messageService' || !this.raw.reactions) {\n return null\n }\n\n return new MessageReactions(this.raw.id, getMarkedPeerId(this.raw.peerId), this.raw.reactions, this._peers)\n }\n\n /**\n * Generated permalink to this message, only for groups and channels\n *\n * @throws MtArgumentError In case the chat does not support message links\n */\n get link(): string {\n if (this.chat.chatType === 'supergroup' || this.chat.chatType === 'channel') {\n if (this.chat.username) {\n return `https://t.me/${this.chat.username}/${this.id}`\n }\n\n return `https://t.me/c/${toggleChannelIdMark(this.chat.id)}/${this.id}`\n }\n\n throw new MtArgumentError(`Cannot generate message link for ${this.chat.chatType}`)\n }\n}\n\nmemoizeGetters(Message, [\n 'sender',\n 'chat',\n 'forward',\n 'replies',\n 'viaBot',\n 'entities',\n 'action',\n 'media',\n 'markup',\n 'reactions',\n])\nmakeInspectable(Message, ['isScheduled'], ['link'])\n"]}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertNever } from '../../../types/utils.js'\nimport { getMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { BotKeyboard, ReplyMarkup } from '../bots/keyboards/index.js'\nimport { TextWithEntities } from '../misc/index.js'\nimport { Chat } from '../peers/chat.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\nimport { _messageActionFromTl, MessageAction } from './message-action.js'\nimport { MessageEntity } from './message-entity.js'\nimport { MessageForwardInfo } from './message-forward.js'\nimport { _messageMediaFromTl, MessageMedia } from './message-media.js'\nimport { MessageReactions } from './message-reactions.js'\nimport { MessageRepliesInfo } from './message-replies.js'\nimport { RepliedMessageInfo } from './replied-message.js'\n\n/**\n * A Telegram message.\n */\nexport class Message {\n /**\n * Raw TL object.\n */\n readonly raw: tl.RawMessage | tl.RawMessageService\n\n constructor(\n raw: tl.TypeMessage,\n readonly _peers: PeersIndex,\n /**\n * Whether the message is scheduled.\n * If it is, then its {@link date} is set to future.\n */\n readonly isScheduled = false,\n ) {\n assertTypeIsNot('Message#ctor', raw, 'messageEmpty')\n\n this.raw = raw\n }\n\n /** Unique message identifier inside this chat */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * For channel posts, number of views\n *\n * `null` for service messages and non-post messages.\n */\n get views(): number | null {\n return this.raw._ === 'message' ? this.raw.views ?? null : null\n }\n\n /**\n * Whether the message is incoming or outgoing:\n * - Messages received from other chats are incoming (`outgoing = false`)\n * - Messages sent by you to other chats are outgoing (`outgoing = true`)\n * - Messages to yourself (i.e. *Saved Messages*) are incoming (`outgoing = false`)\n */\n get isOutgoing(): boolean {\n return this.raw.out!\n }\n\n /**\n * Whether this message is a service message\n */\n get isService(): boolean {\n return this.raw._ === 'messageService'\n }\n\n /** Whether this message has content protection (i.e. disabled forwards) */\n get isContentProtected(): boolean {\n return this.raw._ === 'message' && this.raw.noforwards!\n }\n\n /**\n * Multiple media messages with the same grouped ID\n * indicate an album or media group\n *\n * `null` for service messages and non-grouped messages\n */\n get groupedId(): tl.Long | null {\n return this.raw._ === 'message' ? this.raw.groupedId ?? null : null\n }\n\n /**\n * Same as {@link groupedId}, but is globally unique across chats.\n */\n get groupedIdUnique(): string | null {\n if (!(this.raw._ === 'message' && this.raw.groupedId !== undefined)) return null\n\n return `${this.raw.groupedId.low}|${this.raw.groupedId.high}|${getMarkedPeerId(this.raw.peerId)}`\n }\n\n /**\n * Message sender.\n *\n * Usually is a {@link User}, but can be a {@link Chat}\n * in case the message was sent by an anonymous admin, anonymous premium user,\n * or if the message is a forwarded channel post.\n *\n * If the message was sent by an anonymous admin,\n * sender will equal to {@link chat}.\n *\n * If the message is a forwarded channel post,\n * sender is the channel itself.\n */\n get sender(): Peer {\n const from = this.raw.fromId\n\n if (!from) {\n if (this.raw.peerId._ === 'peerUser') {\n return new User(this._peers.user(this.raw.peerId.userId))\n }\n\n // anon admin, return the chat\n return this.chat\n }\n\n return parsePeer(from, this._peers)\n }\n\n /**\n * Conversation the message belongs to\n */\n get chat(): Chat {\n return Chat._parseFromMessage(this.raw, this._peers)\n }\n\n /**\n * Date the message was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * If this message is a forward, contains info about it.\n */\n get forward(): MessageForwardInfo | null {\n if (this.raw._ !== 'message' || !this.raw.fwdFrom) {\n return null\n }\n\n return new MessageForwardInfo(this.raw.fwdFrom, this._peers)\n }\n\n /**\n * Whether the message is a channel post that was\n * automatically forwarded to the connected discussion group\n */\n get isAutomaticForward(): boolean {\n if (this.raw._ === 'messageService' || !this.raw.fwdFrom) return false\n\n const fwd = this.raw.fwdFrom\n\n return Boolean(\n this.chat.chatType === 'supergroup' &&\n fwd.savedFromMsgId &&\n fwd.savedFromPeer?._ === 'peerChannel' &&\n getMarkedPeerId(fwd.savedFromPeer) !== getMarkedPeerId(this.raw.peerId),\n )\n }\n\n /**\n * Information about comments (for channels) or replies (for groups)\n */\n get replies(): MessageRepliesInfo | null {\n if (this.raw._ !== 'message' || !this.raw.replies) return null\n\n return new MessageRepliesInfo(this.raw.replies, this._peers)\n }\n\n /**\n * For replies, information about the that is being replied to.\n *\n * Mutually exclusive with {@link replyToStory}\n */\n get replyToMessage(): RepliedMessageInfo | null {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return null\n\n return new RepliedMessageInfo(this.raw.replyTo, this._peers)\n }\n\n /**\n * For replies, information about the story that is being replied to\n *\n * Mutually exclusive with {@link replyToMessage}\n */\n get replyToStory(): tl.RawMessageReplyStoryHeader | null {\n if (this.raw.replyTo?._ !== 'messageReplyStoryHeader') return null\n\n return this.raw.replyTo\n }\n\n /** Whether this message is in a forum topic */\n get isTopicMessage(): boolean {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return false\n\n return this.raw.replyTo.forumTopic!\n }\n\n /**\n * Whether this message contains mention of the current user\n */\n get isMention(): boolean {\n return this.raw.mentioned!\n }\n\n /**\n * If this message is generated from an inline query,\n * information about the bot which generated it\n */\n get viaBot(): User | null {\n if (this.raw._ === 'messageService' || !this.raw.viaBotId) {\n return null\n }\n\n return new User(this._peers.user(this.raw.viaBotId))\n }\n\n /**\n * Message text or media caption.\n *\n * Empty string for service messages\n * (you should handle i18n yourself)\n */\n get text(): string {\n return this.raw._ === 'messageService' ? '' : this.raw.message\n }\n\n /**\n * Message text/caption entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities: MessageEntity[] = []\n\n if (this.raw._ === 'message' && this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n\n get textWithEntities(): TextWithEntities {\n if (this.raw._ === 'messageService') return { text: '', entities: [] }\n\n return {\n text: this.raw.message,\n entities: this.raw.entities,\n }\n }\n\n /**\n * Message action. `null` for non-service messages\n * or for unsupported events.\n *\n * For unsupported events, use `.raw.action` directly.\n */\n get action(): MessageAction | null {\n if (this.raw._ === 'message') {\n return null\n }\n\n return _messageActionFromTl.call(this, this.raw.action)\n }\n\n /**\n * Message media. `null` for text-only and service messages\n * and for unsupported media types.\n *\n * For unsupported media types, use `.raw.media` directly.\n */\n get media(): MessageMedia {\n if (this.raw._ === 'messageService' || !this.raw.media || this.raw.media._ === 'messageMediaEmpty') {\n return null\n }\n\n return _messageMediaFromTl(this._peers, this.raw.media)\n }\n\n /**\n * Whether this is a premium media\n * (e.g. >2gb file or fullscreen sticker)\n * that was forwarded without author by a non-premium user\n */\n get isForwardedPremiumMedia(): boolean {\n return this.raw._ === 'message' && this.raw.media?._ === 'messageMediaDocument' && this.raw.media.nopremium!\n }\n\n /**\n * TTL period of the message, in seconds.\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n\n /**\n * Reply markup provided with this message, if any.\n */\n get markup(): ReplyMarkup | null {\n if (this.raw._ === 'messageService' || !this.raw.replyMarkup) {\n return null\n }\n\n const rm = this.raw.replyMarkup\n\n switch (rm._) {\n case 'replyKeyboardHide':\n return {\n type: 'reply_hide',\n selective: rm.selective,\n }\n case 'replyKeyboardForceReply':\n return {\n type: 'force_reply',\n singleUse: rm.singleUse,\n selective: rm.selective,\n }\n case 'replyKeyboardMarkup':\n return {\n type: 'reply',\n resize: rm.resize,\n singleUse: rm.singleUse,\n selective: rm.selective,\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n case 'replyInlineMarkup':\n return {\n type: 'inline',\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n default:\n assertNever(rm)\n }\n }\n\n /**\n * Whether this message can be forwarded\n *\n * `false` for service mesasges and private restricted chats/chanenls\n */\n get canBeForwarded(): boolean {\n return this.raw._ === 'message' && !this.raw.noforwards\n }\n\n get reactions(): MessageReactions | null {\n if (this.raw._ === 'messageService' || !this.raw.reactions) {\n return null\n }\n\n return new MessageReactions(this.raw.id, getMarkedPeerId(this.raw.peerId), this.raw.reactions, this._peers)\n }\n\n /**\n * Generated permalink to this message, only for groups and channels\n *\n * @throws MtArgumentError In case the chat does not support message links\n */\n get link(): string {\n if (this.chat.chatType === 'supergroup' || this.chat.chatType === 'channel') {\n if (this.chat.username) {\n return `https://t.me/${this.chat.username}/${this.id}`\n }\n\n return `https://t.me/c/${toggleChannelIdMark(this.chat.id)}/${this.id}`\n }\n\n throw new MtArgumentError(`Cannot generate message link for ${this.chat.chatType}`)\n }\n}\n\nmemoizeGetters(Message, [\n 'sender',\n 'chat',\n 'forward',\n 'replies',\n 'viaBot',\n 'entities',\n 'action',\n 'media',\n 'markup',\n 'reactions',\n])\nmakeInspectable(Message, ['isScheduled'], ['link'])\n"]}
@@ -9,6 +9,8 @@ import { _messageMediaFromTl } from './message-media.js';
9
9
  * Information about a message that this message is a reply to
10
10
  */
11
11
  class RepliedMessageInfo {
12
+ raw;
13
+ _peers;
12
14
  constructor(raw, _peers) {
13
15
  this.raw = raw;
14
16
  this._peers = _peers;