@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
@@ -6,9 +6,133 @@ const index_js_1 = require("../../utils/index.js");
6
6
  * A dice or another interactive random emoji.
7
7
  */
8
8
  class Dice {
9
+ obj;
10
+ type = 'dice';
11
+ /**
12
+ * A simple 6-sided dice.
13
+ *
14
+ * {@link value} represents its value (1-6)
15
+ */
16
+ static TYPE_DICE = '🎲';
17
+ /**
18
+ * A dart. Telegram dart has 4 rings and middle.
19
+ *
20
+ * {@link value} represents the position of the dart:
21
+ * ![Dart position graph](https://i.imgur.com/iPBm7HG.png)
22
+ */
23
+ static TYPE_DART = '🎯';
24
+ /**
25
+ * A basketball thrown into a hoop.
26
+ *
27
+ * {@link value} represents the motion of the ball:
28
+ * - 1: simple miss (ball hits right part, bounces to the left)
29
+ * - 2: first hit the ring, then miss
30
+ * - 3: ball gets stuck between the ring and the base
31
+ * - 4: first hit the ring, then score
32
+ * - 5: direct score
33
+ */
34
+ static TYPE_BASKETBALL = '🏀';
35
+ /**
36
+ * A football thrown to the gate.
37
+ *
38
+ * {@link value} represents the motion of the ball:
39
+ * - 1: flies above the top barbell
40
+ * - 2: hits right barbell, then miss
41
+ * - 3: direct score in the middle
42
+ * - 4: hits left barbell, then score, then hits right barbell
43
+ * - 5: score in the top-right corner
44
+ */
45
+ static TYPE_FOOTBALL = '⚽️';
46
+ /**
47
+ * A bowling ball thrown to pins.
48
+ *
49
+ * Assuming the following identifiers for the pins:
50
+ * ```
51
+ * 4 5 6
52
+ * 2 3
53
+ * 1
54
+ * ```
55
+ *
56
+ * {@link value} represents the motion of the ball and pins:
57
+ * - 1: the ball touched 6th pin, none are down
58
+ * - 2: the ball hit 4th pin, only 4th pin is down.
59
+ * - 3: the ball hit 1st pin, pins 1, 2, 5 are down, leaving pins 3, 4, 6
60
+ * - 4: the ball hit 1st pin on the right side, all the pins except 2nd and 6th are down
61
+ * - 5: the ball hit 3rd pin and all the pins except 2nd are down.
62
+ * - 6: the ball hit 1st pin and all pins are down
63
+ */
64
+ static TYPE_BOWLING = '🎳';
65
+ /**
66
+ * A slot machine.
67
+ *
68
+ * {@link value} represents the result of the machine.
69
+ * Value itself is an integer in range `[1, 64]`,
70
+ * and is composed out of several parts.
71
+ *
72
+ * > **Note**: The following information is based on the TDesktop
73
+ * > implementation. These are the relevant files:
74
+ * > - [`chat_helpers/stickers_dice_pack.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/chat_helpers/stickers_dice_pack.cpp)
75
+ * > - [`history/view/media/history_view_slot_machine.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/media/history_view_slot_machine.cpp)
76
+ *
77
+ * Unlike other animated dices, this does not have
78
+ * all the possible combinations in the sticker set.
79
+ * Instead, `value` is a specially encoded integer that contains
80
+ * the information about the indexes.
81
+ *
82
+ * There are some base parts of the animations:
83
+ * - 0th sticker is the base background of the machine
84
+ * - 1st sticker is the background of the machine for the "winning" state (i.e. `777`)
85
+ * - 2nd sticker is the frame of the machine, including the handle
86
+ * - 8th sticker is the "idle" state for the left slot
87
+ * - 14th sticker is the "idle" state for the middle slot
88
+ * - 20th sticker is the "idle" state for the right slot
89
+ *
90
+ * The machine result is encoded as 3 concatenated two-bit integers,
91
+ * and the resulting integer is incremented by one.
92
+ *
93
+ * So, to decode the value to its parts, you can use this code:
94
+ * ```typescript
95
+ * const computePartValue = (val: number, idx: number) => ((val - 1) >> (idx * 2)) & 0x03; // 0..3
96
+ * const parts = [
97
+ * computePartValue(msg.media.value, 0),
98
+ * computePartValue(msg.media.value, 1),
99
+ * computePartValue(msg.media.value, 2),
100
+ * ]
101
+ * ```
102
+ *
103
+ * Each part of the value corresponds to a particular slot (i.e. part 0 is left slot,
104
+ * part 1 is middle, part 2 is right). The slot values are as follows:
105
+ * - 0: BAR (displayed as a *BAR* sign on a black background)
106
+ * - 1: BERRIES (displayed as berries, similar to emoji 🍇)
107
+ * - 2: LEMON (displayed as a lemon, similar to emoji 🍋)
108
+ * - 3: SEVEN (displayed as a red digit 7)
109
+ *
110
+ * Therefore, the winning value (i.e. `777`) is represented as `(3 << 4 | 3 << 2 | 3 << 0) + 1 = 64`
111
+ *
112
+ * To determine the needed animation parts, you'll need to apply some shifts.
113
+ * These are the offsets for the individual symbols:
114
+ * - WIN_SEVEN: 0
115
+ * - SEVEN: 1
116
+ * - BAR: 2
117
+ * - BERRIES: 3
118
+ * - LEMON: 4
119
+ *
120
+ * And these are the shifts for each slot:
121
+ * - LEFT: 3
122
+ * - MIDDLE: 9
123
+ * - RIGHT: 15
124
+ *
125
+ * > WIN_SEVEN is the same as SEVEN, but only used if the machine result is `777` (i.e. `value = 64`),
126
+ * > as it contains additional "blinking" animation.
127
+ *
128
+ * The sticker index is computed as follows: `SHIFTS[SLOT] + OFFSETS[SYM]`.
129
+ * For example, berries for the middle slot would be: `SHIFTS[MIDDLE] + OFFSETS[BERRIES] = 9 + 3 = 12`
130
+ *
131
+ * Currently, this sticker set is used for the machine: [SlotMachineAnimated](https://t.me/addstickers/SlotMachineAnimated)
132
+ */
133
+ static TYPE_SLOTS = '🎰';
9
134
  constructor(obj) {
10
135
  this.obj = obj;
11
- this.type = 'dice';
12
136
  }
13
137
  /**
14
138
  * An emoji which was originally sent.
@@ -44,128 +168,5 @@ class Dice {
44
168
  }
45
169
  }
46
170
  exports.Dice = Dice;
47
- /**
48
- * A simple 6-sided dice.
49
- *
50
- * {@link value} represents its value (1-6)
51
- */
52
- Dice.TYPE_DICE = '🎲';
53
- /**
54
- * A dart. Telegram dart has 4 rings and middle.
55
- *
56
- * {@link value} represents the position of the dart:
57
- * ![Dart position graph](https://i.imgur.com/iPBm7HG.png)
58
- */
59
- Dice.TYPE_DART = '🎯';
60
- /**
61
- * A basketball thrown into a hoop.
62
- *
63
- * {@link value} represents the motion of the ball:
64
- * - 1: simple miss (ball hits right part, bounces to the left)
65
- * - 2: first hit the ring, then miss
66
- * - 3: ball gets stuck between the ring and the base
67
- * - 4: first hit the ring, then score
68
- * - 5: direct score
69
- */
70
- Dice.TYPE_BASKETBALL = '🏀';
71
- /**
72
- * A football thrown to the gate.
73
- *
74
- * {@link value} represents the motion of the ball:
75
- * - 1: flies above the top barbell
76
- * - 2: hits right barbell, then miss
77
- * - 3: direct score in the middle
78
- * - 4: hits left barbell, then score, then hits right barbell
79
- * - 5: score in the top-right corner
80
- */
81
- Dice.TYPE_FOOTBALL = '⚽️';
82
- /**
83
- * A bowling ball thrown to pins.
84
- *
85
- * Assuming the following identifiers for the pins:
86
- * ```
87
- * 4 5 6
88
- * 2 3
89
- * 1
90
- * ```
91
- *
92
- * {@link value} represents the motion of the ball and pins:
93
- * - 1: the ball touched 6th pin, none are down
94
- * - 2: the ball hit 4th pin, only 4th pin is down.
95
- * - 3: the ball hit 1st pin, pins 1, 2, 5 are down, leaving pins 3, 4, 6
96
- * - 4: the ball hit 1st pin on the right side, all the pins except 2nd and 6th are down
97
- * - 5: the ball hit 3rd pin and all the pins except 2nd are down.
98
- * - 6: the ball hit 1st pin and all pins are down
99
- */
100
- Dice.TYPE_BOWLING = '🎳';
101
- /**
102
- * A slot machine.
103
- *
104
- * {@link value} represents the result of the machine.
105
- * Value itself is an integer in range `[1, 64]`,
106
- * and is composed out of several parts.
107
- *
108
- * > **Note**: The following information is based on the TDesktop
109
- * > implementation. These are the relevant files:
110
- * > - [`chat_helpers/stickers_dice_pack.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/chat_helpers/stickers_dice_pack.cpp)
111
- * > - [`history/view/media/history_view_slot_machine.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/media/history_view_slot_machine.cpp)
112
- *
113
- * Unlike other animated dices, this does not have
114
- * all the possible combinations in the sticker set.
115
- * Instead, `value` is a specially encoded integer that contains
116
- * the information about the indexes.
117
- *
118
- * There are some base parts of the animations:
119
- * - 0th sticker is the base background of the machine
120
- * - 1st sticker is the background of the machine for the "winning" state (i.e. `777`)
121
- * - 2nd sticker is the frame of the machine, including the handle
122
- * - 8th sticker is the "idle" state for the left slot
123
- * - 14th sticker is the "idle" state for the middle slot
124
- * - 20th sticker is the "idle" state for the right slot
125
- *
126
- * The machine result is encoded as 3 concatenated two-bit integers,
127
- * and the resulting integer is incremented by one.
128
- *
129
- * So, to decode the value to its parts, you can use this code:
130
- * ```typescript
131
- * const computePartValue = (val: number, idx: number) => ((val - 1) >> (idx * 2)) & 0x03; // 0..3
132
- * const parts = [
133
- * computePartValue(msg.media.value, 0),
134
- * computePartValue(msg.media.value, 1),
135
- * computePartValue(msg.media.value, 2),
136
- * ]
137
- * ```
138
- *
139
- * Each part of the value corresponds to a particular slot (i.e. part 0 is left slot,
140
- * part 1 is middle, part 2 is right). The slot values are as follows:
141
- * - 0: BAR (displayed as a *BAR* sign on a black background)
142
- * - 1: BERRIES (displayed as berries, similar to emoji 🍇)
143
- * - 2: LEMON (displayed as a lemon, similar to emoji 🍋)
144
- * - 3: SEVEN (displayed as a red digit 7)
145
- *
146
- * Therefore, the winning value (i.e. `777`) is represented as `(3 << 4 | 3 << 2 | 3 << 0) + 1 = 64`
147
- *
148
- * To determine the needed animation parts, you'll need to apply some shifts.
149
- * These are the offsets for the individual symbols:
150
- * - WIN_SEVEN: 0
151
- * - SEVEN: 1
152
- * - BAR: 2
153
- * - BERRIES: 3
154
- * - LEMON: 4
155
- *
156
- * And these are the shifts for each slot:
157
- * - LEFT: 3
158
- * - MIDDLE: 9
159
- * - RIGHT: 15
160
- *
161
- * > WIN_SEVEN is the same as SEVEN, but only used if the machine result is `777` (i.e. `value = 64`),
162
- * > as it contains additional "blinking" animation.
163
- *
164
- * The sticker index is computed as follows: `SHIFTS[SLOT] + OFFSETS[SYM]`.
165
- * For example, berries for the middle slot would be: `SHIFTS[MIDDLE] + OFFSETS[BERRIES] = 9 + 3 = 12`
166
- *
167
- * Currently, this sticker set is used for the machine: [SlotMachineAnimated](https://t.me/addstickers/SlotMachineAnimated)
168
- */
169
- Dice.TYPE_SLOTS = '🎰';
170
171
  (0, index_js_1.makeInspectable)(Dice, undefined, ['inputMedia']);
171
172
  //# sourceMappingURL=dice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/dice.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AAEtD;;GAEG;AACH,MAAa,IAAI;IAoIb,YAAqB,GAA2B;QAA3B,QAAG,GAAH,GAAG,CAAwB;QAnIvC,SAAI,GAAG,MAAe,CAAA;IAmIoB,CAAC;IAEpD;;;;;OAKG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,gBAAgB;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;SAC9B,CAAA;IACL,CAAC;;AAvKL,oBAwKC;AArKG;;;;GAIG;AACa,cAAS,GAAG,IAAI,AAAP,CAAO;AAEhC;;;;;GAKG;AACa,cAAS,GAAG,IAAI,AAAP,CAAO;AAEhC;;;;;;;;;GASG;AACa,oBAAe,GAAG,IAAI,AAAP,CAAO;AAEtC;;;;;;;;;GASG;AACa,kBAAa,GAAG,IAAI,AAAP,CAAO;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACa,iBAAY,GAAG,IAAI,AAAP,CAAO;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACa,eAAU,GAAG,IAAI,AAAP,CAAO;AAwCrC,IAAA,0BAAe,EAAC,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\n/**\n * A dice or another interactive random emoji.\n */\nexport class Dice {\n readonly type = 'dice' as const\n\n /**\n * A simple 6-sided dice.\n *\n * {@link value} represents its value (1-6)\n */\n static readonly TYPE_DICE = '🎲'\n\n /**\n * A dart. Telegram dart has 4 rings and middle.\n *\n * {@link value} represents the position of the dart:\n * ![Dart position graph](https://i.imgur.com/iPBm7HG.png)\n */\n static readonly TYPE_DART = '🎯'\n\n /**\n * A basketball thrown into a hoop.\n *\n * {@link value} represents the motion of the ball:\n * - 1: simple miss (ball hits right part, bounces to the left)\n * - 2: first hit the ring, then miss\n * - 3: ball gets stuck between the ring and the base\n * - 4: first hit the ring, then score\n * - 5: direct score\n */\n static readonly TYPE_BASKETBALL = '🏀'\n\n /**\n * A football thrown to the gate.\n *\n * {@link value} represents the motion of the ball:\n * - 1: flies above the top barbell\n * - 2: hits right barbell, then miss\n * - 3: direct score in the middle\n * - 4: hits left barbell, then score, then hits right barbell\n * - 5: score in the top-right corner\n */\n static readonly TYPE_FOOTBALL = '⚽️'\n\n /**\n * A bowling ball thrown to pins.\n *\n * Assuming the following identifiers for the pins:\n * ```\n * 4 5 6\n * 2 3\n * 1\n * ```\n *\n * {@link value} represents the motion of the ball and pins:\n * - 1: the ball touched 6th pin, none are down\n * - 2: the ball hit 4th pin, only 4th pin is down.\n * - 3: the ball hit 1st pin, pins 1, 2, 5 are down, leaving pins 3, 4, 6\n * - 4: the ball hit 1st pin on the right side, all the pins except 2nd and 6th are down\n * - 5: the ball hit 3rd pin and all the pins except 2nd are down.\n * - 6: the ball hit 1st pin and all pins are down\n */\n static readonly TYPE_BOWLING = '🎳'\n\n /**\n * A slot machine.\n *\n * {@link value} represents the result of the machine.\n * Value itself is an integer in range `[1, 64]`,\n * and is composed out of several parts.\n *\n * > **Note**: The following information is based on the TDesktop\n * > implementation. These are the relevant files:\n * > - [`chat_helpers/stickers_dice_pack.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/chat_helpers/stickers_dice_pack.cpp)\n * > - [`history/view/media/history_view_slot_machine.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/media/history_view_slot_machine.cpp)\n *\n * Unlike other animated dices, this does not have\n * all the possible combinations in the sticker set.\n * Instead, `value` is a specially encoded integer that contains\n * the information about the indexes.\n *\n * There are some base parts of the animations:\n * - 0th sticker is the base background of the machine\n * - 1st sticker is the background of the machine for the \"winning\" state (i.e. `777`)\n * - 2nd sticker is the frame of the machine, including the handle\n * - 8th sticker is the \"idle\" state for the left slot\n * - 14th sticker is the \"idle\" state for the middle slot\n * - 20th sticker is the \"idle\" state for the right slot\n *\n * The machine result is encoded as 3 concatenated two-bit integers,\n * and the resulting integer is incremented by one.\n *\n * So, to decode the value to its parts, you can use this code:\n * ```typescript\n * const computePartValue = (val: number, idx: number) => ((val - 1) >> (idx * 2)) & 0x03; // 0..3\n * const parts = [\n * computePartValue(msg.media.value, 0),\n * computePartValue(msg.media.value, 1),\n * computePartValue(msg.media.value, 2),\n * ]\n * ```\n *\n * Each part of the value corresponds to a particular slot (i.e. part 0 is left slot,\n * part 1 is middle, part 2 is right). The slot values are as follows:\n * - 0: BAR (displayed as a *BAR* sign on a black background)\n * - 1: BERRIES (displayed as berries, similar to emoji 🍇)\n * - 2: LEMON (displayed as a lemon, similar to emoji 🍋)\n * - 3: SEVEN (displayed as a red digit 7)\n *\n * Therefore, the winning value (i.e. `777`) is represented as `(3 << 4 | 3 << 2 | 3 << 0) + 1 = 64`\n *\n * To determine the needed animation parts, you'll need to apply some shifts.\n * These are the offsets for the individual symbols:\n * - WIN_SEVEN: 0\n * - SEVEN: 1\n * - BAR: 2\n * - BERRIES: 3\n * - LEMON: 4\n *\n * And these are the shifts for each slot:\n * - LEFT: 3\n * - MIDDLE: 9\n * - RIGHT: 15\n *\n * > WIN_SEVEN is the same as SEVEN, but only used if the machine result is `777` (i.e. `value = 64`),\n * > as it contains additional \"blinking\" animation.\n *\n * The sticker index is computed as follows: `SHIFTS[SLOT] + OFFSETS[SYM]`.\n * For example, berries for the middle slot would be: `SHIFTS[MIDDLE] + OFFSETS[BERRIES] = 9 + 3 = 12`\n *\n * Currently, this sticker set is used for the machine: [SlotMachineAnimated](https://t.me/addstickers/SlotMachineAnimated)\n */\n static readonly TYPE_SLOTS = '🎰'\n\n constructor(readonly obj: tl.RawMessageMediaDice) {}\n\n /**\n * An emoji which was originally sent.\n *\n * See static members of {@link Dice} for a list\n * of possible values\n */\n get emoji(): string {\n return this.obj.emoticon\n }\n\n /**\n * Emoji's interactive value.\n *\n * See what this value represents in the corresponding\n * type's documentation (in {@link Dice} static fields)\n */\n get value(): number {\n return this.obj.value\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n *\n * Note that when you use this media, a new `value`\n * will be generated!\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaDice',\n emoticon: this.obj.emoticon,\n }\n }\n}\n\nmakeInspectable(Dice, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"dice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/dice.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AAEtD;;GAEG;AACH,MAAa,IAAI;IAoIQ;IAnIZ,IAAI,GAAG,MAAe,CAAA;IAE/B;;;;OAIG;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,CAAA;IAEhC;;;;;OAKG;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,CAAA;IAEhC;;;;;;;;;OASG;IACH,MAAM,CAAU,eAAe,GAAG,IAAI,CAAA;IAEtC;;;;;;;;;OASG;IACH,MAAM,CAAU,aAAa,GAAG,IAAI,CAAA;IAEpC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAU,YAAY,GAAG,IAAI,CAAA;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmEG;IACH,MAAM,CAAU,UAAU,GAAG,IAAI,CAAA;IAEjC,YAAqB,GAA2B;QAA3B,QAAG,GAAH,GAAG,CAAwB;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,gBAAgB;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;SAC9B,CAAA;IACL,CAAC;;AAvKL,oBAwKC;AAED,IAAA,0BAAe,EAAC,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\n/**\n * A dice or another interactive random emoji.\n */\nexport class Dice {\n readonly type = 'dice' as const\n\n /**\n * A simple 6-sided dice.\n *\n * {@link value} represents its value (1-6)\n */\n static readonly TYPE_DICE = '🎲'\n\n /**\n * A dart. Telegram dart has 4 rings and middle.\n *\n * {@link value} represents the position of the dart:\n * ![Dart position graph](https://i.imgur.com/iPBm7HG.png)\n */\n static readonly TYPE_DART = '🎯'\n\n /**\n * A basketball thrown into a hoop.\n *\n * {@link value} represents the motion of the ball:\n * - 1: simple miss (ball hits right part, bounces to the left)\n * - 2: first hit the ring, then miss\n * - 3: ball gets stuck between the ring and the base\n * - 4: first hit the ring, then score\n * - 5: direct score\n */\n static readonly TYPE_BASKETBALL = '🏀'\n\n /**\n * A football thrown to the gate.\n *\n * {@link value} represents the motion of the ball:\n * - 1: flies above the top barbell\n * - 2: hits right barbell, then miss\n * - 3: direct score in the middle\n * - 4: hits left barbell, then score, then hits right barbell\n * - 5: score in the top-right corner\n */\n static readonly TYPE_FOOTBALL = '⚽️'\n\n /**\n * A bowling ball thrown to pins.\n *\n * Assuming the following identifiers for the pins:\n * ```\n * 4 5 6\n * 2 3\n * 1\n * ```\n *\n * {@link value} represents the motion of the ball and pins:\n * - 1: the ball touched 6th pin, none are down\n * - 2: the ball hit 4th pin, only 4th pin is down.\n * - 3: the ball hit 1st pin, pins 1, 2, 5 are down, leaving pins 3, 4, 6\n * - 4: the ball hit 1st pin on the right side, all the pins except 2nd and 6th are down\n * - 5: the ball hit 3rd pin and all the pins except 2nd are down.\n * - 6: the ball hit 1st pin and all pins are down\n */\n static readonly TYPE_BOWLING = '🎳'\n\n /**\n * A slot machine.\n *\n * {@link value} represents the result of the machine.\n * Value itself is an integer in range `[1, 64]`,\n * and is composed out of several parts.\n *\n * > **Note**: The following information is based on the TDesktop\n * > implementation. These are the relevant files:\n * > - [`chat_helpers/stickers_dice_pack.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/chat_helpers/stickers_dice_pack.cpp)\n * > - [`history/view/media/history_view_slot_machine.cpp`](https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/media/history_view_slot_machine.cpp)\n *\n * Unlike other animated dices, this does not have\n * all the possible combinations in the sticker set.\n * Instead, `value` is a specially encoded integer that contains\n * the information about the indexes.\n *\n * There are some base parts of the animations:\n * - 0th sticker is the base background of the machine\n * - 1st sticker is the background of the machine for the \"winning\" state (i.e. `777`)\n * - 2nd sticker is the frame of the machine, including the handle\n * - 8th sticker is the \"idle\" state for the left slot\n * - 14th sticker is the \"idle\" state for the middle slot\n * - 20th sticker is the \"idle\" state for the right slot\n *\n * The machine result is encoded as 3 concatenated two-bit integers,\n * and the resulting integer is incremented by one.\n *\n * So, to decode the value to its parts, you can use this code:\n * ```typescript\n * const computePartValue = (val: number, idx: number) => ((val - 1) >> (idx * 2)) & 0x03; // 0..3\n * const parts = [\n * computePartValue(msg.media.value, 0),\n * computePartValue(msg.media.value, 1),\n * computePartValue(msg.media.value, 2),\n * ]\n * ```\n *\n * Each part of the value corresponds to a particular slot (i.e. part 0 is left slot,\n * part 1 is middle, part 2 is right). The slot values are as follows:\n * - 0: BAR (displayed as a *BAR* sign on a black background)\n * - 1: BERRIES (displayed as berries, similar to emoji 🍇)\n * - 2: LEMON (displayed as a lemon, similar to emoji 🍋)\n * - 3: SEVEN (displayed as a red digit 7)\n *\n * Therefore, the winning value (i.e. `777`) is represented as `(3 << 4 | 3 << 2 | 3 << 0) + 1 = 64`\n *\n * To determine the needed animation parts, you'll need to apply some shifts.\n * These are the offsets for the individual symbols:\n * - WIN_SEVEN: 0\n * - SEVEN: 1\n * - BAR: 2\n * - BERRIES: 3\n * - LEMON: 4\n *\n * And these are the shifts for each slot:\n * - LEFT: 3\n * - MIDDLE: 9\n * - RIGHT: 15\n *\n * > WIN_SEVEN is the same as SEVEN, but only used if the machine result is `777` (i.e. `value = 64`),\n * > as it contains additional \"blinking\" animation.\n *\n * The sticker index is computed as follows: `SHIFTS[SLOT] + OFFSETS[SYM]`.\n * For example, berries for the middle slot would be: `SHIFTS[MIDDLE] + OFFSETS[BERRIES] = 9 + 3 = 12`\n *\n * Currently, this sticker set is used for the machine: [SlotMachineAnimated](https://t.me/addstickers/SlotMachineAnimated)\n */\n static readonly TYPE_SLOTS = '🎰'\n\n constructor(readonly obj: tl.RawMessageMediaDice) {}\n\n /**\n * An emoji which was originally sent.\n *\n * See static members of {@link Dice} for a list\n * of possible values\n */\n get emoji(): string {\n return this.obj.emoticon\n }\n\n /**\n * Emoji's interactive value.\n *\n * See what this value represents in the corresponding\n * type's documentation (in {@link Dice} static fields)\n */\n get value(): number {\n return this.obj.value\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n *\n * Note that when you use this media, a new `value`\n * will be generated!\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaDice',\n emoticon: this.obj.emoticon,\n }\n }\n}\n\nmakeInspectable(Dice, undefined, ['inputMedia'])\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"document-utils.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/document-utils.ts"],"names":[],"mappings":";;;AAEA,yCAAkC;AAClC,+CAAwC;AACxC,6CAAsC;AACtC,yCAAkC;AAClC,yCAAkC;AAIlC,gBAAgB;AAChB,SAAgB,aAAa,CAAC,GAAmB,EAAE,KAAkC;IACjF,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK,8BAA8B,CACtF,CAAA;IAED,IAAI,WAAW,EAAE;QACb,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAC1B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,4BAA4B,IAAI,EAAE,CAAC,CAAC,KAAK,wBAAwB,CACjB,CAAA;QAErE,OAAO,IAAI,oBAAO,CAAC,GAAG,EAAE,WAAkF,EAAE,EAAE,CAAC,CAAA;KAClH;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE;QAC/B,QAAQ,IAAI,CAAC,CAAC,EAAE;YACZ,KAAK,wBAAwB;gBACzB,IAAI,IAAI,CAAC,KAAK,EAAE;oBACZ,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;iBAC9B;gBAED,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAE/B,KAAK,wBAAwB;gBACzB,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YAEtC,KAAK,4BAA4B;gBAC7B,aAAa;gBACb,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE;oBAC9B,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;iBACrC;SACR;KACJ;IAED,OAAO,IAAI,sBAAQ,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAlCD,sCAkCC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { Audio } from './audio.js'\nimport { Document } from './document.js'\nimport { Sticker } from './sticker.js'\nimport { Video } from './video.js'\nimport { Voice } from './voice.js'\n\nexport type ParsedDocument = Sticker | Voice | Audio | Video | Document\n\n/** @internal */\nexport function parseDocument(doc: tl.RawDocument, media?: tl.RawMessageMediaDocument): ParsedDocument {\n const stickerAttr = doc.attributes.find(\n (a) => a._ === 'documentAttributeSticker' || a._ === 'documentAttributeCustomEmoji',\n )\n\n if (stickerAttr) {\n const sz = doc.attributes.find(\n (it) => it._ === 'documentAttributeImageSize' || it._ === 'documentAttributeVideo',\n )! as tl.RawDocumentAttributeImageSize | tl.RawDocumentAttributeVideo\n\n return new Sticker(doc, stickerAttr as tl.RawDocumentAttributeSticker | tl.RawDocumentAttributeCustomEmoji, sz)\n }\n\n for (const attr of doc.attributes) {\n switch (attr._) {\n case 'documentAttributeAudio':\n if (attr.voice) {\n return new Voice(doc, attr)\n }\n\n return new Audio(doc, attr)\n\n case 'documentAttributeVideo':\n return new Video(doc, attr, media)\n\n case 'documentAttributeImageSize':\n // legacy gif\n if (doc.mimeType === 'image/gif') {\n return new Video(doc, attr, media)\n }\n }\n }\n\n return new Document(doc)\n}\n"]}
1
+ {"version":3,"file":"document-utils.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/document-utils.ts"],"names":[],"mappings":";;;AAEA,yCAAkC;AAClC,+CAAwC;AACxC,6CAAsC;AACtC,yCAAkC;AAClC,yCAAkC;AAIlC,gBAAgB;AAChB,SAAgB,aAAa,CAAC,GAAmB,EAAE,KAAkC;IACjF,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK,8BAA8B,CACtF,CAAA;IAED,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAC1B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,4BAA4B,IAAI,EAAE,CAAC,CAAC,KAAK,wBAAwB,CACjB,CAAA;QAErE,OAAO,IAAI,oBAAO,CAAC,GAAG,EAAE,WAAkF,EAAE,EAAE,CAAC,CAAA;IACnH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAChC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,KAAK,wBAAwB;gBACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAC/B,CAAC;gBAED,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAE/B,KAAK,wBAAwB;gBACzB,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YAEtC,KAAK,4BAA4B;gBAC7B,aAAa;gBACb,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC/B,OAAO,IAAI,gBAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;gBACtC,CAAC;QACT,CAAC;IACL,CAAC;IAED,OAAO,IAAI,sBAAQ,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAlCD,sCAkCC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { Audio } from './audio.js'\nimport { Document } from './document.js'\nimport { Sticker } from './sticker.js'\nimport { Video } from './video.js'\nimport { Voice } from './voice.js'\n\nexport type ParsedDocument = Sticker | Voice | Audio | Video | Document\n\n/** @internal */\nexport function parseDocument(doc: tl.RawDocument, media?: tl.RawMessageMediaDocument): ParsedDocument {\n const stickerAttr = doc.attributes.find(\n (a) => a._ === 'documentAttributeSticker' || a._ === 'documentAttributeCustomEmoji',\n )\n\n if (stickerAttr) {\n const sz = doc.attributes.find(\n (it) => it._ === 'documentAttributeImageSize' || it._ === 'documentAttributeVideo',\n )! as tl.RawDocumentAttributeImageSize | tl.RawDocumentAttributeVideo\n\n return new Sticker(doc, stickerAttr as tl.RawDocumentAttributeSticker | tl.RawDocumentAttributeCustomEmoji, sz)\n }\n\n for (const attr of doc.attributes) {\n switch (attr._) {\n case 'documentAttributeAudio':\n if (attr.voice) {\n return new Voice(doc, attr)\n }\n\n return new Audio(doc, attr)\n\n case 'documentAttributeVideo':\n return new Video(doc, attr, media)\n\n case 'documentAttributeImageSize':\n // legacy gif\n if (doc.mimeType === 'image/gif') {\n return new Video(doc, attr, media)\n }\n }\n }\n\n return new Document(doc)\n}\n"]}
@@ -13,6 +13,7 @@ const thumbnail_js_1 = require("./thumbnail.js");
13
13
  * This also includes audios, videos, voices etc.
