@mtcute/core 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1309) hide show
  1. package/cjs/highlevel/base.d.ts +1 -1
  2. package/cjs/highlevel/base.js +29 -23
  3. package/cjs/highlevel/base.js.map +1 -1
  4. package/cjs/highlevel/client.d.ts +199 -18
  5. package/cjs/highlevel/client.js +54 -0
  6. package/cjs/highlevel/client.js.map +1 -1
  7. package/cjs/highlevel/managers/app-config-manager.js +7 -5
  8. package/cjs/highlevel/managers/app-config-manager.js.map +1 -1
  9. package/cjs/highlevel/methods/_imports.js.map +1 -1
  10. package/cjs/highlevel/methods/_init.js.map +1 -1
  11. package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
  12. package/cjs/highlevel/methods/auth/start.js.map +1 -1
  13. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  14. package/cjs/highlevel/methods/auth/utils.js.map +1 -1
  15. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  17. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  18. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  19. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
  20. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
  21. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  22. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  23. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
  24. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  25. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
  26. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  27. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
  28. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
  29. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  30. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
  31. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  32. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  33. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  34. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  35. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  36. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  37. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  38. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
  39. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  40. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
  41. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
  42. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  43. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  44. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
  45. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
  46. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  47. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
  48. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  49. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  50. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  51. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  52. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  53. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  54. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  55. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  56. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  57. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  58. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
  59. package/cjs/highlevel/methods/files/download-iterable.js +1 -1
  60. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  61. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
  62. package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
  63. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  64. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  65. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
  66. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  67. package/cjs/highlevel/methods/files/normalize-input-media.js +12 -12
  68. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  69. package/cjs/highlevel/methods/files/upload-file.js +7 -6
  70. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  71. package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
  72. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  73. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  74. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  75. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  76. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  77. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  78. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  79. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  80. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  81. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
  82. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  83. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  84. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  85. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  86. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  87. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  88. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  89. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  90. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  91. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  92. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  93. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  94. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  95. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  96. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  97. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  98. package/cjs/highlevel/methods/messages/get-history.js +5 -1
  99. package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
  100. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  101. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
  102. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  103. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
  104. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
  105. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
  106. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  107. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  108. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  109. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  110. package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
  111. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  112. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  113. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  114. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
  115. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
  116. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  117. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  118. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  119. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
  120. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
  121. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  122. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  123. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  124. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  125. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
  126. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  127. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  128. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  129. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  130. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  131. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
  132. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
  133. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  134. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  135. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  136. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  137. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  138. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  139. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  140. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
  141. package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
  142. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
  143. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  144. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  145. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  146. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  147. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  148. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  149. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  150. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  151. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  152. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  153. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  154. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  155. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  156. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  157. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  158. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
  159. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  160. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  161. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  162. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  163. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  164. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  165. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  166. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  167. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  168. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  169. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  170. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  171. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  172. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  173. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  174. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  175. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  176. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  177. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  178. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  179. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  180. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  181. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  182. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  183. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  184. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  185. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  186. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  187. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  188. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  189. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  190. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  191. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  192. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  193. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
  194. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
  195. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  196. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
  197. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  198. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  199. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  200. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  201. package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
  202. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  203. package/cjs/highlevel/methods/users/get-users.js.map +1 -1
  204. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  205. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  206. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
  207. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  208. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  209. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  210. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  211. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  212. package/cjs/highlevel/methods.d.ts +12 -0
  213. package/cjs/highlevel/methods.js +33 -3
  214. package/cjs/highlevel/methods.js.map +1 -1
  215. package/cjs/highlevel/storage/service/current-user.js +2 -0
  216. package/cjs/highlevel/storage/service/current-user.js.map +1 -1
  217. package/cjs/highlevel/storage/service/peers.js +5 -1
  218. package/cjs/highlevel/storage/service/peers.js.map +1 -1
  219. package/cjs/highlevel/storage/service/ref-messages.js +3 -0
  220. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
  221. package/cjs/highlevel/storage/service/updates.js +1 -0
  222. package/cjs/highlevel/storage/service/updates.js.map +1 -1
  223. package/cjs/highlevel/storage/storage.d.ts +8 -3
  224. package/cjs/highlevel/storage/storage.js +17 -4
  225. package/cjs/highlevel/storage/storage.js.map +1 -1
  226. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  227. package/cjs/highlevel/types/auth/sent-code.js +15 -0
  228. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  229. package/cjs/highlevel/types/bots/game-high-score.js +2 -0
  230. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
  231. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  232. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
  233. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  234. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
  235. package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
  236. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
  237. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  238. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
  239. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  240. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
  241. package/cjs/highlevel/types/conversation.js +13 -7
  242. package/cjs/highlevel/types/conversation.js.map +1 -1
  243. package/cjs/highlevel/types/errors.js +3 -0
  244. package/cjs/highlevel/types/errors.js.map +1 -1
  245. package/cjs/highlevel/types/files/file-location.js +3 -0
  246. package/cjs/highlevel/types/files/file-location.js.map +1 -1
  247. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  248. package/cjs/highlevel/types/files/uploaded-file.js +1 -1
  249. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
  250. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  251. package/cjs/highlevel/types/files/utils.js.map +1 -1
  252. package/cjs/highlevel/types/files/web-document.js +1 -0
  253. package/cjs/highlevel/types/files/web-document.js.map +1 -1
  254. package/cjs/highlevel/types/media/audio.js +3 -2
  255. package/cjs/highlevel/types/media/audio.js.map +1 -1
  256. package/cjs/highlevel/types/media/contact.js +2 -1
  257. package/cjs/highlevel/types/media/contact.js.map +1 -1
  258. package/cjs/highlevel/types/media/dice.js +125 -124
  259. package/cjs/highlevel/types/media/dice.js.map +1 -1
  260. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  261. package/cjs/highlevel/types/media/document-utils.js +9 -2
  262. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  263. package/cjs/highlevel/types/media/document.js +2 -4
  264. package/cjs/highlevel/types/media/document.js.map +1 -1
  265. package/cjs/highlevel/types/media/game.js +2 -1
  266. package/cjs/highlevel/types/media/game.js.map +1 -1
  267. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  268. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  269. package/cjs/highlevel/types/media/invoice.js +4 -1
  270. package/cjs/highlevel/types/media/invoice.js.map +1 -1
  271. package/cjs/highlevel/types/media/location.js +4 -5
  272. package/cjs/highlevel/types/media/location.js.map +1 -1
  273. package/cjs/highlevel/types/media/photo.js +8 -1
  274. package/cjs/highlevel/types/media/photo.js.map +1 -1
  275. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  276. package/cjs/highlevel/types/media/poll.js +69 -19
  277. package/cjs/highlevel/types/media/poll.js.map +1 -1
  278. package/cjs/highlevel/types/media/sticker.js +3 -1
  279. package/cjs/highlevel/types/media/sticker.js.map +1 -1
  280. package/cjs/highlevel/types/media/story.js +3 -1
  281. package/cjs/highlevel/types/media/story.js.map +1 -1
  282. package/cjs/highlevel/types/media/thumbnail.js +35 -22
  283. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  284. package/cjs/highlevel/types/media/venue.js +2 -1
  285. package/cjs/highlevel/types/media/venue.js.map +1 -1
  286. package/cjs/highlevel/types/media/video.js +3 -1
  287. package/cjs/highlevel/types/media/video.js.map +1 -1
  288. package/cjs/highlevel/types/media/voice.js +2 -1
  289. package/cjs/highlevel/types/media/voice.js.map +1 -1
  290. package/cjs/highlevel/types/media/web-page.js +2 -1
  291. package/cjs/highlevel/types/media/web-page.js.map +1 -1
  292. package/cjs/highlevel/types/messages/dialog.js +4 -12
  293. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  294. package/cjs/highlevel/types/messages/draft-message.js +1 -0
  295. package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
  296. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  297. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  298. package/cjs/highlevel/types/messages/message-action.js +6 -0
  299. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  300. package/cjs/highlevel/types/messages/message-entity.js +2 -0
  301. package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
  302. package/cjs/highlevel/types/messages/message-forward.js +2 -0
  303. package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
  304. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  305. package/cjs/highlevel/types/messages/message-media.js.map +1 -1
  306. package/cjs/highlevel/types/messages/message-reactions.js +4 -0
  307. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
  308. package/cjs/highlevel/types/messages/message-replies.js +2 -0
  309. package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
  310. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  311. package/cjs/highlevel/types/messages/message.js +102 -1
  312. package/cjs/highlevel/types/messages/message.js.map +1 -1
  313. package/cjs/highlevel/types/messages/replied-message.js +2 -0
  314. package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
  315. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  316. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  317. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  318. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  319. package/cjs/highlevel/types/misc/entities.js +15 -0
  320. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  321. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  322. package/cjs/highlevel/types/misc/index.js +1 -0
  323. package/cjs/highlevel/types/misc/index.js.map +1 -1
  324. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  325. package/cjs/highlevel/types/misc/sticker-set.js +43 -6
  326. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  327. package/cjs/highlevel/types/misc/takeout-session.js +5 -0
  328. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
  329. package/cjs/highlevel/types/peers/chat-colors.js +2 -0
  330. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
  331. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  332. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
  333. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  334. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
  335. package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
  336. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
  337. package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
  338. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  339. package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
  340. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
  341. package/cjs/highlevel/types/peers/chat-location.js +1 -0
  342. package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
  343. package/cjs/highlevel/types/peers/chat-member.js +2 -0
  344. package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
  345. package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
  346. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
  347. package/cjs/highlevel/types/peers/chat-photo.js +5 -0
  348. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  349. package/cjs/highlevel/types/peers/chat-preview.js +2 -0
  350. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
  351. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  352. package/cjs/highlevel/types/peers/chat.js +10 -192
  353. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  354. package/cjs/highlevel/types/peers/forum-topic.js +9 -6
  355. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
  356. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  357. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  358. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  359. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  360. package/cjs/highlevel/types/peers/index.js +1 -0
  361. package/cjs/highlevel/types/peers/index.js.map +1 -1
  362. package/cjs/highlevel/types/peers/peer.js.map +1 -1
  363. package/cjs/highlevel/types/peers/peers-index.js +3 -1
  364. package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
  365. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  366. package/cjs/highlevel/types/peers/user.js +12 -1
  367. package/cjs/highlevel/types/peers/user.js.map +1 -1
  368. package/cjs/highlevel/types/premium/boost-slot.js +2 -0
  369. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
  370. package/cjs/highlevel/types/premium/boost-stats.js +1 -0
  371. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
  372. package/cjs/highlevel/types/premium/boost.js +2 -0
  373. package/cjs/highlevel/types/premium/boost.js.map +1 -1
  374. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  375. package/cjs/highlevel/types/premium/business-account.js +45 -0
  376. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  377. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  378. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  379. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  380. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  381. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  382. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  383. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  384. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  385. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  386. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  387. package/cjs/highlevel/types/premium/business-location.js +26 -0
  388. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  389. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  390. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  391. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  392. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  393. package/cjs/highlevel/types/premium/index.js +5 -0
  394. package/cjs/highlevel/types/premium/index.js.map +1 -1
  395. package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
  396. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
  397. package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
  398. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
  399. package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
  400. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
  401. package/cjs/highlevel/types/reactions/types.js.map +1 -1
  402. package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
  403. package/cjs/highlevel/types/stories/all-stories.js +3 -1
  404. package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
  405. package/cjs/highlevel/types/stories/interactive/base.js +1 -0
  406. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
  407. package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
  408. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  409. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
  410. package/cjs/highlevel/types/stories/interactive/input.js +1 -0
  411. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
  412. package/cjs/highlevel/types/stories/interactive/location.js +2 -1
  413. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
  414. package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
  415. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
  416. package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
  417. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
  418. package/cjs/highlevel/types/stories/peer-stories.js +2 -0
  419. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
  420. package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
  421. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
  422. package/cjs/highlevel/types/stories/story-interactions.js +2 -0
  423. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
  424. package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
  425. package/cjs/highlevel/types/stories/story-viewer.js +6 -0
  426. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
  427. package/cjs/highlevel/types/stories/story.js +2 -0
  428. package/cjs/highlevel/types/stories/story.js.map +1 -1
  429. package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
  430. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  431. package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
  432. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
  433. package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
  434. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
  435. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  436. package/cjs/highlevel/types/updates/business-message.js +35 -0
  437. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  438. package/cjs/highlevel/types/updates/callback-query.js +4 -0
  439. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  440. package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
  441. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
  442. package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
  443. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
  444. package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
  445. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  446. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  447. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  448. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  449. package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
  450. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
  451. package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
  452. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
  453. package/cjs/highlevel/types/updates/history-read-update.js +1 -0
  454. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
  455. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  456. package/cjs/highlevel/types/updates/index.js +5 -1
  457. package/cjs/highlevel/types/updates/index.js.map +1 -1
  458. package/cjs/highlevel/types/updates/inline-query.js +2 -0
  459. package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
  460. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  461. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  462. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  463. package/cjs/highlevel/types/updates/poll-update.js +4 -2
  464. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  465. package/cjs/highlevel/types/updates/poll-vote.js +2 -0
  466. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
  467. package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
  468. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  469. package/cjs/highlevel/types/updates/story-update.js +2 -0
  470. package/cjs/highlevel/types/updates/story-update.js.map +1 -1
  471. package/cjs/highlevel/types/updates/user-status-update.js +1 -0
  472. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  473. package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
  474. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
  475. package/cjs/highlevel/updates/manager.d.ts +0 -1
  476. package/cjs/highlevel/updates/manager.js +57 -30
  477. package/cjs/highlevel/updates/manager.js.map +1 -1
  478. package/cjs/highlevel/updates/parsed.js +8 -2
  479. package/cjs/highlevel/updates/parsed.js.map +1 -1
  480. package/cjs/highlevel/updates/types.d.ts +57 -0
  481. package/cjs/highlevel/updates/utils.d.ts +2 -0
  482. package/cjs/highlevel/updates/utils.js.map +1 -1
  483. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  484. package/cjs/highlevel/utils/entities.js.map +1 -1
  485. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  486. package/cjs/highlevel/utils/file-type.js +35 -1
  487. package/cjs/highlevel/utils/file-type.js.map +1 -1
  488. package/cjs/highlevel/utils/file-utils.js +1 -1
  489. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  490. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  491. package/cjs/highlevel/utils/inspectable.js +7 -0
  492. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  493. package/cjs/highlevel/utils/memoize.js.map +1 -1
  494. package/cjs/highlevel/utils/peer-utils.js.map +1 -1
  495. package/cjs/highlevel/utils/query-batcher.js.map +1 -1
  496. package/cjs/highlevel/utils/rps-meter.js +3 -0
  497. package/cjs/highlevel/utils/rps-meter.js.map +1 -1
  498. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  499. package/cjs/highlevel/utils/string-session.d.ts +1 -2
  500. package/cjs/highlevel/utils/string-session.js +27 -7
  501. package/cjs/highlevel/utils/string-session.js.map +1 -1
  502. package/cjs/highlevel/utils/voice-utils.js.map +1 -1
  503. package/cjs/highlevel/worker/app-config.d.ts +2 -3
  504. package/cjs/highlevel/worker/app-config.js +6 -3
  505. package/cjs/highlevel/worker/app-config.js.map +1 -1
  506. package/cjs/highlevel/worker/errors.js.map +1 -1
  507. package/cjs/highlevel/worker/index.js +6 -0
  508. package/cjs/highlevel/worker/invoker.js +3 -2
  509. package/cjs/highlevel/worker/invoker.js.map +1 -1
  510. package/cjs/highlevel/worker/port.d.ts +16 -17
  511. package/cjs/highlevel/worker/port.js +74 -49
  512. package/cjs/highlevel/worker/port.js.map +1 -1
  513. package/cjs/highlevel/worker/protocol.d.ts +1 -2
  514. package/cjs/highlevel/worker/protocol.js.map +1 -1
  515. package/cjs/highlevel/worker/storage.d.ts +9 -13
  516. package/cjs/highlevel/worker/storage.js +34 -19
  517. package/cjs/highlevel/worker/storage.js.map +1 -1
  518. package/cjs/highlevel/worker/worker.js +3 -0
  519. package/cjs/highlevel/worker/worker.js.map +1 -1
  520. package/cjs/index.js +6 -0
  521. package/cjs/network/auth-key.js +8 -1
  522. package/cjs/network/auth-key.js.map +1 -1
  523. package/cjs/network/authorization.js.map +1 -1
  524. package/cjs/network/client.d.ts +0 -1
  525. package/cjs/network/client.js +39 -14
  526. package/cjs/network/client.js.map +1 -1
  527. package/cjs/network/config-manager.js.map +1 -1
  528. package/cjs/network/mtproto-session.d.ts +0 -1
  529. package/cjs/network/mtproto-session.js +40 -30
  530. package/cjs/network/mtproto-session.js.map +1 -1
  531. package/cjs/network/multi-session-connection.d.ts +1 -2
  532. package/cjs/network/multi-session-connection.js +13 -7
  533. package/cjs/network/multi-session-connection.js.map +1 -1
  534. package/cjs/network/network-manager.d.ts +10 -3
  535. package/cjs/network/network-manager.js +57 -31
  536. package/cjs/network/network-manager.js.map +1 -1
  537. package/cjs/network/persistent-connection.d.ts +2 -3
  538. package/cjs/network/persistent-connection.js +33 -22
  539. package/cjs/network/persistent-connection.js.map +1 -1
  540. package/cjs/network/server-salt.js +4 -5
  541. package/cjs/network/server-salt.js.map +1 -1
  542. package/cjs/network/session-connection.d.ts +1 -1
  543. package/cjs/network/session-connection.js +32 -12
  544. package/cjs/network/session-connection.js.map +1 -1
  545. package/cjs/network/transports/abstract.d.ts +1 -2
  546. package/cjs/network/transports/abstract.js +1 -0
  547. package/cjs/network/transports/abstract.js.map +1 -1
  548. package/cjs/network/transports/intermediate.js +1 -0
  549. package/cjs/network/transports/intermediate.js.map +1 -1
  550. package/cjs/network/transports/obfuscated.js +3 -0
  551. package/cjs/network/transports/obfuscated.js.map +1 -1
  552. package/cjs/network/transports/streamed.d.ts +0 -1
  553. package/cjs/network/transports/streamed.js +1 -4
  554. package/cjs/network/transports/streamed.js.map +1 -1
  555. package/cjs/network/transports/wrapped.d.ts +0 -1
  556. package/cjs/network/transports/wrapped.js +2 -0
  557. package/cjs/network/transports/wrapped.js.map +1 -1
  558. package/cjs/platform.js +6 -0
  559. package/cjs/platform.js.map +1 -1
  560. package/cjs/storage/driver.js +3 -4
  561. package/cjs/storage/driver.js.map +1 -1
  562. package/cjs/storage/memory/driver.js +1 -3
  563. package/cjs/storage/memory/driver.js.map +1 -1
  564. package/cjs/storage/memory/index.js +5 -7
  565. package/cjs/storage/memory/index.js.map +1 -1
  566. package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
  567. package/cjs/storage/memory/repository/auth-keys.js +2 -0
  568. package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
  569. package/cjs/storage/memory/repository/kv.d.ts +1 -1
  570. package/cjs/storage/memory/repository/kv.js +2 -0
  571. package/cjs/storage/memory/repository/kv.js.map +1 -1
  572. package/cjs/storage/memory/repository/peers.d.ts +1 -1
  573. package/cjs/storage/memory/repository/peers.js +2 -0
  574. package/cjs/storage/memory/repository/peers.js.map +1 -1
  575. package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
  576. package/cjs/storage/memory/repository/ref-messages.js +2 -0
  577. package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
  578. package/cjs/storage/service/auth-keys.js +2 -0
  579. package/cjs/storage/service/auth-keys.js.map +1 -1
  580. package/cjs/storage/service/base.js +4 -0
  581. package/cjs/storage/service/base.js.map +1 -1
  582. package/cjs/storage/service/default-dcs.js +2 -0
  583. package/cjs/storage/service/default-dcs.js.map +1 -1
  584. package/cjs/storage/service/future-salts.js +2 -1
  585. package/cjs/storage/service/future-salts.js.map +1 -1
  586. package/cjs/storage/sqlite/driver.js +10 -10
  587. package/cjs/storage/sqlite/driver.js.map +1 -1
  588. package/cjs/storage/sqlite/index.d.ts +1 -1
  589. package/cjs/storage/sqlite/index.js +5 -0
  590. package/cjs/storage/sqlite/index.js.map +1 -1
  591. package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
  592. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
  593. package/cjs/storage/sqlite/repository/kv.js +5 -0
  594. package/cjs/storage/sqlite/repository/kv.js.map +1 -1
  595. package/cjs/storage/sqlite/repository/peers.js +7 -2
  596. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  597. package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
  598. package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
  599. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
  600. package/cjs/storage/storage.d.ts +22 -3
  601. package/cjs/storage/storage.js +21 -13
  602. package/cjs/storage/storage.js.map +1 -1
  603. package/cjs/types/errors.js +13 -0
  604. package/cjs/types/errors.js.map +1 -1
  605. package/cjs/types/utils.d.ts +1 -0
  606. package/cjs/types/utils.js.map +1 -1
  607. package/cjs/utils/async-lock.js +1 -3
  608. package/cjs/utils/async-lock.js.map +1 -1
  609. package/cjs/utils/bigint-utils.js.map +1 -1
  610. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  611. package/cjs/utils/buffer-utils.js.map +1 -1
  612. package/cjs/utils/condition-variable.js +2 -0
  613. package/cjs/utils/condition-variable.js.map +1 -1
  614. package/cjs/utils/crypto/factorization.js.map +1 -1
  615. package/cjs/utils/crypto/keys.js.map +1 -1
  616. package/cjs/utils/crypto/miller-rabin.js.map +1 -1
  617. package/cjs/utils/crypto/password.js.map +1 -1
  618. package/cjs/utils/crypto/utils.js.map +1 -1
  619. package/cjs/utils/dcs.js +1 -1
  620. package/cjs/utils/dcs.js.map +1 -1
  621. package/cjs/utils/deque.js +8 -2
  622. package/cjs/utils/deque.js.map +1 -1
  623. package/cjs/utils/early-timer.js +4 -1
  624. package/cjs/utils/early-timer.js.map +1 -1
  625. package/cjs/utils/error-reporting.js.map +1 -1
  626. package/cjs/utils/function-utils.js.map +1 -1
  627. package/cjs/utils/index.js +6 -0
  628. package/cjs/utils/linked-list.js +4 -1
  629. package/cjs/utils/linked-list.js.map +1 -1
  630. package/cjs/utils/links/bots.js.map +1 -1
  631. package/cjs/utils/links/chat.js.map +1 -1
  632. package/cjs/utils/links/common.js.map +1 -1
  633. package/cjs/utils/links/misc.js.map +1 -1
  634. package/cjs/utils/logger.d.ts +2 -2
  635. package/cjs/utils/logger.js +21 -14
  636. package/cjs/utils/logger.js.map +1 -1
  637. package/cjs/utils/long-utils.js +2 -6
  638. package/cjs/utils/long-utils.js.map +1 -1
  639. package/cjs/utils/lru-map.js +5 -1
  640. package/cjs/utils/lru-map.js.map +1 -1
  641. package/cjs/utils/lru-set.js +4 -0
  642. package/cjs/utils/lru-set.js.map +1 -1
  643. package/cjs/utils/peer-utils.js.map +1 -1
  644. package/cjs/utils/reloadable.d.ts +0 -1
  645. package/cjs/utils/reloadable.js +10 -7
  646. package/cjs/utils/reloadable.js.map +1 -1
  647. package/cjs/utils/sorted-array.js +2 -0
  648. package/cjs/utils/sorted-array.js.map +1 -1
  649. package/cjs/utils/tl-json.js.map +1 -1
  650. package/cjs/utils/type-assertions.js.map +1 -1
  651. package/client.d.ts +1 -0
  652. package/client.js +1 -0
  653. package/esm/highlevel/base.d.ts +1 -1
  654. package/esm/highlevel/base.js +29 -23
  655. package/esm/highlevel/base.js.map +1 -1
  656. package/esm/highlevel/client.d.ts +199 -18
  657. package/esm/highlevel/client.js +48 -0
  658. package/esm/highlevel/client.js.map +1 -1
  659. package/esm/highlevel/managers/app-config-manager.js +7 -5
  660. package/esm/highlevel/managers/app-config-manager.js.map +1 -1
  661. package/esm/highlevel/methods/_imports.js.map +1 -1
  662. package/esm/highlevel/methods/_init.js.map +1 -1
  663. package/esm/highlevel/methods/auth/start-test.js.map +1 -1
  664. package/esm/highlevel/methods/auth/start.js.map +1 -1
  665. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  666. package/esm/highlevel/methods/auth/utils.js.map +1 -1
  667. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  668. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  669. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  670. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  671. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
  672. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
  673. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  674. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  675. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
  676. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  677. package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
  678. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  679. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
  680. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
  681. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  682. package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
  683. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  684. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  685. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  686. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  687. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  688. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  689. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  690. package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
  691. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  692. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
  693. package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
  694. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  695. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  696. package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
  697. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
  698. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  699. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
  700. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  701. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  702. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  703. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  704. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  705. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  706. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  707. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  708. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  709. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  710. package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
  711. package/esm/highlevel/methods/files/download-iterable.js +1 -1
  712. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  713. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
  714. package/esm/highlevel/methods/files/download-stream.js.map +1 -1
  715. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  716. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  717. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
  718. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  719. package/esm/highlevel/methods/files/normalize-input-media.js +12 -12
  720. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  721. package/esm/highlevel/methods/files/upload-file.js +8 -7
  722. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  723. package/esm/highlevel/methods/files/upload-media.js.map +1 -1
  724. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  725. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  726. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  727. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  728. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  729. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  730. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  731. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  732. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  733. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
  734. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  735. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  736. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  737. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  738. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  739. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  740. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  741. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  742. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  743. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  744. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  745. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  746. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  747. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  748. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  749. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  750. package/esm/highlevel/methods/messages/get-history.js +5 -1
  751. package/esm/highlevel/methods/messages/get-history.js.map +1 -1
  752. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  753. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
  754. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  755. package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
  756. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
  757. package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
  758. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  759. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  760. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  761. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  762. package/esm/highlevel/methods/messages/read-history.js.map +1 -1
  763. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  764. package/esm/highlevel/methods/messages/search-global.js +2 -1
  765. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  766. package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
  767. package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
  768. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  769. package/esm/highlevel/methods/messages/send-common.js +19 -0
  770. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  771. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
  772. package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
  773. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  774. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  775. package/esm/highlevel/methods/messages/send-media.js +4 -2
  776. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  777. package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
  778. package/esm/highlevel/methods/messages/send-text.js +4 -2
  779. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  780. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  781. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  782. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  783. package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
  784. package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
  785. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  786. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  787. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  788. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  789. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  790. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  791. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  792. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
  793. package/esm/highlevel/methods/misc/with-params.js.map +1 -1
  794. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
  795. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  796. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  797. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  798. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  799. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  800. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  801. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  802. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  803. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  804. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  805. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  806. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  807. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  808. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  809. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  810. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
  811. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  812. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  813. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  814. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  815. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  816. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  817. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  818. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  819. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  820. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  821. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  822. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  823. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  824. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  825. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  826. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  827. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  828. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  829. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  830. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  831. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  832. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  833. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  834. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  835. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  836. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  837. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  838. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  839. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  840. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  841. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  842. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  843. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  844. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  845. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
  846. package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
  847. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  848. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
  849. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  850. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  851. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  852. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  853. package/esm/highlevel/methods/stories/send-story.js.map +1 -1
  854. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  855. package/esm/highlevel/methods/users/get-users.js.map +1 -1
  856. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  857. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  858. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
  859. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  860. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  861. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  862. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  863. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  864. package/esm/highlevel/methods.d.ts +12 -0
  865. package/esm/highlevel/methods.js +12 -0
  866. package/esm/highlevel/methods.js.map +1 -1
  867. package/esm/highlevel/storage/service/current-user.js +2 -0
  868. package/esm/highlevel/storage/service/current-user.js.map +1 -1
  869. package/esm/highlevel/storage/service/peers.js +5 -1
  870. package/esm/highlevel/storage/service/peers.js.map +1 -1
  871. package/esm/highlevel/storage/service/ref-messages.js +3 -0
  872. package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
  873. package/esm/highlevel/storage/service/updates.js +1 -0
  874. package/esm/highlevel/storage/service/updates.js.map +1 -1
  875. package/esm/highlevel/storage/storage.d.ts +8 -3
  876. package/esm/highlevel/storage/storage.js +17 -4
  877. package/esm/highlevel/storage/storage.js.map +1 -1
  878. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  879. package/esm/highlevel/types/auth/sent-code.js +15 -0
  880. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  881. package/esm/highlevel/types/bots/game-high-score.js +2 -0
  882. package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
  883. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  884. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
  885. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  886. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
  887. package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
  888. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
  889. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  890. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
  891. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  892. package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
  893. package/esm/highlevel/types/conversation.js +13 -7
  894. package/esm/highlevel/types/conversation.js.map +1 -1
  895. package/esm/highlevel/types/errors.js +3 -0
  896. package/esm/highlevel/types/errors.js.map +1 -1
  897. package/esm/highlevel/types/files/file-location.js +3 -0
  898. package/esm/highlevel/types/files/file-location.js.map +1 -1
  899. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  900. package/esm/highlevel/types/files/uploaded-file.js +1 -1
  901. package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
  902. package/esm/highlevel/types/files/utils.d.ts +6 -5
  903. package/esm/highlevel/types/files/utils.js.map +1 -1
  904. package/esm/highlevel/types/files/web-document.js +1 -0
  905. package/esm/highlevel/types/files/web-document.js.map +1 -1
  906. package/esm/highlevel/types/media/audio.js +3 -2
  907. package/esm/highlevel/types/media/audio.js.map +1 -1
  908. package/esm/highlevel/types/media/contact.js +2 -1
  909. package/esm/highlevel/types/media/contact.js.map +1 -1
  910. package/esm/highlevel/types/media/dice.js +125 -124
  911. package/esm/highlevel/types/media/dice.js.map +1 -1
  912. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  913. package/esm/highlevel/types/media/document-utils.js +7 -1
  914. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  915. package/esm/highlevel/types/media/document.js +2 -4
  916. package/esm/highlevel/types/media/document.js.map +1 -1
  917. package/esm/highlevel/types/media/game.js +2 -1
  918. package/esm/highlevel/types/media/game.js.map +1 -1
  919. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  920. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  921. package/esm/highlevel/types/media/invoice.js +4 -1
  922. package/esm/highlevel/types/media/invoice.js.map +1 -1
  923. package/esm/highlevel/types/media/location.js +4 -5
  924. package/esm/highlevel/types/media/location.js.map +1 -1
  925. package/esm/highlevel/types/media/photo.js +8 -1
  926. package/esm/highlevel/types/media/photo.js.map +1 -1
  927. package/esm/highlevel/types/media/poll.d.ts +17 -6
  928. package/esm/highlevel/types/media/poll.js +68 -18
  929. package/esm/highlevel/types/media/poll.js.map +1 -1
  930. package/esm/highlevel/types/media/sticker.js +3 -1
  931. package/esm/highlevel/types/media/sticker.js.map +1 -1
  932. package/esm/highlevel/types/media/story.js +3 -1
  933. package/esm/highlevel/types/media/story.js.map +1 -1
  934. package/esm/highlevel/types/media/thumbnail.js +35 -22
  935. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  936. package/esm/highlevel/types/media/venue.js +2 -1
  937. package/esm/highlevel/types/media/venue.js.map +1 -1
  938. package/esm/highlevel/types/media/video.js +3 -1
  939. package/esm/highlevel/types/media/video.js.map +1 -1
  940. package/esm/highlevel/types/media/voice.js +2 -1
  941. package/esm/highlevel/types/media/voice.js.map +1 -1
  942. package/esm/highlevel/types/media/web-page.js +2 -1
  943. package/esm/highlevel/types/media/web-page.js.map +1 -1
  944. package/esm/highlevel/types/messages/dialog.js +4 -12
  945. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  946. package/esm/highlevel/types/messages/draft-message.js +1 -0
  947. package/esm/highlevel/types/messages/draft-message.js.map +1 -1
  948. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  949. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  950. package/esm/highlevel/types/messages/message-action.js +6 -0
  951. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  952. package/esm/highlevel/types/messages/message-entity.js +2 -0
  953. package/esm/highlevel/types/messages/message-entity.js.map +1 -1
  954. package/esm/highlevel/types/messages/message-forward.js +2 -0
  955. package/esm/highlevel/types/messages/message-forward.js.map +1 -1
  956. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  957. package/esm/highlevel/types/messages/message-media.js.map +1 -1
  958. package/esm/highlevel/types/messages/message-reactions.js +4 -0
  959. package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
  960. package/esm/highlevel/types/messages/message-replies.js +2 -0
  961. package/esm/highlevel/types/messages/message-replies.js.map +1 -1
  962. package/esm/highlevel/types/messages/message.d.ts +59 -1
  963. package/esm/highlevel/types/messages/message.js +102 -1
  964. package/esm/highlevel/types/messages/message.js.map +1 -1
  965. package/esm/highlevel/types/messages/replied-message.js +2 -0
  966. package/esm/highlevel/types/messages/replied-message.js.map +1 -1
  967. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  968. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  969. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  970. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  971. package/esm/highlevel/types/misc/entities.js +13 -1
  972. package/esm/highlevel/types/misc/entities.js.map +1 -1
  973. package/esm/highlevel/types/misc/index.d.ts +1 -0
  974. package/esm/highlevel/types/misc/index.js +1 -0
  975. package/esm/highlevel/types/misc/index.js.map +1 -1
  976. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  977. package/esm/highlevel/types/misc/sticker-set.js +45 -8
  978. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  979. package/esm/highlevel/types/misc/takeout-session.js +5 -0
  980. package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
  981. package/esm/highlevel/types/peers/chat-colors.js +2 -0
  982. package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
  983. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  984. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
  985. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  986. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
  987. package/esm/highlevel/types/peers/chat-event/index.js +2 -0
  988. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
  989. package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
  990. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  991. package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
  992. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
  993. package/esm/highlevel/types/peers/chat-location.js +1 -0
  994. package/esm/highlevel/types/peers/chat-location.js.map +1 -1
  995. package/esm/highlevel/types/peers/chat-member.js +2 -0
  996. package/esm/highlevel/types/peers/chat-member.js.map +1 -1
  997. package/esm/highlevel/types/peers/chat-permissions.js +1 -0
  998. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
  999. package/esm/highlevel/types/peers/chat-photo.js +5 -0
  1000. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  1001. package/esm/highlevel/types/peers/chat-preview.js +2 -0
  1002. package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
  1003. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  1004. package/esm/highlevel/types/peers/chat.js +10 -192
  1005. package/esm/highlevel/types/peers/chat.js.map +1 -1
  1006. package/esm/highlevel/types/peers/forum-topic.js +9 -6
  1007. package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
  1008. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  1009. package/esm/highlevel/types/peers/full-chat.js +234 -0
  1010. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  1011. package/esm/highlevel/types/peers/index.d.ts +1 -0
  1012. package/esm/highlevel/types/peers/index.js +1 -0
  1013. package/esm/highlevel/types/peers/index.js.map +1 -1
  1014. package/esm/highlevel/types/peers/peer.js.map +1 -1
  1015. package/esm/highlevel/types/peers/peers-index.js +3 -1
  1016. package/esm/highlevel/types/peers/peers-index.js.map +1 -1
  1017. package/esm/highlevel/types/peers/user.d.ts +5 -0
  1018. package/esm/highlevel/types/peers/user.js +12 -1
  1019. package/esm/highlevel/types/peers/user.js.map +1 -1
  1020. package/esm/highlevel/types/premium/boost-slot.js +2 -0
  1021. package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
  1022. package/esm/highlevel/types/premium/boost-stats.js +1 -0
  1023. package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
  1024. package/esm/highlevel/types/premium/boost.js +2 -0
  1025. package/esm/highlevel/types/premium/boost.js.map +1 -1
  1026. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  1027. package/esm/highlevel/types/premium/business-account.js +42 -0
  1028. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  1029. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  1030. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  1031. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  1032. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  1033. package/esm/highlevel/types/premium/business-connection.js +42 -0
  1034. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  1035. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  1036. package/esm/highlevel/types/premium/business-intro.js +40 -0
  1037. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  1038. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  1039. package/esm/highlevel/types/premium/business-location.js +23 -0
  1040. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  1041. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  1042. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  1043. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  1044. package/esm/highlevel/types/premium/index.d.ts +5 -0
  1045. package/esm/highlevel/types/premium/index.js +5 -0
  1046. package/esm/highlevel/types/premium/index.js.map +1 -1
  1047. package/esm/highlevel/types/reactions/emoji-status.js +1 -0
  1048. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
  1049. package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
  1050. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
  1051. package/esm/highlevel/types/reactions/reaction-count.js +1 -0
  1052. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
  1053. package/esm/highlevel/types/reactions/types.js.map +1 -1
  1054. package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
  1055. package/esm/highlevel/types/stories/all-stories.js +3 -1
  1056. package/esm/highlevel/types/stories/all-stories.js.map +1 -1
  1057. package/esm/highlevel/types/stories/interactive/base.js +1 -0
  1058. package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
  1059. package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
  1060. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  1061. package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
  1062. package/esm/highlevel/types/stories/interactive/input.js +1 -0
  1063. package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
  1064. package/esm/highlevel/types/stories/interactive/location.js +2 -1
  1065. package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
  1066. package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
  1067. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
  1068. package/esm/highlevel/types/stories/interactive/venue.js +2 -1
  1069. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
  1070. package/esm/highlevel/types/stories/peer-stories.js +2 -0
  1071. package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
  1072. package/esm/highlevel/types/stories/stealth-mode.js +1 -0
  1073. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
  1074. package/esm/highlevel/types/stories/story-interactions.js +2 -0
  1075. package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
  1076. package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
  1077. package/esm/highlevel/types/stories/story-viewer.js +6 -0
  1078. package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
  1079. package/esm/highlevel/types/stories/story.js +2 -0
  1080. package/esm/highlevel/types/stories/story.js.map +1 -1
  1081. package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
  1082. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  1083. package/esm/highlevel/types/updates/bot-reaction.js +4 -0
  1084. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
  1085. package/esm/highlevel/types/updates/bot-stopped.js +2 -0
  1086. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
  1087. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  1088. package/esm/highlevel/types/updates/business-message.js +31 -0
  1089. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  1090. package/esm/highlevel/types/updates/callback-query.js +4 -0
  1091. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  1092. package/esm/highlevel/types/updates/chat-join-request.js +2 -0
  1093. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
  1094. package/esm/highlevel/types/updates/chat-member-update.js +2 -0
  1095. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
  1096. package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
  1097. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  1098. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  1099. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  1100. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  1101. package/esm/highlevel/types/updates/delete-message-update.js +1 -0
  1102. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
  1103. package/esm/highlevel/types/updates/delete-story-update.js +2 -0
  1104. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
  1105. package/esm/highlevel/types/updates/history-read-update.js +1 -0
  1106. package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
  1107. package/esm/highlevel/types/updates/index.d.ts +19 -2
  1108. package/esm/highlevel/types/updates/index.js +3 -1
  1109. package/esm/highlevel/types/updates/index.js.map +1 -1
  1110. package/esm/highlevel/types/updates/inline-query.js +2 -0
  1111. package/esm/highlevel/types/updates/inline-query.js.map +1 -1
  1112. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  1113. package/esm/highlevel/types/updates/parse-update.js +9 -1
  1114. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  1115. package/esm/highlevel/types/updates/poll-update.js +4 -2
  1116. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  1117. package/esm/highlevel/types/updates/poll-vote.js +2 -0
  1118. package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
  1119. package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
  1120. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  1121. package/esm/highlevel/types/updates/story-update.js +2 -0
  1122. package/esm/highlevel/types/updates/story-update.js.map +1 -1
  1123. package/esm/highlevel/types/updates/user-status-update.js +1 -0
  1124. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  1125. package/esm/highlevel/types/updates/user-typing-update.js +1 -0
  1126. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
  1127. package/esm/highlevel/updates/manager.d.ts +0 -1
  1128. package/esm/highlevel/updates/manager.js +57 -30
  1129. package/esm/highlevel/updates/manager.js.map +1 -1
  1130. package/esm/highlevel/updates/parsed.js +8 -2
  1131. package/esm/highlevel/updates/parsed.js.map +1 -1
  1132. package/esm/highlevel/updates/types.d.ts +57 -0
  1133. package/esm/highlevel/updates/utils.d.ts +2 -0
  1134. package/esm/highlevel/updates/utils.js.map +1 -1
  1135. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  1136. package/esm/highlevel/utils/entities.js.map +1 -1
  1137. package/esm/highlevel/utils/file-type.d.ts +1 -0
  1138. package/esm/highlevel/utils/file-type.js +34 -0
  1139. package/esm/highlevel/utils/file-type.js.map +1 -1
  1140. package/esm/highlevel/utils/file-utils.js +1 -1
  1141. package/esm/highlevel/utils/file-utils.js.map +1 -1
  1142. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  1143. package/esm/highlevel/utils/inspectable.js +4 -0
  1144. package/esm/highlevel/utils/inspectable.js.map +1 -1
  1145. package/esm/highlevel/utils/memoize.js.map +1 -1
  1146. package/esm/highlevel/utils/peer-utils.js.map +1 -1
  1147. package/esm/highlevel/utils/query-batcher.js.map +1 -1
  1148. package/esm/highlevel/utils/rps-meter.js +3 -0
  1149. package/esm/highlevel/utils/rps-meter.js.map +1 -1
  1150. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  1151. package/esm/highlevel/utils/string-session.d.ts +1 -2
  1152. package/esm/highlevel/utils/string-session.js +27 -7
  1153. package/esm/highlevel/utils/string-session.js.map +1 -1
  1154. package/esm/highlevel/utils/voice-utils.js.map +1 -1
  1155. package/esm/highlevel/worker/app-config.d.ts +2 -3
  1156. package/esm/highlevel/worker/app-config.js +6 -3
  1157. package/esm/highlevel/worker/app-config.js.map +1 -1
  1158. package/esm/highlevel/worker/errors.js.map +1 -1
  1159. package/esm/highlevel/worker/invoker.js +3 -2
  1160. package/esm/highlevel/worker/invoker.js.map +1 -1
  1161. package/esm/highlevel/worker/port.d.ts +16 -17
  1162. package/esm/highlevel/worker/port.js +74 -49
  1163. package/esm/highlevel/worker/port.js.map +1 -1
  1164. package/esm/highlevel/worker/protocol.d.ts +1 -2
  1165. package/esm/highlevel/worker/protocol.js.map +1 -1
  1166. package/esm/highlevel/worker/storage.d.ts +9 -13
  1167. package/esm/highlevel/worker/storage.js +34 -19
  1168. package/esm/highlevel/worker/storage.js.map +1 -1
  1169. package/esm/highlevel/worker/worker.js +3 -0
  1170. package/esm/highlevel/worker/worker.js.map +1 -1
  1171. package/esm/network/auth-key.js +8 -1
  1172. package/esm/network/auth-key.js.map +1 -1
  1173. package/esm/network/authorization.js.map +1 -1
  1174. package/esm/network/client.d.ts +0 -1
  1175. package/esm/network/client.js +39 -14
  1176. package/esm/network/client.js.map +1 -1
  1177. package/esm/network/config-manager.js.map +1 -1
  1178. package/esm/network/mtproto-session.d.ts +0 -1
  1179. package/esm/network/mtproto-session.js +40 -30
  1180. package/esm/network/mtproto-session.js.map +1 -1
  1181. package/esm/network/multi-session-connection.d.ts +1 -2
  1182. package/esm/network/multi-session-connection.js +13 -7
  1183. package/esm/network/multi-session-connection.js.map +1 -1
  1184. package/esm/network/network-manager.d.ts +10 -3
  1185. package/esm/network/network-manager.js +57 -31
  1186. package/esm/network/network-manager.js.map +1 -1
  1187. package/esm/network/persistent-connection.d.ts +2 -3
  1188. package/esm/network/persistent-connection.js +33 -22
  1189. package/esm/network/persistent-connection.js.map +1 -1
  1190. package/esm/network/server-salt.js +4 -5
  1191. package/esm/network/server-salt.js.map +1 -1
  1192. package/esm/network/session-connection.d.ts +1 -1
  1193. package/esm/network/session-connection.js +32 -12
  1194. package/esm/network/session-connection.js.map +1 -1
  1195. package/esm/network/transports/abstract.d.ts +1 -2
  1196. package/esm/network/transports/abstract.js +1 -0
  1197. package/esm/network/transports/abstract.js.map +1 -1
  1198. package/esm/network/transports/intermediate.js +1 -0
  1199. package/esm/network/transports/intermediate.js.map +1 -1
  1200. package/esm/network/transports/obfuscated.js +3 -0
  1201. package/esm/network/transports/obfuscated.js.map +1 -1
  1202. package/esm/network/transports/streamed.d.ts +0 -1
  1203. package/esm/network/transports/streamed.js +1 -4
  1204. package/esm/network/transports/streamed.js.map +1 -1
  1205. package/esm/network/transports/wrapped.d.ts +0 -1
  1206. package/esm/network/transports/wrapped.js +2 -0
  1207. package/esm/network/transports/wrapped.js.map +1 -1
  1208. package/esm/platform.js.map +1 -1
  1209. package/esm/storage/driver.js +3 -4
  1210. package/esm/storage/driver.js.map +1 -1
  1211. package/esm/storage/memory/driver.js +1 -3
  1212. package/esm/storage/memory/driver.js.map +1 -1
  1213. package/esm/storage/memory/index.js +5 -7
  1214. package/esm/storage/memory/index.js.map +1 -1
  1215. package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
  1216. package/esm/storage/memory/repository/auth-keys.js +2 -0
  1217. package/esm/storage/memory/repository/auth-keys.js.map +1 -1
  1218. package/esm/storage/memory/repository/kv.d.ts +1 -1
  1219. package/esm/storage/memory/repository/kv.js +2 -0
  1220. package/esm/storage/memory/repository/kv.js.map +1 -1
  1221. package/esm/storage/memory/repository/peers.d.ts +1 -1
  1222. package/esm/storage/memory/repository/peers.js +2 -0
  1223. package/esm/storage/memory/repository/peers.js.map +1 -1
  1224. package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
  1225. package/esm/storage/memory/repository/ref-messages.js +2 -0
  1226. package/esm/storage/memory/repository/ref-messages.js.map +1 -1
  1227. package/esm/storage/service/auth-keys.js +2 -0
  1228. package/esm/storage/service/auth-keys.js.map +1 -1
  1229. package/esm/storage/service/base.js +4 -0
  1230. package/esm/storage/service/base.js.map +1 -1
  1231. package/esm/storage/service/default-dcs.js +2 -0
  1232. package/esm/storage/service/default-dcs.js.map +1 -1
  1233. package/esm/storage/service/future-salts.js +2 -1
  1234. package/esm/storage/service/future-salts.js.map +1 -1
  1235. package/esm/storage/sqlite/driver.js +10 -10
  1236. package/esm/storage/sqlite/driver.js.map +1 -1
  1237. package/esm/storage/sqlite/index.d.ts +1 -1
  1238. package/esm/storage/sqlite/index.js +5 -0
  1239. package/esm/storage/sqlite/index.js.map +1 -1
  1240. package/esm/storage/sqlite/repository/auth-keys.js +9 -0
  1241. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
  1242. package/esm/storage/sqlite/repository/kv.js +5 -0
  1243. package/esm/storage/sqlite/repository/kv.js.map +1 -1
  1244. package/esm/storage/sqlite/repository/peers.js +7 -2
  1245. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  1246. package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
  1247. package/esm/storage/sqlite/repository/ref-messages.js +6 -0
  1248. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
  1249. package/esm/storage/storage.d.ts +22 -3
  1250. package/esm/storage/storage.js +21 -13
  1251. package/esm/storage/storage.js.map +1 -1
  1252. package/esm/types/errors.js +13 -0
  1253. package/esm/types/errors.js.map +1 -1
  1254. package/esm/types/utils.d.ts +1 -0
  1255. package/esm/types/utils.js.map +1 -1
  1256. package/esm/utils/async-lock.js +1 -3
  1257. package/esm/utils/async-lock.js.map +1 -1
  1258. package/esm/utils/bigint-utils.js.map +1 -1
  1259. package/esm/utils/binary/asn1-parser.js.map +1 -1
  1260. package/esm/utils/buffer-utils.js.map +1 -1
  1261. package/esm/utils/condition-variable.js +2 -0
  1262. package/esm/utils/condition-variable.js.map +1 -1
  1263. package/esm/utils/crypto/factorization.js.map +1 -1
  1264. package/esm/utils/crypto/keys.js.map +1 -1
  1265. package/esm/utils/crypto/miller-rabin.js.map +1 -1
  1266. package/esm/utils/crypto/password.js.map +1 -1
  1267. package/esm/utils/crypto/utils.js.map +1 -1
  1268. package/esm/utils/dcs.js +1 -1
  1269. package/esm/utils/dcs.js.map +1 -1
  1270. package/esm/utils/deque.js +8 -2
  1271. package/esm/utils/deque.js.map +1 -1
  1272. package/esm/utils/early-timer.js +4 -1
  1273. package/esm/utils/early-timer.js.map +1 -1
  1274. package/esm/utils/error-reporting.js.map +1 -1
  1275. package/esm/utils/function-utils.js.map +1 -1
  1276. package/esm/utils/linked-list.js +4 -1
  1277. package/esm/utils/linked-list.js.map +1 -1
  1278. package/esm/utils/links/bots.js.map +1 -1
  1279. package/esm/utils/links/chat.js.map +1 -1
  1280. package/esm/utils/links/common.js.map +1 -1
  1281. package/esm/utils/links/misc.js.map +1 -1
  1282. package/esm/utils/logger.d.ts +2 -2
  1283. package/esm/utils/logger.js +21 -14
  1284. package/esm/utils/logger.js.map +1 -1
  1285. package/esm/utils/long-utils.js +2 -6
  1286. package/esm/utils/long-utils.js.map +1 -1
  1287. package/esm/utils/lru-map.js +5 -1
  1288. package/esm/utils/lru-map.js.map +1 -1
  1289. package/esm/utils/lru-set.js +4 -0
  1290. package/esm/utils/lru-set.js.map +1 -1
  1291. package/esm/utils/peer-utils.js.map +1 -1
  1292. package/esm/utils/reloadable.d.ts +0 -1
  1293. package/esm/utils/reloadable.js +10 -7
  1294. package/esm/utils/reloadable.js.map +1 -1
  1295. package/esm/utils/sorted-array.js +2 -0
  1296. package/esm/utils/sorted-array.js.map +1 -1
  1297. package/esm/utils/tl-json.js.map +1 -1
  1298. package/esm/utils/type-assertions.js.map +1 -1
  1299. package/index.d.ts +1 -0
  1300. package/index.js +1 -0
  1301. package/methods.d.ts +1 -0
  1302. package/methods.js +1 -0
  1303. package/package.json +13 -13
  1304. package/platform.d.ts +1 -0
  1305. package/platform.js +1 -0
  1306. package/utils.d.ts +1 -0
  1307. package/utils.js +1 -0
  1308. package/worker.d.ts +1 -0
  1309. package/worker.js +1 -0
