@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":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
@@ -6,6 +6,8 @@ import { Chat } from '../peers/index.js';
6
6
  * Information about a boost slot
7
7
  */
8
8
  class BoostSlot {
9
+ raw;
10
+ _peers;
9
11
  constructor(raw, _peers) {
10
12
  this.raw = raw;
11
13
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"boost-slot.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost-slot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAc,MAAM,mBAAmB,CAAA;AAEpD;;GAEG;AACH,MAAM,OAAO,SAAS;IAClB,YACa,GAAkB,EAClB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,sBAAsB;IACtB,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE/B,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAE5D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACtD,CAAC;CACJ;AAED,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACnC,eAAe,CAAC,SAAS,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Chat, PeersIndex } from '../peers/index.js'\n\n/**\n * Information about a boost slot\n */\nexport class BoostSlot {\n constructor(\n readonly raw: tl.RawMyBoost,\n readonly _peers: PeersIndex,\n ) {}\n\n /** ID of this slot */\n get id(): number {\n return this.raw.slot\n }\n\n /**\n * Whether this slot is occupied\n */\n get occupied(): boolean {\n return this.raw.peer !== undefined\n }\n\n /**\n * Channel that is occupying this slot, if any\n */\n get chat(): Chat | null {\n if (!this.raw.peer) return null\n\n assertTypeIs('BoostSlot.chat', this.raw.peer, 'peerChannel')\n\n return new Chat(this._peers.chat(this.raw.peer.channelId))\n }\n\n /**\n * Date when we started boosting this channel\n *\n * If this slot is not occupied, will be `0`\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when this boost will automatically expire.\n */\n get expireDate(): Date {\n return new Date(this.raw.expires * 1000)\n }\n\n /**\n * If this slot is occupied, returns the date when\n * we can reassing this slot to another channel.\n *\n * If `null`, we can reassign it immediately.\n */\n get cooldownUntil(): Date | null {\n if (!this.raw.cooldownUntilDate) return null\n\n return new Date(this.raw.cooldownUntilDate * 1000)\n }\n}\n\nmemoizeGetters(BoostSlot, ['chat'])\nmakeInspectable(BoostSlot)\n"]}
1
+ {"version":3,"file":"boost-slot.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost-slot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAc,MAAM,mBAAmB,CAAA;AAEpD;;GAEG;AACH,MAAM,OAAO,SAAS;IAEL;IACA;IAFb,YACa,GAAkB,EAClB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,sBAAsB;IACtB,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE/B,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAE5D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACtD,CAAC;CACJ;AAED,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACnC,eAAe,CAAC,SAAS,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Chat, PeersIndex } from '../peers/index.js'\n\n/**\n * Information about a boost slot\n */\nexport class BoostSlot {\n constructor(\n readonly raw: tl.RawMyBoost,\n readonly _peers: PeersIndex,\n ) {}\n\n /** ID of this slot */\n get id(): number {\n return this.raw.slot\n }\n\n /**\n * Whether this slot is occupied\n */\n get occupied(): boolean {\n return this.raw.peer !== undefined\n }\n\n /**\n * Channel that is occupying this slot, if any\n */\n get chat(): Chat | null {\n if (!this.raw.peer) return null\n\n assertTypeIs('BoostSlot.chat', this.raw.peer, 'peerChannel')\n\n return new Chat(this._peers.chat(this.raw.peer.channelId))\n }\n\n /**\n * Date when we started boosting this channel\n *\n * If this slot is not occupied, will be `0`\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when this boost will automatically expire.\n */\n get expireDate(): Date {\n return new Date(this.raw.expires * 1000)\n }\n\n /**\n * If this slot is occupied, returns the date when\n * we can reassing this slot to another channel.\n *\n * If `null`, we can reassign it immediately.\n */\n get cooldownUntil(): Date | null {\n if (!this.raw.cooldownUntilDate) return null\n\n return new Date(this.raw.cooldownUntilDate * 1000)\n }\n}\n\nmemoizeGetters(BoostSlot, ['chat'])\nmakeInspectable(BoostSlot)\n"]}
@@ -3,6 +3,7 @@ import { makeInspectable } from '../../utils/index.js';
3
3
  * Information about boosts in a channel
4
4
  */
5
5
  class BoostStats {
6
+ raw;
6
7
  constructor(raw) {
7
8
  this.raw = raw;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"boost-stats.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost-stats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;GAEG;AACH,MAAM,OAAO,UAAU;IACnB,YAAqB,GAA+B;QAA/B,QAAG,GAAH,GAAG,CAA4B;IAAG,CAAC;IAExD,gEAAgE;IAChE,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,2DAA2D;IAC3D,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAA;IACjD,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAA;IACtC,CAAC;IAED,8CAA8C;IAC9C,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAA;IAC3C,CAAC;IAED;;;OAGG;IACH,IAAI,eAAe;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,CAAC,CAAA;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IACrD,CAAC;IAED,iEAAiE;IACjE,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,IAAI,IAAI,CAAA;IAClD,CAAC;IAED,yEAAyE;IACzE,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,IAAI,IAAI,CAAA;IACjD,CAAC;IAED,8EAA8E;IAC9E,IAAI,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAE1C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IACjF,CAAC;IAED,kDAAkD;IAClD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;IACtC,CAAC;CACJ;AAED,eAAe,CAAC,UAAU,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\n/**\n * Information about boosts in a channel\n */\nexport class BoostStats {\n constructor(readonly raw: tl.premium.RawBoostsStatus) {}\n\n /** Whether this channel is being boosted by the current user */\n get isBoosting(): boolean {\n return this.raw.myBoost!\n }\n\n /**\n * Current level of boosts in this channel.\n *\n * Currently this maps 1-to-1 to the number of stories\n * the channel can post daily\n */\n get level(): number {\n return this.raw.level\n }\n\n /** Whether this channel is already at the maximum level */\n get isMaxLevel(): boolean {\n return this.raw.nextLevelBoosts === undefined\n }\n\n /**\n * The number of boosts acquired from created Telegram Premium\n * gift codes and giveaways, only available to channel admins\n */\n get gifts(): number {\n return this.raw.giftBoosts ?? 0\n }\n\n /**\n * Number of boosts that were needed for the current level\n */\n get currentLevelBoosts(): number {\n return this.raw.currentLevelBoosts\n }\n\n /** Total number of boosts this channel has */\n get currentBoosts(): number {\n return this.raw.boosts\n }\n\n /**\n * Number of boosts the channel must have to reach the next level\n *\n * `null` if the channel is already at the maximum level\n */\n get nextLevelBoosts(): number | null {\n return this.raw.nextLevelBoosts ?? null\n }\n\n /**\n * Number of boosts the channel needs in addition to the current value\n * to reach the next level\n */\n get remainingBoosts(): number {\n if (!this.raw.nextLevelBoosts) return 0\n\n return this.raw.nextLevelBoosts - this.raw.boosts\n }\n\n /** If available, total number of subscribers this channel has */\n get totalSubscribers(): number | null {\n return this.raw.premiumAudience?.total ?? null\n }\n\n /** If available, total number of Premium subscribers this channel has */\n get totalPremiumSubscribers(): number | null {\n return this.raw.premiumAudience?.part ?? null\n }\n\n /** If available, percentage of this channel's subscribers that are Premium */\n get premiumSubscribersPercentage(): number | null {\n if (!this.raw.premiumAudience) return null\n\n return (this.raw.premiumAudience.part / this.raw.premiumAudience.total) * 100\n }\n\n /** URL that would bring up the boost interface */\n get url(): string {\n return this.raw.boostUrl\n }\n\n /**\n * If {@link isBoosting}, IDs of the boost slots that are\n * currently occupied by this channel\n */\n get boostSlots(): number[] {\n return this.raw.myBoostSlots ?? []\n }\n}\n\nmakeInspectable(BoostStats)\n"]}
