@mtcute/core 0.30.3 → 0.32.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 (313) hide show
  1. package/client.cjs +85 -0
  2. package/client.js +85 -0
  3. package/highlevel/client.d.cts +411 -116
  4. package/highlevel/client.d.ts +411 -116
  5. package/highlevel/methods/auth/sign-in-qr.cjs +2 -0
  6. package/highlevel/methods/auth/sign-in-qr.js +2 -0
  7. package/highlevel/methods/auth/sign-in-qr.test.d.cts +1 -0
  8. package/highlevel/methods/auth/sign-in-qr.test.d.ts +1 -0
  9. package/highlevel/methods/chats/build-peers-index.cjs +45 -0
  10. package/highlevel/methods/chats/build-peers-index.d.cts +13 -0
  11. package/highlevel/methods/chats/build-peers-index.d.ts +13 -0
  12. package/highlevel/methods/chats/build-peers-index.js +40 -0
  13. package/highlevel/methods/chats/join-chat.cjs +1 -1
  14. package/highlevel/methods/chats/join-chat.d.cts +2 -1
  15. package/highlevel/methods/chats/join-chat.d.ts +2 -1
  16. package/highlevel/methods/chats/join-chat.js +1 -1
  17. package/highlevel/methods/chats/transfer-chat-ownership.cjs +6 -17
  18. package/highlevel/methods/chats/transfer-chat-ownership.js +6 -17
  19. package/highlevel/methods/communities/ban-community-participant.cjs +30 -0
  20. package/highlevel/methods/communities/ban-community-participant.d.cts +20 -0
  21. package/highlevel/methods/communities/ban-community-participant.d.ts +20 -0
  22. package/highlevel/methods/communities/ban-community-participant.js +25 -0
  23. package/highlevel/methods/communities/create-community.cjs +29 -0
  24. package/highlevel/methods/communities/create-community.d.cts +22 -0
  25. package/highlevel/methods/communities/create-community.d.ts +22 -0
  26. package/highlevel/methods/communities/create-community.js +24 -0
  27. package/highlevel/methods/communities/get-community-link-requests.cjs +27 -0
  28. package/highlevel/methods/communities/get-community-link-requests.d.cts +17 -0
  29. package/highlevel/methods/communities/get-community-link-requests.d.ts +17 -0
  30. package/highlevel/methods/communities/get-community-link-requests.js +22 -0
  31. package/highlevel/methods/communities/get-community-participant-chats.cjs +24 -0
  32. package/highlevel/methods/communities/get-community-participant-chats.d.cts +17 -0
  33. package/highlevel/methods/communities/get-community-participant-chats.d.ts +17 -0
  34. package/highlevel/methods/communities/get-community-participant-chats.js +19 -0
  35. package/highlevel/methods/communities/get-joined-communities.cjs +21 -0
  36. package/highlevel/methods/communities/get-joined-communities.d.cts +6 -0
  37. package/highlevel/methods/communities/get-joined-communities.d.ts +6 -0
  38. package/highlevel/methods/communities/get-joined-communities.js +16 -0
  39. package/highlevel/methods/communities/hide-community-link-request.cjs +30 -0
  40. package/highlevel/methods/communities/hide-community-link-request.d.cts +22 -0
  41. package/highlevel/methods/communities/hide-community-link-request.d.ts +22 -0
  42. package/highlevel/methods/communities/hide-community-link-request.js +25 -0
  43. package/highlevel/methods/communities/link-community-peer.cjs +32 -0
  44. package/highlevel/methods/communities/link-community-peer.d.cts +22 -0
  45. package/highlevel/methods/communities/link-community-peer.d.ts +22 -0
  46. package/highlevel/methods/communities/link-community-peer.js +27 -0
  47. package/highlevel/methods/communities/toggle-community-collapsed.cjs +18 -0
  48. package/highlevel/methods/communities/toggle-community-collapsed.d.cts +16 -0
  49. package/highlevel/methods/communities/toggle-community-collapsed.d.ts +16 -0
  50. package/highlevel/methods/communities/toggle-community-collapsed.js +13 -0
  51. package/highlevel/methods/ephemeral/delete-all-welcome-messages.cjs +17 -0
  52. package/highlevel/methods/ephemeral/delete-all-welcome-messages.d.cts +8 -0
  53. package/highlevel/methods/ephemeral/delete-all-welcome-messages.d.ts +8 -0
  54. package/highlevel/methods/ephemeral/delete-all-welcome-messages.js +12 -0
  55. package/highlevel/methods/ephemeral/delete-ephemeral-message.cjs +20 -0
  56. package/highlevel/methods/ephemeral/delete-ephemeral-message.d.cts +13 -0
  57. package/highlevel/methods/ephemeral/delete-ephemeral-message.d.ts +13 -0
  58. package/highlevel/methods/ephemeral/delete-ephemeral-message.js +15 -0
  59. package/highlevel/methods/ephemeral/delete-welcome-message.cjs +18 -0
  60. package/highlevel/methods/ephemeral/delete-welcome-message.d.cts +9 -0
  61. package/highlevel/methods/ephemeral/delete-welcome-message.d.ts +9 -0
  62. package/highlevel/methods/ephemeral/delete-welcome-message.js +13 -0
  63. package/highlevel/methods/ephemeral/edit-ephemeral-message.cjs +41 -0
  64. package/highlevel/methods/ephemeral/edit-ephemeral-message.d.cts +39 -0
  65. package/highlevel/methods/ephemeral/edit-ephemeral-message.d.ts +39 -0
  66. package/highlevel/methods/ephemeral/edit-ephemeral-message.js +36 -0
  67. package/highlevel/methods/ephemeral/find-in-update.cjs +27 -0
  68. package/highlevel/methods/ephemeral/find-in-update.d.cts +8 -0
  69. package/highlevel/methods/ephemeral/find-in-update.d.ts +8 -0
  70. package/highlevel/methods/ephemeral/find-in-update.js +22 -0
  71. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.cjs +31 -0
  72. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.d.cts +29 -0
  73. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.d.ts +29 -0
  74. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.js +26 -0
  75. package/highlevel/methods/ephemeral/get-welcome-messages.cjs +29 -0
  76. package/highlevel/methods/ephemeral/get-welcome-messages.d.cts +8 -0
  77. package/highlevel/methods/ephemeral/get-welcome-messages.d.ts +8 -0
  78. package/highlevel/methods/ephemeral/get-welcome-messages.js +24 -0
  79. package/highlevel/methods/ephemeral/send-ephemeral-message.cjs +48 -0
  80. package/highlevel/methods/ephemeral/send-ephemeral-message.d.cts +47 -0
  81. package/highlevel/methods/ephemeral/send-ephemeral-message.d.ts +47 -0
  82. package/highlevel/methods/ephemeral/send-ephemeral-message.js +43 -0
  83. package/highlevel/methods/files/download-iterable.cjs +7 -2
  84. package/highlevel/methods/files/download-iterable.js +7 -2
  85. package/highlevel/methods/files/download-iterable.test.d.cts +1 -0
  86. package/highlevel/methods/files/download-iterable.test.d.ts +1 -0
  87. package/highlevel/methods/files/download-stream.cjs +5 -6
  88. package/highlevel/methods/files/download-stream.js +5 -6
  89. package/highlevel/methods/files/normalize-input-media.cjs +25 -4
  90. package/highlevel/methods/files/normalize-input-media.js +25 -4
  91. package/highlevel/methods/forums/create-forum-topic.d.cts +7 -0
  92. package/highlevel/methods/forums/create-forum-topic.d.ts +7 -0
  93. package/highlevel/methods/forums/delete-forum-topic-history.d.cts +1 -1
  94. package/highlevel/methods/forums/delete-forum-topic-history.d.ts +1 -1
  95. package/highlevel/methods/forums/edit-forum-topic.cjs +2 -2
  96. package/highlevel/methods/forums/edit-forum-topic.d.cts +2 -2
  97. package/highlevel/methods/forums/edit-forum-topic.d.ts +2 -2
  98. package/highlevel/methods/forums/edit-forum-topic.js +2 -2
  99. package/highlevel/methods/forums/get-forum-topics-by-id.cjs +5 -1
  100. package/highlevel/methods/forums/get-forum-topics-by-id.d.cts +9 -1
  101. package/highlevel/methods/forums/get-forum-topics-by-id.d.ts +9 -1
  102. package/highlevel/methods/forums/get-forum-topics-by-id.js +5 -1
  103. package/highlevel/methods/forums/get-forum-topics-by-id.test.d.cts +1 -0
  104. package/highlevel/methods/forums/get-forum-topics-by-id.test.d.ts +1 -0
  105. package/highlevel/methods/forums/get-forum-topics.cjs +1 -1
  106. package/highlevel/methods/forums/get-forum-topics.js +1 -1
  107. package/highlevel/methods/forums/toggle-forum-topic-closed.cjs +1 -1
  108. package/highlevel/methods/forums/toggle-forum-topic-closed.d.cts +1 -1
  109. package/highlevel/methods/forums/toggle-forum-topic-closed.d.ts +1 -1
  110. package/highlevel/methods/forums/toggle-forum-topic-closed.js +1 -1
  111. package/highlevel/methods/forums/toggle-forum-topic-pinned.d.cts +1 -1
  112. package/highlevel/methods/forums/toggle-forum-topic-pinned.d.ts +1 -1
  113. package/highlevel/methods/forums/toggle-general-topic-hidden.cjs +3 -3
  114. package/highlevel/methods/forums/toggle-general-topic-hidden.js +4 -4
  115. package/highlevel/methods/gifts/buy-resale-gift.cjs +5 -2
  116. package/highlevel/methods/gifts/buy-resale-gift.d.cts +11 -1
  117. package/highlevel/methods/gifts/buy-resale-gift.d.ts +11 -1
  118. package/highlevel/methods/gifts/buy-resale-gift.js +5 -2
  119. package/highlevel/methods/messages/forward-messages.cjs +1 -0
  120. package/highlevel/methods/messages/forward-messages.d.cts +2 -0
  121. package/highlevel/methods/messages/forward-messages.d.ts +2 -0
  122. package/highlevel/methods/messages/forward-messages.js +1 -0
  123. package/highlevel/methods/messages/normalize-rich-message.cjs +3 -0
  124. package/highlevel/methods/messages/normalize-rich-message.js +3 -0
  125. package/highlevel/methods/messages/send-common.d.cts +7 -1
  126. package/highlevel/methods/messages/send-common.d.ts +7 -1
  127. package/highlevel/methods/messages/send-text.cjs +70 -35
  128. package/highlevel/methods/messages/send-text.js +70 -35
  129. package/highlevel/methods/messages/send-typing.d.cts +3 -3
  130. package/highlevel/methods/messages/send-typing.d.ts +3 -3
  131. package/highlevel/methods/messages/set-typing.cjs +1 -1
  132. package/highlevel/methods/messages/set-typing.d.cts +2 -2
  133. package/highlevel/methods/messages/set-typing.d.ts +2 -2
  134. package/highlevel/methods/messages/set-typing.js +1 -1
  135. package/highlevel/methods/users/resolve-peer.cjs +11 -1
  136. package/highlevel/methods/users/resolve-peer.js +11 -1
  137. package/highlevel/methods.d.cts +19 -0
  138. package/highlevel/methods.d.ts +19 -0
  139. package/highlevel/storage/service/peers.cjs +25 -0
  140. package/highlevel/storage/service/peers.js +25 -0
  141. package/highlevel/storage/service/peers.test.d.cts +1 -0
  142. package/highlevel/storage/service/peers.test.d.ts +1 -0
  143. package/highlevel/types/bots/keyboards/builder.cjs +5 -5
  144. package/highlevel/types/bots/keyboards/builder.d.cts +8 -9
  145. package/highlevel/types/bots/keyboards/builder.d.ts +8 -9
  146. package/highlevel/types/bots/keyboards/builder.js +5 -5
  147. package/highlevel/types/bots/keyboards/factories.cjs +51 -103
  148. package/highlevel/types/bots/keyboards/factories.d.cts +58 -89
  149. package/highlevel/types/bots/keyboards/factories.d.ts +58 -89
  150. package/highlevel/types/bots/keyboards/factories.js +51 -103
  151. package/highlevel/types/bots/keyboards/index.d.cts +3 -3
  152. package/highlevel/types/bots/keyboards/index.d.ts +3 -3
  153. package/highlevel/types/bots/keyboards/normalize.cjs +131 -0
  154. package/highlevel/types/bots/keyboards/normalize.d.cts +10 -0
  155. package/highlevel/types/bots/keyboards/normalize.d.ts +10 -0
  156. package/highlevel/types/bots/keyboards/normalize.js +126 -0
  157. package/highlevel/types/bots/keyboards/types.d.cts +160 -4
  158. package/highlevel/types/bots/keyboards/types.d.ts +160 -4
  159. package/highlevel/types/conversation.cjs +8 -0
  160. package/highlevel/types/conversation.d.cts +1 -0
  161. package/highlevel/types/conversation.d.ts +1 -0
  162. package/highlevel/types/conversation.js +10 -2
  163. package/highlevel/types/conversation.test.d.cts +1 -0
  164. package/highlevel/types/conversation.test.d.ts +1 -0
  165. package/highlevel/types/messages/dialog.cjs +8 -1
  166. package/highlevel/types/messages/dialog.d.cts +3 -0
  167. package/highlevel/types/messages/dialog.d.ts +3 -0
  168. package/highlevel/types/messages/dialog.js +8 -1
  169. package/highlevel/types/messages/dialog.test.d.cts +1 -0
  170. package/highlevel/types/messages/dialog.test.d.ts +1 -0
  171. package/highlevel/types/messages/ephemeral-message.cjs +135 -0
  172. package/highlevel/types/messages/ephemeral-message.d.cts +75 -0
  173. package/highlevel/types/messages/ephemeral-message.d.ts +75 -0
  174. package/highlevel/types/messages/ephemeral-message.js +130 -0
  175. package/highlevel/types/messages/index.d.cts +1 -0
  176. package/highlevel/types/messages/index.d.ts +1 -0
  177. package/highlevel/types/messages/message-action.cjs +14 -1
  178. package/highlevel/types/messages/message-action.d.cts +18 -1
  179. package/highlevel/types/messages/message-action.d.ts +18 -1
  180. package/highlevel/types/messages/message-action.js +14 -1
  181. package/highlevel/types/messages/message.cjs +7 -2
  182. package/highlevel/types/messages/message.d.cts +2 -2
  183. package/highlevel/types/messages/message.d.ts +2 -2
  184. package/highlevel/types/messages/message.js +8 -3
  185. package/highlevel/types/messages/replied-message.cjs +5 -1
  186. package/highlevel/types/messages/replied-message.d.cts +5 -1
  187. package/highlevel/types/messages/replied-message.d.ts +5 -1
  188. package/highlevel/types/messages/replied-message.js +5 -1
  189. package/highlevel/types/messages/rich/inner.cjs +37 -0
  190. package/highlevel/types/messages/rich/inner.d.cts +19 -0
  191. package/highlevel/types/messages/rich/inner.d.ts +19 -0
  192. package/highlevel/types/messages/rich/inner.js +37 -0
  193. package/highlevel/types/peers/chat.cjs +23 -3
  194. package/highlevel/types/peers/chat.d.cts +8 -3
  195. package/highlevel/types/peers/chat.d.ts +8 -3
  196. package/highlevel/types/peers/chat.js +24 -4
  197. package/highlevel/types/peers/community-peer.cjs +60 -0
  198. package/highlevel/types/peers/community-peer.d.cts +37 -0
  199. package/highlevel/types/peers/community-peer.d.ts +37 -0
  200. package/highlevel/types/peers/community-peer.js +55 -0
  201. package/highlevel/types/peers/full-chat.cjs +24 -5
  202. package/highlevel/types/peers/full-chat.d.cts +7 -0
  203. package/highlevel/types/peers/full-chat.d.ts +7 -0
  204. package/highlevel/types/peers/full-chat.js +24 -5
  205. package/highlevel/types/peers/index.d.cts +1 -0
  206. package/highlevel/types/peers/index.d.ts +1 -0
  207. package/highlevel/types/peers/peer.cjs +2 -0
  208. package/highlevel/types/peers/peer.js +2 -0
  209. package/highlevel/types/peers/typing-status.d.cts +4 -1
  210. package/highlevel/types/peers/typing-status.d.ts +4 -1
  211. package/highlevel/types/peers/user.cjs +6 -0
  212. package/highlevel/types/peers/user.d.cts +2 -0
  213. package/highlevel/types/peers/user.d.ts +2 -0
  214. package/highlevel/types/peers/user.js +6 -0
  215. package/highlevel/types/updates/delete-ephemeral-messages-update.cjs +27 -0
  216. package/highlevel/types/updates/delete-ephemeral-messages-update.d.cts +15 -0
  217. package/highlevel/types/updates/delete-ephemeral-messages-update.d.ts +15 -0
  218. package/highlevel/types/updates/delete-ephemeral-messages-update.js +22 -0
  219. package/highlevel/types/updates/ephemeral-callback-query.cjs +69 -0
  220. package/highlevel/types/updates/ephemeral-callback-query.d.cts +44 -0
  221. package/highlevel/types/updates/ephemeral-callback-query.d.ts +44 -0
  222. package/highlevel/types/updates/ephemeral-callback-query.js +64 -0
  223. package/highlevel/types/updates/index.d.cts +16 -2
  224. package/highlevel/types/updates/index.d.ts +16 -2
  225. package/highlevel/types/updates/parse-update.cjs +12 -1
  226. package/highlevel/types/updates/parse-update.js +12 -1
  227. package/highlevel/types/updates/user-typing-update.cjs +18 -0
  228. package/highlevel/types/updates/user-typing-update.d.cts +9 -0
  229. package/highlevel/types/updates/user-typing-update.d.ts +9 -0
  230. package/highlevel/types/updates/user-typing-update.js +18 -0
  231. package/highlevel/updates/manager.cjs +71 -41
  232. package/highlevel/updates/manager.d.cts +1 -0
  233. package/highlevel/updates/manager.d.ts +1 -0
  234. package/highlevel/updates/manager.js +71 -41
  235. package/highlevel/updates/manager.test.d.cts +1 -0
  236. package/highlevel/updates/manager.test.d.ts +1 -0
  237. package/highlevel/utils/stream-utils.cjs +8 -4
  238. package/highlevel/utils/stream-utils.js +8 -4
  239. package/highlevel/utils/stream-utils.test.d.cts +1 -0
  240. package/highlevel/utils/stream-utils.test.d.ts +1 -0
  241. package/highlevel/utils/walk-page-blocks.cjs +9 -0
  242. package/highlevel/utils/walk-page-blocks.js +9 -0
  243. package/index.cjs +10 -0
  244. package/index.js +11 -1
  245. package/methods.cjs +33 -0
  246. package/methods.js +33 -0
  247. package/network/client.cjs +4 -3
  248. package/network/client.d.cts +1 -0
  249. package/network/client.d.ts +1 -0
  250. package/network/client.js +4 -3
  251. package/network/middlewares/flood-waiter.cjs +2 -2
  252. package/network/middlewares/flood-waiter.js +2 -2
  253. package/network/middlewares/internal-errors.cjs +1 -1
  254. package/network/middlewares/internal-errors.js +1 -1
  255. package/network/middlewares/media-throttle.cjs +1 -1
  256. package/network/middlewares/media-throttle.js +1 -1
  257. package/network/mtproto-session.cjs +9 -2
  258. package/network/mtproto-session.d.cts +3 -1
  259. package/network/mtproto-session.d.ts +3 -1
  260. package/network/mtproto-session.js +9 -2
  261. package/network/mtproxy/index.cjs +4 -3
  262. package/network/mtproxy/index.d.cts +2 -2
  263. package/network/mtproxy/index.d.ts +2 -2
  264. package/network/mtproxy/index.js +4 -3
  265. package/network/network-manager.cjs +44 -16
  266. package/network/network-manager.d.cts +10 -3
  267. package/network/network-manager.d.ts +10 -3
  268. package/network/network-manager.js +45 -17
  269. package/network/network-manager.test.d.cts +1 -0
  270. package/network/network-manager.test.d.ts +1 -0
  271. package/network/persistent-connection.cjs +10 -2
  272. package/network/persistent-connection.js +10 -2
  273. package/network/session-connection.cjs +15 -6
  274. package/network/session-connection.js +15 -6
  275. package/network/session-connection.test.d.cts +1 -0
  276. package/network/session-connection.test.d.ts +1 -0
  277. package/network/transports/abstract.cjs +16 -0
  278. package/network/transports/abstract.d.cts +8 -2
  279. package/network/transports/abstract.d.ts +8 -2
  280. package/network/transports/abstract.js +17 -1
  281. package/network/transports/obfuscated.cjs +3 -1
  282. package/network/transports/obfuscated.js +3 -1
  283. package/package.json +6 -6
  284. package/tl/api-schema.json +1 -1
  285. package/tl/binary/reader.cjs +221 -103
  286. package/tl/binary/reader.js +221 -103
  287. package/tl/binary/writer.cjs +693 -277
  288. package/tl/binary/writer.js +693 -277
  289. package/tl/compat/reader.cjs +93 -0
  290. package/tl/compat/reader.js +93 -0
  291. package/tl/index.d.cts +12529 -4762
  292. package/tl/index.d.ts +12529 -4762
  293. package/tl/inner-tl.cjs +90 -24
  294. package/tl/inner-tl.js +90 -24
  295. package/tl/raw-errors.json +1 -1
  296. package/tl/rpc-error.test.d.cts +1 -0
  297. package/tl/rpc-error.test.d.ts +1 -0
  298. package/utils/abort-signal.cjs +1 -12
  299. package/utils/abort-signal.js +1 -12
  300. package/utils/abort-signal.test.d.cts +1 -0
  301. package/utils/abort-signal.test.d.ts +1 -0
  302. package/utils/binary/compat.cjs +189 -29
  303. package/utils/binary/compat.js +189 -29
  304. package/utils/early-timer.cjs +3 -11
  305. package/utils/early-timer.js +3 -11
  306. package/utils/early-timer.test.d.cts +1 -0
  307. package/utils/early-timer.test.d.ts +1 -0
  308. package/utils/function-utils.cjs +9 -4
  309. package/utils/function-utils.js +9 -4
  310. package/utils/links/bots.cjs +10 -2
  311. package/utils/links/bots.js +10 -2
  312. package/utils/peer-utils.cjs +8 -0
  313. package/utils/peer-utils.js +8 -0
