@mtcute/core 0.10.2 → 0.12.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 (1309) 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 +199 -18
  5. package/cjs/highlevel/client.js +54 -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/_imports.js.map +1 -1
  10. package/cjs/highlevel/methods/_init.js.map +1 -1
  11. package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
  12. package/cjs/highlevel/methods/auth/start.js.map +1 -1
  13. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  14. package/cjs/highlevel/methods/auth/utils.js.map +1 -1
  15. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  17. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  18. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  19. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
  20. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
  21. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  22. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  23. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
  24. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  25. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
  26. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  27. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
  28. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
  29. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  30. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
  31. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  32. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  33. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  34. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  35. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  36. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  37. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  38. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
  39. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  40. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
  41. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
  42. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  43. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  44. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
  45. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
  46. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  47. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
  48. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  49. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  50. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  51. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  52. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  53. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  54. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  55. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  56. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  57. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  58. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
  59. package/cjs/highlevel/methods/files/download-iterable.js +1 -1
  60. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  61. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
  62. package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
  63. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  64. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  65. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
  66. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  67. package/cjs/highlevel/methods/files/normalize-input-media.js +12 -12
  68. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  69. package/cjs/highlevel/methods/files/upload-file.js +7 -6
  70. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  71. package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
  72. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  73. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  74. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  75. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  76. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  77. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  78. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  79. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  80. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  81. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
  82. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  83. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  84. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  85. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  86. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  87. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  88. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  89. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  90. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  91. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  92. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  93. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  94. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  95. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  96. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  97. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  98. package/cjs/highlevel/methods/messages/get-history.js +5 -1
  99. package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
  100. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  101. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
  102. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  103. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
  104. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
  105. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
  106. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  107. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  108. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  109. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  110. package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
  111. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  112. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  113. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  114. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
  115. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
  116. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  117. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  118. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  119. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
  120. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
  121. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  122. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  123. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  124. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  125. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
  126. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  127. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  128. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  129. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  130. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  131. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
  132. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
  133. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  134. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  135. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  136. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  137. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  138. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  139. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  140. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
  141. package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
  142. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
  143. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  144. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  145. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  146. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  147. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  148. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  149. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  150. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  151. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  152. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  153. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  154. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  155. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  156. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  157. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  158. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
  159. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  160. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  161. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  162. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  163. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  164. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  165. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  166. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  167. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  168. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  169. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  170. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  171. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  172. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  173. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  174. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  175. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  176. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  177. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  178. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  179. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  180. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  181. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  182. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  183. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  184. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  185. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  186. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  187. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  188. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  189. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  190. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  191. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  192. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  193. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
  194. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
  195. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  196. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
  197. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  198. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  199. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  200. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  201. package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
  202. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  203. package/cjs/highlevel/methods/users/get-users.js.map +1 -1
  204. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  205. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  206. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
  207. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  208. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  209. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  210. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  211. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  212. package/cjs/highlevel/methods.d.ts +12 -0
  213. package/cjs/highlevel/methods.js +33 -3
  214. package/cjs/highlevel/methods.js.map +1 -1
  215. package/cjs/highlevel/storage/service/current-user.js +2 -0
  216. package/cjs/highlevel/storage/service/current-user.js.map +1 -1
  217. package/cjs/highlevel/storage/service/peers.js +5 -1
  218. package/cjs/highlevel/storage/service/peers.js.map +1 -1
  219. package/cjs/highlevel/storage/service/ref-messages.js +3 -0
  220. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
  221. package/cjs/highlevel/storage/service/updates.js +1 -0
  222. package/cjs/highlevel/storage/service/updates.js.map +1 -1
  223. package/cjs/highlevel/storage/storage.d.ts +8 -3
  224. package/cjs/highlevel/storage/storage.js +17 -4
  225. package/cjs/highlevel/storage/storage.js.map +1 -1
  226. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  227. package/cjs/highlevel/types/auth/sent-code.js +15 -0
  228. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  229. package/cjs/highlevel/types/bots/game-high-score.js +2 -0
  230. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
  231. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  232. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
  233. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  234. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
  235. package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
  236. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
  237. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  238. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
  239. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  240. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
  241. package/cjs/highlevel/types/conversation.js +13 -7
  242. package/cjs/highlevel/types/conversation.js.map +1 -1
  243. package/cjs/highlevel/types/errors.js +3 -0
  244. package/cjs/highlevel/types/errors.js.map +1 -1
  245. package/cjs/highlevel/types/files/file-location.js +3 -0
  246. package/cjs/highlevel/types/files/file-location.js.map +1 -1
  247. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  248. package/cjs/highlevel/types/files/uploaded-file.js +1 -1
  249. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
  250. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  251. package/cjs/highlevel/types/files/utils.js.map +1 -1
  252. package/cjs/highlevel/types/files/web-document.js +1 -0
  253. package/cjs/highlevel/types/files/web-document.js.map +1 -1
  254. package/cjs/highlevel/types/media/audio.js +3 -2
  255. package/cjs/highlevel/types/media/audio.js.map +1 -1
  256. package/cjs/highlevel/types/media/contact.js +2 -1
  257. package/cjs/highlevel/types/media/contact.js.map +1 -1
  258. package/cjs/highlevel/types/media/dice.js +125 -124
  259. package/cjs/highlevel/types/media/dice.js.map +1 -1
  260. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  261. package/cjs/highlevel/types/media/document-utils.js +9 -2
  262. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  263. package/cjs/highlevel/types/media/document.js +2 -4
  264. package/cjs/highlevel/types/media/document.js.map +1 -1
  265. package/cjs/highlevel/types/media/game.js +2 -1
  266. package/cjs/highlevel/types/media/game.js.map +1 -1
  267. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  268. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  269. package/cjs/highlevel/types/media/invoice.js +4 -1
  270. package/cjs/highlevel/types/media/invoice.js.map +1 -1
  271. package/cjs/highlevel/types/media/location.js +4 -5
  272. package/cjs/highlevel/types/media/location.js.map +1 -1
  273. package/cjs/highlevel/types/media/photo.js +8 -1
  274. package/cjs/highlevel/types/media/photo.js.map +1 -1
  275. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  276. package/cjs/highlevel/types/media/poll.js +69 -19
  277. package/cjs/highlevel/types/media/poll.js.map +1 -1
  278. package/cjs/highlevel/types/media/sticker.js +3 -1
  279. package/cjs/highlevel/types/media/sticker.js.map +1 -1
  280. package/cjs/highlevel/types/media/story.js +3 -1
  281. package/cjs/highlevel/types/media/story.js.map +1 -1
  282. package/cjs/highlevel/types/media/thumbnail.js +35 -22
  283. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  284. package/cjs/highlevel/types/media/venue.js +2 -1
  285. package/cjs/highlevel/types/media/venue.js.map +1 -1
  286. package/cjs/highlevel/types/media/video.js +3 -1
  287. package/cjs/highlevel/types/media/video.js.map +1 -1
  288. package/cjs/highlevel/types/media/voice.js +2 -1
  289. package/cjs/highlevel/types/media/voice.js.map +1 -1
  290. package/cjs/highlevel/types/media/web-page.js +2 -1
  291. package/cjs/highlevel/types/media/web-page.js.map +1 -1
  292. package/cjs/highlevel/types/messages/dialog.js +4 -12
  293. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  294. package/cjs/highlevel/types/messages/draft-message.js +1 -0
  295. package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
  296. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  297. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  298. package/cjs/highlevel/types/messages/message-action.js +6 -0
  299. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  300. package/cjs/highlevel/types/messages/message-entity.js +2 -0
  301. package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
  302. package/cjs/highlevel/types/messages/message-forward.js +2 -0
  303. package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
  304. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  305. package/cjs/highlevel/types/messages/message-media.js.map +1 -1
  306. package/cjs/highlevel/types/messages/message-reactions.js +4 -0
  307. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
  308. package/cjs/highlevel/types/messages/message-replies.js +2 -0
  309. package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
  310. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  311. package/cjs/highlevel/types/messages/message.js +102 -1
  312. package/cjs/highlevel/types/messages/message.js.map +1 -1
  313. package/cjs/highlevel/types/messages/replied-message.js +2 -0
  314. package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
  315. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  316. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  317. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  318. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  319. package/cjs/highlevel/types/misc/entities.js +15 -0
  320. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  321. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  322. package/cjs/highlevel/types/misc/index.js +1 -0
  323. package/cjs/highlevel/types/misc/index.js.map +1 -1
  324. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  325. package/cjs/highlevel/types/misc/sticker-set.js +43 -6
  326. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  327. package/cjs/highlevel/types/misc/takeout-session.js +5 -0
  328. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
  329. package/cjs/highlevel/types/peers/chat-colors.js +2 -0
  330. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
  331. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  332. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
  333. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  334. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
  335. package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
  336. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
  337. package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
  338. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  339. package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
  340. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
  341. package/cjs/highlevel/types/peers/chat-location.js +1 -0
  342. package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
  343. package/cjs/highlevel/types/peers/chat-member.js +2 -0
  344. package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
  345. package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
  346. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
  347. package/cjs/highlevel/types/peers/chat-photo.js +5 -0
  348. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  349. package/cjs/highlevel/types/peers/chat-preview.js +2 -0
  350. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
  351. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  352. package/cjs/highlevel/types/peers/chat.js +10 -192
  353. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  354. package/cjs/highlevel/types/peers/forum-topic.js +9 -6
  355. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
  356. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  357. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  358. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  359. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  360. package/cjs/highlevel/types/peers/index.js +1 -0
  361. package/cjs/highlevel/types/peers/index.js.map +1 -1
  362. package/cjs/highlevel/types/peers/peer.js.map +1 -1
  363. package/cjs/highlevel/types/peers/peers-index.js +3 -1
  364. package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
  365. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  366. package/cjs/highlevel/types/peers/user.js +12 -1
  367. package/cjs/highlevel/types/peers/user.js.map +1 -1
  368. package/cjs/highlevel/types/premium/boost-slot.js +2 -0
  369. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
  370. package/cjs/highlevel/types/premium/boost-stats.js +1 -0
  371. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
  372. package/cjs/highlevel/types/premium/boost.js +2 -0
  373. package/cjs/highlevel/types/premium/boost.js.map +1 -1
  374. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  375. package/cjs/highlevel/types/premium/business-account.js +45 -0
  376. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  377. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  378. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  379. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  380. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  381. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  382. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  383. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  384. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  385. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  386. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  387. package/cjs/highlevel/types/premium/business-location.js +26 -0
  388. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  389. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  390. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  391. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  392. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  393. package/cjs/highlevel/types/premium/index.js +5 -0
  394. package/cjs/highlevel/types/premium/index.js.map +1 -1
  395. package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
  396. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
  397. package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
  398. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
  399. package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
  400. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
  401. package/cjs/highlevel/types/reactions/types.js.map +1 -1
  402. package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
  403. package/cjs/highlevel/types/stories/all-stories.js +3 -1
  404. package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
  405. package/cjs/highlevel/types/stories/interactive/base.js +1 -0
  406. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
  407. package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
  408. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  409. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
  410. package/cjs/highlevel/types/stories/interactive/input.js +1 -0
  411. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
  412. package/cjs/highlevel/types/stories/interactive/location.js +2 -1
  413. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
  414. package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
  415. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
  416. package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
  417. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
  418. package/cjs/highlevel/types/stories/peer-stories.js +2 -0
  419. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
  420. package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
  421. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
  422. package/cjs/highlevel/types/stories/story-interactions.js +2 -0
  423. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
  424. package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
  425. package/cjs/highlevel/types/stories/story-viewer.js +6 -0
  426. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
  427. package/cjs/highlevel/types/stories/story.js +2 -0
  428. package/cjs/highlevel/types/stories/story.js.map +1 -1
  429. package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
  430. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  431. package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
  432. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
  433. package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
  434. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
  435. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  436. package/cjs/highlevel/types/updates/business-message.js +35 -0
  437. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  438. package/cjs/highlevel/types/updates/callback-query.js +4 -0
  439. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  440. package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
  441. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
  442. package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
  443. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
  444. package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
  445. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  446. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  447. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  448. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  449. package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
  450. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
  451. package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
  452. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
  453. package/cjs/highlevel/types/updates/history-read-update.js +1 -0
  454. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
  455. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  456. package/cjs/highlevel/types/updates/index.js +5 -1
  457. package/cjs/highlevel/types/updates/index.js.map +1 -1
  458. package/cjs/highlevel/types/updates/inline-query.js +2 -0
  459. package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
  460. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  461. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  462. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  463. package/cjs/highlevel/types/updates/poll-update.js +4 -2
  464. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  465. package/cjs/highlevel/types/updates/poll-vote.js +2 -0
  466. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
  467. package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
  468. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  469. package/cjs/highlevel/types/updates/story-update.js +2 -0
  470. package/cjs/highlevel/types/updates/story-update.js.map +1 -1
  471. package/cjs/highlevel/types/updates/user-status-update.js +1 -0
  472. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  473. package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
  474. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
  475. package/cjs/highlevel/updates/manager.d.ts +0 -1
  476. package/cjs/highlevel/updates/manager.js +57 -30
  477. package/cjs/highlevel/updates/manager.js.map +1 -1
  478. package/cjs/highlevel/updates/parsed.js +8 -2
  479. package/cjs/highlevel/updates/parsed.js.map +1 -1
  480. package/cjs/highlevel/updates/types.d.ts +57 -0
  481. package/cjs/highlevel/updates/utils.d.ts +2 -0
  482. package/cjs/highlevel/updates/utils.js.map +1 -1
  483. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  484. package/cjs/highlevel/utils/entities.js.map +1 -1
  485. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  486. package/cjs/highlevel/utils/file-type.js +35 -1
  487. package/cjs/highlevel/utils/file-type.js.map +1 -1
  488. package/cjs/highlevel/utils/file-utils.js +1 -1
  489. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  490. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  491. package/cjs/highlevel/utils/inspectable.js +7 -0
  492. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  493. package/cjs/highlevel/utils/memoize.js.map +1 -1
  494. package/cjs/highlevel/utils/peer-utils.js.map +1 -1
  495. package/cjs/highlevel/utils/query-batcher.js.map +1 -1
  496. package/cjs/highlevel/utils/rps-meter.js +3 -0
  497. package/cjs/highlevel/utils/rps-meter.js.map +1 -1
  498. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  499. package/cjs/highlevel/utils/string-session.d.ts +1 -2
  500. package/cjs/highlevel/utils/string-session.js +27 -7
  501. package/cjs/highlevel/utils/string-session.js.map +1 -1
  502. package/cjs/highlevel/utils/voice-utils.js.map +1 -1
  503. package/cjs/highlevel/worker/app-config.d.ts +2 -3
  504. package/cjs/highlevel/worker/app-config.js +6 -3
  505. package/cjs/highlevel/worker/app-config.js.map +1 -1
  506. package/cjs/highlevel/worker/errors.js.map +1 -1
  507. package/cjs/highlevel/worker/index.js +6 -0
  508. package/cjs/highlevel/worker/invoker.js +3 -2
  509. package/cjs/highlevel/worker/invoker.js.map +1 -1
  510. package/cjs/highlevel/worker/port.d.ts +16 -17
  511. package/cjs/highlevel/worker/port.js +74 -49
  512. package/cjs/highlevel/worker/port.js.map +1 -1
  513. package/cjs/highlevel/worker/protocol.d.ts +1 -2
  514. package/cjs/highlevel/worker/protocol.js.map +1 -1
  515. package/cjs/highlevel/worker/storage.d.ts +9 -13
  516. package/cjs/highlevel/worker/storage.js +34 -19
  517. package/cjs/highlevel/worker/storage.js.map +1 -1
  518. package/cjs/highlevel/worker/worker.js +3 -0
  519. package/cjs/highlevel/worker/worker.js.map +1 -1
  520. package/cjs/index.js +6 -0
  521. package/cjs/network/auth-key.js +8 -1
  522. package/cjs/network/auth-key.js.map +1 -1
  523. package/cjs/network/authorization.js.map +1 -1
  524. package/cjs/network/client.d.ts +0 -1
  525. package/cjs/network/client.js +39 -14
  526. package/cjs/network/client.js.map +1 -1
  527. package/cjs/network/config-manager.js.map +1 -1
  528. package/cjs/network/mtproto-session.d.ts +0 -1
  529. package/cjs/network/mtproto-session.js +40 -30
  530. package/cjs/network/mtproto-session.js.map +1 -1
  531. package/cjs/network/multi-session-connection.d.ts +1 -2
  532. package/cjs/network/multi-session-connection.js +13 -7
  533. package/cjs/network/multi-session-connection.js.map +1 -1
  534. package/cjs/network/network-manager.d.ts +10 -3
  535. package/cjs/network/network-manager.js +57 -31
  536. package/cjs/network/network-manager.js.map +1 -1
  537. package/cjs/network/persistent-connection.d.ts +2 -3
  538. package/cjs/network/persistent-connection.js +33 -22
  539. package/cjs/network/persistent-connection.js.map +1 -1
  540. package/cjs/network/server-salt.js +4 -5
  541. package/cjs/network/server-salt.js.map +1 -1
  542. package/cjs/network/session-connection.d.ts +1 -1
  543. package/cjs/network/session-connection.js +32 -12
  544. package/cjs/network/session-connection.js.map +1 -1
  545. package/cjs/network/transports/abstract.d.ts +1 -2
  546. package/cjs/network/transports/abstract.js +1 -0
  547. package/cjs/network/transports/abstract.js.map +1 -1
  548. package/cjs/network/transports/intermediate.js +1 -0
  549. package/cjs/network/transports/intermediate.js.map +1 -1
  550. package/cjs/network/transports/obfuscated.js +3 -0
  551. package/cjs/network/transports/obfuscated.js.map +1 -1
  552. package/cjs/network/transports/streamed.d.ts +0 -1
  553. package/cjs/network/transports/streamed.js +1 -4
  554. package/cjs/network/transports/streamed.js.map +1 -1
  555. package/cjs/network/transports/wrapped.d.ts +0 -1
  556. package/cjs/network/transports/wrapped.js +2 -0
  557. package/cjs/network/transports/wrapped.js.map +1 -1
  558. package/cjs/platform.js +6 -0
  559. package/cjs/platform.js.map +1 -1
  560. package/cjs/storage/driver.js +3 -4
  561. package/cjs/storage/driver.js.map +1 -1
  562. package/cjs/storage/memory/driver.js +1 -3
  563. package/cjs/storage/memory/driver.js.map +1 -1
  564. package/cjs/storage/memory/index.js +5 -7
  565. package/cjs/storage/memory/index.js.map +1 -1
  566. package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
  567. package/cjs/storage/memory/repository/auth-keys.js +2 -0
  568. package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
  569. package/cjs/storage/memory/repository/kv.d.ts +1 -1
  570. package/cjs/storage/memory/repository/kv.js +2 -0
  571. package/cjs/storage/memory/repository/kv.js.map +1 -1
  572. package/cjs/storage/memory/repository/peers.d.ts +1 -1
  573. package/cjs/storage/memory/repository/peers.js +2 -0
  574. package/cjs/storage/memory/repository/peers.js.map +1 -1
  575. package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
  576. package/cjs/storage/memory/repository/ref-messages.js +2 -0
  577. package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
  578. package/cjs/storage/service/auth-keys.js +2 -0
  579. package/cjs/storage/service/auth-keys.js.map +1 -1
  580. package/cjs/storage/service/base.js +4 -0
  581. package/cjs/storage/service/base.js.map +1 -1
  582. package/cjs/storage/service/default-dcs.js +2 -0
  583. package/cjs/storage/service/default-dcs.js.map +1 -1
  584. package/cjs/storage/service/future-salts.js +2 -1
  585. package/cjs/storage/service/future-salts.js.map +1 -1
  586. package/cjs/storage/sqlite/driver.js +10 -10
  587. package/cjs/storage/sqlite/driver.js.map +1 -1
  588. package/cjs/storage/sqlite/index.d.ts +1 -1
  589. package/cjs/storage/sqlite/index.js +5 -0
  590. package/cjs/storage/sqlite/index.js.map +1 -1
  591. package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
  592. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
  593. package/cjs/storage/sqlite/repository/kv.js +5 -0
  594. package/cjs/storage/sqlite/repository/kv.js.map +1 -1
  595. package/cjs/storage/sqlite/repository/peers.js +7 -2
  596. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  597. package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
  598. package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
  599. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
  600. package/cjs/storage/storage.d.ts +22 -3
  601. package/cjs/storage/storage.js +21 -13
  602. package/cjs/storage/storage.js.map +1 -1
  603. package/cjs/types/errors.js +13 -0
  604. package/cjs/types/errors.js.map +1 -1
  605. package/cjs/types/utils.d.ts +1 -0
  606. package/cjs/types/utils.js.map +1 -1
  607. package/cjs/utils/async-lock.js +1 -3
  608. package/cjs/utils/async-lock.js.map +1 -1
  609. package/cjs/utils/bigint-utils.js.map +1 -1
  610. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  611. package/cjs/utils/buffer-utils.js.map +1 -1
  612. package/cjs/utils/condition-variable.js +2 -0
  613. package/cjs/utils/condition-variable.js.map +1 -1
  614. package/cjs/utils/crypto/factorization.js.map +1 -1
  615. package/cjs/utils/crypto/keys.js.map +1 -1
  616. package/cjs/utils/crypto/miller-rabin.js.map +1 -1
  617. package/cjs/utils/crypto/password.js.map +1 -1
  618. package/cjs/utils/crypto/utils.js.map +1 -1
  619. package/cjs/utils/dcs.js +1 -1
  620. package/cjs/utils/dcs.js.map +1 -1
  621. package/cjs/utils/deque.js +8 -2
  622. package/cjs/utils/deque.js.map +1 -1
  623. package/cjs/utils/early-timer.js +4 -1
  624. package/cjs/utils/early-timer.js.map +1 -1
  625. package/cjs/utils/error-reporting.js.map +1 -1
  626. package/cjs/utils/function-utils.js.map +1 -1
  627. package/cjs/utils/index.js +6 -0
  628. package/cjs/utils/linked-list.js +4 -1
  629. package/cjs/utils/linked-list.js.map +1 -1
  630. package/cjs/utils/links/bots.js.map +1 -1
  631. package/cjs/utils/links/chat.js.map +1 -1
  632. package/cjs/utils/links/common.js.map +1 -1
  633. package/cjs/utils/links/misc.js.map +1 -1
  634. package/cjs/utils/logger.d.ts +2 -2
  635. package/cjs/utils/logger.js +21 -14
  636. package/cjs/utils/logger.js.map +1 -1
  637. package/cjs/utils/long-utils.js +2 -6
  638. package/cjs/utils/long-utils.js.map +1 -1
  639. package/cjs/utils/lru-map.js +5 -1
  640. package/cjs/utils/lru-map.js.map +1 -1
  641. package/cjs/utils/lru-set.js +4 -0
  642. package/cjs/utils/lru-set.js.map +1 -1
  643. package/cjs/utils/peer-utils.js.map +1 -1
  644. package/cjs/utils/reloadable.d.ts +0 -1
  645. package/cjs/utils/reloadable.js +10 -7
  646. package/cjs/utils/reloadable.js.map +1 -1
  647. package/cjs/utils/sorted-array.js +2 -0
  648. package/cjs/utils/sorted-array.js.map +1 -1
  649. package/cjs/utils/tl-json.js.map +1 -1
  650. package/cjs/utils/type-assertions.js.map +1 -1
  651. package/client.d.ts +1 -0
  652. package/client.js +1 -0
  653. package/esm/highlevel/base.d.ts +1 -1
  654. package/esm/highlevel/base.js +29 -23
  655. package/esm/highlevel/base.js.map +1 -1
  656. package/esm/highlevel/client.d.ts +199 -18
  657. package/esm/highlevel/client.js +48 -0
  658. package/esm/highlevel/client.js.map +1 -1
  659. package/esm/highlevel/managers/app-config-manager.js +7 -5
  660. package/esm/highlevel/managers/app-config-manager.js.map +1 -1
  661. package/esm/highlevel/methods/_imports.js.map +1 -1
  662. package/esm/highlevel/methods/_init.js.map +1 -1
  663. package/esm/highlevel/methods/auth/start-test.js.map +1 -1
  664. package/esm/highlevel/methods/auth/start.js.map +1 -1
  665. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  666. package/esm/highlevel/methods/auth/utils.js.map +1 -1
  667. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  668. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  669. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  670. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  671. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
  672. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
  673. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  674. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  675. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
  676. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  677. package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
  678. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  679. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
  680. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
  681. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  682. package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
  683. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  684. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  685. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  686. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  687. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  688. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  689. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  690. package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
  691. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  692. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
  693. package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
  694. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  695. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  696. package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
  697. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
  698. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  699. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
  700. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  701. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  702. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  703. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  704. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  705. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  706. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  707. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  708. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  709. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  710. package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
  711. package/esm/highlevel/methods/files/download-iterable.js +1 -1
  712. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  713. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
  714. package/esm/highlevel/methods/files/download-stream.js.map +1 -1
  715. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  716. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  717. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
  718. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  719. package/esm/highlevel/methods/files/normalize-input-media.js +12 -12
  720. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  721. package/esm/highlevel/methods/files/upload-file.js +8 -7
  722. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  723. package/esm/highlevel/methods/files/upload-media.js.map +1 -1
  724. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  725. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  726. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  727. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  728. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  729. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  730. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  731. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  732. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  733. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
  734. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  735. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  736. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  737. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  738. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  739. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  740. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  741. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  742. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  743. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  744. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  745. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  746. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  747. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  748. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  749. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  750. package/esm/highlevel/methods/messages/get-history.js +5 -1
  751. package/esm/highlevel/methods/messages/get-history.js.map +1 -1
  752. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  753. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
  754. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  755. package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
  756. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
  757. package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
  758. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  759. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  760. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  761. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  762. package/esm/highlevel/methods/messages/read-history.js.map +1 -1
  763. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  764. package/esm/highlevel/methods/messages/search-global.js +2 -1
  765. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  766. package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
  767. package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
  768. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  769. package/esm/highlevel/methods/messages/send-common.js +19 -0
  770. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  771. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
  772. package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
  773. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  774. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  775. package/esm/highlevel/methods/messages/send-media.js +4 -2
  776. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  777. package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
  778. package/esm/highlevel/methods/messages/send-text.js +4 -2
  779. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  780. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  781. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  782. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  783. package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
  784. package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
  785. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  786. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  787. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  788. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  789. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  790. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  791. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  792. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
  793. package/esm/highlevel/methods/misc/with-params.js.map +1 -1
  794. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
  795. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  796. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  797. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  798. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  799. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  800. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  801. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  802. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  803. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  804. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  805. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  806. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  807. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  808. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  809. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  810. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
  811. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  812. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  813. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  814. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  815. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  816. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  817. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  818. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  819. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  820. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  821. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  822. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  823. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  824. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  825. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  826. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  827. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  828. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  829. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  830. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  831. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  832. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  833. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  834. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  835. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  836. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  837. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  838. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  839. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  840. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  841. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  842. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  843. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  844. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  845. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
  846. package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
  847. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  848. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
  849. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  850. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  851. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  852. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  853. package/esm/highlevel/methods/stories/send-story.js.map +1 -1
  854. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  855. package/esm/highlevel/methods/users/get-users.js.map +1 -1
  856. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  857. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  858. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
  859. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  860. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  861. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  862. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  863. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  864. package/esm/highlevel/methods.d.ts +12 -0
  865. package/esm/highlevel/methods.js +12 -0
  866. package/esm/highlevel/methods.js.map +1 -1
  867. package/esm/highlevel/storage/service/current-user.js +2 -0
  868. package/esm/highlevel/storage/service/current-user.js.map +1 -1
  869. package/esm/highlevel/storage/service/peers.js +5 -1
  870. package/esm/highlevel/storage/service/peers.js.map +1 -1
  871. package/esm/highlevel/storage/service/ref-messages.js +3 -0
  872. package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
  873. package/esm/highlevel/storage/service/updates.js +1 -0
  874. package/esm/highlevel/storage/service/updates.js.map +1 -1
  875. package/esm/highlevel/storage/storage.d.ts +8 -3
  876. package/esm/highlevel/storage/storage.js +17 -4
  877. package/esm/highlevel/storage/storage.js.map +1 -1
  878. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  879. package/esm/highlevel/types/auth/sent-code.js +15 -0
  880. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  881. package/esm/highlevel/types/bots/game-high-score.js +2 -0
  882. package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
  883. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  884. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
  885. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  886. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
  887. package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
  888. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
  889. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  890. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
  891. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  892. package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
  893. package/esm/highlevel/types/conversation.js +13 -7
  894. package/esm/highlevel/types/conversation.js.map +1 -1
  895. package/esm/highlevel/types/errors.js +3 -0
  896. package/esm/highlevel/types/errors.js.map +1 -1
  897. package/esm/highlevel/types/files/file-location.js +3 -0
  898. package/esm/highlevel/types/files/file-location.js.map +1 -1
  899. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  900. package/esm/highlevel/types/files/uploaded-file.js +1 -1
  901. package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
  902. package/esm/highlevel/types/files/utils.d.ts +6 -5
  903. package/esm/highlevel/types/files/utils.js.map +1 -1
  904. package/esm/highlevel/types/files/web-document.js +1 -0
  905. package/esm/highlevel/types/files/web-document.js.map +1 -1
  906. package/esm/highlevel/types/media/audio.js +3 -2
  907. package/esm/highlevel/types/media/audio.js.map +1 -1
  908. package/esm/highlevel/types/media/contact.js +2 -1
  909. package/esm/highlevel/types/media/contact.js.map +1 -1
  910. package/esm/highlevel/types/media/dice.js +125 -124
  911. package/esm/highlevel/types/media/dice.js.map +1 -1
  912. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  913. package/esm/highlevel/types/media/document-utils.js +7 -1
  914. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  915. package/esm/highlevel/types/media/document.js +2 -4
  916. package/esm/highlevel/types/media/document.js.map +1 -1
  917. package/esm/highlevel/types/media/game.js +2 -1
  918. package/esm/highlevel/types/media/game.js.map +1 -1
  919. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  920. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  921. package/esm/highlevel/types/media/invoice.js +4 -1
  922. package/esm/highlevel/types/media/invoice.js.map +1 -1
  923. package/esm/highlevel/types/media/location.js +4 -5
  924. package/esm/highlevel/types/media/location.js.map +1 -1
  925. package/esm/highlevel/types/media/photo.js +8 -1
  926. package/esm/highlevel/types/media/photo.js.map +1 -1
  927. package/esm/highlevel/types/media/poll.d.ts +17 -6
  928. package/esm/highlevel/types/media/poll.js +68 -18
  929. package/esm/highlevel/types/media/poll.js.map +1 -1
  930. package/esm/highlevel/types/media/sticker.js +3 -1
  931. package/esm/highlevel/types/media/sticker.js.map +1 -1
  932. package/esm/highlevel/types/media/story.js +3 -1
  933. package/esm/highlevel/types/media/story.js.map +1 -1
  934. package/esm/highlevel/types/media/thumbnail.js +35 -22
  935. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  936. package/esm/highlevel/types/media/venue.js +2 -1
  937. package/esm/highlevel/types/media/venue.js.map +1 -1
  938. package/esm/highlevel/types/media/video.js +3 -1
  939. package/esm/highlevel/types/media/video.js.map +1 -1
  940. package/esm/highlevel/types/media/voice.js +2 -1
  941. package/esm/highlevel/types/media/voice.js.map +1 -1
  942. package/esm/highlevel/types/media/web-page.js +2 -1
  943. package/esm/highlevel/types/media/web-page.js.map +1 -1
  944. package/esm/highlevel/types/messages/dialog.js +4 -12
  945. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  946. package/esm/highlevel/types/messages/draft-message.js +1 -0
  947. package/esm/highlevel/types/messages/draft-message.js.map +1 -1
  948. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  949. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  950. package/esm/highlevel/types/messages/message-action.js +6 -0
  951. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  952. package/esm/highlevel/types/messages/message-entity.js +2 -0
  953. package/esm/highlevel/types/messages/message-entity.js.map +1 -1
  954. package/esm/highlevel/types/messages/message-forward.js +2 -0
  955. package/esm/highlevel/types/messages/message-forward.js.map +1 -1
  956. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  957. package/esm/highlevel/types/messages/message-media.js.map +1 -1
  958. package/esm/highlevel/types/messages/message-reactions.js +4 -0
  959. package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
  960. package/esm/highlevel/types/messages/message-replies.js +2 -0
  961. package/esm/highlevel/types/messages/message-replies.js.map +1 -1
  962. package/esm/highlevel/types/messages/message.d.ts +59 -1
  963. package/esm/highlevel/types/messages/message.js +102 -1
  964. package/esm/highlevel/types/messages/message.js.map +1 -1
  965. package/esm/highlevel/types/messages/replied-message.js +2 -0
  966. package/esm/highlevel/types/messages/replied-message.js.map +1 -1
  967. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  968. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  969. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  970. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  971. package/esm/highlevel/types/misc/entities.js +13 -1
  972. package/esm/highlevel/types/misc/entities.js.map +1 -1
  973. package/esm/highlevel/types/misc/index.d.ts +1 -0
  974. package/esm/highlevel/types/misc/index.js +1 -0
  975. package/esm/highlevel/types/misc/index.js.map +1 -1
  976. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  977. package/esm/highlevel/types/misc/sticker-set.js +45 -8
  978. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  979. package/esm/highlevel/types/misc/takeout-session.js +5 -0
  980. package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
  981. package/esm/highlevel/types/peers/chat-colors.js +2 -0
  982. package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
  983. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  984. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
  985. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  986. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
  987. package/esm/highlevel/types/peers/chat-event/index.js +2 -0
  988. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
  989. package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
  990. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  991. package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
  992. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
  993. package/esm/highlevel/types/peers/chat-location.js +1 -0
  994. package/esm/highlevel/types/peers/chat-location.js.map +1 -1
  995. package/esm/highlevel/types/peers/chat-member.js +2 -0
  996. package/esm/highlevel/types/peers/chat-member.js.map +1 -1
  997. package/esm/highlevel/types/peers/chat-permissions.js +1 -0
  998. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
  999. package/esm/highlevel/types/peers/chat-photo.js +5 -0
  1000. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  1001. package/esm/highlevel/types/peers/chat-preview.js +2 -0
  1002. package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
  1003. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  1004. package/esm/highlevel/types/peers/chat.js +10 -192
  1005. package/esm/highlevel/types/peers/chat.js.map +1 -1
  1006. package/esm/highlevel/types/peers/forum-topic.js +9 -6
  1007. package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
  1008. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  1009. package/esm/highlevel/types/peers/full-chat.js +234 -0
  1010. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  1011. package/esm/highlevel/types/peers/index.d.ts +1 -0
  1012. package/esm/highlevel/types/peers/index.js +1 -0
  1013. package/esm/highlevel/types/peers/index.js.map +1 -1
  1014. package/esm/highlevel/types/peers/peer.js.map +1 -1
  1015. package/esm/highlevel/types/peers/peers-index.js +3 -1
  1016. package/esm/highlevel/types/peers/peers-index.js.map +1 -1
  1017. package/esm/highlevel/types/peers/user.d.ts +5 -0
  1018. package/esm/highlevel/types/peers/user.js +12 -1
  1019. package/esm/highlevel/types/peers/user.js.map +1 -1
  1020. package/esm/highlevel/types/premium/boost-slot.js +2 -0
  1021. package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
  1022. package/esm/highlevel/types/premium/boost-stats.js +1 -0
  1023. package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
  1024. package/esm/highlevel/types/premium/boost.js +2 -0
  1025. package/esm/highlevel/types/premium/boost.js.map +1 -1
  1026. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  1027. package/esm/highlevel/types/premium/business-account.js +42 -0
  1028. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  1029. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  1030. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  1031. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  1032. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  1033. package/esm/highlevel/types/premium/business-connection.js +42 -0
  1034. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  1035. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  1036. package/esm/highlevel/types/premium/business-intro.js +40 -0
  1037. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  1038. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  1039. package/esm/highlevel/types/premium/business-location.js +23 -0
  1040. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  1041. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  1042. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  1043. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  1044. package/esm/highlevel/types/premium/index.d.ts +5 -0
  1045. package/esm/highlevel/types/premium/index.js +5 -0
  1046. package/esm/highlevel/types/premium/index.js.map +1 -1
  1047. package/esm/highlevel/types/reactions/emoji-status.js +1 -0
  1048. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
  1049. package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
  1050. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
  1051. package/esm/highlevel/types/reactions/reaction-count.js +1 -0
  1052. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
  1053. package/esm/highlevel/types/reactions/types.js.map +1 -1
  1054. package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
  1055. package/esm/highlevel/types/stories/all-stories.js +3 -1
  1056. package/esm/highlevel/types/stories/all-stories.js.map +1 -1
  1057. package/esm/highlevel/types/stories/interactive/base.js +1 -0
  1058. package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
  1059. package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
  1060. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  1061. package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
  1062. package/esm/highlevel/types/stories/interactive/input.js +1 -0
  1063. package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
  1064. package/esm/highlevel/types/stories/interactive/location.js +2 -1
  1065. package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
  1066. package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
  1067. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
  1068. package/esm/highlevel/types/stories/interactive/venue.js +2 -1
  1069. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
  1070. package/esm/highlevel/types/stories/peer-stories.js +2 -0
  1071. package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
  1072. package/esm/highlevel/types/stories/stealth-mode.js +1 -0
  1073. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
  1074. package/esm/highlevel/types/stories/story-interactions.js +2 -0
  1075. package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
  1076. package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
  1077. package/esm/highlevel/types/stories/story-viewer.js +6 -0
  1078. package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
  1079. package/esm/highlevel/types/stories/story.js +2 -0
  1080. package/esm/highlevel/types/stories/story.js.map +1 -1
  1081. package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
  1082. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  1083. package/esm/highlevel/types/updates/bot-reaction.js +4 -0
  1084. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
  1085. package/esm/highlevel/types/updates/bot-stopped.js +2 -0
  1086. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
  1087. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  1088. package/esm/highlevel/types/updates/business-message.js +31 -0
  1089. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  1090. package/esm/highlevel/types/updates/callback-query.js +4 -0
  1091. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  1092. package/esm/highlevel/types/updates/chat-join-request.js +2 -0
  1093. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
  1094. package/esm/highlevel/types/updates/chat-member-update.js +2 -0
  1095. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
  1096. package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
  1097. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  1098. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  1099. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  1100. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  1101. package/esm/highlevel/types/updates/delete-message-update.js +1 -0
  1102. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
  1103. package/esm/highlevel/types/updates/delete-story-update.js +2 -0
  1104. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
  1105. package/esm/highlevel/types/updates/history-read-update.js +1 -0
  1106. package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
  1107. package/esm/highlevel/types/updates/index.d.ts +19 -2
  1108. package/esm/highlevel/types/updates/index.js +3 -1
  1109. package/esm/highlevel/types/updates/index.js.map +1 -1
  1110. package/esm/highlevel/types/updates/inline-query.js +2 -0
  1111. package/esm/highlevel/types/updates/inline-query.js.map +1 -1
  1112. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  1113. package/esm/highlevel/types/updates/parse-update.js +9 -1
  1114. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  1115. package/esm/highlevel/types/updates/poll-update.js +4 -2
  1116. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  1117. package/esm/highlevel/types/updates/poll-vote.js +2 -0
  1118. package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
  1119. package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
  1120. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  1121. package/esm/highlevel/types/updates/story-update.js +2 -0
  1122. package/esm/highlevel/types/updates/story-update.js.map +1 -1
  1123. package/esm/highlevel/types/updates/user-status-update.js +1 -0
  1124. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  1125. package/esm/highlevel/types/updates/user-typing-update.js +1 -0
  1126. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
  1127. package/esm/highlevel/updates/manager.d.ts +0 -1
  1128. package/esm/highlevel/updates/manager.js +57 -30
  1129. package/esm/highlevel/updates/manager.js.map +1 -1
  1130. package/esm/highlevel/updates/parsed.js +8 -2
  1131. package/esm/highlevel/updates/parsed.js.map +1 -1
  1132. package/esm/highlevel/updates/types.d.ts +57 -0
  1133. package/esm/highlevel/updates/utils.d.ts +2 -0
  1134. package/esm/highlevel/updates/utils.js.map +1 -1
  1135. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  1136. package/esm/highlevel/utils/entities.js.map +1 -1
  1137. package/esm/highlevel/utils/file-type.d.ts +1 -0
  1138. package/esm/highlevel/utils/file-type.js +34 -0
  1139. package/esm/highlevel/utils/file-type.js.map +1 -1
  1140. package/esm/highlevel/utils/file-utils.js +1 -1
  1141. package/esm/highlevel/utils/file-utils.js.map +1 -1
  1142. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  1143. package/esm/highlevel/utils/inspectable.js +4 -0
  1144. package/esm/highlevel/utils/inspectable.js.map +1 -1
  1145. package/esm/highlevel/utils/memoize.js.map +1 -1
  1146. package/esm/highlevel/utils/peer-utils.js.map +1 -1
  1147. package/esm/highlevel/utils/query-batcher.js.map +1 -1
  1148. package/esm/highlevel/utils/rps-meter.js +3 -0
  1149. package/esm/highlevel/utils/rps-meter.js.map +1 -1
  1150. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  1151. package/esm/highlevel/utils/string-session.d.ts +1 -2
  1152. package/esm/highlevel/utils/string-session.js +27 -7
  1153. package/esm/highlevel/utils/string-session.js.map +1 -1
  1154. package/esm/highlevel/utils/voice-utils.js.map +1 -1
  1155. package/esm/highlevel/worker/app-config.d.ts +2 -3
  1156. package/esm/highlevel/worker/app-config.js +6 -3
  1157. package/esm/highlevel/worker/app-config.js.map +1 -1
  1158. package/esm/highlevel/worker/errors.js.map +1 -1
  1159. package/esm/highlevel/worker/invoker.js +3 -2
  1160. package/esm/highlevel/worker/invoker.js.map +1 -1
  1161. package/esm/highlevel/worker/port.d.ts +16 -17
  1162. package/esm/highlevel/worker/port.js +74 -49
  1163. package/esm/highlevel/worker/port.js.map +1 -1
  1164. package/esm/highlevel/worker/protocol.d.ts +1 -2
  1165. package/esm/highlevel/worker/protocol.js.map +1 -1
  1166. package/esm/highlevel/worker/storage.d.ts +9 -13
  1167. package/esm/highlevel/worker/storage.js +34 -19
  1168. package/esm/highlevel/worker/storage.js.map +1 -1
  1169. package/esm/highlevel/worker/worker.js +3 -0
  1170. package/esm/highlevel/worker/worker.js.map +1 -1
  1171. package/esm/network/auth-key.js +8 -1
  1172. package/esm/network/auth-key.js.map +1 -1
  1173. package/esm/network/authorization.js.map +1 -1
  1174. package/esm/network/client.d.ts +0 -1
  1175. package/esm/network/client.js +39 -14
  1176. package/esm/network/client.js.map +1 -1
  1177. package/esm/network/config-manager.js.map +1 -1
  1178. package/esm/network/mtproto-session.d.ts +0 -1
  1179. package/esm/network/mtproto-session.js +40 -30
  1180. package/esm/network/mtproto-session.js.map +1 -1
  1181. package/esm/network/multi-session-connection.d.ts +1 -2
  1182. package/esm/network/multi-session-connection.js +13 -7
  1183. package/esm/network/multi-session-connection.js.map +1 -1
  1184. package/esm/network/network-manager.d.ts +10 -3
  1185. package/esm/network/network-manager.js +57 -31
  1186. package/esm/network/network-manager.js.map +1 -1
  1187. package/esm/network/persistent-connection.d.ts +2 -3
  1188. package/esm/network/persistent-connection.js +33 -22
  1189. package/esm/network/persistent-connection.js.map +1 -1
  1190. package/esm/network/server-salt.js +4 -5
  1191. package/esm/network/server-salt.js.map +1 -1
  1192. package/esm/network/session-connection.d.ts +1 -1
  1193. package/esm/network/session-connection.js +32 -12
  1194. package/esm/network/session-connection.js.map +1 -1
  1195. package/esm/network/transports/abstract.d.ts +1 -2
  1196. package/esm/network/transports/abstract.js +1 -0
  1197. package/esm/network/transports/abstract.js.map +1 -1
  1198. package/esm/network/transports/intermediate.js +1 -0
  1199. package/esm/network/transports/intermediate.js.map +1 -1
  1200. package/esm/network/transports/obfuscated.js +3 -0
  1201. package/esm/network/transports/obfuscated.js.map +1 -1
  1202. package/esm/network/transports/streamed.d.ts +0 -1
  1203. package/esm/network/transports/streamed.js +1 -4
  1204. package/esm/network/transports/streamed.js.map +1 -1
  1205. package/esm/network/transports/wrapped.d.ts +0 -1
  1206. package/esm/network/transports/wrapped.js +2 -0
  1207. package/esm/network/transports/wrapped.js.map +1 -1
  1208. package/esm/platform.js.map +1 -1
  1209. package/esm/storage/driver.js +3 -4
  1210. package/esm/storage/driver.js.map +1 -1
  1211. package/esm/storage/memory/driver.js +1 -3
  1212. package/esm/storage/memory/driver.js.map +1 -1
  1213. package/esm/storage/memory/index.js +5 -7
  1214. package/esm/storage/memory/index.js.map +1 -1
  1215. package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
  1216. package/esm/storage/memory/repository/auth-keys.js +2 -0
  1217. package/esm/storage/memory/repository/auth-keys.js.map +1 -1
  1218. package/esm/storage/memory/repository/kv.d.ts +1 -1
  1219. package/esm/storage/memory/repository/kv.js +2 -0
  1220. package/esm/storage/memory/repository/kv.js.map +1 -1
  1221. package/esm/storage/memory/repository/peers.d.ts +1 -1
  1222. package/esm/storage/memory/repository/peers.js +2 -0
  1223. package/esm/storage/memory/repository/peers.js.map +1 -1
  1224. package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
  1225. package/esm/storage/memory/repository/ref-messages.js +2 -0
  1226. package/esm/storage/memory/repository/ref-messages.js.map +1 -1
  1227. package/esm/storage/service/auth-keys.js +2 -0
  1228. package/esm/storage/service/auth-keys.js.map +1 -1
  1229. package/esm/storage/service/base.js +4 -0
  1230. package/esm/storage/service/base.js.map +1 -1
  1231. package/esm/storage/service/default-dcs.js +2 -0
  1232. package/esm/storage/service/default-dcs.js.map +1 -1
  1233. package/esm/storage/service/future-salts.js +2 -1
  1234. package/esm/storage/service/future-salts.js.map +1 -1
  1235. package/esm/storage/sqlite/driver.js +10 -10
  1236. package/esm/storage/sqlite/driver.js.map +1 -1
  1237. package/esm/storage/sqlite/index.d.ts +1 -1
  1238. package/esm/storage/sqlite/index.js +5 -0
  1239. package/esm/storage/sqlite/index.js.map +1 -1
  1240. package/esm/storage/sqlite/repository/auth-keys.js +9 -0
  1241. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
  1242. package/esm/storage/sqlite/repository/kv.js +5 -0
  1243. package/esm/storage/sqlite/repository/kv.js.map +1 -1
  1244. package/esm/storage/sqlite/repository/peers.js +7 -2
  1245. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  1246. package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
  1247. package/esm/storage/sqlite/repository/ref-messages.js +6 -0
  1248. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
  1249. package/esm/storage/storage.d.ts +22 -3
  1250. package/esm/storage/storage.js +21 -13
  1251. package/esm/storage/storage.js.map +1 -1
  1252. package/esm/types/errors.js +13 -0
  1253. package/esm/types/errors.js.map +1 -1
  1254. package/esm/types/utils.d.ts +1 -0
  1255. package/esm/types/utils.js.map +1 -1
  1256. package/esm/utils/async-lock.js +1 -3
  1257. package/esm/utils/async-lock.js.map +1 -1
  1258. package/esm/utils/bigint-utils.js.map +1 -1
  1259. package/esm/utils/binary/asn1-parser.js.map +1 -1
  1260. package/esm/utils/buffer-utils.js.map +1 -1
  1261. package/esm/utils/condition-variable.js +2 -0
  1262. package/esm/utils/condition-variable.js.map +1 -1
  1263. package/esm/utils/crypto/factorization.js.map +1 -1
  1264. package/esm/utils/crypto/keys.js.map +1 -1
  1265. package/esm/utils/crypto/miller-rabin.js.map +1 -1
  1266. package/esm/utils/crypto/password.js.map +1 -1
  1267. package/esm/utils/crypto/utils.js.map +1 -1
  1268. package/esm/utils/dcs.js +1 -1
  1269. package/esm/utils/dcs.js.map +1 -1
  1270. package/esm/utils/deque.js +8 -2
  1271. package/esm/utils/deque.js.map +1 -1
  1272. package/esm/utils/early-timer.js +4 -1
  1273. package/esm/utils/early-timer.js.map +1 -1
  1274. package/esm/utils/error-reporting.js.map +1 -1
  1275. package/esm/utils/function-utils.js.map +1 -1
  1276. package/esm/utils/linked-list.js +4 -1
  1277. package/esm/utils/linked-list.js.map +1 -1
  1278. package/esm/utils/links/bots.js.map +1 -1
  1279. package/esm/utils/links/chat.js.map +1 -1
  1280. package/esm/utils/links/common.js.map +1 -1
  1281. package/esm/utils/links/misc.js.map +1 -1
  1282. package/esm/utils/logger.d.ts +2 -2
  1283. package/esm/utils/logger.js +21 -14
  1284. package/esm/utils/logger.js.map +1 -1
  1285. package/esm/utils/long-utils.js +2 -6
  1286. package/esm/utils/long-utils.js.map +1 -1
  1287. package/esm/utils/lru-map.js +5 -1
  1288. package/esm/utils/lru-map.js.map +1 -1
  1289. package/esm/utils/lru-set.js +4 -0
  1290. package/esm/utils/lru-set.js.map +1 -1
  1291. package/esm/utils/peer-utils.js.map +1 -1
  1292. package/esm/utils/reloadable.d.ts +0 -1
  1293. package/esm/utils/reloadable.js +10 -7
  1294. package/esm/utils/reloadable.js.map +1 -1
  1295. package/esm/utils/sorted-array.js +2 -0
  1296. package/esm/utils/sorted-array.js.map +1 -1
  1297. package/esm/utils/tl-json.js.map +1 -1
  1298. package/esm/utils/type-assertions.js.map +1 -1
  1299. package/index.d.ts +1 -0
  1300. package/index.js +1 -0
  1301. package/methods.d.ts +1 -0
  1302. package/methods.js +1 -0
  1303. package/package.json +13 -13
  1304. package/platform.d.ts +1 -0
  1305. package/platform.js +1 -0
  1306. package/utils.d.ts +1 -0
  1307. package/utils.js +1 -0
  1308. package/worker.d.ts +1 -0
  1309. package/worker.js +1 -0
