@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":"sticker.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/sticker.ts"],"names":[],"mappings":"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","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\n\nexport const MASK_POSITION_POINT_TO_TL = {\n forehead: 0,\n eyes: 1,\n mouth: 2,\n chin: 3,\n} as const\n\nexport interface MaskPosition {\n /**\n * The part of the face relative where the mask should be placed\n */\n point: 'forehead' | 'eyes' | 'mouth' | 'chin'\n\n /**\n * Shift by X-axis measured in widths of the mask scaled to\n * the face size, from left to right. For example, choosing\n * -1.0 will place mask just to the left of the default\n * mask position.\n */\n x: number\n\n /**\n * Shift by Y-axis measured in heights of the mask scaled to\n * the face size, from top to bottom. For example, 1.0\n * will place the mask just below the default mask position.\n */\n y: number\n\n /**\n * Mask scaling coefficient. For example, 2.0 means double size.\n */\n scale: number\n}\n\n/**\n * Type of the sticker\n * - `sticker`: regular sticker\n * - `mask`: mask sticker\n * - `emoji`: custom emoji\n */\nexport type StickerType = 'sticker' | 'mask' | 'emoji'\n\n/**\n * Sticker source file type\n * - `static`: static sticker (webp)\n * - `animated`: animated sticker (gzipped lottie json)\n * - `video`: video sticker (webm)\n */\nexport type StickerSourceType = 'static' | 'animated' | 'video'\n\nconst MASK_POS = ['forehead', 'eyes', 'mouth', 'chin'] as const\n\n/**\n * A sticker\n */\nexport class Sticker extends RawDocument {\n readonly type = 'sticker' as const\n\n protected _fileIdType(): tdFileId.FileType {\n return tdFileId.FileType.Sticker\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeSticker | tl.RawDocumentAttributeCustomEmoji,\n readonly attr2?: tl.RawDocumentAttributeImageSize | tl.RawDocumentAttributeVideo,\n ) {\n super(doc)\n }\n\n /**\n * Sticker width in pixels\n */\n get width(): number {\n return this.attr2?.w ?? 512\n }\n\n /**\n * Sticker height in pixels\n */\n get height(): number {\n return this.attr2?.h ?? 512\n }\n\n /**\n * Whether this sticker is a premium sticker\n * (has premium fullscreen animation)\n */\n get isPremiumSticker(): boolean {\n return Boolean(this.raw.videoThumbs?.some((s) => s._ === 'videoSize' && s.type === 'f'))\n }\n\n /**\n * Whether this sticker is a valid sticker.\n *\n * If it is not, then this is probably a WEBP photo\n * that Telegram treats as a sticker.\n */\n get isValidSticker(): boolean {\n return this.attr2 !== undefined && (this.attr2.w === 512 || this.attr2.h === 512)\n }\n\n /**\n * Primary emoji associated with this sticker,\n * that is displayed in dialogs list.\n *\n * If there is none, empty string is returned.\n *\n * **Note:** This only contains at most one emoji.\n * Some stickers have multiple associated emojis,\n * but only one is returned here. This is Telegram's\n * limitation! Use {@link getAllEmojis} instead.\n *\n * For custom emojis, this alt should be used as a fallback\n * text that will be \"behind\" the custom emoji entity.\n */\n get emoji(): string {\n return this.attr.alt\n }\n\n /**\n * Whether this custom emoji can be used by non-premium users.\n * `false` if this is not a custom emoji.\n *\n * > Not sure if there are any such stickers currently.\n */\n get customEmojiFree(): boolean {\n return this.attr._ === 'documentAttributeCustomEmoji' ? this.attr.free ?? false : false\n }\n\n /**\n * If this is a custom emoji, its unique ID\n * that can be used in {@link TelegramClient#getCustomEmojis}\n */\n get customEmojiId(): tl.Long {\n if (this.attr._ !== 'documentAttributeCustomEmoji') {\n throw new MtArgumentError('This is not a custom emoji')\n }\n\n return this.raw.id\n }\n\n /**\n * Type of the sticker\n */\n get stickerType(): StickerType {\n if (this.attr._ === 'documentAttributeSticker') {\n return this.attr.mask ? 'mask' : 'sticker'\n } else if (this.attr._ === 'documentAttributeCustomEmoji') {\n return 'emoji'\n }\n\n return 'sticker'\n }\n\n /**\n * Type of the file representing the sticker\n */\n get sourceType(): StickerSourceType {\n if (this.attr2?._ === 'documentAttributeVideo') {\n return 'video'\n }\n\n return this.mimeType === 'application/x-tgsticker' ? 'animated' : 'static'\n }\n\n /**\n * Whether this sticker has an associated public sticker set.\n */\n get hasStickerSet(): boolean {\n return this.attr.stickerset._ === 'inputStickerSetID'\n }\n\n /**\n * Input sticker set that it associated with this sticker, if available.\n */\n get inputStickerSet(): tl.TypeInputStickerSet | null {\n return this.attr.stickerset._ === 'inputStickerSetEmpty' ? null : this.attr.stickerset\n }\n\n /**\n * Position where this mask should be placed\n */\n get maskPosition(): MaskPosition | null {\n if (this.attr._ !== 'documentAttributeSticker' || !this.attr.maskCoords) {\n return null\n }\n\n const raw = this.attr.maskCoords\n\n return {\n point: MASK_POS[raw.n],\n x: raw.x,\n y: raw.y,\n scale: raw.zoom,\n }\n }\n}\n\nmemoizeGetters(Sticker, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'maskPosition'])\nmakeInspectable(Sticker, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
1
+ {"version":3,"file":"sticker.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/sticker.ts"],"names":[],"mappings":"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","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\n\nexport const MASK_POSITION_POINT_TO_TL = {\n forehead: 0,\n eyes: 1,\n mouth: 2,\n chin: 3,\n} as const\n\nexport interface MaskPosition {\n /**\n * The part of the face relative where the mask should be placed\n */\n point: 'forehead' | 'eyes' | 'mouth' | 'chin'\n\n /**\n * Shift by X-axis measured in widths of the mask scaled to\n * the face size, from left to right. For example, choosing\n * -1.0 will place mask just to the left of the default\n * mask position.\n */\n x: number\n\n /**\n * Shift by Y-axis measured in heights of the mask scaled to\n * the face size, from top to bottom. For example, 1.0\n * will place the mask just below the default mask position.\n */\n y: number\n\n /**\n * Mask scaling coefficient. For example, 2.0 means double size.\n */\n scale: number\n}\n\n/**\n * Type of the sticker\n * - `sticker`: regular sticker\n * - `mask`: mask sticker\n * - `emoji`: custom emoji\n */\nexport type StickerType = 'sticker' | 'mask' | 'emoji'\n\n/**\n * Sticker source file type\n * - `static`: static sticker (webp)\n * - `animated`: animated sticker (gzipped lottie json)\n * - `video`: video sticker (webm)\n */\nexport type StickerSourceType = 'static' | 'animated' | 'video'\n\nconst MASK_POS = ['forehead', 'eyes', 'mouth', 'chin'] as const\n\n/**\n * A sticker\n */\nexport class Sticker extends RawDocument {\n readonly type = 'sticker' as const\n\n protected _fileIdType(): tdFileId.FileType {\n return tdFileId.FileType.Sticker\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeSticker | tl.RawDocumentAttributeCustomEmoji,\n readonly attr2?: tl.RawDocumentAttributeImageSize | tl.RawDocumentAttributeVideo,\n ) {\n super(doc)\n }\n\n /**\n * Sticker width in pixels\n */\n get width(): number {\n return this.attr2?.w ?? 512\n }\n\n /**\n * Sticker height in pixels\n */\n get height(): number {\n return this.attr2?.h ?? 512\n }\n\n /**\n * Whether this sticker is a premium sticker\n * (has premium fullscreen animation)\n */\n get isPremiumSticker(): boolean {\n return Boolean(this.raw.videoThumbs?.some((s) => s._ === 'videoSize' && s.type === 'f'))\n }\n\n /**\n * Whether this sticker is a valid sticker.\n *\n * If it is not, then this is probably a WEBP photo\n * that Telegram treats as a sticker.\n */\n get isValidSticker(): boolean {\n return this.attr2 !== undefined && (this.attr2.w === 512 || this.attr2.h === 512)\n }\n\n /**\n * Primary emoji associated with this sticker,\n * that is displayed in dialogs list.\n *\n * If there is none, empty string is returned.\n *\n * **Note:** This only contains at most one emoji.\n * Some stickers have multiple associated emojis,\n * but only one is returned here. This is Telegram's\n * limitation! Use {@link getAllEmojis} instead.\n *\n * For custom emojis, this alt should be used as a fallback\n * text that will be \"behind\" the custom emoji entity.\n */\n get emoji(): string {\n return this.attr.alt\n }\n\n /**\n * Whether this custom emoji can be used by non-premium users.\n * `false` if this is not a custom emoji.\n *\n * > Not sure if there are any such stickers currently.\n */\n get customEmojiFree(): boolean {\n return this.attr._ === 'documentAttributeCustomEmoji' ? this.attr.free ?? false : false\n }\n\n /**\n * If this is a custom emoji, its unique ID\n * that can be used in {@link TelegramClient#getCustomEmojis}\n */\n get customEmojiId(): tl.Long {\n if (this.attr._ !== 'documentAttributeCustomEmoji') {\n throw new MtArgumentError('This is not a custom emoji')\n }\n\n return this.raw.id\n }\n\n /**\n * Type of the sticker\n */\n get stickerType(): StickerType {\n if (this.attr._ === 'documentAttributeSticker') {\n return this.attr.mask ? 'mask' : 'sticker'\n } else if (this.attr._ === 'documentAttributeCustomEmoji') {\n return 'emoji'\n }\n\n return 'sticker'\n }\n\n /**\n * Type of the file representing the sticker\n */\n get sourceType(): StickerSourceType {\n if (this.attr2?._ === 'documentAttributeVideo') {\n return 'video'\n }\n\n return this.mimeType === 'application/x-tgsticker' ? 'animated' : 'static'\n }\n\n /**\n * Whether this sticker has an associated public sticker set.\n */\n get hasStickerSet(): boolean {\n return this.attr.stickerset._ === 'inputStickerSetID'\n }\n\n /**\n * Input sticker set that it associated with this sticker, if available.\n */\n get inputStickerSet(): tl.TypeInputStickerSet | null {\n return this.attr.stickerset._ === 'inputStickerSetEmpty' ? null : this.attr.stickerset\n }\n\n /**\n * Position where this mask should be placed\n */\n get maskPosition(): MaskPosition | null {\n if (this.attr._ !== 'documentAttributeSticker' || !this.attr.maskCoords) {\n return null\n }\n\n const raw = this.attr.maskCoords\n\n return {\n point: MASK_POS[raw.n],\n x: raw.x,\n y: raw.y,\n scale: raw.zoom,\n }\n }\n}\n\nmemoizeGetters(Sticker, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'maskPosition'])\nmakeInspectable(Sticker, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
@@ -9,10 +9,12 @@ const story_js_1 = require("../stories/story.js");
9
9
  * internally represented as a message media
10
10
  */
11
11
  class MediaStory {
12
+ raw;
13
+ _peers;
14
+ type = 'story';
12
15
  constructor(raw, _peers) {
13
16
  this.raw = raw;
14
17
  this._peers = _peers;
15
- this.type = 'story';
16
18
  }
17
19
  /**
18
20
  * Whether this story was automatically forwarded to you
@@ -1 +1 @@
1
- {"version":3,"file":"story.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/story.ts"],"names":[],"mappings":";;;AAEA,+DAA4D;AAC5D,8CAAkD;AAElD,kDAA2C;AAE3C;;;GAGG;AACH,MAAa,UAAU;IAGnB,YACa,GAA4B,EAC5B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAyB;QAC5B,WAAM,GAAN,MAAM,CAAY;QAJtB,SAAI,GAAG,OAAgB,CAAA;IAK7B,CAAC;IAEJ;;;OAGG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,UAAW,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAElD,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,iBAAiB;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;SAClB,CAAA;IACL,CAAC;CACJ;AA/CD,gCA+CC;AAED,IAAA,gCAAe,EAAC,UAAU,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { Story } from '../stories/story.js'\n\n/**\n * Information about a \"forwarded\" story in a message,\n * internally represented as a message media\n */\nexport class MediaStory {\n readonly type = 'story' as const\n\n constructor(\n readonly raw: tl.RawMessageMediaStory,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether this story was automatically forwarded to you\n * because you were mentioned in it\n */\n get isMention(): boolean {\n return this.raw.viaMention!\n }\n\n /**\n * Peer who has posted this story\n */\n get peer(): Peer {\n return parsePeer(this.raw.peer, this._peers)\n }\n\n /**\n * ID of the story\n */\n get storyId(): number {\n return this.raw.id\n }\n\n /**\n * Contents of the story. May not be available, in which case the story\n * should be fetched using {@link getStoriesById}\n */\n get story(): Story | null {\n if (this.raw.story?._ !== 'storyItem') return null\n\n return new Story(this.raw.story, this._peers)\n }\n\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaStory',\n peer: this.peer.inputPeer,\n id: this.raw.id,\n }\n }\n}\n\nmakeInspectable(MediaStory, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"story.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/story.ts"],"names":[],"mappings":";;;AAEA,+DAA4D;AAC5D,8CAAkD;AAElD,kDAA2C;AAE3C;;;GAGG;AACH,MAAa,UAAU;IAIN;IACA;IAJJ,IAAI,GAAG,OAAgB,CAAA;IAEhC,YACa,GAA4B,EAC5B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAyB;QAC5B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;;OAGG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,UAAW,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAElD,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,iBAAiB;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;SAClB,CAAA;IACL,CAAC;CACJ;AA/CD,gCA+CC;AAED,IAAA,gCAAe,EAAC,UAAU,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { Story } from '../stories/story.js'\n\n/**\n * Information about a \"forwarded\" story in a message,\n * internally represented as a message media\n */\nexport class MediaStory {\n readonly type = 'story' as const\n\n constructor(\n readonly raw: tl.RawMessageMediaStory,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether this story was automatically forwarded to you\n * because you were mentioned in it\n */\n get isMention(): boolean {\n return this.raw.viaMention!\n }\n\n /**\n * Peer who has posted this story\n */\n get peer(): Peer {\n return parsePeer(this.raw.peer, this._peers)\n }\n\n /**\n * ID of the story\n */\n get storyId(): number {\n return this.raw.id\n }\n\n /**\n * Contents of the story. May not be available, in which case the story\n * should be fetched using {@link getStoriesById}\n */\n get story(): Story | null {\n if (this.raw.story?._ !== 'storyItem') return null\n\n return new Story(this.raw.story, this._peers)\n }\n\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaStory',\n peer: this.peer.inputPeer,\n id: this.raw.id,\n }\n }\n}\n\nmakeInspectable(MediaStory, undefined, ['inputMedia'])\n"]}
@@ -17,6 +17,41 @@ const index_js_2 = require("../files/index.js");
17
17
  * One size of some thumbnail
18
18
  */
19
19
  class Thumbnail extends index_js_2.FileLocation {
20
+ // see: https://core.telegram.org/api/files#image-thumbnail-types
21
+ static THUMB_100x100_BOX = 's';
22
+ static THUMB_320x320_BOX = 'm';
23
+ static THUMB_800x800_BOX = 'x';
24
+ static THUMB_1280x1280_BOX = 'y';
25
+ static THUMB_2560x2560_BOX = 'w';
26
+ static THUMB_160x160_CROP = 'a';
27
+ static THUMB_320x320_CROP = 'b';
28
+ static THUMB_640x640_CROP = 'c';
29
+ static THUMB_1280x1280_CROP = 'd';
30
+ static THUMB_STRIP = 'i';
31
+ static THUMB_OUTLINE = 'j';
32
+ /** Animated profile pictures preview */
33
+ static THUMB_VIDEO_PROFILE = 'u';
34
+ /** Trimmed and downscaled video previews */
35
+ static THUMB_VIDEO_PREVIEW = 'v';
36
+ /** Fullscreen animation for Premium stickers */
37
+ static THUMB_VIDEO_FULLSCREEN = 'f';
38
+ /** (non-standard) Emoji-based markup for profile photo */
39
+ static THUMB_EMOJI_MARKUP = 'pfp_em';
40
+ /** (non-standard) Sticker-based markup for profile photo */
41
+ static THUMB_STICKER_MARKUP = 'pfp_st';
42
+ raw;
43
+ /**
44
+ * Thumbnail width
45
+ * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})
46
+ */
47
+ width;
48
+ /**
49
+ * Thumbnail height
50
+ * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})
51
+ */
52
+ height;
53
+ _path;
54
+ _media;
20
55
  constructor(media, sz) {
21
56
  switch (sz._) {
22
57
  case 'photoSizeEmpty':
@@ -204,28 +239,6 @@ class Thumbnail extends index_js_2.FileLocation {
204
239
  }
205
240
  }
206
241
  exports.Thumbnail = Thumbnail;
207
- // see: https://core.telegram.org/api/files#image-thumbnail-types
208
- Thumbnail.THUMB_100x100_BOX = 's';
209
- Thumbnail.THUMB_320x320_BOX = 'm';
210
- Thumbnail.THUMB_800x800_BOX = 'x';
211
- Thumbnail.THUMB_1280x1280_BOX = 'y';
212
- Thumbnail.THUMB_2560x2560_BOX = 'w';
213
- Thumbnail.THUMB_160x160_CROP = 'a';
214
- Thumbnail.THUMB_320x320_CROP = 'b';
215
- Thumbnail.THUMB_640x640_CROP = 'c';
216
- Thumbnail.THUMB_1280x1280_CROP = 'd';
217
- Thumbnail.THUMB_STRIP = 'i';
218
- Thumbnail.THUMB_OUTLINE = 'j';
219
- /** Animated profile pictures preview */
220
- Thumbnail.THUMB_VIDEO_PROFILE = 'u';
221
- /** Trimmed and downscaled video previews */
222
- Thumbnail.THUMB_VIDEO_PREVIEW = 'v';
223
- /** Fullscreen animation for Premium stickers */
224
- Thumbnail.THUMB_VIDEO_FULLSCREEN = 'f';
225
- /** (non-standard) Emoji-based markup for profile photo */
226
- Thumbnail.THUMB_EMOJI_MARKUP = 'pfp_em';
227
- /** (non-standard) Sticker-based markup for profile photo */
228
- Thumbnail.THUMB_STICKER_MARKUP = 'pfp_st';
229
242
  (0, memoize_js_1.memoizeGetters)(Thumbnail, ['fileId', 'uniqueFileId']);
230
243
  (0, index_js_1.makeInspectable)(Thumbnail, ['fileSize', 'dcId', 'width', 'height'], ['path']);
231
244
  //# sourceMappingURL=thumbnail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/thumbnail.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tdFileId as td, toFileId, toUniqueFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { MtArgumentError, MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { inflateSvgPath, strippedPhotoToJpg, svgPathToFile } from '../../utils/file-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\n\n/**\n * One size of some thumbnail\n */\nexport class Thumbnail extends FileLocation {\n // see: https://core.telegram.org/api/files#image-thumbnail-types\n static readonly THUMB_100x100_BOX = 's'\n static readonly THUMB_320x320_BOX = 'm'\n static readonly THUMB_800x800_BOX = 'x'\n static readonly THUMB_1280x1280_BOX = 'y'\n static readonly THUMB_2560x2560_BOX = 'w'\n\n static readonly THUMB_160x160_CROP = 'a'\n static readonly THUMB_320x320_CROP = 'b'\n static readonly THUMB_640x640_CROP = 'c'\n static readonly THUMB_1280x1280_CROP = 'd'\n\n static readonly THUMB_STRIP = 'i'\n static readonly THUMB_OUTLINE = 'j'\n\n /** Animated profile pictures preview */\n static readonly THUMB_VIDEO_PROFILE = 'u'\n /** Trimmed and downscaled video previews */\n static readonly THUMB_VIDEO_PREVIEW = 'v'\n /** Fullscreen animation for Premium stickers */\n static readonly THUMB_VIDEO_FULLSCREEN = 'f'\n\n /** (non-standard) Emoji-based markup for profile photo */\n static readonly THUMB_EMOJI_MARKUP = 'pfp_em'\n /** (non-standard) Sticker-based markup for profile photo */\n static readonly THUMB_STICKER_MARKUP = 'pfp_st'\n\n readonly raw: tl.TypePhotoSize | tl.TypeVideoSize\n\n /**\n * Thumbnail width\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly width: number\n\n /**\n * Thumbnail height\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly height: number\n\n private _path?: string\n private _media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview\n\n constructor(\n media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview,\n sz: tl.TypePhotoSize | tl.TypeVideoSize,\n ) {\n switch (sz._) {\n case 'photoSizeEmpty':\n case 'photoCachedSize':\n throw new MtTypeAssertionError('sz', 'not (photoSizeEmpty | photoCachedSize)', sz._)\n }\n\n let location: tl.TypeInputFileLocation | Uint8Array | (() => tl.TypeInputFileLocation | Uint8Array)\n let size\n let width\n let height: number\n\n switch (sz._) {\n case 'photoStrippedSize':\n location = strippedPhotoToJpg(sz.bytes)\n width = height = NaN\n size = location.length\n break\n case 'photoPathSize': // lazily\n location = () => svgPathToFile(this._path!)\n width = height = NaN\n size = Infinity // this doesn't really matter\n break\n case 'videoSizeEmojiMarkup':\n case 'videoSizeStickerMarkup':\n location = () => {\n throw new MtArgumentError('Cannot download thumbnail with emoji/sticker markup, try other size')\n }\n width = height = NaN\n size = Infinity\n break\n default:\n if (media._ === 'stickerSet') {\n location = {\n _: 'inputStickerSetThumb',\n stickerset: {\n _: 'inputStickerSetID',\n id: media.id,\n accessHash: media.accessHash,\n },\n thumbVersion: media.thumbVersion!,\n }\n } else if (media._ === 'messageExtendedMediaPreview') {\n // according to tdlib and tdesktop sources, sz can only be photoStrippedSize\n throw new MtTypeAssertionError('messageExtendedMediaPreview#thumb', 'photoStrippedSize', sz._)\n } else {\n location = {\n _: media._ === 'photo' ? 'inputPhotoFileLocation' : 'inputDocumentFileLocation',\n id: media.id,\n fileReference: media.fileReference,\n accessHash: media.accessHash,\n thumbSize: sz.type,\n }\n }\n width = sz.w\n height = sz.h\n size = sz._ === 'photoSizeProgressive' ? Math.max(...sz.sizes) : sz.size\n break\n }\n\n let dcId: number | undefined\n\n if (media._ === 'stickerSet') {\n dcId = media.thumbDcId\n } else if (media._ === 'messageExtendedMediaPreview') {\n dcId = 0\n } else {\n dcId = media.dcId\n }\n\n super(location, size, dcId)\n this.raw = sz\n this.width = width\n this.height = height\n this._media = media\n\n if (sz._ === 'photoPathSize') {\n this._path = inflateSvgPath(sz.bytes)\n }\n }\n\n get isVideo(): boolean {\n return this.raw._ === 'videoSize'\n }\n\n /**\n * Thumbnail type\n */\n get type(): string {\n if (this.raw._ === 'videoSizeEmojiMarkup') {\n return Thumbnail.THUMB_EMOJI_MARKUP\n }\n if (this.raw._ === 'videoSizeStickerMarkup') {\n return Thumbnail.THUMB_STICKER_MARKUP\n }\n\n return this.raw.type\n }\n\n /**\n * If {@link raw} is `tl.RawPhotoPathSize` (i.e. `raw.type === Thumbnail.THUMB_OUTLINE`),\n * this property will return raw SVG path of the preview.\n *\n * When downloading path thumbnails, a valid SVG file is returned.\n *\n * See also: https://core.telegram.org/api/files#vector-thumbnails\n *\n * @throws MtTypeAssertionError In case {@link raw} is not `tl.RawPhotoPathSize`\n */\n get path(): string {\n assertTypeIs('Thumbnail#path', this.raw, 'photoPathSize')\n\n return this._path!\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this thumbnail.\n *\n * > **Note:** You can't use this file id to send a thumbnail,\n * > only to download it.\n */\n get fileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toFileId(getPlatform(), {\n type: td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: null,\n location: {\n _: 'photo',\n id: Long.ZERO,\n accessHash: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n },\n })\n }\n\n return toFileId(getPlatform(), {\n type: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: this._media.fileReference,\n location: {\n _: 'photo',\n id: this._media.id,\n accessHash: this._media.accessHash,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n },\n })\n }\n\n /**\n * Get a unique File ID representing this thumbnail.\n */\n get uniqueFileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a unique file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toUniqueFileId(getPlatform(), td.FileType.Thumbnail, {\n _: 'photo',\n id: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n })\n }\n\n return toUniqueFileId(getPlatform(), this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail, {\n _: 'photo',\n id: this._media.id,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n })\n }\n}\n\nmemoizeGetters(Thumbnail, ['fileId', 'uniqueFileId'])\nmakeInspectable(Thumbnail, ['fileSize', 'dcId', 'width', 'height'], ['path'])\n"]}
1
+ {"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/thumbnail.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tdFileId as td, toFileId, toUniqueFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { MtArgumentError, MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { inflateSvgPath, strippedPhotoToJpg, svgPathToFile } from '../../utils/file-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\n\n/**\n * One size of some thumbnail\n */\nexport class Thumbnail extends FileLocation {\n // see: https://core.telegram.org/api/files#image-thumbnail-types\n static readonly THUMB_100x100_BOX = 's'\n static readonly THUMB_320x320_BOX = 'm'\n static readonly THUMB_800x800_BOX = 'x'\n static readonly THUMB_1280x1280_BOX = 'y'\n static readonly THUMB_2560x2560_BOX = 'w'\n\n static readonly THUMB_160x160_CROP = 'a'\n static readonly THUMB_320x320_CROP = 'b'\n static readonly THUMB_640x640_CROP = 'c'\n static readonly THUMB_1280x1280_CROP = 'd'\n\n static readonly THUMB_STRIP = 'i'\n static readonly THUMB_OUTLINE = 'j'\n\n /** Animated profile pictures preview */\n static readonly THUMB_VIDEO_PROFILE = 'u'\n /** Trimmed and downscaled video previews */\n static readonly THUMB_VIDEO_PREVIEW = 'v'\n /** Fullscreen animation for Premium stickers */\n static readonly THUMB_VIDEO_FULLSCREEN = 'f'\n\n /** (non-standard) Emoji-based markup for profile photo */\n static readonly THUMB_EMOJI_MARKUP = 'pfp_em'\n /** (non-standard) Sticker-based markup for profile photo */\n static readonly THUMB_STICKER_MARKUP = 'pfp_st'\n\n readonly raw: tl.TypePhotoSize | tl.TypeVideoSize\n\n /**\n * Thumbnail width\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly width: number\n\n /**\n * Thumbnail height\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly height: number\n\n private _path?: string\n private _media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview\n\n constructor(\n media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview,\n sz: tl.TypePhotoSize | tl.TypeVideoSize,\n ) {\n switch (sz._) {\n case 'photoSizeEmpty':\n case 'photoCachedSize':\n throw new MtTypeAssertionError('sz', 'not (photoSizeEmpty | photoCachedSize)', sz._)\n }\n\n let location: tl.TypeInputFileLocation | Uint8Array | (() => tl.TypeInputFileLocation | Uint8Array)\n let size\n let width\n let height: number\n\n switch (sz._) {\n case 'photoStrippedSize':\n location = strippedPhotoToJpg(sz.bytes)\n width = height = NaN\n size = location.length\n break\n case 'photoPathSize': // lazily\n location = () => svgPathToFile(this._path!)\n width = height = NaN\n size = Infinity // this doesn't really matter\n break\n case 'videoSizeEmojiMarkup':\n case 'videoSizeStickerMarkup':\n location = () => {\n throw new MtArgumentError('Cannot download thumbnail with emoji/sticker markup, try other size')\n }\n width = height = NaN\n size = Infinity\n break\n default:\n if (media._ === 'stickerSet') {\n location = {\n _: 'inputStickerSetThumb',\n stickerset: {\n _: 'inputStickerSetID',\n id: media.id,\n accessHash: media.accessHash,\n },\n thumbVersion: media.thumbVersion!,\n }\n } else if (media._ === 'messageExtendedMediaPreview') {\n // according to tdlib and tdesktop sources, sz can only be photoStrippedSize\n throw new MtTypeAssertionError('messageExtendedMediaPreview#thumb', 'photoStrippedSize', sz._)\n } else {\n location = {\n _: media._ === 'photo' ? 'inputPhotoFileLocation' : 'inputDocumentFileLocation',\n id: media.id,\n fileReference: media.fileReference,\n accessHash: media.accessHash,\n thumbSize: sz.type,\n }\n }\n width = sz.w\n height = sz.h\n size = sz._ === 'photoSizeProgressive' ? Math.max(...sz.sizes) : sz.size\n break\n }\n\n let dcId: number | undefined\n\n if (media._ === 'stickerSet') {\n dcId = media.thumbDcId\n } else if (media._ === 'messageExtendedMediaPreview') {\n dcId = 0\n } else {\n dcId = media.dcId\n }\n\n super(location, size, dcId)\n this.raw = sz\n this.width = width\n this.height = height\n this._media = media\n\n if (sz._ === 'photoPathSize') {\n this._path = inflateSvgPath(sz.bytes)\n }\n }\n\n get isVideo(): boolean {\n return this.raw._ === 'videoSize'\n }\n\n /**\n * Thumbnail type\n */\n get type(): string {\n if (this.raw._ === 'videoSizeEmojiMarkup') {\n return Thumbnail.THUMB_EMOJI_MARKUP\n }\n if (this.raw._ === 'videoSizeStickerMarkup') {\n return Thumbnail.THUMB_STICKER_MARKUP\n }\n\n return this.raw.type\n }\n\n /**\n * If {@link raw} is `tl.RawPhotoPathSize` (i.e. `raw.type === Thumbnail.THUMB_OUTLINE`),\n * this property will return raw SVG path of the preview.\n *\n * When downloading path thumbnails, a valid SVG file is returned.\n *\n * See also: https://core.telegram.org/api/files#vector-thumbnails\n *\n * @throws MtTypeAssertionError In case {@link raw} is not `tl.RawPhotoPathSize`\n */\n get path(): string {\n assertTypeIs('Thumbnail#path', this.raw, 'photoPathSize')\n\n return this._path!\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this thumbnail.\n *\n * > **Note:** You can't use this file id to send a thumbnail,\n * > only to download it.\n */\n get fileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toFileId(getPlatform(), {\n type: td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: null,\n location: {\n _: 'photo',\n id: Long.ZERO,\n accessHash: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n },\n })\n }\n\n return toFileId(getPlatform(), {\n type: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: this._media.fileReference,\n location: {\n _: 'photo',\n id: this._media.id,\n accessHash: this._media.accessHash,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n },\n })\n }\n\n /**\n * Get a unique File ID representing this thumbnail.\n */\n get uniqueFileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a unique file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toUniqueFileId(getPlatform(), td.FileType.Thumbnail, {\n _: 'photo',\n id: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n })\n }\n\n return toUniqueFileId(getPlatform(), this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail, {\n _: 'photo',\n id: this._media.id,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n })\n }\n}\n\nmemoizeGetters(Thumbnail, ['fileId', 'uniqueFileId'])\nmakeInspectable(Thumbnail, ['fileSize', 'dcId', 'width', 'height'], ['path'])\n"]}
@@ -6,9 +6,10 @@ const index_js_1 = require("../../utils/index.js");
6
6
  const memoize_js_1 = require("../../utils/memoize.js");
7
7
  const location_js_1 = require("./location.js");
8
8
  class Venue {
9
+ raw;
10
+ type = 'venue';
9
11
  constructor(raw) {
10
12
  this.raw = raw;
11
- this.type = 'venue';
12
13
  }
13
14
  /**
14
15
  * Geolocation of the venue
@@ -1 +1 @@
1
- {"version":3,"file":"venue.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/venue.ts"],"names":[],"mappings":";;;AAEA,0EAAgE;AAChE,mDAAsD;AACtD,uDAAuD;AACvD,+CAAwC;AAwBxC,MAAa,KAAK;IAGd,YAAqB,GAA4B;QAA5B,QAAG,GAAH,GAAG,CAAyB;QAFxC,SAAI,GAAG,OAAgB,CAAA;IAEoB,CAAC;IAErD;;OAEG;IACH,IAAI,QAAQ;QACR,IAAA,iCAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAExD,OAAO,IAAI,sBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAmC;YACtD,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAC3B,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,iBAAiB;YACpB,QAAQ,EAAE;gBACN,CAAC,EAAE,eAAe;gBAClB,GAAG,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,GAAG;gBACzC,IAAI,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,IAAI;gBAC3C,cAAc,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,cAAc;aAClE;YACD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAC3B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAChC,CAAA;IACL,CAAC;CACJ;AAxED,sBAwEC;AAED,IAAA,2BAAc,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC7C,IAAA,0BAAe,EAAC,KAAK,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Location } from './location.js'\n\nexport interface VenueSource {\n /**\n * Provider name (`foursquare` or `gplaces` for Google Places)\n */\n provider?: 'foursquare' | 'gplaces'\n\n /**\n * Venue ID in the provider's DB\n */\n id: string\n\n /**\n * Venue type in the provider's DB\n *\n * - [Supported types for Foursquare](https://developer.foursquare.com/docs/build-with-foursquare/categories/)\n * (use names, lowercase them, replace spaces and \" & \" with `_` (underscore) and remove other symbols,\n * and use `/` (slash) as hierarchy separator)\n * - [Supported types for Google Places](https://developers.google.com/places/web-service/supported_types)\n */\n type: string\n}\n\nexport class Venue {\n readonly type = 'venue' as const\n\n constructor(readonly raw: tl.RawMessageMediaVenue) {}\n\n /**\n * Geolocation of the venue\n */\n get location(): Location {\n assertTypeIs('Venue#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n\n /**\n * Venue name\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Venue address\n */\n get address(): string {\n return this.raw.address\n }\n\n /**\n * When available, source from where this venue was acquired\n */\n get source(): VenueSource | null {\n if (!this.raw.provider) return null\n\n return {\n provider: this.raw.provider as VenueSource['provider'],\n id: this.raw.venueId,\n type: this.raw.venueType,\n }\n }\n\n /**\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 _: 'inputMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: (this.raw.geo as tl.RawGeoPoint).lat,\n long: (this.raw.geo as tl.RawGeoPoint).long,\n accuracyRadius: (this.raw.geo as tl.RawGeoPoint).accuracyRadius,\n },\n title: this.raw.title,\n address: this.raw.address,\n provider: this.raw.provider,\n venueId: this.raw.venueId,\n venueType: this.raw.venueType,\n }\n }\n}\n\nmemoizeGetters(Venue, ['location', 'source'])\nmakeInspectable(Venue, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"venue.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/venue.ts"],"names":[],"mappings":";;;AAEA,0EAAgE;AAChE,mDAAsD;AACtD,uDAAuD;AACvD,+CAAwC;AAwBxC,MAAa,KAAK;IAGO;IAFZ,IAAI,GAAG,OAAgB,CAAA;IAEhC,YAAqB,GAA4B;QAA5B,QAAG,GAAH,GAAG,CAAyB;IAAG,CAAC;IAErD;;OAEG;IACH,IAAI,QAAQ;QACR,IAAA,iCAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAExD,OAAO,IAAI,sBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAmC;YACtD,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAC3B,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,iBAAiB;YACpB,QAAQ,EAAE;gBACN,CAAC,EAAE,eAAe;gBAClB,GAAG,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,GAAG;gBACzC,IAAI,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,IAAI;gBAC3C,cAAc,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,cAAc;aAClE;YACD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAC3B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAChC,CAAA;IACL,CAAC;CACJ;AAxED,sBAwEC;AAED,IAAA,2BAAc,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC7C,IAAA,0BAAe,EAAC,KAAK,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Location } from './location.js'\n\nexport interface VenueSource {\n /**\n * Provider name (`foursquare` or `gplaces` for Google Places)\n */\n provider?: 'foursquare' | 'gplaces'\n\n /**\n * Venue ID in the provider's DB\n */\n id: string\n\n /**\n * Venue type in the provider's DB\n *\n * - [Supported types for Foursquare](https://developer.foursquare.com/docs/build-with-foursquare/categories/)\n * (use names, lowercase them, replace spaces and \" & \" with `_` (underscore) and remove other symbols,\n * and use `/` (slash) as hierarchy separator)\n * - [Supported types for Google Places](https://developers.google.com/places/web-service/supported_types)\n */\n type: string\n}\n\nexport class Venue {\n readonly type = 'venue' as const\n\n constructor(readonly raw: tl.RawMessageMediaVenue) {}\n\n /**\n * Geolocation of the venue\n */\n get location(): Location {\n assertTypeIs('Venue#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n\n /**\n * Venue name\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Venue address\n */\n get address(): string {\n return this.raw.address\n }\n\n /**\n * When available, source from where this venue was acquired\n */\n get source(): VenueSource | null {\n if (!this.raw.provider) return null\n\n return {\n provider: this.raw.provider as VenueSource['provider'],\n id: this.raw.venueId,\n type: this.raw.venueType,\n }\n }\n\n /**\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 _: 'inputMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: (this.raw.geo as tl.RawGeoPoint).lat,\n long: (this.raw.geo as tl.RawGeoPoint).long,\n accuracyRadius: (this.raw.geo as tl.RawGeoPoint).accuracyRadius,\n },\n title: this.raw.title,\n address: this.raw.address,\n provider: this.raw.provider,\n venueId: this.raw.venueId,\n venueType: this.raw.venueType,\n }\n }\n}\n\nmemoizeGetters(Venue, ['location', 'source'])\nmakeInspectable(Venue, undefined, ['inputMedia'])\n"]}
@@ -11,6 +11,9 @@ const document_js_1 = require("./document.js");
11
11
  * **Note:** Legacy GIF animations are also wrapped with this class.