@@ -473,6 +473,24 @@ class UpdatesManager {
473
473
  index.set(bare, cached);
474
474
  return true;
475
475
  }
476
+ async function fetchEntitiesPeers(entities) {
477
+ if (!entities) return true;
478
+ for (const ent of entities) {
479
+ if (ent._ === "messageEntityMentionName" && !await fetchPeer(ent.userId)) {
480
+ return false;
481
+ }
482
+ }
483
+ return true;
484
+ }
485
+ async function fetchRichMessagePeers(richMessage) {
486
+ if (!richMessage) return true;
487
+ const richMessagePeers = /* @__PURE__ */ new Set();
488
+ collectRichMessagePeerIds(richMessage, richMessagePeers);
489
+ for (const peer of richMessagePeers) {
490
+ if (!await fetchPeer(peer)) return false;
491
+ }
492
+ return true;
493
+ }
476
494
  switch (upd._) {
477
495
  case "updateNewMessage":
478
496
  case "updateNewChannelMessage":
@@ -496,20 +514,8 @@ class UpdatesManager {
496
514
  }
497
515
  if (!await fetchPeer(msg.viaBotId)) return missing;
498
516
  if (!await fetchPeer(msg.guestchatViaFrom)) return missing;
499
- if (msg.entities) {
500
- for (const ent of msg.entities) {
501
- if (ent._ === "messageEntityMentionName") {
502
- if (!await fetchPeer(ent.userId)) return missing;
503
- }
504
- }
505
- }
506
- if (msg.richMessage) {
507
- const richMessagePeers = /* @__PURE__ */ new Set();
508
- collectRichMessagePeerIds(msg.richMessage, richMessagePeers);
509
- for (const peer of richMessagePeers) {
510
- if (!await fetchPeer(peer)) return missing;
511
- }
512
- }
517
+ if (!await fetchEntitiesPeers(msg.entities)) return missing;
518
+ if (!await fetchRichMessagePeers(msg.richMessage)) return missing;
513
519
  if (msg.media) {
514
520
  switch (msg.media._) {
515
521
  case "messageMediaContact":
@@ -547,25 +553,43 @@ class UpdatesManager {
547
553
  if (!await fetchPeer(msg.action.fromId)) return missing;
548
554
  if (!await fetchPeer(msg.action.toId)) return missing;
549
555
  break;
556
+ case "messageActionChatJoinedViaCommunity":
557
+ if (!await fetchPeer(toggleChannelIdMark(msg.action.communityId), true)) {
558
+ return missing;
559
+ }
560
+ break;
561
+ case "messageActionChangeCommunity":
562
+ if (msg.action.communityId !== void 0 && !await fetchPeer(toggleChannelIdMark(msg.action.communityId), true)) {
563
+ return missing;
564
+ }
565
+ break;
566
+ case "messageActionGiftPremium":
567
+ case "messageActionGiftCode":
568
+ case "messageActionStarGift":
569
+ case "messageActionStarGiftUnique":
570
+ if (!await fetchEntitiesPeers(msg.action.message?.entities)) return missing;
571
+ break;
550
572
  }
551
573
  }
552
574
  break;
553
575
  }
576
+ case "updateNewEphemeralMessage":
577
+ case "updateEditEphemeralMessage": {
578
+ const msg = upd.message;
579
+ if (!await fetchPeer(msg.peerId, true)) return missing;
580
+ if (!await fetchPeer(msg.fromId)) return missing;
581
+ if (!await fetchPeer(msg.receiverId)) return missing;
582
+ if (!await fetchEntitiesPeers(msg.entities)) return missing;
583
+ if (!await fetchRichMessagePeers(msg.richMessage)) return missing;
584
+ break;
585
+ }
586
+ case "updateEphemeralBotCallbackQuery":
587
+ if (!await fetchPeer(upd.peer, true)) return missing;
588
+ if (!await fetchPeer(upd.userId)) return missing;
589
+ break;
554
590
  case "updateDraftMessage":
555
- if ("entities" in upd.draft && upd.draft.entities) {
556
- for (const ent of upd.draft.entities) {
557
- if (ent._ === "messageEntityMentionName") {
558
- if (!await fetchPeer(ent.userId)) return missing;
559
- }
560
- }
561
- }
562
- if ("richMessage" in upd.draft && upd.draft.richMessage) {
563
- const richMessagePeers = /* @__PURE__ */ new Set();
564
- collectRichMessagePeerIds(upd.draft.richMessage, richMessagePeers);
565
- for (const peer of richMessagePeers) {
566
- if (!await fetchPeer(peer)) return missing;
567
- }
568
- }
591
+ if ("entities" in upd.draft && !await fetchEntitiesPeers(upd.draft.entities)) return missing;
592
+ if ("richMessage" in upd.draft && !await fetchRichMessagePeers(upd.draft.richMessage)) return missing;
569
593
  }