@@ -1 +1 @@
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"]}
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"]}
@@ -3,9 +3,10 @@ import { memoizeGetters } from '../../utils/memoize.js';
3
3
  import { Photo } from './photo.js';
4
4
  import { Video } from './video.js';
5
5
  class Game {
6
+ game;
7
+ type = 'game';
6
8
  constructor(game) {
7
9
  this.game = game;
8
- this.type = 'game';
9
10
  }
10
11
  /**
11
12
  * Unique identifier of the game.
@@ -1 +1 @@
1
- {"version":3,"file":"game.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/game.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,OAAO,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,KAAK,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,KAAK,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;AAED,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;AAC5C,eAAe,CAAC,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,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,OAAO,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,KAAK,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,KAAK,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;AAED,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;AAC5C,eAAe,CAAC,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"]}
@@ -392,7 +392,7 @@ export interface InputMediaPoll extends CaptionMixin {
392
392
  /**
393
393
  * Question of the poll (1-255 chars for users, 1-300 chars for bots)
394
394
  */
395
- question: string;
395
+ question: InputText;
396
396
  /**
397
397
  * Answers of the poll.
398
398
  *
@@ -402,7 +402,7 @@ export interface InputMediaPoll extends CaptionMixin {
402
402
  * objects, with a single=byte incrementing
403
403
  * `option` value.
404
404
  */
405
- answers: (string | tl.TypePollAnswer)[];
405
+ answers: (InputText | tl.TypePollAnswer)[];
406
406
  /**
407
407
  * Whether this is poll is closed
408
408
  * (i.e. nobody can vote anymore)
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/media/input-media/types.ts"],"names":[],"mappings":"","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../../types/utils.js'\nimport { InputText } from '../../../types/misc/entities.js'\nimport { InputFileLike } from '../../files/index.js'\nimport { InputPeerLike } from '../../peers/index.js'\nimport { VenueSource } from '../venue.js'\n\nexport interface CaptionMixin {\n /**\n * Caption of the media\n */\n caption?: InputText\n}\n\nexport interface FileMixin {\n /**\n * File to be sent\n */\n file: InputFileLike\n\n /**\n * Override file name for the file.\n *\n * Only applicable to newly uploaded files.\n */\n fileName?: string\n\n /**\n * Override MIME type for the file\n *\n * Only applicable to newly uploaded files.\n */\n fileMime?: string\n\n /**\n * Override file size for the file\n *\n * Only applicable to newly uploaded files.\n */\n fileSize?: number\n\n /**\n * TTL for the media in seconds.\n *\n * Only applicable to some media types\n */\n ttlSeconds?: number\n}\n\n/**\n * Automatically detect media type based on file contents.\n *\n * Photo type is only inferred for reused files,\n * newly uploaded photos with `auto` will be\n * uploaded as a document\n */\nexport interface InputMediaAuto extends FileMixin, CaptionMixin {\n type: 'auto'\n}\n\n/**\n * An audio file or voice message to be sent\n */\nexport interface InputMediaAudio extends FileMixin, CaptionMixin {\n type: 'audio'\n\n /**\n * Thumbnail of the audio file album cover.\n *\n * The thumbnail should be in JPEG format and less than 200 KB in size.\n * A thumbnail's width and height should not exceed 320 pixels.\n * Thumbnails can't be reused and can be only uploaded as a new file.\n *\n * Only applicable to newly uploaded files.\n */\n thumb?: InputFileLike\n\n /**\n * Duration of the audio in seconds\n *\n * Only applicable to newly uploaded files.\n */\n duration?: number\n\n /**\n * Performer of the audio\n *\n * Only applicable to newly uploaded files.\n */\n performer?: string\n\n /**\n * Title of the audio\n *\n * Only applicable to newly uploaded files.\n */\n title?: string\n}\n\n/**\n * Voice message to be sent\n */\nexport interface InputMediaVoice extends FileMixin, CaptionMixin {\n type: 'voice'\n\n /**\n * Duration of the voice message in seconds\n *\n * Only applicable to newly uploaded files.\n */\n duration?: number\n\n /**\n * Waveform of the voice message.\n *\n * Represented with integers in range [0, 31],\n * usually has length of 100.\n * Generated by the server if omitted.\n *\n * Only applicable to newly uploaded files.\n */\n waveform?: number[]\n}\n\n/**\n * A generic file to be sent\n */\nexport interface InputMediaDocument extends FileMixin, CaptionMixin {\n type: 'document'\n\n /**\n * Thumbnail of the document.\n *\n * The thumbnail should be in JPEG format and less than 200 KB in size.\n * A thumbnail's width and height should not exceed 320 pixels.\n * Thumbnails can't be reused and can be only uploaded as a new file.\n *\n * Only applicable to newly uploaded files.\n */\n thumb?: InputFileLike\n}\n\n/**\n * A photo to be sent\n */\nexport interface InputMediaPhoto extends FileMixin, CaptionMixin {\n type: 'photo'\n\n /**\n * Whether this photo should be hidden with a spoiler\n */\n spoiler?: boolean\n}\n\n/**\n * A sticker to be sent\n */\nexport interface InputMediaSticker extends FileMixin, CaptionMixin {\n type: 'sticker'\n\n /**\n * Whether this sticker is animated?\n *\n * Note that animated stickers must be in TGS\n * format, which is Lottie JSON compressed using GZip\n *\n * Only applicable to newly uploaded files.\n *\n * @default false\n */\n isAnimated?: boolean\n\n /**\n * An emoji representing this sticker\n *\n * Only applicable to newly uploaded files,\n * for some reason doesn't work with animated stickers.\n */\n alt?: string\n}\n\n/**\n * A video to be sent\n */\nexport interface InputMediaVideo extends FileMixin, CaptionMixin {\n type: 'video'\n\n /**\n * Thumbnail of the video.\n *\n * The thumbnail should be in JPEG format and less than 200 KB in size.\n * A thumbnail's width and height should not exceed 320 pixels.\n * Thumbnails can't be reused and can be only uploaded as a new file.\n *\n * Only applicable to newly uploaded files.\n */\n thumb?: InputFileLike\n\n /**\n * Width of the video in pixels\n *\n * Only applicable to newly uploaded files.\n */\n width?: number\n\n /**\n * Height of the video in pixels\n *\n * Only applicable to newly uploaded files.\n */\n height?: number\n\n /**\n * Duration of the video in seconds\n *\n * Only applicable to newly uploaded files.\n */\n duration?: number\n\n /**\n * Whether the video is suitable for streaming\n *\n * Only applicable to newly uploaded files.\n */\n supportsStreaming?: boolean\n\n /**\n * Whether this video is an animated GIF\n *\n * Only applicable to newly uploaded files.\n */\n isAnimated?: boolean\n\n /**\n * Whether this video is a round message (aka video note)\n *\n * Only applicable to newly uploaded files.\n */\n isRound?: boolean\n\n /**\n * Whether this video should be hidden with a spoiler\n */\n spoiler?: boolean\n}\n\n/**\n * A geolocation to be sent\n */\nexport interface InputMediaGeo extends CaptionMixin {\n type: 'geo'\n\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n\n /**\n * The estimated horizontal accuracy of the\n * geolocation, in meters (0-1500)\n */\n accuracy?: number\n}\n\n/**\n * A live geolocation to be sent\n */\nexport interface InputMediaGeoLive extends Omit<InputMediaGeo, 'type'> {\n type: 'geo_live'\n\n /**\n * Whether sending of the geolocation has stopped\n */\n stopped?: boolean\n\n /**\n * Direction in which the location moves, in degrees (1-360)\n */\n heading?: number\n\n /**\n * Validity period of the live location\n */\n period?: number\n\n /**\n * Maximum distance to another chat member for proximity\n * alerts, in meters (0-100000)\n */\n proximityNotificationRadius?: number\n}\n\n/**\n * An animated dice with a random value to be sent\n *\n * For convenience, known dice emojis are available\n * as static members of {@link Dice}.\n *\n * Note that dice result value is generated randomly on the server,\n * you can't influence it in any way!\n */\nexport interface InputMediaDice extends CaptionMixin {\n type: 'dice'\n\n /**\n * Emoji representing a dice\n */\n emoji: string\n}\n\n/**\n * A venue to be sent\n */\nexport interface InputMediaVenue extends CaptionMixin {\n type: 'venue'\n\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n\n /**\n * Venue name\n */\n title: string\n\n /**\n * Venue address\n */\n address: string\n\n /**\n * When available, source from where this venue was acquired\n */\n source?: VenueSource\n}\n\n/**\n * A contact to be sent\n */\nexport interface InputMediaContact extends CaptionMixin {\n type: 'contact'\n\n /**\n * Contact's phone number\n */\n phone: string\n\n /**\n * Contact's first name\n */\n firstName: string\n\n /**\n * Contact's last name\n */\n lastName?: string\n\n /**\n * Additional data about the contact\n * as a vCard (0-2048 bytes)\n */\n vcard?: string\n}\n\n/**\n * A game to be sent\n */\nexport interface InputMediaGame extends CaptionMixin {\n type: 'game'\n\n /**\n * Game's short name, or a TL object with an input game\n */\n game: string | tl.TypeInputGame\n}\n\n/**\n * An invoice to be sent (see https://core.telegram.org/bots/payments)\n */\nexport interface InputMediaInvoice extends CaptionMixin {\n type: 'invoice'\n\n /**\n * Product name (1-32 chars)\n */\n title: string\n\n /**\n * Product description (1-255 chars)\n */\n description: string\n\n /**\n * The invoice itself\n */\n invoice: tl.TypeInvoice\n\n /**\n * Bot-defined invoice payload (1-128 bytes).\n *\n * Will not be displayed to the user and can be used\n * for internal processes\n */\n payload: Uint8Array\n\n /**\n * Payments provider token, obtained from\n * [@BotFather](//t.me/botfather)\n */\n token: string\n\n /**\n * Data about the invoice as a plain JS object, which\n * will be shared with the payment provider. A detailed\n * description of required fields should be provided by\n * the payment provider.\n */\n providerData: unknown\n\n /**\n * Start parameter for the bot\n */\n startParam: string\n\n /**\n * Product photo. Can be a photo of the goods or a marketing image for a service.\n *\n * Can be a URL, or a TL object with input web document\n */\n photo?: string | tl.TypeInputWebDocument\n\n /**\n * Extended media (i.e. media that will be available once the invoice is paid)\n */\n extendedMedia?: InputMediaLike\n}\n\n/**\n * A simple poll to be sent\n *\n * > **Note**: when using user account,\n * > the poll can't be sent to PMs, only to channels/groups,\n * > otherwise there will be `MEDIA_INVALID` error.\n */\nexport interface InputMediaPoll extends CaptionMixin {\n type: 'poll'\n\n /**\n * Question of the poll (1-255 chars for users, 1-300 chars for bots)\n */\n question: string\n\n /**\n * Answers of the poll.\n *\n * You can either provide a string, or a\n * TL object representing an answer.\n * Strings will be transformed to TL\n * objects, with a single=byte incrementing\n * `option` value.\n */\n answers: (string | tl.TypePollAnswer)[]\n\n /**\n * Whether this is poll is closed\n * (i.e. nobody can vote anymore)\n */\n closed?: boolean\n\n /**\n * Whether this is a public poll\n * (i.e. users who have voted are visible to everyone)\n */\n public?: boolean\n\n /**\n * Whether users can select multiple answers\n * as an answer\n */\n multiple?: boolean\n\n /**\n * Amount of time in seconds the poll will be active after creation (5-600).\n *\n * Can't be used together with `closeDate`.\n */\n closePeriod?: number\n\n /**\n * Point in time when the poll will be automatically closed.\n *\n * Must be at least 5 and no more than 600 seconds in the future,\n * can't be used together with `closePeriod`.\n *\n * When `number` is used, UNIX time in ms is expected\n */\n closeDate?: number | Date\n}\n\n/**\n * A quiz to be sent.\n *\n * Quiz is an extended version of a poll, but quizzes have\n * correct answers, and votes can't be retracted from them\n */\nexport interface InputMediaQuiz extends Omit<InputMediaPoll, 'type'> {\n type: 'quiz'\n\n /**\n * Correct answer ID(s) or index(es).\n *\n * > **Note**: even though quizzes can actually\n * > only have exactly one correct answer,\n * > the API itself has the possibility to pass\n * > multiple or zero correct answers,\n * > but that would result in `QUIZ_CORRECT_ANSWERS_TOO_MUCH`\n * > and `QUIZ_CORRECT_ANSWERS_EMPTY` errors respectively.\n * >\n * > But since the API has that option, we also provide it,\n * > maybe to future-proof this :shrug:\n */\n correct: MaybeArray<number | Uint8Array>\n\n /**\n * Explanation of the quiz solution\n */\n solution?: InputText\n}\n\n/**\n * A story to be sent\n */\nexport interface InputMediaStory extends CaptionMixin {\n type: 'story'\n\n /**\n * Owner of the story\n */\n peer: InputPeerLike\n\n /**\n * ID of the story\n */\n id: number\n}\n\n/** A webpage to be sent */\nexport interface InputMediaWebpage extends CaptionMixin {\n type: 'webpage'\n\n /**\n * Whether the link must be present in the message\n * for the preview to appear\n */\n required?: boolean\n\n /**\n * By default, size of the media in the preview\n * is determined based on content type.\n *\n * You can override this behaviour by passing the wanted size here\n */\n size?: 'large' | 'small'\n\n /** Webpage URL */\n url: string\n}\n\n/**\n * Input media that can be sent somewhere.\n *\n * Note that meta-fields (like `duration`) are only\n * applicable if `file` is {@link UploadFileLike},\n * otherwise they are ignored.\n *\n * @link InputMedia\n */\nexport type InputMediaLike =\n | InputMediaAudio\n | InputMediaVoice\n | InputMediaDocument\n | InputMediaPhoto\n | InputMediaVideo\n | InputMediaAuto\n | InputMediaSticker\n | InputMediaVenue\n | InputMediaGeo\n | InputMediaGeoLive\n | InputMediaDice\n | InputMediaContact\n | InputMediaGame\n | InputMediaInvoice\n | InputMediaPoll\n | InputMediaQuiz\n | InputMediaStory\n | InputMediaWebpage\n | tl.TypeInputMedia\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/media/input-media/types.ts"],"names":[],"mappings":"","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../../types/utils.js'\nimport { InputText } from '../../../types/misc/entities.js'\nimport { InputFileLike } from '../../files/index.js'\nimport { InputPeerLike } from '../../peers/index.js'\nimport { VenueSource } from '../venue.js'\n\nexport interface CaptionMixin {\n /**\n * Caption of the media\n */\n caption?: InputText\n}\n\nexport interface FileMixin {\n /**\n * File to be sent\n */\n file: InputFileLike\n\n /**\n * Override file name for the file.\n *\n * Only applicable to newly uploaded files.\n */\n fileName?: string\n\n /**\n * Override MIME type for the file\n *\n * Only applicable to newly uploaded files.\n */\n fileMime?: string\n\n /**\n * Override file size for the file\n *\n * Only applicable to newly uploaded files.\n */\n fileSize?: number\n\n /**\n * TTL for the media in seconds.\n *\n * Only applicable to some media types\n */\n ttlSeconds?: number\n}\n\n/**\n * Automatically detect media type based on file contents.\n *\n * Photo type is only inferred for reused files,\n * newly uploaded photos with `auto` will be\n * uploaded as a document\n */\nexport interface InputMediaAuto extends FileMixin, CaptionMixin {\n type: 'auto'\n}\n\n/**\n * An audio file or voice message to be sent\n */\nexport interface InputMediaAudio extends FileMixin, CaptionMixin {\n type: 'audio'\n\n /**\n * Thumbnail of the audio file album cover.\n *\n * The thumbnail should be in JPEG format and less than 200 KB in size.\n * A thumbnail's width and height should not exceed 320 pixels.\n * Thumbnails can't be reused and can be only uploaded as a new file.\n *\n * Only applicable to newly uploaded files.\n */\n thumb?: InputFileLike\n\n /**\n * Duration of the audio in seconds\n *\n * Only applicable to newly uploaded files.\n */\n duration?: number\n\n /**\n * Performer of the audio\n *\n * Only applicable to newly uploaded files.\n */\n performer?: string\n\n /**\n * Title of the audio\n *\n * Only applicable to newly uploaded files.\n */\n title?: string\n}\n\n/**\n * Voice message to be sent\n */\nexport interface InputMediaVoice extends FileMixin, CaptionMixin {\n type: 'voice'\n\n /**\n * Duration of the voice message in seconds\n *\n * Only applicable to newly uploaded files.\n */\n duration?: number\n\n /**\n * Waveform of the voice message.\n *\n * Represented with integers in range [0, 31],\n * usually has length of 100.\n * Generated by the server if omitted.\n *\n * Only applicable to newly uploaded files.\n */\n waveform?: number[]\n}\n\n/**\n * A generic file to be sent\n */\nexport interface InputMediaDocument extends FileMixin, CaptionMixin {\n type: 'document'\n\n /**\n * Thumbnail of the document.\n *\n * The thumbnail should be in JPEG format and less than 200 KB in size.\n * A thumbnail's width and height should not exceed 320 pixels.\n * Thumbnails can't be reused and can be only uploaded as a new file.\n *\n * Only applicable to newly uploaded files.\n */\n thumb?: InputFileLike\n}\n\n/**\n * A photo to be sent\n */\nexport interface InputMediaPhoto extends FileMixin, CaptionMixin {\n type: 'photo'\n\n /**\n * Whether this photo should be hidden with a spoiler\n */\n spoiler?: boolean\n}\n\n/**\n * A sticker to be sent\n */\nexport interface InputMediaSticker extends FileMixin, CaptionMixin {\n type: 'sticker'\n\n /**\n * Whether this sticker is animated?\n *\n * Note that animated stickers must be in TGS\n * format, which is Lottie JSON compressed using GZip\n *\n * Only applicable to newly uploaded files.\n *\n * @default false\n */\n isAnimated?: boolean\n\n /**\n * An emoji representing this sticker\n *\n * Only applicable to newly uploaded files,\n * for some reason doesn't work with animated stickers.\n */\n alt?: string\n}\n\n/**\n * A video to be sent\n */\nexport interface InputMediaVideo extends FileMixin, CaptionMixin {\n type: 'video'\n\n /**\n * Thumbnail of the video.\n *\n * The thumbnail should be in JPEG format and less than 200 KB in size.\n * A thumbnail's width and height should not exceed 320 pixels.\n * Thumbnails can't be reused and can be only uploaded as a new file.\n *\n * Only applicable to newly uploaded files.\n */\n thumb?: InputFileLike\n\n /**\n * Width of the video in pixels\n *\n * Only applicable to newly uploaded files.\n */\n width?: number\n\n /**\n * Height of the video in pixels\n *\n * Only applicable to newly uploaded files.\n */\n height?: number\n\n /**\n * Duration of the video in seconds\n *\n * Only applicable to newly uploaded files.\n */\n duration?: number\n\n /**\n * Whether the video is suitable for streaming\n *\n * Only applicable to newly uploaded files.\n */\n supportsStreaming?: boolean\n\n /**\n * Whether this video is an animated GIF\n *\n * Only applicable to newly uploaded files.\n */\n isAnimated?: boolean\n\n /**\n * Whether this video is a round message (aka video note)\n *\n * Only applicable to newly uploaded files.\n */\n isRound?: boolean\n\n /**\n * Whether this video should be hidden with a spoiler\n */\n spoiler?: boolean\n}\n\n/**\n * A geolocation to be sent\n */\nexport interface InputMediaGeo extends CaptionMixin {\n type: 'geo'\n\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n\n /**\n * The estimated horizontal accuracy of the\n * geolocation, in meters (0-1500)\n */\n accuracy?: number\n}\n\n/**\n * A live geolocation to be sent\n */\nexport interface InputMediaGeoLive extends Omit<InputMediaGeo, 'type'> {\n type: 'geo_live'\n\n /**\n * Whether sending of the geolocation has stopped\n */\n stopped?: boolean\n\n /**\n * Direction in which the location moves, in degrees (1-360)\n */\n heading?: number\n\n /**\n * Validity period of the live location\n */\n period?: number\n\n /**\n * Maximum distance to another chat member for proximity\n * alerts, in meters (0-100000)\n */\n proximityNotificationRadius?: number\n}\n\n/**\n * An animated dice with a random value to be sent\n *\n * For convenience, known dice emojis are available\n * as static members of {@link Dice}.\n *\n * Note that dice result value is generated randomly on the server,\n * you can't influence it in any way!\n */\nexport interface InputMediaDice extends CaptionMixin {\n type: 'dice'\n\n /**\n * Emoji representing a dice\n */\n emoji: string\n}\n\n/**\n * A venue to be sent\n */\nexport interface InputMediaVenue extends CaptionMixin {\n type: 'venue'\n\n /**\n * Latitude of the geolocation\n */\n latitude: number\n\n /**\n * Longitude of the geolocation\n */\n longitude: number\n\n /**\n * Venue name\n */\n title: string\n\n /**\n * Venue address\n */\n address: string\n\n /**\n * When available, source from where this venue was acquired\n */\n source?: VenueSource\n}\n\n/**\n * A contact to be sent\n */\nexport interface InputMediaContact extends CaptionMixin {\n type: 'contact'\n\n /**\n * Contact's phone number\n */\n phone: string\n\n /**\n * Contact's first name\n */\n firstName: string\n\n /**\n * Contact's last name\n */\n lastName?: string\n\n /**\n * Additional data about the contact\n * as a vCard (0-2048 bytes)\n */\n vcard?: string\n}\n\n/**\n * A game to be sent\n */\nexport interface InputMediaGame extends CaptionMixin {\n type: 'game'\n\n /**\n * Game's short name, or a TL object with an input game\n */\n game: string | tl.TypeInputGame\n}\n\n/**\n * An invoice to be sent (see https://core.telegram.org/bots/payments)\n */\nexport interface InputMediaInvoice extends CaptionMixin {\n type: 'invoice'\n\n /**\n * Product name (1-32 chars)\n */\n title: string\n\n /**\n * Product description (1-255 chars)\n */\n description: string\n\n /**\n * The invoice itself\n */\n invoice: tl.TypeInvoice\n\n /**\n * Bot-defined invoice payload (1-128 bytes).\n *\n * Will not be displayed to the user and can be used\n * for internal processes\n */\n payload: Uint8Array\n\n /**\n * Payments provider token, obtained from\n * [@BotFather](//t.me/botfather)\n */\n token: string\n\n /**\n * Data about the invoice as a plain JS object, which\n * will be shared with the payment provider. A detailed\n * description of required fields should be provided by\n * the payment provider.\n */\n providerData: unknown\n\n /**\n * Start parameter for the bot\n */\n startParam: string\n\n /**\n * Product photo. Can be a photo of the goods or a marketing image for a service.\n *\n * Can be a URL, or a TL object with input web document\n */\n photo?: string | tl.TypeInputWebDocument\n\n /**\n * Extended media (i.e. media that will be available once the invoice is paid)\n */\n extendedMedia?: InputMediaLike\n}\n\n/**\n * A simple poll to be sent\n *\n * > **Note**: when using user account,\n * > the poll can't be sent to PMs, only to channels/groups,\n * > otherwise there will be `MEDIA_INVALID` error.\n */\nexport interface InputMediaPoll extends CaptionMixin {\n type: 'poll'\n\n /**\n * Question of the poll (1-255 chars for users, 1-300 chars for bots)\n */\n question: InputText\n\n /**\n * Answers of the poll.\n *\n * You can either provide a string, or a\n * TL object representing an answer.\n * Strings will be transformed to TL\n * objects, with a single=byte incrementing\n * `option` value.\n */\n answers: (InputText | tl.TypePollAnswer)[]\n\n /**\n * Whether this is poll is closed\n * (i.e. nobody can vote anymore)\n */\n closed?: boolean\n\n /**\n * Whether this is a public poll\n * (i.e. users who have voted are visible to everyone)\n */\n public?: boolean\n\n /**\n * Whether users can select multiple answers\n * as an answer\n */\n multiple?: boolean\n\n /**\n * Amount of time in seconds the poll will be active after creation (5-600).\n *\n * Can't be used together with `closeDate`.\n */\n closePeriod?: number\n\n /**\n * Point in time when the poll will be automatically closed.\n *\n * Must be at least 5 and no more than 600 seconds in the future,\n * can't be used together with `closePeriod`.\n *\n * When `number` is used, UNIX time in ms is expected\n */\n closeDate?: number | Date\n}\n\n/**\n * A quiz to be sent.\n *\n * Quiz is an extended version of a poll, but quizzes have\n * correct answers, and votes can't be retracted from them\n */\nexport interface InputMediaQuiz extends Omit<InputMediaPoll, 'type'> {\n type: 'quiz'\n\n /**\n * Correct answer ID(s) or index(es).\n *\n * > **Note**: even though quizzes can actually\n * > only have exactly one correct answer,\n * > the API itself has the possibility to pass\n * > multiple or zero correct answers,\n * > but that would result in `QUIZ_CORRECT_ANSWERS_TOO_MUCH`\n * > and `QUIZ_CORRECT_ANSWERS_EMPTY` errors respectively.\n * >\n * > But since the API has that option, we also provide it,\n * > maybe to future-proof this :shrug:\n */\n correct: MaybeArray<number | Uint8Array>\n\n /**\n * Explanation of the quiz solution\n */\n solution?: InputText\n}\n\n/**\n * A story to be sent\n */\nexport interface InputMediaStory extends CaptionMixin {\n type: 'story'\n\n /**\n * Owner of the story\n */\n peer: InputPeerLike\n\n /**\n * ID of the story\n */\n id: number\n}\n\n/** A webpage to be sent */\nexport interface InputMediaWebpage extends CaptionMixin {\n type: 'webpage'\n\n /**\n * Whether the link must be present in the message\n * for the preview to appear\n */\n required?: boolean\n\n /**\n * By default, size of the media in the preview\n * is determined based on content type.\n *\n * You can override this behaviour by passing the wanted size here\n */\n size?: 'large' | 'small'\n\n /** Webpage URL */\n url: string\n}\n\n/**\n * Input media that can be sent somewhere.\n *\n * Note that meta-fields (like `duration`) are only\n * applicable if `file` is {@link UploadFileLike},\n * otherwise they are ignored.\n *\n * @link InputMedia\n */\nexport type InputMediaLike =\n | InputMediaAudio\n | InputMediaVoice\n | InputMediaDocument\n | InputMediaPhoto\n | InputMediaVideo\n | InputMediaAuto\n | InputMediaSticker\n | InputMediaVenue\n | InputMediaGeo\n | InputMediaGeoLive\n | InputMediaDice\n | InputMediaContact\n | InputMediaGame\n | InputMediaInvoice\n | InputMediaPoll\n | InputMediaQuiz\n | InputMediaStory\n | InputMediaWebpage\n | tl.TypeInputMedia\n"]}
@@ -4,6 +4,7 @@ import { memoizeGetters } from '../../utils/memoize.js';
4
4
  import { WebDocument } from '../files/web-document.js';