12
12
  */
13
13
  class Video extends document_js_1.RawDocument {
14
+ attr;
15
+ media;
16
+ type = 'video';
14
17
  _fileIdType() {
15
18
  if (this.isRound)
16
19
  return file_id_1.tdFileId.FileType.VideoNote;
@@ -22,7 +25,6 @@ class Video extends document_js_1.RawDocument {
22
25
  super(doc);
23
26
  this.attr = attr;
24
27
  this.media = media;
25
- this.type = 'video';
26
28
  }
27
29
  /**
28
30
  * Video width in pixels
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/video.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAG1C,mDAAsD;AACtD,uDAAuD;AACvD,+CAA2C;AAE3C;;;;GAIG;AACH,MAAa,KAAM,SAAQ,yBAAW;IAGxB,WAAW;QACjB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,kBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,kBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;QAExD,OAAO,kBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAA;IAClC,CAAC;IAED,YACI,GAAmB,EACV,IAAqE,EACrE,KAAkC;QAE3C,KAAK,CAAC,GAAG,CAAC,CAAA;QAHD,SAAI,GAAJ,IAAI,CAAiE;QACrE,UAAK,GAAL,KAAK,CAA6B;QAZtC,SAAI,GAAG,OAAgB,CAAA;IAehC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,CACH,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,4BAA4B;YAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,2BAA2B,CAAC,CACzE,CAAA;IACL,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACtF,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,4BAA4B,CAAA;IACvD,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAA;IACvC,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,CAAA;IACzC,CAAC;CACJ;AA3ED,sBA2EC;AAED,IAAA,2BAAc,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAA;AAC1F,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\n\n/**\n * A video, round video message or GIF animation.\n *\n * **Note:** Legacy GIF animations are also wrapped with this class.\n */\nexport class Video extends RawDocument {\n readonly type = 'video' as const\n\n protected _fileIdType(): tdFileId.FileType {\n if (this.isRound) return tdFileId.FileType.VideoNote\n if (this.isAnimation) return tdFileId.FileType.Animation\n\n return tdFileId.FileType.Video\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeVideo | tl.RawDocumentAttributeImageSize,\n readonly media?: tl.RawMessageMediaDocument,\n ) {\n super(doc)\n }\n\n /**\n * Video width in pixels\n */\n get width(): number {\n return this.attr.w\n }\n\n /**\n * Video height in pixels\n */\n get height(): number {\n return this.attr.h\n }\n\n /**\n * Video duration in seconds.\n *\n * `0` for legacy GIFs\n */\n get duration(): number {\n return this.attr._ === 'documentAttributeVideo' ? this.attr.duration : 0\n }\n\n /**\n * Whether this video is an animated GIF\n * (represented either by actual GIF or a silent MP4 video)\n */\n get isAnimation(): boolean {\n return (\n this.attr._ === 'documentAttributeImageSize' ||\n this.raw.attributes.some((it) => it._ === 'documentAttributeAnimated')\n )\n }\n\n /**\n * Whether this video is a round video message (aka video note)\n */\n get isRound(): boolean {\n return this.attr._ === 'documentAttributeVideo' && Boolean(this.attr.roundMessage)\n }\n\n /**\n * Whether this video is a legacy GIF (i.e. its MIME is `image/gif`)\n */\n get isLegacyGif(): boolean {\n return this.attr._ === 'documentAttributeImageSize'\n }\n\n /** Whether this video is hidden with a spoiler */\n get hasSpoiler(): boolean {\n return this.media?.spoiler ?? false\n }\n\n /** For self-destructing videos, TTL in seconds */\n get ttlSeconds(): number | null {\n return this.media?.ttlSeconds ?? null\n }\n}\n\nmemoizeGetters(Video, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'isAnimation'])\nmakeInspectable(Video, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/video.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAG1C,mDAAsD;AACtD,uDAAuD;AACvD,+CAA2C;AAE3C;;;;GAIG;AACH,MAAa,KAAM,SAAQ,yBAAW;IAYrB;IACA;IAZJ,IAAI,GAAG,OAAgB,CAAA;IAEtB,WAAW;QACjB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,kBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,kBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;QAExD,OAAO,kBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAA;IAClC,CAAC;IAED,YACI,GAAmB,EACV,IAAqE,EACrE,KAAkC;QAE3C,KAAK,CAAC,GAAG,CAAC,CAAA;QAHD,SAAI,GAAJ,IAAI,CAAiE;QACrE,UAAK,GAAL,KAAK,CAA6B;IAG/C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,CACH,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,4BAA4B;YAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,2BAA2B,CAAC,CACzE,CAAA;IACL,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACtF,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,4BAA4B,CAAA;IACvD,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAA;IACvC,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,CAAA;IACzC,CAAC;CACJ;AA3ED,sBA2EC;AAED,IAAA,2BAAc,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAA;AAC1F,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\n\n/**\n * A video, round video message or GIF animation.\n *\n * **Note:** Legacy GIF animations are also wrapped with this class.\n */\nexport class Video extends RawDocument {\n readonly type = 'video' as const\n\n protected _fileIdType(): tdFileId.FileType {\n if (this.isRound) return tdFileId.FileType.VideoNote\n if (this.isAnimation) return tdFileId.FileType.Animation\n\n return tdFileId.FileType.Video\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeVideo | tl.RawDocumentAttributeImageSize,\n readonly media?: tl.RawMessageMediaDocument,\n ) {\n super(doc)\n }\n\n /**\n * Video width in pixels\n */\n get width(): number {\n return this.attr.w\n }\n\n /**\n * Video height in pixels\n */\n get height(): number {\n return this.attr.h\n }\n\n /**\n * Video duration in seconds.\n *\n * `0` for legacy GIFs\n */\n get duration(): number {\n return this.attr._ === 'documentAttributeVideo' ? this.attr.duration : 0\n }\n\n /**\n * Whether this video is an animated GIF\n * (represented either by actual GIF or a silent MP4 video)\n */\n get isAnimation(): boolean {\n return (\n this.attr._ === 'documentAttributeImageSize' ||\n this.raw.attributes.some((it) => it._ === 'documentAttributeAnimated')\n )\n }\n\n /**\n * Whether this video is a round video message (aka video note)\n */\n get isRound(): boolean {\n return this.attr._ === 'documentAttributeVideo' && Boolean(this.attr.roundMessage)\n }\n\n /**\n * Whether this video is a legacy GIF (i.e. its MIME is `image/gif`)\n */\n get isLegacyGif(): boolean {\n return this.attr._ === 'documentAttributeImageSize'\n }\n\n /** Whether this video is hidden with a spoiler */\n get hasSpoiler(): boolean {\n return this.media?.spoiler ?? false\n }\n\n /** For self-destructing videos, TTL in seconds */\n get ttlSeconds(): number | null {\n return this.media?.ttlSeconds ?? null\n }\n}\n\nmemoizeGetters(Video, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'isAnimation'])\nmakeInspectable(Video, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
@@ -10,13 +10,14 @@ const document_js_1 = require("./document.js");
10
10
  * An voice note.
11
11
  */
12
12
  class Voice extends document_js_1.RawDocument {
13
+ attr;
14
+ type = 'voice';
13
15
  _fileIdType() {
14
16
  return file_id_1.tdFileId.FileType.VoiceNote;
15
17
  }
16
18
  constructor(doc, attr) {
17
19
  super(doc);
18
20
  this.attr = attr;
19
- this.type = 'voice';
20
21
  }
21
22
  /**
22
23
  * Duration of the voice note in seconds.
@@ -1 +1 @@
1
- {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/voice.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAG1C,mDAAsD;AACtD,uDAAuD;AACvD,+DAA2D;AAC3D,+CAA2C;AAE3C;;GAEG;AACH,MAAa,KAAM,SAAQ,yBAAW;IAGxB,WAAW;QACjB,OAAO,kBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;IACtC,CAAC;IAED,YACI,GAAmB,EACV,IAAkC;QAE3C,KAAK,CAAC,GAAG,CAAC,CAAA;QAFD,SAAI,GAAJ,IAAI,CAA8B;QARtC,SAAI,GAAG,OAAgB,CAAA;IAWhC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACR,OAAO,IAAA,+BAAc,EAAC,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC,CAAA;IAC9C,CAAC;CACJ;AA9BD,sBA8BC;AACD,IAAA,2BAAc,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAA;AACvF,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { decodeWaveform } from '../../utils/voice-utils.js'\nimport { RawDocument } from './document.js'\n\n/**\n * An voice note.\n */\nexport class Voice extends RawDocument {\n readonly type = 'voice' as const\n\n protected _fileIdType(): tdFileId.FileType {\n return tdFileId.FileType.VoiceNote\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeAudio,\n ) {\n super(doc)\n }\n\n /**\n * Duration of the voice note in seconds.\n */\n get duration(): number {\n return this.attr.duration\n }\n\n /**\n * Voice note's waveform\n *\n * Represented with integers in range [0, 31],\n * usually has length of 100\n */\n get waveform(): number[] {\n return decodeWaveform(this.attr.waveform!)\n }\n}\nmemoizeGetters(Voice, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'waveform'])\nmakeInspectable(Voice, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument', 'waveform'])\n"]}
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/voice.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAG1C,mDAAsD;AACtD,uDAAuD;AACvD,+DAA2D;AAC3D,+CAA2C;AAE3C;;GAEG;AACH,MAAa,KAAM,SAAQ,yBAAW;IASrB;IARJ,IAAI,GAAG,OAAgB,CAAA;IAEtB,WAAW;QACjB,OAAO,kBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;IACtC,CAAC;IAED,YACI,GAAmB,EACV,IAAkC;QAE3C,KAAK,CAAC,GAAG,CAAC,CAAA;QAFD,SAAI,GAAJ,IAAI,CAA8B;IAG/C,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACR,OAAO,IAAA,+BAAc,EAAC,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC,CAAA;IAC9C,CAAC;CACJ;AA9BD,sBA8BC;AACD,IAAA,2BAAc,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAA;AACvF,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { decodeWaveform } from '../../utils/voice-utils.js'\nimport { RawDocument } from './document.js'\n\n/**\n * An voice note.\n */\nexport class Voice extends RawDocument {\n readonly type = 'voice' as const\n\n protected _fileIdType(): tdFileId.FileType {\n return tdFileId.FileType.VoiceNote\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeAudio,\n ) {\n super(doc)\n }\n\n /**\n * Duration of the voice note in seconds.\n */\n get duration(): number {\n return this.attr.duration\n }\n\n /**\n * Voice note's waveform\n *\n * Represented with integers in range [0, 31],\n * usually has length of 100\n */\n get waveform(): number[] {\n return decodeWaveform(this.attr.waveform!)\n }\n}\nmemoizeGetters(Voice, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'waveform'])\nmakeInspectable(Voice, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument', 'waveform'])\n"]}
@@ -17,9 +17,10 @@ const photo_js_1 = require("./photo.js");
17
17
  * of my own observations and experiments.
18
18
  */
19
19
  class WebPage {
20
+ raw;
21
+ type = 'webpage';
20
22
  constructor(raw) {
21
23
  this.raw = raw;
22
- this.type = 'webpage';
23
24
  }
24
25
  /**
25
26
  * Unique ID of the preview
@@ -1 +1 @@
1
- {"version":3,"file":"web-page.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/web-page.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,mDAAsD;AACtD,uDAAuD;AAEvD,2DAAmD;AACnD,yCAAkC;AAElC;;;;;;;;;GASG;AACH,MAAa,OAAO;IAGhB,YAAqB,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;QAF9B,SAAI,GAAG,SAAkB,CAAA;IAEQ,CAAC;IAE3C;;OAEG;IACH,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAA;IACjC,CAAC;IAED;;;;OAIG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAA;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAA;IACpC,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAAE;YAC/B,OAAO,IAAI,CAAA;SACd;QAED,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,UAAU,EAAE;YACrC,OAAO,IAAI,CAAA;SACd;QAED,OAAO,IAAA,iCAAa,EAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,UAAU;QACV,MAAM,IAAI,2BAAe,CAAC,sCAAsC,CAAC,CAAA;IACrE,CAAC;CACJ;AA9LD,0BA8LC;AAED,IAAA,2BAAc,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAC9C,IAAA,0BAAe,EAAC,OAAO,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","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 { RawDocument } from './document.js'\nimport { parseDocument } from './document-utils.js'\nimport { Photo } from './photo.js'\n\n/**\n * Web page preview.\n *\n * **Warning**: Documentation of this class also contains my\n * personal research about how Telegram\n * handles different pages and embeds. **By no means**\n * this should be considered the definitive source of truth,\n * as this is not documented officially, and only consists\n * of my own observations and experiments.\n */\nexport class WebPage {\n readonly type = 'webpage' as const\n\n constructor(readonly raw: tl.RawWebPage) {}\n\n /**\n * Unique ID of the preview\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /**\n * Original page URL\n */\n get url(): string {\n return this.raw.url\n }\n\n /**\n * URL to be displayed to the user.\n *\n * Usually a normal URL with stripped protocol and garbage.\n */\n get displayUrl(): string {\n return this.raw.displayUrl\n }\n\n /**\n * Type of the preview, taken directly from TL object\n *\n * Officially documented are:\n * `article, photo, audio, video, document, profile, app`,\n * but also these are encountered:\n * `telegram_user, telegram_bot, telegram_channel, telegram_megagroup, telegram_story`:\n *\n * - `telegram_*` ones seem to be used for `t.me` links.\n * - `article` seems to be used for almost all custom pages with `og:*` tags\n * - `photo`, `audio` and `video` seem to be derived from `og:type`,\n * and the page itself may contain a preview photo and an embed link\n * for the player. This may not correctly represent actual content type:\n * Spotify links are `audio`, but SoundCloud are `video`. YouTube links are `video`,\n * but tweets with video are `photo`.\n * - `document` seem to be used for files downloadable directly from the URL,\n * like PDFs, audio files, videos, etc. {@link document} seem to be\n * present if `type` is `document`.\n * - `profile` doesn't seem to be used\n * - `app` doesn't seem to be used\n *\n * `unknown` is returned if no type is returned in the TL object.\n */\n get previewType(): string {\n return this.raw.type || 'unknown'\n }\n\n /**\n * Page title\n *\n * Usually defined by `og:site_name` meta tag or website domain\n */\n get siteName(): string | null {\n return this.raw.siteName ?? null\n }\n\n /**\n * Page title\n *\n * Usually defined by `og:title` meta tag or `<title>` tag\n */\n get title(): string | null {\n return this.raw.title ?? null\n }\n\n /**\n * Page description\n *\n * Usually defined by `description` or `og:description` meta tag\n */\n get description(): string | null {\n return this.raw.description ?? null\n }\n\n /**\n * Page author\n *\n * The source for this is unknown, seems to be\n * custom-made for services like Twitter.\n *\n * In official apps this seems to be used as a fallback for description.\n */\n get author(): string | null {\n return this.raw.author ?? null\n }\n\n /**\n * The embed URL.\n *\n * Based on my research, Telegram only allows\n * embedding pages from a server-side white-list of domains.\n *\n * That is, you can't just copy-paste meta tags\n * from YouTube to your own domain and expect Telegram\n * to return a webpage with embed.\n *\n * IDK why is that, maybe they are concerned about\n * leaking users' IPs to 3rd parties or something\n * (but why allow embedding in the first place then?)\n *\n * Telegram for Android does not show \"play\" button for\n * webpages without embeds, and instead treats it like a simple\n * photo (why?).\n *\n * TDesktop does not support embeds and seems\n * to use {@link type} to determine them, and specifically\n * [checks](https://github.com/telegramdesktop/tdesktop/blob/3343880ed0e5a86accc7334af54b3470e29ee686/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp#L561)\n * for `YouTube` in {@link siteName} to display YouTube icon.\n */\n get embedUrl(): string | null {\n return this.raw.embedUrl ?? null\n }\n\n /**\n * Embed type.\n *\n * Now this is actually stupid.\n * As per [official documentation](https://core.telegram.org/constructor/webPage),\n * `embed_type` contains «MIME type of the embedded preview, (e.g., text/html or video/mp4)».\n * But in fact every time I encountered it it contained a simple string `iframe`.\n *\n * I couldn't find any usage of this field in official apps either.\n */\n get embedType(): string | null {\n return this.raw.embedType ?? null\n }\n\n /**\n * Width of the embed in pixels, 0 if not available.\n */\n get embedWidth(): number {\n return this.raw.embedWidth || 0\n }\n\n /**\n * Height of the embed in pixels, 0 if not available.\n */\n get embedHeight(): number {\n return this.raw.embedHeight || 0\n }\n\n /**\n * A photo inside this webpage preview.\n *\n * Used for most of the preview types.\n */\n get photo(): Photo | null {\n if (this.raw.photo?._ !== 'photo') {\n return null\n }\n\n return new Photo(this.raw.photo)\n }\n\n /**\n * Document inside this webpage preview.\n *\n * Seems that this is only used for `document` previews.\n *\n * Can be a {@link Photo}, {@link Video},\n * {@link Audio}, {@link Document}.\n */\n get document(): RawDocument | null {\n if (this.raw.document?._ !== 'document') {\n return null\n }\n\n return parseDocument(this.raw.document)\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 * WebPage can't provide an input media, since some\n * can only be auto-generated from a link. This getter\n * is only provided to allow using `msg.media.inputMedia`\n */\n get inputMedia(): tl.TypeInputMedia {\n throw new MtArgumentError('WebPage cannot provide an InputMedia')\n }\n}\n\nmemoizeGetters(WebPage, ['photo', 'document'])\nmakeInspectable(WebPage, undefined, ['inputMedia'])\n"]}
1
+ {"version":3,"file":"web-page.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/web-page.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,mDAAsD;AACtD,uDAAuD;AAEvD,2DAAmD;AACnD,yCAAkC;AAElC;;;;;;;;;GASG;AACH,MAAa,OAAO;IAGK;IAFZ,IAAI,GAAG,SAAkB,CAAA;IAElC,YAAqB,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;IAAG,CAAC;IAE3C;;OAEG;IACH,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAA;IACjC,CAAC;IAED;;;;OAIG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAA;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAA;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAA;IACpC,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAI,gBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC;YACtC,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAA,iCAAa,EAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,UAAU;QACV,MAAM,IAAI,2BAAe,CAAC,sCAAsC,CAAC,CAAA;IACrE,CAAC;CACJ;AA9LD,0BA8LC;AAED,IAAA,2BAAc,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAC9C,IAAA,0BAAe,EAAC,OAAO,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","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 { RawDocument } from './document.js'\nimport { parseDocument } from './document-utils.js'\nimport { Photo } from './photo.js'\n\n/**\n * Web page preview.\n *\n * **Warning**: Documentation of this class also contains my\n * personal research about how Telegram\n * handles different pages and embeds. **By no means**\n * this should be considered the definitive source of truth,\n * as this is not documented officially, and only consists\n * of my own observations and experiments.\n */\nexport class WebPage {\n readonly type = 'webpage' as const\n\n constructor(readonly raw: tl.RawWebPage) {}\n\n /**\n * Unique ID of the preview\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /**\n * Original page URL\n */\n get url(): string {\n return this.raw.url\n }\n\n /**\n * URL to be displayed to the user.\n *\n * Usually a normal URL with stripped protocol and garbage.\n */\n get displayUrl(): string {\n return this.raw.displayUrl\n }\n\n /**\n * Type of the preview, taken directly from TL object\n *\n * Officially documented are:\n * `article, photo, audio, video, document, profile, app`,\n * but also these are encountered:\n * `telegram_user, telegram_bot, telegram_channel, telegram_megagroup, telegram_story`:\n *\n * - `telegram_*` ones seem to be used for `t.me` links.\n * - `article` seems to be used for almost all custom pages with `og:*` tags\n * - `photo`, `audio` and `video` seem to be derived from `og:type`,\n * and the page itself may contain a preview photo and an embed link\n * for the player. This may not correctly represent actual content type:\n * Spotify links are `audio`, but SoundCloud are `video`. YouTube links are `video`,\n * but tweets with video are `photo`.\n * - `document` seem to be used for files downloadable directly from the URL,\n * like PDFs, audio files, videos, etc. {@link document} seem to be\n * present if `type` is `document`.\n * - `profile` doesn't seem to be used\n * - `app` doesn't seem to be used\n *\n * `unknown` is returned if no type is returned in the TL object.\n */\n get previewType(): string {\n return this.raw.type || 'unknown'\n }\n\n /**\n * Page title\n *\n * Usually defined by `og:site_name` meta tag or website domain\n */\n get siteName(): string | null {\n return this.raw.siteName ?? null\n }\n\n /**\n * Page title\n *\n * Usually defined by `og:title` meta tag or `<title>` tag\n */\n get title(): string | null {\n return this.raw.title ?? null\n }\n\n /**\n * Page description\n *\n * Usually defined by `description` or `og:description` meta tag\n */\n get description(): string | null {\n return this.raw.description ?? null\n }\n\n /**\n * Page author\n *\n * The source for this is unknown, seems to be\n * custom-made for services like Twitter.\n *\n * In official apps this seems to be used as a fallback for description.\n */\n get author(): string | null {\n return this.raw.author ?? null\n }\n\n /**\n * The embed URL.\n *\n * Based on my research, Telegram only allows\n * embedding pages from a server-side white-list of domains.\n *\n * That is, you can't just copy-paste meta tags\n * from YouTube to your own domain and expect Telegram\n * to return a webpage with embed.\n *\n * IDK why is that, maybe they are concerned about\n * leaking users' IPs to 3rd parties or something\n * (but why allow embedding in the first place then?)\n *\n * Telegram for Android does not show \"play\" button for\n * webpages without embeds, and instead treats it like a simple\n * photo (why?).\n *\n * TDesktop does not support embeds and seems\n * to use {@link type} to determine them, and specifically\n * [checks](https://github.com/telegramdesktop/tdesktop/blob/3343880ed0e5a86accc7334af54b3470e29ee686/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp#L561)\n * for `YouTube` in {@link siteName} to display YouTube icon.\n */\n get embedUrl(): string | null {\n return this.raw.embedUrl ?? null\n }\n\n /**\n * Embed type.\n *\n * Now this is actually stupid.\n * As per [official documentation](https://core.telegram.org/constructor/webPage),\n * `embed_type` contains «MIME type of the embedded preview, (e.g., text/html or video/mp4)».\n * But in fact every time I encountered it it contained a simple string `iframe`.\n *\n * I couldn't find any usage of this field in official apps either.\n */\n get embedType(): string | null {\n return this.raw.embedType ?? null\n }\n\n /**\n * Width of the embed in pixels, 0 if not available.\n */\n get embedWidth(): number {\n return this.raw.embedWidth || 0\n }\n\n /**\n * Height of the embed in pixels, 0 if not available.\n */\n get embedHeight(): number {\n return this.raw.embedHeight || 0\n }\n\n /**\n * A photo inside this webpage preview.\n *\n * Used for most of the preview types.\n */\n get photo(): Photo | null {\n if (this.raw.photo?._ !== 'photo') {\n return null\n }\n\n return new Photo(this.raw.photo)\n }\n\n /**\n * Document inside this webpage preview.\n *\n * Seems that this is only used for `document` previews.\n *\n * Can be a {@link Photo}, {@link Video},\n * {@link Audio}, {@link Document}.\n */\n get document(): RawDocument | null {\n if (this.raw.document?._ !== 'document') {\n return null\n }\n\n return parseDocument(this.raw.document)\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 * WebPage can't provide an input media, since some\n * can only be auto-generated from a link. This getter\n * is only provided to allow using `msg.media.inputMedia`\n */\n get inputMedia(): tl.TypeInputMedia {\n throw new MtArgumentError('WebPage cannot provide an InputMedia')\n }\n}\n\nmemoizeGetters(WebPage, ['photo', 'document'])\nmakeInspectable(WebPage, undefined, ['inputMedia'])\n"]}
@@ -17,6 +17,9 @@ const message_js_1 = require("./message.js");
17
17
  * in Telegram's main window.
18
18
  */
19
19
  class Dialog {
20
+ raw;
21
+ _peers;
22
+ _messages;
20
23
  constructor(raw, _peers, _messages) {
21
24
  this.raw = raw;
22
25
  this._peers = _peers;
@@ -166,18 +169,7 @@ class Dialog {
166
169
  * Chat that this dialog represents
167
170
  */
168
171
  get chat() {
169
- const peer = this.raw.peer;
170
- let chat;
171
- switch (peer._) {
172
- case 'peerChannel':
173
- case 'peerChat':
174
- chat = this._peers.chat(peer._ === 'peerChannel' ? peer.channelId : peer.chatId);
175
- break;
176
- default:
177
- chat = this._peers.user(peer.userId);
178
- break;
179
- }
180
- return new chat_js_1.Chat(chat);
172
+ return chat_js_1.Chat._parseFromPeer(this.raw.peer, this._peers);
181
173
  }
182
174
  /**
183
175
  * The latest message sent in this chat
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot, hasValueAtKey } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtMessageNotFoundError } from '../errors.js'\nimport { Chat } from '../peers/chat.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { DraftMessage } from './draft-message.js'\nimport { Message } from './message.js'\n\n/**\n * Type used as an input for a folder in client methods\n *\n * You can pass folder object, id or title\n */\nexport type InputDialogFolder = string | number | tl.RawDialogFilter\n\n/**\n * A dialog.\n *\n * Think of it as something that is listed\n * in Telegram's main window.\n */\nexport class Dialog {\n constructor(\n readonly raw: tl.RawDialog,\n readonly _peers: PeersIndex,\n readonly _messages: Map<number, tl.TypeMessage>,\n ) {}\n\n /**\n * Parse a list of dialogs from a TL object\n *\n * @param client Client instance\n * @param dialogs TL object\n * @param limit Maximum number of dialogs to parse\n */\n static parseTlDialogs(dialogs: tl.messages.TypeDialogs | tl.messages.TypePeerDialogs, limit?: number): Dialog[] {\n assertTypeIsNot('parseDialogs', dialogs, 'messages.dialogsNotModified')\n\n const peers = PeersIndex.from(dialogs)\n\n const messages = new Map<number, tl.TypeMessage>()\n dialogs.messages.forEach((msg) => {\n if (!msg.peerId) return\n\n messages.set(getMarkedPeerId(msg.peerId), msg)\n })\n\n const arr = dialogs.dialogs.filter(hasValueAtKey('_', 'dialog')).map((it) => new Dialog(it, peers, messages))\n\n if (limit) {\n return arr.slice(0, limit)\n }\n\n return arr\n }\n\n /**\n * Find pinned dialogs from a list of dialogs\n *\n * @param dialogs Dialogs list\n * @param folder If passed, status of pin will be checked against this folder, and not globally\n */\n static findPinned(dialogs: Dialog[], folder?: tl.RawDialogFilter): Dialog[] {\n if (folder) {\n const index: Record<number, true> = {}\n folder.pinnedPeers.forEach((peer) => {\n index[getMarkedPeerId(peer)] = true\n })\n\n return dialogs.filter((i) => index[i.chat.id])\n }\n\n return dialogs.filter((i) => i.isPinned)\n }\n\n /**\n * Create a filter predicate for the given Folder.\n * Returned predicate can be used in `Array.filter()`\n *\n * @param folder Folder to filter for\n * @param excludePinned Whether to exclude pinned folders\n */\n static filterFolder(folder: tl.TypeDialogFilter, excludePinned = true): (val: Dialog) => boolean {\n if (folder._ === 'dialogFilterDefault') {\n return () => true\n }\n\n const pinned: Record<number, true> = {}\n const include: Record<number, true> = {}\n const exclude: Record<number, true> = {}\n\n // populate indices\n if (excludePinned) {\n folder.pinnedPeers.forEach((peer) => {\n pinned[getMarkedPeerId(peer)] = true\n })\n }\n folder.includePeers.forEach((peer) => {\n include[getMarkedPeerId(peer)] = true\n })\n\n if (folder._ === 'dialogFilterChatlist') {\n return (dialog) => {\n const chatId = dialog.chat.id\n\n if (excludePinned && pinned[chatId]) return false\n\n return include[chatId] || pinned[chatId]\n }\n }\n\n folder.excludePeers.forEach((peer) => {\n exclude[getMarkedPeerId(peer)] = true\n })\n\n return (dialog) => {\n const chat = dialog.chat\n const chatId = dialog.chat.id\n const chatType = dialog.chat.chatType\n\n // manual exclusion/inclusion and pins\n if (include[chatId]) return true\n\n if (exclude[chatId] || (excludePinned && pinned[chatId])) {\n return false\n }\n\n // exclusions based on status\n if (folder.excludeRead && !dialog.isUnread) return false\n if (folder.excludeMuted && dialog.isMuted) return false\n // even though this was handled in getDialogs, this method\n // could be used outside of it, so check again\n if (folder.excludeArchived && dialog.isArchived) return false\n\n // inclusions based on chat type\n if (folder.contacts && chatType === 'private' && chat.isContact) {\n return true\n }\n if (folder.nonContacts && chatType === 'private' && !chat.isContact) {\n return true\n }\n if (folder.groups && (chatType === 'group' || chatType === 'supergroup')) {\n return true\n }\n if (folder.broadcasts && chatType === 'channel') return true\n if (folder.bots && chatType === 'bot') return true\n\n return false\n }\n }\n\n /**\n * Whether this dialog is pinned\n */\n get isPinned(): boolean {\n return this.raw.pinned!\n }\n\n /**\n * Whether this chat was manually marked as unread\n */\n get isManuallyUnread(): boolean {\n return this.raw.unreadMark!\n }\n\n /**\n * Whether this chat should be considered unread\n * (i.e. has more than 1 unread message, or has\n * a \"manually unread\" mark)\n */\n get isUnread(): boolean {\n return this.raw.unreadMark || this.raw.unreadCount > 1\n }\n\n /**\n * Whether this dialog is muted\n */\n get isMuted(): boolean {\n return this.raw.notifySettings.silent!\n }\n\n /**\n * Whether this dialog is archived\n */\n get isArchived(): boolean {\n return this.raw.folderId === 1\n }\n\n /**\n * Chat that this dialog represents\n */\n get chat(): Chat {\n const peer = this.raw.peer\n\n let chat\n\n switch (peer._) {\n case 'peerChannel':\n case 'peerChat':\n chat = this._peers.chat(peer._ === 'peerChannel' ? peer.channelId : peer.chatId)\n break\n default:\n chat = this._peers.user(peer.userId)\n break\n }\n\n return new Chat(chat)\n }\n\n /**\n * The latest message sent in this chat\n */\n get lastMessage(): Message {\n const cid = this.chat.id\n\n if (this._messages.has(cid)) {\n return new Message(this._messages.get(cid)!, this._peers)\n }\n\n throw new MtMessageNotFoundError(cid, 0)\n }\n\n /**\n * ID of the last read outgoing message in this dialog\n */\n get lastReadOutgoing(): number {\n return this.raw.readOutboxMaxId\n }\n\n /**\n * ID of the last read ingoing message in this dialog\n */\n get lastReadIngoing(): number {\n return this.raw.readInboxMaxId\n }\n\n /**\n * ID of the last read message in this dialog\n */\n get lastRead(): number {\n return Math.max(this.raw.readOutboxMaxId, this.raw.readInboxMaxId)\n }\n\n /**\n * Number of unread messages\n */\n get unreadCount(): number {\n return this.raw.unreadCount\n }\n\n /**\n * Number of unread mentions\n */\n get unreadMentionsCount(): number {\n return this.raw.unreadMentionsCount\n }\n\n /**\n * Number of unread reactions\n */\n get unreadReactionsCount(): number {\n return this.raw.unreadReactionsCount\n }\n\n /**\n * Draft message in this dialog\n */\n get draftMessage(): DraftMessage | null {\n if (this.raw.draft?._ === 'draftMessage') {\n return new DraftMessage(this.raw.draft)\n }\n\n return null\n }\n\n /**\n * TTL period of all messages in this dialog\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n}\n\nmemoizeGetters(Dialog, ['chat', 'lastMessage', 'draftMessage'])\nmakeInspectable(Dialog)\n"]}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot, hasValueAtKey } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtMessageNotFoundError } from '../errors.js'\nimport { Chat } from '../peers/chat.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { DraftMessage } from './draft-message.js'\nimport { Message } from './message.js'\n\n/**\n * Type used as an input for a folder in client methods\n *\n * You can pass folder object, id or title\n */\nexport type InputDialogFolder = string | number | tl.RawDialogFilter\n\n/**\n * A dialog.\n *\n * Think of it as something that is listed\n * in Telegram's main window.\n */\nexport class Dialog {\n constructor(\n readonly raw: tl.RawDialog,\n readonly _peers: PeersIndex,\n readonly _messages: Map<number, tl.TypeMessage>,\n ) {}\n\n /**\n * Parse a list of dialogs from a TL object\n *\n * @param client Client instance\n * @param dialogs TL object\n * @param limit Maximum number of dialogs to parse\n */\n static parseTlDialogs(dialogs: tl.messages.TypeDialogs | tl.messages.TypePeerDialogs, limit?: number): Dialog[] {\n assertTypeIsNot('parseDialogs', dialogs, 'messages.dialogsNotModified')\n\n const peers = PeersIndex.from(dialogs)\n\n const messages = new Map<number, tl.TypeMessage>()\n dialogs.messages.forEach((msg) => {\n if (!msg.peerId) return\n\n messages.set(getMarkedPeerId(msg.peerId), msg)\n })\n\n const arr = dialogs.dialogs.filter(hasValueAtKey('_', 'dialog')).map((it) => new Dialog(it, peers, messages))\n\n if (limit) {\n return arr.slice(0, limit)\n }\n\n return arr\n }\n\n /**\n * Find pinned dialogs from a list of dialogs\n *\n * @param dialogs Dialogs list\n * @param folder If passed, status of pin will be checked against this folder, and not globally\n */\n static findPinned(dialogs: Dialog[], folder?: tl.RawDialogFilter): Dialog[] {\n if (folder) {\n const index: Record<number, true> = {}\n folder.pinnedPeers.forEach((peer) => {\n index[getMarkedPeerId(peer)] = true\n })\n\n return dialogs.filter((i) => index[i.chat.id])\n }\n\n return dialogs.filter((i) => i.isPinned)\n }\n\n /**\n * Create a filter predicate for the given Folder.\n * Returned predicate can be used in `Array.filter()`\n *\n * @param folder Folder to filter for\n * @param excludePinned Whether to exclude pinned folders\n */\n static filterFolder(folder: tl.TypeDialogFilter, excludePinned = true): (val: Dialog) => boolean {\n if (folder._ === 'dialogFilterDefault') {\n return () => true\n }\n\n const pinned: Record<number, true> = {}\n const include: Record<number, true> = {}\n const exclude: Record<number, true> = {}\n\n // populate indices\n if (excludePinned) {\n folder.pinnedPeers.forEach((peer) => {\n pinned[getMarkedPeerId(peer)] = true\n })\n }\n folder.includePeers.forEach((peer) => {\n include[getMarkedPeerId(peer)] = true\n })\n\n if (folder._ === 'dialogFilterChatlist') {\n return (dialog) => {\n const chatId = dialog.chat.id\n\n if (excludePinned && pinned[chatId]) return false\n\n return include[chatId] || pinned[chatId]\n }\n }\n\n folder.excludePeers.forEach((peer) => {\n exclude[getMarkedPeerId(peer)] = true\n })\n\n return (dialog) => {\n const chat = dialog.chat\n const chatId = dialog.chat.id\n const chatType = dialog.chat.chatType\n\n // manual exclusion/inclusion and pins\n if (include[chatId]) return true\n\n if (exclude[chatId] || (excludePinned && pinned[chatId])) {\n return false\n }\n\n // exclusions based on status\n if (folder.excludeRead && !dialog.isUnread) return false\n if (folder.excludeMuted && dialog.isMuted) return false\n // even though this was handled in getDialogs, this method\n // could be used outside of it, so check again\n if (folder.excludeArchived && dialog.isArchived) return false\n\n // inclusions based on chat type\n if (folder.contacts && chatType === 'private' && chat.isContact) {\n return true\n }\n if (folder.nonContacts && chatType === 'private' && !chat.isContact) {\n return true\n }\n if (folder.groups && (chatType === 'group' || chatType === 'supergroup')) {\n return true\n }\n if (folder.broadcasts && chatType === 'channel') return true\n if (folder.bots && chatType === 'bot') return true\n\n return false\n }\n }\n\n /**\n * Whether this dialog is pinned\n */\n get isPinned(): boolean {\n return this.raw.pinned!\n }\n\n /**\n * Whether this chat was manually marked as unread\n */\n get isManuallyUnread(): boolean {\n return this.raw.unreadMark!\n }\n\n /**\n * Whether this chat should be considered unread\n * (i.e. has more than 1 unread message, or has\n * a \"manually unread\" mark)\n */\n get isUnread(): boolean {\n return this.raw.unreadMark || this.raw.unreadCount > 1\n }\n\n /**\n * Whether this dialog is muted\n */\n get isMuted(): boolean {\n return this.raw.notifySettings.silent!\n }\n\n /**\n * Whether this dialog is archived\n */\n get isArchived(): boolean {\n return this.raw.folderId === 1\n }\n\n /**\n * Chat that this dialog represents\n */\n get chat(): Chat {\n return Chat._parseFromPeer(this.raw.peer, this._peers)\n }\n\n /**\n * The latest message sent in this chat\n */\n get lastMessage(): Message {\n const cid = this.chat.id\n\n if (this._messages.has(cid)) {\n return new Message(this._messages.get(cid)!, this._peers)\n }\n\n throw new MtMessageNotFoundError(cid, 0)\n }\n\n /**\n * ID of the last read outgoing message in this dialog\n */\n get lastReadOutgoing(): number {\n return this.raw.readOutboxMaxId\n }\n\n /**\n * ID of the last read ingoing message in this dialog\n */\n get lastReadIngoing(): number {\n return this.raw.readInboxMaxId\n }\n\n /**\n * ID of the last read message in this dialog\n */\n get lastRead(): number {\n return Math.max(this.raw.readOutboxMaxId, this.raw.readInboxMaxId)\n }\n\n /**\n * Number of unread messages\n */\n get unreadCount(): number {\n return this.raw.unreadCount\n }\n\n /**\n * Number of unread mentions\n */\n get unreadMentionsCount(): number {\n return this.raw.unreadMentionsCount\n }\n\n /**\n * Number of unread reactions\n */\n get unreadReactionsCount(): number {\n return this.raw.unreadReactionsCount\n }\n\n /**\n * Draft message in this dialog\n */\n get draftMessage(): DraftMessage | null {\n if (this.raw.draft?._ === 'draftMessage') {\n return new DraftMessage(this.raw.draft)\n }\n\n return null\n }\n\n /**\n * TTL period of all messages in this dialog\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n}\n\nmemoizeGetters(Dialog, ['chat', 'lastMessage', 'draftMessage'])\nmakeInspectable(Dialog)\n"]}
@@ -8,6 +8,7 @@ const message_entity_js_1 = require("./message-entity.js");
8
8
  * A draft message
9
9
  */
10
10
  class DraftMessage {
11
+ raw;
11
12
  constructor(raw) {
12
13
  this.raw = raw;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"draft-message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/draft-message.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AACtD,uDAAuD;AACvD,2DAAmD;AAEnD;;GAEG;AACH,MAAa,YAAY;IACrB,YAAqB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEhD;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,qBAAqB;YAAE,OAAO,IAAI,CAAA;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAU,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,MAAM,QAAQ,GAAG,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;YAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,iCAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;aAC1D;SACJ;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AA/CD,oCA+CC;AAED,IAAA,2BAAc,EAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1C,IAAA,0BAAe,EAAC,YAAY,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from './message-entity.js'\n\n/**\n * A draft message\n */\nexport class DraftMessage {\n constructor(readonly raw: tl.RawDraftMessage) {}\n\n /**\n * Text of the draft message\n */\n get text(): string {\n return this.raw.message\n }\n\n /**\n * Information about replies/quotes in this message\n */\n get replyToMessage(): tl.RawInputReplyToMessage | null {\n if (this.raw.replyTo?._ !== 'inputReplyToMessage') return null\n\n return this.raw.replyTo\n }\n\n /**\n * Date of the last time this draft was updated\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether no webpage preview will be generated\n */\n get disableWebPreview(): boolean {\n return this.raw.noWebpage!\n }\n\n /**\n * Message text entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities = []\n\n if (this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n}\n\nmemoizeGetters(DraftMessage, ['entities'])\nmakeInspectable(DraftMessage)\n"]}
1
+ {"version":3,"file":"draft-message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/draft-message.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AACtD,uDAAuD;AACvD,2DAAmD;AAEnD;;GAEG;AACH,MAAa,YAAY;IACA;IAArB,YAAqB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEhD;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,qBAAqB;YAAE,OAAO,IAAI,CAAA;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAU,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,MAAM,QAAQ,GAAG,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,iCAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3D,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AA/CD,oCA+CC;AAED,IAAA,2BAAc,EAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1C,IAAA,0BAAe,EAAC,YAAY,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from './message-entity.js'\n\n/**\n * A draft message\n */\nexport class DraftMessage {\n constructor(readonly raw: tl.RawDraftMessage) {}\n\n /**\n * Text of the draft message\n */\n get text(): string {\n return this.raw.message\n }\n\n /**\n * Information about replies/quotes in this message\n */\n get replyToMessage(): tl.RawInputReplyToMessage | null {\n if (this.raw.replyTo?._ !== 'inputReplyToMessage') return null\n\n return this.raw.replyTo\n }\n\n /**\n * Date of the last time this draft was updated\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether no webpage preview will be generated\n */\n get disableWebPreview(): boolean {\n return this.raw.noWebpage!\n }\n\n /**\n * Message text entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities = []\n\n if (this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n}\n\nmemoizeGetters(DraftMessage, ['entities'])\nmakeInspectable(DraftMessage)\n"]}
@@ -13,3 +13,8 @@ export type InputMessageId = {
13
13
  };
14
14
  /** Remove {@link InputMessageId} type from the given type */
15
15
  export type OmitInputMessageId<T> = Omit<T, 'chatId' | 'message'>;
16
+ /** @internal */
17
+ export declare function normalizeInputMessageId(id: InputMessageId): {
18
+ chatId: InputPeerLike;
19
+ message: number;
20
+ };
@@ -2,6 +2,7 @@ import { tl } from '@mtcute/tl';
2
2
  import { CallDiscardReason } from '../calls/index.js';
3
3
  import { Photo } from '../media/photo.js';
4
4
  import { Peer } from '../peers/peer.js';
5
+ import type { Message } from './message.js';
5
6
  /** Group was created */
6
7
  export interface ActionChatCreated {
7
8
  readonly type: 'chat_created';
@@ -280,7 +281,21 @@ export interface ActionPhotoSuggested {
280
281
  /** Photo that was suggested */
281
282
  photo: Photo;
282
283
  }
283
- /** A peer was chosen by the user after clicking on a RequestPeer button */
284
+ /**
285
+ * A peer was chosen by the user after clicking on a RequestPeer button.
286
+ * The user-side version of {@link ActionPeerChosen}
287
+ */
288
+ export interface ActionPeerSent {
289
+ readonly type: 'peer_sent';
290
+ /** ID of the button passed earlier by the bot */
291
+ buttonId: number;
292
+ /** Brief information about the chosen peers */
293
+ peers: tl.TypeRequestedPeer[];
294
+ }
295
+ /**
296
+ * A peer was chosen by the user after clicking on a RequestPeer button
297
+ * The bot-side version of {@link ActionPeerSent}
298
+ */
284
299
  export interface ActionPeerChosen {
285
300
  readonly type: 'peer_chosen';
286
301
  /** ID of the button passed earlier by the bot */
@@ -329,4 +344,6 @@ export interface ActionBoostApply {
329
344
  /** Number of boosts applied */
330
345
  count: number;
331
346
  }
332
- export type MessageAction = ActionChatCreated | ActionChannelCreated | ActionChatMigrateTo | ActionChannelMigrateFrom | ActionMessagePinned | ActionHistoryCleared | ActionGameScore | ActionContactJoined | ActionTitleChanged | ActionPhotoChanged | ActionPhotoDeleted | ActionUsersAdded | ActionUserLeft | ActionUserRemoved | ActionUserJoinedLink | ActionPaymentReceived | ActionPaymentSent | ActionCall | ActionScreenshotTaken | ActionBotAllowed | ActionGeoProximity | ActionGroupCallStarted | ActionGroupCallEnded | ActionGroupCallScheduled | ActionGroupInvite | ActionTtlChanged | ActionTopicCreated | ActionTopicEdited | ActionCustom | ActionThemeChanged | ActionUserJoinedApproved | ActionWebviewDataSent | ActionWebviewDataReceived | ActionPremiumGifted | ActionPhotoSuggested | ActionPeerChosen | ActionWallpaperChanged | ActionGiftCode | ActionGiveawayStarted | ActionGiveawayEnded | ActionBoostApply | null;
347
+ export type MessageAction = ActionChatCreated | ActionChannelCreated | ActionChatMigrateTo | ActionChannelMigrateFrom | ActionMessagePinned | ActionHistoryCleared | ActionGameScore | ActionContactJoined | ActionTitleChanged | ActionPhotoChanged | ActionPhotoDeleted | ActionUsersAdded | ActionUserLeft | ActionUserRemoved | ActionUserJoinedLink | ActionPaymentReceived | ActionPaymentSent | ActionCall | ActionScreenshotTaken | ActionBotAllowed | ActionGeoProximity | ActionGroupCallStarted | ActionGroupCallEnded | ActionGroupCallScheduled | ActionGroupInvite | ActionTtlChanged | ActionTopicCreated | ActionTopicEdited | ActionCustom | ActionThemeChanged | ActionUserJoinedApproved | ActionWebviewDataSent | ActionWebviewDataReceived | ActionPremiumGifted | ActionPhotoSuggested | ActionPeerSent | ActionPeerChosen | ActionWallpaperChanged | ActionGiftCode | ActionGiveawayStarted | ActionGiveawayEnded | ActionBoostApply | null;
348
+ /** @internal */
349
+ export declare function _messageActionFromTl(this: Message, act: tl.TypeMessageAction): MessageAction;
@@ -214,6 +214,12 @@ function _messageActionFromTl(act) {
214
214
  type: 'photo_suggested',
215
215
  photo: new photo_js_1.Photo(act.photo),
216
216
  };
217
+ case 'messageActionRequestedPeerSentMe':
218
+ return {
219
+ type: 'peer_sent',
220
+ buttonId: act.buttonId,
221
+ peers: act.peers,
222
+ };
217
223
  case 'messageActionRequestedPeer':
218
224
  return {
219
225
  type: 'peer_chosen',