@mtcute/core 0.11.0 → 0.12.1

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 (471) hide show
  1. package/cjs/highlevel/client.d.ts +198 -18
  2. package/cjs/highlevel/client.js +53 -0
  3. package/cjs/highlevel/client.js.map +1 -1
  4. package/cjs/highlevel/methods/_imports.js.map +1 -1
  5. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  6. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  7. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  8. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  9. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  10. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  11. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  12. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  13. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  14. package/cjs/highlevel/methods/files/normalize-input-media.js +11 -10
  15. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  16. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  17. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  18. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  19. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  20. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  21. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  22. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  23. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  24. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  25. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  26. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  27. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  28. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  29. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  30. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  31. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  32. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  33. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  34. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  35. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  36. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  37. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  38. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  39. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  40. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  41. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  42. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  43. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  44. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  45. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  46. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  47. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  48. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  49. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  50. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  51. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  52. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  53. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  54. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  55. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  56. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  57. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  58. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  59. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  60. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  61. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  62. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  63. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  64. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  65. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  66. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  67. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  68. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  69. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  70. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  71. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  72. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  73. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  74. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  75. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  76. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  77. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  78. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  79. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  80. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  81. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  82. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  83. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  84. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  85. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  86. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  87. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  88. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  89. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  90. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  91. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  92. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  93. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  94. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  95. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  96. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  97. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  98. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  99. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  100. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  101. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  102. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  103. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  104. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  105. package/cjs/highlevel/methods.d.ts +12 -0
  106. package/cjs/highlevel/methods.js +33 -3
  107. package/cjs/highlevel/methods.js.map +1 -1
  108. package/cjs/highlevel/storage/storage.d.ts +7 -2
  109. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  110. package/cjs/highlevel/types/auth/sent-code.js +14 -0
  111. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  112. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  113. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  114. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  115. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  116. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  117. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  118. package/cjs/highlevel/types/files/utils.js.map +1 -1
  119. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  120. package/cjs/highlevel/types/media/document-utils.js +9 -2
  121. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  122. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  123. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  124. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  125. package/cjs/highlevel/types/media/poll.js +65 -18
  126. package/cjs/highlevel/types/media/poll.js.map +1 -1
  127. package/cjs/highlevel/types/messages/dialog.js +1 -12
  128. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  129. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  130. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  131. package/cjs/highlevel/types/messages/message-action.js +6 -0
  132. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  133. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  134. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  135. package/cjs/highlevel/types/messages/message.js +96 -1
  136. package/cjs/highlevel/types/messages/message.js.map +1 -1
  137. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  138. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  139. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  140. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  141. package/cjs/highlevel/types/misc/entities.js +15 -0
  142. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  143. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  144. package/cjs/highlevel/types/misc/index.js +1 -0
  145. package/cjs/highlevel/types/misc/index.js.map +1 -1
  146. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  147. package/cjs/highlevel/types/misc/sticker-set.js +36 -5
  148. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  149. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  150. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  151. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  152. package/cjs/highlevel/types/peers/chat.js +2 -195
  153. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  154. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  155. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  156. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  157. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  158. package/cjs/highlevel/types/peers/index.js +1 -0
  159. package/cjs/highlevel/types/peers/index.js.map +1 -1
  160. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  161. package/cjs/highlevel/types/peers/user.js +7 -0
  162. package/cjs/highlevel/types/peers/user.js.map +1 -1
  163. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  164. package/cjs/highlevel/types/premium/business-account.js +45 -0
  165. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  166. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  167. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  168. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  169. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  170. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  171. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  172. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  173. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  174. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  175. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  176. package/cjs/highlevel/types/premium/business-location.js +26 -0
  177. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  178. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  179. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  180. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  181. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  182. package/cjs/highlevel/types/premium/index.js +5 -0
  183. package/cjs/highlevel/types/premium/index.js.map +1 -1
  184. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  185. package/cjs/highlevel/types/updates/business-message.js +35 -0
  186. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  187. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  188. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  189. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  190. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  191. package/cjs/highlevel/types/updates/index.js +5 -1
  192. package/cjs/highlevel/types/updates/index.js.map +1 -1
  193. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  194. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  195. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  196. package/cjs/highlevel/types/updates/poll-update.js +2 -2
  197. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  198. package/cjs/highlevel/updates/manager.d.ts +0 -1
  199. package/cjs/highlevel/updates/manager.js +7 -2
  200. package/cjs/highlevel/updates/manager.js.map +1 -1
  201. package/cjs/highlevel/updates/parsed.js +8 -2
  202. package/cjs/highlevel/updates/parsed.js.map +1 -1
  203. package/cjs/highlevel/updates/types.d.ts +57 -0
  204. package/cjs/highlevel/updates/utils.d.ts +2 -0
  205. package/cjs/highlevel/utils/inspectable.js +7 -0
  206. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  207. package/cjs/highlevel/worker/index.js +6 -0
  208. package/cjs/highlevel/worker/protocol.d.ts +0 -1
  209. package/cjs/index.js +6 -0
  210. package/cjs/network/client.d.ts +2 -2
  211. package/cjs/network/client.js +9 -1
  212. package/cjs/network/client.js.map +1 -1
  213. package/cjs/network/mtproto-session.d.ts +0 -1
  214. package/cjs/network/multi-session-connection.d.ts +0 -1
  215. package/cjs/network/network-manager.d.ts +8 -0
  216. package/cjs/network/network-manager.js +9 -4
  217. package/cjs/network/network-manager.js.map +1 -1
  218. package/cjs/network/persistent-connection.d.ts +0 -1
  219. package/cjs/network/session-connection.js +11 -0
  220. package/cjs/network/session-connection.js.map +1 -1
  221. package/cjs/network/transports/abstract.d.ts +0 -1
  222. package/cjs/network/transports/streamed.d.ts +0 -1
  223. package/cjs/network/transports/wrapped.d.ts +0 -1
  224. package/cjs/platform.js +6 -0
  225. package/cjs/storage/sqlite/repository/peers.js +1 -2
  226. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  227. package/cjs/storage/storage.d.ts +21 -0
  228. package/cjs/types/utils.d.ts +1 -0
  229. package/cjs/types/utils.js.map +1 -1
  230. package/cjs/utils/index.js +6 -0
  231. package/cjs/utils/reloadable.d.ts +0 -1
  232. package/client.d.ts +1 -0
  233. package/client.js +1 -0
  234. package/esm/highlevel/client.d.ts +198 -18
  235. package/esm/highlevel/client.js +47 -0
  236. package/esm/highlevel/client.js.map +1 -1
  237. package/esm/highlevel/methods/_imports.js.map +1 -1
  238. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  239. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  240. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  241. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  242. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  243. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  244. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  245. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  246. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  247. package/esm/highlevel/methods/files/normalize-input-media.js +11 -10
  248. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  249. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  250. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  251. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  252. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  253. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  254. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  255. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  256. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  257. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  258. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  259. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  260. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  261. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  262. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  263. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  264. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  265. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  266. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  267. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  268. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  269. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  270. package/esm/highlevel/methods/messages/search-global.js +2 -1
  271. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  272. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  273. package/esm/highlevel/methods/messages/send-common.js +19 -0
  274. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  275. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  276. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  277. package/esm/highlevel/methods/messages/send-media.js +4 -2
  278. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  279. package/esm/highlevel/methods/messages/send-text.js +4 -2
  280. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  281. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  282. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  283. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  284. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  285. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  286. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  287. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  288. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  289. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  290. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  291. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  292. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  293. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  294. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  295. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  296. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  297. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  298. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  299. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  300. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  301. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  302. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  303. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  304. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  305. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  306. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  307. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  308. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  309. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  310. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  311. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  312. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  313. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  314. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  315. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  316. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  317. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  318. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  319. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  320. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  321. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  322. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  323. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  324. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  325. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  326. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  327. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  328. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  329. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  330. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  331. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  332. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  333. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  334. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  335. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  336. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  337. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  338. package/esm/highlevel/methods.d.ts +12 -0
  339. package/esm/highlevel/methods.js +12 -0
  340. package/esm/highlevel/methods.js.map +1 -1
  341. package/esm/highlevel/storage/storage.d.ts +7 -2
  342. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  343. package/esm/highlevel/types/auth/sent-code.js +14 -0
  344. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  345. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  346. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  347. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  348. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  349. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  350. package/esm/highlevel/types/files/utils.d.ts +6 -5
  351. package/esm/highlevel/types/files/utils.js.map +1 -1
  352. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  353. package/esm/highlevel/types/media/document-utils.js +7 -1
  354. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  355. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  356. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  357. package/esm/highlevel/types/media/poll.d.ts +17 -6
  358. package/esm/highlevel/types/media/poll.js +64 -17
  359. package/esm/highlevel/types/media/poll.js.map +1 -1
  360. package/esm/highlevel/types/messages/dialog.js +1 -12
  361. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  362. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  363. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  364. package/esm/highlevel/types/messages/message-action.js +6 -0
  365. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  366. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  367. package/esm/highlevel/types/messages/message.d.ts +59 -1
  368. package/esm/highlevel/types/messages/message.js +96 -1
  369. package/esm/highlevel/types/messages/message.js.map +1 -1
  370. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  371. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  372. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  373. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  374. package/esm/highlevel/types/misc/entities.js +13 -1
  375. package/esm/highlevel/types/misc/entities.js.map +1 -1
  376. package/esm/highlevel/types/misc/index.d.ts +1 -0
  377. package/esm/highlevel/types/misc/index.js +1 -0
  378. package/esm/highlevel/types/misc/index.js.map +1 -1
  379. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  380. package/esm/highlevel/types/misc/sticker-set.js +38 -7
  381. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  382. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  383. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  384. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  385. package/esm/highlevel/types/peers/chat.js +2 -195
  386. package/esm/highlevel/types/peers/chat.js.map +1 -1
  387. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  388. package/esm/highlevel/types/peers/full-chat.js +234 -0
  389. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  390. package/esm/highlevel/types/peers/index.d.ts +1 -0
  391. package/esm/highlevel/types/peers/index.js +1 -0
  392. package/esm/highlevel/types/peers/index.js.map +1 -1
  393. package/esm/highlevel/types/peers/user.d.ts +5 -0
  394. package/esm/highlevel/types/peers/user.js +7 -0
  395. package/esm/highlevel/types/peers/user.js.map +1 -1
  396. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  397. package/esm/highlevel/types/premium/business-account.js +42 -0
  398. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  399. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  400. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  401. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  402. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  403. package/esm/highlevel/types/premium/business-connection.js +42 -0
  404. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  405. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  406. package/esm/highlevel/types/premium/business-intro.js +40 -0
  407. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  408. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  409. package/esm/highlevel/types/premium/business-location.js +23 -0
  410. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  411. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  412. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  413. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  414. package/esm/highlevel/types/premium/index.d.ts +5 -0
  415. package/esm/highlevel/types/premium/index.js +5 -0
  416. package/esm/highlevel/types/premium/index.js.map +1 -1
  417. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  418. package/esm/highlevel/types/updates/business-message.js +31 -0
  419. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  420. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  421. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  422. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  423. package/esm/highlevel/types/updates/index.d.ts +19 -2
  424. package/esm/highlevel/types/updates/index.js +3 -1
  425. package/esm/highlevel/types/updates/index.js.map +1 -1
  426. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  427. package/esm/highlevel/types/updates/parse-update.js +9 -1
  428. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  429. package/esm/highlevel/types/updates/poll-update.js +2 -2
  430. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  431. package/esm/highlevel/updates/manager.d.ts +0 -1
  432. package/esm/highlevel/updates/manager.js +7 -2
  433. package/esm/highlevel/updates/manager.js.map +1 -1
  434. package/esm/highlevel/updates/parsed.js +8 -2
  435. package/esm/highlevel/updates/parsed.js.map +1 -1
  436. package/esm/highlevel/updates/types.d.ts +57 -0
  437. package/esm/highlevel/updates/utils.d.ts +2 -0
  438. package/esm/highlevel/utils/inspectable.js +4 -0
  439. package/esm/highlevel/utils/inspectable.js.map +1 -1
  440. package/esm/highlevel/worker/protocol.d.ts +0 -1
  441. package/esm/network/client.d.ts +2 -2
  442. package/esm/network/client.js +9 -1
  443. package/esm/network/client.js.map +1 -1
  444. package/esm/network/mtproto-session.d.ts +0 -1
  445. package/esm/network/multi-session-connection.d.ts +0 -1
  446. package/esm/network/network-manager.d.ts +8 -0
  447. package/esm/network/network-manager.js +9 -4
  448. package/esm/network/network-manager.js.map +1 -1
  449. package/esm/network/persistent-connection.d.ts +0 -1
  450. package/esm/network/session-connection.js +11 -0
  451. package/esm/network/session-connection.js.map +1 -1
  452. package/esm/network/transports/abstract.d.ts +0 -1
  453. package/esm/network/transports/streamed.d.ts +0 -1
  454. package/esm/network/transports/wrapped.d.ts +0 -1
  455. package/esm/storage/sqlite/repository/peers.js +1 -2
  456. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  457. package/esm/storage/storage.d.ts +21 -0
  458. package/esm/types/utils.d.ts +1 -0
  459. package/esm/types/utils.js.map +1 -1
  460. package/esm/utils/reloadable.d.ts +0 -1
  461. package/index.d.ts +1 -0
  462. package/index.js +1 -0
  463. package/methods.d.ts +1 -0
  464. package/methods.js +1 -0
  465. package/package.json +5 -5
  466. package/platform.d.ts +1 -0
  467. package/platform.js +1 -0
  468. package/utils.d.ts +1 -0
  469. package/utils.js +1 -0
  470. package/worker.d.ts +1 -0
  471. package/worker.js +1 -0