570
594
  return missing;
571
595
  }
@@ -884,6 +908,16 @@ class UpdatesManager {
884
908
  );
885
909
  }
886
910
  }
911
+ _consumeNoDispatch(pending) {
912
+ if (!this.noDispatchEnabled) return false;
913
+ const upd = pending.update;
914
+ const channelId = pending.channelId ?? 0;
915
+ const msgId = upd._ === "updateNewMessage" || upd._ === "updateNewChannelMessage" || upd._ === "updateBotNewBusinessMessage" ? upd.message.id : void 0;
916
+ const foundByMsgId = msgId ? this.noDispatchMsg.get(channelId)?.delete(msgId) : false;
917
+ const foundByPts = this.noDispatchPts.get(channelId)?.delete(pending.pts);
918
+ const foundByQts = this.noDispatchQts.delete(pending.qts);
919
+ return Boolean(foundByMsgId || foundByPts || foundByQts);
920
+ }
887
921
  async _onUpdate(pending, requestedDiff, postponed = false, unordered = false) {
888
922
  const { client, log } = this;
889
923
  const upd = pending.update;
@@ -957,6 +991,7 @@ class UpdatesManager {
957
991
  this.qts = pending.qts;
958
992
  }
959
993
  }
994
+ const inNoDispatchIndex = this._consumeNoDispatch(pending);
960
995
  if (isMessageEmpty(upd)) return;