@@ -1,11 +1,10 @@
1
1
  import { tl } from '@mtcute/tl';
2
- import { Photo } from '../media/photo.js';
3
2
  import { MessageEntity } from '../messages/message-entity.js';
4
3
  import { EmojiStatus } from '../reactions/emoji-status.js';
5
4
  import { ChatColors } from './chat-colors.js';
6
- import { ChatLocation } from './chat-location.js';
7
5
  import { ChatPermissions } from './chat-permissions.js';
8
6
  import { ChatPhoto } from './chat-photo.js';
7
+ import { PeersIndex } from './peers-index.js';
9
8
  import { User } from './user.js';
10
9
  /**
11
10
  * Chat type. Can be:
@@ -21,13 +20,12 @@ export type ChatType = 'private' | 'bot' | 'group' | 'supergroup' | 'channel' |
21
20
  * A chat.
22
21
  */
23
22
  export declare class Chat {
24
- readonly fullPeer?: tl.RawUserFull | tl.TypeChatFull | undefined;
25
23
  readonly type: "chat";
26
24
  /**
27
25
  * Raw peer object that this {@link Chat} represents.
28
26
  */
29
27
  readonly peer: tl.RawUser | tl.RawChat | tl.RawChannel | tl.RawChatForbidden | tl.RawChannelForbidden;
30
- constructor(peer: tl.TypeUser | tl.TypeChat, fullPeer?: tl.RawUserFull | tl.TypeChatFull | undefined);
28
+ constructor(peer: tl.TypeUser | tl.TypeChat);
31
29
  /** Marked ID of this chat */
32
30
  get id(): number;
33
31
  /**
@@ -119,12 +117,6 @@ export declare class Chat {
119
117
  get hasJoinToSend(): boolean;
120
118
  /** Whether this group has content protection (i.e. disabled forwards) */
121
119
  get hasContentProtection(): boolean;
122
- /**
123
- * Whether this chat (user) has restricted sending them voice/video messages.
124
- *
125
- * Returned only in {@link TelegramClient.getFullChat}
126
- */
127
- get hasBlockedVoices(): boolean;
128
120
  /**
129
121
  * Title, for supergroups, channels and groups
130
122
  */
@@ -157,52 +149,9 @@ export declare class Chat {
157
149
  * Chat photo, if any.
158
150
  * Suitable for downloads only.
159
151
  *
160
- * If full chat information is available, prefer {@link fullPhoto} instead.
152
+ * If full chat information is available, prefer {@link FullChat#fullPhoto} instead.
161
153
  */
162
154
  get photo(): ChatPhoto | null;
163
- /**
164
- * Full information about this chat's photo, if any.
165
- *
166
- * Unlike {@link Chat.photo}, this field contains additional information
167
- * about the photo, such as its date, more sizes, and is the only
168
- * way to get the animated profile photo.
169
- *
170
- * This field takes into account any personal/fallback photo
171
- * that the user may have set
172
- *
173
- * Only available in {@link TelegramClient.getFullChat}
174
- */
175
- get fullPhoto(): Photo | null;
176
- /**
177
- * A custom photo (set by the current user) that should be displayed
178
- * instead of the actual chat photo.
179
- *
180
- * Currently only available for users.
181
- * Returned only in {@link TelegramClient.getFullChat}
182
- */
183
- get personalPhoto(): Photo | null;
184
- /**
185
- * Actual profile photo of the user, bypassing the custom one.
186
- *
187
- * Returned only in {@link TelegramClient.getFullChat}
188
- */
189
- get realPhoto(): Photo | null;
190
- /**
191
- * A photo that the user has set to be shown
192
- * in case their actual profile photo is not available
193
- * due to privacy settings.
194
- *
195
- * Currently only available for users.
196
- * Returned only in {@link TelegramClient.getFullChat}
197
- */
198
- get publicPhoto(): Photo | null;
199
- /**
200
- * Bio of the other party in a private chat, or description of a
201
- * group, supergroup or channel.
202
- *
203
- * Returned only in {@link TelegramClient.getFullChat}
204
- */
205
- get bio(): string | null;
206
155
  /**
207
156
  * User's or bot's assigned DC (data center).
208
157
  * Available only in case the user has set a public profile photo.
@@ -213,26 +162,6 @@ export declare class Chat {
213
162
  * to the administrator who set the current profile photo.
214
163
  */
215
164
  get dcId(): number | null;
216
- /**
217
- * Chat's permanent invite link, for groups, supergroups and channels.
218
- * Returned only in {@link TelegramClient.getFullChat}
219
- */
220
- get inviteLink(): string | null;
221
- /**
222
- * For supergroups, name of the group sticker set.
223
- * Returned only in {@link TelegramClient.getFullChat}
224
- */
225
- get stickerSetName(): string | null;
226
- /**
227
- * Whether the group sticker set can be changed by you.
228
- * Returned only in {@link TelegramClient.getFullChat}
229
- */
230
- get canSetStickerSet(): boolean | null;
231
- /**
232
- * Chat members count, for groups, supergroups and channels only.
233
- * Returned only in {@link TelegramClient.getFullChat}
234
- */
235
- get membersCount(): number | null;
236
165
  /**
237
166
  * The list of reasons why this chat might be unavailable to some users.
238
167
  * This field is available only in case {@link isRestricted} is `true`
@@ -256,25 +185,6 @@ export declare class Chat {
256
185
  * Returned only in {@link TelegramClient.getNearbyChats}
257
186
  */
258
187
  readonly distance?: number;
259
- /**
260
- * Location of the chat.
261
- * Returned only in {@link TelegramClient.getFullChat}
262
- */
263
- get location(): ChatLocation | null;
264
- private _linkedChat?;
265
- /**
266
- * The linked discussion group (in case of channels)
267
- * or the linked channel (in case of supergroups).
268
- *
269
- * Returned only in {@link TelegramClient.getFullChat}
270
- */
271
- get linkedChat(): Chat | null;
272
- /**
273
- * TTL of all messages in this chat, in seconds
274
- *
275
- * Returned only in {@link TelegramClient.getFullChat}
276
- */
277
- get ttlPeriod(): number | null;
278
188
  /**
279
189
  * Maximum ID of stories this chat has (or 0 if none)
280
190
  */
@@ -304,6 +214,10 @@ export declare class Chat {
304
214
  * Returns `null` if this is not a chat with user
305
215
  */
306
216
  get user(): User | null;
217
+ /** @internal */
218
+ static _parseFromMessage(message: tl.RawMessage | tl.RawMessageService, peers: PeersIndex): Chat;
219
+ /** @internal */
220
+ static _parseFromPeer(peer: tl.TypePeer, peers: PeersIndex): Chat;
307
221
  /**
308
222
  * Create a mention for the chat.
309
223
  *
@@ -5,11 +5,9 @@ const errors_js_1 = require("../../../types/errors.js");
5
5
  const peer_utils_js_1 = require("../../../utils/peer-utils.js");
6
6
  const index_js_1 = require("../../utils/index.js");
7
7
  const memoize_js_1 = require("../../utils/memoize.js");
8
- const photo_js_1 = require("../media/photo.js");
9
8
  const message_entity_js_1 = require("../messages/message-entity.js");
10
9
  const emoji_status_js_1 = require("../reactions/emoji-status.js");
11
10
  const chat_colors_js_1 = require("./chat-colors.js");
12
- const chat_location_js_1 = require("./chat-location.js");
13
11
  const chat_permissions_js_1 = require("./chat-permissions.js");
14
12
  const chat_photo_js_1 = require("./chat-photo.js");
15
13
  const user_js_1 = require("./user.js");
@@ -17,9 +15,12 @@ const user_js_1 = require("./user.js");
17
15
  * A chat.
18
16
  */
19
17
  class Chat {
20
- constructor(peer, fullPeer) {
21
- this.fullPeer = fullPeer;
22
- this.type = 'chat';
18
+ type = 'chat';
19
+ /**
20
+ * Raw peer object that this {@link Chat} represents.
21
+ */
22
+ peer;
23
+ constructor(peer) {
23
24
  if (!peer)
24
25
  throw new errors_js_1.MtArgumentError('peer is not available');
25
26
  switch (peer._) {
@@ -235,14 +236,6 @@ class Chat {
235
236
  get hasContentProtection() {
236
237
  return (this.peer._ === 'channel' || this.peer._ === 'chat') && this.peer.noforwards;
237
238
  }
238
- /**
239
- * Whether this chat (user) has restricted sending them voice/video messages.
240
- *
241
- * Returned only in {@link TelegramClient.getFullChat}
242
- */
243
- get hasBlockedVoices() {
244
- return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden;
245
- }
246
239
  /**
247
240
  * Title, for supergroups, channels and groups
248
241
  */
@@ -298,7 +291,7 @@ class Chat {
298
291
  * Chat photo, if any.
299
292
  * Suitable for downloads only.
300
293
  *
301
- * If full chat information is available, prefer {@link fullPhoto} instead.
294
+ * If full chat information is available, prefer {@link FullChat#fullPhoto} instead.
302
295
  */
303
296
  get photo() {
304
297
  if (!('photo' in this.peer) ||
@@ -308,86 +301,6 @@ class Chat {
308
301
  }
309
302
  return new chat_photo_js_1.ChatPhoto(this.inputPeer, this.peer.photo);
310
303
  }
311
- /**
312
- * Full information about this chat's photo, if any.
313
- *
314
- * Unlike {@link Chat.photo}, this field contains additional information
315
- * about the photo, such as its date, more sizes, and is the only
316
- * way to get the animated profile photo.
317
- *
318
- * This field takes into account any personal/fallback photo
319
- * that the user may have set
320
- *
321
- * Only available in {@link TelegramClient.getFullChat}
322
- */
323
- get fullPhoto() {
324
- if (!this.fullPeer)
325
- return null;
326
- let photo = undefined;
327
- switch (this.fullPeer._) {
328
- case 'userFull':
329
- photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto;
330
- break;
331
- case 'chatFull':
332
- case 'channelFull':
333
- photo = this.fullPeer.chatPhoto;
334
- }
335
- if (photo?._ !== 'photo')
336
- return null;
337
- return new photo_js_1.Photo(photo);
338
- }
339
- /**
340
- * A custom photo (set by the current user) that should be displayed
341
- * instead of the actual chat photo.
342
- *
343
- * Currently only available for users.
344
- * Returned only in {@link TelegramClient.getFullChat}
345
- */
346
- get personalPhoto() {
347
- if (!this.fullPeer || this.fullPeer._ !== 'userFull')
348
- return null;
349
- if (this.fullPeer.personalPhoto?._ !== 'photo')
350
- return null;
351
- return new photo_js_1.Photo(this.fullPeer.personalPhoto);
352
- }
353
- /**
354
- * Actual profile photo of the user, bypassing the custom one.
355
- *
356
- * Returned only in {@link TelegramClient.getFullChat}
357
- */
358
- get realPhoto() {
359
- if (!this.fullPeer)
360
- return null;
361
- if (this.fullPeer._ !== 'userFull')
362
- return this.fullPhoto;
363
- if (this.fullPeer.personalPhoto?._ !== 'photo')
364
- return null;
365
- return new photo_js_1.Photo(this.fullPeer.personalPhoto);
366
- }
367
- /**
368
- * A photo that the user has set to be shown
369
- * in case their actual profile photo is not available
370
- * due to privacy settings.
371
- *
372
- * Currently only available for users.
373
- * Returned only in {@link TelegramClient.getFullChat}
374
- */
375
- get publicPhoto() {
376
- if (!this.fullPeer || this.fullPeer._ !== 'userFull')
377
- return null;
378
- if (this.fullPeer.fallbackPhoto?._ !== 'photo')
379
- return null;
380
- return new photo_js_1.Photo(this.fullPeer.fallbackPhoto);
381
- }
382
- /**
383
- * Bio of the other party in a private chat, or description of a
384
- * group, supergroup or channel.
385
- *
386
- * Returned only in {@link TelegramClient.getFullChat}
387
- */
388
- get bio() {
389
- return this.fullPeer?.about ?? null;
390
- }
391
304
  /**
392
305
  * User's or bot's assigned DC (data center).
393
306
  * Available only in case the user has set a public profile photo.
@@ -403,50 +316,6 @@ class Chat {
403
316
  return (this.peer.photo
404
317
  ?.dcId ?? null);
405
318
  }
406
- /**
407
- * Chat's permanent invite link, for groups, supergroups and channels.
408
- * Returned only in {@link TelegramClient.getFullChat}
409
- */
410
- get inviteLink() {
411
- if (this.fullPeer && this.fullPeer._ !== 'userFull') {
412
- switch (this.fullPeer.exportedInvite?._) {
413
- case 'chatInvitePublicJoinRequests':
414
- return null;
415
- case 'chatInviteExported':
416
- return this.fullPeer.exportedInvite.link;
417
- }
418
- }
419
- return null;
420
- }
421
- /**
422
- * For supergroups, name of the group sticker set.
423
- * Returned only in {@link TelegramClient.getFullChat}
424
- */
425
- get stickerSetName() {
426
- return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.stickerset?.shortName ?? null : null;
427
- }
428
- /**
429
- * Whether the group sticker set can be changed by you.
430
- * Returned only in {@link TelegramClient.getFullChat}
431
- */
432
- get canSetStickerSet() {
433
- return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null;
434
- }
435
- /**
436
- * Chat members count, for groups, supergroups and channels only.
437
- * Returned only in {@link TelegramClient.getFullChat}
438
- */
439
- get membersCount() {
440
- if (this.fullPeer && this.fullPeer._ !== 'userFull') {
441
- if (this.fullPeer._ === 'chatFull' && this.fullPeer.participants._ === 'chatParticipants') {
442
- return this.fullPeer.participants.participants.length;
443
- }
444
- else if (this.fullPeer._ === 'channelFull') {
445
- return this.fullPeer.participantsCount ?? null;
446
- }
447
- }
448
- return null;
449
- }
450
319
  /**
451
320
  * The list of reasons why this chat might be unavailable to some users.
452
321
  * This field is available only in case {@link isRestricted} is `true`
@@ -480,32 +349,10 @@ class Chat {
480
349
  return 'adminRights' in this.peer ? this.peer.adminRights ?? null : null;
481
350
  }
482
351
  /**
483
- * Location of the chat.
484
- * Returned only in {@link TelegramClient.getFullChat}
352
+ * Distance in meters of this group chat from your location
353
+ * Returned only in {@link TelegramClient.getNearbyChats}
485
354
  */
486
- get location() {
487
- if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {
488
- return null;
489
- }
490
- return new chat_location_js_1.ChatLocation(this.fullPeer.location);
491
- }
492
- /**
493
- * The linked discussion group (in case of channels)
494
- * or the linked channel (in case of supergroups).
495
- *
496
- * Returned only in {@link TelegramClient.getFullChat}
497
- */
498
- get linkedChat() {
499
- return this._linkedChat ?? null;
500
- }
501
- /**
502
- * TTL of all messages in this chat, in seconds
503
- *
504
- * Returned only in {@link TelegramClient.getFullChat}
505
- */
506
- get ttlPeriod() {
507
- return this.fullPeer?.ttlPeriod ?? null;
508
- }
355
+ distance;
509
356
  /**
510
357
  * Maximum ID of stories this chat has (or 0 if none)
511
358
  */
@@ -574,30 +421,6 @@ class Chat {
574
421
  }
575
422
  return new Chat(peers.chat(peer.channelId));
576
423
  }
577
- /** @internal */
578
- static _parseFull(full) {
579
- if (full._ === 'users.userFull') {
580
- const user = full.users.find((it) => it.id === full.fullUser.id);
581
- if (!user || user._ === 'userEmpty') {
582
- throw new errors_js_1.MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined');
583
- }
584
- return new Chat(user, full.fullUser);
585
- }
586
- const fullChat = full.fullChat;
587
- let chat = undefined;
588
- let linked = undefined;
589
- for (const c of full.chats) {
590
- if (fullChat.id === c.id) {
591
- chat = c;
592
- }
593
- if (fullChat._ === 'channelFull' && fullChat.linkedChatId === c.id) {
594
- linked = c;
595
- }
596
- }
597
- const ret = new Chat(chat, fullChat);
598
- ret._linkedChat = linked ? new Chat(linked) : undefined;
599
- return ret;
600
- }
601
424
  /**
602
425
  * Create a mention for the chat.
603
426
  *
@@ -646,13 +469,8 @@ exports.Chat = Chat;
646
469
  'chatType',
647
470
  'usernames',
648
471
  'photo',
649
- 'fullPhoto',
650
- 'personalPhoto',
651
- 'realPhoto',
652
- 'publicPhoto',
653
472
  'permissions',
654
473
  'defaultPermissions',
655
- 'location',
656
474
  'user',
657
475
  'color',
658
476
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/chat.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError, MtTypeAssertionError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Photo } from '../media/photo.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatLocation } from './chat-location.js'\nimport { ChatPermissions } from './chat-permissions.js'\nimport { ChatPhoto } from './chat-photo.js'\nimport { PeersIndex } from './peers-index.js'\nimport { User } from './user.js'\n\n/**\n * Chat type. Can be:\n * - `private`: PM with other users or yourself (Saved Messages)\n * - `bot`: PM with a bot\n * - `group`: Legacy group\n * - `supergroup`: Supergroup\n * - `channel`: Broadcast channel\n * - `gigagroup`: Gigagroup aka Broadcast group\n */\nexport type ChatType = 'private' | 'bot' | 'group' | 'supergroup' | 'channel' | 'gigagroup'\n\n/**\n * A chat.\n */\nexport class Chat {\n readonly type = 'chat' as const\n\n /**\n * Raw peer object that this {@link Chat} represents.\n */\n readonly peer: tl.RawUser | tl.RawChat | tl.RawChannel | tl.RawChatForbidden | tl.RawChannelForbidden\n\n constructor(\n peer: tl.TypeUser | tl.TypeChat,\n readonly fullPeer?: tl.TypeUserFull | tl.TypeChatFull,\n ) {\n if (!peer) throw new MtArgumentError('peer is not available')\n\n switch (peer._) {\n case 'user':\n case 'chat':\n case 'channel':\n case 'chatForbidden':\n case 'channelForbidden':\n break\n default:\n throw new MtTypeAssertionError('peer', 'user | chat | channel', peer._)\n }\n\n this.peer = peer\n }\n\n /** Marked ID of this chat */\n get id(): number {\n return getMarkedPeerId(this.inputPeer)\n }\n\n /**\n * Whether this chat's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the chat'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 * - `isMember`\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.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 // avoid additional runtime checks\n return Boolean((this.peer as { min?: boolean }).min)\n }\n\n /**\n * Chat's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} chats, this method will return\n * > `mtcute.dummyInputPeerMin*`, which are 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 switch (this.peer._) {\n case 'user':\n if (this.peer.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.peer.id,\n }\n }\n\n if (!this.peer.accessHash) {\n throw new MtArgumentError(\"Peer's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.peer.id,\n accessHash: this.peer.accessHash,\n }\n case 'chat':\n case 'chatForbidden':\n return {\n _: 'inputPeerChat',\n chatId: this.peer.id,\n }\n case 'channel':\n case 'channelForbidden':\n if ((this.peer as tl.RawChannel).min) {\n return {\n _: 'mtcute.dummyInputPeerMinChannel',\n channelId: this.peer.id,\n }\n }\n\n if (!this.peer.accessHash) {\n throw new MtArgumentError(\"Peer's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerChannel',\n channelId: this.peer.id,\n accessHash: this.peer.accessHash,\n }\n }\n }\n\n /** Type of chat */\n get chatType(): ChatType {\n switch (this.peer._) {\n case 'user':\n return this.peer.bot ? 'bot' : 'private'\n case 'chat':\n case 'chatForbidden':\n return 'group'\n case 'channel':\n case 'channelForbidden':\n if (this.peer._ === 'channel' && this.peer.gigagroup) {\n return 'gigagroup'\n } else if (this.peer.broadcast) {\n return 'channel'\n }\n\n return 'supergroup'\n }\n }\n\n /**\n * Whether this chat is a group chat\n * (i.e. not a channel and not PM)\n */\n get isGroup(): boolean {\n switch (this.chatType) {\n case 'group':\n case 'supergroup':\n case 'gigagroup':\n return true\n }\n\n return false\n }\n\n /**\n * Whether this chat has been verified by Telegram.\n * Supergroups, channels and groups only\n */\n get isVerified(): boolean {\n return 'verified' in this.peer ? this.peer.verified! : false\n }\n\n /**\n * Whether this chat has been restricted.\n * See {@link restrictions} for details\n */\n get isRestricted(): boolean {\n return 'restricted' in this.peer ? this.peer.restricted! : false\n }\n\n /**\n * Whether this chat is owned by the current user.\n * Supergroups, channels and groups only\n */\n get isCreator(): boolean {\n return 'creator' in this.peer ? this.peer.creator! : false\n }\n\n /**\n * Whether current user has admin rights in this chat.\n * Supergroups, channels and groups only.\n */\n get isAdmin(): boolean {\n return 'adminRights' in this.peer && Boolean(this.peer.adminRights)\n }\n\n /** Whether this chat has been flagged for scam */\n get isScam(): boolean {\n return 'scam' in this.peer ? this.peer.scam! : false\n }\n\n /** Whether this chat has been flagged for impersonation */\n get isFake(): boolean {\n return 'fake' in this.peer ? this.peer.fake! : false\n }\n\n /** Whether this chat is part of the Telegram support team. Users and bots only */\n get isSupport(): boolean {\n return this.peer._ === 'user' && this.peer.support!\n }\n\n /** Whether this chat is chat with yourself (i.e. Saved Messages) */\n get isSelf(): boolean {\n return this.peer._ === 'user' && this.peer.self!\n }\n\n /** Whether this peer is your contact */\n get isContact(): boolean {\n return this.peer._ === 'user' && this.peer.contact!\n }\n\n /** Whether this peer is a forum supergroup */\n get isForum(): boolean {\n return this.peer._ === 'channel' && this.peer.forum!\n }\n\n /**\n * Whether the current user is a member of the chat.\n *\n * For users, this is always `true`.\n */\n get isMember(): boolean {\n switch (this.peer._) {\n case 'user':\n return true\n case 'channel':\n case 'chat':\n return !this.peer.left\n default:\n return false\n }\n }\n\n /** Whether you have hidden (arhived) this chat's stories */\n get storiesHidden(): boolean {\n return 'storiesHidden' in this.peer ? this.peer.storiesHidden! : false\n }\n\n get storiesUnavailable(): boolean {\n return 'storiesUnavailable' in this.peer ? this.peer.storiesUnavailable! : false\n }\n\n /** Whether this group is a channel/supergroup with join requests enabled */\n get hasJoinRequests(): boolean {\n return this.peer._ === 'channel' && this.peer.joinRequest!\n }\n\n /** Whether this group is a supergroup with join-to-send rule enabled */\n get hasJoinToSend(): boolean {\n return this.peer._ === 'channel' && this.peer.joinToSend!\n }\n\n /** Whether this group has content protection (i.e. disabled forwards) */\n get hasContentProtection(): boolean {\n return (this.peer._ === 'channel' || this.peer._ === 'chat') && this.peer.noforwards!\n }\n\n /**\n * Whether this chat (user) has restricted sending them voice/video messages.\n *\n * Returned only in {@link TelegramClient.getFullChat}\n */\n get hasBlockedVoices(): boolean {\n return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden!\n }\n\n /**\n * Title, for supergroups, channels and groups\n */\n get title(): string | null {\n return this.peer._ !== 'user' ? this.peer.title ?? null : null\n }\n\n /**\n * Username, for private chats, bots, supergroups and channels if available\n */\n get username(): string | null {\n if (!('username' in this.peer)) return null\n\n return this.peer.username ?? this.peer.usernames?.[0].username ?? null\n }\n\n /**\n * Usernames (inclufing collectibles), for private chats, bots, supergroups and channels if available\n */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (!('usernames' in this.peer)) return null\n\n return (\n this.peer.usernames ??\n (this.peer.username ? [{ _: 'username', username: this.peer.username, active: true }] : null)\n )\n }\n\n /**\n * First name of the other party in a private chat,\n * for private chats and bots\n */\n get firstName(): string | null {\n return this.peer._ === 'user' ? this.peer.firstName ?? null : null\n }\n\n /**\n * Last name of the other party in a private chat, for private chats\n */\n get lastName(): string | null {\n return this.peer._ === 'user' ? this.peer.lastName ?? null : null\n }\n\n /**\n * Get the display name of the chat.\n *\n * Title for groups and channels,\n * name (and last name if available) for users\n */\n get displayName(): string {\n if (this.peer._ === 'user') {\n if (this.peer.lastName) {\n return this.peer.firstName + ' ' + this.peer.lastName\n }\n\n return this.peer.firstName ?? 'Deleted Account'\n }\n\n return this.peer.title\n }\n\n /**\n * Chat photo, if any.\n * Suitable for downloads only.\n *\n * If full chat information is available, prefer {@link fullPhoto} instead.\n */\n get photo(): ChatPhoto | null {\n if (\n !('photo' in this.peer) ||\n !this.peer.photo ||\n (this.peer.photo._ !== 'userProfilePhoto' && this.peer.photo._ !== 'chatPhoto')\n ) {\n return null\n }\n\n return new ChatPhoto(this.inputPeer, this.peer.photo)\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 * Only available in {@link TelegramClient.getFullChat}\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 * Returned only in {@link TelegramClient.getFullChat}\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 * Returned only in {@link TelegramClient.getFullChat}\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 * Returned only in {@link TelegramClient.getFullChat}\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 * Returned only in {@link TelegramClient.getFullChat}\n */\n get bio(): string | null {\n return this.fullPeer?.about ?? 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 the current chat photo. It is accurate only in case\n * the owner has set the chat photo, otherwise it will be the DC assigned\n * to the administrator who set the current profile photo.\n */\n get dcId(): number | null {\n if (!('photo' in this.peer)) return null\n\n return (\n (this.peer.photo as Exclude<typeof this.peer.photo, tl.RawChatPhotoEmpty | tl.RawUserProfilePhotoEmpty>)\n ?.dcId ?? null\n )\n }\n\n /**\n * Chat's permanent invite link, for groups, supergroups and channels.\n * Returned only in {@link TelegramClient.getFullChat}\n */\n get inviteLink(): string | null {\n if (this.fullPeer && this.fullPeer._ !== 'userFull') {\n switch (this.fullPeer.exportedInvite?._) {\n case 'chatInvitePublicJoinRequests':\n return null\n case 'chatInviteExported':\n return this.fullPeer.exportedInvite.link\n }\n }\n\n return null\n }\n\n /**\n * For supergroups, name of the group sticker set.\n * Returned only in {@link TelegramClient.getFullChat}\n */\n get stickerSetName(): string | null {\n return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.stickerset?.shortName ?? null : null\n }\n\n /**\n * Whether the group sticker set can be changed by you.\n * Returned only in {@link TelegramClient.getFullChat}\n */\n get canSetStickerSet(): boolean | null {\n return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null\n }\n\n /**\n * Chat members count, for groups, supergroups and channels only.\n * Returned only in {@link TelegramClient.getFullChat}\n */\n get membersCount(): number | null {\n if (this.fullPeer && this.fullPeer._ !== 'userFull') {\n if (this.fullPeer._ === 'chatFull' && this.fullPeer.participants._ === 'chatParticipants') {\n return this.fullPeer.participants.participants.length\n } else if (this.fullPeer._ === 'channelFull') {\n return this.fullPeer.participantsCount ?? null\n }\n }\n\n return null\n }\n\n /**\n * The list of reasons why this chat might be unavailable to some users.\n * This field is available only in case {@link isRestricted} is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return 'restrictionReason' in this.peer ? this.peer.restrictionReason ?? null : null\n }\n\n /**\n * Current user's permissions, for supergroups.\n */\n get permissions(): ChatPermissions | null {\n if (!('bannedRights' in this.peer && this.peer.bannedRights)) {\n return null\n }\n\n return new ChatPermissions(this.peer.bannedRights)\n }\n\n /**\n * Default chat member permissions, for groups and supergroups.\n */\n get defaultPermissions(): ChatPermissions | null {\n if (!('defaultBannedRights' in this.peer) || !this.peer.defaultBannedRights) {\n return null\n }\n\n return new ChatPermissions(this.peer.defaultBannedRights)\n }\n\n /**\n * Admin rights of the current user in this chat.\n * `null` for PMs and non-administered chats\n */\n get adminRights(): tl.RawChatAdminRights | null {\n return 'adminRights' in this.peer ? this.peer.adminRights ?? null : null\n }\n\n /**\n * Distance in meters of this group chat from your location\n * Returned only in {@link TelegramClient.getNearbyChats}\n */\n readonly distance?: number\n\n /**\n * Location of the chat.\n * Returned only in {@link TelegramClient.getFullChat}\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 * The linked discussion group (in case of channels)\n * or the linked channel (in case of supergroups).\n *\n * Returned only in {@link TelegramClient.getFullChat}\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 * Returned only in {@link TelegramClient.getFullChat}\n */\n get ttlPeriod(): number | null {\n return this.fullPeer?.ttlPeriod ?? null\n }\n\n /**\n * Maximum ID of stories this chat has (or 0 if none)\n */\n get storiesMaxId(): number {\n switch (this.peer._) {\n case 'channel':\n case 'user':\n return this.peer.storiesMaxId ?? 0\n }\n\n return 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * the messages and web previews sent by this chat,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n const color = this.peer._ === 'user' || this.peer._ === 'channel' ? this.peer.color : undefined\n\n return new ChatColors(this.peer.id, color)\n }\n\n /**\n * Chat's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (this.peer._ !== 'user' && this.peer._ !== 'channel') return null\n if (!this.peer.emojiStatus || this.peer.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.peer.emojiStatus)\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 {\n const color = this.peer._ === 'user' || this.peer._ === 'channel' ? this.peer.profileColor : undefined\n\n return new ChatColors(this.peer.id, color)\n }\n\n /** Boosts level this chat has (0 if none or is not a channel) */\n get boostsLevel(): number {\n return this.peer._ === 'channel' ? this.peer.level ?? 0 : 0\n }\n\n /**\n * Get a {@link User} from this chat.\n *\n * Returns `null` if this is not a chat with user\n */\n get user(): User | null {\n if (this.peer._ !== 'user') return null\n\n return new User(this.peer)\n }\n\n /** @internal */\n static _parseFromMessage(message: tl.RawMessage | tl.RawMessageService, peers: PeersIndex): Chat {\n return Chat._parseFromPeer(message.peerId, peers)\n }\n\n /** @internal */\n static _parseFromPeer(peer: tl.TypePeer, peers: PeersIndex): Chat {\n switch (peer._) {\n case 'peerUser':\n return new Chat(peers.user(peer.userId))\n case 'peerChat':\n return new Chat(peers.chat(peer.chatId))\n }\n\n return new Chat(peers.chat(peer.channelId))\n }\n\n /** @internal */\n static _parseFull(full: tl.messages.RawChatFull | tl.users.TypeUserFull): Chat {\n if (full._ === 'users.userFull') {\n const user = full.users.find((it) => it.id === full.fullUser.id)\n\n if (!user || user._ === 'userEmpty') {\n throw new MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined')\n }\n\n return new Chat(user, full.fullUser)\n }\n\n const fullChat = full.fullChat\n let chat: tl.TypeChat | undefined = undefined\n let linked: tl.TypeChat | undefined = undefined\n\n for (const c of full.chats) {\n if (fullChat.id === c.id) {\n chat = c\n }\n if (fullChat._ === 'channelFull' && fullChat.linkedChatId === c.id) {\n linked = c\n }\n }\n\n const ret = new Chat(chat!, fullChat)\n ret._linkedChat = linked ? new Chat(linked) : undefined\n\n return ret\n }\n\n /**\n * Create a mention for the chat.\n *\n * If this is a user, works just like {@link User.mention}.\n * Otherwise, if the chat has a username, a `@username` is created\n * (or text link, if `text` is passed). If it does not, chat title is\n * simply returned without additional formatting.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created for the given (or default) parse mode\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, or `unparse` method directly.\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.chat.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (this.user) return this.user.mention(text)\n\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n if (!this.username) return text\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `https://t.me/${this.username}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(Chat, [\n 'inputPeer',\n 'chatType',\n 'usernames',\n 'photo',\n 'fullPhoto',\n 'personalPhoto',\n 'realPhoto',\n 'publicPhoto',\n 'permissions',\n 'defaultPermissions',\n 'location',\n 'user',\n 'color',\n])\nmakeInspectable(Chat, [], ['user'])\n"]}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/chat.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError, MtTypeAssertionError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.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 { ChatPermissions } from './chat-permissions.js'\nimport { ChatPhoto } from './chat-photo.js'\nimport { PeersIndex } from './peers-index.js'\nimport { User } from './user.js'\n\n/**\n * Chat type. Can be:\n * - `private`: PM with other users or yourself (Saved Messages)\n * - `bot`: PM with a bot\n * - `group`: Legacy group\n * - `supergroup`: Supergroup\n * - `channel`: Broadcast channel\n * - `gigagroup`: Gigagroup aka Broadcast group\n */\nexport type ChatType = 'private' | 'bot' | 'group' | 'supergroup' | 'channel' | 'gigagroup'\n\n/**\n * A chat.\n */\nexport class Chat {\n readonly type = 'chat' as const\n\n /**\n * Raw peer object that this {@link Chat} represents.\n */\n readonly peer: tl.RawUser | tl.RawChat | tl.RawChannel | tl.RawChatForbidden | tl.RawChannelForbidden\n\n constructor(peer: tl.TypeUser | tl.TypeChat) {\n if (!peer) throw new MtArgumentError('peer is not available')\n\n switch (peer._) {\n case 'user':\n case 'chat':\n case 'channel':\n case 'chatForbidden':\n case 'channelForbidden':\n break\n default:\n throw new MtTypeAssertionError('peer', 'user | chat | channel', peer._)\n }\n\n this.peer = peer\n }\n\n /** Marked ID of this chat */\n get id(): number {\n return getMarkedPeerId(this.inputPeer)\n }\n\n /**\n * Whether this chat's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the chat'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 * - `isMember`\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.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 // avoid additional runtime checks\n return Boolean((this.peer as { min?: boolean }).min)\n }\n\n /**\n * Chat's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} chats, this method will return\n * > `mtcute.dummyInputPeerMin*`, which are 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 switch (this.peer._) {\n case 'user':\n if (this.peer.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.peer.id,\n }\n }\n\n if (!this.peer.accessHash) {\n throw new MtArgumentError(\"Peer's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.peer.id,\n accessHash: this.peer.accessHash,\n }\n case 'chat':\n case 'chatForbidden':\n return {\n _: 'inputPeerChat',\n chatId: this.peer.id,\n }\n case 'channel':\n case 'channelForbidden':\n if ((this.peer as tl.RawChannel).min) {\n return {\n _: 'mtcute.dummyInputPeerMinChannel',\n channelId: this.peer.id,\n }\n }\n\n if (!this.peer.accessHash) {\n throw new MtArgumentError(\"Peer's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerChannel',\n channelId: this.peer.id,\n accessHash: this.peer.accessHash,\n }\n }\n }\n\n /** Type of chat */\n get chatType(): ChatType {\n switch (this.peer._) {\n case 'user':\n return this.peer.bot ? 'bot' : 'private'\n case 'chat':\n case 'chatForbidden':\n return 'group'\n case 'channel':\n case 'channelForbidden':\n if (this.peer._ === 'channel' && this.peer.gigagroup) {\n return 'gigagroup'\n } else if (this.peer.broadcast) {\n return 'channel'\n }\n\n return 'supergroup'\n }\n }\n\n /**\n * Whether this chat is a group chat\n * (i.e. not a channel and not PM)\n */\n get isGroup(): boolean {\n switch (this.chatType) {\n case 'group':\n case 'supergroup':\n case 'gigagroup':\n return true\n }\n\n return false\n }\n\n /**\n * Whether this chat has been verified by Telegram.\n * Supergroups, channels and groups only\n */\n get isVerified(): boolean {\n return 'verified' in this.peer ? this.peer.verified! : false\n }\n\n /**\n * Whether this chat has been restricted.\n * See {@link restrictions} for details\n */\n get isRestricted(): boolean {\n return 'restricted' in this.peer ? this.peer.restricted! : false\n }\n\n /**\n * Whether this chat is owned by the current user.\n * Supergroups, channels and groups only\n */\n get isCreator(): boolean {\n return 'creator' in this.peer ? this.peer.creator! : false\n }\n\n /**\n * Whether current user has admin rights in this chat.\n * Supergroups, channels and groups only.\n */\n get isAdmin(): boolean {\n return 'adminRights' in this.peer && Boolean(this.peer.adminRights)\n }\n\n /** Whether this chat has been flagged for scam */\n get isScam(): boolean {\n return 'scam' in this.peer ? this.peer.scam! : false\n }\n\n /** Whether this chat has been flagged for impersonation */\n get isFake(): boolean {\n return 'fake' in this.peer ? this.peer.fake! : false\n }\n\n /** Whether this chat is part of the Telegram support team. Users and bots only */\n get isSupport(): boolean {\n return this.peer._ === 'user' && this.peer.support!\n }\n\n /** Whether this chat is chat with yourself (i.e. Saved Messages) */\n get isSelf(): boolean {\n return this.peer._ === 'user' && this.peer.self!\n }\n\n /** Whether this peer is your contact */\n get isContact(): boolean {\n return this.peer._ === 'user' && this.peer.contact!\n }\n\n /** Whether this peer is a forum supergroup */\n get isForum(): boolean {\n return this.peer._ === 'channel' && this.peer.forum!\n }\n\n /**\n * Whether the current user is a member of the chat.\n *\n * For users, this is always `true`.\n */\n get isMember(): boolean {\n switch (this.peer._) {\n case 'user':\n return true\n case 'channel':\n case 'chat':\n return !this.peer.left\n default:\n return false\n }\n }\n\n /** Whether you have hidden (arhived) this chat's stories */\n get storiesHidden(): boolean {\n return 'storiesHidden' in this.peer ? this.peer.storiesHidden! : false\n }\n\n get storiesUnavailable(): boolean {\n return 'storiesUnavailable' in this.peer ? this.peer.storiesUnavailable! : false\n }\n\n /** Whether this group is a channel/supergroup with join requests enabled */\n get hasJoinRequests(): boolean {\n return this.peer._ === 'channel' && this.peer.joinRequest!\n }\n\n /** Whether this group is a supergroup with join-to-send rule enabled */\n get hasJoinToSend(): boolean {\n return this.peer._ === 'channel' && this.peer.joinToSend!\n }\n\n /** Whether this group has content protection (i.e. disabled forwards) */\n get hasContentProtection(): boolean {\n return (this.peer._ === 'channel' || this.peer._ === 'chat') && this.peer.noforwards!\n }\n\n /**\n * Title, for supergroups, channels and groups\n */\n get title(): string | null {\n return this.peer._ !== 'user' ? this.peer.title ?? null : null\n }\n\n /**\n * Username, for private chats, bots, supergroups and channels if available\n */\n get username(): string | null {\n if (!('username' in this.peer)) return null\n\n return this.peer.username ?? this.peer.usernames?.[0].username ?? null\n }\n\n /**\n * Usernames (inclufing collectibles), for private chats, bots, supergroups and channels if available\n */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (!('usernames' in this.peer)) return null\n\n return (\n this.peer.usernames ??\n (this.peer.username ? [{ _: 'username', username: this.peer.username, active: true }] : null)\n )\n }\n\n /**\n * First name of the other party in a private chat,\n * for private chats and bots\n */\n get firstName(): string | null {\n return this.peer._ === 'user' ? this.peer.firstName ?? null : null\n }\n\n /**\n * Last name of the other party in a private chat, for private chats\n */\n get lastName(): string | null {\n return this.peer._ === 'user' ? this.peer.lastName ?? null : null\n }\n\n /**\n * Get the display name of the chat.\n *\n * Title for groups and channels,\n * name (and last name if available) for users\n */\n get displayName(): string {\n if (this.peer._ === 'user') {\n if (this.peer.lastName) {\n return this.peer.firstName + ' ' + this.peer.lastName\n }\n\n return this.peer.firstName ?? 'Deleted Account'\n }\n\n return this.peer.title\n }\n\n /**\n * Chat photo, if any.\n * Suitable for downloads only.\n *\n * If full chat information is available, prefer {@link FullChat#fullPhoto} instead.\n */\n get photo(): ChatPhoto | null {\n if (\n !('photo' in this.peer) ||\n !this.peer.photo ||\n (this.peer.photo._ !== 'userProfilePhoto' && this.peer.photo._ !== 'chatPhoto')\n ) {\n return null\n }\n\n return new ChatPhoto(this.inputPeer, this.peer.photo)\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 the current chat photo. It is accurate only in case\n * the owner has set the chat photo, otherwise it will be the DC assigned\n * to the administrator who set the current profile photo.\n */\n get dcId(): number | null {\n if (!('photo' in this.peer)) return null\n\n return (\n (this.peer.photo as Exclude<typeof this.peer.photo, tl.RawChatPhotoEmpty | tl.RawUserProfilePhotoEmpty>)\n ?.dcId ?? null\n )\n }\n\n /**\n * The list of reasons why this chat might be unavailable to some users.\n * This field is available only in case {@link isRestricted} is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return 'restrictionReason' in this.peer ? this.peer.restrictionReason ?? null : null\n }\n\n /**\n * Current user's permissions, for supergroups.\n */\n get permissions(): ChatPermissions | null {\n if (!('bannedRights' in this.peer && this.peer.bannedRights)) {\n return null\n }\n\n return new ChatPermissions(this.peer.bannedRights)\n }\n\n /**\n * Default chat member permissions, for groups and supergroups.\n */\n get defaultPermissions(): ChatPermissions | null {\n if (!('defaultBannedRights' in this.peer) || !this.peer.defaultBannedRights) {\n return null\n }\n\n return new ChatPermissions(this.peer.defaultBannedRights)\n }\n\n /**\n * Admin rights of the current user in this chat.\n * `null` for PMs and non-administered chats\n */\n get adminRights(): tl.RawChatAdminRights | null {\n return 'adminRights' in this.peer ? this.peer.adminRights ?? null : null\n }\n\n /**\n * Distance in meters of this group chat from your location\n * Returned only in {@link TelegramClient.getNearbyChats}\n */\n readonly distance?: number\n\n /**\n * Maximum ID of stories this chat has (or 0 if none)\n */\n get storiesMaxId(): number {\n switch (this.peer._) {\n case 'channel':\n case 'user':\n return this.peer.storiesMaxId ?? 0\n }\n\n return 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * the messages and web previews sent by this chat,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n const color = this.peer._ === 'user' || this.peer._ === 'channel' ? this.peer.color : undefined\n\n return new ChatColors(this.peer.id, color)\n }\n\n /**\n * Chat's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (this.peer._ !== 'user' && this.peer._ !== 'channel') return null\n if (!this.peer.emojiStatus || this.peer.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.peer.emojiStatus)\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 {\n const color = this.peer._ === 'user' || this.peer._ === 'channel' ? this.peer.profileColor : undefined\n\n return new ChatColors(this.peer.id, color)\n }\n\n /** Boosts level this chat has (0 if none or is not a channel) */\n get boostsLevel(): number {\n return this.peer._ === 'channel' ? this.peer.level ?? 0 : 0\n }\n\n /**\n * Get a {@link User} from this chat.\n *\n * Returns `null` if this is not a chat with user\n */\n get user(): User | null {\n if (this.peer._ !== 'user') return null\n\n return new User(this.peer)\n }\n\n /** @internal */\n static _parseFromMessage(message: tl.RawMessage | tl.RawMessageService, peers: PeersIndex): Chat {\n return Chat._parseFromPeer(message.peerId, peers)\n }\n\n /** @internal */\n static _parseFromPeer(peer: tl.TypePeer, peers: PeersIndex): Chat {\n switch (peer._) {\n case 'peerUser':\n return new Chat(peers.user(peer.userId))\n case 'peerChat':\n return new Chat(peers.chat(peer.chatId))\n }\n\n return new Chat(peers.chat(peer.channelId))\n }\n\n /**\n * Create a mention for the chat.\n *\n * If this is a user, works just like {@link User.mention}.\n * Otherwise, if the chat has a username, a `@username` is created\n * (or text link, if `text` is passed). If it does not, chat title is\n * simply returned without additional formatting.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created for the given (or default) parse mode\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, or `unparse` method directly.\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.chat.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (this.user) return this.user.mention(text)\n\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n if (!this.username) return text\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `https://t.me/${this.username}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(Chat, [\n 'inputPeer',\n 'chatType',\n 'usernames',\n 'photo',\n 'permissions',\n 'defaultPermissions',\n 'user',\n 'color',\n])\nmakeInspectable(Chat, [], ['user'])\n"]}
@@ -9,6 +9,15 @@ const index_js_2 = require("../messages/index.js");
9
9
  const peer_js_1 = require("./peer.js");
10
10
  const peers_index_js_1 = require("./peers-index.js");
11
11
  class ForumTopic {
12
+ raw;
13
+ _peers;
14
+ _messages;
15
+ static COLOR_BLUE = 0x6fb9f0;
16
+ static COLOR_YELLOW = 0xffd67e;
17
+ static COLOR_PURPLE = 0xcb86db;
18
+ static COLOR_GREEN = 0x8eee98;
19
+ static COLOR_PINK = 0xff93b2;
20
+ static COLOR_RED = 0xfb6f5f;
12
21
  constructor(raw, _peers, _messages) {
13
22
  this.raw = raw;
14
23
  this._peers = _peers;
@@ -147,12 +156,6 @@ class ForumTopic {
147
156
  }
148
157
  }
149
158
  exports.ForumTopic = ForumTopic;
150
- ForumTopic.COLOR_BLUE = 0x6fb9f0;
151
- ForumTopic.COLOR_YELLOW = 0xffd67e;
152
- ForumTopic.COLOR_PURPLE = 0xcb86db;
153
- ForumTopic.COLOR_GREEN = 0x8eee98;
154
- ForumTopic.COLOR_PINK = 0xff93b2;
155
- ForumTopic.COLOR_RED = 0xfb6f5f;
156
159
  (0, memoize_js_1.memoizeGetters)(ForumTopic, ['creator', 'lastMessage', 'draftMessage']);
157
160
  (0, index_js_1.makeInspectable)(ForumTopic);
158
161
  //# sourceMappingURL=forum-topic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forum-topic.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/forum-topic.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { hasValueAtKey } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtMessageNotFoundError } from '../errors.js'\nimport { DraftMessage, Message } from '../messages/index.js'\nimport { parsePeer, Peer } from './peer.js'\nimport { PeersIndex } from './peers-index.js'\n\nexport class ForumTopic {\n static COLOR_BLUE = 0x6fb9f0\n static COLOR_YELLOW = 0xffd67e\n static COLOR_PURPLE = 0xcb86db\n static COLOR_GREEN = 0x8eee98\n static COLOR_PINK = 0xff93b2\n static COLOR_RED = 0xfb6f5f\n\n constructor(\n readonly raw: tl.RawForumTopic,\n readonly _peers: PeersIndex,\n readonly _messages?: Map<number, tl.TypeMessage>,\n ) {}\n\n static parseTlForumTopics(topics: tl.messages.TypeForumTopics): ForumTopic[] {\n const peers = PeersIndex.from(topics)\n const messages = new Map<number, tl.TypeMessage>()\n\n topics.messages.forEach((msg) => {\n if (!msg.peerId) return\n\n messages.set(msg.id, msg)\n })\n\n return topics.topics.filter(hasValueAtKey('_', 'forumTopic')).map((it) => new ForumTopic(it, peers, messages))\n }\n\n /**\n * Whether the topic was created by the current user\n */\n get isMy(): boolean {\n return this.raw.my!\n }\n\n /**\n * Whether the topic is closed\n */\n get isClosed(): boolean {\n return this.raw.closed!\n }\n\n /**\n * Whether the topic is pinned\n */\n get isPinned(): boolean {\n return this.raw.pinned!\n }\n\n /**\n * Whether this constructor is a reduced version of the full topic information.\n *\n * If `true`, only {@link isMy}, {@link isClosed}, {@link id}, {@link date},\n * {@link title}, {@link iconColor}, {@link iconCustomEmoji} and {@link creator}\n * parameters will contain valid information.\n */\n get isShort(): boolean {\n return this.raw.short!\n }\n\n /**\n * ID of the topic\n */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Date when the topic was created\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Title of the topic\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Color of the topic's icon, used as a fallback\n * in case {@link iconEmoji} is not set.\n *\n * One of the static `COLOR_*` fields.\n */\n get iconColor(): number | null {\n return this.raw.iconColor ?? null\n }\n\n /**\n * Emoji used as the topic's icon.\n */\n get iconCustomEmoji(): tl.Long | null {\n return this.raw.iconEmojiId ?? null\n }\n\n /**\n * Creator of the topic\n */\n get creator(): Peer {\n return parsePeer(this.raw.fromId, this._peers)\n }\n\n /**\n * The latest message sent in this topic\n */\n get lastMessage(): Message {\n const id = this.raw.topMessage\n\n if (this._messages?.has(id)) {\n return new Message(this._messages.get(id)!, this._peers)\n }\n\n throw new MtMessageNotFoundError(0, id)\n }\n\n /**\n * ID of the last read outgoing message in this topic\n */\n get lastReadIngoing(): number {\n return this.raw.readInboxMaxId\n }\n\n /**\n * ID of the last read ingoing message in this topic\n */\n get lastReadOutgoing(): number {\n return this.raw.readOutboxMaxId\n }\n\n /**\n * ID of the last read message in this topic\n */\n get lastRead(): number {\n return Math.max(this.raw.readOutboxMaxId, this.raw.readInboxMaxId)\n }\n\n /**\n * Number of unread messages in the topic\n */\n get unreadCount(): number {\n return this.raw.unreadCount\n }\n\n /**\n * Number of unread mentions in the topic\n */\n get unreadMentionsCount(): number {\n return this.raw.unreadMentionsCount\n }\n\n /**\n * Number of unread reactions in the topic\n */\n get unreadReactionsCount(): number {\n return this.raw.unreadReactionsCount\n }\n\n /**\n * Draft message in the topic\n */\n get draftMessage(): DraftMessage | null {\n if (!this.raw.draft || this.raw.draft._ === 'draftMessageEmpty') return null\n\n return new DraftMessage(this.raw.draft)\n }\n}\n\nmemoizeGetters(ForumTopic, ['creator', 'lastMessage', 'draftMessage'])\nmakeInspectable(ForumTopic)\n"]}
1
+ {"version":3,"file":"forum-topic.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/forum-topic.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { hasValueAtKey } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtMessageNotFoundError } from '../errors.js'\nimport { DraftMessage, Message } from '../messages/index.js'\nimport { parsePeer, Peer } from './peer.js'\nimport { PeersIndex } from './peers-index.js'\n\nexport class ForumTopic {\n static COLOR_BLUE = 0x6fb9f0\n static COLOR_YELLOW = 0xffd67e\n static COLOR_PURPLE = 0xcb86db\n static COLOR_GREEN = 0x8eee98\n static COLOR_PINK = 0xff93b2\n static COLOR_RED = 0xfb6f5f\n\n constructor(\n readonly raw: tl.RawForumTopic,\n readonly _peers: PeersIndex,\n readonly _messages?: Map<number, tl.TypeMessage>,\n ) {}\n\n static parseTlForumTopics(topics: tl.messages.TypeForumTopics): ForumTopic[] {\n const peers = PeersIndex.from(topics)\n const messages = new Map<number, tl.TypeMessage>()\n\n topics.messages.forEach((msg) => {\n if (!msg.peerId) return\n\n messages.set(msg.id, msg)\n })\n\n return topics.topics.filter(hasValueAtKey('_', 'forumTopic')).map((it) => new ForumTopic(it, peers, messages))\n }\n\n /**\n * Whether the topic was created by the current user\n */\n get isMy(): boolean {\n return this.raw.my!\n }\n\n /**\n * Whether the topic is closed\n */\n get isClosed(): boolean {\n return this.raw.closed!\n }\n\n /**\n * Whether the topic is pinned\n */\n get isPinned(): boolean {\n return this.raw.pinned!\n }\n\n /**\n * Whether this constructor is a reduced version of the full topic information.\n *\n * If `true`, only {@link isMy}, {@link isClosed}, {@link id}, {@link date},\n * {@link title}, {@link iconColor}, {@link iconCustomEmoji} and {@link creator}\n * parameters will contain valid information.\n */\n get isShort(): boolean {\n return this.raw.short!\n }\n\n /**\n * ID of the topic\n */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Date when the topic was created\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Title of the topic\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Color of the topic's icon, used as a fallback\n * in case {@link iconEmoji} is not set.\n *\n * One of the static `COLOR_*` fields.\n */\n get iconColor(): number | null {\n return this.raw.iconColor ?? null\n }\n\n /**\n * Emoji used as the topic's icon.\n */\n get iconCustomEmoji(): tl.Long | null {\n return this.raw.iconEmojiId ?? null\n }\n\n /**\n * Creator of the topic\n */\n get creator(): Peer {\n return parsePeer(this.raw.fromId, this._peers)\n }\n\n /**\n * The latest message sent in this topic\n */\n get lastMessage(): Message {\n const id = this.raw.topMessage\n\n if (this._messages?.has(id)) {\n return new Message(this._messages.get(id)!, this._peers)\n }\n\n throw new MtMessageNotFoundError(0, id)\n }\n\n /**\n * ID of the last read outgoing message in this topic\n */\n get lastReadIngoing(): number {\n return this.raw.readInboxMaxId\n }\n\n /**\n * ID of the last read ingoing message in this topic\n */\n get lastReadOutgoing(): number {\n return this.raw.readOutboxMaxId\n }\n\n /**\n * ID of the last read message in this topic\n */\n get lastRead(): number {\n return Math.max(this.raw.readOutboxMaxId, this.raw.readInboxMaxId)\n }\n\n /**\n * Number of unread messages in the topic\n */\n get unreadCount(): number {\n return this.raw.unreadCount\n }\n\n /**\n * Number of unread mentions in the topic\n */\n get unreadMentionsCount(): number {\n return this.raw.unreadMentionsCount\n }\n\n /**\n * Number of unread reactions in the topic\n */\n get unreadReactionsCount(): number {\n return this.raw.unreadReactionsCount\n }\n\n /**\n * Draft message in the topic\n */\n get draftMessage(): DraftMessage | null {\n if (!this.raw.draft || this.raw.draft._ === 'draftMessageEmpty') return null\n\n return new DraftMessage(this.raw.draft)\n }\n}\n\nmemoizeGetters(ForumTopic, ['creator', 'lastMessage', 'draftMessage'])\nmakeInspectable(ForumTopic)\n"]}