5
5
  import { Thumbnail } from './thumbnail.js';
6
6
  class InvoiceExtendedMediaPreview {
7
+ raw;
7
8
  constructor(raw) {
8
9
  this.raw = raw;
9
10
  }
@@ -39,10 +40,12 @@ const InvoiceExtendedMediaPreview$2 = /*#__PURE__*/makeInspectable(InvoiceExtend
39
40
  * An invoice
40
41
  */
41
42
  class Invoice {
43
+ raw;
44
+ _extendedMedia;
45
+ type = 'invoice';
42
46
  constructor(raw, _extendedMedia) {
43
47
  this.raw = raw;
44
48
  this._extendedMedia = _extendedMedia;
45
- this.type = 'invoice';
46
49
  }
47
50
  /**
48
51
  * 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"]}
@@ -4,6 +4,7 @@ import { FileLocation } from '../files/index.js';
4
4
  * A point on the map
5
5
  */
6
6
  export class RawLocation {
7
+ geo;
7
8
  constructor(geo) {
8
9
  this.geo = geo;
9
10
  }
@@ -63,16 +64,14 @@ export class RawLocation {
63
64
  }
64
65
  }
65
66
  class Location extends RawLocation {
66
- constructor() {
67
- super(...arguments);
68
- this.type = 'location';
69
- }
67
+ type = 'location';
70
68
  }
71
69
  class LiveLocation extends RawLocation {
70
+ live;
71
+ type = 'live_location';
72
72
  constructor(live) {
73
73
  super(live.geo);
74
74
  this.live = live;
75
- this.type = 'live_location';
76
75
  }
77
76
  /**
78
77
  * 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":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,YAAqB,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;IAAG,CAAC;IAE5C;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,OAAO,CACH,SA4BI,EAAE;QAEN,OAAO,IAAI,YAAY,CAAC;YACpB,CAAC,EAAE,8BAA8B;YACjC,QAAQ,EAAE;gBACN,CAAC,EAAE,eAAe;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;gBACjB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;gBACnB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc;aAC1C;YACD,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;YAC/B,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;YACtB,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;SAC3B,CAAC,CAAA;IACN,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,oBAAoB;YACvB,QAAQ,EAAE;gBACN,CAAC,EAAE,eAAe;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;gBACjB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;gBACnB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc;aAC1C;SACJ,CAAA;IACL,CAAC;CACJ;AAED,MAAM,OAAO,QAAS,SAAQ,WAAW;IAAzC;;QACa,SAAI,GAAG,UAAmB,CAAA;IACvC,CAAC;CAAA;AAED,MAAM,OAAO,YAAa,SAAQ,WAAW;IAGzC,YAAqB,IAA+B;QAChD,KAAK,CAAC,IAAI,CAAC,GAAqB,CAAC,CAAA;QADhB,SAAI,GAAJ,IAAI,CAA2B;QAF3C,SAAI,GAAG,eAAwB,CAAA;IAIxC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,mBAAmB;YACtB,QAAQ,EAAE;gBACN,CAAC,EAAE,eAAe;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;gBACjB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;gBACnB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc;aAC1C;YACD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B;SACrE,CAAA;IACL,CAAC;CAGJ;AAED,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;AACpD,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","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"]}
@@ -7,6 +7,14 @@ import { Thumbnail } from './thumbnail.js';
7
7
  * A photo
8
8
  */
9
9
  class Photo extends FileLocation {
10
+ raw;
11
+ media;
12
+ type = 'photo';
13
+ /** Biggest available photo width */
14
+ width;
15
+ /** Biggest available photo height */
16
+ height;
17
+ _bestSize;
10
18
  constructor(raw, media) {
11
19
  const location = {
12
20
  _: 'inputPhotoFileLocation',
@@ -49,7 +57,6 @@ class Photo extends FileLocation {
49
57
  super(location, size, raw.dcId);
50
58
  this.raw = raw;
51
59
  this.media = media;
52
- this.type = 'photo';
53
60
  this._bestSize = bestSize;
54
61
  this.width = width;
55
62
  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"]}
@@ -1,34 +1,41 @@
1
1
  import { tl } from '@mtcute/tl';
2
2
  import { MessageEntity } from '../messages/message-entity.js';
3
3
  import { PeersIndex } from '../peers/peers-index.js';
4
- export interface PollAnswer {
4
+ export declare class PollAnswer {
5
+ readonly raw: tl.TypePollAnswer;
6
+ readonly result?: tl.RawPollAnswerVoters | undefined;
7
+ constructor(raw: tl.TypePollAnswer, result?: tl.RawPollAnswerVoters | undefined);
5
8
  /**
6
9
  * Answer text
7
10
  */
8
- text: string;
11
+ get text(): string;
12
+ /**
13
+ * Format entities for {@link text}, currently may only contain custom emojis
14
+ */
15
+ get textEntities(): ReadonlyArray<MessageEntity>;
9
16
  /**
10
17
  * Answer data, to be passed to
11
18
  * {@link TelegramClient.sendVote}
12
19
  */
13
- data: Uint8Array;
20
+ get data(): Uint8Array;
14
21
  /**
15
22
  * Number of people who has chosen this result.
16
23
  * If not available (i.e. not voted yet)
17
24
  *
18
25
  * @default `0`
19
26
  */
20
- voters: number;
27
+ get voters(): number;
21
28
  /**
22
29
  * Whether this answer was chosen by the current user
23
30
  */
24
- chosen: boolean;
31
+ get chosen(): boolean;
25
32
  /**
26
33
  * Whether this answer is correct (for quizzes).
27
34
  * Not available before choosing an answer
28
35
  *
29
36
  * @default `false`
30
37
  */
31
- correct: boolean;
38
+ get correct(): boolean;
32
39
  }
33
40
  export declare class Poll {
34
41
  readonly raw: tl.TypePoll;
@@ -44,6 +51,10 @@ export declare class Poll {
44
51
  * Poll question
45
52
  */
46
53
  get question(): string;
54
+ /**
55
+ * Format entities for {@link question} (currently may only contain custom emojis)
56
+ */
57
+ get questionEntities(): ReadonlyArray<MessageEntity>;
47
58
  /**
48
59
  * List of answers in this poll
49
60
  */
@@ -2,12 +2,68 @@ import Long from 'long';
2
2
  import { makeInspectable } from '../../utils/index.js';
3
3
  import { memoizeGetters } from '../../utils/memoize.js';
4
4
  import { MessageEntity } from '../messages/message-entity.js';
5
+ class PollAnswer {
6
+ raw;
7
+ result;
8
+ constructor(raw, result) {
9
+ this.raw = raw;
10
+ this.result = result;
11
+ }
12
+ /**
13
+ * Answer text
14
+ */
15
+ get text() {
16
+ return this.raw.text.text;
17
+ }
18
+ /**
19
+ * Format entities for {@link text}, currently may only contain custom emojis
20
+ */
21
+ get textEntities() {
22
+ return this.raw.text.entities.map((ent) => new MessageEntity(ent, this.raw.text.text));
23
+ }
24
+ /**
25
+ * Answer data, to be passed to
26
+ * {@link TelegramClient.sendVote}
27
+ */
28
+ get data() {
29
+ return this.raw.option;
30
+ }
31
+ /**
32
+ * Number of people who has chosen this result.
33
+ * If not available (i.e. not voted yet)
34
+ *
35
+ * @default `0`
36
+ */
37
+ get voters() {
38
+ return this.result?.voters ?? 0;
39
+ }
40
+ /**
41
+ * Whether this answer was chosen by the current user
42
+ */
43
+ get chosen() {
44
+ return Boolean(this.result?.chosen);
45
+ }
46
+ /**
47
+ * Whether this answer is correct (for quizzes).
48
+ * Not available before choosing an answer
49
+ *
50
+ * @default `false`
51
+ */
52
+ get correct() {
53
+ return Boolean(this.result?.correct);
54
+ }
55
+ }
56
+ const PollAnswer$1 = /*#__PURE__*/memoizeGetters(PollAnswer, ['textEntities']);
57
+ const PollAnswer$2 = /*#__PURE__*/makeInspectable(PollAnswer$1, );
5
58
  class Poll {
59
+ raw;
60
+ _peers;
61
+ results;
62
+ type = 'poll';
6
63
  constructor(raw, _peers, results) {
7
64
  this.raw = raw;
8
65
  this._peers = _peers;
9
66
  this.results = results;
10
- this.type = 'poll';
11
67
  }
12
68
  /**
13
69
  * Unique identifier of the poll
@@ -19,7 +75,13 @@ class Poll {
19
75
  * Poll question
20
76
  */
21
77
  get question() {
22
- return this.raw.question;
78
+ return this.raw.question.text;
79
+ }
80
+ /**
81
+ * Format entities for {@link question} (currently may only contain custom emojis)
82
+ */
83
+ get questionEntities() {
84
+ return this.raw.question.entities.map((ent) => new MessageEntity(ent, this.raw.question.text));
23
85
  }
24
86
  /**
25
87
  * List of answers in this poll
@@ -28,22 +90,9 @@ class Poll {
28
90
  const results = this.results?.results;
29
91
  return this.raw.answers.map((ans, idx) => {
30
92
  if (results) {
31
- const res = results[idx];
32
- return {
33
- text: ans.text,
34
- data: ans.option,
35
- voters: res.voters,
36
- chosen: Boolean(res.chosen),
37
- correct: Boolean(res.correct),
38
- };
93
+ return new PollAnswer(ans, results[idx]);
39
94
  }
40
- return {
41
- text: ans.text,
42
- data: ans.option,
43
- voters: 0,
44
- chosen: false,
45
- correct: false,
46
- };
95
+ return new PollAnswer(ans);
47
96
  });
48
97
  }
49
98
  /**
@@ -132,7 +181,8 @@ class Poll {
132
181
  };
133
182
  }
134
183
  }
135
- const Poll$1 = /*#__PURE__*/memoizeGetters(Poll, ['answers', 'solutionEntities']);
184
+ const Poll$1 = /*#__PURE__*/memoizeGetters(Poll, ['answers', 'solutionEntities', 'questionEntities']);
136
185
  const Poll$2 = /*#__PURE__*/makeInspectable(Poll$1, undefined, ['inputMedia']);
137
186
  //# sourceMappingURL=poll.js.map
187
+ export { PollAnswer$2 as PollAnswer }
138
188
  export { Poll$2 as Poll }
@@ -1 +1 @@
1
- {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/poll.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\nexport interface PollAnswer {\n /**\n * Answer text\n */\n text: string\n\n /**\n * Answer data, to be passed to\n * {@link TelegramClient.sendVote}\n */\n data: Uint8Array\n\n /**\n * Number of people who has chosen this result.\n * If not available (i.e. not voted yet)\n *\n * @default `0`\n */\n voters: number\n\n /**\n * Whether this answer was chosen by the current user\n */\n chosen: boolean\n\n /**\n * Whether this answer is correct (for quizzes).\n * Not available before choosing an answer\n *\n * @default `false`\n */\n correct: boolean\n}\n\nexport class Poll {\n readonly type = 'poll' as const\n\n constructor(\n readonly raw: tl.TypePoll,\n readonly _peers: PeersIndex,\n readonly results?: tl.TypePollResults,\n ) {}\n\n /**\n * Unique identifier of the poll\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /**\n * Poll question\n */\n get question(): string {\n return this.raw.question\n }\n\n /**\n * List of answers in this poll\n */\n get answers(): ReadonlyArray<PollAnswer> {\n const results = this.results?.results\n\n return this.raw.answers.map((ans, idx) => {\n if (results) {\n const res = results[idx]\n\n return {\n text: ans.text,\n data: ans.option,\n voters: res.voters,\n chosen: Boolean(res.chosen),\n correct: Boolean(res.correct),\n }\n }\n\n return {\n text: ans.text,\n data: ans.option,\n voters: 0,\n chosen: false,\n correct: false,\n }\n })\n }\n\n /**\n * Total number of voters in this poll, if available\n */\n get voters(): number {\n return this.results?.totalVoters ?? 0\n }\n\n /**\n * Whether this poll is closed, i.e. does not\n * accept votes anymore\n */\n get isClosed(): boolean {\n return this.raw.closed!\n }\n\n /**\n * Whether this poll is public, i.e. you\n * list of voters is publicly available\n */\n get isPublic(): boolean {\n return this.raw.publicVoters!\n }\n\n /**\n * Whether this is a quiz\n */\n get isQuiz(): boolean {\n return this.raw.quiz!\n }\n\n /**\n * Whether this poll accepts multiple answers\n */\n get isMultiple(): boolean {\n return this.raw.multipleChoice!\n }\n\n /**\n * Solution for the quiz, only available\n * in case you have already answered\n */\n get solution(): string | null {\n return this.results?.solution ?? null\n }\n\n /**\n * Format entities for {@link solution}, only available\n * in case you have already answered\n */\n get solutionEntities(): ReadonlyArray<MessageEntity> | null {\n if (!this.results) return null\n\n const res: MessageEntity[] = []\n\n if (this.results.solutionEntities?.length) {\n for (const ent of this.results.solutionEntities) {\n res.push(new MessageEntity(ent, this.results.solution))\n }\n }\n\n return res\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 * A few notes:\n * - Using this will result in an\n * independent poll, which will not\n * be auto-updated with the current.\n * - If this is a quiz, a normal poll\n * will be returned since the client does not\n * know the correct answer.\n * - This always returns a non-closed poll,\n * even if the current poll was closed\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n closed: false,\n id: Long.ZERO,\n publicVoters: this.raw.publicVoters,\n multipleChoice: this.raw.multipleChoice,\n question: this.raw.question,\n answers: this.raw.answers,\n closePeriod: this.raw.closePeriod,\n closeDate: this.raw.closeDate,\n },\n }\n }\n}\n\nmemoizeGetters(Poll, ['answers', 'solutionEntities'])\nmakeInspectable(Poll, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/poll.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\nexport class PollAnswer {\n constructor(\n readonly raw: tl.TypePollAnswer,\n readonly result?: tl.TypePollAnswerVoters,\n ) {}\n /**\n * Answer text\n */\n get text(): string {\n return this.raw.text.text\n }\n\n /**\n * Format entities for {@link text}, currently may only contain custom emojis\n */\n get textEntities(): ReadonlyArray<MessageEntity> {\n return this.raw.text.entities.map((ent) => new MessageEntity(ent, this.raw.text.text))\n }\n\n /**\n * Answer data, to be passed to\n * {@link TelegramClient.sendVote}\n */\n get data(): Uint8Array {\n return this.raw.option\n }\n\n /**\n * Number of people who has chosen this result.\n * If not available (i.e. not voted yet)\n *\n * @default `0`\n */\n get voters(): number {\n return this.result?.voters ?? 0\n }\n\n /**\n * Whether this answer was chosen by the current user\n */\n get chosen(): boolean {\n return Boolean(this.result?.chosen)\n }\n\n /**\n * Whether this answer is correct (for quizzes).\n * Not available before choosing an answer\n *\n * @default `false`\n */\n get correct(): boolean {\n return Boolean(this.result?.correct)\n }\n}\n\nmemoizeGetters(PollAnswer, ['textEntities'])\nmakeInspectable(PollAnswer)\n\nexport class Poll {\n readonly type = 'poll' as const\n\n constructor(\n readonly raw: tl.TypePoll,\n readonly _peers: PeersIndex,\n readonly results?: tl.TypePollResults,\n ) {}\n\n /**\n * Unique identifier of the poll\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /**\n * Poll question\n */\n get question(): string {\n return this.raw.question.text\n }\n\n /**\n * Format entities for {@link question} (currently may only contain custom emojis)\n */\n get questionEntities(): ReadonlyArray<MessageEntity> {\n return this.raw.question.entities.map((ent) => new MessageEntity(ent, this.raw.question.text))\n }\n\n /**\n * List of answers in this poll\n */\n get answers(): ReadonlyArray<PollAnswer> {\n const results = this.results?.results\n\n return this.raw.answers.map((ans, idx) => {\n if (results) {\n return new PollAnswer(ans, results[idx])\n }\n\n return new PollAnswer(ans)\n })\n }\n\n /**\n * Total number of voters in this poll, if available\n */\n get voters(): number {\n return this.results?.totalVoters ?? 0\n }\n\n /**\n * Whether this poll is closed, i.e. does not\n * accept votes anymore\n */\n get isClosed(): boolean {\n return this.raw.closed!\n }\n\n /**\n * Whether this poll is public, i.e. you\n * list of voters is publicly available\n */\n get isPublic(): boolean {\n return this.raw.publicVoters!\n }\n\n /**\n * Whether this is a quiz\n */\n get isQuiz(): boolean {\n return this.raw.quiz!\n }\n\n /**\n * Whether this poll accepts multiple answers\n */\n get isMultiple(): boolean {\n return this.raw.multipleChoice!\n }\n\n /**\n * Solution for the quiz, only available\n * in case you have already answered\n */\n get solution(): string | null {\n return this.results?.solution ?? null\n }\n\n /**\n * Format entities for {@link solution}, only available\n * in case you have already answered\n */\n get solutionEntities(): ReadonlyArray<MessageEntity> | null {\n if (!this.results) return null\n\n const res: MessageEntity[] = []\n\n if (this.results.solutionEntities?.length) {\n for (const ent of this.results.solutionEntities) {\n res.push(new MessageEntity(ent, this.results.solution))\n }\n }\n\n return res\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 * A few notes:\n * - Using this will result in an\n * independent poll, which will not\n * be auto-updated with the current.\n * - If this is a quiz, a normal poll\n * will be returned since the client does not\n * know the correct answer.\n * - This always returns a non-closed poll,\n * even if the current poll was closed\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n closed: false,\n id: Long.ZERO,\n publicVoters: this.raw.publicVoters,\n multipleChoice: this.raw.multipleChoice,\n question: this.raw.question,\n answers: this.raw.answers,\n closePeriod: this.raw.closePeriod,\n closeDate: this.raw.closeDate,\n },\n }\n }\n}\n\nmemoizeGetters(Poll, ['answers', 'solutionEntities', 'questionEntities'])\nmakeInspectable(Poll, undefined, ['inputMedia'])\n"]}
@@ -14,6 +14,9 @@ const MASK_POS = ['forehead', 'eyes', 'mouth', 'chin'];
14
14
  * A sticker
15
15
  */
16
16
  class Sticker extends RawDocument {
17
+ attr;
18
+ attr2;
19
+ type = 'sticker';
17
20
  _fileIdType() {
18
21
  return tdFileId.FileType.Sticker;
19
22
  }
@@ -21,7 +24,6 @@ class Sticker extends RawDocument {
21
24
  super(doc);
22
25
  this.attr = attr;
23
26
  this.attr2 = attr2;
24
- this.type = 'sticker';
25
27
  }
26
28
  /**
27
29
  * Sticker width in pixels