@@ -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"]}
@@ -0,0 +1,103 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { Photo } from '../media/photo.js';
3
+ import { StickerSet } from '../misc/sticker-set.js';
4
+ import { BusinessAccount } from '../premium/business-account.js';
5
+ import { Chat } from './chat.js';
6
+ import { ChatInviteLink } from './chat-invite-link.js';
7
+ import { ChatLocation } from './chat-location.js';
8
+ /**
9
+ * Complete information about a particular chat.
10
+ */
11
+ export declare class FullChat extends Chat {
12
+ readonly fullPeer: tl.TypeUserFull | tl.TypeChatFull;
13
+ constructor(peer: tl.TypeUser | tl.TypeChat, fullPeer: tl.TypeUserFull | tl.TypeChatFull);
14
+ /** @internal */
15
+ static _parse(full: tl.messages.RawChatFull | tl.users.TypeUserFull): FullChat;
16
+ /**
17
+ * Whether this chat (user) has restricted sending them voice/video messages.
18
+ */
19
+ get hasBlockedVoices(): boolean;
20
+ /**
21
+ * Full information about this chat's photo, if any.
22
+ *
23
+ * Unlike {@link Chat.photo}, this field contains additional information
24
+ * about the photo, such as its date, more sizes, and is the only
25
+ * way to get the animated profile photo.
26
+ *
27
+ * This field takes into account any personal/fallback photo
28
+ * that the user may have set
29
+ */
30
+ get fullPhoto(): Photo | null;
31
+ /**
32
+ * A custom photo (set by the current user) that should be displayed
33
+ * instead of the actual chat photo.
34
+ *
35
+ * Currently only available for users.
36
+ */
37
+ get personalPhoto(): Photo | null;
38
+ /**
39
+ * Actual profile photo of the user, bypassing the custom one.
40
+ */
41
+ get realPhoto(): Photo | null;
42
+ /**
43
+ * A photo that the user has set to be shown
44
+ * in case their actual profile photo is not available
45
+ * due to privacy settings.
46
+ *
47
+ * Currently only available for users.
48
+ */
49
+ get publicPhoto(): Photo | null;
50
+ /**
51
+ * Bio of the other party in a private chat, or description of a
52
+ * group, supergroup or channel.
53
+ */
54
+ get bio(): string | null;
55
+ /**
56
+ * Chat's primary invite link, for groups, supergroups and channels.
57
+ */
58
+ get inviteLink(): ChatInviteLink | null;
59
+ /**
60
+ * For supergroups, information about the group sticker set.
61
+ */
62
+ get stickerSet(): StickerSet | null;
63
+ /**
64
+ * For supergroups, information about the group emoji set.
65
+ */
66
+ get emojiSet(): StickerSet | null;
67
+ /**
68
+ * Whether the group sticker set can be changed by you.
69
+ */
70
+ get canSetStickerSet(): boolean | null;
71
+ /**
72
+ * Number of boosts applied by the current user to this chat.
73
+ */
74
+ get boostsApplied(): number;
75
+ /**
76
+ * Number of boosts required for the user to be unrestricted in this chat.
77
+ */
78
+ get boostsForUnrestrict(): number;
79
+ /**
80
+ * Chat members count, for groups, supergroups and channels only.
81
+ */
82
+ get membersCount(): number | null;
83
+ /**
84
+ * Location of the chat.
85
+ */
86
+ get location(): ChatLocation | null;
87
+ private _linkedChat?;
88
+ /**
89
+ * Information about a linked chat:
90
+ * - for channels: the discussion group
91
+ * - for supergroups: the linked channel
92
+ * - for users: the personal channel
93
+ */
94
+ get linkedChat(): Chat | null;
95
+ /**
96
+ * TTL of all messages in this chat, in seconds
97
+ */
98
+ get ttlPeriod(): number | null;
99
+ /**
100
+ * If this is a business account, information about the business.
101
+ */
102
+ get business(): BusinessAccount | null;
103
+ }
@@ -0,0 +1,234 @@
1
+ import { MtTypeAssertionError } from '../../../types/errors.js';
2
+ import { makeInspectable } from '../../utils/inspectable.js';
3
+ import { memoizeGetters } from '../../utils/memoize.js';
4
+ import { Photo } from '../media/photo.js';
5
+ import { StickerSet } from '../misc/sticker-set.js';
6
+ import { BusinessAccount } from '../premium/business-account.js';
7
+ import { Chat } from './chat.js';
8
+ import { ChatInviteLink } from './chat-invite-link.js';
9
+ import { ChatLocation } from './chat-location.js';
10
+ import { PeersIndex } from './peers-index.js';
11
+ /**
12
+ * Complete information about a particular chat.
13
+ */
14
+ class FullChat extends Chat {
15
+ fullPeer;
16
+ constructor(peer, fullPeer) {
17
+ super(peer);
18
+ this.fullPeer = fullPeer;
19
+ }
20
+ /** @internal */
21
+ static _parse(full) {
22
+ const peers = PeersIndex.from(full);
23
+ if (full._ === 'users.userFull') {
24
+ const { fullUser } = full;
25
+ const user = peers.user(full.fullUser.id);
26
+ if (!user || user._ === 'userEmpty') {
27
+ throw new MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined');
28
+ }
29
+ const ret = new FullChat(user, fullUser);
30
+ if (fullUser.personalChannelId) {
31
+ ret._linkedChat = new Chat(peers.chat(fullUser.personalChannelId));
32
+ }
33
+ return ret;
34
+ }
35
+ const { fullChat } = full;
36
+ const ret = new FullChat(peers.chat(fullChat.id), fullChat);
37
+ if (fullChat._ === 'channelFull' && fullChat.linkedChatId) {
38
+ ret._linkedChat = new Chat(peers.chat(fullChat.linkedChatId));
39
+ }
40
+ return ret;
41
+ }
42
+ /**
43
+ * Whether this chat (user) has restricted sending them voice/video messages.
44
+ */
45
+ get hasBlockedVoices() {
46
+ return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden;
47
+ }
48
+ /**
49
+ * Full information about this chat's photo, if any.
50
+ *
51
+ * Unlike {@link Chat.photo}, this field contains additional information
52
+ * about the photo, such as its date, more sizes, and is the only
53
+ * way to get the animated profile photo.
54
+ *
55
+ * This field takes into account any personal/fallback photo
56
+ * that the user may have set
57
+ */
58
+ get fullPhoto() {
59
+ if (!this.fullPeer)
60
+ return null;
61
+ let photo = undefined;
62
+ switch (this.fullPeer._) {
63
+ case 'userFull':
64
+ photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto;
65
+ break;
66
+ case 'chatFull':
67
+ case 'channelFull':
68
+ photo = this.fullPeer.chatPhoto;
69
+ }
70
+ if (photo?._ !== 'photo')
71
+ return null;
72
+ return new Photo(photo);
73
+ }
74
+ /**
75
+ * A custom photo (set by the current user) that should be displayed
76
+ * instead of the actual chat photo.
77
+ *
78
+ * Currently only available for users.
79
+ */
80
+ get personalPhoto() {
81
+ if (!this.fullPeer || this.fullPeer._ !== 'userFull')
82
+ return null;
83
+ if (this.fullPeer.personalPhoto?._ !== 'photo')
84
+ return null;
85
+ return new Photo(this.fullPeer.personalPhoto);
86
+ }
87
+ /**
88
+ * Actual profile photo of the user, bypassing the custom one.
89
+ */
90
+ get realPhoto() {
91
+ if (!this.fullPeer)
92
+ return null;
93
+ if (this.fullPeer._ !== 'userFull')
94
+ return this.fullPhoto;
95
+ if (this.fullPeer.personalPhoto?._ !== 'photo')
96
+ return null;
97
+ return new Photo(this.fullPeer.personalPhoto);
98
+ }
99
+ /**
100
+ * A photo that the user has set to be shown
101
+ * in case their actual profile photo is not available
102
+ * due to privacy settings.
103
+ *
104
+ * Currently only available for users.
105
+ */
106
+ get publicPhoto() {
107
+ if (!this.fullPeer || this.fullPeer._ !== 'userFull')
108
+ return null;
109
+ if (this.fullPeer.fallbackPhoto?._ !== 'photo')
110
+ return null;
111
+ return new Photo(this.fullPeer.fallbackPhoto);
112
+ }
113
+ /**
114
+ * Bio of the other party in a private chat, or description of a
115
+ * group, supergroup or channel.
116
+ */
117
+ get bio() {
118
+ return this.fullPeer?.about ?? null;
119
+ }
120
+ /**
121
+ * Chat's primary invite link, for groups, supergroups and channels.
122
+ */
123
+ get inviteLink() {
124
+ if (this.fullPeer && this.fullPeer._ !== 'userFull') {
125
+ switch (this.fullPeer.exportedInvite?._) {
126
+ case 'chatInvitePublicJoinRequests':
127
+ return null;
128
+ case 'chatInviteExported':
129
+ return new ChatInviteLink(this.fullPeer.exportedInvite);
130
+ }
131
+ }
132
+ return null;
133
+ }
134
+ /**
135
+ * For supergroups, information about the group sticker set.
136
+ */
137
+ get stickerSet() {
138
+ if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.stickerset)
139
+ return null;
140
+ return new StickerSet(this.fullPeer.stickerset);
141
+ }
142
+ /**
143
+ * For supergroups, information about the group emoji set.
144
+ */
145
+ get emojiSet() {
146
+ if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.emojiset)
147
+ return null;
148
+ return new StickerSet(this.fullPeer.emojiset);
149
+ }
150
+ /**
151
+ * Whether the group sticker set can be changed by you.
152
+ */
153
+ get canSetStickerSet() {
154
+ return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null;
155
+ }
156
+ /**
157
+ * Number of boosts applied by the current user to this chat.
158
+ */
159
+ get boostsApplied() {
160
+ if (!this.fullPeer || this.fullPeer._ !== 'channelFull')
161
+ return 0;
162
+ return this.fullPeer?.boostsApplied ?? 0;
163
+ }
164
+ /**
165
+ * Number of boosts required for the user to be unrestricted in this chat.
166
+ */
167
+ get boostsForUnrestrict() {
168
+ if (!this.fullPeer || this.fullPeer._ !== 'channelFull')
169
+ return 0;
170
+ return this.fullPeer?.boostsUnrestrict ?? 0;
171
+ }
172
+ /**
173
+ * Chat members count, for groups, supergroups and channels only.
174
+ */
175
+ get membersCount() {
176
+ switch (this.fullPeer._) {
177
+ case 'userFull':
178
+ return null;
179
+ case 'chatFull':
180
+ if (this.fullPeer.participants._ !== 'chatParticipants') {
181
+ return null;
182
+ }
183
+ return this.fullPeer.participants.participants.length;
184
+ case 'channelFull':
185
+ return this.fullPeer.participantsCount ?? null;
186
+ }
187
+ }
188
+ /**
189
+ * Location of the chat.
190
+ */
191
+ get location() {
192
+ if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {
193
+ return null;
194
+ }
195
+ return new ChatLocation(this.fullPeer.location);
196
+ }
197
+ _linkedChat;
198
+ /**
199
+ * Information about a linked chat:
200
+ * - for channels: the discussion group
201
+ * - for supergroups: the linked channel
202
+ * - for users: the personal channel
203
+ */
204
+ get linkedChat() {
205
+ return this._linkedChat ?? null;
206
+ }
207
+ /**
208
+ * TTL of all messages in this chat, in seconds
209
+ */
210
+ get ttlPeriod() {
211
+ return this.fullPeer?.ttlPeriod ?? null;
212
+ }
213
+ /**
214
+ * If this is a business account, information about the business.
215
+ */
216
+ get business() {
217
+ if (!this.fullPeer || this.fullPeer._ !== 'userFull')
218
+ return null;
219
+ return new BusinessAccount(this.fullPeer);
220
+ }
221
+ }
222
+ const FullChat$1 = /*#__PURE__*/memoizeGetters(FullChat, [
223
+ 'fullPhoto',
224
+ 'personalPhoto',
225
+ 'realPhoto',
226
+ 'publicPhoto',
227
+ 'location',
228
+ 'stickerSet',
229
+ 'emojiSet',
230
+ 'business',
231
+ ]);
232
+ const FullChat$2 = /*#__PURE__*/makeInspectable(FullChat$1, );
233
+ //# sourceMappingURL=full-chat.js.map
234
+ export { FullChat$2 as FullChat }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/full-chat.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Photo } from '../media/photo.js'\nimport { StickerSet } from '../misc/sticker-set.js'\nimport { BusinessAccount } from '../premium/business-account.js'\nimport { Chat } from './chat.js'\nimport { ChatInviteLink } from './chat-invite-link.js'\nimport { ChatLocation } from './chat-location.js'\nimport { PeersIndex } from './peers-index.js'\n\n/**\n * Complete information about a particular chat.\n */\nexport class FullChat extends Chat {\n constructor(\n peer: tl.TypeUser | tl.TypeChat,\n readonly fullPeer: tl.TypeUserFull | tl.TypeChatFull,\n ) {\n super(peer)\n }\n\n /** @internal */\n static _parse(full: tl.messages.RawChatFull | tl.users.TypeUserFull): FullChat {\n const peers = PeersIndex.from(full)\n\n if (full._ === 'users.userFull') {\n const { fullUser } = full\n const user = peers.user(full.fullUser.id)\n\n if (!user || user._ === 'userEmpty') {\n throw new MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined')\n }\n\n const ret = new FullChat(user, fullUser)\n\n if (fullUser.personalChannelId) {\n ret._linkedChat = new Chat(peers.chat(fullUser.personalChannelId))\n }\n\n return ret\n }\n\n const { fullChat } = full\n\n const ret = new FullChat(peers.chat(fullChat.id), fullChat)\n\n if (fullChat._ === 'channelFull' && fullChat.linkedChatId) {\n ret._linkedChat = new Chat(peers.chat(fullChat.linkedChatId))\n }\n\n return ret\n }\n\n /**\n * Whether this chat (user) has restricted sending them voice/video messages.\n */\n get hasBlockedVoices(): boolean {\n return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden!\n }\n\n /**\n * Full information about this chat's photo, if any.\n *\n * Unlike {@link Chat.photo}, this field contains additional information\n * about the photo, such as its date, more sizes, and is the only\n * way to get the animated profile photo.\n *\n * This field takes into account any personal/fallback photo\n * that the user may have set\n */\n get fullPhoto(): Photo | null {\n if (!this.fullPeer) return null\n\n let photo: tl.TypePhoto | undefined = undefined\n\n switch (this.fullPeer._) {\n case 'userFull':\n photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto\n break\n case 'chatFull':\n case 'channelFull':\n photo = this.fullPeer.chatPhoto\n }\n\n if (photo?._ !== 'photo') return null\n\n return new Photo(photo)\n }\n\n /**\n * A custom photo (set by the current user) that should be displayed\n * instead of the actual chat photo.\n *\n * Currently only available for users.\n */\n get personalPhoto(): Photo | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n if (this.fullPeer.personalPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.personalPhoto)\n }\n\n /**\n * Actual profile photo of the user, bypassing the custom one.\n */\n get realPhoto(): Photo | null {\n if (!this.fullPeer) return null\n if (this.fullPeer._ !== 'userFull') return this.fullPhoto\n if (this.fullPeer.personalPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.personalPhoto)\n }\n\n /**\n * A photo that the user has set to be shown\n * in case their actual profile photo is not available\n * due to privacy settings.\n *\n * Currently only available for users.\n */\n get publicPhoto(): Photo | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n if (this.fullPeer.fallbackPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.fallbackPhoto)\n }\n\n /**\n * Bio of the other party in a private chat, or description of a\n * group, supergroup or channel.\n */\n get bio(): string | null {\n return this.fullPeer?.about ?? null\n }\n\n /**\n * Chat's primary invite link, for groups, supergroups and channels.\n */\n get inviteLink(): ChatInviteLink | null {\n if (this.fullPeer && this.fullPeer._ !== 'userFull') {\n switch (this.fullPeer.exportedInvite?._) {\n case 'chatInvitePublicJoinRequests':\n return null\n case 'chatInviteExported':\n return new ChatInviteLink(this.fullPeer.exportedInvite)\n }\n }\n\n return null\n }\n\n /**\n * For supergroups, information about the group sticker set.\n */\n get stickerSet(): StickerSet | null {\n if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.stickerset) return null\n\n return new StickerSet(this.fullPeer.stickerset)\n }\n\n /**\n * For supergroups, information about the group emoji set.\n */\n get emojiSet(): StickerSet | null {\n if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.emojiset) return null\n\n return new StickerSet(this.fullPeer.emojiset)\n }\n\n /**\n * Whether the group sticker set can be changed by you.\n */\n get canSetStickerSet(): boolean | null {\n return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null\n }\n\n /**\n * Number of boosts applied by the current user to this chat.\n */\n get boostsApplied(): number {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull') return 0\n\n return this.fullPeer?.boostsApplied ?? 0\n }\n\n /**\n * Number of boosts required for the user to be unrestricted in this chat.\n */\n get boostsForUnrestrict(): number {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull') return 0\n\n return this.fullPeer?.boostsUnrestrict ?? 0\n }\n\n /**\n * Chat members count, for groups, supergroups and channels only.\n */\n get membersCount(): number | null {\n switch (this.fullPeer._) {\n case 'userFull':\n return null\n case 'chatFull':\n if (this.fullPeer.participants._ !== 'chatParticipants') {\n return null\n }\n\n return this.fullPeer.participants.participants.length\n case 'channelFull':\n return this.fullPeer.participantsCount ?? null\n }\n }\n\n /**\n * Location of the chat.\n */\n get location(): ChatLocation | null {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {\n return null\n }\n\n return new ChatLocation(this.fullPeer.location)\n }\n\n private _linkedChat?: Chat\n /**\n * Information about a linked chat:\n * - for channels: the discussion group\n * - for supergroups: the linked channel\n * - for users: the personal channel\n */\n get linkedChat(): Chat | null {\n return this._linkedChat ?? null\n }\n\n /**\n * TTL of all messages in this chat, in seconds\n */\n get ttlPeriod(): number | null {\n return this.fullPeer?.ttlPeriod ?? null\n }\n\n /**\n * If this is a business account, information about the business.\n */\n get business(): BusinessAccount | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n\n return new BusinessAccount(this.fullPeer)\n }\n}\n\nmemoizeGetters(FullChat, [\n 'fullPhoto',\n 'personalPhoto',\n 'realPhoto',\n 'publicPhoto',\n 'location',\n 'stickerSet',\n 'emojiSet',\n 'business',\n])\nmakeInspectable(FullChat)\n"]}
@@ -8,6 +8,7 @@ export * from './chat-permissions.js';
8
8
  export * from './chat-photo.js';
