@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
@@ -0,0 +1,103 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { Photo } from '../media/photo.js';
3
+ import { StickerSet } from '../misc/sticker-set.js';
4
+ import { BusinessAccount } from '../premium/business-account.js';
5
+ import { Chat } from './chat.js';
6
+ import { ChatInviteLink } from './chat-invite-link.js';
7
+ import { ChatLocation } from './chat-location.js';
8
+ /**
9
+ * Complete information about a particular chat.
10
+ */
11
+ export declare class FullChat extends Chat {
12
+ readonly fullPeer: tl.TypeUserFull | tl.TypeChatFull;
13
+ constructor(peer: tl.TypeUser | tl.TypeChat, fullPeer: tl.TypeUserFull | tl.TypeChatFull);
14
+ /** @internal */
15
+ static _parse(full: tl.messages.RawChatFull | tl.users.TypeUserFull): FullChat;
16
+ /**
17
+ * Whether this chat (user) has restricted sending them voice/video messages.
18
+ */
19
+ get hasBlockedVoices(): boolean;
20
+ /**
21
+ * Full information about this chat's photo, if any.
22
+ *
23
+ * Unlike {@link Chat.photo}, this field contains additional information
24
+ * about the photo, such as its date, more sizes, and is the only
25
+ * way to get the animated profile photo.
26
+ *
27
+ * This field takes into account any personal/fallback photo
28
+ * that the user may have set
29
+ */
30
+ get fullPhoto(): Photo | null;
31
+ /**
32
+ * A custom photo (set by the current user) that should be displayed
33
+ * instead of the actual chat photo.
34
+ *
35
+ * Currently only available for users.
36
+ */
37
+ get personalPhoto(): Photo | null;
38
+ /**
39
+ * Actual profile photo of the user, bypassing the custom one.
40
+ */
41
+ get realPhoto(): Photo | null;
42
+ /**
43
+ * A photo that the user has set to be shown
44
+ * in case their actual profile photo is not available
45
+ * due to privacy settings.
46
+ *
47
+ * Currently only available for users.
48
+ */
49
+ get publicPhoto(): Photo | null;
50
+ /**
51
+ * Bio of the other party in a private chat, or description of a
52
+ * group, supergroup or channel.
53
+ */
54
+ get bio(): string | null;
55
+ /**
56
+ * Chat's primary invite link, for groups, supergroups and channels.
57
+ */
58
+ get inviteLink(): ChatInviteLink | null;
59
+ /**
60
+ * For supergroups, information about the group sticker set.
61
+ */
62
+ get stickerSet(): StickerSet | null;
63
+ /**
64
+ * For supergroups, information about the group emoji set.
65
+ */
66
+ get emojiSet(): StickerSet | null;
67
+ /**
68
+ * Whether the group sticker set can be changed by you.
69
+ */
70
+ get canSetStickerSet(): boolean | null;
71
+ /**
72
+ * Number of boosts applied by the current user to this chat.
73
+ */
74
+ get boostsApplied(): number;
75
+ /**
76
+ * Number of boosts required for the user to be unrestricted in this chat.
77
+ */
78
+ get boostsForUnrestrict(): number;
79
+ /**
80
+ * Chat members count, for groups, supergroups and channels only.
81
+ */
82
+ get membersCount(): number | null;
83
+ /**
84
+ * Location of the chat.
85
+ */
86
+ get location(): ChatLocation | null;
87
+ private _linkedChat?;
88
+ /**
89
+ * Information about a linked chat:
90
+ * - for channels: the discussion group
91
+ * - for supergroups: the linked channel
92
+ * - for users: the personal channel
93
+ */
94
+ get linkedChat(): Chat | null;
95
+ /**
96
+ * TTL of all messages in this chat, in seconds
97
+ */
98
+ get ttlPeriod(): number | null;
99
+ /**
100
+ * If this is a business account, information about the business.
101
+ */
102
+ get business(): BusinessAccount | null;
103
+ }
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FullChat = void 0;
4
+ const errors_js_1 = require("../../../types/errors.js");
5
+ const inspectable_js_1 = require("../../utils/inspectable.js");
6
+ const memoize_js_1 = require("../../utils/memoize.js");
7
+ const photo_js_1 = require("../media/photo.js");
8
+ const sticker_set_js_1 = require("../misc/sticker-set.js");
9
+ const business_account_js_1 = require("../premium/business-account.js");
10
+ const chat_js_1 = require("./chat.js");
11
+ const chat_invite_link_js_1 = require("./chat-invite-link.js");
12
+ const chat_location_js_1 = require("./chat-location.js");
13
+ const peers_index_js_1 = require("./peers-index.js");
14
+ /**
15
+ * Complete information about a particular chat.
16
+ */
17
+ class FullChat extends chat_js_1.Chat {
18
+ fullPeer;
19
+ constructor(peer, fullPeer) {
20
+ super(peer);
21
+ this.fullPeer = fullPeer;
22
+ }
23
+ /** @internal */
24
+ static _parse(full) {
25
+ const peers = peers_index_js_1.PeersIndex.from(full);
26
+ if (full._ === 'users.userFull') {
27
+ const { fullUser } = full;
28
+ const user = peers.user(full.fullUser.id);
29
+ if (!user || user._ === 'userEmpty') {
30
+ throw new errors_js_1.MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined');
31
+ }
32
+ const ret = new FullChat(user, fullUser);
33
+ if (fullUser.personalChannelId) {
34
+ ret._linkedChat = new chat_js_1.Chat(peers.chat(fullUser.personalChannelId));
35
+ }
36
+ return ret;
37
+ }
38
+ const { fullChat } = full;
39
+ const ret = new FullChat(peers.chat(fullChat.id), fullChat);
40
+ if (fullChat._ === 'channelFull' && fullChat.linkedChatId) {
41
+ ret._linkedChat = new chat_js_1.Chat(peers.chat(fullChat.linkedChatId));
42
+ }
43
+ return ret;
44
+ }
45
+ /**
46
+ * Whether this chat (user) has restricted sending them voice/video messages.
47
+ */
48
+ get hasBlockedVoices() {
49
+ return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden;
50
+ }
51
+ /**
52
+ * Full information about this chat's photo, if any.
53
+ *
54
+ * Unlike {@link Chat.photo}, this field contains additional information
55
+ * about the photo, such as its date, more sizes, and is the only
56
+ * way to get the animated profile photo.
57
+ *
58
+ * This field takes into account any personal/fallback photo
59
+ * that the user may have set
60
+ */
61
+ get fullPhoto() {
62
+ if (!this.fullPeer)
63
+ return null;
64
+ let photo = undefined;
65
+ switch (this.fullPeer._) {
66
+ case 'userFull':
67
+ photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto;
68
+ break;
69
+ case 'chatFull':
70
+ case 'channelFull':
71
+ photo = this.fullPeer.chatPhoto;
72
+ }
73
+ if (photo?._ !== 'photo')
74
+ return null;
75
+ return new photo_js_1.Photo(photo);
76
+ }
77
+ /**
78
+ * A custom photo (set by the current user) that should be displayed
79
+ * instead of the actual chat photo.
80
+ *
81
+ * Currently only available for users.
82
+ */
83
+ get personalPhoto() {
84
+ if (!this.fullPeer || this.fullPeer._ !== 'userFull')
85
+ return null;
86
+ if (this.fullPeer.personalPhoto?._ !== 'photo')
87
+ return null;
88
+ return new photo_js_1.Photo(this.fullPeer.personalPhoto);
89
+ }
90
+ /**
91
+ * Actual profile photo of the user, bypassing the custom one.
92
+ */
93
+ get realPhoto() {
94
+ if (!this.fullPeer)
95
+ return null;
96
+ if (this.fullPeer._ !== 'userFull')
97
+ return this.fullPhoto;
98
+ if (this.fullPeer.personalPhoto?._ !== 'photo')
99
+ return null;
100
+ return new photo_js_1.Photo(this.fullPeer.personalPhoto);
101
+ }
102
+ /**
103
+ * A photo that the user has set to be shown
104
+ * in case their actual profile photo is not available
105
+ * due to privacy settings.
106
+ *
107
+ * Currently only available for users.
108
+ */
109
+ get publicPhoto() {
110
+ if (!this.fullPeer || this.fullPeer._ !== 'userFull')
111
+ return null;
112
+ if (this.fullPeer.fallbackPhoto?._ !== 'photo')
113
+ return null;
114
+ return new photo_js_1.Photo(this.fullPeer.fallbackPhoto);
115
+ }
116
+ /**
117
+ * Bio of the other party in a private chat, or description of a
118
+ * group, supergroup or channel.
119
+ */
120
+ get bio() {
121
+ return this.fullPeer?.about ?? null;
122
+ }
123
+ /**
124
+ * Chat's primary invite link, for groups, supergroups and channels.
125
+ */
126
+ get inviteLink() {
127
+ if (this.fullPeer && this.fullPeer._ !== 'userFull') {
128
+ switch (this.fullPeer.exportedInvite?._) {
129
+ case 'chatInvitePublicJoinRequests':
130
+ return null;
131
+ case 'chatInviteExported':
132
+ return new chat_invite_link_js_1.ChatInviteLink(this.fullPeer.exportedInvite);
133
+ }
134
+ }
135
+ return null;
136
+ }
137
+ /**
138
+ * For supergroups, information about the group sticker set.
139
+ */
140
+ get stickerSet() {
141
+ if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.stickerset)
142
+ return null;
143
+ return new sticker_set_js_1.StickerSet(this.fullPeer.stickerset);
144
+ }
145
+ /**
146
+ * For supergroups, information about the group emoji set.
147
+ */
148
+ get emojiSet() {
149
+ if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.emojiset)
150
+ return null;
151
+ return new sticker_set_js_1.StickerSet(this.fullPeer.emojiset);
152
+ }
153
+ /**
154
+ * Whether the group sticker set can be changed by you.
155
+ */
156
+ get canSetStickerSet() {
157
+ return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null;
158
+ }
159
+ /**
160
+ * Number of boosts applied by the current user to this chat.
161
+ */
162
+ get boostsApplied() {
163
+ if (!this.fullPeer || this.fullPeer._ !== 'channelFull')
164
+ return 0;
165
+ return this.fullPeer?.boostsApplied ?? 0;
166
+ }
167
+ /**
168
+ * Number of boosts required for the user to be unrestricted in this chat.
169
+ */
170
+ get boostsForUnrestrict() {
171
+ if (!this.fullPeer || this.fullPeer._ !== 'channelFull')
172
+ return 0;
173
+ return this.fullPeer?.boostsUnrestrict ?? 0;
174
+ }
175
+ /**
176
+ * Chat members count, for groups, supergroups and channels only.
177
+ */
178
+ get membersCount() {
179
+ switch (this.fullPeer._) {
180
+ case 'userFull':
181
+ return null;
182
+ case 'chatFull':
183
+ if (this.fullPeer.participants._ !== 'chatParticipants') {
184
+ return null;
185
+ }
186
+ return this.fullPeer.participants.participants.length;
187
+ case 'channelFull':
188
+ return this.fullPeer.participantsCount ?? null;
189
+ }
190
+ }
191
+ /**
192
+ * Location of the chat.
193
+ */
194
+ get location() {
195
+ if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {
196
+ return null;
197
+ }
198
+ return new chat_location_js_1.ChatLocation(this.fullPeer.location);
199
+ }
200
+ _linkedChat;
201
+ /**
202
+ * Information about a linked chat:
203
+ * - for channels: the discussion group
204
+ * - for supergroups: the linked channel
205
+ * - for users: the personal channel
206
+ */
207
+ get linkedChat() {
208
+ return this._linkedChat ?? null;
209
+ }
210
+ /**
211
+ * TTL of all messages in this chat, in seconds
212
+ */
213
+ get ttlPeriod() {
214
+ return this.fullPeer?.ttlPeriod ?? null;
215
+ }
216
+ /**
217
+ * If this is a business account, information about the business.
218
+ */
219
+ get business() {
220
+ if (!this.fullPeer || this.fullPeer._ !== 'userFull')
221
+ return null;
222
+ return new business_account_js_1.BusinessAccount(this.fullPeer);
223
+ }
224
+ }
225
+ exports.FullChat = FullChat;
226
+ (0, memoize_js_1.memoizeGetters)(FullChat, [
227
+ 'fullPhoto',
228
+ 'personalPhoto',
229
+ 'realPhoto',
230
+ 'publicPhoto',
231
+ 'location',
232
+ 'stickerSet',
233
+ 'emojiSet',
234
+ 'business',
235
+ ]);
236
+ (0, inspectable_js_1.makeInspectable)(FullChat);
237
+ //# sourceMappingURL=full-chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/full-chat.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Photo } from '../media/photo.js'\nimport { StickerSet } from '../misc/sticker-set.js'\nimport { BusinessAccount } from '../premium/business-account.js'\nimport { Chat } from './chat.js'\nimport { ChatInviteLink } from './chat-invite-link.js'\nimport { ChatLocation } from './chat-location.js'\nimport { PeersIndex } from './peers-index.js'\n\n/**\n * Complete information about a particular chat.\n */\nexport class FullChat extends Chat {\n constructor(\n peer: tl.TypeUser | tl.TypeChat,\n readonly fullPeer: tl.TypeUserFull | tl.TypeChatFull,\n ) {\n super(peer)\n }\n\n /** @internal */\n static _parse(full: tl.messages.RawChatFull | tl.users.TypeUserFull): FullChat {\n const peers = PeersIndex.from(full)\n\n if (full._ === 'users.userFull') {\n const { fullUser } = full\n const user = peers.user(full.fullUser.id)\n\n if (!user || user._ === 'userEmpty') {\n throw new MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined')\n }\n\n const ret = new FullChat(user, fullUser)\n\n if (fullUser.personalChannelId) {\n ret._linkedChat = new Chat(peers.chat(fullUser.personalChannelId))\n }\n\n return ret\n }\n\n const { fullChat } = full\n\n const ret = new FullChat(peers.chat(fullChat.id), fullChat)\n\n if (fullChat._ === 'channelFull' && fullChat.linkedChatId) {\n ret._linkedChat = new Chat(peers.chat(fullChat.linkedChatId))\n }\n\n return ret\n }\n\n /**\n * Whether this chat (user) has restricted sending them voice/video messages.\n */\n get hasBlockedVoices(): boolean {\n return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden!\n }\n\n /**\n * Full information about this chat's photo, if any.\n *\n * Unlike {@link Chat.photo}, this field contains additional information\n * about the photo, such as its date, more sizes, and is the only\n * way to get the animated profile photo.\n *\n * This field takes into account any personal/fallback photo\n * that the user may have set\n */\n get fullPhoto(): Photo | null {\n if (!this.fullPeer) return null\n\n let photo: tl.TypePhoto | undefined = undefined\n\n switch (this.fullPeer._) {\n case 'userFull':\n photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto\n break\n case 'chatFull':\n case 'channelFull':\n photo = this.fullPeer.chatPhoto\n }\n\n if (photo?._ !== 'photo') return null\n\n return new Photo(photo)\n }\n\n /**\n * A custom photo (set by the current user) that should be displayed\n * instead of the actual chat photo.\n *\n * Currently only available for users.\n */\n get personalPhoto(): Photo | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n if (this.fullPeer.personalPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.personalPhoto)\n }\n\n /**\n * Actual profile photo of the user, bypassing the custom one.\n */\n get realPhoto(): Photo | null {\n if (!this.fullPeer) return null\n if (this.fullPeer._ !== 'userFull') return this.fullPhoto\n if (this.fullPeer.personalPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.personalPhoto)\n }\n\n /**\n * A photo that the user has set to be shown\n * in case their actual profile photo is not available\n * due to privacy settings.\n *\n * Currently only available for users.\n */\n get publicPhoto(): Photo | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n if (this.fullPeer.fallbackPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.fallbackPhoto)\n }\n\n /**\n * Bio of the other party in a private chat, or description of a\n * group, supergroup or channel.\n */\n get bio(): string | null {\n return this.fullPeer?.about ?? null\n }\n\n /**\n * Chat's primary invite link, for groups, supergroups and channels.\n */\n get inviteLink(): ChatInviteLink | null {\n if (this.fullPeer && this.fullPeer._ !== 'userFull') {\n switch (this.fullPeer.exportedInvite?._) {\n case 'chatInvitePublicJoinRequests':\n return null\n case 'chatInviteExported':\n return new ChatInviteLink(this.fullPeer.exportedInvite)\n }\n }\n\n return null\n }\n\n /**\n * For supergroups, information about the group sticker set.\n */\n get stickerSet(): StickerSet | null {\n if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.stickerset) return null\n\n return new StickerSet(this.fullPeer.stickerset)\n }\n\n /**\n * For supergroups, information about the group emoji set.\n */\n get emojiSet(): StickerSet | null {\n if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.emojiset) return null\n\n return new StickerSet(this.fullPeer.emojiset)\n }\n\n /**\n * Whether the group sticker set can be changed by you.\n */\n get canSetStickerSet(): boolean | null {\n return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null\n }\n\n /**\n * Number of boosts applied by the current user to this chat.\n */\n get boostsApplied(): number {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull') return 0\n\n return this.fullPeer?.boostsApplied ?? 0\n }\n\n /**\n * Number of boosts required for the user to be unrestricted in this chat.\n */\n get boostsForUnrestrict(): number {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull') return 0\n\n return this.fullPeer?.boostsUnrestrict ?? 0\n }\n\n /**\n * Chat members count, for groups, supergroups and channels only.\n */\n get membersCount(): number | null {\n switch (this.fullPeer._) {\n case 'userFull':\n return null\n case 'chatFull':\n if (this.fullPeer.participants._ !== 'chatParticipants') {\n return null\n }\n\n return this.fullPeer.participants.participants.length\n case 'channelFull':\n return this.fullPeer.participantsCount ?? null\n }\n }\n\n /**\n * Location of the chat.\n */\n get location(): ChatLocation | null {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {\n return null\n }\n\n return new ChatLocation(this.fullPeer.location)\n }\n\n private _linkedChat?: Chat\n /**\n * Information about a linked chat:\n * - for channels: the discussion group\n * - for supergroups: the linked channel\n * - for users: the personal channel\n */\n get linkedChat(): Chat | null {\n return this._linkedChat ?? null\n }\n\n /**\n * TTL of all messages in this chat, in seconds\n */\n get ttlPeriod(): number | null {\n return this.fullPeer?.ttlPeriod ?? null\n }\n\n /**\n * If this is a business account, information about the business.\n */\n get business(): BusinessAccount | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n\n return new BusinessAccount(this.fullPeer)\n }\n}\n\nmemoizeGetters(FullChat, [\n 'fullPhoto',\n 'personalPhoto',\n 'realPhoto',\n 'publicPhoto',\n 'location',\n 'stickerSet',\n 'emojiSet',\n 'business',\n])\nmakeInspectable(FullChat)\n"]}
@@ -8,6 +8,7 @@ export * from './chat-permissions.js';
8
8
  export * from './chat-photo.js';