14
14
  */
15
15
  class RawDocument extends index_js_2.FileLocation {
16
+ raw;
16
17
  constructor(raw) {
17
18
  super({
18
19
  _: 'inputDocumentFileLocation',
@@ -133,10 +134,7 @@ exports.RawDocument = RawDocument;
133
134
  * attributes.
134
135
  */
135
136
  class Document extends RawDocument {
136
- constructor() {
137
- super(...arguments);
138
- this.type = 'document';
139
- }
137
+ type = 'document';
140
138
  }
141
139
  exports.Document = Document;
142
140
  (0, memoize_js_1.memoizeGetters)(Document, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId']);
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/document.ts"],"names":[],"mappings":";;;AAAA,6CAA0E;AAG1E,sDAAkD;AAClD,mDAAsD;AACtD,uDAAuD;AACvD,gDAAgD;AAChD,iDAA0C;AAE1C;;;;GAIG;AACH,MAAsB,WAAY,SAAQ,uBAAY;IAIlD,YAAqB,GAAmB;QACpC,KAAK,CACD;YACI,CAAC,EAAE,2BAA2B;YAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,EAAE;SAChB,EACD,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,CACX,CAAA;QAXgB,QAAG,GAAH,GAAG,CAAgB;QAYpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAA;QAEnF,OAAO,IAAI,CAAC,CAAC,CAAE,IAAwC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,MAAM,GAAG,GAAgB,EAAE,CAAA;QAE3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,wBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,wBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAE5E,OAAO,GAAG,CAAA;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAY;QACrB,OAAO,CACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACxB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAsB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,wBAAwB,EAAE;gBAC9E,OAAO,KAAK,CAAA;aACf;YAED,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;QAC/B,CAAC,CAAC,IAAI,IAAI,CACb,CAAA;IACL,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACb,OAAO;YACH,CAAC,EAAE,eAAe;YAClB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YACf,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;YAC/B,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa;SACxC,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,oBAAoB;YACvB,EAAE,EAAE,IAAI,CAAC,aAAa;SACzB,CAAA;IACL,CAAC;IAES,WAAW;QACjB,OAAO,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,OAAO,IAAA,kBAAQ,EAAC,IAAA,yBAAW,GAAE,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa;YACrC,QAAQ,EAAE;gBACN,CAAC,EAAE,QAAQ;gBACX,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;aAClC;SACJ,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACZ,OAAO,IAAA,wBAAc,EAAC,IAAA,yBAAW,GAAE,EAAE,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACvD,CAAC,EAAE,QAAQ;YACX,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;SAClB,CAAC,CAAA;IACN,CAAC;CACJ;AArID,kCAqIC;AAED;;;;;;GAMG;AACH,MAAa,QAAS,SAAQ,WAAW;IAAzC;;QACa,SAAI,GAAG,UAAmB,CAAA;IACvC,CAAC;CAAA;AAFD,4BAEC;AAED,IAAA,2BAAc,EAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;AAC9E,IAAA,0BAAe,EAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId as td, toFileId, toUniqueFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * A file that is represented as a document in MTProto.\n *\n * This also includes audios, videos, voices etc.\n */\nexport abstract class RawDocument extends FileLocation {\n /** Type of the media (for use in a tagged union) */\n abstract type: string\n\n constructor(readonly raw: tl.RawDocument) {\n super(\n {\n _: 'inputDocumentFileLocation',\n id: raw.id,\n fileReference: raw.fileReference,\n accessHash: raw.accessHash,\n thumbSize: '',\n },\n raw.size,\n raw.dcId,\n )\n this.raw = raw\n }\n\n /**\n * Original file name, extracted from the document\n * attributes.\n */\n get fileName(): string | null {\n const attr = this.raw.attributes.find((it) => it._ === 'documentAttributeFilename')\n\n return attr ? (attr as tl.RawDocumentAttributeFilename).fileName : null\n }\n\n /**\n * File MIME type, as defined by the sender.\n */\n get mimeType(): string {\n return this.raw.mimeType\n }\n\n /**\n * Date the document was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Available thumbnails, if any.\n *\n * If there are no thumbnails, the array will be empty.\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n const arr: Thumbnail[] = []\n\n this.raw.thumbs?.forEach((sz) => arr.push(new Thumbnail(this.raw, sz)))\n this.raw.videoThumbs?.forEach((sz) => arr.push(new Thumbnail(this.raw, sz)))\n\n return arr\n }\n\n /**\n * Get a thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return (\n this.thumbnails.find((it) => {\n if (it.raw._ === 'videoSizeEmojiMarkup' || it.raw._ === 'videoSizeStickerMarkup') {\n return false\n }\n\n return it.raw.type === type\n }) ?? null\n )\n }\n\n /**\n * Input document TL object generated from this object,\n * to be used with methods that use it\n */\n get inputDocument(): tl.TypeInputDocument {\n return {\n _: 'inputDocument',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n fileReference: this.raw.fileReference,\n }\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaDocument',\n id: this.inputDocument,\n }\n }\n\n protected _fileIdType(): td.FileType {\n return td.FileType.Document\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this document.\n */\n get fileId(): string {\n return toFileId(getPlatform(), {\n type: this._fileIdType(),\n dcId: this.raw.dcId,\n fileReference: this.raw.fileReference,\n location: {\n _: 'common',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n },\n })\n }\n\n /**\n * Get a unique File ID representing this document.\n */\n get uniqueFileId(): string {\n return toUniqueFileId(getPlatform(), td.FileType.Document, {\n _: 'common',\n id: this.raw.id,\n })\n }\n}\n\n/**\n * A generic file.\n *\n * This does not include audios, videos, voices etc.\n * and only used for documents without any special\n * attributes.\n */\nexport class Document extends RawDocument {\n readonly type = 'document' as const\n}\n\nmemoizeGetters(Document, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId'])\nmakeInspectable(Document, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/document.ts"],"names":[],"mappings":"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","sourcesContent":["import { tdFileId as td, toFileId, toUniqueFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * A file that is represented as a document in MTProto.\n *\n * This also includes audios, videos, voices etc.\n */\nexport abstract class RawDocument extends FileLocation {\n /** Type of the media (for use in a tagged union) */\n abstract type: string\n\n constructor(readonly raw: tl.RawDocument) {\n super(\n {\n _: 'inputDocumentFileLocation',\n id: raw.id,\n fileReference: raw.fileReference,\n accessHash: raw.accessHash,\n thumbSize: '',\n },\n raw.size,\n raw.dcId,\n )\n this.raw = raw\n }\n\n /**\n * Original file name, extracted from the document\n * attributes.\n */\n get fileName(): string | null {\n const attr = this.raw.attributes.find((it) => it._ === 'documentAttributeFilename')\n\n return attr ? (attr as tl.RawDocumentAttributeFilename).fileName : null\n }\n\n /**\n * File MIME type, as defined by the sender.\n */\n get mimeType(): string {\n return this.raw.mimeType\n }\n\n /**\n * Date the document was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Available thumbnails, if any.\n *\n * If there are no thumbnails, the array will be empty.\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n const arr: Thumbnail[] = []\n\n this.raw.thumbs?.forEach((sz) => arr.push(new Thumbnail(this.raw, sz)))\n this.raw.videoThumbs?.forEach((sz) => arr.push(new Thumbnail(this.raw, sz)))\n\n return arr\n }\n\n /**\n * Get a thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return (\n this.thumbnails.find((it) => {\n if (it.raw._ === 'videoSizeEmojiMarkup' || it.raw._ === 'videoSizeStickerMarkup') {\n return false\n }\n\n return it.raw.type === type\n }) ?? null\n )\n }\n\n /**\n * Input document TL object generated from this object,\n * to be used with methods that use it\n */\n get inputDocument(): tl.TypeInputDocument {\n return {\n _: 'inputDocument',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n fileReference: this.raw.fileReference,\n }\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaDocument',\n id: this.inputDocument,\n }\n }\n\n protected _fileIdType(): td.FileType {\n return td.FileType.Document\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this document.\n */\n get fileId(): string {\n return toFileId(getPlatform(), {\n type: this._fileIdType(),\n dcId: this.raw.dcId,\n fileReference: this.raw.fileReference,\n location: {\n _: 'common',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n },\n })\n }\n\n /**\n * Get a unique File ID representing this document.\n */\n get uniqueFileId(): string {\n return toUniqueFileId(getPlatform(), td.FileType.Document, {\n _: 'common',\n id: this.raw.id,\n })\n }\n}\n\n/**\n * A generic file.\n *\n * This does not include audios, videos, voices etc.\n * and only used for documents without any special\n * attributes.\n */\nexport class Document extends RawDocument {\n readonly type = 'document' as const\n}\n\nmemoizeGetters(Document, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId'])\nmakeInspectable(Document, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
@@ -6,9 +6,10 @@ const memoize_js_1 = require("../../utils/memoize.js");
6
6
  const photo_js_1 = require("./photo.js");
7
7
  const video_js_1 = require("./video.js");
8
8
  class Game {
9
+ game;
10
+ type = 'game';
9
11
  constructor(game) {
10
12
  this.game = game;
11
- this.type = 'game';
12
13
  }
13
14
  /**
14
15
  * Unique identifier of the game.
@@ -1 +1 @@
1
- {"version":3,"file":"game.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/game.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AACtD,uDAAuD;AACvD,yCAAkC;AAClC,yCAAkC;AAElC,MAAa,IAAI;IAGb,YAAqB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF5B,SAAI,GAAG,MAAe,CAAA;IAES,CAAC;IAEzC;;OAEG;IACH,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;QAEnD,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAErD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAE1E,CAAA;QAEf,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAA;SACd;QAED,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,gBAAgB;YACnB,EAAE,EAAE;gBACA,CAAC,EAAE,aAAa;gBAChB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;aACnC;SACJ,CAAA;IACL,CAAC;CACJ;AA1ED,oBA0EC;AAED,IAAA,2BAAc,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;AAC5C,IAAA,0BAAe,EAAC,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Photo } from './photo.js'\nimport { Video } from './video.js'\n\nexport class Game {\n readonly type = 'game' as const\n\n constructor(readonly game: tl.RawGame) {}\n\n /**\n * Unique identifier of the game.\n */\n get id(): tl.Long {\n return this.game.id\n }\n\n /**\n * Title of the game\n */\n get title(): string {\n return this.game.title\n }\n\n /**\n * Description of the game\n */\n get description(): string {\n return this.game.description\n }\n\n /**\n * Unique short name of the game\n */\n get shortName(): string {\n return this.game.shortName\n }\n\n /**\n * Photo that will be displayed in the game message in chats\n */\n get photo(): Photo | null {\n if (this.game.photo._ === 'photoEmpty') return null\n\n return new Photo(this.game.photo)\n }\n\n /**\n * Animation that will be displayed in the game message in chats\n */\n get animation(): Video | null {\n if (this.game.document?._ !== 'document') return null\n\n const attr = this.game.document.attributes.find((it) => it._ === 'documentAttributeVideo') as\n | tl.RawDocumentAttributeVideo\n | undefined\n\n if (!attr) {\n return null\n }\n\n return new Video(this.game.document, attr)\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaGame',\n id: {\n _: 'inputGameID',\n id: this.game.id,\n accessHash: this.game.accessHash,\n },\n }\n }\n}\n\nmemoizeGetters(Game, ['photo', 'animation'])\nmakeInspectable(Game, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"game.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/game.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AACtD,uDAAuD;AACvD,yCAAkC;AAClC,yCAAkC;AAElC,MAAa,IAAI;IAGQ;IAFZ,IAAI,GAAG,MAAe,CAAA;IAE/B,YAAqB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEzC;;OAEG;IACH,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;QAEnD,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAErD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAE1E,CAAA;QAEf,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,gBAAgB;YACnB,EAAE,EAAE;gBACA,CAAC,EAAE,aAAa;gBAChB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;aACnC;SACJ,CAAA;IACL,CAAC;CACJ;AA1ED,oBA0EC;AAED,IAAA,2BAAc,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;AAC5C,IAAA,0BAAe,EAAC,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Photo } from './photo.js'\nimport { Video } from './video.js'\n\nexport class Game {\n readonly type = 'game' as const\n\n constructor(readonly game: tl.RawGame) {}\n\n /**\n * Unique identifier of the game.\n */\n get id(): tl.Long {\n return this.game.id\n }\n\n /**\n * Title of the game\n */\n get title(): string {\n return this.game.title\n }\n\n /**\n * Description of the game\n */\n get description(): string {\n return this.game.description\n }\n\n /**\n * Unique short name of the game\n */\n get shortName(): string {\n return this.game.shortName\n }\n\n /**\n * Photo that will be displayed in the game message in chats\n */\n get photo(): Photo | null {\n if (this.game.photo._ === 'photoEmpty') return null\n\n return new Photo(this.game.photo)\n }\n\n /**\n * Animation that will be displayed in the game message in chats\n */\n get animation(): Video | null {\n if (this.game.document?._ !== 'document') return null\n\n const attr = this.game.document.attributes.find((it) => it._ === 'documentAttributeVideo') as\n | tl.RawDocumentAttributeVideo\n | undefined\n\n if (!attr) {\n return null\n }\n\n return new Video(this.game.document, attr)\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaGame',\n id: {\n _: 'inputGameID',\n id: this.game.id,\n accessHash: this.game.accessHash,\n },\n }\n }\n}\n\nmemoizeGetters(Game, ['photo', 'animation'])\nmakeInspectable(Game, undefined, ['inputMedia'])\n"]}
@@ -7,6 +7,7 @@ const memoize_js_1 = require("../../utils/memoize.js");
7
7
  const web_document_js_1 = require("../files/web-document.js");
8
8
  const thumbnail_js_1 = require("./thumbnail.js");
9
9
  class InvoiceExtendedMediaPreview {
10
+ raw;
10
11
  constructor(raw) {
11
12
  this.raw = raw;
12
13
  }
@@ -43,10 +44,12 @@ exports.InvoiceExtendedMediaPreview = InvoiceExtendedMediaPreview;
43
44
  * An invoice
44
45
  */
45
46
  class Invoice {
47
+ raw;
48
+ _extendedMedia;
49
+ type = 'invoice';
46
50
  constructor(raw, _extendedMedia) {
47
51
  this.raw = raw;
48
52
  this._extendedMedia = _extendedMedia;
49
- this.type = 'invoice';
50
53
  }
51
54
  /**
52
55
  * Whether the shipping address was requested
@@ -1 +1 @@
1
- {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/invoice.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { WebDocument } from '../files/web-document.js'\nimport type { MessageMedia } from '../messages/message-media.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * Information about invoice's extended media.\n * - `none`: there is no extended media in this invoice\n * - `preview`: there is only a preview of this invoice's media ({@link Invoice.extendedMediaPreview})\n * - `full`: there is a full version of this invoice's media available ({@link Invoice.extendedMedia})\n */\nexport type InvoiceExtendedMediaState = 'none' | 'preview' | 'full'\n\nexport class InvoiceExtendedMediaPreview {\n constructor(public readonly raw: tl.RawMessageExtendedMediaPreview) {}\n\n /**\n * Width of the preview, in pixels (if available, else 0)\n */\n get width(): number {\n return this.raw.w ?? 0\n }\n\n /**\n * Height of the preview, in pixels (if available, else 0)\n */\n get height(): number {\n return this.raw.h ?? 0\n }\n\n get thumbnail(): Thumbnail | null {\n if (!this.raw.thumb) {\n return null\n }\n\n return new Thumbnail(this.raw, this.raw.thumb)\n }\n\n /**\n * If this is a video, the duration of the video,\n * in seconds (if available, else 0)\n */\n get videoDuration(): number {\n return this.raw.videoDuration ?? 0\n }\n}\n\nmemoizeGetters(InvoiceExtendedMediaPreview, ['thumbnail'])\nmakeInspectable(InvoiceExtendedMediaPreview)\n\n/**\n * An invoice\n */\nexport class Invoice {\n readonly type = 'invoice' as const\n\n constructor(\n readonly raw: tl.RawMessageMediaInvoice,\n private readonly _extendedMedia?: MessageMedia,\n ) {}\n\n /**\n * Whether the shipping address was requested\n */\n isShippingAddressRequested(): boolean {\n return this.raw.shippingAddressRequested!\n }\n\n /**\n * Whether this is an example (test) invoice\n */\n isTest(): boolean {\n return this.raw.test!\n }\n\n /**\n * Product name, 1-32 characters\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Product description, 1-255 characters\n */\n get description(): string {\n return this.raw.description\n }\n\n /**\n * URL of the product photo for the invoice\n */\n get photo(): WebDocument | null {\n if (!this.raw.photo) return null\n\n return new WebDocument(this.raw.photo)\n }\n\n /**\n * Message ID of receipt\n */\n get receiptMessageId(): number | null {\n return this.raw.receiptMsgId ?? null\n }\n\n /**\n * Three-letter ISO 4217 currency code\n */\n get currency(): string {\n return this.raw.currency\n }\n\n /**\n * Total price in the smallest units of the currency\n * (integer, not float/double). For example, for a price\n * of `US$ 1.45` `amount = 145`.\n *\n * See the exp parameter in [currencies.json](https://core.telegram.org/bots/payments/currencies.json),\n * it shows the number of digits past the decimal point\n * for each currency (2 for the majority of currencies).\n */\n get amount(): tl.Long {\n return this.raw.totalAmount\n }\n\n /**\n * Unique bot deep-linking parameter that can be used to generate this invoice\n */\n get startParam(): string {\n return this.raw.startParam\n }\n\n /**\n * If this invoice has extended media\n */\n get extendedMediaState(): InvoiceExtendedMediaState {\n if (!this.raw.extendedMedia) return 'none'\n\n if (this.raw.extendedMedia._ === 'messageExtendedMediaPreview') {\n return 'preview'\n }\n\n return 'full'\n }\n\n /**\n * Get the invoice's extended media preview.\n * Only available if {@link extendedMediaState} is `preview`.\n * Otherwise, throws an error.\n */\n get extendedMediaPreview(): InvoiceExtendedMediaPreview {\n if (this.raw.extendedMedia?._ !== 'messageExtendedMediaPreview') {\n throw new MtArgumentError('No extended media preview available')\n }\n\n return new InvoiceExtendedMediaPreview(this.raw.extendedMedia)\n }\n\n /**\n * Get the invoice's extended media.\n * Only available if {@link extendedMediaState} is `full`.\n * Otherwise, throws an error.\n */\n get extendedMedia(): MessageMedia {\n if (!this._extendedMedia) {\n throw new MtArgumentError('No extended media available')\n }\n\n return this._extendedMedia\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}.\n *\n * Invoice can't provide an input media, since some\n * of the data is not available to the user,\n * which is required to send it. This getter\n * is only provided to allow using `msg.media.inputMedia`\n */\n get inputMedia(): tl.TypeInputMedia {\n throw new MtArgumentError('Invoice cannot provide an InputMedia')\n }\n}\n\nmemoizeGetters(Invoice, ['extendedMediaPreview', 'photo'])\nmakeInspectable(Invoice, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/invoice.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { WebDocument } from '../files/web-document.js'\nimport type { MessageMedia } from '../messages/message-media.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * Information about invoice's extended media.\n * - `none`: there is no extended media in this invoice\n * - `preview`: there is only a preview of this invoice's media ({@link Invoice.extendedMediaPreview})\n * - `full`: there is a full version of this invoice's media available ({@link Invoice.extendedMedia})\n */\nexport type InvoiceExtendedMediaState = 'none' | 'preview' | 'full'\n\nexport class InvoiceExtendedMediaPreview {\n constructor(public readonly raw: tl.RawMessageExtendedMediaPreview) {}\n\n /**\n * Width of the preview, in pixels (if available, else 0)\n */\n get width(): number {\n return this.raw.w ?? 0\n }\n\n /**\n * Height of the preview, in pixels (if available, else 0)\n */\n get height(): number {\n return this.raw.h ?? 0\n }\n\n get thumbnail(): Thumbnail | null {\n if (!this.raw.thumb) {\n return null\n }\n\n return new Thumbnail(this.raw, this.raw.thumb)\n }\n\n /**\n * If this is a video, the duration of the video,\n * in seconds (if available, else 0)\n */\n get videoDuration(): number {\n return this.raw.videoDuration ?? 0\n }\n}\n\nmemoizeGetters(InvoiceExtendedMediaPreview, ['thumbnail'])\nmakeInspectable(InvoiceExtendedMediaPreview)\n\n/**\n * An invoice\n */\nexport class Invoice {\n readonly type = 'invoice' as const\n\n constructor(\n readonly raw: tl.RawMessageMediaInvoice,\n private readonly _extendedMedia?: MessageMedia,\n ) {}\n\n /**\n * Whether the shipping address was requested\n */\n isShippingAddressRequested(): boolean {\n return this.raw.shippingAddressRequested!\n }\n\n /**\n * Whether this is an example (test) invoice\n */\n isTest(): boolean {\n return this.raw.test!\n }\n\n /**\n * Product name, 1-32 characters\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Product description, 1-255 characters\n */\n get description(): string {\n return this.raw.description\n }\n\n /**\n * URL of the product photo for the invoice\n */\n get photo(): WebDocument | null {\n if (!this.raw.photo) return null\n\n return new WebDocument(this.raw.photo)\n }\n\n /**\n * Message ID of receipt\n */\n get receiptMessageId(): number | null {\n return this.raw.receiptMsgId ?? null\n }\n\n /**\n * Three-letter ISO 4217 currency code\n */\n get currency(): string {\n return this.raw.currency\n }\n\n /**\n * Total price in the smallest units of the currency\n * (integer, not float/double). For example, for a price\n * of `US$ 1.45` `amount = 145`.\n *\n * See the exp parameter in [currencies.json](https://core.telegram.org/bots/payments/currencies.json),\n * it shows the number of digits past the decimal point\n * for each currency (2 for the majority of currencies).\n */\n get amount(): tl.Long {\n return this.raw.totalAmount\n }\n\n /**\n * Unique bot deep-linking parameter that can be used to generate this invoice\n */\n get startParam(): string {\n return this.raw.startParam\n }\n\n /**\n * If this invoice has extended media\n */\n get extendedMediaState(): InvoiceExtendedMediaState {\n if (!this.raw.extendedMedia) return 'none'\n\n if (this.raw.extendedMedia._ === 'messageExtendedMediaPreview') {\n return 'preview'\n }\n\n return 'full'\n }\n\n /**\n * Get the invoice's extended media preview.\n * Only available if {@link extendedMediaState} is `preview`.\n * Otherwise, throws an error.\n */\n get extendedMediaPreview(): InvoiceExtendedMediaPreview {\n if (this.raw.extendedMedia?._ !== 'messageExtendedMediaPreview') {\n throw new MtArgumentError('No extended media preview available')\n }\n\n return new InvoiceExtendedMediaPreview(this.raw.extendedMedia)\n }\n\n /**\n * Get the invoice's extended media.\n * Only available if {@link extendedMediaState} is `full`.\n * Otherwise, throws an error.\n */\n get extendedMedia(): MessageMedia {\n if (!this._extendedMedia) {\n throw new MtArgumentError('No extended media available')\n }\n\n return this._extendedMedia\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}.\n *\n * Invoice can't provide an input media, since some\n * of the data is not available to the user,\n * which is required to send it. This getter\n * is only provided to allow using `msg.media.inputMedia`\n */\n get inputMedia(): tl.TypeInputMedia {\n throw new MtArgumentError('Invoice cannot provide an InputMedia')\n }\n}\n\nmemoizeGetters(Invoice, ['extendedMediaPreview', 'photo'])\nmakeInspectable(Invoice, undefined, ['inputMedia'])\n"]}
@@ -7,6 +7,7 @@ const index_js_2 = require("../files/index.js");
7
7
  * A point on the map
8
8
  */
9
9
  class RawLocation {
10
+ geo;
10
11
  constructor(geo) {
11
12
  this.geo = geo;
12
13
  }
@@ -67,17 +68,15 @@ class RawLocation {
67
68
  }
68
69
  exports.RawLocation = RawLocation;
69
70
  class Location extends RawLocation {
70
- constructor() {
71
- super(...arguments);
72
- this.type = 'location';
73
- }
71
+ type = 'location';
74
72
  }
75
73
  exports.Location = Location;
76
74
  class LiveLocation extends RawLocation {
75
+ live;
76
+ type = 'live_location';
77
77
  constructor(live) {
78
78
  super(live.geo);
79
79
  this.live = live;
80
- this.type = 'live_location';
81
80
  }
82
81
  /**
83
82
  * A direction in which the location moves, in degrees; 1-360
@@ -1 +1 @@
1
- {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/location.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { FileLocation } from '../files/index.js'\n\n/**\n * A point on the map\n */\nexport class RawLocation {\n constructor(readonly geo: tl.RawGeoPoint) {}\n\n /**\n * Geo point latitude\n */\n get latitude(): number {\n return this.geo.lat\n }\n\n /**\n * Geo point longitude\n */\n get longitude(): number {\n return this.geo.long\n }\n\n /**\n * Accuracy radius in meters.\n */\n get radius(): number {\n return this.geo.accuracyRadius ?? 0\n }\n\n /**\n * Create {@link FileLocation} containing\n * server-generated image with the map preview\n */\n preview(\n params: {\n /**\n * Map width in pixels before applying scale (16-1024)\n *\n * @default `128`\n */\n width?: number\n\n /**\n * Map height in pixels before applying scale (16-1024)\n *\n * @default `128`\n */\n height?: number\n\n /**\n * Map zoom level (13-20)\n *\n * @default `15`\n */\n zoom?: number\n\n /**\n * Map scale (1-3)\n *\n * @default `1`\n */\n scale?: number\n } = {},\n ): FileLocation {\n return new FileLocation({\n _: 'inputWebFileGeoPointLocation',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: this.geo.lat,\n long: this.geo.long,\n accuracyRadius: this.geo.accuracyRadius,\n },\n accessHash: this.geo.accessHash,\n w: params.width ?? 128,\n h: params.height ?? 128,\n zoom: params.zoom ?? 15,\n scale: params.scale ?? 1,\n })\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaGeoPoint',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: this.geo.lat,\n long: this.geo.long,\n accuracyRadius: this.geo.accuracyRadius,\n },\n }\n }\n}\n\nexport class Location extends RawLocation {\n readonly type = 'location' as const\n}\n\nexport class LiveLocation extends RawLocation {\n readonly type = 'live_location' as const\n\n constructor(readonly live: tl.RawMessageMediaGeoLive) {\n super(live.geo as tl.RawGeoPoint)\n }\n\n /**\n * A direction in which the location moves, in degrees; 1-360\n */\n get heading(): number | null {\n return this.live.heading ?? null\n }\n\n /**\n * Validity period of provided geolocation\n */\n get period(): number {\n return this.live.period\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n *\n * Note that using this will result in an\n * independent live geolocation, which\n * will not be auto-updated with the current\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaGeoLive',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: this.geo.lat,\n long: this.geo.long,\n accuracyRadius: this.geo.accuracyRadius,\n },\n heading: this.live.heading,\n period: this.live.period,\n proximityNotificationRadius: this.live.proximityNotificationRadius,\n }\n }\n\n // todo: api to subscribe for real-time updates\n}\n\nmakeInspectable(Location, undefined, ['inputMedia'])\nmakeInspectable(LiveLocation, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/location.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { FileLocation } from '../files/index.js'\n\n/**\n * A point on the map\n */\nexport class RawLocation {\n constructor(readonly geo: tl.RawGeoPoint) {}\n\n /**\n * Geo point latitude\n */\n get latitude(): number {\n return this.geo.lat\n }\n\n /**\n * Geo point longitude\n */\n get longitude(): number {\n return this.geo.long\n }\n\n /**\n * Accuracy radius in meters.\n */\n get radius(): number {\n return this.geo.accuracyRadius ?? 0\n }\n\n /**\n * Create {@link FileLocation} containing\n * server-generated image with the map preview\n */\n preview(\n params: {\n /**\n * Map width in pixels before applying scale (16-1024)\n *\n * @default `128`\n */\n width?: number\n\n /**\n * Map height in pixels before applying scale (16-1024)\n *\n * @default `128`\n */\n height?: number\n\n /**\n * Map zoom level (13-20)\n *\n * @default `15`\n */\n zoom?: number\n\n /**\n * Map scale (1-3)\n *\n * @default `1`\n */\n scale?: number\n } = {},\n ): FileLocation {\n return new FileLocation({\n _: 'inputWebFileGeoPointLocation',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: this.geo.lat,\n long: this.geo.long,\n accuracyRadius: this.geo.accuracyRadius,\n },\n accessHash: this.geo.accessHash,\n w: params.width ?? 128,\n h: params.height ?? 128,\n zoom: params.zoom ?? 15,\n scale: params.scale ?? 1,\n })\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaGeoPoint',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: this.geo.lat,\n long: this.geo.long,\n accuracyRadius: this.geo.accuracyRadius,\n },\n }\n }\n}\n\nexport class Location extends RawLocation {\n readonly type = 'location' as const\n}\n\nexport class LiveLocation extends RawLocation {\n readonly type = 'live_location' as const\n\n constructor(readonly live: tl.RawMessageMediaGeoLive) {\n super(live.geo as tl.RawGeoPoint)\n }\n\n /**\n * A direction in which the location moves, in degrees; 1-360\n */\n get heading(): number | null {\n return this.live.heading ?? null\n }\n\n /**\n * Validity period of provided geolocation\n */\n get period(): number {\n return this.live.period\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n *\n * Note that using this will result in an\n * independent live geolocation, which\n * will not be auto-updated with the current\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaGeoLive',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: this.geo.lat,\n long: this.geo.long,\n accuracyRadius: this.geo.accuracyRadius,\n },\n heading: this.live.heading,\n period: this.live.period,\n proximityNotificationRadius: this.live.proximityNotificationRadius,\n }\n }\n\n // todo: api to subscribe for real-time updates\n}\n\nmakeInspectable(Location, undefined, ['inputMedia'])\nmakeInspectable(LiveLocation, undefined, ['inputMedia'])\n"]}
@@ -10,6 +10,14 @@ const thumbnail_js_1 = require("./thumbnail.js");
10
10
  * A photo
11
11
  */
12
12
  class Photo extends index_js_2.FileLocation {
13
+ raw;
14
+ media;
15
+ type = 'photo';
16
+ /** Biggest available photo width */
17
+ width;
18
+ /** Biggest available photo height */
19
+ height;
20
+ _bestSize;
13
21
  constructor(raw, media) {
14
22
  const location = {
15
23
  _: 'inputPhotoFileLocation',
@@ -52,7 +60,6 @@ class Photo extends index_js_2.FileLocation {
52
60
  super(location, size, raw.dcId);
53
61
  this.raw = raw;
54
62
  this.media = media;
55
- this.type = 'photo';
56
63
  this._bestSize = bestSize;
57
64
  this.width = width;
58
65
  this.height = height;
@@ -1 +1 @@
1
- {"version":3,"file":"photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/photo.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * A photo\n */\nexport class Photo extends FileLocation {\n readonly type = 'photo' as const\n\n /** Biggest available photo width */\n readonly width: number\n\n /** Biggest available photo height */\n readonly height: number\n\n private _bestSize?: tl.RawPhotoSize | tl.RawPhotoSizeProgressive\n\n constructor(\n readonly raw: tl.RawPhoto,\n readonly media?: tl.RawMessageMediaPhoto,\n ) {\n const location = {\n _: 'inputPhotoFileLocation',\n id: raw.id,\n fileReference: raw.fileReference,\n accessHash: raw.accessHash,\n thumbSize: '',\n } as tl.Mutable<tl.RawInputPhotoFileLocation>\n let size\n let width\n let height: number\n\n let bestSize: tl.RawPhotoSize | tl.RawPhotoSizeProgressive\n\n const progressive = raw.sizes.find((it) => it._ === 'photoSizeProgressive') as\n | tl.RawPhotoSizeProgressive\n | undefined\n\n if (progressive) {\n location.thumbSize = progressive.type\n size = Math.max(...progressive.sizes)\n width = progressive.w\n height = progressive.h\n\n bestSize = progressive\n } else {\n let max: tl.RawPhotoSize | null = null\n\n for (const sz of raw.sizes) {\n if (sz._ === 'photoSize' && (!max || sz.size > max.size)) {\n max = sz\n }\n }\n\n if (max) {\n location.thumbSize = max.type\n size = max.size\n width = max.w\n height = max.h\n\n bestSize = max\n } else {\n // does this happen at all?\n throw new MtArgumentError('Photo does not have any sizes')\n }\n }\n\n super(location, size, raw.dcId)\n this._bestSize = bestSize\n this.width = width\n this.height = height\n this.type = 'photo'\n }\n\n /**\n * Photo ID\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /** Date this photo was sent */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether this photo is an animated profile picture\n */\n get isAnimatedAvatar(): boolean {\n return Boolean(this.raw.videoSizes?.some((s) => s._ === 'videoSize' && s.type === 'u'))\n }\n\n /**\n * Whether this photo is an animated profile picture, built from an emoji/sticker markup\n */\n get isMarkupAvatar(): boolean {\n return Boolean(\n this.raw.videoSizes?.some((s) => s._ === 'videoSizeEmojiMarkup' || s._ === 'videoSizeStickerMarkup'),\n )\n }\n\n /** Whether this photo is hidden with a spoiler */\n get hasSpoiler(): boolean {\n return this.media?.spoiler ?? false\n }\n\n /** For self-destructing photos, TTL in seconds */\n get ttlSeconds(): number | null {\n return this.media?.ttlSeconds ?? null\n }\n\n /**\n * Available thumbnails.\n *\n * **Note**: This list will also contain the largest thumbnail that is\n * represented by the current object.\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n const res = this.raw.sizes.map((sz) => new Thumbnail(this.raw, sz))\n this.raw.videoSizes?.forEach((sz) => res.push(new Thumbnail(this.raw, sz)))\n\n return res\n }\n\n /**\n * Get a photo thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return this.thumbnails.find((it) => it.type === type) ?? null\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this photo's best thumbnail.\n */\n get fileId(): string {\n if (!this._bestSize) {\n throw new MtArgumentError('Cannot get File ID for this photo')\n }\n\n return this.getThumbnail(this._bestSize.type)!.fileId\n }\n\n /**\n * Get TDLib and Bot API compatible Unique File ID\n * representing this photo's best thumbnail.\n */\n get uniqueFileId(): string {\n if (!this._bestSize) {\n throw new MtArgumentError('Cannot get File ID for this photo')\n }\n\n return this.getThumbnail(this._bestSize.type)!.uniqueFileId\n }\n\n /**\n * Input photo generated from this object.\n */\n get inputPhoto(): tl.TypeInputPhoto {\n return {\n _: 'inputPhoto',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n fileReference: this.raw.fileReference,\n }\n }\n\n /**\n * Input media generated from this object,\n * to be used in {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaPhoto',\n id: this.inputPhoto,\n }\n }\n}\n\nmemoizeGetters(Photo, ['thumbnails', 'fileId', 'uniqueFileId'])\nmakeInspectable(Photo, ['fileSize', 'dcId', 'width', 'height'], ['inputMedia', 'inputPhoto'])\n"]}
1
+ {"version":3,"file":"photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/photo.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * A photo\n */\nexport class Photo extends FileLocation {\n readonly type = 'photo' as const\n\n /** Biggest available photo width */\n readonly width: number\n\n /** Biggest available photo height */\n readonly height: number\n\n private _bestSize?: tl.RawPhotoSize | tl.RawPhotoSizeProgressive\n\n constructor(\n readonly raw: tl.RawPhoto,\n readonly media?: tl.RawMessageMediaPhoto,\n ) {\n const location = {\n _: 'inputPhotoFileLocation',\n id: raw.id,\n fileReference: raw.fileReference,\n accessHash: raw.accessHash,\n thumbSize: '',\n } as tl.Mutable<tl.RawInputPhotoFileLocation>\n let size\n let width\n let height: number\n\n let bestSize: tl.RawPhotoSize | tl.RawPhotoSizeProgressive\n\n const progressive = raw.sizes.find((it) => it._ === 'photoSizeProgressive') as\n | tl.RawPhotoSizeProgressive\n | undefined\n\n if (progressive) {\n location.thumbSize = progressive.type\n size = Math.max(...progressive.sizes)\n width = progressive.w\n height = progressive.h\n\n bestSize = progressive\n } else {\n let max: tl.RawPhotoSize | null = null\n\n for (const sz of raw.sizes) {\n if (sz._ === 'photoSize' && (!max || sz.size > max.size)) {\n max = sz\n }\n }\n\n if (max) {\n location.thumbSize = max.type\n size = max.size\n width = max.w\n height = max.h\n\n bestSize = max\n } else {\n // does this happen at all?\n throw new MtArgumentError('Photo does not have any sizes')\n }\n }\n\n super(location, size, raw.dcId)\n this._bestSize = bestSize\n this.width = width\n this.height = height\n this.type = 'photo'\n }\n\n /**\n * Photo ID\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /** Date this photo was sent */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether this photo is an animated profile picture\n */\n get isAnimatedAvatar(): boolean {\n return Boolean(this.raw.videoSizes?.some((s) => s._ === 'videoSize' && s.type === 'u'))\n }\n\n /**\n * Whether this photo is an animated profile picture, built from an emoji/sticker markup\n */\n get isMarkupAvatar(): boolean {\n return Boolean(\n this.raw.videoSizes?.some((s) => s._ === 'videoSizeEmojiMarkup' || s._ === 'videoSizeStickerMarkup'),\n )\n }\n\n /** Whether this photo is hidden with a spoiler */\n get hasSpoiler(): boolean {\n return this.media?.spoiler ?? false\n }\n\n /** For self-destructing photos, TTL in seconds */\n get ttlSeconds(): number | null {\n return this.media?.ttlSeconds ?? null\n }\n\n /**\n * Available thumbnails.\n *\n * **Note**: This list will also contain the largest thumbnail that is\n * represented by the current object.\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n const res = this.raw.sizes.map((sz) => new Thumbnail(this.raw, sz))\n this.raw.videoSizes?.forEach((sz) => res.push(new Thumbnail(this.raw, sz)))\n\n return res\n }\n\n /**\n * Get a photo thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return this.thumbnails.find((it) => it.type === type) ?? null\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this photo's best thumbnail.\n */\n get fileId(): string {\n if (!this._bestSize) {\n throw new MtArgumentError('Cannot get File ID for this photo')\n }\n\n return this.getThumbnail(this._bestSize.type)!.fileId\n }\n\n /**\n * Get TDLib and Bot API compatible Unique File ID\n * representing this photo's best thumbnail.\n */\n get uniqueFileId(): string {\n if (!this._bestSize) {\n throw new MtArgumentError('Cannot get File ID for this photo')\n }\n\n return this.getThumbnail(this._bestSize.type)!.uniqueFileId\n }\n\n /**\n * Input photo generated from this object.\n */\n get inputPhoto(): tl.TypeInputPhoto {\n return {\n _: 'inputPhoto',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n fileReference: this.raw.fileReference,\n }\n }\n\n /**\n * Input media generated from this object,\n * to be used in {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaPhoto',\n id: this.inputPhoto,\n }\n }\n}\n\nmemoizeGetters(Photo, ['thumbnails', 'fileId', 'uniqueFileId'])\nmakeInspectable(Photo, ['fileSize', 'dcId', 'width', 'height'], ['inputMedia', 'inputPhoto'])\n"]}
@@ -9,11 +9,14 @@ const index_js_1 = require("../../utils/index.js");
9
9
  const memoize_js_1 = require("../../utils/memoize.js");
10
10
  const message_entity_js_1 = require("../messages/message-entity.js");
11
11
  class Poll {
12
+ raw;
13
+ _peers;
14
+ results;
15
+ type = 'poll';
12
16
  constructor(raw, _peers, results) {
13
17
  this.raw = raw;
14
18
  this._peers = _peers;
15
19
  this.results = results;
16
- this.type = 'poll';
17
20
  }
18
21
  /**
19
22
  * Unique identifier of the poll