9
9
  export * from './chat-preview.js';
10
10
  export * from './forum-topic.js';
11
+ export * from './full-chat.js';
11
12
  export * from './peer.js';
12
13
  export * from './peers-index.js';
13
14
  export * from './typing-status.js';
@@ -8,6 +8,7 @@ export * from './chat-permissions.js';
8
8
  export * from './chat-photo.js';
9
9
  export * from './chat-preview.js';
10
10
  export * from './forum-topic.js';
11
+ export * from './full-chat.js';
11
12
  export * from './peer.js';
12
13
  export * from './peers-index.js';
13
14
  export * from './typing-status.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA","sourcesContent":["export * from './chat.js'\nexport * from './chat-event/index.js'\nexport * from './chat-invite-link.js'\nexport * from './chat-invite-link-member.js'\nexport * from './chat-location.js'\nexport * from './chat-member.js'\nexport * from './chat-permissions.js'\nexport * from './chat-photo.js'\nexport * from './chat-preview.js'\nexport * from './forum-topic.js'\nexport * from './peer.js'\nexport * from './peers-index.js'\nexport * from './typing-status.js'\nexport * from './user.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA","sourcesContent":["export * from './chat.js'\nexport * from './chat-event/index.js'\nexport * from './chat-invite-link.js'\nexport * from './chat-invite-link-member.js'\nexport * from './chat-location.js'\nexport * from './chat-member.js'\nexport * from './chat-permissions.js'\nexport * from './chat-photo.js'\nexport * from './chat-preview.js'\nexport * from './forum-topic.js'\nexport * from './full-chat.js'\nexport * from './peer.js'\nexport * from './peers-index.js'\nexport * from './typing-status.js'\nexport * from './user.js'\n"]}
@@ -69,6 +69,11 @@ export declare class User {
69
69
  get isDeleted(): boolean;
70
70
  /** Whether this user is a bot */
71
71
  get isBot(): boolean;
72
+ /**
73
+ * Whether this user is a bot that can be connected to a
74
+ * Telegram Business account to receive its messages
75
+ */
76
+ get isBusinessBot(): boolean;
72
77
  /** Whether this user is a bot that has access to all messages */
73
78
  get isBotWithHistory(): boolean;
74
79
  /** Whether this user is a bot that can't be added to chats */
@@ -73,6 +73,13 @@ class User {
73
73
  get isBot() {
74
74
  return this.raw.bot;
75
75
  }
76
+ /**
77
+ * Whether this user is a bot that can be connected to a
78
+ * Telegram Business account to receive its messages
79
+ */
80
+ get isBusinessBot() {
81
+ return this.raw.botBusiness;
82
+ }
76
83
  /** Whether this user is a bot that has access to all messages */
77
84
  get isBotWithHistory() {
78
85
  return this.raw.botChatHistory;