@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
@@ -0,0 +1,44 @@
1
+ import { tl } from '../../../tl/index.js';
2
+ import { Peer } from '../peers/peer.js';
3
+ import { PeersIndex } from '../peers/peers-index.js';
4
+ import { EphemeralMessage } from '../messages/ephemeral-message.js';
5
+ import { User } from '../peers/user.js';
6
+ /**
7
+ * A callback query originating from an ephemeral message sent by the bot.
8
+ */
9
+ export declare class EphemeralCallbackQuery {
10
+ readonly raw: tl.RawUpdateEphemeralBotCallbackQuery;
11
+ readonly _peers: PeersIndex;
12
+ constructor(raw: tl.RawUpdateEphemeralBotCallbackQuery, _peers: PeersIndex);
13
+ /** ID of this callback query */
14
+ get id(): tl.Long;
15
+ /** User who has pressed the button */
16
+ get user(): User;
17
+ /**
18
+ * Chat where the originating ephemeral message was sent.
19
+ *
20
+ * `null` if not available (see {@link chatInstance})
21
+ */
22
+ get chat(): Peer | null;
23
+ /** Identifier uniquely corresponding to the chat the message was sent to, if any */
24
+ get chatInstance(): tl.Long | null;
25
+ /** Identifier of the ephemeral message containing the button which was clicked */
26
+ get messageId(): number;
27
+ /** The originating ephemeral message */
28
+ get message(): EphemeralMessage;
29
+ /**
30
+ * Data that was contained in the callback button.
31
+ *
32
+ * Note that this field is defined by the client, and a bad
33
+ * client can send arbitrary data in this field.
34
+ */
35
+ get data(): Uint8Array;
36
+ /**
37
+ * Data that was contained in the callback button,
38
+ * parsed as a UTF8 string
39
+ *
40
+ * Note that this field is defined by the client, and a bad
41
+ * client can send arbitrary data in this field.
42
+ */
43
+ get dataStr(): string;
44
+ }
@@ -0,0 +1,64 @@
1
+ import { utf8 } from "@fuman/utils";
2
+ import { memoizeGetters } from "../../utils/memoize.js";
3
+ import { EphemeralMessage as EphemeralMessage$2 } from "../messages/ephemeral-message.js";
4
+ import { parsePeer } from "../peers/peer.js";
5
+ import { User as User$2 } from "../peers/user.js";
6
+ import { makeInspectable } from "../../utils/inspectable.js";
7
+ class EphemeralCallbackQuery {
8
+ constructor(raw, _peers) {
9
+ this.raw = raw;
10
+ this._peers = _peers;
11
+ }
12
+ /** ID of this callback query */
13
+ get id() {
14
+ return this.raw.queryId;
15
+ }
16
+ /** User who has pressed the button */
17
+ get user() {
18
+ return new User$2(this._peers.user(this.raw.userId));
19
+ }
20
+ /**
21
+ * Chat where the originating ephemeral message was sent.
22
+ *
23
+ * `null` if not available (see {@link chatInstance})
24
+ */
25
+ get chat() {
26
+ return this.raw.peer ? parsePeer(this.raw.peer, this._peers) : null;
27
+ }
28
+ /** Identifier uniquely corresponding to the chat the message was sent to, if any */
29
+ get chatInstance() {
30
+ return this.raw.chatInstance ?? null;
31
+ }
32
+ /** Identifier of the ephemeral message containing the button which was clicked */
33
+ get messageId() {
34
+ return this.raw.msgId;
35
+ }
36
+ /** The originating ephemeral message */
37
+ get message() {
38
+ return new EphemeralMessage$2(this.raw.message, this._peers);
39
+ }
40
+ /**
41
+ * Data that was contained in the callback button.
42
+ *
43
+ * Note that this field is defined by the client, and a bad
44
+ * client can send arbitrary data in this field.
45
+ */
46
+ get data() {
47
+ return this.raw.data;
48
+ }
49
+ /**
50
+ * Data that was contained in the callback button,
51
+ * parsed as a UTF8 string
52
+ *
53
+ * Note that this field is defined by the client, and a bad
54
+ * client can send arbitrary data in this field.
55
+ */
56
+ get dataStr() {
57
+ return utf8.decoder.decode(this.raw.data);
58
+ }
59
+ }
60
+ const EphemeralCallbackQuery$1 = /* @__PURE__ */ memoizeGetters(EphemeralCallbackQuery, ["user", "chat", "message", "dataStr"]);
61
+ const EphemeralCallbackQuery$2 = /* @__PURE__ */ makeInspectable(EphemeralCallbackQuery$1);
62
+ export {
63
+ EphemeralCallbackQuery$2 as EphemeralCallbackQuery
64
+ };
@@ -1,4 +1,4 @@
1
- import { BusinessConnection, Message } from '../../types/index.js';
1
+ import { BusinessConnection, EphemeralMessage, Message } from '../../types/index.js';
2
2
  import { BotChatJoinRequestUpdate } from './bot-chat-join-request.js';