9
9
  export * from './chat-preview.js';
10
10
  export * from './forum-topic.js';
11
+ export * from './full-chat.js';
11
12
  export * from './peer.js';
12
13
  export * from './peers-index.js';
13
14
  export * from './typing-status.js';
@@ -24,6 +24,7 @@ __exportStar(require("./chat-permissions.js"), exports);
24
24
  __exportStar(require("./chat-photo.js"), exports);
25
25
  __exportStar(require("./chat-preview.js"), exports);
26
26
  __exportStar(require("./forum-topic.js"), exports);
27
+ __exportStar(require("./full-chat.js"), exports);
27
28
  __exportStar(require("./peer.js"), exports);
28
29
  __exportStar(require("./peers-index.js"), exports);
29
30
  __exportStar(require("./typing-status.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,wDAAqC;AACrC,wDAAqC;AACrC,+DAA4C;AAC5C,qDAAkC;AAClC,mDAAgC;AAChC,wDAAqC;AACrC,kDAA+B;AAC/B,oDAAiC;AACjC,mDAAgC;AAChC,4CAAyB;AACzB,mDAAgC;AAChC,qDAAkC;AAClC,4CAAyB","sourcesContent":["export * from './chat.js'\nexport * from './chat-event/index.js'\nexport * from './chat-invite-link.js'\nexport * from './chat-invite-link-member.js'\nexport * from './chat-location.js'\nexport * from './chat-member.js'\nexport * from './chat-permissions.js'\nexport * from './chat-photo.js'\nexport * from './chat-preview.js'\nexport * from './forum-topic.js'\nexport * from './peer.js'\nexport * from './peers-index.js'\nexport * from './typing-status.js'\nexport * from './user.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,wDAAqC;AACrC,wDAAqC;AACrC,+DAA4C;AAC5C,qDAAkC;AAClC,mDAAgC;AAChC,wDAAqC;AACrC,kDAA+B;AAC/B,oDAAiC;AACjC,mDAAgC;AAChC,iDAA8B;AAC9B,4CAAyB;AACzB,mDAAgC;AAChC,qDAAkC;AAClC,4CAAyB","sourcesContent":["export * from './chat.js'\nexport * from './chat-event/index.js'\nexport * from './chat-invite-link.js'\nexport * from './chat-invite-link-member.js'\nexport * from './chat-location.js'\nexport * from './chat-member.js'\nexport * from './chat-permissions.js'\nexport * from './chat-photo.js'\nexport * from './chat-preview.js'\nexport * from './forum-topic.js'\nexport * from './full-chat.js'\nexport * from './peer.js'\nexport * from './peers-index.js'\nexport * from './typing-status.js'\nexport * from './user.js'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/peer.ts"],"names":[],"mappings":";;;AAEA,uCAAgC;AAEhC,uCAAgC;AAsDhC;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAiB,EAAE,KAAiB;IAC1D,QAAQ,IAAI,CAAC,CAAC,EAAE;QACZ,KAAK,UAAU;YACX,OAAO,IAAI,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5C,KAAK,UAAU;YACX,OAAO,IAAI,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5C,KAAK,aAAa;YACd,OAAO,IAAI,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;KAClD;AACL,CAAC;AATD,8BASC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { Chat } from './chat.js'\nimport { PeersIndex } from './peers-index.js'\nimport { User } from './user.js'\n\n/**\n * More extensive peer types, that differentiate between\n * users and bots, channels and supergroups.\n */\nexport type PeerType = 'user' | 'bot' | 'group' | 'channel' | 'supergroup'\n\n/**\n * Type that can be used as an input peer to most of the high-level methods. Can be:\n * - `number`, representing peer's marked ID*\n * - `string`, representing peer's username (without preceding `@`)\n * - `string`, representing user's phone number\n * - `\"me\"` and `\"self\"` which will be replaced with the current user/bot\n * - Any object with `inputPeer: tl.TypeInputPeer` property\n * - Raw TL object\n *\n * > * Telegram has moved to int64 IDs. Though, Levin [has confirmed](https://t.me/tdlibchat/25071)\n * > that new IDs *will* still fit into int53, meaning JS integers are fine.\n */\nexport type InputPeerLike =\n | string\n | number\n | tl.TypePeer\n | tl.TypeInputPeer\n | tl.TypeInputUser\n | tl.TypeInputChannel\n | { inputPeer: tl.TypeInputPeer }\n\n/**\n * Peer (a user or a chat)\n *\n * Type of the peer can be determined by the `.type` property\n */\nexport type Peer = User | Chat\n\n/**\n * An object representing an anonymous sender (e.g. for users that have forwards hidden)\n */\nexport interface AnonymousSender {\n readonly type: 'anonymous'\n\n /**\n * Name of the anonymous sender that should be displayed\n */\n readonly displayName: string\n}\n\n/**\n * Object representing a sender of a forwarded message,\n * which can be either a {@link Peer} or an {@link AnonymousSender}\n */\nexport type PeerSender = Peer | AnonymousSender\n\n/**\n * Given a `tl.TypePeer`, return a {@link Peer} object ({@link User} or {@link Chat})\n */\nexport function parsePeer(peer: tl.TypePeer, index: PeersIndex): Peer {\n switch (peer._) {\n case 'peerUser':\n return new User(index.user(peer.userId))\n case 'peerChat':\n return new Chat(index.chat(peer.chatId))\n case 'peerChannel':\n return new Chat(index.chat(peer.channelId))\n }\n}\n"]}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/peer.ts"],"names":[],"mappings":";;;AAEA,uCAAgC;AAEhC,uCAAgC;AAsDhC;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAiB,EAAE,KAAiB;IAC1D,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;QACb,KAAK,UAAU;YACX,OAAO,IAAI,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5C,KAAK,UAAU;YACX,OAAO,IAAI,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5C,KAAK,aAAa;YACd,OAAO,IAAI,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IACnD,CAAC;AACL,CAAC;AATD,8BASC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { Chat } from './chat.js'\nimport { PeersIndex } from './peers-index.js'\nimport { User } from './user.js'\n\n/**\n * More extensive peer types, that differentiate between\n * users and bots, channels and supergroups.\n */\nexport type PeerType = 'user' | 'bot' | 'group' | 'channel' | 'supergroup'\n\n/**\n * Type that can be used as an input peer to most of the high-level methods. Can be:\n * - `number`, representing peer's marked ID*\n * - `string`, representing peer's username (without preceding `@`)\n * - `string`, representing user's phone number\n * - `\"me\"` and `\"self\"` which will be replaced with the current user/bot\n * - Any object with `inputPeer: tl.TypeInputPeer` property\n * - Raw TL object\n *\n * > * Telegram has moved to int64 IDs. Though, Levin [has confirmed](https://t.me/tdlibchat/25071)\n * > that new IDs *will* still fit into int53, meaning JS integers are fine.\n */\nexport type InputPeerLike =\n | string\n | number\n | tl.TypePeer\n | tl.TypeInputPeer\n | tl.TypeInputUser\n | tl.TypeInputChannel\n | { inputPeer: tl.TypeInputPeer }\n\n/**\n * Peer (a user or a chat)\n *\n * Type of the peer can be determined by the `.type` property\n */\nexport type Peer = User | Chat\n\n/**\n * An object representing an anonymous sender (e.g. for users that have forwards hidden)\n */\nexport interface AnonymousSender {\n readonly type: 'anonymous'\n\n /**\n * Name of the anonymous sender that should be displayed\n */\n readonly displayName: string\n}\n\n/**\n * Object representing a sender of a forwarded message,\n * which can be either a {@link Peer} or an {@link AnonymousSender}\n */\nexport type PeerSender = Peer | AnonymousSender\n\n/**\n * Given a `tl.TypePeer`, return a {@link Peer} object ({@link User} or {@link Chat})\n */\nexport function parsePeer(peer: tl.TypePeer, index: PeersIndex): Peer {\n switch (peer._) {\n case 'peerUser':\n return new User(index.user(peer.userId))\n case 'peerChat':\n return new Chat(index.chat(peer.chatId))\n case 'peerChannel':\n return new Chat(index.chat(peer.channelId))\n }\n}\n"]}
@@ -4,11 +4,13 @@ exports.PeersIndex = void 0;
4
4
  const errors_js_1 = require("../../../types/errors.js");
5
5
  const ERROR_MSG = 'Given peer is not available in this index. This is most likely an internal library error.';
6
6
  class PeersIndex {
7
+ users;
8
+ chats;
7
9
  constructor(users = new Map(), chats = new Map()) {
8
10
  this.users = users;
9
11
  this.chats = chats;
10
- this.hasMin = false;
11
12
  }
13
+ hasMin = false;
12
14
  static from(obj) {
13
15
  const index = new PeersIndex();
14
16
  obj.users?.forEach((user) => {
@@ -1 +1 @@
1
- {"version":3,"file":"peers-index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/peers-index.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAE1D,MAAM,SAAS,GAAG,2FAA2F,CAAA;AAE7G,MAAa,UAAU;IACnB,YACa,QAAkC,IAAI,GAAG,EAAE,EAC3C,QAAkC,IAAI,GAAG,EAAE;QAD3C,UAAK,GAAL,KAAK,CAAsC;QAC3C,UAAK,GAAL,KAAK,CAAsC;QAGxD,WAAM,GAAG,KAAK,CAAA;IAFX,CAAC;IAIJ,MAAM,CAAC,IAAI,CAAC,GAAqD;QAC7D,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAA;QAE9B,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE9B,IAAK,IAA8C,CAAC,GAAG,EAAE;gBACrD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;aACtB;QACL,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE9B,IAEQ,IAIH,CAAC,GAAG,EACP;gBACE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;aACtB;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,EAAU;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,IAAI,CAAC,CAAC,EAAE;YACJ,MAAM,IAAI,2BAAe,CAAC,SAAS,CAAC,CAAA;SACvC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,EAAU;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,IAAI,CAAC,CAAC,EAAE;YACJ,MAAM,IAAI,2BAAe,CAAC,SAAS,CAAC,CAAA;SACvC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,IAAiB;QACjB,QAAQ,IAAI,CAAC,CAAC,EAAE;YACZ,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACjC,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACjC,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACvC;IACL,CAAC;CACJ;AAtED,gCAsEC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\n\nconst ERROR_MSG = 'Given peer is not available in this index. This is most likely an internal library error.'\n\nexport class PeersIndex {\n constructor(\n readonly users: Map<number, tl.TypeUser> = new Map(),\n readonly chats: Map<number, tl.TypeChat> = new Map(),\n ) {}\n\n hasMin = false\n\n static from(obj: { users?: tl.TypeUser[]; chats?: tl.TypeChat[] }): PeersIndex {\n const index = new PeersIndex()\n\n obj.users?.forEach((user) => {\n index.users.set(user.id, user)\n\n if ((user as Exclude<typeof user, tl.RawUserEmpty>).min) {\n index.hasMin = true\n }\n })\n obj.chats?.forEach((chat) => {\n index.chats.set(chat.id, chat)\n\n if (\n (\n chat as Exclude<\n typeof chat,\n tl.RawChatEmpty | tl.RawChat | tl.RawChatForbidden | tl.RawChannelForbidden\n >\n ).min\n ) {\n index.hasMin = true\n }\n })\n\n return index\n }\n\n get empty(): boolean {\n return this.users.size === 0 && this.chats.size === 0\n }\n\n user(id: number): tl.TypeUser {\n const r = this.users.get(id)\n\n if (!r) {\n throw new MtArgumentError(ERROR_MSG)\n }\n\n return r\n }\n\n chat(id: number): tl.TypeChat {\n const r = this.chats.get(id)\n\n if (!r) {\n throw new MtArgumentError(ERROR_MSG)\n }\n\n return r\n }\n\n get(peer: tl.TypePeer): tl.TypeUser | tl.TypeChat {\n switch (peer._) {\n case 'peerUser':\n return this.user(peer.userId)\n case 'peerChat':\n return this.chat(peer.chatId)\n case 'peerChannel':\n return this.chat(peer.channelId)\n }\n }\n}\n"]}
1
+ {"version":3,"file":"peers-index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/peers-index.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAE1D,MAAM,SAAS,GAAG,2FAA2F,CAAA;AAE7G,MAAa,UAAU;IAEN;IACA;IAFb,YACa,QAAkC,IAAI,GAAG,EAAE,EAC3C,QAAkC,IAAI,GAAG,EAAE;QAD3C,UAAK,GAAL,KAAK,CAAsC;QAC3C,UAAK,GAAL,KAAK,CAAsC;IACrD,CAAC;IAEJ,MAAM,GAAG,KAAK,CAAA;IAEd,MAAM,CAAC,IAAI,CAAC,GAAqD;QAC7D,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAA;QAE9B,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE9B,IAAK,IAA8C,CAAC,GAAG,EAAE,CAAC;gBACtD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;YACvB,CAAC;QACL,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE9B,IAEQ,IAIH,CAAC,GAAG,EACP,CAAC;gBACC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;YACvB,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,EAAU;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,2BAAe,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,EAAU;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,2BAAe,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,IAAiB;QACjB,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACjC,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACjC,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;IACL,CAAC;CACJ;AAtED,gCAsEC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\n\nconst ERROR_MSG = 'Given peer is not available in this index. This is most likely an internal library error.'\n\nexport class PeersIndex {\n constructor(\n readonly users: Map<number, tl.TypeUser> = new Map(),\n readonly chats: Map<number, tl.TypeChat> = new Map(),\n ) {}\n\n hasMin = false\n\n static from(obj: { users?: tl.TypeUser[]; chats?: tl.TypeChat[] }): PeersIndex {\n const index = new PeersIndex()\n\n obj.users?.forEach((user) => {\n index.users.set(user.id, user)\n\n if ((user as Exclude<typeof user, tl.RawUserEmpty>).min) {\n index.hasMin = true\n }\n })\n obj.chats?.forEach((chat) => {\n index.chats.set(chat.id, chat)\n\n if (\n (\n chat as Exclude<\n typeof chat,\n tl.RawChatEmpty | tl.RawChat | tl.RawChatForbidden | tl.RawChannelForbidden\n >\n ).min\n ) {\n index.hasMin = true\n }\n })\n\n return index\n }\n\n get empty(): boolean {\n return this.users.size === 0 && this.chats.size === 0\n }\n\n user(id: number): tl.TypeUser {\n const r = this.users.get(id)\n\n if (!r) {\n throw new MtArgumentError(ERROR_MSG)\n }\n\n return r\n }\n\n chat(id: number): tl.TypeChat {\n const r = this.chats.get(id)\n\n if (!r) {\n throw new MtArgumentError(ERROR_MSG)\n }\n\n return r\n }\n\n get(peer: tl.TypePeer): tl.TypeUser | tl.TypeChat {\n switch (peer._) {\n case 'peerUser':\n return this.user(peer.userId)\n case 'peerChat':\n return this.chat(peer.chatId)\n case 'peerChannel':\n return this.chat(peer.channelId)\n }\n }\n}\n"]}
@@ -69,6 +69,11 @@ export declare class User {
69
69
  get isDeleted(): boolean;
70
70
  /** Whether this user is a bot */
71
71
  get isBot(): boolean;
72
+ /**
73
+ * Whether this user is a bot that can be connected to a
74
+ * Telegram Business account to receive its messages
75
+ */
76
+ get isBusinessBot(): boolean;
72
77
  /** Whether this user is a bot that has access to all messages */
73
78
  get isBotWithHistory(): boolean;
74
79
  /** Whether this user is a bot that can't be added to chats */
@@ -10,8 +10,12 @@ const emoji_status_js_1 = require("../reactions/emoji-status.js");
10
10
  const chat_colors_js_1 = require("./chat-colors.js");
11
11
  const chat_photo_js_1 = require("./chat-photo.js");
12
12
  class User {
13
+ type = 'user';
14
+ /**
15
+ * Underlying raw TL object
16
+ */
17
+ raw;
13
18
  constructor(user) {
14
- this.type = 'user';
15
19
  (0, type_assertions_js_1.assertTypeIs)('User#init', user, 'user');
16
20
  this.raw = user;
17
21
  }
@@ -72,6 +76,13 @@ class User {
72
76
  get isBot() {
73
77
  return this.raw.bot;
74
78
  }
79
+ /**
80
+ * Whether this user is a bot that can be connected to a
81
+ * Telegram Business account to receive its messages
82
+ */
83
+ get isBusinessBot() {
84
+ return this.raw.botBusiness;
85
+ }
75
86
  /** Whether this user is a bot that has access to all messages */
76
87
  get isBotWithHistory() {
77
88
  return this.raw.botChatHistory;
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /**\n * Whether this user is a bot that can be connected to a\n * Telegram Business account to receive its messages\n */\n get isBusinessBot(): boolean {\n return this.raw.botBusiness!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
@@ -9,6 +9,8 @@ const index_js_1 = require("../peers/index.js");
9
9
  * Information about a boost slot
10
10
  */
11
11
  class BoostSlot {
12
+ raw;
13
+ _peers;
12
14
  constructor(raw, _peers) {
13
15
  this.raw = raw;
14
16
  this._peers = _peers;
@@ -1 +1 @@
1
- {"version":3,"file":"boost-slot.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost-slot.ts"],"names":[],"mappings":";;;AAEA,0EAAgE;AAChE,+DAA4D;AAC5D,uDAAuD;AACvD,gDAAoD;AAEpD;;GAEG;AACH,MAAa,SAAS;IAClB,YACa,GAAkB,EAClB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,sBAAsB;IACtB,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE/B,IAAA,iCAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAE5D,OAAO,IAAI,eAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACtD,CAAC;CACJ;AAxDD,8BAwDC;AAED,IAAA,2BAAc,EAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACnC,IAAA,gCAAe,EAAC,SAAS,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Chat, PeersIndex } from '../peers/index.js'\n\n/**\n * Information about a boost slot\n */\nexport class BoostSlot {\n constructor(\n readonly raw: tl.RawMyBoost,\n readonly _peers: PeersIndex,\n ) {}\n\n /** ID of this slot */\n get id(): number {\n return this.raw.slot\n }\n\n /**\n * Whether this slot is occupied\n */\n get occupied(): boolean {\n return this.raw.peer !== undefined\n }\n\n /**\n * Channel that is occupying this slot, if any\n */\n get chat(): Chat | null {\n if (!this.raw.peer) return null\n\n assertTypeIs('BoostSlot.chat', this.raw.peer, 'peerChannel')\n\n return new Chat(this._peers.chat(this.raw.peer.channelId))\n }\n\n /**\n * Date when we started boosting this channel\n *\n * If this slot is not occupied, will be `0`\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when this boost will automatically expire.\n */\n get expireDate(): Date {\n return new Date(this.raw.expires * 1000)\n }\n\n /**\n * If this slot is occupied, returns the date when\n * we can reassing this slot to another channel.\n *\n * If `null`, we can reassign it immediately.\n */\n get cooldownUntil(): Date | null {\n if (!this.raw.cooldownUntilDate) return null\n\n return new Date(this.raw.cooldownUntilDate * 1000)\n }\n}\n\nmemoizeGetters(BoostSlot, ['chat'])\nmakeInspectable(BoostSlot)\n"]}
1
+ {"version":3,"file":"boost-slot.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/boost-slot.ts"],"names":[],"mappings":";;;AAEA,0EAAgE;AAChE,+DAA4D;AAC5D,uDAAuD;AACvD,gDAAoD;AAEpD;;GAEG;AACH,MAAa,SAAS;IAEL;IACA;IAFb,YACa,GAAkB,EAClB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ,sBAAsB;IACtB,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE/B,IAAA,iCAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAE5D,OAAO,IAAI,eAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACtD,CAAC;CACJ;AAxDD,8BAwDC;AAED,IAAA,2BAAc,EAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACnC,IAAA,gCAAe,EAAC,SAAS,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Chat, PeersIndex } from '../peers/index.js'\n\n/**\n * Information about a boost slot\n */\nexport class BoostSlot {\n constructor(\n readonly raw: tl.RawMyBoost,\n readonly _peers: PeersIndex,\n ) {}\n\n /** ID of this slot */\n get id(): number {\n return this.raw.slot\n }\n\n /**\n * Whether this slot is occupied\n */\n get occupied(): boolean {\n return this.raw.peer !== undefined\n }\n\n /**\n * Channel that is occupying this slot, if any\n */\n get chat(): Chat | null {\n if (!this.raw.peer) return null\n\n assertTypeIs('BoostSlot.chat', this.raw.peer, 'peerChannel')\n\n return new Chat(this._peers.chat(this.raw.peer.channelId))\n }\n\n /**\n * Date when we started boosting this channel\n *\n * If this slot is not occupied, will be `0`\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when this boost will automatically expire.\n */\n get expireDate(): Date {\n return new Date(this.raw.expires * 1000)\n }\n\n /**\n * If this slot is occupied, returns the date when\n * we can reassing this slot to another channel.\n *\n * If `null`, we can reassign it immediately.\n */\n get cooldownUntil(): Date | null {\n if (!this.raw.cooldownUntilDate) return null\n\n return new Date(this.raw.cooldownUntilDate * 1000)\n }\n}\n\nmemoizeGetters(BoostSlot, ['chat'])\nmakeInspectable(BoostSlot)\n"]}