961
996
  switch (upd._) {
962
997
  case "mtcute.dummyUpdate":
@@ -974,8 +1009,8 @@ class UpdatesManager {
974
1009
  break;
975
1010
  }
976
1011
  case "updateChannel": {
977
- const channel = pending.peers.chat(upd.channelId);
978
- if (channel._ !== "channelForbidden") {
1012
+ const channel = pending.peers.chats.get(upd.channelId);
1013
+ if (!channel || channel._ !== "channelForbidden" && channel._ !== "communityForbidden") {
979
1014
  this.inaccessibleChannels.delete(upd.channelId);
980
1015
  }
981
1016
  break;
@@ -1028,16 +1063,9 @@ class UpdatesManager {
1028
1063
  }
1029
1064
  }
1030
1065
  }
1031
- if (this.noDispatchEnabled) {
1032
- const channelId = pending.channelId ?? 0;
1033
- const msgId = upd._ === "updateNewMessage" || upd._ === "updateNewChannelMessage" || upd._ === "updateBotNewBusinessMessage" ? upd.message.id : void 0;
1034
- const foundByMsgId = msgId && this.noDispatchMsg.get(channelId)?.delete(msgId);
1035
- const foundByPts = this.noDispatchPts.get(channelId)?.delete(pending.pts);
1036
- const foundByQts = this.noDispatchQts.delete(pending.qts);
1037
- if (foundByMsgId || foundByPts || foundByQts) {
1038
- log.debug("not dispatching %s because it is in no_dispatch index", upd._);
1039
- return;
1040
- }
1066
+ if (inNoDispatchIndex) {
1067
+ log.debug("not dispatching %s because it is in no_dispatch index", upd._);
1068
+ return;
1041
1069
  }
1042
1070
  log.debug("dispatching %s (postponed = %s)", upd._, postponed);
1043
1071
  if (upd._ === "updateNewMessage" && upd.message._ !== "messageEmpty") {
@@ -1357,12 +1385,14 @@ class UpdatesManager {
1357
1385
  } else if (cpts.has(pending.channelId)) {
1358
1386
  localPts = cpts.get(pending.channelId);
1359
1387
  }
1360
- if (!localPts) {
1388
+ if (localPts === void 0) {
1361
1389
  log.warn(
1362
1390
  "local pts not available for postponed %s (cid = %d), skipping",
1363
1391
  upd._,
1364
1392
  pending.channelId
1365
1393
  );
1394
+ pendingPtsUpdatesPostponed.removeIndex(i);
1395
+ i--;
1366
1396
  continue;
1367
1397
  }
1368
1398
  if (localPts > pending.ptsBefore) {
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -9,10 +9,14 @@ const utils = require("@fuman/utils");
9
9
  async function streamToBuffer(stream) {
10
10
  const chunks = [];
11
11
  const reader = stream.getReader();
12
- while (true) {
13
- const { done, value } = await reader.read();
14
- if (done) break;
15
- chunks.push(value);
12
+ try {
13
+ while (true) {
14
+ const { done, value } = await reader.read();
15
+ if (done) break;
16
+ chunks.push(value);
17
+ }
18
+ } finally {
19
+ reader.releaseLock();
16
20
  }
17
21
  return utils.u8.concat(chunks);
18
22
  }
@@ -2,10 +2,14 @@ import { u8 } from "@fuman/utils";
2
2
  async function streamToBuffer(stream) {
3
3
  const chunks = [];
4
4
  const reader = stream.getReader();
5
- while (true) {
6
- const { done, value } = await reader.read();
7
- if (done) break;
8
- chunks.push(value);
5
+ try {
6
+ while (true) {
7
+ const { done, value } = await reader.read();
8
+ if (done) break;
9
+ chunks.push(value);
10
+ }
11
+ } finally {
12
+ reader.releaseLock();
9
13
  }
10
14
  return u8.concat(chunks);
11
15
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -39,11 +39,16 @@ function walkRichText(text, visitor) {
39
39
  case "textBankCard":
40
40
  case "textDate":
41
41
  case "textMentionName":
42
+ case "textButton":
42
43
  walkRichText(text.text, visitor);
43
44
  break;
44
45
  case "textConcat":
45
46
  for (const child of text.texts) walkRichText(child, visitor);
46
47
  break;
48
+ case "textDiff":
49
+ walkRichText(text.text, visitor);
50
+ walkRichText(text.oldText, visitor);
51
+ break;
47
52
  default:
48
53
  utils.assertNever();
49
54
  }
@@ -121,6 +126,7 @@ function walkPageBlock(block, visitor) {
121
126
  case "pageBlockAudio":
122
127
  case "pageBlockMap":
123
128
  case "inputPageBlockMap":
129
+ case "pageBlockDocument":
124
130
  walkPageCaption(block.caption, visitor);
125
131
  break;
126
132
  case "pageBlockCover":
@@ -137,6 +143,9 @@ function walkPageBlock(block, visitor) {
137
143
  break;
138
144
  case "pageBlockChannel":
139
145
  break;
146
+ case "pageBlockButtonRow":
147
+ for (const button of block.buttons) walkRichText(button.text, visitor);
148
+ break;
140
149
  case "pageBlockTable":
141
150
  walkRichText(block.title, visitor);
142
151
  for (const row of block.rows) {
@@ -32,11 +32,16 @@ function walkRichText(text, visitor) {
32
32
  case "textBankCard":
33
33
  case "textDate":
34
34
  case "textMentionName":
35
+ case "textButton":
35
36
  walkRichText(text.text, visitor);
36
37
  break;
37
38
  case "textConcat":
38
39
  for (const child of text.texts) walkRichText(child, visitor);
39
40
  break;
41
+ case "textDiff":
42
+ walkRichText(text.text, visitor);
43
+ walkRichText(text.oldText, visitor);
44
+ break;
40
45
  default:
41
46
  assertNever();
42
47
  }
@@ -114,6 +119,7 @@ function walkPageBlock(block, visitor) {
114
119
  case "pageBlockAudio":
115
120
  case "pageBlockMap":
116
121
  case "inputPageBlockMap":
122
+ case "pageBlockDocument":
117
123
  walkPageCaption(block.caption, visitor);
118
124
  break;
119
125
  case "pageBlockCover":
@@ -130,6 +136,9 @@ function walkPageBlock(block, visitor) {
130
136
  break;
131
137
  case "pageBlockChannel":
132
138
  break;
139
+ case "pageBlockButtonRow":
140
+ for (const button of block.buttons) walkRichText(button.text, visitor);
141
+ break;
133
142
  case "pageBlockTable":
134
143
  walkRichText(block.title, visitor);
135
144
  for (const row of block.rows) {
package/index.cjs CHANGED
@@ -45,6 +45,7 @@ const voice = require("./highlevel/types/media/voice.cjs");
45
45
  const webPage = require("./highlevel/types/media/web-page.cjs");
46
46
  const dialog = require("./highlevel/types/messages/dialog.cjs");
47
47
  const draftMessage = require("./highlevel/types/messages/draft-message.cjs");
48
+ const ephemeralMessage = require("./highlevel/types/messages/ephemeral-message.cjs");
48
49
  const factCheck = require("./highlevel/types/messages/fact-check.cjs");
49
50
  const inputMessageId = require("./highlevel/types/messages/input-message-id.cjs");
50
51
  const messageAction = require("./highlevel/types/messages/message-action.cjs");
@@ -78,6 +79,7 @@ const chatPhoto = require("./highlevel/types/peers/chat-photo.cjs");
78
79
  const chatPreview = require("./highlevel/types/peers/chat-preview.cjs");
79
80
  const chat = require("./highlevel/types/peers/chat.cjs");
80
81
  const chatlistPreview = require("./highlevel/types/peers/chatlist-preview.cjs");
82
+ const communityPeer = require("./highlevel/types/peers/community-peer.cjs");
81
83
  const forumTopic = require("./highlevel/types/peers/forum-topic.cjs");
82
84
  const fullChat = require("./highlevel/types/peers/full-chat.cjs");
83
85
  const fullUser = require("./highlevel/types/peers/full-user.cjs");
@@ -129,8 +131,10 @@ const chatJoinRequest = require("./highlevel/types/updates/chat-join-request.cjs
129
131
  const chatMemberUpdate = require("./highlevel/types/updates/chat-member-update.cjs");
130
132
  const chosenInlineResult = require("./highlevel/types/updates/chosen-inline-result.cjs");
131
133
  const deleteBusinessMessageUpdate = require("./highlevel/types/updates/delete-business-message-update.cjs");
134
+ const deleteEphemeralMessagesUpdate = require("./highlevel/types/updates/delete-ephemeral-messages-update.cjs");
132
135
  const deleteMessageUpdate = require("./highlevel/types/updates/delete-message-update.cjs");
133
136
  const deleteStoryUpdate = require("./highlevel/types/updates/delete-story-update.cjs");
137
+ const ephemeralCallbackQuery = require("./highlevel/types/updates/ephemeral-callback-query.cjs");
134
138
  const historyReadUpdate = require("./highlevel/types/updates/history-read-update.cjs");
135
139
  const inlineQuery = require("./highlevel/types/updates/inline-query.cjs");
136
140
  const pollUpdate = require("./highlevel/types/updates/poll-update.cjs");
@@ -216,6 +220,7 @@ exports.WebPage = webPage.WebPage;
216
220
  exports.WebPageMedia = webPage.WebPageMedia;
217
221
  exports.Dialog = dialog.Dialog;
218
222
  exports.DraftMessage = draftMessage.DraftMessage;
223
+ exports.EphemeralMessage = ephemeralMessage.EphemeralMessage;
219
224
  exports.FactCheck = factCheck.FactCheck;
220
225
  exports.normalizeInputMessageId = inputMessageId.normalizeInputMessageId;
221
226
  exports._messageActionFromTl = messageAction._messageActionFromTl;
@@ -251,6 +256,8 @@ exports.ChatPhotoSize = chatPhoto.ChatPhotoSize;
251
256
  exports.ChatPreview = chatPreview.ChatPreview;
252
257
  exports.Chat = chat.Chat;
253
258
  exports.ChatlistPreview = chatlistPreview.ChatlistPreview;
259
+ exports.CommunityPeer = communityPeer.CommunityPeer;
260
+ exports.CommunityPeerRequest = communityPeer.CommunityPeerRequest;
254
261
  exports.ForumTopic = forumTopic.ForumTopic;
255
262
  exports.FullChat = fullChat.FullChat;
256
263
  exports.FullUser = fullUser.FullUser;
@@ -314,8 +321,10 @@ exports.ChatJoinRequestUpdate = chatJoinRequest.ChatJoinRequestUpdate;
314
321
  exports.ChatMemberUpdate = chatMemberUpdate.ChatMemberUpdate;
315
322
  exports.ChosenInlineResult = chosenInlineResult.ChosenInlineResult;
316
323
  exports.DeleteBusinessMessageUpdate = deleteBusinessMessageUpdate.DeleteBusinessMessageUpdate;
324
+ exports.DeleteEphemeralMessagesUpdate = deleteEphemeralMessagesUpdate.DeleteEphemeralMessagesUpdate;
317
325
  exports.DeleteMessageUpdate = deleteMessageUpdate.DeleteMessageUpdate;
318
326
  exports.DeleteStoryUpdate = deleteStoryUpdate.DeleteStoryUpdate;
327
+ exports.EphemeralCallbackQuery = ephemeralCallbackQuery.EphemeralCallbackQuery;
319
328
  exports.HistoryReadUpdate = historyReadUpdate.HistoryReadUpdate;
320
329
  exports.InlineQuery = inlineQuery.InlineQuery;
321
330
  exports.PollUpdate = pollUpdate.PollUpdate;
@@ -331,6 +340,7 @@ exports.networkMiddlewares = bundle$1;
331
340
  exports.BaseMtProxyTransport = index$2.BaseMtProxyTransport;
332
341
  exports.SessionConnection = sessionConnection.SessionConnection;
333
342
  exports.TransportError = abstract.TransportError;
343
+ exports.performHandshakeWithAbort = abstract.performHandshakeWithAbort;
334
344
  exports.IntermediatePacketCodec = intermediate.IntermediatePacketCodec;
335
345
  exports.PaddedIntermediatePacketCodec = intermediate.PaddedIntermediatePacketCodec;
336
346
  exports.ObfuscatedPacketCodec = obfuscated.ObfuscatedPacketCodec;
package/index.js CHANGED
@@ -38,6 +38,7 @@ import { Voice } from "./highlevel/types/media/voice.js";
38
38
  import { WebPage, WebPageMedia } from "./highlevel/types/media/web-page.js";
39
39
  import { Dialog } from "./highlevel/types/messages/dialog.js";
40
40
  import { DraftMessage } from "./highlevel/types/messages/draft-message.js";
41
+ import { EphemeralMessage } from "./highlevel/types/messages/ephemeral-message.js";
41
42
  import { FactCheck } from "./highlevel/types/messages/fact-check.js";
42
43
  import { normalizeInputMessageId } from "./highlevel/types/messages/input-message-id.js";
43
44
  import { _messageActionFromTl } from "./highlevel/types/messages/message-action.js";
@@ -71,6 +72,7 @@ import { ChatPhoto, ChatPhotoSize } from "./highlevel/types/peers/chat-photo.js"
71
72
  import { ChatPreview } from "./highlevel/types/peers/chat-preview.js";
72
73
  import { Chat } from "./highlevel/types/peers/chat.js";
73
74
  import { ChatlistPreview } from "./highlevel/types/peers/chatlist-preview.js";
75
+ import { CommunityPeer, CommunityPeerRequest } from "./highlevel/types/peers/community-peer.js";
74
76
  import { ForumTopic } from "./highlevel/types/peers/forum-topic.js";
75
77
  import { FullChat } from "./highlevel/types/peers/full-chat.js";
76
78
  import { FullUser } from "./highlevel/types/peers/full-user.js";
@@ -122,8 +124,10 @@ import { ChatJoinRequestUpdate } from "./highlevel/types/updates/chat-join-reque
122
124
  import { ChatMemberUpdate } from "./highlevel/types/updates/chat-member-update.js";
123
125
  import { ChosenInlineResult } from "./highlevel/types/updates/chosen-inline-result.js";
124
126
  import { DeleteBusinessMessageUpdate } from "./highlevel/types/updates/delete-business-message-update.js";
127
+ import { DeleteEphemeralMessagesUpdate } from "./highlevel/types/updates/delete-ephemeral-messages-update.js";
125
128
  import { DeleteMessageUpdate } from "./highlevel/types/updates/delete-message-update.js";
126
129
  import { DeleteStoryUpdate } from "./highlevel/types/updates/delete-story-update.js";
130
+ import { EphemeralCallbackQuery } from "./highlevel/types/updates/ephemeral-callback-query.js";
127
131
  import { HistoryReadUpdate } from "./highlevel/types/updates/history-read-update.js";
128
132
  import { InlineQuery } from "./highlevel/types/updates/inline-query.js";
129
133
  import { PollUpdate } from "./highlevel/types/updates/poll-update.js";
@@ -138,7 +142,7 @@ import { MtClient } from "./network/client.js";
138
142
  import * as bundle$1 from "./network/middlewares/bundle.js";
139
143
  import { BaseMtProxyTransport } from "./network/mtproxy/index.js";
140
144
  import { SessionConnection } from "./network/session-connection.js";
141
- import { TransportError } from "./network/transports/abstract.js";
145
+ import { TransportError, performHandshakeWithAbort } from "./network/transports/abstract.js";
142
146
  import { IntermediatePacketCodec, PaddedIntermediatePacketCodec } from "./network/transports/intermediate.js";
143
147
  import { ObfuscatedPacketCodec } from "./network/transports/obfuscated.js";
144
148
  import { createProxyTransportFactory } from "./network/transports/proxy.js";
@@ -200,9 +204,12 @@ export {
200
204
  ChatlistPreview,
201
205
  ChosenInlineResult,
202
206
  CollectibleInfo,
207
+ CommunityPeer,
208
+ CommunityPeerRequest,
203
209
  Contact,
204
210
  Conversation,
205
211
  DeleteBusinessMessageUpdate,
212
+ DeleteEphemeralMessagesUpdate,
206
213
  DeleteMessageUpdate,
207
214
  DeleteStoryUpdate,
208
215
  Dialog,
@@ -211,6 +218,8 @@ export {
211
218
  DraftMessage,
212
219
  EmojiStatus,
213
220
  EmojiStatusCollectible,
221
+ EphemeralCallbackQuery,
222
+ EphemeralMessage,
214
223
  ExtendedMediaPreview,
215
224
  FactCheck,
216
225
  FileLocation,
@@ -343,6 +352,7 @@ export {
343
352
  normalizeInputStickerSet,
344
353
  parseMarkedPeerId,
345
354
  parsePeer,
355
+ performHandshakeWithAbort,
346
356
  innerTl as tl,
347
357
  toReactionEmoji,
348
358
  toggleChannelIdMark
package/methods.cjs CHANGED
@@ -88,6 +88,14 @@ const toggleJoinToSend = require("./highlevel/methods/chats/toggle-join-to-send.
88
88
  const transferChatOwnership = require("./highlevel/methods/chats/transfer-chat-ownership.cjs");
89
89
  const unarchiveChats = require("./highlevel/methods/chats/unarchive-chats.cjs");
90
90
  const unbanChatMember = require("./highlevel/methods/chats/unban-chat-member.cjs");
91
+ const banCommunityParticipant = require("./highlevel/methods/communities/ban-community-participant.cjs");
92
+ const createCommunity = require("./highlevel/methods/communities/create-community.cjs");
93
+ const getCommunityLinkRequests = require("./highlevel/methods/communities/get-community-link-requests.cjs");
94
+ const getCommunityParticipantChats = require("./highlevel/methods/communities/get-community-participant-chats.cjs");
95
+ const getJoinedCommunities = require("./highlevel/methods/communities/get-joined-communities.cjs");
96
+ const hideCommunityLinkRequest = require("./highlevel/methods/communities/hide-community-link-request.cjs");
97
+ const linkCommunityPeer = require("./highlevel/methods/communities/link-community-peer.cjs");
98
+ const toggleCommunityCollapsed = require("./highlevel/methods/communities/toggle-community-collapsed.cjs");
91
99
  const addContact = require("./highlevel/methods/contacts/add-contact.cjs");
92
100
  const deleteContacts = require("./highlevel/methods/contacts/delete-contacts.cjs");
93
101
  const getContacts = require("./highlevel/methods/contacts/get-contacts.cjs");
@@ -104,6 +112,13 @@ const getPeerDialogs = require("./highlevel/methods/dialogs/get-peer-dialogs.cjs
104
112
  const iterDialogs = require("./highlevel/methods/dialogs/iter-dialogs.cjs");
105
113
  const joinChatlist = require("./highlevel/methods/dialogs/join-chatlist.cjs");
106
114
  const setFoldersOrder = require("./highlevel/methods/dialogs/set-folders-order.cjs");
115
+ const deleteAllWelcomeMessages = require("./highlevel/methods/ephemeral/delete-all-welcome-messages.cjs");
116
+ const deleteEphemeralMessage = require("./highlevel/methods/ephemeral/delete-ephemeral-message.cjs");
117
+ const deleteWelcomeMessage = require("./highlevel/methods/ephemeral/delete-welcome-message.cjs");
118
+ const editEphemeralMessage = require("./highlevel/methods/ephemeral/edit-ephemeral-message.cjs");
119
+ const getEphemeralCallbackAnswer = require("./highlevel/methods/ephemeral/get-ephemeral-callback-answer.cjs");
120
+ const getWelcomeMessages = require("./highlevel/methods/ephemeral/get-welcome-messages.cjs");
121
+ const sendEphemeralMessage = require("./highlevel/methods/ephemeral/send-ephemeral-message.cjs");
107
122
  const downloadBuffer = require("./highlevel/methods/files/download-buffer.cjs");
108
123
  const downloadChunk = require("./highlevel/methods/files/download-chunk.cjs");
109
124
  const downloadIterable = require("./highlevel/methods/files/download-iterable.cjs");
@@ -376,6 +391,17 @@ exports.toggleJoinToSend = toggleJoinToSend.toggleJoinToSend;
376
391
  exports.transferChatOwnership = transferChatOwnership.transferChatOwnership;
377
392
  exports.unarchiveChats = unarchiveChats.unarchiveChats;
378
393
  exports.unbanChatMember = unbanChatMember.unbanChatMember;
394
+ exports.banCommunityParticipant = banCommunityParticipant.banCommunityParticipant;
395
+ exports.unbanCommunityParticipant = banCommunityParticipant.unbanCommunityParticipant;
396
+ exports.createCommunity = createCommunity.createCommunity;
397
+ exports.getCommunityLinkRequests = getCommunityLinkRequests.getCommunityLinkRequests;
398
+ exports.getCommunityParticipantChats = getCommunityParticipantChats.getCommunityParticipantChats;
399
+ exports.getJoinedCommunities = getJoinedCommunities.getJoinedCommunities;
400
+ exports.hideAllCommunityLinkRequests = hideCommunityLinkRequest.hideAllCommunityLinkRequests;
401
+ exports.hideCommunityLinkRequest = hideCommunityLinkRequest.hideCommunityLinkRequest;
402
+ exports.linkCommunityPeer = linkCommunityPeer.linkCommunityPeer;
403
+ exports.unlinkCommunityPeer = linkCommunityPeer.unlinkCommunityPeer;
404
+ exports.toggleCommunityCollapsed = toggleCommunityCollapsed.toggleCommunityCollapsed;
379
405
  exports.addContact = addContact.addContact;
380
406
  exports.deleteContacts = deleteContacts.deleteContacts;
381
407
  exports.getContacts = getContacts.getContacts;
@@ -392,6 +418,13 @@ exports.getPeerDialogs = getPeerDialogs.getPeerDialogs;
392
418
  exports.iterDialogs = iterDialogs.iterDialogs;
393
419
  exports.joinChatlist = joinChatlist.joinChatlist;
394
420
  exports.setFoldersOrder = setFoldersOrder.setFoldersOrder;
421
+ exports.deleteAllWelcomeMessages = deleteAllWelcomeMessages.deleteAllWelcomeMessages;
422
+ exports.deleteEphemeralMessage = deleteEphemeralMessage.deleteEphemeralMessage;
423
+ exports.deleteWelcomeMessage = deleteWelcomeMessage.deleteWelcomeMessage;
424
+ exports.editEphemeralMessage = editEphemeralMessage.editEphemeralMessage;
425
+ exports.getEphemeralCallbackAnswer = getEphemeralCallbackAnswer.getEphemeralCallbackAnswer;
426
+ exports.getWelcomeMessages = getWelcomeMessages.getWelcomeMessages;
427
+ exports.sendEphemeralMessage = sendEphemeralMessage.sendEphemeralMessage;
395
428
  exports.downloadAsBuffer = downloadBuffer.downloadAsBuffer;
396
429
  exports.downloadChunk = downloadChunk.downloadChunk;
397
430
  exports._normalizeFileDownloadLocation = downloadIterable._normalizeFileDownloadLocation;
package/methods.js CHANGED
@@ -81,6 +81,14 @@ import { toggleJoinToSend } from "./highlevel/methods/chats/toggle-join-to-send.
81
81
  import { transferChatOwnership } from "./highlevel/methods/chats/transfer-chat-ownership.js";
82
82
  import { unarchiveChats } from "./highlevel/methods/chats/unarchive-chats.js";
83
83
  import { unbanChatMember } from "./highlevel/methods/chats/unban-chat-member.js";
84
+ import { banCommunityParticipant, unbanCommunityParticipant } from "./highlevel/methods/communities/ban-community-participant.js";
85
+ import { createCommunity } from "./highlevel/methods/communities/create-community.js";
86
+ import { getCommunityLinkRequests } from "./highlevel/methods/communities/get-community-link-requests.js";
87
+ import { getCommunityParticipantChats } from "./highlevel/methods/communities/get-community-participant-chats.js";
88
+ import { getJoinedCommunities } from "./highlevel/methods/communities/get-joined-communities.js";
89
+ import { hideAllCommunityLinkRequests, hideCommunityLinkRequest } from "./highlevel/methods/communities/hide-community-link-request.js";
90
+ import { linkCommunityPeer, unlinkCommunityPeer } from "./highlevel/methods/communities/link-community-peer.js";
91
+ import { toggleCommunityCollapsed } from "./highlevel/methods/communities/toggle-community-collapsed.js";
84
92
  import { addContact } from "./highlevel/methods/contacts/add-contact.js";
85
93
  import { deleteContacts } from "./highlevel/methods/contacts/delete-contacts.js";
86
94
  import { getContacts } from "./highlevel/methods/contacts/get-contacts.js";
@@ -97,6 +105,13 @@ import { getPeerDialogs } from "./highlevel/methods/dialogs/get-peer-dialogs.js"
97
105
  import { iterDialogs } from "./highlevel/methods/dialogs/iter-dialogs.js";
98
106
  import { joinChatlist } from "./highlevel/methods/dialogs/join-chatlist.js";
99
107
  import { setFoldersOrder } from "./highlevel/methods/dialogs/set-folders-order.js";
108
+ import { deleteAllWelcomeMessages } from "./highlevel/methods/ephemeral/delete-all-welcome-messages.js";
109
+ import { deleteEphemeralMessage } from "./highlevel/methods/ephemeral/delete-ephemeral-message.js";
110
+ import { deleteWelcomeMessage } from "./highlevel/methods/ephemeral/delete-welcome-message.js";
111
+ import { editEphemeralMessage } from "./highlevel/methods/ephemeral/edit-ephemeral-message.js";
112
+ import { getEphemeralCallbackAnswer } from "./highlevel/methods/ephemeral/get-ephemeral-callback-answer.js";
113
+ import { getWelcomeMessages } from "./highlevel/methods/ephemeral/get-welcome-messages.js";
114
+ import { sendEphemeralMessage } from "./highlevel/methods/ephemeral/send-ephemeral-message.js";
100
115
  import { downloadAsBuffer } from "./highlevel/methods/files/download-buffer.js";
101
116
  import { downloadChunk } from "./highlevel/methods/files/download-chunk.js";
102
117
  import { _normalizeFileDownloadLocation, downloadAsIterable } from "./highlevel/methods/files/download-iterable.js";
@@ -303,6 +318,7 @@ export {
303
318
  applyBoost,
304
319
  archiveChats,
305
320
  banChatMember,
321
+ banCommunityParticipant,
306
322
  blockUser,
307
323
  buyResaleGift,
308
324
  canApplyBoost,
@@ -318,6 +334,7 @@ export {
318
334
  commentText,
319
335
  createBusinessChatLink,
320
336
  createChannel,
337
+ createCommunity,
321
338
  createFolder,
322
339
  createForumTopic,
323
340
  createGroup,
@@ -326,10 +343,12 @@ export {
326
343
  createStickerSet,
327
344
  createStreamingDraft,
328
345
  createSupergroup,
346
+ deleteAllWelcomeMessages,
329
347
  deleteBusinessChatLink,
330
348
  deleteChannel,
331
349
  deleteChatPhoto,
332
350
  deleteContacts,
351
+ deleteEphemeralMessage,
333
352
  deleteFolder,
334
353
  deleteForumTopicHistory,
335
354
  deleteGroup,
@@ -342,6 +361,7 @@ export {
342
361
  deleteStickerFromSet,
343
362
  deleteStories,
344
363
  deleteUserHistory,
364
+ deleteWelcomeMessage,
345
365
  downloadAsBuffer,
346
366
  downloadAsIterable,
347
367
  downloadAsStream,
@@ -351,6 +371,7 @@ export {
351
371
  editChatMemberRank,
352
372
  editCloseFriends,
353
373
  editCloseFriendsRaw,
374
+ editEphemeralMessage,
354
375
  editFolder,
355
376
  editForumTopic,
356
377
  editInlineMessage,
@@ -383,11 +404,14 @@ export {
383
404
  getChats,
384
405
  getCollectibleInfo,
385
406
  getCommonChats,
407
+ getCommunityLinkRequests,
408
+ getCommunityParticipantChats,
386
409
  getContacts,
387
410
  getCreatorAfterLeave,
388
411
  getCustomEmojis,
389
412
  getCustomEmojisFromMessages,
390
413
  getDiscussionMessage,
414
+ getEphemeralCallbackAnswer,
391
415
  getFactCheck,
392
416
  getFolders,
393
417
  getForumTopics,
@@ -402,6 +426,7 @@ export {
402
426
  getInviteLink,
403
427
  getInviteLinkMembers,
404
428
  getInviteLinks,
429
+ getJoinedCommunities,
405
430
  getMe,
406
431
  getMessageAuthor,
407
432
  getMessageByLink,
@@ -446,7 +471,10 @@ export {
446
471
  getUser,
447
472
  getUsers,
448
473
  getWebPagePreview,
474
+ getWelcomeMessages,
475
+ hideAllCommunityLinkRequests,
449
476
  hideAllJoinRequests,
477
+ hideCommunityLinkRequest,
450
478
  hideJoinRequest,
451
479
  hideMyStoriesViews,
452
480
  importContacts,
@@ -476,6 +504,7 @@ export {
476
504
  joinChatlist,
477
505
  kickChatMember,
478
506
  leaveChat,
507
+ linkCommunityPeer,
479
508
  logOut,
480
509
  markChatUnread,
481
510
  moveStickerInSet,
@@ -517,6 +546,7 @@ export {
517
546
  sendCode,
518
547
  sendCopy,
519
548
  sendCopyGroup,
549
+ sendEphemeralMessage,
520
550
  sendMedia,
521
551
  sendMediaGroup,
522
552
  sendOnline,
@@ -565,6 +595,7 @@ export {
565
595
  signInQr,
566
596
  start,
567
597
  startTest,
598
+ toggleCommunityCollapsed,
568
599
  toggleContentProtection,
569
600
  toggleEmojiStatusPermission,
570
601
  toggleForumTopicClosed,
@@ -583,7 +614,9 @@ export {
583
614
  translateText,
584
615
  unarchiveChats,
585
616
  unbanChatMember,
617
+ unbanCommunityParticipant,
586
618
  unblockUser,
619
+ unlinkCommunityPeer,
587
620
  unpinAllMessages,
588
621
  unpinMessage,
589
622
  unsaveMusicFromProfile,
@@ -70,7 +70,6 @@ class MtClient {
70
70
  onConnecting: this.onConnecting.emit.bind(this.onConnecting),
71
71
  onNetworkChanged: this.onNetworkChanged.emit.bind(this.onNetworkChanged),
72
72
  onUpdate: this.onUpdate.emit.bind(this.onUpdate),
73
- stopSignal: this.stopSignal,
74
73
  platform: params.platform,
75
74
  ...miscUtils.dropUndefined(params.network)
76
75
  },
@@ -106,6 +105,7 @@ class MtClient {
106
105
  log;
107
106
  network;
108
107
  _abortController;
108
+ /** Signal that is aborted when the client is destroyed */
109
109
  stopSignal;
110
110
  onUsable = new utils.Emitter();
111
111
  onConnecting = new utils.Emitter();
@@ -143,12 +143,11 @@ class MtClient {
143
143
  return this._connect.run();
144
144
  }
145
145
  async disconnect() {
146
- await this.network.destroy();
146
+ await this.network.disconnect();
147
147
  await this.storage.save();
148
148
  this._config.destroy();
149
149
  this._prepare.reset();
150
150
  this._connect.reset();
151
- this._abortController.abort();
152
151
  this.log.debug("client disconnected");
153
152
  }
154
153
  /**
@@ -157,6 +156,8 @@ class MtClient {
157
156
  * **Note**: must be called *after* {@link disconnect}
158
157
  */
159
158
  async destroy() {
159
+ this._abortController.abort();
160
+ await this.network.destroy();
160
161
  await this.storage.destroy();
161
162
  this.log.debug("client destroyed");
162
163
  }