3
3
  import { BotGuestChatQuery } from './bot-guest-chat-query.js';
4
4
  import { BotReactionCountUpdate, BotReactionUpdate } from './bot-reaction.js';
@@ -9,8 +9,10 @@ import { ChatJoinRequestUpdate } from './chat-join-request.js';
9
9
  import { ChatMemberUpdate } from './chat-member-update.js';
10
10
  import { ChosenInlineResult } from './chosen-inline-result.js';
11
11
  import { DeleteBusinessMessageUpdate } from './delete-business-message-update.js';
12
+ import { DeleteEphemeralMessagesUpdate } from './delete-ephemeral-messages-update.js';
12
13
  import { DeleteMessageUpdate } from './delete-message-update.js';
13
14
  import { DeleteStoryUpdate } from './delete-story-update.js';
15
+ import { EphemeralCallbackQuery } from './ephemeral-callback-query.js';
14
16
  import { HistoryReadUpdate } from './history-read-update.js';
15
17
  import { InlineQuery } from './inline-query.js';
16
18
  import { PollUpdate } from './poll-update.js';
@@ -20,7 +22,7 @@ import { StoryUpdate } from './story-update.js';
20
22
  import { UserStatusUpdate } from './user-status-update.js';
21
23
  import { UserTypingUpdate } from './user-typing-update.js';
22
24
  export type { ChatMemberUpdateType } from './chat-member-update.js';