1
+ {"version":3,"file":"boost-stats.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost-stats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;GAEG;AACH,MAAM,OAAO,UAAU;IACE;IAArB,YAAqB,GAA+B;QAA/B,QAAG,GAAH,GAAG,CAA4B;IAAG,CAAC;IAExD,gEAAgE;IAChE,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,2DAA2D;IAC3D,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAA;IACjD,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAA;IACtC,CAAC;IAED,8CAA8C;IAC9C,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAA;IAC3C,CAAC;IAED;;;OAGG;IACH,IAAI,eAAe;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,CAAC,CAAA;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IACrD,CAAC;IAED,iEAAiE;IACjE,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,IAAI,IAAI,CAAA;IAClD,CAAC;IAED,yEAAyE;IACzE,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,IAAI,IAAI,CAAA;IACjD,CAAC;IAED,8EAA8E;IAC9E,IAAI,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAE1C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IACjF,CAAC;IAED,kDAAkD;IAClD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;IACtC,CAAC;CACJ;AAED,eAAe,CAAC,UAAU,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\n/**\n * Information about boosts in a channel\n */\nexport class BoostStats {\n constructor(readonly raw: tl.premium.RawBoostsStatus) {}\n\n /** Whether this channel is being boosted by the current user */\n get isBoosting(): boolean {\n return this.raw.myBoost!\n }\n\n /**\n * Current level of boosts in this channel.\n *\n * Currently this maps 1-to-1 to the number of stories\n * the channel can post daily\n */\n get level(): number {\n return this.raw.level\n }\n\n /** Whether this channel is already at the maximum level */\n get isMaxLevel(): boolean {\n return this.raw.nextLevelBoosts === undefined\n }\n\n /**\n * The number of boosts acquired from created Telegram Premium\n * gift codes and giveaways, only available to channel admins\n */\n get gifts(): number {\n return this.raw.giftBoosts ?? 0\n }\n\n /**\n * Number of boosts that were needed for the current level\n */\n get currentLevelBoosts(): number {\n return this.raw.currentLevelBoosts\n }\n\n /** Total number of boosts this channel has */\n get currentBoosts(): number {\n return this.raw.boosts\n }\n\n /**\n * Number of boosts the channel must have to reach the next level\n *\n * `null` if the channel is already at the maximum level\n */\n get nextLevelBoosts(): number | null {\n return this.raw.nextLevelBoosts ?? null\n }\n\n /**\n * Number of boosts the channel needs in addition to the current value\n * to reach the next level\n */\n get remainingBoosts(): number {\n if (!this.raw.nextLevelBoosts) return 0\n\n return this.raw.nextLevelBoosts - this.raw.boosts\n }\n\n /** If available, total number of subscribers this channel has */\n get totalSubscribers(): number | null {\n return this.raw.premiumAudience?.total ?? null\n }\n\n /** If available, total number of Premium subscribers this channel has */\n get totalPremiumSubscribers(): number | null {\n return this.raw.premiumAudience?.part ?? null\n }\n\n /** If available, percentage of this channel's subscribers that are Premium */\n get premiumSubscribersPercentage(): number | null {\n if (!this.raw.premiumAudience) return null\n\n return (this.raw.premiumAudience.part / this.raw.premiumAudience.total) * 100\n }\n\n /** URL that would bring up the boost interface */\n get url(): string {\n return this.raw.boostUrl\n }\n\n /**\n * If {@link isBoosting}, IDs of the boost slots that are\n * currently occupied by this channel\n */\n get boostSlots(): number[] {\n return this.raw.myBoostSlots ?? []\n }\n}\n\nmakeInspectable(BoostStats)\n"]}
@@ -6,6 +6,8 @@ import { User } from '../peers/index.js';
6
6
  * Information about a boost (one or more)
7
7
  */
8
8
  class Boost {
9
+ raw;
10
+ _peers;
9
11
  constructor(raw, _peers) {
10
12
  this.raw = raw;
11
13
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"boost.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAc,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAapD;;GAEG;AACH,MAAM,OAAO,KAAK;IACd,YACa,GAAgB,EAChB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAa;QAChB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,8BAA8B;IAC9B,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,2DAA2D;IAC3D,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,uCAAuC;IACvC,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,gBAAgB,CAAA;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,MAAM,CAAA;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAA;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,MAAM,CAAA;QAElC,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;IACxD,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAEjC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,CAAC;IAED;;;OAGG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAA;IACxC,CAAC;CACJ;AAED,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/B,eAAe,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtUnsupportedError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex, User } from '../peers/index.js'\n\n/**\n * Origin of a boost\n *\n * - `gift` - boost applied because the channel gifted a subscription to some user\n * - `unclaimed_gift` - boost applied because the channel gifted a subscription to some user,\n * but the user hasn't yet claimed it\n * - `giveaway` - boost applied because the user was chosen in a giveaway\n * - `user` - boost applied because the user directly boosted the channel\n */\ntype BoostOrigin = 'gift' | 'unclaimed_gift' | 'giveaway' | 'user'\n\n/**\n * Information about a boost (one or more)\n */\nexport class Boost {\n constructor(\n readonly raw: tl.RawBoost,\n readonly _peers: PeersIndex,\n ) {}\n\n /** Unique ID of this boost */\n get id(): string {\n return this.raw.id\n }\n\n /** Number of boosts this boost is actually representing */\n get count(): number {\n return this.raw.multiplier ?? 1\n }\n\n /** Date when this boost was applied */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when this boost will automatically expire.\n *\n * > **Note**: User can still manually cancel the boost before that date\n */\n get expireDate(): Date {\n return new Date(this.raw.expires * 1000)\n }\n\n /**\n * Whether this boost was applied because the channel\n * directly gifted a subscription to the user\n */\n get origin(): BoostOrigin {\n if (this.raw.unclaimed) return 'unclaimed_gift'\n if (this.raw.gift) return 'gift'\n if (this.raw.giveaway) return 'giveaway'\n if (this.raw.userId) return 'user'\n\n throw new MtUnsupportedError('Unknown boost origin')\n }\n\n /**\n * User who is boosting the channel.\n *\n * Only available for some origins\n */\n get user(): User | null {\n if (!this.raw.userId) return null\n\n return new User(this._peers.user(this.raw.userId))\n }\n\n /**\n * ID of the message containing the giveaway where this\n * user has won\n */\n get giveawayMessageId(): number | null {\n return this.raw.giveawayMsgId ?? null\n }\n\n /**\n * The created Telegram Premium gift code, only set if `origin` is not `user`,\n * AND it is either a gift code for the currently logged in user,\n * or if it was already claimed\n */\n get usedGiftSlug(): string | null {\n return this.raw.usedGiftSlug ?? null\n }\n}\n\nmemoizeGetters(Boost, ['user'])\nmakeInspectable(Boost)\n"]}
1
+ {"version":3,"file":"boost.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAc,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAapD;;GAEG;AACH,MAAM,OAAO,KAAK;IAED;IACA;IAFb,YACa,GAAgB,EAChB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAa;QAChB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,8BAA8B;IAC9B,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,2DAA2D;IAC3D,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,uCAAuC;IACvC,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,gBAAgB,CAAA;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,MAAM,CAAA;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAA;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,MAAM,CAAA;QAElC,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;IACxD,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAEjC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,CAAC;IAED;;;OAGG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAA;IACxC,CAAC;CACJ;AAED,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/B,eAAe,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtUnsupportedError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex, User } from '../peers/index.js'\n\n/**\n * Origin of a boost\n *\n * - `gift` - boost applied because the channel gifted a subscription to some user\n * - `unclaimed_gift` - boost applied because the channel gifted a subscription to some user,\n * but the user hasn't yet claimed it\n * - `giveaway` - boost applied because the user was chosen in a giveaway\n * - `user` - boost applied because the user directly boosted the channel\n */\ntype BoostOrigin = 'gift' | 'unclaimed_gift' | 'giveaway' | 'user'\n\n/**\n * Information about a boost (one or more)\n */\nexport class Boost {\n constructor(\n readonly raw: tl.RawBoost,\n readonly _peers: PeersIndex,\n ) {}\n\n /** Unique ID of this boost */\n get id(): string {\n return this.raw.id\n }\n\n /** Number of boosts this boost is actually representing */\n get count(): number {\n return this.raw.multiplier ?? 1\n }\n\n /** Date when this boost was applied */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when this boost will automatically expire.\n *\n * > **Note**: User can still manually cancel the boost before that date\n */\n get expireDate(): Date {\n return new Date(this.raw.expires * 1000)\n }\n\n /**\n * Whether this boost was applied because the channel\n * directly gifted a subscription to the user\n */\n get origin(): BoostOrigin {\n if (this.raw.unclaimed) return 'unclaimed_gift'\n if (this.raw.gift) return 'gift'\n if (this.raw.giveaway) return 'giveaway'\n if (this.raw.userId) return 'user'\n\n throw new MtUnsupportedError('Unknown boost origin')\n }\n\n /**\n * User who is boosting the channel.\n *\n * Only available for some origins\n */\n get user(): User | null {\n if (!this.raw.userId) return null\n\n return new User(this._peers.user(this.raw.userId))\n }\n\n /**\n * ID of the message containing the giveaway where this\n * user has won\n */\n get giveawayMessageId(): number | null {\n return this.raw.giveawayMsgId ?? null\n }\n\n /**\n * The created Telegram Premium gift code, only set if `origin` is not `user`,\n * AND it is either a gift code for the currently logged in user,\n * or if it was already claimed\n */\n get usedGiftSlug(): string | null {\n return this.raw.usedGiftSlug ?? null\n }\n}\n\nmemoizeGetters(Boost, ['user'])\nmakeInspectable(Boost)\n"]}
@@ -3,6 +3,7 @@ import { makeInspectable } from '../../utils/index.js';
3
3
  * Information about user's emoji status
