@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":"iter-chat-event-log.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/iter-chat-event-log.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAMvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAuB,EACvB,MAAqB,EACrB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpD,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAEnG,MAAM,MAAM,GAAmC,KAAK,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEpH,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAA;IAExE,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA;IAErC,SAAS;QACL,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;YACjD,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,CAAC;YACrE,+DAA+D;YAC/D,KAAK,EAAE,MAAM;YACb,yCAAyC;YACzC,OAAO,EAAE,EAAE,YAAY,EAAE;SAC5B,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,MAAK;QAExB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAA;QAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;gBACjE,SAAQ;aACX;YAED,OAAO,IAAI,CAAC,CAAA;YACZ,MAAM,IAAI,CAAA;YAEV,IAAI,OAAO,IAAI,KAAK;gBAAE,MAAK;SAC9B;KACJ;AACL,CAAC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { ChatEvent, InputPeerLike } from '../../types/index.js'\nimport { normalizeChatEventFilters } from '../../types/peers/chat-event/filters.js'\nimport { toInputUser } from '../../utils/peer-utils.js'\nimport { resolveChannel } from '../users/resolve-peer.js'\nimport { resolvePeerMany } from '../users/resolve-peer-many.js'\nimport { getChatEventLog } from './get-chat-event-log.js'\n\n/**\n * Iterate over chat event log.\n *\n * Small wrapper over {@link getChatEventLog}\n *\n * @param chatId Chat ID\n * @param params\n */\nexport async function* iterChatEventLog(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: Parameters<typeof getChatEventLog>[2] & {\n /**\n * Total number of events to return.\n *\n * @default Infinity\n */\n limit?: number\n\n /**\n * Chunk size, passed as `limit` to {@link getChatEventLog}.\n * Usually you don't need to touch this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<ChatEvent> {\n if (!params) params = {}\n\n const channel = await resolveChannel(client, chatId)\n\n const { minId = Long.ZERO, query = '', limit = Infinity, chunkSize = 100, users, filters } = params\n\n const admins: tl.TypeInputUser[] | undefined = users ? await resolvePeerMany(client, users, toInputUser) : undefined\n\n const { serverFilter, localFilter } = normalizeChatEventFilters(filters)\n\n let current = 0\n let maxId = params.maxId ?? Long.ZERO\n\n for (;;) {\n const chunk = await getChatEventLog(client, channel, {\n minId,\n maxId,\n query,\n limit: localFilter ? chunkSize : Math.min(limit - current, chunkSize),\n // provide already resolved users to avoid resolving them again\n users: admins,\n // local filters may mess with pagination\n filters: { serverFilter },\n })\n\n if (!chunk.length) break\n\n const last = chunk[chunk.length - 1]\n maxId = last.id\n\n for (const item of chunk) {\n if (localFilter && (!item.action || !localFilter[item.action.type])) {\n continue\n }\n\n current += 1\n yield item\n\n if (current >= limit) break\n }\n }\n}\n"]}
1
+ {"version":3,"file":"iter-chat-event-log.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/iter-chat-event-log.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAMvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAuB,EACvB,MAAqB,EACrB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpD,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAEnG,MAAM,MAAM,GAAmC,KAAK,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEpH,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAA;IAExE,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA;IAErC,SAAS,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;YACjD,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,CAAC;YACrE,+DAA+D;YAC/D,KAAK,EAAE,MAAM;YACb,yCAAyC;YACzC,OAAO,EAAE,EAAE,YAAY,EAAE;SAC5B,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,MAAK;QAExB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAA;QAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,SAAQ;YACZ,CAAC;YAED,OAAO,IAAI,CAAC,CAAA;YACZ,MAAM,IAAI,CAAA;YAEV,IAAI,OAAO,IAAI,KAAK;gBAAE,MAAK;QAC/B,CAAC;IACL,CAAC;AACL,CAAC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { ChatEvent, InputPeerLike } from '../../types/index.js'\nimport { normalizeChatEventFilters } from '../../types/peers/chat-event/filters.js'\nimport { toInputUser } from '../../utils/peer-utils.js'\nimport { resolveChannel } from '../users/resolve-peer.js'\nimport { resolvePeerMany } from '../users/resolve-peer-many.js'\nimport { getChatEventLog } from './get-chat-event-log.js'\n\n/**\n * Iterate over chat event log.\n *\n * Small wrapper over {@link getChatEventLog}\n *\n * @param chatId Chat ID\n * @param params\n */\nexport async function* iterChatEventLog(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: Parameters<typeof getChatEventLog>[2] & {\n /**\n * Total number of events to return.\n *\n * @default Infinity\n */\n limit?: number\n\n /**\n * Chunk size, passed as `limit` to {@link getChatEventLog}.\n * Usually you don't need to touch this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<ChatEvent> {\n if (!params) params = {}\n\n const channel = await resolveChannel(client, chatId)\n\n const { minId = Long.ZERO, query = '', limit = Infinity, chunkSize = 100, users, filters } = params\n\n const admins: tl.TypeInputUser[] | undefined = users ? await resolvePeerMany(client, users, toInputUser) : undefined\n\n const { serverFilter, localFilter } = normalizeChatEventFilters(filters)\n\n let current = 0\n let maxId = params.maxId ?? Long.ZERO\n\n for (;;) {\n const chunk = await getChatEventLog(client, channel, {\n minId,\n maxId,\n query,\n limit: localFilter ? chunkSize : Math.min(limit - current, chunkSize),\n // provide already resolved users to avoid resolving them again\n users: admins,\n // local filters may mess with pagination\n filters: { serverFilter },\n })\n\n if (!chunk.length) break\n\n const last = chunk[chunk.length - 1]\n maxId = last.id\n\n for (const item of chunk) {\n if (localFilter && (!item.action || !localFilter[item.action.type])) {\n continue\n }\n\n current += 1\n yield item\n\n if (current >= limit) break\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"iter-chat-members.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/iter-chat-members.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CAClC,MAAuB,EACvB,MAAqB,EACrB,MAQC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAA;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;IACtD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IAE/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,SAAS;QACL,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;YAC/C,MAAM;YACN,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;SACpB,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAK;QAE1B,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;YACvB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAA;SACzB;QAED,MAAM,IAAI,OAAO,CAAC,MAAM,CAAA;QAExB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACrB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;YAErB,oBAAoB;YACpB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEhB,MAAM,CAAC,CAAA;YAEP,OAAO,IAAI,CAAC,CAAA;YACZ,IAAI,OAAO,IAAI,KAAK;gBAAE,OAAM;SAC/B;KACJ;AACL,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { ChatMember, InputPeerLike } from '../../types/index.js'\nimport { isInputPeerChat } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getChatMembers } from './get-chat-members.js'\n\n/**\n * Iterate through chat members\n *\n * This method is a small wrapper over {@link getChatMembers},\n * which also handles duplicate entries (i.e. does not yield\n * the same member twice)\n *\n * @param chatId Chat ID or username\n * @param params Additional parameters\n */\nexport async function* iterChatMembers(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: Parameters<typeof getChatMembers>[2] & {\n /**\n * Chunk size, which will be passed as `limit` parameter\n * to {@link getChatMembers}. Usually you shouldn't care about this.\n *\n * @default `200`\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<ChatMember> {\n if (!params) params = {}\n\n let current = 0\n let total = params.limit || Infinity\n const limit = Math.min(params.chunkSize ?? 200, total)\n let offset = params.offset ?? 0\n\n const yielded = new Set()\n const chat = await resolvePeer(client, chatId)\n\n for (;;) {\n const members = await getChatMembers(client, chat, {\n offset,\n limit,\n query: params.query,\n type: params.type,\n })\n\n if (!members.length) break\n\n if (isInputPeerChat(chat)) {\n total = members.length\n }\n\n offset += members.length\n\n for (const m of members) {\n const uid = m.user.id\n\n // handle duplicates\n if (yielded.has(uid)) continue\n yielded.add(uid)\n\n yield m\n\n current += 1\n if (current >= total) return\n }\n }\n}\n"]}
1
+ {"version":3,"file":"iter-chat-members.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/iter-chat-members.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CAClC,MAAuB,EACvB,MAAqB,EACrB,MAQC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAA;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;IACtD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IAE/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,SAAS,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;YAC/C,MAAM;YACN,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;SACpB,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAK;QAE1B,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAA;QAC1B,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,MAAM,CAAA;QAExB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;YAErB,oBAAoB;YACpB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEhB,MAAM,CAAC,CAAA;YAEP,OAAO,IAAI,CAAC,CAAA;YACZ,IAAI,OAAO,IAAI,KAAK;gBAAE,OAAM;QAChC,CAAC;IACL,CAAC;AACL,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { ChatMember, InputPeerLike } from '../../types/index.js'\nimport { isInputPeerChat } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { getChatMembers } from './get-chat-members.js'\n\n/**\n * Iterate through chat members\n *\n * This method is a small wrapper over {@link getChatMembers},\n * which also handles duplicate entries (i.e. does not yield\n * the same member twice)\n *\n * @param chatId Chat ID or username\n * @param params Additional parameters\n */\nexport async function* iterChatMembers(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: Parameters<typeof getChatMembers>[2] & {\n /**\n * Chunk size, which will be passed as `limit` parameter\n * to {@link getChatMembers}. Usually you shouldn't care about this.\n *\n * @default `200`\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<ChatMember> {\n if (!params) params = {}\n\n let current = 0\n let total = params.limit || Infinity\n const limit = Math.min(params.chunkSize ?? 200, total)\n let offset = params.offset ?? 0\n\n const yielded = new Set()\n const chat = await resolvePeer(client, chatId)\n\n for (;;) {\n const members = await getChatMembers(client, chat, {\n offset,\n limit,\n query: params.query,\n type: params.type,\n })\n\n if (!members.length) break\n\n if (isInputPeerChat(chat)) {\n total = members.length\n }\n\n offset += members.length\n\n for (const m of members) {\n const uid = m.user.id\n\n // handle duplicates\n if (yielded.has(uid)) continue\n yielded.add(uid)\n\n yield m\n\n current += 1\n if (current >= total) return\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"join-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/join-chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAuB,EAAE,MAAqB;IACzE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAEzC,IAAI,CAAC,EAAE;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC1B,CAAC,EAAE,2BAA2B;gBAC9B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACb,CAAC,CAAA;YACF,oBAAoB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAEtD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAE9B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SAChC;KACJ;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,sBAAsB;QACzB,OAAO,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;KAChD,CAAC,CAAA;IAEF,oBAAoB,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAE9B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Chat, InputPeerLike } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { INVITE_LINK_REGEX } from '../../utils/peer-utils.js'\nimport { resolveChannel } from '../users/resolve-peer.js'\n\n/**\n * Join a channel or supergroup\n *\n * When using with invite links, this method may throw RPC error\n * `INVITE_REQUEST_SENT`, which means that you need to wait for admin approval.\n * You will get into the chat once they do so.\n *\n * @param chatId\n * Chat identifier. Either an invite link (`t.me/joinchat/*`), a username (`@username`)\n * or ID of the linked supergroup or channel.\n */\nexport async function joinChat(client: ITelegramClient, chatId: InputPeerLike): Promise<Chat> {\n if (typeof chatId === 'string') {\n const m = chatId.match(INVITE_LINK_REGEX)\n\n if (m) {\n const res = await client.call({\n _: 'messages.importChatInvite',\n hash: m[1],\n })\n assertIsUpdatesGroup('messages.importChatInvite', res)\n\n client.handleClientUpdate(res)\n\n return new Chat(res.chats[0])\n }\n }\n\n const res = await client.call({\n _: 'channels.joinChannel',\n channel: await resolveChannel(client, chatId),\n })\n\n assertIsUpdatesGroup('channels.joinChannel', res)\n\n client.handleClientUpdate(res)\n\n return new Chat(res.chats[0])\n}\n"]}
1
+ {"version":3,"file":"join-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/join-chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAuB,EAAE,MAAqB;IACzE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAEzC,IAAI,CAAC,EAAE,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC1B,CAAC,EAAE,2BAA2B;gBAC9B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACb,CAAC,CAAA;YACF,oBAAoB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAEtD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAE9B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,sBAAsB;QACzB,OAAO,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;KAChD,CAAC,CAAA;IAEF,oBAAoB,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAE9B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Chat, InputPeerLike } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { INVITE_LINK_REGEX } from '../../utils/peer-utils.js'\nimport { resolveChannel } from '../users/resolve-peer.js'\n\n/**\n * Join a channel or supergroup\n *\n * When using with invite links, this method may throw RPC error\n * `INVITE_REQUEST_SENT`, which means that you need to wait for admin approval.\n * You will get into the chat once they do so.\n *\n * @param chatId\n * Chat identifier. Either an invite link (`t.me/joinchat/*`), a username (`@username`)\n * or ID of the linked supergroup or channel.\n */\nexport async function joinChat(client: ITelegramClient, chatId: InputPeerLike): Promise<Chat> {\n if (typeof chatId === 'string') {\n const m = chatId.match(INVITE_LINK_REGEX)\n\n if (m) {\n const res = await client.call({\n _: 'messages.importChatInvite',\n hash: m[1],\n })\n assertIsUpdatesGroup('messages.importChatInvite', res)\n\n client.handleClientUpdate(res)\n\n return new Chat(res.chats[0])\n }\n }\n\n const res = await client.call({\n _: 'channels.joinChannel',\n channel: await resolveChannel(client, chatId),\n })\n\n assertIsUpdatesGroup('channels.joinChannel', res)\n\n client.handleClientUpdate(res)\n\n return new Chat(res.chats[0])\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"kick-chat-member.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/kick-chat-member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAuB,EACvB,MAKC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAE9E,4CAA4C;IAC5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC1B,qDAAqD;QACrD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;KACvE;IAED,OAAO,GAAG,CAAA;AACd,CAAC","sourcesContent":["import { sleep } from '../../../utils/misc-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message } from '../../types/index.js'\nimport { isInputPeerChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { banChatMember } from './ban-chat-member.js'\nimport { unbanChatMember } from './unban-chat-member.js'\n\n/**\n * Kick a user from a chat.\n *\n * This effectively bans a user and immediately unbans them.\n *\n * @returns Service message about removed user, if one was generated.\n */\nexport async function kickChatMember(\n client: ITelegramClient,\n params: {\n /** Chat ID */\n chatId: InputPeerLike\n /** User ID */\n userId: InputPeerLike\n },\n): Promise<Message | null> {\n const { chatId, userId } = params\n\n const chat = await resolvePeer(client, chatId)\n const user = await resolvePeer(client, userId)\n\n const msg = await banChatMember(client, { chatId: chat, participantId: user })\n\n // not needed in case this is a legacy group\n if (isInputPeerChannel(chat)) {\n // i fucking love telegram serverside race conditions\n await sleep(1000)\n await unbanChatMember(client, { chatId: chat, participantId: user })\n }\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"kick-chat-member.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/kick-chat-member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAuB,EACvB,MAKC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAE9E,4CAA4C;IAC5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,qDAAqD;QACrD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC","sourcesContent":["import { sleep } from '../../../utils/misc-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message } from '../../types/index.js'\nimport { isInputPeerChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { banChatMember } from './ban-chat-member.js'\nimport { unbanChatMember } from './unban-chat-member.js'\n\n/**\n * Kick a user from a chat.\n *\n * This effectively bans a user and immediately unbans them.\n *\n * @returns Service message about removed user, if one was generated.\n */\nexport async function kickChatMember(\n client: ITelegramClient,\n params: {\n /** Chat ID */\n chatId: InputPeerLike\n /** User ID */\n userId: InputPeerLike\n },\n): Promise<Message | null> {\n const { chatId, userId } = params\n\n const chat = await resolvePeer(client, chatId)\n const user = await resolvePeer(client, userId)\n\n const msg = await banChatMember(client, { chatId: chat, participantId: user })\n\n // not needed in case this is a legacy group\n if (isInputPeerChannel(chat)) {\n // i fucking love telegram serverside race conditions\n await sleep(1000)\n await unbanChatMember(client, { chatId: chat, participantId: user })\n }\n\n return msg\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"leave-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/leave-chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,MAKC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,uBAAuB;YAC1B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;KACjC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,yBAAyB;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE;SACjC,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAE9B,IAAI,MAAM,EAAE,KAAK,EAAE;YACf,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;SACpC;KACJ;;QAAM,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AACtE,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { deleteHistory } from './delete-history.js'\n\n/**\n * Leave a group chat, supergroup or channel\n *\n * @param chatId Chat ID or username\n */\nexport async function leaveChat(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: {\n /**\n * Whether to clear history after leaving (only for legacy group chats)\n */\n clear?: boolean\n },\n): Promise<void> {\n const chat = await resolvePeer(client, chatId)\n\n if (isInputPeerChannel(chat)) {\n const res = await client.call({\n _: 'channels.leaveChannel',\n channel: toInputChannel(chat),\n })\n client.handleClientUpdate(res)\n } else if (isInputPeerChat(chat)) {\n const res = await client.call({\n _: 'messages.deleteChatUser',\n chatId: chat.chatId,\n userId: { _: 'inputUserSelf' },\n })\n client.handleClientUpdate(res)\n\n if (params?.clear) {\n await deleteHistory(client, chat)\n }\n } else throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n}\n"]}
1
+ {"version":3,"file":"leave-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/leave-chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,MAKC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,uBAAuB;YAC1B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,yBAAyB;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE;SACjC,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAE9B,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAChB,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;;QAAM,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AACtE,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { deleteHistory } from './delete-history.js'\n\n/**\n * Leave a group chat, supergroup or channel\n *\n * @param chatId Chat ID or username\n */\nexport async function leaveChat(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params?: {\n /**\n * Whether to clear history after leaving (only for legacy group chats)\n */\n clear?: boolean\n },\n): Promise<void> {\n const chat = await resolvePeer(client, chatId)\n\n if (isInputPeerChannel(chat)) {\n const res = await client.call({\n _: 'channels.leaveChannel',\n channel: toInputChannel(chat),\n })\n client.handleClientUpdate(res)\n } else if (isInputPeerChat(chat)) {\n const res = await client.call({\n _: 'messages.deleteChatUser',\n chatId: chat.chatId,\n userId: { _: 'inputUserSelf' },\n })\n client.handleClientUpdate(res)\n\n if (params?.clear) {\n await deleteHistory(client, chat)\n }\n } else throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/open-chat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAuB,EAAE,IAAmB;IACvE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEnD,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACnE;IAED,6DAA6D;IAC7D,4EAA4E;AAChF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAmB;IACxE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KACnD;IAED,6DAA6D;IAC7D,4EAA4E;AAChF,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { isInputPeerChannel } from '../../utils/peer-utils.js'\nimport { getPeerDialogs } from '../dialogs/get-peer-dialogs.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Inform the library that the user has opened a chat.\n *\n * Some library logic depends on this, for example, the library will\n * periodically ping the server to keep the updates flowing.\n *\n * @param chat Chat to open\n */\nexport async function openChat(client: ITelegramClient, chat: InputPeerLike): Promise<void> {\n const peer = await resolvePeer(client, chat)\n\n if (isInputPeerChannel(peer)) {\n const [dialog] = await getPeerDialogs(client, peer)\n\n await client.notifyChannelOpened(peer.channelId, dialog.raw.pts)\n }\n\n // todo: once we have proper dialogs/peers db, we should also\n // update full info here and fetch auxillary info (like channel members etc)\n}\n\n/**\n * Inform the library that the user has closed a chat.\n * Un-does the effect of {@link openChat}.\n *\n * Some library logic depends on this, for example, the library will\n * periodically ping the server to keep the updates flowing.\n *\n * @param chat Chat to open\n */\nexport async function closeChat(client: ITelegramClient, chat: InputPeerLike): Promise<void> {\n const peer = await resolvePeer(client, chat)\n\n if (isInputPeerChannel(peer)) {\n await client.notifyChannelClosed(peer.channelId)\n }\n\n // todo: once we have proper dialogs/peers db, we should also\n // update full info here and fetch auxillary info (like channel members etc)\n}\n"]}
1
+ {"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/open-chat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAuB,EAAE,IAAmB;IACvE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEnD,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACpE,CAAC;IAED,6DAA6D;IAC7D,4EAA4E;AAChF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAmB;IACxE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpD,CAAC;IAED,6DAA6D;IAC7D,4EAA4E;AAChF,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { isInputPeerChannel } from '../../utils/peer-utils.js'\nimport { getPeerDialogs } from '../dialogs/get-peer-dialogs.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Inform the library that the user has opened a chat.\n *\n * Some library logic depends on this, for example, the library will\n * periodically ping the server to keep the updates flowing.\n *\n * @param chat Chat to open\n */\nexport async function openChat(client: ITelegramClient, chat: InputPeerLike): Promise<void> {\n const peer = await resolvePeer(client, chat)\n\n if (isInputPeerChannel(peer)) {\n const [dialog] = await getPeerDialogs(client, peer)\n\n await client.notifyChannelOpened(peer.channelId, dialog.raw.pts)\n }\n\n // todo: once we have proper dialogs/peers db, we should also\n // update full info here and fetch auxillary info (like channel members etc)\n}\n\n/**\n * Inform the library that the user has closed a chat.\n * Un-does the effect of {@link openChat}.\n *\n * Some library logic depends on this, for example, the library will\n * periodically ping the server to keep the updates flowing.\n *\n * @param chat Chat to open\n */\nexport async function closeChat(client: ITelegramClient, chat: InputPeerLike): Promise<void> {\n const peer = await resolvePeer(client, chat)\n\n if (isInputPeerChannel(peer)) {\n await client.notifyChannelClosed(peer.channelId)\n }\n\n // todo: once we have proper dialogs/peers db, we should also\n // update full info here and fetch auxillary info (like channel members etc)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reorder-usernames.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/reorder-usernames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAuB,EACvB,MAAqB,EACrB,KAAe;IAEf,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;QACvB,uBAAuB;QAEvB,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAC1B,OAAO;YACP,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACxB,CAAC,EAAE,0BAA0B;gBAC7B,KAAK;aACR,CAAC,CAAA;YAEF,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;YAEzC,OAAM;SACT;QAED,MAAM;QACN,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,uBAAuB;YAC1B,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;YAC9B,KAAK;SACR,CAAC,CAAA;QAEF,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;KACzC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,2BAA2B;YAC9B,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;YACrC,KAAK;SACR,CAAC,CAAA;QAEF,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAA;KAC7C;AACL,CAAC","sourcesContent":["import { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerUser, toInputChannel, toInputUser } from '../../utils/index.js'\nimport { isSelfPeer } from '../auth/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Reorder usernames\n *\n * @param peerId Bot, channel or \"me\"/\"self\"\n */\nexport async function reorderUsernames(\n client: ITelegramClient,\n peerId: InputPeerLike,\n order: string[],\n): Promise<void> {\n const peer = await resolvePeer(client, peerId)\n\n if (isInputPeerUser(peer)) {\n // either a bot or self\n\n if (isSelfPeer(client, peer)) {\n // self\n const r = await client.call({\n _: 'account.reorderUsernames',\n order,\n })\n\n assertTrue('account.reorderUsernames', r)\n\n return\n }\n\n // bot\n const r = await client.call({\n _: 'bots.reorderUsernames',\n bot: toInputUser(peer, peerId),\n order,\n })\n\n assertTrue('bots.reorderUsernames', r)\n } else if (isInputPeerChannel(peer)) {\n const r = await client.call({\n _: 'channels.reorderUsernames',\n channel: toInputChannel(peer, peerId),\n order,\n })\n\n assertTrue('channels.reorderUsernames', r)\n }\n}\n"]}
1
+ {"version":3,"file":"reorder-usernames.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/reorder-usernames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAuB,EACvB,MAAqB,EACrB,KAAe;IAEf,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,uBAAuB;QAEvB,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO;YACP,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACxB,CAAC,EAAE,0BAA0B;gBAC7B,KAAK;aACR,CAAC,CAAA;YAEF,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;YAEzC,OAAM;QACV,CAAC;QAED,MAAM;QACN,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,uBAAuB;YAC1B,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;YAC9B,KAAK;SACR,CAAC,CAAA;QAEF,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;IAC1C,CAAC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,2BAA2B;YAC9B,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;YACrC,KAAK;SACR,CAAC,CAAA;QAEF,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC;AACL,CAAC","sourcesContent":["import { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerUser, toInputChannel, toInputUser } from '../../utils/index.js'\nimport { isSelfPeer } from '../auth/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Reorder usernames\n *\n * @param peerId Bot, channel or \"me\"/\"self\"\n */\nexport async function reorderUsernames(\n client: ITelegramClient,\n peerId: InputPeerLike,\n order: string[],\n): Promise<void> {\n const peer = await resolvePeer(client, peerId)\n\n if (isInputPeerUser(peer)) {\n // either a bot or self\n\n if (isSelfPeer(client, peer)) {\n // self\n const r = await client.call({\n _: 'account.reorderUsernames',\n order,\n })\n\n assertTrue('account.reorderUsernames', r)\n\n return\n }\n\n // bot\n const r = await client.call({\n _: 'bots.reorderUsernames',\n bot: toInputUser(peer, peerId),\n order,\n })\n\n assertTrue('bots.reorderUsernames', r)\n } else if (isInputPeerChannel(peer)) {\n const r = await client.call({\n _: 'channels.reorderUsernames',\n channel: toInputChannel(peer, peerId),\n order,\n })\n\n assertTrue('channels.reorderUsernames', r)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"restrict-chat-member.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/restrict-chat-member.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAuB,EACvB,MAwBC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;IAE1D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KACtD;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,qBAAqB;QACxB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE;YACV,CAAC,EAAE,kBAAkB;YACrB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YACpC,GAAG,YAAY;SAClB;KACJ,CAAC,CAAA;IACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { isInputPeerChannel, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Restrict a user in a supergroup.\n */\nexport async function restrictChatMember(\n client: ITelegramClient,\n params: {\n /** Chat ID */\n chatId: InputPeerLike\n\n /** User ID */\n userId: InputPeerLike\n\n /**\n * Restrictions for the user. Note that unlike Bot API, this object contains\n * the restrictions, and not the permissions, i.e.\n * passing `sendMessages=true` will disallow the user to send messages,\n * and passing `{}` (empty object) will lift any restrictions\n */\n restrictions: Omit<tl.RawChatBannedRights, '_' | 'untilDate'>\n\n /**\n * Date when the user will be unrestricted.\n * When `number` is passed, UNIX time in ms is expected.\n * If this value is less than 30 seconds or more than 366 days in\n * the future, user will be restricted forever.\n *\n * @default `0`, i.e. forever\n */\n until?: number | Date\n },\n): Promise<void> {\n const { chatId, userId, restrictions, until = 0 } = params\n\n const chat = await resolvePeer(client, chatId)\n\n if (!isInputPeerChannel(chat)) {\n throw new MtInvalidPeerTypeError(chatId, 'channel')\n }\n\n const user = await resolvePeer(client, userId)\n\n const res = await client.call({\n _: 'channels.editBanned',\n channel: toInputChannel(chat),\n participant: user,\n bannedRights: {\n _: 'chatBannedRights',\n untilDate: normalizeDate(until) ?? 0,\n ...restrictions,\n },\n })\n client.handleClientUpdate(res)\n}\n"]}
1
+ {"version":3,"file":"restrict-chat-member.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/restrict-chat-member.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAuB,EACvB,MAwBC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAA;IAE1D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,qBAAqB;QACxB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE;YACV,CAAC,EAAE,kBAAkB;YACrB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YACpC,GAAG,YAAY;SAClB;KACJ,CAAC,CAAA;IACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { isInputPeerChannel, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Restrict a user in a supergroup.\n */\nexport async function restrictChatMember(\n client: ITelegramClient,\n params: {\n /** Chat ID */\n chatId: InputPeerLike\n\n /** User ID */\n userId: InputPeerLike\n\n /**\n * Restrictions for the user. Note that unlike Bot API, this object contains\n * the restrictions, and not the permissions, i.e.\n * passing `sendMessages=true` will disallow the user to send messages,\n * and passing `{}` (empty object) will lift any restrictions\n */\n restrictions: Omit<tl.RawChatBannedRights, '_' | 'untilDate'>\n\n /**\n * Date when the user will be unrestricted.\n * When `number` is passed, UNIX time in ms is expected.\n * If this value is less than 30 seconds or more than 366 days in\n * the future, user will be restricted forever.\n *\n * @default `0`, i.e. forever\n */\n until?: number | Date\n },\n): Promise<void> {\n const { chatId, userId, restrictions, until = 0 } = params\n\n const chat = await resolvePeer(client, chatId)\n\n if (!isInputPeerChannel(chat)) {\n throw new MtInvalidPeerTypeError(chatId, 'channel')\n }\n\n const user = await resolvePeer(client, userId)\n\n const res = await client.call({\n _: 'channels.editBanned',\n channel: toInputChannel(chat),\n participant: user,\n bannedRights: {\n _: 'chatBannedRights',\n untilDate: normalizeDate(until) ?? 0,\n ...restrictions,\n },\n })\n client.handleClientUpdate(res)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"save-draft.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/save-draft.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,KAAoD;IAEpD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,KAAK,EAAE;QACP,MAAM,MAAM,CAAC,IAAI,CAAC;YACd,CAAC,EAAE,oBAAoB;YACvB,IAAI;YACJ,GAAG,KAAK;SACX,CAAC,CAAA;KACL;SAAM;QACH,MAAM,MAAM,CAAC,IAAI,CAAC;YACd,CAAC,EAAE,oBAAoB;YACvB,IAAI;YACJ,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;KACL;AACL,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Save or delete a draft message associated with some chat\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param draft Draft message, or `null` to delete.\n */\nexport async function saveDraft(\n client: ITelegramClient,\n chatId: InputPeerLike,\n draft: null | Omit<tl.RawDraftMessage, '_' | 'date'>,\n): Promise<void> {\n const peer = await resolvePeer(client, chatId)\n\n if (draft) {\n await client.call({\n _: 'messages.saveDraft',\n peer,\n ...draft,\n })\n } else {\n await client.call({\n _: 'messages.saveDraft',\n peer,\n message: '',\n })\n }\n}\n"]}
1
+ {"version":3,"file":"save-draft.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/save-draft.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,KAAoD;IAEpD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,MAAM,CAAC,IAAI,CAAC;YACd,CAAC,EAAE,oBAAoB;YACvB,IAAI;YACJ,GAAG,KAAK;SACX,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,CAAC;YACd,CAAC,EAAE,oBAAoB;YACvB,IAAI;YACJ,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;IACN,CAAC;AACL,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Save or delete a draft message associated with some chat\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param draft Draft message, or `null` to delete.\n */\nexport async function saveDraft(\n client: ITelegramClient,\n chatId: InputPeerLike,\n draft: null | Omit<tl.RawDraftMessage, '_' | 'date'>,\n): Promise<void> {\n const peer = await resolvePeer(client, chatId)\n\n if (draft) {\n await client.call({\n _: 'messages.saveDraft',\n peer,\n ...draft,\n })\n } else {\n await client.call({\n _: 'messages.saveDraft',\n peer,\n message: '',\n })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"set-chat-color.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/set-chat-color.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,kBAAkB;AAClB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,MAkCC;IAED,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IAE3D,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,sBAAsB;YACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,iBAAiB;SACpB,CAAC,CAAA;QAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAE9B,OAAM;KACT;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;SACjE;QAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,qBAAqB;YACxB,KAAK;YACL,iBAAiB;YACjB,UAAU;SACb,CAAC,CAAA;QAEF,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;KACvC;IAED,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAC5D,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerUser, toInputChannel } from '../../utils/index.js'\nimport { isSelfPeer } from '../auth/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @available=user\n/**\n * Set peer color and optionally background pattern\n */\nexport async function setChatColor(\n client: ITelegramClient,\n params: {\n /**\n * Peer where to update the color.\n *\n * By default will change the color for the current user\n */\n peer?: InputPeerLike\n\n /**\n * Color identificator\n *\n * Note that this value is **not** an RGB color representation. Instead, it is\n * a number which should be used to pick a color from a predefined\n * list of colors:\n * - `0-6` are the default colors used by Telegram clients:\n * `red, orange, purple, green, sea, blue, pink`\n * - `>= 7` are returned by `help.getAppConfig`.\n */\n color: number\n\n /**\n * Background pattern emoji ID.\n *\n * Must be an adaptive emoji, otherwise the request will fail.\n */\n backgroundEmojiId?: tl.Long\n\n /**\n * Whether to set this color for the profile\n * header instead of chat name/replies.\n *\n * Currently only available for the current user.\n */\n forProfile?: boolean\n },\n): Promise<void> {\n const { color, backgroundEmojiId, forProfile } = params\n const peer = await resolvePeer(client, params.peer ?? 'me')\n\n if (isInputPeerChannel(peer)) {\n const res = await client.call({\n _: 'channels.updateColor',\n channel: toInputChannel(peer),\n color,\n backgroundEmojiId,\n })\n\n client.handleClientUpdate(res)\n\n return\n }\n\n if (isInputPeerUser(peer)) {\n if (!isSelfPeer(client, peer)) {\n throw new MtTypeAssertionError('setChatColor', 'self', peer._)\n }\n\n const r = await client.call({\n _: 'account.updateColor',\n color,\n backgroundEmojiId,\n forProfile,\n })\n\n assertTrue('account.updateColor', r)\n }\n\n throw new MtInvalidPeerTypeError(peer, 'channel | user')\n}\n"]}
1
+ {"version":3,"file":"set-chat-color.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/set-chat-color.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,kBAAkB;AAClB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,MAkCC;IAED,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IAE3D,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,sBAAsB;YACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,iBAAiB;SACpB,CAAC,CAAA;QAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAE9B,OAAM;IACV,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,qBAAqB;YACxB,KAAK;YACL,iBAAiB;YACjB,UAAU;SACb,CAAC,CAAA;QAEF,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAC5D,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerUser, toInputChannel } from '../../utils/index.js'\nimport { isSelfPeer } from '../auth/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @available=user\n/**\n * Set peer color and optionally background pattern\n */\nexport async function setChatColor(\n client: ITelegramClient,\n params: {\n /**\n * Peer where to update the color.\n *\n * By default will change the color for the current user\n */\n peer?: InputPeerLike\n\n /**\n * Color identificator\n *\n * Note that this value is **not** an RGB color representation. Instead, it is\n * a number which should be used to pick a color from a predefined\n * list of colors:\n * - `0-6` are the default colors used by Telegram clients:\n * `red, orange, purple, green, sea, blue, pink`\n * - `>= 7` are returned by `help.getAppConfig`.\n */\n color: number\n\n /**\n * Background pattern emoji ID.\n *\n * Must be an adaptive emoji, otherwise the request will fail.\n */\n backgroundEmojiId?: tl.Long\n\n /**\n * Whether to set this color for the profile\n * header instead of chat name/replies.\n *\n * Currently only available for the current user.\n */\n forProfile?: boolean\n },\n): Promise<void> {\n const { color, backgroundEmojiId, forProfile } = params\n const peer = await resolvePeer(client, params.peer ?? 'me')\n\n if (isInputPeerChannel(peer)) {\n const res = await client.call({\n _: 'channels.updateColor',\n channel: toInputChannel(peer),\n color,\n backgroundEmojiId,\n })\n\n client.handleClientUpdate(res)\n\n return\n }\n\n if (isInputPeerUser(peer)) {\n if (!isSelfPeer(client, peer)) {\n throw new MtTypeAssertionError('setChatColor', 'self', peer._)\n }\n\n const r = await client.call({\n _: 'account.updateColor',\n color,\n backgroundEmojiId,\n forProfile,\n })\n\n assertTrue('account.updateColor', r)\n }\n\n throw new MtInvalidPeerTypeError(peer, 'channel | user')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"set-chat-photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/set-chat-photo.ts"],"names":[],"mappings":"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","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputFileLike, InputPeerLike, isUploadedFile, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { fileIdToInputPhoto } from '../../utils/convert-file-id.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { uploadFile } from '../files/upload-file.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Set a new chat photo or video.\n *\n * You must be an administrator and have the appropriate permissions.\n */\nexport async function setChatPhoto(\n client: ITelegramClient,\n params: {\n /** Chat ID or username */\n chatId: InputPeerLike\n\n /** Media type (photo or video) */\n\n type: 'photo' | 'video'\n\n /** Input media file */\n media: InputFileLike\n /**\n * When `type = video`, timestamp in seconds which will be shown\n * as a static preview.\n */\n previewSec?: number\n },\n): Promise<void> {\n const { chatId, type, media, previewSec } = params\n\n const chat = await resolvePeer(client, chatId)\n\n if (!(isInputPeerChannel(chat) || isInputPeerChat(chat))) {\n throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n }\n\n let photo: tl.TypeInputChatPhoto | undefined = undefined\n\n let inputFile: tl.TypeInputFile\n\n if (tdFileId.isFileIdLike(media)) {\n if (typeof media === 'string' && media.match(/^https?:\\/\\//)) {\n throw new MtArgumentError(\"Chat photo can't be external\")\n }\n if (typeof media === 'string' && media.match(/^file:/)) {\n const uploaded = await uploadFile(client, {\n file: media.substring(5),\n })\n inputFile = uploaded.inputFile\n } else {\n const input = fileIdToInputPhoto(media)\n photo = {\n _: 'inputChatPhoto',\n id: input,\n }\n }\n } else if (typeof media === 'object' && tl.isAnyInputMedia(media)) {\n if (media._ === 'inputMediaPhoto') {\n photo = {\n _: 'inputChatPhoto',\n id: media.id,\n }\n } else throw new MtArgumentError(\"Chat photo can't be InputMedia\")\n } else if (isUploadedFile(media)) {\n inputFile = media.inputFile\n } else if (typeof media === 'object' && tl.isAnyInputFile(media)) {\n inputFile = media\n } else {\n const uploaded = await uploadFile(client, {\n file: media,\n })\n inputFile = uploaded.inputFile\n }\n\n if (!photo) {\n photo = {\n _: 'inputChatUploadedPhoto',\n [type === 'photo' ? 'file' : 'video']: inputFile!,\n videoStartTs: previewSec,\n }\n }\n\n let res\n\n if (isInputPeerChat(chat)) {\n res = await client.call({\n _: 'messages.editChatPhoto',\n chatId: chat.chatId,\n photo,\n })\n } else {\n res = await client.call({\n _: 'channels.editPhoto',\n channel: toInputChannel(chat),\n photo,\n })\n }\n client.handleClientUpdate(res)\n}\n"]}
1
+ {"version":3,"file":"set-chat-photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/set-chat-photo.ts"],"names":[],"mappings":"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","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputFileLike, InputPeerLike, isUploadedFile, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { fileIdToInputPhoto } from '../../utils/convert-file-id.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { uploadFile } from '../files/upload-file.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Set a new chat photo or video.\n *\n * You must be an administrator and have the appropriate permissions.\n */\nexport async function setChatPhoto(\n client: ITelegramClient,\n params: {\n /** Chat ID or username */\n chatId: InputPeerLike\n\n /** Media type (photo or video) */\n\n type: 'photo' | 'video'\n\n /** Input media file */\n media: InputFileLike\n /**\n * When `type = video`, timestamp in seconds which will be shown\n * as a static preview.\n */\n previewSec?: number\n },\n): Promise<void> {\n const { chatId, type, media, previewSec } = params\n\n const chat = await resolvePeer(client, chatId)\n\n if (!(isInputPeerChannel(chat) || isInputPeerChat(chat))) {\n throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n }\n\n let photo: tl.TypeInputChatPhoto | undefined = undefined\n\n let inputFile: tl.TypeInputFile\n\n if (tdFileId.isFileIdLike(media)) {\n if (typeof media === 'string' && media.match(/^https?:\\/\\//)) {\n throw new MtArgumentError(\"Chat photo can't be external\")\n }\n if (typeof media === 'string' && media.match(/^file:/)) {\n const uploaded = await uploadFile(client, {\n file: media.substring(5),\n })\n inputFile = uploaded.inputFile\n } else {\n const input = fileIdToInputPhoto(media)\n photo = {\n _: 'inputChatPhoto',\n id: input,\n }\n }\n } else if (typeof media === 'object' && tl.isAnyInputMedia(media)) {\n if (media._ === 'inputMediaPhoto') {\n photo = {\n _: 'inputChatPhoto',\n id: media.id,\n }\n } else throw new MtArgumentError(\"Chat photo can't be InputMedia\")\n } else if (isUploadedFile(media)) {\n inputFile = media.inputFile\n } else if (typeof media === 'object' && tl.isAnyInputFile(media)) {\n inputFile = media\n } else {\n const uploaded = await uploadFile(client, {\n file: media,\n })\n inputFile = uploaded.inputFile\n }\n\n if (!photo) {\n photo = {\n _: 'inputChatUploadedPhoto',\n [type === 'photo' ? 'file' : 'video']: inputFile!,\n videoStartTs: previewSec,\n }\n }\n\n let res\n\n if (isInputPeerChat(chat)) {\n res = await client.call({\n _: 'messages.editChatPhoto',\n chatId: chat.chatId,\n photo,\n })\n } else {\n res = await client.call({\n _: 'channels.editPhoto',\n channel: toInputChannel(chat),\n photo,\n })\n }\n client.handleClientUpdate(res)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"set-chat-title.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/set-chat-title.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAuB,EAAE,MAAqB,EAAE,KAAa;IAC5F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,GAAG,CAAA;IACP,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;QACvB,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,wBAAwB;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;SACR,CAAC,CAAA;KACL;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QACjC,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,oBAAoB;YACvB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;SACR,CAAC,CAAA;KACL;;QAAM,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAElE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Change chat title\n *\n * You must be an administrator and have the appropriate permissions.\n *\n * @param chatId Chat ID or username\n * @param title New chat title, 1-255 characters\n */\nexport async function setChatTitle(client: ITelegramClient, chatId: InputPeerLike, title: string): Promise<void> {\n const chat = await resolvePeer(client, chatId)\n\n let res\n if (isInputPeerChat(chat)) {\n res = await client.call({\n _: 'messages.editChatTitle',\n chatId: chat.chatId,\n title,\n })\n } else if (isInputPeerChannel(chat)) {\n res = await client.call({\n _: 'channels.editTitle',\n channel: toInputChannel(chat),\n title,\n })\n } else throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n\n client.handleClientUpdate(res)\n}\n"]}
1
+ {"version":3,"file":"set-chat-title.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/set-chat-title.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAuB,EAAE,MAAqB,EAAE,KAAa;IAC5F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,GAAG,CAAA;IACP,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,wBAAwB;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;SACR,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,oBAAoB;YACvB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;SACR,CAAC,CAAA;IACN,CAAC;;QAAM,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAElE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Change chat title\n *\n * You must be an administrator and have the appropriate permissions.\n *\n * @param chatId Chat ID or username\n * @param title New chat title, 1-255 characters\n */\nexport async function setChatTitle(client: ITelegramClient, chatId: InputPeerLike, title: string): Promise<void> {\n const chat = await resolvePeer(client, chatId)\n\n let res\n if (isInputPeerChat(chat)) {\n res = await client.call({\n _: 'messages.editChatTitle',\n chatId: chat.chatId,\n title,\n })\n } else if (isInputPeerChannel(chat)) {\n res = await client.call({\n _: 'channels.editTitle',\n channel: toInputChannel(chat),\n title,\n })\n } else throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n\n client.handleClientUpdate(res)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-fragment-username.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/toggle-fragment-username.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAuB,EACvB,MAaC;IAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;QACvB,uBAAuB;QAEvB,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAC1B,OAAO;YACP,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACxB,CAAC,EAAE,wBAAwB;gBAC3B,QAAQ;gBACR,MAAM;aACT,CAAC,CAAA;YAEF,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;YAEvC,OAAM;SACT;QAED,MAAM;QACN,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,qBAAqB;YACxB,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;YAC9B,QAAQ;YACR,MAAM;SACT,CAAC,CAAA;QAEF,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;KACvC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,yBAAyB;YAC5B,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;YACrC,QAAQ;YACR,MAAM;SACT,CAAC,CAAA;QAEF,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;KAC3C;AACL,CAAC","sourcesContent":["import { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerUser, toInputChannel, toInputUser } from '../../utils/index.js'\nimport { isSelfPeer } from '../auth/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Toggle a collectible (Fragment) username\n *\n * > **Note**: non-collectible usernames must still be changed\n * > using {@link setUsername}/{@link setChatUsername}\n */\nexport async function toggleFragmentUsername(\n client: ITelegramClient,\n params: {\n /** Peer ID whose username to toggle */\n peerId: InputPeerLike\n\n /**\n * Username to toggle\n */\n username: string\n\n /**\n * Whether to enable or disable the username\n */\n active: boolean\n },\n): Promise<void> {\n const { peerId, username, active } = params\n\n const peer = await resolvePeer(client, peerId)\n\n if (isInputPeerUser(peer)) {\n // either a bot or self\n\n if (isSelfPeer(client, peer)) {\n // self\n const r = await client.call({\n _: 'account.toggleUsername',\n username,\n active,\n })\n\n assertTrue('account.toggleUsername', r)\n\n return\n }\n\n // bot\n const r = await client.call({\n _: 'bots.toggleUsername',\n bot: toInputUser(peer, peerId),\n username,\n active,\n })\n\n assertTrue('bots.toggleUsername', r)\n } else if (isInputPeerChannel(peer)) {\n const r = await client.call({\n _: 'channels.toggleUsername',\n channel: toInputChannel(peer, peerId),\n username,\n active,\n })\n\n assertTrue('channels.toggleUsername', r)\n }\n}\n"]}
1
+ {"version":3,"file":"toggle-fragment-username.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/toggle-fragment-username.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAuB,EACvB,MAaC;IAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,uBAAuB;QAEvB,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO;YACP,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACxB,CAAC,EAAE,wBAAwB;gBAC3B,QAAQ;gBACR,MAAM;aACT,CAAC,CAAA;YAEF,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;YAEvC,OAAM;QACV,CAAC;QAED,MAAM;QACN,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,qBAAqB;YACxB,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;YAC9B,QAAQ;YACR,MAAM;SACT,CAAC,CAAA;QAEF,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACxB,CAAC,EAAE,yBAAyB;YAC5B,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;YACrC,QAAQ;YACR,MAAM;SACT,CAAC,CAAA;QAEF,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;AACL,CAAC","sourcesContent":["import { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerUser, toInputChannel, toInputUser } from '../../utils/index.js'\nimport { isSelfPeer } from '../auth/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Toggle a collectible (Fragment) username\n *\n * > **Note**: non-collectible usernames must still be changed\n * > using {@link setUsername}/{@link setChatUsername}\n */\nexport async function toggleFragmentUsername(\n client: ITelegramClient,\n params: {\n /** Peer ID whose username to toggle */\n peerId: InputPeerLike\n\n /**\n * Username to toggle\n */\n username: string\n\n /**\n * Whether to enable or disable the username\n */\n active: boolean\n },\n): Promise<void> {\n const { peerId, username, active } = params\n\n const peer = await resolvePeer(client, peerId)\n\n if (isInputPeerUser(peer)) {\n // either a bot or self\n\n if (isSelfPeer(client, peer)) {\n // self\n const r = await client.call({\n _: 'account.toggleUsername',\n username,\n active,\n })\n\n assertTrue('account.toggleUsername', r)\n\n return\n }\n\n // bot\n const r = await client.call({\n _: 'bots.toggleUsername',\n bot: toInputUser(peer, peerId),\n username,\n active,\n })\n\n assertTrue('bots.toggleUsername', r)\n } else if (isInputPeerChannel(peer)) {\n const r = await client.call({\n _: 'channels.toggleUsername',\n channel: toInputChannel(peer, peerId),\n username,\n active,\n })\n\n assertTrue('channels.toggleUsername', r)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"unarchive-chats.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/unarchive-chats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,KAAgC;IAC1F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1C,MAAM,WAAW,GAA6B,EAAE,CAAA;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,WAAW,CAAC,IAAI,CAAC;YACb,CAAC,EAAE,iBAAiB;YACpB,IAAI,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;YACrC,QAAQ,EAAE,CAAC;SACd,CAAC,CAAA;KACL;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,yBAAyB;QAC5B,WAAW;KACd,CAAC,CAAA;IACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../types/utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Unarchive one or more chats\n *\n * @param chats Chat ID(s), username(s), phone number(s), `\"me\"` or `\"self\"`\n */\nexport async function unarchiveChats(client: ITelegramClient, chats: MaybeArray<InputPeerLike>): Promise<void> {\n if (!Array.isArray(chats)) chats = [chats]\n\n const folderPeers: tl.TypeInputFolderPeer[] = []\n\n for (const chat of chats) {\n folderPeers.push({\n _: 'inputFolderPeer',\n peer: await resolvePeer(client, chat),\n folderId: 0,\n })\n }\n\n const res = await client.call({\n _: 'folders.editPeerFolders',\n folderPeers,\n })\n client.handleClientUpdate(res)\n}\n"]}
1
+ {"version":3,"file":"unarchive-chats.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/unarchive-chats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,KAAgC;IAC1F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1C,MAAM,WAAW,GAA6B,EAAE,CAAA;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC;YACb,CAAC,EAAE,iBAAiB;YACpB,IAAI,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;YACrC,QAAQ,EAAE,CAAC;SACd,CAAC,CAAA;IACN,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,yBAAyB;QAC5B,WAAW;KACd,CAAC,CAAA;IACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../types/utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Unarchive one or more chats\n *\n * @param chats Chat ID(s), username(s), phone number(s), `\"me\"` or `\"self\"`\n */\nexport async function unarchiveChats(client: ITelegramClient, chats: MaybeArray<InputPeerLike>): Promise<void> {\n if (!Array.isArray(chats)) chats = [chats]\n\n const folderPeers: tl.TypeInputFolderPeer[] = []\n\n for (const chat of chats) {\n folderPeers.push({\n _: 'inputFolderPeer',\n peer: await resolvePeer(client, chat),\n folderId: 0,\n })\n }\n\n const res = await client.call({\n _: 'folders.editPeerFolders',\n folderPeers,\n })\n client.handleClientUpdate(res)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"unban-chat-member.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/unban-chat-member.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,8BAA8B;AAC9B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAuB,EACvB,MAMC;IAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IACxC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAErD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,qBAAqB;YACxB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE;gBACV,CAAC,EAAE,kBAAkB;gBACrB,SAAS,EAAE,CAAC;aACf;SACJ,CAAC,CAAA;QAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;KACjC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;QAC9B,WAAW;KACd;;QAAM,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AACtE,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @alias=unrestrictChatMember\n/**\n * Unban a user/channel from a supergroup or a channel,\n * or remove any restrictions that they have.\n * Unbanning does not add the user back to the chat, this\n * just allows the user to join the chat again, if they want.\n *\n * This method acts as a no-op in case a legacy group is passed.\n */\nexport async function unbanChatMember(\n client: ITelegramClient,\n params: {\n /** Chat ID */\n chatId: InputPeerLike\n\n /** User/channel ID who should be unbanned */\n participantId: InputPeerLike\n },\n): Promise<void> {\n const { chatId, participantId } = params\n const chat = await resolvePeer(client, chatId)\n const peer = await resolvePeer(client, participantId)\n\n if (isInputPeerChannel(chat)) {\n const res = await client.call({\n _: 'channels.editBanned',\n channel: toInputChannel(chat),\n participant: peer,\n bannedRights: {\n _: 'chatBannedRights',\n untilDate: 0,\n },\n })\n\n client.handleClientUpdate(res)\n } else if (isInputPeerChat(chat)) {\n // no-op //\n } else throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n}\n"]}
1
+ {"version":3,"file":"unban-chat-member.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/unban-chat-member.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,8BAA8B;AAC9B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAuB,EACvB,MAMC;IAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IACxC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAErD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,EAAE,qBAAqB;YACxB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;YAC7B,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE;gBACV,CAAC,EAAE,kBAAkB;gBACrB,SAAS,EAAE,CAAC;aACf;SACJ,CAAC,CAAA;QAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,WAAW;IACf,CAAC;;QAAM,MAAM,IAAI,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AACtE,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel } from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @alias=unrestrictChatMember\n/**\n * Unban a user/channel from a supergroup or a channel,\n * or remove any restrictions that they have.\n * Unbanning does not add the user back to the chat, this\n * just allows the user to join the chat again, if they want.\n *\n * This method acts as a no-op in case a legacy group is passed.\n */\nexport async function unbanChatMember(\n client: ITelegramClient,\n params: {\n /** Chat ID */\n chatId: InputPeerLike\n\n /** User/channel ID who should be unbanned */\n participantId: InputPeerLike\n },\n): Promise<void> {\n const { chatId, participantId } = params\n const chat = await resolvePeer(client, chatId)\n const peer = await resolvePeer(client, participantId)\n\n if (isInputPeerChannel(chat)) {\n const res = await client.call({\n _: 'channels.editBanned',\n channel: toInputChannel(chat),\n participant: peer,\n bannedRights: {\n _: 'chatBannedRights',\n untilDate: 0,\n },\n })\n\n client.handleClientUpdate(res)\n } else if (isInputPeerChat(chat)) {\n // no-op //\n } else throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"delete-contacts.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/contacts/delete-contacts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,sBAAsB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,OAAkC;IAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IAEhD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAEtE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACpB,MAAM,IAAI,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;KAC/D;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,yBAAyB;QAC5B,EAAE,EAAE,UAAU;KACjB,CAAC,CAAA;IAEF,oBAAoB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;IAEpD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAE9B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC","sourcesContent":["import { MaybeArray } from '../../../types/utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError, User } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { toInputUser } from '../../utils/peer-utils.js'\nimport { resolvePeerMany } from '../users/resolve-peer-many.js'\n\n/**\n * Delete one or more contacts from your Telegram contacts list\n *\n * Returns deleted contact's profiles. Does not return\n * profiles of users that were not in your contacts list\n *\n * @param userIds User IDs, usernames or phone numbers\n */\nexport async function deleteContacts(client: ITelegramClient, userIds: MaybeArray<InputPeerLike>): Promise<User[]> {\n if (!Array.isArray(userIds)) userIds = [userIds]\n\n const inputPeers = await resolvePeerMany(client, userIds, toInputUser)\n\n if (!inputPeers.length) {\n throw new MtInvalidPeerTypeError('all provided ids', 'user')\n }\n\n const res = await client.call({\n _: 'contacts.deleteContacts',\n id: inputPeers,\n })\n\n assertIsUpdatesGroup('contacts.deleteContacts', res)\n\n client.handleClientUpdate(res)\n\n return res.users.map((user) => new User(user))\n}\n"]}
1
+ {"version":3,"file":"delete-contacts.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/contacts/delete-contacts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,sBAAsB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,OAAkC;IAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IAEhD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAEtE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,yBAAyB;QAC5B,EAAE,EAAE,UAAU;KACjB,CAAC,CAAA;IAEF,oBAAoB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;IAEpD,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAE9B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC","sourcesContent":["import { MaybeArray } from '../../../types/utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError, User } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { toInputUser } from '../../utils/peer-utils.js'\nimport { resolvePeerMany } from '../users/resolve-peer-many.js'\n\n/**\n * Delete one or more contacts from your Telegram contacts list\n *\n * Returns deleted contact's profiles. Does not return\n * profiles of users that were not in your contacts list\n *\n * @param userIds User IDs, usernames or phone numbers\n */\nexport async function deleteContacts(client: ITelegramClient, userIds: MaybeArray<InputPeerLike>): Promise<User[]> {\n if (!Array.isArray(userIds)) userIds = [userIds]\n\n const inputPeers = await resolvePeerMany(client, userIds, toInputUser)\n\n if (!inputPeers.length) {\n throw new MtInvalidPeerTypeError('all provided ids', 'user')\n }\n\n const res = await client.call({\n _: 'contacts.deleteContacts',\n id: inputPeers,\n })\n\n assertIsUpdatesGroup('contacts.deleteContacts', res)\n\n client.handleClientUpdate(res)\n\n return res.users.map((user) => new User(user))\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"create-folder.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/create-folder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,MAAkD;IAElD,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;IAElB,IAAI,CAAC,EAAE,EAAE;QACL,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QAEpC,sCAAsC;QACtC,+BAA+B;QAC/B,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACvB,IAAI,EAAE,CAAC,CAAC,KAAK,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG;gBAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;KACf;IAED,MAAM,MAAM,GAAuB;QAC/B,CAAC,EAAE,cAAc;QACjB,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;QAChB,GAAG,MAAM;QACT,EAAE;KACL,CAAA;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,6BAA6B;QAChC,EAAE;QACF,MAAM;KACT,CAAC,CAAA;IAEF,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAA;AACjB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { PartialExcept } from '../../../types/utils.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getFolders } from './get-folders.js'\n\n/**\n * Create a folder from given parameters\n *\n * ID for the folder is optional, if not\n * provided it will be derived automatically.\n *\n * @param folder Parameters for the folder\n * @returns Newly created folder\n */\nexport async function createFolder(\n client: ITelegramClient,\n folder: PartialExcept<tl.RawDialogFilter, 'title'>,\n): Promise<tl.RawDialogFilter> {\n let id = folder.id\n\n if (!id) {\n const old = await getFolders(client)\n\n // determine next id by finding max id\n // thanks durov for awesome api\n let max = 1\n old.filters.forEach((it) => {\n if (it._ === 'dialogFilter' && it.id > max) max = it.id\n })\n id = max + 1\n }\n\n const filter: tl.RawDialogFilter = {\n _: 'dialogFilter',\n pinnedPeers: [],\n includePeers: [],\n excludePeers: [],\n ...folder,\n id,\n }\n\n const r = await client.call({\n _: 'messages.updateDialogFilter',\n id,\n filter,\n })\n\n assertTrue('messages.updateDialogFilter', r)\n\n return filter\n}\n"]}
1
+ {"version":3,"file":"create-folder.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/create-folder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,MAAkD;IAElD,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;IAElB,IAAI,CAAC,EAAE,EAAE,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QAEpC,sCAAsC;QACtC,+BAA+B;QAC/B,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACvB,IAAI,EAAE,CAAC,CAAC,KAAK,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG;gBAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;IAChB,CAAC;IAED,MAAM,MAAM,GAAuB;QAC/B,CAAC,EAAE,cAAc;QACjB,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;QAChB,GAAG,MAAM;QACT,EAAE;KACL,CAAA;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,6BAA6B;QAChC,EAAE;QACF,MAAM;KACT,CAAC,CAAA;IAEF,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAA;AACjB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { PartialExcept } from '../../../types/utils.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getFolders } from './get-folders.js'\n\n/**\n * Create a folder from given parameters\n *\n * ID for the folder is optional, if not\n * provided it will be derived automatically.\n *\n * @param folder Parameters for the folder\n * @returns Newly created folder\n */\nexport async function createFolder(\n client: ITelegramClient,\n folder: PartialExcept<tl.RawDialogFilter, 'title'>,\n): Promise<tl.RawDialogFilter> {\n let id = folder.id\n\n if (!id) {\n const old = await getFolders(client)\n\n // determine next id by finding max id\n // thanks durov for awesome api\n let max = 1\n old.filters.forEach((it) => {\n if (it._ === 'dialogFilter' && it.id > max) max = it.id\n })\n id = max + 1\n }\n\n const filter: tl.RawDialogFilter = {\n _: 'dialogFilter',\n pinnedPeers: [],\n includePeers: [],\n excludePeers: [],\n ...folder,\n id,\n }\n\n const r = await client.call({\n _: 'messages.updateDialogFilter',\n id,\n filter,\n })\n\n assertTrue('messages.updateDialogFilter', r)\n\n return filter\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-folder.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/edit-folder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAWC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAC/B,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEvB,IAAI,MAAM,KAAK,CAAC,EAAE;QACd,MAAM,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAA;KAC5D;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,cAAc,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAA;QAE5G,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,eAAe,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAA;SACjE;QAED,MAAM,GAAG,KAA2B,CAAA;KACvC;IAED,MAAM,MAAM,GAAuB;QAC/B,GAAG,MAAM;QACT,GAAG,YAAY;KAClB,CAAA;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,6BAA6B;QAChC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM;KACT,CAAC,CAAA;IAEF,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAA;AACjB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getFolders } from './get-folders.js'\n\n/**\n * Edit a folder with given modification\n *\n * @returns Modified folder\n */\nexport async function editFolder(\n client: ITelegramClient,\n params: {\n /**\n * Folder, folder ID or name.\n * Note that passing an ID or name will require re-fetching all folders,\n * and passing name might affect not the right folder if you have multiple\n * with the same name.\n */\n folder: tl.RawDialogFilter | number | string\n\n /** Modification to be applied to this folder */\n modification: Partial<Omit<tl.RawDialogFilter, 'id' | '_'>>\n },\n): Promise<tl.RawDialogFilter> {\n const { modification } = params\n let { folder } = params\n\n if (folder === 0) {\n throw new MtArgumentError('Cannot modify default folder')\n }\n if (typeof folder === 'number' || typeof folder === 'string') {\n const old = await getFolders(client)\n const found = old.filters.find((it) => it._ === 'dialogFilter' && (it.id === folder || it.title === folder))\n\n if (!found) {\n throw new MtArgumentError(`Could not find a folder ${folder}`)\n }\n\n folder = found as tl.RawDialogFilter\n }\n\n const filter: tl.RawDialogFilter = {\n ...folder,\n ...modification,\n }\n\n const r = await client.call({\n _: 'messages.updateDialogFilter',\n id: folder.id,\n filter,\n })\n\n assertTrue('messages.updateDialogFilter', r)\n\n return filter\n}\n"]}
1
+ {"version":3,"file":"edit-folder.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/edit-folder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAWC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAC/B,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEvB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,cAAc,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAA;QAE5G,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,eAAe,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,GAAG,KAA2B,CAAA;IACxC,CAAC;IAED,MAAM,MAAM,GAAuB;QAC/B,GAAG,MAAM;QACT,GAAG,YAAY;KAClB,CAAA;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,6BAA6B;QAChC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM;KACT,CAAC,CAAA;IAEF,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAA;AACjB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getFolders } from './get-folders.js'\n\n/**\n * Edit a folder with given modification\n *\n * @returns Modified folder\n */\nexport async function editFolder(\n client: ITelegramClient,\n params: {\n /**\n * Folder, folder ID or name.\n * Note that passing an ID or name will require re-fetching all folders,\n * and passing name might affect not the right folder if you have multiple\n * with the same name.\n */\n folder: tl.RawDialogFilter | number | string\n\n /** Modification to be applied to this folder */\n modification: Partial<Omit<tl.RawDialogFilter, 'id' | '_'>>\n },\n): Promise<tl.RawDialogFilter> {\n const { modification } = params\n let { folder } = params\n\n if (folder === 0) {\n throw new MtArgumentError('Cannot modify default folder')\n }\n if (typeof folder === 'number' || typeof folder === 'string') {\n const old = await getFolders(client)\n const found = old.filters.find((it) => it._ === 'dialogFilter' && (it.id === folder || it.title === folder))\n\n if (!found) {\n throw new MtArgumentError(`Could not find a folder ${folder}`)\n }\n\n folder = found as tl.RawDialogFilter\n }\n\n const filter: tl.RawDialogFilter = {\n ...folder,\n ...modification,\n }\n\n const r = await client.call({\n _: 'messages.updateDialogFilter',\n id: folder.id,\n filter,\n })\n\n assertTrue('messages.updateDialogFilter', r)\n\n return filter\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"find-folder.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/find-folder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAOC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAAA;KACvE;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;IAExC,OAAO,CACF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,IAAI,EAAE,CAAC,CAAC,KAAK,qBAAqB;YAAE,OAAO,KAAK,CAAA;QAChD,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QAClD,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAC3D,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAE9D,OAAO,IAAI,CAAA;IACf,CAAC,CAAwB,IAAI,IAAI,CACpC,CAAA;AACL,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getFolders } from './get-folders.js'\n\n/**\n * Find a folder by its parameter.\n *\n * > **Note**: Searching by title and/or emoji might not be\n * > accurate since you can set the same title and/or emoji\n * > to multiple folders.\n *\n * @param params Search parameters. At least one must be set.\n */\nexport async function findFolder(\n client: ITelegramClient,\n params: {\n /** Folder title */\n title?: string\n /** Folder emoji */\n emoji?: string\n /** Folder ID */\n id?: number\n },\n): Promise<tl.RawDialogFilter | null> {\n if (!params.title && !params.emoji && !params.id) {\n throw new MtArgumentError('One of search parameters must be passed')\n }\n\n const folders = await getFolders(client)\n\n return (\n (folders.filters.find((it) => {\n if (it._ === 'dialogFilterDefault') return false\n if (params.id && it.id !== params.id) return false\n if (params.title && it.title !== params.title) return false\n if (params.emoji && it.emoticon !== params.emoji) return false\n\n return true\n }) as tl.RawDialogFilter) ?? null\n )\n}\n"]}
1
+ {"version":3,"file":"find-folder.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/find-folder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAOC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;IAExC,OAAO,CACF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,IAAI,EAAE,CAAC,CAAC,KAAK,qBAAqB;YAAE,OAAO,KAAK,CAAA;QAChD,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QAClD,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAC3D,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAE9D,OAAO,IAAI,CAAA;IACf,CAAC,CAAwB,IAAI,IAAI,CACpC,CAAA;AACL,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getFolders } from './get-folders.js'\n\n/**\n * Find a folder by its parameter.\n *\n * > **Note**: Searching by title and/or emoji might not be\n * > accurate since you can set the same title and/or emoji\n * > to multiple folders.\n *\n * @param params Search parameters. At least one must be set.\n */\nexport async function findFolder(\n client: ITelegramClient,\n params: {\n /** Folder title */\n title?: string\n /** Folder emoji */\n emoji?: string\n /** Folder ID */\n id?: number\n },\n): Promise<tl.RawDialogFilter | null> {\n if (!params.title && !params.emoji && !params.id) {\n throw new MtArgumentError('One of search parameters must be passed')\n }\n\n const folders = await getFolders(client)\n\n return (\n (folders.filters.find((it) => {\n if (it._ === 'dialogFilterDefault') return false\n if (params.id && it.id !== params.id) return false\n if (params.title && it.title !== params.title) return false\n if (params.emoji && it.emoticon !== params.emoji) return false\n\n return true\n }) as tl.RawDialogFilter) ?? null\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"get-folders.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/get-folders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI1D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAuB;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC;QACf,CAAC,EAAE,2BAA2B;KACjC,CAAC,CAAA;AACN,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,MAAuB,EACvB,MAAyB;IAEzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC1D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACtC,IAAI,EAAE,CAAC,CAAC,KAAK,qBAAqB,EAAE;gBAChC,OAAO,MAAM,KAAK,CAAC,CAAA;aACtB;YAED,OAAO,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,eAAe,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAA;SAC/D;QAED,OAAO,KAAK,CAAA;KACf;IAED,OAAO,MAAM,CAAA;AACjB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputDialogFolder } from '../../types/index.js'\n\n/**\n * Get list of folders.\n */\nexport async function getFolders(client: ITelegramClient): Promise<tl.messages.RawDialogFilters> {\n return client.call({\n _: 'messages.getDialogFilters',\n })\n}\n\n/** @internal */\nexport async function _normalizeInputFolder(\n client: ITelegramClient,\n folder: InputDialogFolder,\n): Promise<tl.TypeDialogFilter> {\n if (typeof folder === 'string' || typeof folder === 'number') {\n const folders = await getFolders(client)\n const found = folders.filters.find((it) => {\n if (it._ === 'dialogFilterDefault') {\n return folder === 0\n }\n\n return it.id === folder || it.title === folder\n })\n\n if (!found) {\n throw new MtArgumentError(`Could not find folder ${folder}`)\n }\n\n return found\n }\n\n return folder\n}\n"]}
1
+ {"version":3,"file":"get-folders.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/get-folders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI1D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAuB;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC;QACf,CAAC,EAAE,2BAA2B;KACjC,CAAC,CAAA;AACN,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,MAAuB,EACvB,MAAyB;IAEzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACtC,IAAI,EAAE,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;gBACjC,OAAO,MAAM,KAAK,CAAC,CAAA;YACvB,CAAC;YAED,OAAO,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,eAAe,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputDialogFolder } from '../../types/index.js'\n\n/**\n * Get list of folders.\n */\nexport async function getFolders(client: ITelegramClient): Promise<tl.messages.RawDialogFilters> {\n return client.call({\n _: 'messages.getDialogFilters',\n })\n}\n\n/** @internal */\nexport async function _normalizeInputFolder(\n client: ITelegramClient,\n folder: InputDialogFolder,\n): Promise<tl.TypeDialogFilter> {\n if (typeof folder === 'string' || typeof folder === 'number') {\n const folders = await getFolders(client)\n const found = folders.filters.find((it) => {\n if (it._ === 'dialogFilterDefault') {\n return folder === 0\n }\n\n return it.id === folder || it.title === folder\n })\n\n if (!found) {\n throw new MtArgumentError(`Could not find folder ${folder}`)\n }\n\n return found\n }\n\n return folder\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"iter-dialogs.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/iter-dialogs.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MtUnsupportedError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Dialog, InputDialogFolder } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { _normalizeInputFolder } from './get-folders.js'\n\n/**\n * Iterate over dialogs.\n *\n * Note that due to Telegram API limitations,\n * ordering here can only be anti-chronological\n * (i.e. newest - first), and draft update date\n * is not considered when sorting.\n *\n * @param params Fetch parameters\n */\nexport async function* iterDialogs(\n client: ITelegramClient,\n params?: {\n /**\n * Offset message date used as an anchor for pagination.\n */\n offsetDate?: Date | number\n\n /**\n * Offset message ID used as an anchor for pagination\n */\n offsetId?: number\n\n /**\n * Offset peer used as an anchor for pagination\n */\n offsetPeer?: tl.TypeInputPeer\n\n /**\n * Limits the number of dialogs to be received.\n *\n * @default `Infinity`, i.e. all dialogs are fetched\n */\n limit?: number\n\n /**\n * Chunk size which will be passed to `messages.getDialogs`.\n * You shouldn't usually care about this.\n *\n * @default 100.\n */\n chunkSize?: number\n\n /**\n * How to handle pinned dialogs?\n *\n * Whether to `include` them at the start of the list,\n * `exclude` them at all, or `only` return pinned dialogs.\n *\n * Additionally, for folders you can specify\n * `keep`, which will return pinned dialogs\n * ordered by date among other non-pinned dialogs.\n *\n * > **Note**: When using `include` mode with folders,\n * > pinned dialogs will only be fetched if all offset\n * > parameters are unset.\n *\n * @default `include`.\n */\n pinned?: 'include' | 'exclude' | 'only' | 'keep'\n\n /**\n * How to handle archived chats?\n *\n * Whether to `keep` them among other dialogs,\n * `exclude` them from the list, or `only`\n * return archived dialogs\n *\n * Ignored for folders, since folders\n * themselves contain information about archived chats.\n *\n * > **Note**: when `pinned=only`, `archived=keep` will act as `only`\n * > because of Telegram API limitations.\n *\n * @default `exclude`\n */\n archived?: 'keep' | 'exclude' | 'only'\n\n /**\n * Folder from which the dialogs will be fetched.\n *\n * You can pass folder object, id or title\n *\n * Note that passing anything except object will\n * cause the list of the folders to be fetched,\n * and passing a title may fetch from\n * a wrong folder if you have multiple with the same title.\n *\n * Also note that fetching dialogs in a folder is\n * *orders of magnitudes* slower than normal because\n * of Telegram API limitations - we have to fetch all dialogs\n * and filter the ones we need manually. If possible,\n * use {@link Dialog.filterFolder} instead.\n *\n * When a folder with given ID or title is not found,\n * {@link MtArgumentError} is thrown\n *\n * @default <empty> (fetches from \"All\" folder)\n */\n folder?: InputDialogFolder\n\n /**\n * Additional filtering for the dialogs.\n *\n * If `folder` is not provided, this filter is used instead.\n * If `folder` is provided, fields from this object are used\n * to override filters inside the folder.\n */\n filter?: Partial<Omit<tl.RawDialogFilter, '_' | 'id' | 'title'>>\n },\n): AsyncIterableIterator<Dialog> {\n if (!params) params = {}\n\n const { limit = Infinity, chunkSize = 100, folder, filter, pinned = 'include' } = params\n\n let { offsetId = 0, offsetPeer = { _: 'inputPeerEmpty' }, archived = 'exclude' } = params\n\n let offsetDate = normalizeDate(params.offsetDate) ?? 0\n\n let localFilters_: tl.TypeDialogFilter | undefined\n\n if (folder) {\n localFilters_ = await _normalizeInputFolder(client, folder)\n }\n\n if (filter) {\n if (localFilters_ && localFilters_._ !== 'dialogFilterDefault') {\n localFilters_ = {\n ...localFilters_,\n ...filter,\n }\n } else {\n localFilters_ = {\n _: 'dialogFilter',\n id: 0,\n title: '',\n pinnedPeers: [],\n includePeers: [],\n excludePeers: [],\n ...params.filter,\n }\n }\n }\n\n if (localFilters_?._ === 'dialogFilterDefault') {\n localFilters_ = undefined\n }\n\n if (localFilters_?._ === 'dialogFilterChatlist') {\n throw new MtUnsupportedError('Shared chat folders are not supported yet')\n }\n\n const localFilters = localFilters_\n\n if (localFilters) {\n archived = localFilters.excludeArchived ? 'exclude' : 'keep'\n }\n\n const fetchPinnedDialogsFromFolder = async (): Promise<tl.messages.RawPeerDialogs | null> => {\n if (!localFilters || !localFilters.pinnedPeers.length) {\n return null\n }\n const res = await client.call({\n _: 'messages.getPeerDialogs',\n peers: localFilters.pinnedPeers.map((peer) => ({\n _: 'inputDialogPeer' as const,\n peer,\n })),\n })\n\n res.dialogs.forEach((dialog: tl.Mutable<tl.TypeDialog>) => (dialog.pinned = true))\n\n return res\n }\n\n if (pinned === 'only') {\n let res\n\n if (localFilters) {\n res = await fetchPinnedDialogsFromFolder()\n } else {\n res = await client.call({\n _: 'messages.getPinnedDialogs',\n folderId: archived === 'exclude' ? 0 : 1,\n })\n }\n if (res) yield* Dialog.parseTlDialogs(res, limit)\n\n return\n }\n\n let current = 0\n\n if (\n localFilters?.pinnedPeers.length &&\n pinned === 'include' &&\n offsetId === 0 &&\n offsetDate === 0 &&\n offsetPeer._ === 'inputPeerEmpty'\n ) {\n const res = await fetchPinnedDialogsFromFolder()\n\n if (res) {\n const dialogs = Dialog.parseTlDialogs(res, limit)\n\n for (const d of dialogs) {\n yield d\n if (++current >= limit) return\n }\n }\n }\n // if pinned is `only`, this wouldn't be reached\n // if pinned is `exclude`, we want to exclude them\n // if pinned is `include`, we already yielded them, so we also want to exclude them\n // if pinned is `keep`, we want to keep them\n const filterFolder = localFilters ? Dialog.filterFolder(localFilters, pinned !== 'keep') : undefined\n\n let folderId\n\n if (archived === 'keep') {\n folderId = undefined\n } else if (archived === 'only') {\n folderId = 1\n } else {\n folderId = 0\n }\n\n for (;;) {\n const dialogs = Dialog.parseTlDialogs(\n await client.call({\n _: 'messages.getDialogs',\n excludePinned: params.pinned === 'exclude',\n folderId,\n offsetDate,\n offsetId,\n offsetPeer,\n limit: filterFolder ? chunkSize : Math.min(limit - current, chunkSize),\n hash: Long.ZERO,\n }),\n )\n if (!dialogs.length) return\n\n const last = dialogs[dialogs.length - 1]\n offsetPeer = last.chat.inputPeer\n offsetId = last.raw.topMessage\n offsetDate = last.lastMessage.raw.date\n\n for (const d of dialogs) {\n if (filterFolder && !filterFolder(d)) continue\n\n yield d\n if (++current >= limit) return\n }\n }\n}\n"]}
1
+ {"version":3,"file":"iter-dialogs.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/dialogs/iter-dialogs.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MtUnsupportedError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Dialog, InputDialogFolder } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { _normalizeInputFolder } from './get-folders.js'\n\n/**\n * Iterate over dialogs.\n *\n * Note that due to Telegram API limitations,\n * ordering here can only be anti-chronological\n * (i.e. newest - first), and draft update date\n * is not considered when sorting.\n *\n * @param params Fetch parameters\n */\nexport async function* iterDialogs(\n client: ITelegramClient,\n params?: {\n /**\n * Offset message date used as an anchor for pagination.\n */\n offsetDate?: Date | number\n\n /**\n * Offset message ID used as an anchor for pagination\n */\n offsetId?: number\n\n /**\n * Offset peer used as an anchor for pagination\n */\n offsetPeer?: tl.TypeInputPeer\n\n /**\n * Limits the number of dialogs to be received.\n *\n * @default `Infinity`, i.e. all dialogs are fetched\n */\n limit?: number\n\n /**\n * Chunk size which will be passed to `messages.getDialogs`.\n * You shouldn't usually care about this.\n *\n * @default 100.\n */\n chunkSize?: number\n\n /**\n * How to handle pinned dialogs?\n *\n * Whether to `include` them at the start of the list,\n * `exclude` them at all, or `only` return pinned dialogs.\n *\n * Additionally, for folders you can specify\n * `keep`, which will return pinned dialogs\n * ordered by date among other non-pinned dialogs.\n *\n * > **Note**: When using `include` mode with folders,\n * > pinned dialogs will only be fetched if all offset\n * > parameters are unset.\n *\n * @default `include`.\n */\n pinned?: 'include' | 'exclude' | 'only' | 'keep'\n\n /**\n * How to handle archived chats?\n *\n * Whether to `keep` them among other dialogs,\n * `exclude` them from the list, or `only`\n * return archived dialogs\n *\n * Ignored for folders, since folders\n * themselves contain information about archived chats.\n *\n * > **Note**: when `pinned=only`, `archived=keep` will act as `only`\n * > because of Telegram API limitations.\n *\n * @default `exclude`\n */\n archived?: 'keep' | 'exclude' | 'only'\n\n /**\n * Folder from which the dialogs will be fetched.\n *\n * You can pass folder object, id or title\n *\n * Note that passing anything except object will\n * cause the list of the folders to be fetched,\n * and passing a title may fetch from\n * a wrong folder if you have multiple with the same title.\n *\n * Also note that fetching dialogs in a folder is\n * *orders of magnitudes* slower than normal because\n * of Telegram API limitations - we have to fetch all dialogs\n * and filter the ones we need manually. If possible,\n * use {@link Dialog.filterFolder} instead.\n *\n * When a folder with given ID or title is not found,\n * {@link MtArgumentError} is thrown\n *\n * @default <empty> (fetches from \"All\" folder)\n */\n folder?: InputDialogFolder\n\n /**\n * Additional filtering for the dialogs.\n *\n * If `folder` is not provided, this filter is used instead.\n * If `folder` is provided, fields from this object are used\n * to override filters inside the folder.\n */\n filter?: Partial<Omit<tl.RawDialogFilter, '_' | 'id' | 'title'>>\n },\n): AsyncIterableIterator<Dialog> {\n if (!params) params = {}\n\n const { limit = Infinity, chunkSize = 100, folder, filter, pinned = 'include' } = params\n\n let { offsetId = 0, offsetPeer = { _: 'inputPeerEmpty' }, archived = 'exclude' } = params\n\n let offsetDate = normalizeDate(params.offsetDate) ?? 0\n\n let localFilters_: tl.TypeDialogFilter | undefined\n\n if (folder) {\n localFilters_ = await _normalizeInputFolder(client, folder)\n }\n\n if (filter) {\n if (localFilters_ && localFilters_._ !== 'dialogFilterDefault') {\n localFilters_ = {\n ...localFilters_,\n ...filter,\n }\n } else {\n localFilters_ = {\n _: 'dialogFilter',\n id: 0,\n title: '',\n pinnedPeers: [],\n includePeers: [],\n excludePeers: [],\n ...params.filter,\n }\n }\n }\n\n if (localFilters_?._ === 'dialogFilterDefault') {\n localFilters_ = undefined\n }\n\n if (localFilters_?._ === 'dialogFilterChatlist') {\n throw new MtUnsupportedError('Shared chat folders are not supported yet')\n }\n\n const localFilters = localFilters_\n\n if (localFilters) {\n archived = localFilters.excludeArchived ? 'exclude' : 'keep'\n }\n\n const fetchPinnedDialogsFromFolder = async (): Promise<tl.messages.RawPeerDialogs | null> => {\n if (!localFilters || !localFilters.pinnedPeers.length) {\n return null\n }\n const res = await client.call({\n _: 'messages.getPeerDialogs',\n peers: localFilters.pinnedPeers.map((peer) => ({\n _: 'inputDialogPeer' as const,\n peer,\n })),\n })\n\n res.dialogs.forEach((dialog: tl.Mutable<tl.TypeDialog>) => (dialog.pinned = true))\n\n return res\n }\n\n if (pinned === 'only') {\n let res\n\n if (localFilters) {\n res = await fetchPinnedDialogsFromFolder()\n } else {\n res = await client.call({\n _: 'messages.getPinnedDialogs',\n folderId: archived === 'exclude' ? 0 : 1,\n })\n }\n if (res) yield* Dialog.parseTlDialogs(res, limit)\n\n return\n }\n\n let current = 0\n\n if (\n localFilters?.pinnedPeers.length &&\n pinned === 'include' &&\n offsetId === 0 &&\n offsetDate === 0 &&\n offsetPeer._ === 'inputPeerEmpty'\n ) {\n const res = await fetchPinnedDialogsFromFolder()\n\n if (res) {\n const dialogs = Dialog.parseTlDialogs(res, limit)\n\n for (const d of dialogs) {\n yield d\n if (++current >= limit) return\n }\n }\n }\n // if pinned is `only`, this wouldn't be reached\n // if pinned is `exclude`, we want to exclude them\n // if pinned is `include`, we already yielded them, so we also want to exclude them\n // if pinned is `keep`, we want to keep them\n const filterFolder = localFilters ? Dialog.filterFolder(localFilters, pinned !== 'keep') : undefined\n\n let folderId\n\n if (archived === 'keep') {\n folderId = undefined\n } else if (archived === 'only') {\n folderId = 1\n } else {\n folderId = 0\n }\n\n for (;;) {\n const dialogs = Dialog.parseTlDialogs(\n await client.call({\n _: 'messages.getDialogs',\n excludePinned: params.pinned === 'exclude',\n folderId,\n offsetDate,\n offsetId,\n offsetPeer,\n limit: filterFolder ? chunkSize : Math.min(limit - current, chunkSize),\n hash: Long.ZERO,\n }),\n )\n if (!dialogs.length) return\n\n const last = dialogs[dialogs.length - 1]\n offsetPeer = last.chat.inputPeer\n offsetId = last.raw.topMessage\n offsetDate = last.lastMessage.raw.date\n\n for (const d of dialogs) {\n if (filterFolder && !filterFolder(d)) continue\n\n yield d\n if (++current >= limit) return\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"download-buffer.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAgD,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAuB,EACvB,QAA8B,EAC9B,MAA+B;IAE/B,IAAI,QAAQ,YAAY,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC3E,OAAO,QAAQ,CAAC,QAAQ,CAAA;KAC3B;IAED,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;QACpE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACrB;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC","sourcesContent":["import { concatBuffers } from '../../../utils/buffer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters, FileLocation } from '../../types/index.js'\nimport { downloadAsIterable } from './download-iterable.js'\n\n/**\n * Download a file and return its contents as a Buffer.\n *\n * > **Note**: This method _will_ download the entire file\n * > into memory at once. This might cause an issue, so use wisely!\n *\n * @param params File download parameters\n */\nexport async function downloadAsBuffer(\n client: ITelegramClient,\n location: FileDownloadLocation,\n params?: FileDownloadParameters,\n): Promise<Uint8Array> {\n if (location instanceof FileLocation && ArrayBuffer.isView(location.location)) {\n return location.location\n }\n\n const chunks = []\n\n for await (const chunk of downloadAsIterable(client, location, params)) {\n chunks.push(chunk)\n }\n\n return concatBuffers(chunks)\n}\n"]}
1
+ {"version":3,"file":"download-buffer.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAgD,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAuB,EACvB,QAA8B,EAC9B,MAA+B;IAE/B,IAAI,QAAQ,YAAY,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5E,OAAO,QAAQ,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC","sourcesContent":["import { concatBuffers } from '../../../utils/buffer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters, FileLocation } from '../../types/index.js'\nimport { downloadAsIterable } from './download-iterable.js'\n\n/**\n * Download a file and return its contents as a Buffer.\n *\n * > **Note**: This method _will_ download the entire file\n * > into memory at once. This might cause an issue, so use wisely!\n *\n * @param params File download parameters\n */\nexport async function downloadAsBuffer(\n client: ITelegramClient,\n location: FileDownloadLocation,\n params?: FileDownloadParameters,\n): Promise<Uint8Array> {\n if (location instanceof FileLocation && ArrayBuffer.isView(location.location)) {\n return location.location\n }\n\n const chunks = []\n\n for await (const chunk of downloadAsIterable(client, location, params)) {\n chunks.push(chunk)\n }\n\n return concatBuffers(chunks)\n}\n"]}
@@ -97,7 +97,7 @@ export async function* downloadAsIterable(client, input, params) {
97
97
  }, {
98
98
  dcId,
99
99
  kind: connectionKind,
100
- maxRetryCount: Infinity,
100
+ maxRetryCount: Infinity, // retry until explicitly aborted (or finished)
101
101
  abortSignal,
102
102
  });
103
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"download-iterable.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-iterable.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { ConnectionKind } from '../../../network/network-manager.js'\nimport { getPlatform } from '../../../platform.js'\nimport { MtArgumentError, MtUnsupportedError } from '../../../types/errors.js'\nimport { ConditionVariable } from '../../../utils/condition-variable.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters, FileLocation } from '../../types/index.js'\nimport { fileIdToInputFileLocation, fileIdToInputWebFileLocation } from '../../utils/convert-file-id.js'\nimport { determinePartSize } from '../../utils/file-utils.js'\n\n// small files (less than 128 kb) are downloaded using the \"downloadSmall\" pool\n// furthermore, if the file is small and is located on our main DC, it will be downloaded\n// using the current main connection\nconst SMALL_FILE_MAX_SIZE = 131072\nconst REQUESTS_PER_CONNECTION = 3 // some arbitrary magic value that seems to work best\n\n/**\n * Download a file and return it as an iterable, which yields file contents\n * in chunks of a given size. Order of the chunks is guaranteed to be\n * consecutive.\n *\n * @param params Download parameters\n */\nexport async function* downloadAsIterable(\n client: ITelegramClient,\n input: FileDownloadLocation,\n params?: FileDownloadParameters,\n): AsyncIterableIterator<Uint8Array> {\n const offset = params?.offset ?? 0\n\n if (offset % 4096 !== 0) {\n throw new MtArgumentError(`Invalid offset: ${offset}. Must be divisible by 4096`)\n }\n\n let dcId = params?.dcId\n let fileSize = params?.fileSize\n\n const abortSignal = params?.abortSignal\n let aborted = false\n\n let location: tl.TypeInputFileLocation | tl.TypeInputWebFileLocation\n if (input instanceof FileLocation) {\n let locationInner = input.location\n\n if (typeof locationInner === 'function') {\n locationInner = locationInner()\n }\n\n if (ArrayBuffer.isView(locationInner)) {\n yield locationInner\n\n return\n }\n if (!dcId) dcId = input.dcId\n if (!fileSize) fileSize = input.fileSize\n location = locationInner\n } else if (typeof input === 'string') {\n const parsed = parseFileId(getPlatform(), input)\n\n if (parsed.location._ === 'web') {\n location = fileIdToInputWebFileLocation(parsed)\n } else {\n location = fileIdToInputFileLocation(parsed)\n }\n } else location = input\n\n const isWeb = tl.isAnyInputWebFileLocation(location)\n\n // we will receive a FileMigrateError in case this is invalid\n const primaryDcId = await client.getPrimaryDcId()\n if (!dcId) dcId = primaryDcId\n\n const partSizeKb = params?.partSize ?? (fileSize ? determinePartSize(fileSize) : 64)\n\n if (partSizeKb % 4 !== 0) {\n throw new MtArgumentError(`Invalid part size: ${partSizeKb}. Must be divisible by 4.`)\n }\n\n const chunkSize = partSizeKb * 1024\n\n let limitBytes = params?.limit ?? fileSize ?? Infinity\n if (limitBytes === 0) return\n\n let numChunks = limitBytes === Infinity ? Infinity : ~~((limitBytes + chunkSize - offset - 1) / chunkSize)\n\n let nextChunkIdx = 0\n let nextWorkerChunkIdx = 0\n const nextChunkCv = new ConditionVariable()\n const buffer: Record<number, Uint8Array> = {}\n\n const isSmall = fileSize && fileSize <= SMALL_FILE_MAX_SIZE\n let connectionKind: ConnectionKind\n\n if (isSmall) {\n connectionKind = dcId === primaryDcId ? 'main' : 'downloadSmall'\n } else {\n connectionKind = 'download'\n }\n const poolSize = await client.getPoolSize(connectionKind, dcId)\n\n client.log.debug(\n 'Downloading file of size %d from dc %d using %s connection pool (pool size: %d)',\n limitBytes,\n dcId,\n connectionKind,\n poolSize,\n )\n\n const downloadChunk = async (chunk = nextWorkerChunkIdx++): Promise<void> => {\n let result: tl.RpcCallReturn['upload.getFile'] | tl.RpcCallReturn['upload.getWebFile']\n\n if (aborted) {\n return\n }\n\n try {\n result = await client.call(\n {\n _: isWeb ? 'upload.getWebFile' : 'upload.getFile',\n // eslint-disable-next-line\n location: location as any,\n offset: chunkSize * chunk,\n limit: chunkSize,\n },\n {\n dcId,\n kind: connectionKind,\n maxRetryCount: Infinity, // retry until explicitly aborted (or finished)\n abortSignal,\n },\n )\n } catch (e: unknown) {\n if (e instanceof DOMException && e.name === 'AbortError') return\n if (!tl.RpcError.is(e)) throw e\n\n if (e.is('FILE_MIGRATE_%d')) {\n dcId = e.newDc\n\n return downloadChunk(chunk)\n } else if (e.is('FILEREF_UPGRADE_NEEDED')) {\n // todo: implement someday\n // see: https://github.com/LonamiWebs/Telethon/blob/0e8bd8248cc649637b7c392616887c50986427a0/telethon/client/downloads.py#L99\n throw new MtUnsupportedError('File ref expired!')\n } else throw e\n }\n\n if (result._ === 'upload.fileCdnRedirect') {\n // we shouldnt receive them since cdnSupported is not set in the getFile request.\n // also, i couldnt find any media that would be downloaded from cdn, so even if\n // i implemented that, i wouldnt be able to test that, so :shrug:\n throw new MtUnsupportedError('Received CDN redirect, which is not supported (yet)')\n }\n\n if (aborted) {\n return\n }\n\n if (result._ === 'upload.webFile' && result.size && limitBytes === Infinity) {\n limitBytes = result.size\n numChunks = ~~((limitBytes + chunkSize - offset - 1) / chunkSize)\n }\n\n buffer[chunk] = result.bytes\n\n if (chunk === nextChunkIdx) {\n nextChunkCv.notify()\n }\n\n if (nextWorkerChunkIdx < numChunks && result.bytes.length === chunkSize) {\n return downloadChunk()\n }\n }\n\n let error: unknown = undefined\n void Promise.all(Array.from({ length: Math.min(poolSize * REQUESTS_PER_CONNECTION, numChunks) }, downloadChunk))\n .catch((e) => {\n client.log.debug('download workers errored: %s', e.message)\n error = e\n aborted = true // not really aborted, but we dont want to download more chunks\n nextChunkCv.notify()\n })\n .then(() => {\n client.log.debug('download workers finished')\n })\n\n // to avoid MaxListenersExceededWarning we do this instead\n // already sent requests can go to hell (they will get ignored)\n abortSignal?.addEventListener('abort', () => {\n client.log.debug('download aborted')\n error = abortSignal.reason\n aborted = true\n nextChunkCv.notify()\n })\n\n let position = offset\n\n while (position < limitBytes) {\n await nextChunkCv.wait()\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n if (error) throw error\n\n while (nextChunkIdx in buffer) {\n const buf = buffer[nextChunkIdx]\n delete buffer[nextChunkIdx]\n\n position += buf.length\n\n params?.progressCallback?.(position, limitBytes)\n\n yield buf\n\n nextChunkIdx++\n\n if (buf.length < chunkSize) {\n // we received the last chunk\n return\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"download-iterable.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-iterable.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { ConnectionKind } from '../../../network/network-manager.js'\nimport { getPlatform } from '../../../platform.js'\nimport { MtArgumentError, MtUnsupportedError } from '../../../types/errors.js'\nimport { ConditionVariable } from '../../../utils/condition-variable.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters, FileLocation } from '../../types/index.js'\nimport { fileIdToInputFileLocation, fileIdToInputWebFileLocation } from '../../utils/convert-file-id.js'\nimport { determinePartSize } from '../../utils/file-utils.js'\n\n// small files (less than 128 kb) are downloaded using the \"downloadSmall\" pool\n// furthermore, if the file is small and is located on our main DC, it will be downloaded\n// using the current main connection\nconst SMALL_FILE_MAX_SIZE = 131072\nconst REQUESTS_PER_CONNECTION = 3 // some arbitrary magic value that seems to work best\n\n/**\n * Download a file and return it as an iterable, which yields file contents\n * in chunks of a given size. Order of the chunks is guaranteed to be\n * consecutive.\n *\n * @param params Download parameters\n */\nexport async function* downloadAsIterable(\n client: ITelegramClient,\n input: FileDownloadLocation,\n params?: FileDownloadParameters,\n): AsyncIterableIterator<Uint8Array> {\n const offset = params?.offset ?? 0\n\n if (offset % 4096 !== 0) {\n throw new MtArgumentError(`Invalid offset: ${offset}. Must be divisible by 4096`)\n }\n\n let dcId = params?.dcId\n let fileSize = params?.fileSize\n\n const abortSignal = params?.abortSignal\n let aborted = false\n\n let location: tl.TypeInputFileLocation | tl.TypeInputWebFileLocation\n if (input instanceof FileLocation) {\n let locationInner = input.location\n\n if (typeof locationInner === 'function') {\n locationInner = locationInner()\n }\n\n if (ArrayBuffer.isView(locationInner)) {\n yield locationInner\n\n return\n }\n if (!dcId) dcId = input.dcId\n if (!fileSize) fileSize = input.fileSize\n location = locationInner\n } else if (typeof input === 'string') {\n const parsed = parseFileId(getPlatform(), input)\n\n if (parsed.location._ === 'web') {\n location = fileIdToInputWebFileLocation(parsed)\n } else {\n location = fileIdToInputFileLocation(parsed)\n }\n } else location = input\n\n const isWeb = tl.isAnyInputWebFileLocation(location)\n\n // we will receive a FileMigrateError in case this is invalid\n const primaryDcId = await client.getPrimaryDcId()\n if (!dcId) dcId = primaryDcId\n\n const partSizeKb = params?.partSize ?? (fileSize ? determinePartSize(fileSize) : 64)\n\n if (partSizeKb % 4 !== 0) {\n throw new MtArgumentError(`Invalid part size: ${partSizeKb}. Must be divisible by 4.`)\n }\n\n const chunkSize = partSizeKb * 1024\n\n let limitBytes = params?.limit ?? fileSize ?? Infinity\n if (limitBytes === 0) return\n\n let numChunks = limitBytes === Infinity ? Infinity : ~~((limitBytes + chunkSize - offset - 1) / chunkSize)\n\n let nextChunkIdx = 0\n let nextWorkerChunkIdx = 0\n const nextChunkCv = new ConditionVariable()\n const buffer: Record<number, Uint8Array> = {}\n\n const isSmall = fileSize && fileSize <= SMALL_FILE_MAX_SIZE\n let connectionKind: ConnectionKind\n\n if (isSmall) {\n connectionKind = dcId === primaryDcId ? 'main' : 'downloadSmall'\n } else {\n connectionKind = 'download'\n }\n const poolSize = await client.getPoolSize(connectionKind, dcId)\n\n client.log.debug(\n 'Downloading file of size %d from dc %d using %s connection pool (pool size: %d)',\n limitBytes,\n dcId,\n connectionKind,\n poolSize,\n )\n\n const downloadChunk = async (chunk = nextWorkerChunkIdx++): Promise<void> => {\n let result: tl.RpcCallReturn['upload.getFile'] | tl.RpcCallReturn['upload.getWebFile']\n\n if (aborted) {\n return\n }\n\n try {\n result = await client.call(\n {\n _: isWeb ? 'upload.getWebFile' : 'upload.getFile',\n // eslint-disable-next-line\n location: location as any,\n offset: chunkSize * chunk,\n limit: chunkSize,\n },\n {\n dcId,\n kind: connectionKind,\n maxRetryCount: Infinity, // retry until explicitly aborted (or finished)\n abortSignal,\n },\n )\n } catch (e: unknown) {\n if (e instanceof DOMException && e.name === 'AbortError') return\n if (!tl.RpcError.is(e)) throw e\n\n if (e.is('FILE_MIGRATE_%d')) {\n dcId = e.newDc\n\n return downloadChunk(chunk)\n } else if (e.is('FILEREF_UPGRADE_NEEDED')) {\n // todo: implement someday\n // see: https://github.com/LonamiWebs/Telethon/blob/0e8bd8248cc649637b7c392616887c50986427a0/telethon/client/downloads.py#L99\n throw new MtUnsupportedError('File ref expired!')\n } else throw e\n }\n\n if (result._ === 'upload.fileCdnRedirect') {\n // we shouldnt receive them since cdnSupported is not set in the getFile request.\n // also, i couldnt find any media that would be downloaded from cdn, so even if\n // i implemented that, i wouldnt be able to test that, so :shrug:\n throw new MtUnsupportedError('Received CDN redirect, which is not supported (yet)')\n }\n\n if (aborted) {\n return\n }\n\n if (result._ === 'upload.webFile' && result.size && limitBytes === Infinity) {\n limitBytes = result.size\n numChunks = ~~((limitBytes + chunkSize - offset - 1) / chunkSize)\n }\n\n buffer[chunk] = result.bytes\n\n if (chunk === nextChunkIdx) {\n nextChunkCv.notify()\n }\n\n if (nextWorkerChunkIdx < numChunks && result.bytes.length === chunkSize) {\n return downloadChunk()\n }\n }\n\n let error: unknown = undefined\n void Promise.all(Array.from({ length: Math.min(poolSize * REQUESTS_PER_CONNECTION, numChunks) }, downloadChunk))\n .catch((e) => {\n client.log.debug('download workers errored: %s', e.message)\n error = e\n aborted = true // not really aborted, but we dont want to download more chunks\n nextChunkCv.notify()\n })\n .then(() => {\n client.log.debug('download workers finished')\n })\n\n // to avoid MaxListenersExceededWarning we do this instead\n // already sent requests can go to hell (they will get ignored)\n abortSignal?.addEventListener('abort', () => {\n client.log.debug('download aborted')\n error = abortSignal.reason\n aborted = true\n nextChunkCv.notify()\n })\n\n let position = offset\n\n while (position < limitBytes) {\n await nextChunkCv.wait()\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n if (error) throw error\n\n while (nextChunkIdx in buffer) {\n const buf = buffer[nextChunkIdx]\n delete buffer[nextChunkIdx]\n\n position += buf.length\n\n params?.progressCallback?.(position, limitBytes)\n\n yield buf\n\n nextChunkIdx++\n\n if (buf.length < chunkSize) {\n // we received the last chunk\n return\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"download-node-stream.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-node-stream.ts"],"names":[],"mappings":"AAAA,sDAAsD","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters } from '../../types/index.js'\n\n// @available=both\n/**\n * Download a remote file as a Node.js Readable stream.\n *\n * @param params File download parameters\n */\ndeclare function downloadAsNodeStream(\n client: ITelegramClient,\n location: FileDownloadLocation,\n params?: FileDownloadParameters,\n): import('stream').Readable\n"]}
1
+ {"version":3,"file":"download-node-stream.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-node-stream.ts"],"names":[],"mappings":"AAAA,sDAAsD","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters } from '../../types/index.js'\n\n// @available=both\n/**\n * Download a remote file as a Node.js Readable stream.\n *\n * @param params File download parameters\n */\ndeclare function downloadAsNodeStream(\n client: ITelegramClient,\n location: FileDownloadLocation,\n params?: FileDownloadParameters,\n): import('node:stream').Readable\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"download-stream.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC5B,MAAuB,EACvB,QAA8B,EAC9B,MAA+B;IAE/B,IAAI,QAAQ,YAAY,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC3E,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAC3C;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IAEpC,IAAI,MAAM,EAAE,WAAW,EAAE;QACrB,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;KACL;IAED,OAAO,IAAI,cAAc,CAAa;QAClC,KAAK,CAAC,UAAU;YACZ,CAAC,KAAK,IAAI,EAAE;gBACR,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACpE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;iBAC5B;gBAED,UAAU,CAAC,KAAK,EAAE,CAAA;YACtB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM;YACF,MAAM,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;KACJ,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters, FileLocation } from '../../types/index.js'\nimport { bufferToStream } from '../../utils/stream-utils.js'\nimport { downloadAsIterable } from './download-iterable.js'\n\n/**\n * Download a file and return it as a readable stream,\n * streaming file contents.\n *\n * @param params File download parameters\n */\nexport function downloadAsStream(\n client: ITelegramClient,\n location: FileDownloadLocation,\n params?: FileDownloadParameters,\n): ReadableStream<Uint8Array> {\n if (location instanceof FileLocation && ArrayBuffer.isView(location.location)) {\n return bufferToStream(location.location)\n }\n\n const cancel = new AbortController()\n\n if (params?.abortSignal) {\n params?.abortSignal.addEventListener('abort', () => {\n cancel.abort()\n })\n }\n\n return new ReadableStream<Uint8Array>({\n start(controller) {\n (async () => {\n for await (const chunk of downloadAsIterable(client, location, params)) {\n controller.enqueue(chunk)\n }\n\n controller.close()\n })().catch((e) => controller.error(e))\n },\n cancel() {\n cancel.abort()\n },\n })\n}\n"]}
1
+ {"version":3,"file":"download-stream.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/download-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC5B,MAAuB,EACvB,QAA8B,EAC9B,MAA+B;IAE/B,IAAI,QAAQ,YAAY,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5E,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IAEpC,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;QACtB,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,IAAI,cAAc,CAAa;QAClC,KAAK,CAAC,UAAU;YACZ,CAAC,KAAK,IAAI,EAAE;gBACR,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;oBACrE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC;gBAED,UAAU,CAAC,KAAK,EAAE,CAAA;YACtB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM;YACF,MAAM,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;KACJ,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { FileDownloadLocation, FileDownloadParameters, FileLocation } from '../../types/index.js'\nimport { bufferToStream } from '../../utils/stream-utils.js'\nimport { downloadAsIterable } from './download-iterable.js'\n\n/**\n * Download a file and return it as a readable stream,\n * streaming file contents.\n *\n * @param params File download parameters\n */\nexport function downloadAsStream(\n client: ITelegramClient,\n location: FileDownloadLocation,\n params?: FileDownloadParameters,\n): ReadableStream<Uint8Array> {\n if (location instanceof FileLocation && ArrayBuffer.isView(location.location)) {\n return bufferToStream(location.location)\n }\n\n const cancel = new AbortController()\n\n if (params?.abortSignal) {\n params?.abortSignal.addEventListener('abort', () => {\n cancel.abort()\n })\n }\n\n return new ReadableStream<Uint8Array>({\n start(controller) {\n (async () => {\n for await (const chunk of downloadAsIterable(client, location, params)) {\n controller.enqueue(chunk)\n }\n\n controller.close()\n })().catch((e) => controller.error(e))\n },\n cancel() {\n cancel.abort()\n },\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-file-to-document.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/normalize-file-to-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,MAAuB,EACvB,IAA0C,EAC1C,MAEC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;QACzD,OAAO,IAAI,CAAA;KACd;IAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,CACpC,MAAM,EACN;QACI,IAAI,EAAE,UAAU;QAChB,IAAI;KACP,EACD,MAAM,EACN,IAAI,CACP,CAAA;IAED,YAAY,CAAC,0BAA0B,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAA;IACrE,YAAY,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,CAAA;IAEnE,OAAO,KAAK,CAAC,EAAE,CAAA;AACnB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputFileLike } from '../../types/index.js'\nimport { _normalizeInputMedia } from './normalize-input-media.js'\n\n/**\n * @internal\n */\nexport async function _normalizeFileToDocument(\n client: ITelegramClient,\n file: InputFileLike | tl.TypeInputDocument,\n params: {\n progressCallback?: (uploaded: number, total: number) => void\n },\n): Promise<tl.TypeInputDocument> {\n if (typeof file === 'object' && tl.isAnyInputDocument(file)) {\n return file\n }\n\n const media = await _normalizeInputMedia(\n client,\n {\n type: 'document',\n file,\n },\n params,\n true,\n )\n\n assertTypeIs('_normalizeFileToDocument', media, 'inputMediaDocument')\n assertTypeIs('_normalizeFileToDocument', media.id, 'inputDocument')\n\n return media.id\n}\n"]}
1
+ {"version":3,"file":"normalize-file-to-document.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/normalize-file-to-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,MAAuB,EACvB,IAA0C,EAC1C,MAEC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,CACpC,MAAM,EACN;QACI,IAAI,EAAE,UAAU;QAChB,IAAI;KACP,EACD,MAAM,EACN,IAAI,CACP,CAAA;IAED,YAAY,CAAC,0BAA0B,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAA;IACrE,YAAY,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,CAAA;IAEnE,OAAO,KAAK,CAAC,EAAE,CAAA;AACnB,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputFileLike } from '../../types/index.js'\nimport { _normalizeInputMedia } from './normalize-input-media.js'\n\n/**\n * @internal\n */\nexport async function _normalizeFileToDocument(\n client: ITelegramClient,\n file: InputFileLike | tl.TypeInputDocument,\n params: {\n progressCallback?: (uploaded: number, total: number) => void\n },\n): Promise<tl.TypeInputDocument> {\n if (typeof file === 'object' && tl.isAnyInputDocument(file)) {\n return file\n }\n\n const media = await _normalizeInputMedia(\n client,\n {\n type: 'document',\n file,\n },\n params,\n true,\n )\n\n assertTypeIs('_normalizeFileToDocument', media, 'inputMediaDocument')\n assertTypeIs('_normalizeFileToDocument', media.id, 'inputDocument')\n\n return media.id\n}\n"]}