23
- export { BotChatJoinRequestUpdate, BotGuestChatQuery, BotReactionCountUpdate, BotReactionUpdate, BotStoppedUpdate, BusinessCallbackQuery, BusinessMessage, CallbackQuery, ChatJoinRequestUpdate, ChatMemberUpdate, ChosenInlineResult, DeleteBusinessMessageUpdate, DeleteMessageUpdate, DeleteStoryUpdate, HistoryReadUpdate, InlineCallbackQuery, InlineQuery, PollUpdate, PollVoteUpdate, PreCheckoutQuery, StoryUpdate, UserStatusUpdate, UserTypingUpdate, };
25
+ export { BotChatJoinRequestUpdate, BotGuestChatQuery, BotReactionCountUpdate, BotReactionUpdate, BotStoppedUpdate, BusinessCallbackQuery, BusinessMessage, CallbackQuery, ChatJoinRequestUpdate, ChatMemberUpdate, ChosenInlineResult, DeleteBusinessMessageUpdate, DeleteEphemeralMessagesUpdate, DeleteMessageUpdate, DeleteStoryUpdate, EphemeralCallbackQuery, HistoryReadUpdate, InlineCallbackQuery, InlineQuery, PollUpdate, PollVoteUpdate, PreCheckoutQuery, StoryUpdate, UserStatusUpdate, UserTypingUpdate, };
24
26
  export type ParsedUpdate = {
25
27
  name: 'new_message';
26
28
  data: Message;
@@ -108,4 +110,16 @@ export type ParsedUpdate = {
108
110
  } | {
109
111
  name: 'delete_business_message';
110
112
  data: DeleteBusinessMessageUpdate;
113
+ } | {
114
+ name: 'new_ephemeral_message';
115
+ data: EphemeralMessage;
116
+ } | {
117
+ name: 'edit_ephemeral_message';
118
+ data: EphemeralMessage;
119
+ } | {
120
+ name: 'delete_ephemeral_messages';
121
+ data: DeleteEphemeralMessagesUpdate;
122
+ } | {
123
+ name: 'ephemeral_callback_query';
124
+ data: EphemeralCallbackQuery;
111
125
  };
@@ -1,4 +1,4 @@
1
- import { BusinessConnection, Message } from '../../types/index.js';
1
+ import { BusinessConnection, EphemeralMessage, Message } from '../../types/index.js';
2
2
  import { BotChatJoinRequestUpdate } from './bot-chat-join-request.js';
3
3
  import { BotGuestChatQuery } from './bot-guest-chat-query.js';
4
4
  import { BotReactionCountUpdate, BotReactionUpdate } from './bot-reaction.js';
@@ -9,8 +9,10 @@ import { ChatJoinRequestUpdate } from './chat-join-request.js';
9
9
  import { ChatMemberUpdate } from './chat-member-update.js';
10
10
  import { ChosenInlineResult } from './chosen-inline-result.js';
11
11
  import { DeleteBusinessMessageUpdate } from './delete-business-message-update.js';
12
+ import { DeleteEphemeralMessagesUpdate } from './delete-ephemeral-messages-update.js';
12
13
  import { DeleteMessageUpdate } from './delete-message-update.js';
13
14
  import { DeleteStoryUpdate } from './delete-story-update.js';
15
+ import { EphemeralCallbackQuery } from './ephemeral-callback-query.js';
14
16
  import { HistoryReadUpdate } from './history-read-update.js';
15
17
  import { InlineQuery } from './inline-query.js';
16
18
  import { PollUpdate } from './poll-update.js';
@@ -20,7 +22,7 @@ import { StoryUpdate } from './story-update.js';
20
22
  import { UserStatusUpdate } from './user-status-update.js';
21
23
  import { UserTypingUpdate } from './user-typing-update.js';
22
24
  export type { ChatMemberUpdateType } from './chat-member-update.js';
23
- export { BotChatJoinRequestUpdate, BotGuestChatQuery, BotReactionCountUpdate, BotReactionUpdate, BotStoppedUpdate, BusinessCallbackQuery, BusinessMessage, CallbackQuery, ChatJoinRequestUpdate, ChatMemberUpdate, ChosenInlineResult, DeleteBusinessMessageUpdate, DeleteMessageUpdate, DeleteStoryUpdate, HistoryReadUpdate, InlineCallbackQuery, InlineQuery, PollUpdate, PollVoteUpdate, PreCheckoutQuery, StoryUpdate, UserStatusUpdate, UserTypingUpdate, };
25
+ export { BotChatJoinRequestUpdate, BotGuestChatQuery, BotReactionCountUpdate, BotReactionUpdate, BotStoppedUpdate, BusinessCallbackQuery, BusinessMessage, CallbackQuery, ChatJoinRequestUpdate, ChatMemberUpdate, ChosenInlineResult, DeleteBusinessMessageUpdate, DeleteEphemeralMessagesUpdate, DeleteMessageUpdate, DeleteStoryUpdate, EphemeralCallbackQuery, HistoryReadUpdate, InlineCallbackQuery, InlineQuery, PollUpdate, PollVoteUpdate, PreCheckoutQuery, StoryUpdate, UserStatusUpdate, UserTypingUpdate, };
24
26
  export type ParsedUpdate = {
25
27
  name: 'new_message';
26
28
  data: Message;
@@ -108,4 +110,16 @@ export type ParsedUpdate = {
108
110
  } | {
109
111
  name: 'delete_business_message';
110
112
  data: DeleteBusinessMessageUpdate;
113
+ } | {
114
+ name: 'new_ephemeral_message';
115
+ data: EphemeralMessage;
116
+ } | {
117
+ name: 'edit_ephemeral_message';
118
+ data: EphemeralMessage;
119
+ } | {
120
+ name: 'delete_ephemeral_messages';
121
+ data: DeleteEphemeralMessagesUpdate;
122
+ } | {
123
+ name: 'ephemeral_callback_query';
124
+ data: EphemeralCallbackQuery;
111
125
  };
@@ -5,16 +5,18 @@ if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WAR
5
5
  }
6
6
  "use strict";
7
7
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
- const callbackQuery = require("./callback-query.cjs");
8
+ const ephemeralCallbackQuery = require("./ephemeral-callback-query.cjs");
9
9
  const botChatJoinRequest = require("./bot-chat-join-request.cjs");
10
10
  const botGuestChatQuery = require("./bot-guest-chat-query.cjs");
11
11
  const botReaction = require("./bot-reaction.cjs");
12
12
  const botStopped = require("./bot-stopped.cjs");
13
13
  const businessMessage = require("./business-message.cjs");
14
+ const callbackQuery = require("./callback-query.cjs");
14
15
  const chatJoinRequest = require("./chat-join-request.cjs");
15
16
  const chatMemberUpdate = require("./chat-member-update.cjs");
16
17
  const chosenInlineResult = require("./chosen-inline-result.cjs");
17
18
  const deleteBusinessMessageUpdate = require("./delete-business-message-update.cjs");
19
+ const deleteEphemeralMessagesUpdate = require("./delete-ephemeral-messages-update.cjs");
18
20
  const deleteMessageUpdate = require("./delete-message-update.cjs");
19
21
  const deleteStoryUpdate = require("./delete-story-update.cjs");
20
22
  const historyReadUpdate = require("./history-read-update.cjs");
@@ -26,6 +28,7 @@ const storyUpdate = require("./story-update.cjs");
26
28
  const userStatusUpdate = require("./user-status-update.cjs");
27
29
  const userTypingUpdate = require("./user-typing-update.cjs");
28
30
  const businessConnection = require("../premium/business-connection.cjs");
31
+ const ephemeralMessage = require("../messages/ephemeral-message.cjs");
29
32
  const message = require("../messages/message.cjs");
30
33
  function _parseUpdate({ update, peers }) {
31
34
  switch (update._) {
@@ -104,6 +107,14 @@ function _parseUpdate({ update, peers }) {
104
107
  return { name: "delete_business_message", data: new deleteBusinessMessageUpdate.DeleteBusinessMessageUpdate(update, peers) };
105
108
  case "updateBusinessBotCallbackQuery":
106
109
  return { name: "business_callback_query", data: new callbackQuery.BusinessCallbackQuery(update, peers) };
110
+ case "updateNewEphemeralMessage":
111
+ return { name: "new_ephemeral_message", data: new ephemeralMessage.EphemeralMessage(update.message, peers) };
112
+ case "updateEditEphemeralMessage":
113
+ return { name: "edit_ephemeral_message", data: new ephemeralMessage.EphemeralMessage(update.message, peers) };
114
+ case "updateDeleteEphemeralMessages":
115
+ return { name: "delete_ephemeral_messages", data: new deleteEphemeralMessagesUpdate.DeleteEphemeralMessagesUpdate(update, peers) };
116
+ case "updateEphemeralBotCallbackQuery":
117
+ return { name: "ephemeral_callback_query", data: new ephemeralCallbackQuery.EphemeralCallbackQuery(update, peers) };
107
118
  default:
108
119
  return null;
109
120
  }
@@ -1,13 +1,15 @@
1
- import { BusinessCallbackQuery as BusinessCallbackQuery$2, InlineCallbackQuery as InlineCallbackQuery$2, CallbackQuery as CallbackQuery$2 } from "./callback-query.js";
1
+ import { EphemeralCallbackQuery as EphemeralCallbackQuery$2 } from "./ephemeral-callback-query.js";
2
2
  import { BotChatJoinRequestUpdate as BotChatJoinRequestUpdate$2 } from "./bot-chat-join-request.js";
3
3
  import { BotGuestChatQuery as BotGuestChatQuery$2 } from "./bot-guest-chat-query.js";
4
4
  import { BotReactionCountUpdate as BotReactionCountUpdate$2, BotReactionUpdate as BotReactionUpdate$2 } from "./bot-reaction.js";
5
5
  import { BotStoppedUpdate as BotStoppedUpdate$2 } from "./bot-stopped.js";
6
6
  import { BusinessMessage } from "./business-message.js";
7
+ import { BusinessCallbackQuery as BusinessCallbackQuery$2, InlineCallbackQuery as InlineCallbackQuery$2, CallbackQuery as CallbackQuery$2 } from "./callback-query.js";
7
8
  import { ChatJoinRequestUpdate as ChatJoinRequestUpdate$2 } from "./chat-join-request.js";
8
9
  import { ChatMemberUpdate as ChatMemberUpdate$2 } from "./chat-member-update.js";
9
10
  import { ChosenInlineResult as ChosenInlineResult$2 } from "./chosen-inline-result.js";
10
11
  import { DeleteBusinessMessageUpdate as DeleteBusinessMessageUpdate$2 } from "./delete-business-message-update.js";
12
+ import { DeleteEphemeralMessagesUpdate as DeleteEphemeralMessagesUpdate$2 } from "./delete-ephemeral-messages-update.js";
11
13
  import { DeleteMessageUpdate as DeleteMessageUpdate$1 } from "./delete-message-update.js";
12
14
  import { DeleteStoryUpdate as DeleteStoryUpdate$2 } from "./delete-story-update.js";
13
15
  import { HistoryReadUpdate as HistoryReadUpdate$1 } from "./history-read-update.js";
@@ -19,6 +21,7 @@ import { StoryUpdate as StoryUpdate$2 } from "./story-update.js";
19
21
  import { UserStatusUpdate as UserStatusUpdate$2 } from "./user-status-update.js";
20
22
  import { UserTypingUpdate as UserTypingUpdate$1 } from "./user-typing-update.js";
21
23
  import { BusinessConnection as BusinessConnection$2 } from "../premium/business-connection.js";
24
+ import { EphemeralMessage as EphemeralMessage$2 } from "../messages/ephemeral-message.js";
22
25
  import { Message as Message$2 } from "../messages/message.js";
23
26
  function _parseUpdate({ update, peers }) {
24
27
  switch (update._) {
@@ -97,6 +100,14 @@ function _parseUpdate({ update, peers }) {
97
100
  return { name: "delete_business_message", data: new DeleteBusinessMessageUpdate$2(update, peers) };
98
101
  case "updateBusinessBotCallbackQuery":
99
102
  return { name: "business_callback_query", data: new BusinessCallbackQuery$2(update, peers) };
103
+ case "updateNewEphemeralMessage":
104
+ return { name: "new_ephemeral_message", data: new EphemeralMessage$2(update.message, peers) };
105
+ case "updateEditEphemeralMessage":
106
+ return { name: "edit_ephemeral_message", data: new EphemeralMessage$2(update.message, peers) };
107
+ case "updateDeleteEphemeralMessages":
108
+ return { name: "delete_ephemeral_messages", data: new DeleteEphemeralMessagesUpdate$2(update, peers) };
109
+ case "updateEphemeralBotCallbackQuery":
110
+ return { name: "ephemeral_callback_query", data: new EphemeralCallbackQuery$2(update, peers) };
100
111
  default:
101
112
  return null;
102
113
  }
@@ -102,10 +102,28 @@ class UserTypingUpdate {
102
102
  return "interaction";
103
103
  case "sendMessageEmojiInteractionSeen":
104
104
  return "interaction_seen";
105
+ case "sendMessageStopDraftAction":
106
+ return "stop_draft";
105
107
  default:
106
108
  utils.assertNever(this.raw.action);
107
109
  }
108
110
  }
111
+ /**
112
+ * ID of the draft this update is related to, if any
113
+ * (i.e. the status is `typing` for a draft action, or `stop_draft`)
114
+ */
115
+ get draftId() {
116
+ const action = this.raw.action;
117
+ return "randomId" in action ? action.randomId : null;
118
+ }
119
+ /** Whether the ongoing draft streaming may be stopped by the user */
120
+ get canStopDraft() {
121
+ return "canStop" in this.raw.action ? this.raw.action.canStop : false;
122
+ }
123
+ /** Whether the draft should be kept once the user stops the streaming */
124
+ get keepDraftOnStop() {
125
+ return "keepOnStop" in this.raw.action ? this.raw.action.keepOnStop : false;
126
+ }
109
127
  }
110
128
  const UserTypingUpdate$1 = /* @__PURE__ */ inspectable.makeInspectable(UserTypingUpdate);
111
129
  exports.UserTypingUpdate = UserTypingUpdate$1;
@@ -30,4 +30,13 @@ export declare class UserTypingUpdate {
30
30
  * Current typing status
31
31
  */
32
32
  get status(): TypingStatus;
33
+ /**
34
+ * ID of the draft this update is related to, if any
35
+ * (i.e. the status is `typing` for a draft action, or `stop_draft`)
36
+ */
37
+ get draftId(): tl.Long | null;
38
+ /** Whether the ongoing draft streaming may be stopped by the user */
39
+ get canStopDraft(): boolean;
40
+ /** Whether the draft should be kept once the user stops the streaming */
41
+ get keepDraftOnStop(): boolean;
33
42
  }
@@ -30,4 +30,13 @@ export declare class UserTypingUpdate {
30
30
  * Current typing status
31
31
  */
32
32
  get status(): TypingStatus;
33
+ /**
34
+ * ID of the draft this update is related to, if any
35
+ * (i.e. the status is `typing` for a draft action, or `stop_draft`)
36
+ */
37
+ get draftId(): tl.Long | null;
38
+ /** Whether the ongoing draft streaming may be stopped by the user */
39
+ get canStopDraft(): boolean;
40
+ /** Whether the draft should be kept once the user stops the streaming */
41
+ get keepDraftOnStop(): boolean;
33
42
  }
@@ -95,10 +95,28 @@ class UserTypingUpdate {
95
95
  return "interaction";
96
96
  case "sendMessageEmojiInteractionSeen":
97
97
  return "interaction_seen";
98
+ case "sendMessageStopDraftAction":
99
+ return "stop_draft";
98
100
  default:
99
101
  assertNever(this.raw.action);
100
102
  }
101
103
  }
104
+ /**
105
+ * ID of the draft this update is related to, if any
106
+ * (i.e. the status is `typing` for a draft action, or `stop_draft`)
107
+ */
108
+ get draftId() {
109
+ const action = this.raw.action;
110
+ return "randomId" in action ? action.randomId : null;
111
+ }
112
+ /** Whether the ongoing draft streaming may be stopped by the user */
113
+ get canStopDraft() {
114
+ return "canStop" in this.raw.action ? this.raw.action.canStop : false;
115
+ }
116
+ /** Whether the draft should be kept once the user stops the streaming */
117
+ get keepDraftOnStop() {
118
+ return "keepOnStop" in this.raw.action ? this.raw.action.keepOnStop : false;
119
+ }
102
120
  }
103
121
  const UserTypingUpdate$1 = /* @__PURE__ */ makeInspectable(UserTypingUpdate);
104
122
  export {
@@ -480,6 +480,24 @@ class UpdatesManager {
480
480
  index.set(bare, cached);
481
481
  return true;
482
482
  }
483
+ async function fetchEntitiesPeers(entities) {
484
+ if (!entities) return true;
485
+ for (const ent of entities) {
486
+ if (ent._ === "messageEntityMentionName" && !await fetchPeer(ent.userId)) {
487
+ return false;
488
+ }
489
+ }
490
+ return true;
491
+ }
492
+ async function fetchRichMessagePeers(richMessage) {
493
+ if (!richMessage) return true;
494
+ const richMessagePeers = /* @__PURE__ */ new Set();
495
+ collectRichMessagePeerIds(richMessage, richMessagePeers);
496
+ for (const peer of richMessagePeers) {
497
+ if (!await fetchPeer(peer)) return false;
498
+ }
499
+ return true;
500
+ }
483
501
  switch (upd._) {
484
502
  case "updateNewMessage":
485
503
  case "updateNewChannelMessage":
@@ -503,20 +521,8 @@ class UpdatesManager {
503
521
  }
504
522
  if (!await fetchPeer(msg.viaBotId)) return missing;
505
523
  if (!await fetchPeer(msg.guestchatViaFrom)) return missing;
506
- if (msg.entities) {
507
- for (const ent of msg.entities) {
508
- if (ent._ === "messageEntityMentionName") {
509
- if (!await fetchPeer(ent.userId)) return missing;
510
- }
511
- }
512
- }
513
- if (msg.richMessage) {
514
- const richMessagePeers = /* @__PURE__ */ new Set();
515
- collectRichMessagePeerIds(msg.richMessage, richMessagePeers);
516
- for (const peer of richMessagePeers) {
517
- if (!await fetchPeer(peer)) return missing;
518
- }
519
- }
524
+ if (!await fetchEntitiesPeers(msg.entities)) return missing;
525
+ if (!await fetchRichMessagePeers(msg.richMessage)) return missing;
520
526
  if (msg.media) {
521
527
  switch (msg.media._) {
522
528
  case "messageMediaContact":
@@ -554,25 +560,43 @@ class UpdatesManager {
554
560
  if (!await fetchPeer(msg.action.fromId)) return missing;
555
561
  if (!await fetchPeer(msg.action.toId)) return missing;
556
562
  break;
563
+ case "messageActionChatJoinedViaCommunity":
564
+ if (!await fetchPeer(peerUtils.toggleChannelIdMark(msg.action.communityId), true)) {
565
+ return missing;
566
+ }
567
+ break;
568
+ case "messageActionChangeCommunity":
569
+ if (msg.action.communityId !== void 0 && !await fetchPeer(peerUtils.toggleChannelIdMark(msg.action.communityId), true)) {
570
+ return missing;
571
+ }
572
+ break;
573
+ case "messageActionGiftPremium":
574
+ case "messageActionGiftCode":
575
+ case "messageActionStarGift":
576
+ case "messageActionStarGiftUnique":
577
+ if (!await fetchEntitiesPeers(msg.action.message?.entities)) return missing;
578
+ break;
557
579
  }
558
580
  }
559
581
  break;
560
582
  }
583
+ case "updateNewEphemeralMessage":
584
+ case "updateEditEphemeralMessage": {
585
+ const msg = upd.message;
586
+ if (!await fetchPeer(msg.peerId, true)) return missing;
587
+ if (!await fetchPeer(msg.fromId)) return missing;
588
+ if (!await fetchPeer(msg.receiverId)) return missing;
589
+ if (!await fetchEntitiesPeers(msg.entities)) return missing;
590
+ if (!await fetchRichMessagePeers(msg.richMessage)) return missing;
591
+ break;
592
+ }
593
+ case "updateEphemeralBotCallbackQuery":
594
+ if (!await fetchPeer(upd.peer, true)) return missing;
595
+ if (!await fetchPeer(upd.userId)) return missing;
596
+ break;
561
597
  case "updateDraftMessage":
562
- if ("entities" in upd.draft && upd.draft.entities) {
563
- for (const ent of upd.draft.entities) {
564
- if (ent._ === "messageEntityMentionName") {
565
- if (!await fetchPeer(ent.userId)) return missing;
566
- }
567
- }
568
- }
569
- if ("richMessage" in upd.draft && upd.draft.richMessage) {
570
- const richMessagePeers = /* @__PURE__ */ new Set();
571
- collectRichMessagePeerIds(upd.draft.richMessage, richMessagePeers);
572
- for (const peer of richMessagePeers) {
573
- if (!await fetchPeer(peer)) return missing;
574
- }
575
- }
598
+ if ("entities" in upd.draft && !await fetchEntitiesPeers(upd.draft.entities)) return missing;
599
+ if ("richMessage" in upd.draft && !await fetchRichMessagePeers(upd.draft.richMessage)) return missing;
576
600
  }
577
601
  return missing;
578
602
  }
@@ -891,6 +915,16 @@ class UpdatesManager {
891
915
  );
892
916
  }