4
4
  */
5
5
  class EmojiStatus {
6
+ raw;
6
7
  constructor(raw) {
7
8
  this.raw = raw;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-status.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/emoji-status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,YAAqB,GAAwD;QAAxD,QAAG,GAAH,GAAG,CAAqD;IAAG,CAAC;IAEjF,6BAA6B;IAC7B,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,mDAAmD;IACnD,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,aAAa;YAAE,OAAO,IAAI,CAAA;QAE7C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC1C,CAAC;CACJ;AAED,eAAe,CAAC,WAAW,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\n/**\n * Information about user's emoji status\n */\nexport class EmojiStatus {\n constructor(readonly raw: Exclude<tl.TypeEmojiStatus, tl.RawEmojiStatusEmpty>) {}\n\n /** ID of the custom emoji */\n get emoji(): tl.Long {\n return this.raw.documentId\n }\n\n /** This status is valid at most until this date */\n get expireDate(): Date | null {\n if (this.raw._ === 'emojiStatus') return null\n\n return new Date(this.raw.until * 1000)\n }\n}\n\nmakeInspectable(EmojiStatus)\n"]}
1
+ {"version":3,"file":"emoji-status.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/emoji-status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;GAEG;AACH,MAAM,OAAO,WAAW;IACC;IAArB,YAAqB,GAAwD;QAAxD,QAAG,GAAH,GAAG,CAAqD;IAAG,CAAC;IAEjF,6BAA6B;IAC7B,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,mDAAmD;IACnD,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,aAAa;YAAE,OAAO,IAAI,CAAA;QAE7C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC1C,CAAC;CACJ;AAED,eAAe,CAAC,WAAW,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\n/**\n * Information about user's emoji status\n */\nexport class EmojiStatus {\n constructor(readonly raw: Exclude<tl.TypeEmojiStatus, tl.RawEmojiStatusEmpty>) {}\n\n /** ID of the custom emoji */\n get emoji(): tl.Long {\n return this.raw.documentId\n }\n\n /** This status is valid at most until this date */\n get expireDate(): Date | null {\n if (this.raw._ === 'emojiStatus') return null\n\n return new Date(this.raw.until * 1000)\n }\n}\n\nmakeInspectable(EmojiStatus)\n"]}
@@ -8,6 +8,8 @@ import { toReactionEmoji } from './types.js';
8
8
  * Reactions of a user to a message
9
9
  */
10
10
  class PeerReaction {
11
+ raw;
12
+ _peers;
11
13
  constructor(raw, _peers) {
12
14
  this.raw = raw;
13
15
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"peer-reaction.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/peer-reaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAiB,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D;;GAEG;AACH,MAAM,OAAO,YAAY;IACrB,YACa,GAA8B,EAC9B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAA2B;QAC9B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAE9D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7D,CAAC;CACJ;AAED,cAAc,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACtC,eAAe,CAAC,YAAY,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\nimport { ReactionEmoji, toReactionEmoji } from './types.js'\n\n/**\n * Reactions of a user to a message\n */\nexport class PeerReaction {\n constructor(\n readonly raw: tl.RawMessagePeerReaction,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Emoji representing the reaction\n */\n get emoji(): ReactionEmoji {\n return toReactionEmoji(this.raw.reaction)\n }\n\n /**\n * Whether this is a big reaction\n */\n get big(): boolean {\n return this.raw.big!\n }\n\n /**\n * Whether this reaction is unread by the current user\n */\n get unread(): boolean {\n return this.raw.unread!\n }\n\n /**\n * ID of the user who has reacted\n */\n get userId(): number {\n return getMarkedPeerId(this.raw.peerId)\n }\n\n /**\n * User who has reacted\n */\n get user(): User {\n assertTypeIs('PeerReaction#user', this.raw.peerId, 'peerUser')\n\n return new User(this._peers.user(this.raw.peerId.userId))\n }\n}\n\nmemoizeGetters(PeerReaction, ['user'])\nmakeInspectable(PeerReaction)\n"]}
1
+ {"version":3,"file":"peer-reaction.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/peer-reaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAiB,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D;;GAEG;AACH,MAAM,OAAO,YAAY;IAER;IACA;IAFb,YACa,GAA8B,EAC9B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAA2B;QAC9B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAE9D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7D,CAAC;CACJ;AAED,cAAc,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACtC,eAAe,CAAC,YAAY,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\nimport { ReactionEmoji, toReactionEmoji } from './types.js'\n\n/**\n * Reactions of a user to a message\n */\nexport class PeerReaction {\n constructor(\n readonly raw: tl.RawMessagePeerReaction,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Emoji representing the reaction\n */\n get emoji(): ReactionEmoji {\n return toReactionEmoji(this.raw.reaction)\n }\n\n /**\n * Whether this is a big reaction\n */\n get big(): boolean {\n return this.raw.big!\n }\n\n /**\n * Whether this reaction is unread by the current user\n */\n get unread(): boolean {\n return this.raw.unread!\n }\n\n /**\n * ID of the user who has reacted\n */\n get userId(): number {\n return getMarkedPeerId(this.raw.peerId)\n }\n\n /**\n * User who has reacted\n */\n get user(): User {\n assertTypeIs('PeerReaction#user', this.raw.peerId, 'peerUser')\n\n return new User(this._peers.user(this.raw.peerId.userId))\n }\n}\n\nmemoizeGetters(PeerReaction, ['user'])\nmakeInspectable(PeerReaction)\n"]}
@@ -4,6 +4,7 @@ import { toReactionEmoji } from './types.js';
4
4
  * Reaction count
5
5
  */
6
6
  class ReactionCount {
7
+ raw;
7
8
  constructor(raw) {
8
9
  this.raw = raw;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reaction-count.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/reaction-count.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAiB,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB,YAAqB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAEjD;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAA;IACvC,CAAC;CACJ;AAED,eAAe,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { ReactionEmoji, toReactionEmoji } from './types.js'\n\n/**\n * Reaction count\n */\nexport class ReactionCount {\n constructor(readonly raw: tl.RawReactionCount) {}\n\n /**\n * Emoji representing the reaction\n */\n get emoji(): ReactionEmoji {\n return toReactionEmoji(this.raw.reaction)\n }\n\n /**\n * Number of users who reacted with this emoji\n */\n get count(): number {\n return this.raw.count\n }\n\n /**\n * If the current user has reacted with this emoji,\n * this field will contain the order in which the\n * reaction was added.\n */\n get order(): number | null {\n return this.raw.chosenOrder ?? null\n }\n}\n\nmakeInspectable(ReactionCount)\n"]}
1
+ {"version":3,"file":"reaction-count.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/reaction-count.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAiB,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D;;GAEG;AACH,MAAM,OAAO,aAAa;IACD;IAArB,YAAqB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAEjD;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAA;IACvC,CAAC;CACJ;AAED,eAAe,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { ReactionEmoji, toReactionEmoji } from './types.js'\n\n/**\n * Reaction count\n */\nexport class ReactionCount {\n constructor(readonly raw: tl.RawReactionCount) {}\n\n /**\n * Emoji representing the reaction\n */\n get emoji(): ReactionEmoji {\n return toReactionEmoji(this.raw.reaction)\n }\n\n /**\n * Number of users who reacted with this emoji\n */\n get count(): number {\n return this.raw.count\n }\n\n /**\n * If the current user has reacted with this emoji,\n * this field will contain the order in which the\n * reaction was added.\n */\n get order(): number | null {\n return this.raw.chosenOrder ?? null\n }\n}\n\nmakeInspectable(ReactionCount)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAc/D,MAAM,UAAU,sBAAsB,CAAC,QAA+B;IAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAC9B,OAAO;YACH,CAAC,EAAE,eAAe;YAClB,QAAQ,EAAE,QAAQ;SACrB,CAAA;KACJ;SAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAC9B,OAAO;YACH,CAAC,EAAE,qBAAqB;YACxB,UAAU,EAAE,QAAQ;SACvB,CAAA;KACJ;SAAM,IAAI,QAAQ,EAAE;QACjB,OAAO,QAAQ,CAAA;KAClB;IAED,OAAO;QACH,CAAC,EAAE,eAAe;KACrB,CAAA;AACL,CAAC;AAKD,MAAM,UAAU,eAAe,CAAC,QAAyB,EAAE,UAAoB;IAC3E,QAAQ,QAAQ,CAAC,CAAC,EAAE;QAChB,KAAK,eAAe;YAChB,OAAO,QAAQ,CAAC,QAAQ,CAAA;QAC5B,KAAK,qBAAqB;YACtB,OAAO,QAAQ,CAAC,UAAU,CAAA;QAC9B,KAAK,eAAe;YAChB,IAAI,CAAC,UAAU,EAAE;gBACb,MAAM,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;aACrF;YAED,OAAO,IAAI,CAAA;KAClB;AACL,CAAC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\n\n/**\n * Input version of {@link ReactionEmoji}, which also accepts bare TL object\n */\nexport type InputReaction = string | tl.Long | tl.TypeReaction\n\n/**\n * Emoji describing a reaction.\n *\n * Either a `string` with a unicode emoji, or a `tl.Long` for a custom emoji\n */\nexport type ReactionEmoji = string | tl.Long\n\nexport function normalizeInputReaction(reaction?: InputReaction | null): tl.TypeReaction {\n if (typeof reaction === 'string') {\n return {\n _: 'reactionEmoji',\n emoticon: reaction,\n }\n } else if (Long.isLong(reaction)) {\n return {\n _: 'reactionCustomEmoji',\n documentId: reaction,\n }\n } else if (reaction) {\n return reaction\n }\n\n return {\n _: 'reactionEmpty',\n }\n}\n\nexport function toReactionEmoji(reaction: tl.TypeReaction, allowEmpty?: false): ReactionEmoji\nexport function toReactionEmoji(reaction: tl.TypeReaction, allowEmpty: true): ReactionEmoji | null\n\nexport function toReactionEmoji(reaction: tl.TypeReaction, allowEmpty?: boolean): ReactionEmoji | null {\n switch (reaction._) {\n case 'reactionEmoji':\n return reaction.emoticon\n case 'reactionCustomEmoji':\n return reaction.documentId\n case 'reactionEmpty':\n if (!allowEmpty) {\n throw new MtTypeAssertionError('toReactionEmoji', 'not reactionEmpty', reaction._)\n }\n\n return null\n }\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/reactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAc/D,MAAM,UAAU,sBAAsB,CAAC,QAA+B;IAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACH,CAAC,EAAE,eAAe;YAClB,QAAQ,EAAE,QAAQ;SACrB,CAAA;IACL,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO;YACH,CAAC,EAAE,qBAAqB;YACxB,UAAU,EAAE,QAAQ;SACvB,CAAA;IACL,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,OAAO;QACH,CAAC,EAAE,eAAe;KACrB,CAAA;AACL,CAAC;AAKD,MAAM,UAAU,eAAe,CAAC,QAAyB,EAAE,UAAoB;IAC3E,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,eAAe;YAChB,OAAO,QAAQ,CAAC,QAAQ,CAAA;QAC5B,KAAK,qBAAqB;YACtB,OAAO,QAAQ,CAAC,UAAU,CAAA;QAC9B,KAAK,eAAe;YAChB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;YACtF,CAAC;YAED,OAAO,IAAI,CAAA;IACnB,CAAC;AACL,CAAC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\n\n/**\n * Input version of {@link ReactionEmoji}, which also accepts bare TL object\n */\nexport type InputReaction = string | tl.Long | tl.TypeReaction\n\n/**\n * Emoji describing a reaction.\n *\n * Either a `string` with a unicode emoji, or a `tl.Long` for a custom emoji\n */\nexport type ReactionEmoji = string | tl.Long\n\nexport function normalizeInputReaction(reaction?: InputReaction | null): tl.TypeReaction {\n if (typeof reaction === 'string') {\n return {\n _: 'reactionEmoji',\n emoticon: reaction,\n }\n } else if (Long.isLong(reaction)) {\n return {\n _: 'reactionCustomEmoji',\n documentId: reaction,\n }\n } else if (reaction) {\n return reaction\n }\n\n return {\n _: 'reactionEmpty',\n }\n}\n\nexport function toReactionEmoji(reaction: tl.TypeReaction, allowEmpty?: false): ReactionEmoji\nexport function toReactionEmoji(reaction: tl.TypeReaction, allowEmpty: true): ReactionEmoji | null\n\nexport function toReactionEmoji(reaction: tl.TypeReaction, allowEmpty?: boolean): ReactionEmoji | null {\n switch (reaction._) {\n case 'reactionEmoji':\n return reaction.emoticon\n case 'reactionCustomEmoji':\n return reaction.documentId\n case 'reactionEmpty':\n if (!allowEmpty) {\n throw new MtTypeAssertionError('toReactionEmoji', 'not reactionEmpty', reaction._)\n }\n\n return null\n }\n}\n"]}
@@ -10,11 +10,11 @@ import { StoriesStealthMode } from './stealth-mode.js';
10
10
  export declare class AllStories {
11
11
  /** Raw TL object */
12
12
  readonly raw: tl.stories.RawAllStories;
13
+ /** Peers index */
14
+ readonly _peers: PeersIndex;
13
15
  constructor(
14
16
  /** Raw TL object */
15
17
  raw: tl.stories.RawAllStories);
16
- /** Peers index */
17
- readonly _peers: PeersIndex;
18
18
  /** Whether there are more stories to fetch */
19
19
  get hasMore(): boolean;
20
20
  /** Next offset for pagination */
@@ -9,11 +9,13 @@ import { StoriesStealthMode } from './stealth-mode.js';
9
9
  * Returned by {@link TelegramClient.getAllStories}
10
10
  */
11
11
  class AllStories {
12
+ raw;
13
+ /** Peers index */
14
+ _peers;
12
15
  constructor(
13
16
  /** Raw TL object */
14
17
  raw) {
15
18
  this.raw = raw;
16
- /** Peers index */
17
19
  this._peers = PeersIndex.from(this.raw);
18
20
  }
19
21
  /** Whether there are more stories to fetch */
@@ -1 +1 @@
1
- {"version":3,"file":"all-stories.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/stories/all-stories.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACnB;IACI,oBAAoB;IACX,GAA6B;QAA7B,QAAG,GAAH,GAAG,CAA0B;QAG1C,kBAAkB;QACT,WAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAHxC,CAAC;IAKJ,8CAA8C;IAC9C,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,oDAAoD;IACpD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,+BAA+B;IAC/B,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7E,CAAC;IAED,wBAAwB;IACxB,IAAI,WAAW;QACX,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACvD,CAAC;CACJ;AAED,cAAc,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;AAC1D,eAAe,CAAC,UAAU,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/index.js'\nimport { PeerStories } from './peer-stories.js'\nimport { StoriesStealthMode } from './stealth-mode.js'\n\n/**\n * All stories of the current user\n *\n * Returned by {@link TelegramClient.getAllStories}\n */\nexport class AllStories {\n constructor(\n /** Raw TL object */\n readonly raw: tl.stories.RawAllStories,\n ) {}\n\n /** Peers index */\n readonly _peers = PeersIndex.from(this.raw)\n\n /** Whether there are more stories to fetch */\n get hasMore(): boolean {\n return this.raw.hasMore!\n }\n\n /** Next offset for pagination */\n get next(): string {\n return this.raw.state\n }\n\n /** Total number of {@link PeerStories} available */\n get total(): number {\n return this.raw.count\n }\n\n /** Peers with their stories */\n get peerStories(): PeerStories[] {\n return this.raw.peerStories.map((it) => new PeerStories(it, this._peers))\n }\n\n /** Stealth mode info */\n get stealthMode(): StoriesStealthMode | null {\n return new StoriesStealthMode(this.raw.stealthMode)\n }\n}\n\nmemoizeGetters(AllStories, ['peerStories', 'stealthMode'])\nmakeInspectable(AllStories)\n"]}
1
+ {"version":3,"file":"all-stories.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/stories/all-stories.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;;GAIG;AACH,MAAM,OAAO,UAAU;IAKN;IAJb,kBAAkB;IACT,MAAM,CAAA;IACf;IACI,oBAAoB;IACX,GAA6B;QAA7B,QAAG,GAAH,GAAG,CAA0B;QAEtC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,oDAAoD;IACpD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,+BAA+B;IAC/B,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7E,CAAC;IAED,wBAAwB;IACxB,IAAI,WAAW;QACX,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACvD,CAAC;CACJ;AAED,cAAc,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;AAC1D,eAAe,CAAC,UAAU,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/index.js'\nimport { PeerStories } from './peer-stories.js'\nimport { StoriesStealthMode } from './stealth-mode.js'\n\n/**\n * All stories of the current user\n *\n * Returned by {@link TelegramClient.getAllStories}\n */\nexport class AllStories {\n /** Peers index */\n readonly _peers\n constructor(\n /** Raw TL object */\n readonly raw: tl.stories.RawAllStories,\n ) {\n this._peers = PeersIndex.from(this.raw)\n }\n\n /** Whether there are more stories to fetch */\n get hasMore(): boolean {\n return this.raw.hasMore!\n }\n\n /** Next offset for pagination */\n get next(): string {\n return this.raw.state\n }\n\n /** Total number of {@link PeerStories} available */\n get total(): number {\n return this.raw.count\n }\n\n /** Peers with their stories */\n get peerStories(): PeerStories[] {\n return this.raw.peerStories.map((it) => new PeerStories(it, this._peers))\n }\n\n /** Stealth mode info */\n get stealthMode(): StoriesStealthMode | null {\n return new StoriesStealthMode(this.raw.stealthMode)\n }\n}\n\nmemoizeGetters(AllStories, ['peerStories', 'stealthMode'])\nmakeInspectable(AllStories)\n"]}
@@ -1,4 +1,5 @@
1
1
  export class StoryInteractiveArea {
2
+ raw;
2
3
  constructor(raw) {
3
4
  this.raw = raw;
4
5
  this.raw = raw;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/base.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,oBAAoB;IAGtC,YAAqB,GAAqB;QAArB,QAAG,GAAH,GAAG,CAAkB;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,2BAA2B;IAC3B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAA;IACxC,CAAC;CACJ","sourcesContent":["import { tl } from '@mtcute/tl'\n\nexport abstract class StoryInteractiveArea {\n abstract type: string\n\n constructor(readonly raw: tl.TypeMediaArea) {\n this.raw = raw\n }\n\n /** X coordinate of the top-left corner of the area */\n get x(): number {\n return this.raw.coordinates.x\n }\n\n /** Y coordinate of the top-left corner of the area */\n get y(): number {\n return this.raw.coordinates.y\n }\n\n /** Width of the area */\n get width(): number {\n return this.raw.coordinates.w\n }\n\n /** Height of the area */\n get height(): number {\n return this.raw.coordinates.h\n }\n\n /** Rotation of the area */\n get rotation(): number {\n return this.raw.coordinates.rotation\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/base.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,oBAAoB;IAGjB;IAArB,YAAqB,GAAqB;QAArB,QAAG,GAAH,GAAG,CAAkB;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,2BAA2B;IAC3B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAA;IACxC,CAAC;CACJ","sourcesContent":["import { tl } from '@mtcute/tl'\n\nexport abstract class StoryInteractiveArea {\n abstract type: string\n\n constructor(readonly raw: tl.TypeMediaArea) {\n this.raw = raw\n }\n\n /** X coordinate of the top-left corner of the area */\n get x(): number {\n return this.raw.coordinates.x\n }\n\n /** Y coordinate of the top-left corner of the area */\n get y(): number {\n return this.raw.coordinates.y\n }\n\n /** Width of the area */\n get width(): number {\n return this.raw.coordinates.w\n }\n\n /** Height of the area */\n get height(): number {\n return this.raw.coordinates.h\n }\n\n /** Rotation of the area */\n get rotation(): number {\n return this.raw.coordinates.rotation\n }\n}\n"]}
@@ -6,11 +6,13 @@ import { StoryInteractiveArea } from './base.js';
6
6
  * Interactive element containing a channel post
7
7
  */
8
8
  class StoryInteractiveChannelPost extends StoryInteractiveArea {
9
+ raw;
10
+ _peers;
11
+ type = 'channel_post';
9
12
  constructor(raw, _peers) {
10
13
  super(raw);
11
14
  this.raw = raw;
12
15
  this._peers = _peers;
13
- this.type = 'channel_post';
14
16
  }
15
17
  /** Channel being mentioned */
16
18
  get chat() {
@@ -1 +1 @@
1
- {"version":3,"file":"channel-post.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/channel-post.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,oBAAoB;IAGjE,YACa,GAA+B,EAC/B,MAAkB;QAE3B,KAAK,CAAC,GAAG,CAAC,CAAA;QAHD,QAAG,GAAH,GAAG,CAA4B;QAC/B,WAAM,GAAN,MAAM,CAAY;QAJtB,SAAI,GAAG,cAAuB,CAAA;IAOvC,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,wCAAwC;IACxC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;CACJ;AAED,cAAc,CAAC,2BAA2B,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACrD,eAAe,CAAC,2BAA2B,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../../utils/index.js'\nimport { memoizeGetters } from '../../../utils/memoize.js'\nimport { Chat } from '../../peers/chat.js'\nimport { PeersIndex } from '../../peers/peers-index.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a channel post\n */\nexport class StoryInteractiveChannelPost extends StoryInteractiveArea {\n readonly type = 'channel_post' as const\n\n constructor(\n readonly raw: tl.RawMediaAreaChannelPost,\n readonly _peers: PeersIndex,\n ) {\n super(raw)\n }\n\n /** Channel being mentioned */\n get chat(): Chat {\n return new Chat(this._peers.chat(this.raw.channelId))\n }\n\n /** ID of the message being mentioned */\n get messageId(): number {\n return this.raw.msgId\n }\n}\n\nmemoizeGetters(StoryInteractiveChannelPost, ['chat'])\nmakeInspectable(StoryInteractiveChannelPost)\n"]}
1
+ {"version":3,"file":"channel-post.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/channel-post.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,oBAAoB;IAIpD;IACA;IAJJ,IAAI,GAAG,cAAuB,CAAA;IAEvC,YACa,GAA+B,EAC/B,MAAkB;QAE3B,KAAK,CAAC,GAAG,CAAC,CAAA;QAHD,QAAG,GAAH,GAAG,CAA4B;QAC/B,WAAM,GAAN,MAAM,CAAY;IAG/B,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,wCAAwC;IACxC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;CACJ;AAED,cAAc,CAAC,2BAA2B,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACrD,eAAe,CAAC,2BAA2B,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../../utils/index.js'\nimport { memoizeGetters } from '../../../utils/memoize.js'\nimport { Chat } from '../../peers/chat.js'\nimport { PeersIndex } from '../../peers/peers-index.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a channel post\n */\nexport class StoryInteractiveChannelPost extends StoryInteractiveArea {\n readonly type = 'channel_post' as const\n\n constructor(\n readonly raw: tl.RawMediaAreaChannelPost,\n readonly _peers: PeersIndex,\n ) {\n super(raw)\n }\n\n /** Channel being mentioned */\n get chat(): Chat {\n return new Chat(this._peers.chat(this.raw.channelId))\n }\n\n /** ID of the message being mentioned */\n get messageId(): number {\n return this.raw.msgId\n }\n}\n\nmemoizeGetters(StoryInteractiveChannelPost, ['chat'])\nmakeInspectable(StoryInteractiveChannelPost)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAA;AAQjH,MAAM,UAAU,8BAA8B,CAAC,GAAqB,EAAE,KAAiB;IACnF,QAAQ,GAAG,CAAC,CAAC,EAAE;QACX,KAAK,4BAA4B;YAC7B,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAC5C,KAAK,mBAAmB;YACpB,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAC5C,KAAK,gBAAgB;YACjB,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAA;QACzC,KAAK,sBAAsB;YACvB,OAAO,IAAI,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtD,KAAK,qBAAqB,CAAC;QAC3B,KAAK,2BAA2B;YAC5B,MAAM,IAAI,oBAAoB,CAAC,yBAAyB,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;KAClF;AACL,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../../types/errors.js'\nimport { PeersIndex } from '../../peers/index.js'\nimport { StoryInteractiveChannelPost } from './channel-post.js'\nimport { StoryInteractiveLocation } from './location.js'\nimport { StoryInteractiveReaction } from './reaction.js'\nimport { StoryInteractiveVenue } from './venue.js'\n\nexport * from './input.js'\nexport { StoryInteractiveChannelPost, StoryInteractiveLocation, StoryInteractiveReaction, StoryInteractiveVenue }\n\nexport type StoryInteractiveElement =\n | StoryInteractiveReaction\n | StoryInteractiveLocation\n | StoryInteractiveVenue\n | StoryInteractiveChannelPost\n\nexport function _storyInteractiveElementFromTl(raw: tl.TypeMediaArea, peers: PeersIndex): StoryInteractiveElement {\n switch (raw._) {\n case 'mediaAreaSuggestedReaction':\n return new StoryInteractiveReaction(raw)\n case 'mediaAreaGeoPoint':\n return new StoryInteractiveLocation(raw)\n case 'mediaAreaVenue':\n return new StoryInteractiveVenue(raw)\n case 'mediaAreaChannelPost':\n return new StoryInteractiveChannelPost(raw, peers)\n case 'inputMediaAreaVenue':\n case 'inputMediaAreaChannelPost':\n throw new MtTypeAssertionError('StoryInteractiveElement', '!input*', raw._)\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAA;AAQjH,MAAM,UAAU,8BAA8B,CAAC,GAAqB,EAAE,KAAiB;IACnF,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QACZ,KAAK,4BAA4B;YAC7B,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAC5C,KAAK,mBAAmB;YACpB,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAC5C,KAAK,gBAAgB;YACjB,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAA;QACzC,KAAK,sBAAsB;YACvB,OAAO,IAAI,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtD,KAAK,qBAAqB,CAAC;QAC3B,KAAK,2BAA2B;YAC5B,MAAM,IAAI,oBAAoB,CAAC,yBAAyB,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACnF,CAAC;AACL,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../../types/errors.js'\nimport { PeersIndex } from '../../peers/index.js'\nimport { StoryInteractiveChannelPost } from './channel-post.js'\nimport { StoryInteractiveLocation } from './location.js'\nimport { StoryInteractiveReaction } from './reaction.js'\nimport { StoryInteractiveVenue } from './venue.js'\n\nexport * from './input.js'\nexport { StoryInteractiveChannelPost, StoryInteractiveLocation, StoryInteractiveReaction, StoryInteractiveVenue }\n\nexport type StoryInteractiveElement =\n | StoryInteractiveReaction\n | StoryInteractiveLocation\n | StoryInteractiveVenue\n | StoryInteractiveChannelPost\n\nexport function _storyInteractiveElementFromTl(raw: tl.TypeMediaArea, peers: PeersIndex): StoryInteractiveElement {\n switch (raw._) {\n case 'mediaAreaSuggestedReaction':\n return new StoryInteractiveReaction(raw)\n case 'mediaAreaGeoPoint':\n return new StoryInteractiveLocation(raw)\n case 'mediaAreaVenue':\n return new StoryInteractiveVenue(raw)\n case 'mediaAreaChannelPost':\n return new StoryInteractiveChannelPost(raw, peers)\n case 'inputMediaAreaVenue':\n case 'inputMediaAreaChannelPost':\n throw new MtTypeAssertionError('StoryInteractiveElement', '!input*', raw._)\n }\n}\n"]}
@@ -11,6 +11,7 @@ import { normalizeInputReaction } from '../../reactions/index.js';
11
11
  * ```
12
12
  */
13
13
  export class StoryElement {
14
+ _position;
14
15
  constructor(_position) {
15
16
  this._position = _position;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/input.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAKvB,OAAO,EAAiB,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEhF;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACrB,YAA4B,SAAqC;QAArC,cAAS,GAAT,SAAS,CAA4B;IAAG,CAAC;IAErE,MAAM,CAAC,EAAE,CAAC,MAAkF;QACxF,OAAO,IAAI,YAAY,CAAC;YACpB,CAAC,EAAE,sBAAsB;YACzB,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,CAAC,EAAE,MAAM,CAAC,KAAK;YACf,CAAC,EAAE,MAAM,CAAC,MAAM;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;SACjC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,MAyBL;QACG,OAAO;YACH,CAAC,EAAE,gBAAgB;YACnB,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,GAAG,EAAE;gBACD,CAAC,EAAE,UAAU;gBACb,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,IAAI;aACxB;YACD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY;YAChD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;SAChC,CAAA;IACL,CAAC;IAED,eAAe,CAAC,OAAgB,EAAE,QAAgB;QAC9C,OAAO;YACH,CAAC,EAAE,qBAAqB;YACxB,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,OAAO;YACP,QAAQ;SACX,CAAA;IACL,CAAC;IAED,QAAQ,CAAC,MAUR;QACG,OAAO;YACH,CAAC,EAAE,mBAAmB;YACtB,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,GAAG,EAAE;gBACD,CAAC,EAAE,UAAU;gBACb,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,IAAI;aACxB;SACJ,CAAA;IACL,CAAC;IAED,QAAQ,CACJ,QAAuB,EACvB,SAUI,EAAE;QAEN,+EAA+E;QAC/E,qDAAqD;QACrD,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAE1B,OAAO;YACH,CAAC,EAAE,4BAA4B;YAC/B,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAA;IACL,CAAC;CACJ","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { VenueSource } from '../../media/index.js'\nimport { InputReaction, normalizeInputReaction } from '../../reactions/index.js'\n\n/**\n * Constructor for interactive story elements.\n *\n * @example\n * ```typescript\n * const element = StoryElement\n * .at({ x: 0, y: 0, width: 10, height: 10 })\n * .reaction('👍', { dark: true })\n * ```\n */\nexport class StoryElement {\n private constructor(private _position: tl.RawMediaAreaCoordinates) {}\n\n static at(params: { x: number; y: number; width: number; height: number; rotation?: number }) {\n return new StoryElement({\n _: 'mediaAreaCoordinates',\n x: params.x,\n y: params.y,\n w: params.width,\n h: params.height,\n rotation: params.rotation ?? 0,\n })\n }\n\n venue(params: {\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n\n /**\n * Venue name\n */\n title: string\n\n /**\n * Venue address\n */\n address: string\n\n /**\n * Source where this venue was acquired\n */\n source: VenueSource\n }): tl.RawMediaAreaVenue {\n return {\n _: 'mediaAreaVenue',\n coordinates: this._position,\n geo: {\n _: 'geoPoint',\n lat: params.latitude,\n long: params.longitude,\n accessHash: Long.ZERO,\n },\n title: params.title,\n address: params.address,\n provider: params.source.provider ?? 'foursquare',\n venueId: params.source.id,\n venueType: params.source.type,\n }\n }\n\n venueFromInline(queryId: tl.Long, resultId: string): tl.RawInputMediaAreaVenue {\n return {\n _: 'inputMediaAreaVenue',\n coordinates: this._position,\n queryId,\n resultId,\n }\n }\n\n location(params: {\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n }): tl.RawMediaAreaGeoPoint {\n return {\n _: 'mediaAreaGeoPoint',\n coordinates: this._position,\n geo: {\n _: 'geoPoint',\n lat: params.latitude,\n long: params.longitude,\n accessHash: Long.ZERO,\n },\n }\n }\n\n reaction(\n reaction: InputReaction,\n params: {\n /**\n * Whether this reaction is on a dark background\n */\n dark?: boolean\n\n /**\n * Whether this reaction is flipped (i.e. has tail on the left)\n */\n flipped?: boolean\n } = {},\n ): tl.RawMediaAreaSuggestedReaction {\n // for whatever reason, in MTProto dimensions of these are expected to be 16:9/\n // we adjust them here to make it easier to work with\n this._position.h *= 9 / 16\n\n return {\n _: 'mediaAreaSuggestedReaction',\n coordinates: this._position,\n reaction: normalizeInputReaction(reaction),\n dark: params.dark,\n flipped: params.flipped,\n }\n }\n}\n"]}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/input.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAKvB,OAAO,EAAiB,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEhF;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACO;IAA5B,YAA4B,SAAqC;QAArC,cAAS,GAAT,SAAS,CAA4B;IAAG,CAAC;IAErE,MAAM,CAAC,EAAE,CAAC,MAAkF;QACxF,OAAO,IAAI,YAAY,CAAC;YACpB,CAAC,EAAE,sBAAsB;YACzB,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,CAAC,EAAE,MAAM,CAAC,KAAK;YACf,CAAC,EAAE,MAAM,CAAC,MAAM;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;SACjC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,MAyBL;QACG,OAAO;YACH,CAAC,EAAE,gBAAgB;YACnB,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,GAAG,EAAE;gBACD,CAAC,EAAE,UAAU;gBACb,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,IAAI;aACxB;YACD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY;YAChD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;SAChC,CAAA;IACL,CAAC;IAED,eAAe,CAAC,OAAgB,EAAE,QAAgB;QAC9C,OAAO;YACH,CAAC,EAAE,qBAAqB;YACxB,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,OAAO;YACP,QAAQ;SACX,CAAA;IACL,CAAC;IAED,QAAQ,CAAC,MAUR;QACG,OAAO;YACH,CAAC,EAAE,mBAAmB;YACtB,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,GAAG,EAAE;gBACD,CAAC,EAAE,UAAU;gBACb,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,IAAI;aACxB;SACJ,CAAA;IACL,CAAC;IAED,QAAQ,CACJ,QAAuB,EACvB,SAUI,EAAE;QAEN,+EAA+E;QAC/E,qDAAqD;QACrD,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAE1B,OAAO;YACH,CAAC,EAAE,4BAA4B;YAC/B,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAA;IACL,CAAC;CACJ","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { VenueSource } from '../../media/index.js'\nimport { InputReaction, normalizeInputReaction } from '../../reactions/index.js'\n\n/**\n * Constructor for interactive story elements.\n *\n * @example\n * ```typescript\n * const element = StoryElement\n * .at({ x: 0, y: 0, width: 10, height: 10 })\n * .reaction('👍', { dark: true })\n * ```\n */\nexport class StoryElement {\n private constructor(private _position: tl.RawMediaAreaCoordinates) {}\n\n static at(params: { x: number; y: number; width: number; height: number; rotation?: number }) {\n return new StoryElement({\n _: 'mediaAreaCoordinates',\n x: params.x,\n y: params.y,\n w: params.width,\n h: params.height,\n rotation: params.rotation ?? 0,\n })\n }\n\n venue(params: {\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n\n /**\n * Venue name\n */\n title: string\n\n /**\n * Venue address\n */\n address: string\n\n /**\n * Source where this venue was acquired\n */\n source: VenueSource\n }): tl.RawMediaAreaVenue {\n return {\n _: 'mediaAreaVenue',\n coordinates: this._position,\n geo: {\n _: 'geoPoint',\n lat: params.latitude,\n long: params.longitude,\n accessHash: Long.ZERO,\n },\n title: params.title,\n address: params.address,\n provider: params.source.provider ?? 'foursquare',\n venueId: params.source.id,\n venueType: params.source.type,\n }\n }\n\n venueFromInline(queryId: tl.Long, resultId: string): tl.RawInputMediaAreaVenue {\n return {\n _: 'inputMediaAreaVenue',\n coordinates: this._position,\n queryId,\n resultId,\n }\n }\n\n location(params: {\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n }): tl.RawMediaAreaGeoPoint {\n return {\n _: 'mediaAreaGeoPoint',\n coordinates: this._position,\n geo: {\n _: 'geoPoint',\n lat: params.latitude,\n long: params.longitude,\n accessHash: Long.ZERO,\n },\n }\n }\n\n reaction(\n reaction: InputReaction,\n params: {\n /**\n * Whether this reaction is on a dark background\n */\n dark?: boolean\n\n /**\n * Whether this reaction is flipped (i.e. has tail on the left)\n */\n flipped?: boolean\n } = {},\n ): tl.RawMediaAreaSuggestedReaction {\n // for whatever reason, in MTProto dimensions of these are expected to be 16:9/\n // we adjust them here to make it easier to work with\n this._position.h *= 9 / 16\n\n return {\n _: 'mediaAreaSuggestedReaction',\n coordinates: this._position,\n reaction: normalizeInputReaction(reaction),\n dark: params.dark,\n flipped: params.flipped,\n }\n }\n}\n"]}
@@ -7,10 +7,11 @@ import { StoryInteractiveArea } from './base.js';
7
7
  * Interactive element containing a location on the map
8
8
  */
9
9
  class StoryInteractiveLocation extends StoryInteractiveArea {
10
+ raw;
11
+ type = 'location';
10
12
  constructor(raw) {
11
13
  super(raw);
12
14
  this.raw = raw;
13
- this.type = 'location';
14
15
  }
15
16
  /**
16
17
  * Geolocation
@@ -1 +1 @@
1
- {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/location.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAG9D,YAAqB,GAA4B;QAC7C,KAAK,CAAC,GAAG,CAAC,CAAA;QADO,QAAG,GAAH,GAAG,CAAyB;QAFxC,SAAI,GAAG,UAAmB,CAAA;IAInC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,YAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAE3E,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;CACJ;AAED,cAAc,CAAC,wBAAwB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AACtD,eAAe,CAAC,wBAAwB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../../utils/index.js'\nimport { memoizeGetters } from '../../../utils/memoize.js'\nimport { Location } from '../../media/location.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a location on the map\n */\nexport class StoryInteractiveLocation extends StoryInteractiveArea {\n readonly type = 'location' as const\n\n constructor(readonly raw: tl.RawMediaAreaGeoPoint) {\n super(raw)\n }\n\n /**\n * Geolocation\n */\n get location(): Location {\n assertTypeIs('StoryInteractiveLocation#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n}\n\nmemoizeGetters(StoryInteractiveLocation, ['location'])\nmakeInspectable(StoryInteractiveLocation)\n"]}
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/location.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAGzC;IAFZ,IAAI,GAAG,UAAmB,CAAA;IAEnC,YAAqB,GAA4B;QAC7C,KAAK,CAAC,GAAG,CAAC,CAAA;QADO,QAAG,GAAH,GAAG,CAAyB;IAEjD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,YAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAE3E,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;CACJ;AAED,cAAc,CAAC,wBAAwB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AACtD,eAAe,CAAC,wBAAwB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../../utils/index.js'\nimport { memoizeGetters } from '../../../utils/memoize.js'\nimport { Location } from '../../media/location.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a location on the map\n */\nexport class StoryInteractiveLocation extends StoryInteractiveArea {\n readonly type = 'location' as const\n\n constructor(readonly raw: tl.RawMediaAreaGeoPoint) {\n super(raw)\n }\n\n /**\n * Geolocation\n */\n get location(): Location {\n assertTypeIs('StoryInteractiveLocation#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n}\n\nmemoizeGetters(StoryInteractiveLocation, ['location'])\nmakeInspectable(StoryInteractiveLocation)\n"]}
@@ -9,10 +9,11 @@ import { StoryInteractiveArea } from './base.js';
9
9
  * For whatever reason, in MTProto dimensions of these are expected to be 16:9
10
10
  */
11
11
  class StoryInteractiveReaction extends StoryInteractiveArea {
12
+ raw;
13
+ type = 'reaction';
12
14
  constructor(raw) {
13
15
  super(raw);
14
16
  this.raw = raw;
15
- this.type = 'reaction';
16
17
  }
17
18
  /** Whether this reaction is on a dark background */
18
19
  get isDark() {
@@ -1 +1 @@
1
- {"version":3,"file":"reaction.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/reaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAG9D,YAAqB,GAAqC;QACtD,KAAK,CAAC,GAAG,CAAC,CAAA;QADO,QAAG,GAAH,GAAG,CAAkC;QAFjD,SAAI,GAAG,UAAmB,CAAA;IAInC,CAAC;IAED,oDAAoD;IACpD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAK,CAAA;IACzB,CAAC;IAED,mEAAmE;IACnE,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED,sCAAsC;IACtC,IAAI,KAAK;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;CACJ;AAED,eAAe,CAAC,wBAAwB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../../utils/index.js'\nimport { ReactionEmoji, toReactionEmoji } from '../../reactions/index.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a reaction.\n *\n * Number of reactions should be taken from {@link StoryViews} by emoji ID\n *\n * For whatever reason, in MTProto dimensions of these are expected to be 16:9\n */\nexport class StoryInteractiveReaction extends StoryInteractiveArea {\n readonly type = 'reaction' as const\n\n constructor(readonly raw: tl.RawMediaAreaSuggestedReaction) {\n super(raw)\n }\n\n /** Whether this reaction is on a dark background */\n get isDark(): boolean {\n return this.raw.dark!\n }\n\n /** Whether this reaction is flipped (i.e. has tail on the left) */\n get isFlipped(): boolean {\n return this.raw.flipped!\n }\n\n /** Emoji representing the reaction */\n get emoji(): ReactionEmoji {\n return toReactionEmoji(this.raw.reaction)\n }\n}\n\nmakeInspectable(StoryInteractiveReaction)\n"]}
1
+ {"version":3,"file":"reaction.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/reaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAGzC;IAFZ,IAAI,GAAG,UAAmB,CAAA;IAEnC,YAAqB,GAAqC;QACtD,KAAK,CAAC,GAAG,CAAC,CAAA;QADO,QAAG,GAAH,GAAG,CAAkC;IAE1D,CAAC;IAED,oDAAoD;IACpD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAK,CAAA;IACzB,CAAC;IAED,mEAAmE;IACnE,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED,sCAAsC;IACtC,IAAI,KAAK;QACL,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;CACJ;AAED,eAAe,CAAC,wBAAwB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../../utils/index.js'\nimport { ReactionEmoji, toReactionEmoji } from '../../reactions/index.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a reaction.\n *\n * Number of reactions should be taken from {@link StoryViews} by emoji ID\n *\n * For whatever reason, in MTProto dimensions of these are expected to be 16:9\n */\nexport class StoryInteractiveReaction extends StoryInteractiveArea {\n readonly type = 'reaction' as const\n\n constructor(readonly raw: tl.RawMediaAreaSuggestedReaction) {\n super(raw)\n }\n\n /** Whether this reaction is on a dark background */\n get isDark(): boolean {\n return this.raw.dark!\n }\n\n /** Whether this reaction is flipped (i.e. has tail on the left) */\n get isFlipped(): boolean {\n return this.raw.flipped!\n }\n\n /** Emoji representing the reaction */\n get emoji(): ReactionEmoji {\n return toReactionEmoji(this.raw.reaction)\n }\n}\n\nmakeInspectable(StoryInteractiveReaction)\n"]}
@@ -7,10 +7,11 @@ import { StoryInteractiveArea } from './base.js';
7
7
  * Interactive element containing a venue
8
8
  */
9
9
  class StoryInteractiveVenue extends StoryInteractiveArea {
10
+ raw;
11
+ type = 'venue';
10
12
  constructor(raw) {
11
13
  super(raw);
12
14
  this.raw = raw;
13
- this.type = 'venue';
14
15
  }
15
16
  /**
16
17
  * Geolocation of the venue
@@ -1 +1 @@
1
- {"version":3,"file":"venue.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/venue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oBAAoB;IAG3D,YAAqB,GAAyB;QAC1C,KAAK,CAAC,GAAG,CAAC,CAAA;QADO,QAAG,GAAH,GAAG,CAAsB;QAFrC,SAAI,GAAG,OAAgB,CAAA;IAIhC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,YAAY,CAAC,gCAAgC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAExE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAmC;YACtD,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAC3B,CAAA;IACL,CAAC;CACJ;AAED,cAAc,CAAC,qBAAqB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AACnD,eAAe,CAAC,qBAAqB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../../utils/index.js'\nimport { memoizeGetters } from '../../../utils/memoize.js'\nimport { Location } from '../../media/location.js'\nimport { VenueSource } from '../../media/venue.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a venue\n */\nexport class StoryInteractiveVenue extends StoryInteractiveArea {\n readonly type = 'venue' as const\n\n constructor(readonly raw: tl.RawMediaAreaVenue) {\n super(raw)\n }\n\n /**\n * Geolocation of the venue\n */\n get location(): Location {\n assertTypeIs('StoryInteractiveVenue#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n\n /**\n * Venue name\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Venue address\n */\n get address(): string {\n return this.raw.address\n }\n\n /**\n * When available, source from where this venue was acquired\n */\n get source(): VenueSource | null {\n if (!this.raw.provider) return null\n\n return {\n provider: this.raw.provider as VenueSource['provider'],\n id: this.raw.venueId,\n type: this.raw.venueType,\n }\n }\n}\n\nmemoizeGetters(StoryInteractiveVenue, ['location'])\nmakeInspectable(StoryInteractiveVenue)\n"]}
1
+ {"version":3,"file":"venue.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/stories/interactive/venue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oBAAoB;IAGtC;IAFZ,IAAI,GAAG,OAAgB,CAAA;IAEhC,YAAqB,GAAyB;QAC1C,KAAK,CAAC,GAAG,CAAC,CAAA;QADO,QAAG,GAAH,GAAG,CAAsB;IAE9C,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,YAAY,CAAC,gCAAgC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAExE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAmC;YACtD,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAC3B,CAAA;IACL,CAAC;CACJ;AAED,cAAc,CAAC,qBAAqB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AACnD,eAAe,CAAC,qBAAqB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../../utils/index.js'\nimport { memoizeGetters } from '../../../utils/memoize.js'\nimport { Location } from '../../media/location.js'\nimport { VenueSource } from '../../media/venue.js'\nimport { StoryInteractiveArea } from './base.js'\n\n/**\n * Interactive element containing a venue\n */\nexport class StoryInteractiveVenue extends StoryInteractiveArea {\n readonly type = 'venue' as const\n\n constructor(readonly raw: tl.RawMediaAreaVenue) {\n super(raw)\n }\n\n /**\n * Geolocation of the venue\n */\n get location(): Location {\n assertTypeIs('StoryInteractiveVenue#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n\n /**\n * Venue name\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Venue address\n */\n get address(): string {\n return this.raw.address\n }\n\n /**\n * When available, source from where this venue was acquired\n */\n get source(): VenueSource | null {\n if (!this.raw.provider) return null\n\n return {\n provider: this.raw.provider as VenueSource['provider'],\n id: this.raw.venueId,\n type: this.raw.venueType,\n }\n }\n}\n\nmemoizeGetters(StoryInteractiveVenue, ['location'])\nmakeInspectable(StoryInteractiveVenue)\n"]}
@@ -4,6 +4,8 @@ import { memoizeGetters } from '../../utils/memoize.js';
4
4
  import { parsePeer } from '../peers/index.js';
5
5
  import { Story } from './story.js';
6
6
  class PeerStories {
7
+ raw;
8
+ _peers;
7
9
  constructor(raw, _peers) {
8
10
  this.raw = raw;
9
11
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"peer-stories.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/stories/peer-stories.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAoB,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,OAAO,WAAW;IACpB,YACa,GAAsB,EACtB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAmB;QACtB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YAC/B,YAAY,CAAC,qBAAqB,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;YAEpD,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAED,cAAc,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAChD,eAAe,CAAC,WAAW,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { parsePeer, Peer, PeersIndex } from '../peers/index.js'\nimport { Story } from './story.js'\n\nexport class PeerStories {\n constructor(\n readonly raw: tl.RawPeerStories,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Peer that owns these stories.\n */\n get peer(): Peer {\n return parsePeer(this.raw.peer, this._peers)\n }\n\n /**\n * ID of the last read story of this peer.\n */\n get maxReadId(): number {\n return this.raw.maxReadId ?? 0\n }\n\n /**\n * List of peer stories.\n */\n get stories(): Story[] {\n return this.raw.stories.map((it) => {\n assertTypeIs('PeerStories#stories', it, 'storyItem')\n\n return new Story(it, this._peers)\n })\n }\n}\n\nmemoizeGetters(PeerStories, ['peer', 'stories'])\nmakeInspectable(PeerStories)\n"]}
1
+ {"version":3,"file":"peer-stories.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/stories/peer-stories.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAoB,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,OAAO,WAAW;IAEP;IACA;IAFb,YACa,GAAsB,EACtB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAmB;QACtB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YAC/B,YAAY,CAAC,qBAAqB,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;YAEpD,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAED,cAAc,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAChD,eAAe,CAAC,WAAW,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { parsePeer, Peer, PeersIndex } from '../peers/index.js'\nimport { Story } from './story.js'\n\nexport class PeerStories {\n constructor(\n readonly raw: tl.RawPeerStories,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Peer that owns these stories.\n */\n get peer(): Peer {\n return parsePeer(this.raw.peer, this._peers)\n }\n\n /**\n * ID of the last read story of this peer.\n */\n get maxReadId(): number {\n return this.raw.maxReadId ?? 0\n }\n\n /**\n * List of peer stories.\n */\n get stories(): Story[] {\n return this.raw.stories.map((it) => {\n assertTypeIs('PeerStories#stories', it, 'storyItem')\n\n return new Story(it, this._peers)\n })\n }\n}\n\nmemoizeGetters(PeerStories, ['peer', 'stories'])\nmakeInspectable(PeerStories)\n"]}
@@ -1,5 +1,6 @@
1
1
  import { makeInspectable } from '../../utils/index.js';
2
2
  class StoriesStealthMode {
3
+ raw;
3
4
  constructor(raw) {
4
5
  this.raw = raw;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stealth-mode.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/stories/stealth-mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,OAAO,kBAAkB;IAC3B,YAAqB,GAA6B;QAA7B,QAAG,GAAH,GAAG,CAA0B;IAAG,CAAC;IAEtD,6CAA6C;IAC7C,IAAI,WAAW;QACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAE1C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,wDAAwD;IACxD,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACtD,CAAC;CACJ;AAED,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\nexport class StoriesStealthMode {\n constructor(readonly raw: tl.RawStoriesStealthMode) {}\n\n /** Stealth mode is active until this date */\n get activeUntil(): Date | null {\n if (!this.raw.activeUntilDate) return null\n\n return new Date(this.raw.activeUntilDate * 1000)\n }\n\n /** Stealth mode is having a cooldown until this date */\n get cooldownUntil(): Date | null {\n if (!this.raw.cooldownUntilDate) return null\n\n return new Date(this.raw.cooldownUntilDate * 1000)\n }\n}\n\nmakeInspectable(StoriesStealthMode)\n"]}
1
+ {"version":3,"file":"stealth-mode.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/stories/stealth-mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,OAAO,kBAAkB;IACN;IAArB,YAAqB,GAA6B;QAA7B,QAAG,GAAH,GAAG,CAA0B;IAAG,CAAC;IAEtD,6CAA6C;IAC7C,IAAI,WAAW;QACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAE1C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,wDAAwD;IACxD,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACtD,CAAC;CACJ;AAED,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\nexport class StoriesStealthMode {\n constructor(readonly raw: tl.RawStoriesStealthMode) {}\n\n /** Stealth mode is active until this date */\n get activeUntil(): Date | null {\n if (!this.raw.activeUntilDate) return null\n\n return new Date(this.raw.activeUntilDate * 1000)\n }\n\n /** Stealth mode is having a cooldown until this date */\n get cooldownUntil(): Date | null {\n if (!this.raw.cooldownUntilDate) return null\n\n return new Date(this.raw.cooldownUntilDate * 1000)\n }\n}\n\nmakeInspectable(StoriesStealthMode)\n"]}
@@ -6,6 +6,8 @@ import { ReactionCount } from '../reactions/reaction-count.js';
6
6
  * Brief information about story views/interactions
7
7
  */
8
8
  class StoryInteractions {
9
+ raw;
10
+ _peers;
9
11
  constructor(raw, _peers) {
10
12
  this.raw = raw;
11
13
  this._peers = _peers;