893
917
  }
918
+ _consumeNoDispatch(pending) {
919
+ if (!this.noDispatchEnabled) return false;
920
+ const upd = pending.update;
921
+ const channelId = pending.channelId ?? 0;
922
+ const msgId = upd._ === "updateNewMessage" || upd._ === "updateNewChannelMessage" || upd._ === "updateBotNewBusinessMessage" ? upd.message.id : void 0;
923
+ const foundByMsgId = msgId ? this.noDispatchMsg.get(channelId)?.delete(msgId) : false;
924
+ const foundByPts = this.noDispatchPts.get(channelId)?.delete(pending.pts);
925
+ const foundByQts = this.noDispatchQts.delete(pending.qts);
926
+ return Boolean(foundByMsgId || foundByPts || foundByQts);
927
+ }
894
928
  async _onUpdate(pending, requestedDiff, postponed = false, unordered = false) {
895
929
  const { client, log } = this;
896
930
  const upd = pending.update;
@@ -964,6 +998,7 @@ class UpdatesManager {
964
998
  this.qts = pending.qts;
965
999
  }
966
1000
  }
1001
+ const inNoDispatchIndex = this._consumeNoDispatch(pending);
967
1002
  if (utils$2.isMessageEmpty(upd)) return;
968
1003
  switch (upd._) {
969
1004
  case "mtcute.dummyUpdate":
@@ -981,8 +1016,8 @@ class UpdatesManager {
981
1016
  break;
982
1017
  }
983
1018
  case "updateChannel": {
984
- const channel = pending.peers.chat(upd.channelId);
985
- if (channel._ !== "channelForbidden") {
1019
+ const channel = pending.peers.chats.get(upd.channelId);
1020
+ if (!channel || channel._ !== "channelForbidden" && channel._ !== "communityForbidden") {
986
1021
  this.inaccessibleChannels.delete(upd.channelId);
987
1022
  }
988
1023
  break;
@@ -1035,16 +1070,9 @@ class UpdatesManager {
1035
1070
  }
1036
1071
  }
1037
1072
  }
1038
- if (this.noDispatchEnabled) {
1039
- const channelId = pending.channelId ?? 0;
1040
- const msgId = upd._ === "updateNewMessage" || upd._ === "updateNewChannelMessage" || upd._ === "updateBotNewBusinessMessage" ? upd.message.id : void 0;
1041
- const foundByMsgId = msgId && this.noDispatchMsg.get(channelId)?.delete(msgId);
1042
- const foundByPts = this.noDispatchPts.get(channelId)?.delete(pending.pts);
1043
- const foundByQts = this.noDispatchQts.delete(pending.qts);
1044
- if (foundByMsgId || foundByPts || foundByQts) {
1045
- log.debug("not dispatching %s because it is in no_dispatch index", upd._);
1046
- return;
1047
- }
1073
+ if (inNoDispatchIndex) {
1074
+ log.debug("not dispatching %s because it is in no_dispatch index", upd._);
1075
+ return;
1048
1076
  }
1049
1077
  log.debug("dispatching %s (postponed = %s)", upd._, postponed);
1050
1078
  if (upd._ === "updateNewMessage" && upd.message._ !== "messageEmpty") {
@@ -1364,12 +1392,14 @@ class UpdatesManager {
1364
1392
  } else if (cpts.has(pending.channelId)) {
1365
1393
  localPts = cpts.get(pending.channelId);
1366
1394
  }
1367
- if (!localPts) {
1395
+ if (localPts === void 0) {
1368
1396
  log.warn(
1369
1397
  "local pts not available for postponed %s (cid = %d), skipping",
1370
1398
  upd._,
1371
1399
  pending.channelId
1372
1400
  );
1401
+ pendingPtsUpdatesPostponed.removeIndex(i);
1402
+ i--;
1373
1403
  continue;
1374
1404
  }
1375
1405
  if (localPts > pending.ptsBefore) {
@@ -118,6 +118,7 @@ export declare class UpdatesManager {
118
118
  _fetchChannelDifferenceViaUpdate(channelId: number, pts?: number): void;
119
119
  _fetchDifference(requestedDiff: Map<number, Promise<void>>): Promise<void>;
120
120
  _fetchDifferenceLater(requestedDiff: Map<number, Promise<void>>): void;
121
+ private _consumeNoDispatch;
121
122
  _onUpdate(pending: PendingUpdate, requestedDiff: Map<number, Promise<void>>, postponed?: boolean, unordered?: boolean): Promise<void>;
122
123
  _loop(): Promise<void>;
123
124
  }
@@ -118,6 +118,7 @@ export declare class UpdatesManager {
118
118
  _fetchChannelDifferenceViaUpdate(channelId: number, pts?: number): void;
119
119
  _fetchDifference(requestedDiff: Map<number, Promise<void>>): Promise<void>;
120
120
  _fetchDifferenceLater(requestedDiff: Map<number, Promise<void>>): void;
121
+ private _consumeNoDispatch;
121
122
  _onUpdate(pending: PendingUpdate, requestedDiff: Map<number, Promise<void>>, postponed?: boolean, unordered?: boolean): Promise<void>;
122
123
  _loop(): Promise<void>;
123
124
  }