@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
@@ -5,19 +5,60 @@ 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 errors = require("../../../types/errors.cjs");
9
8
  const longUtils = require("../../../utils/long-utils.cjs");
10
9
  const peerUtils$1 = require("../../../utils/peer-utils.cjs");
11
10
  const message = require("../../types/messages/message.cjs");
12
11
  const utils = require("../../updates/utils.cjs");
13
12
  const peerUtils = require("../../utils/peer-utils.cjs");
14
- const batchedQueries = require("../chats/batched-queries.cjs");
13
+ const buildPeersIndex = require("../chats/build-peers-index.cjs");
15
14
  const normalizeText = require("../misc/normalize-text.cjs");
16
15
  const resolvePeer = require("../users/resolve-peer.cjs");
17
16
  const findInUpdate = require("./find-in-update.cjs");
18
17
  const sendCommon = require("./send-common.cjs");
19
18
  const factories = require("../../types/bots/keyboards/factories.cjs");
20
- const peersIndex = require("../../types/peers/peers-index.cjs");
19
+ function _inputReplyToToHeader(replyTo, peer) {
20
+ if (!replyTo) return [void 0, void 0];
21
+ switch (replyTo._) {
22
+ case "inputReplyToMessage": {
23
+ const replyToPeerId = replyTo.replyToPeerId && peerUtils$1.getMarkedPeerId(replyTo.replyToPeerId) !== peerUtils$1.getMarkedPeerId(peer) ? peerUtils.inputPeerToPeer(replyTo.replyToPeerId) : void 0;
24
+ return [
25
+ {
26
+ _: "messageReplyHeader",
27
+ replyToMsgId: replyTo.replyToMsgId,
28
+ replyToPeerId,
29
+ replyToTopId: replyTo.topMsgId,
30
+ quote: replyTo.quoteText !== void 0 ? true : void 0,
31
+ quoteText: replyTo.quoteText,
32
+ quoteEntities: replyTo.quoteEntities,
33
+ quoteOffset: replyTo.quoteOffset,
34
+ todoItemId: replyTo.todoItemId,
35
+ pollOption: replyTo.pollOption
36
+ },
37
+ replyTo.monoforumPeerId ? peerUtils.inputPeerToPeer(replyTo.monoforumPeerId) : void 0
38
+ ];
39
+ }
40
+ case "inputReplyToStory":
41
+ return [
42
+ {
43
+ _: "messageReplyStoryHeader",
44
+ peer: peerUtils.inputPeerToPeer(replyTo.peer),
45
+ storyId: replyTo.storyId
46
+ },
47
+ void 0
48
+ ];
49
+ case "inputReplyToMonoForum":
50
+ return [void 0, peerUtils.inputPeerToPeer(replyTo.monoforumPeerId)];
51
+ case "inputReplyToEphemeralMessage":
52
+ return [
53
+ {
54
+ _: "messageReplyHeader",
55
+ replyToEphemeral: true,
56
+ replyToMsgId: replyTo.id
57
+ },
58
+ void 0
59
+ ];
60
+ }
61
+ }
21
62
  async function sendText(client, chatId, text, params) {
22
63
  if (!params) params = {};
23
64
  const [message$1, entities] = await normalizeText._normalizeInputText(client, text);
@@ -28,6 +69,7 @@ async function sendText(client, chatId, text, params) {
28
69
  params
29
70
  );
30
71
  const randomId = params.randomId ?? longUtils.randomLong();
72
+ const sendAs = params.sendAs ? await resolvePeer.resolvePeer(client, params.sendAs) : void 0;
31
73
  const res = await client.call(
32
74
  {
33
75
  _: "messages.sendMessage",
@@ -42,7 +84,7 @@ async function sendText(client, chatId, text, params) {
42
84
  entities,
43
85
  clearDraft: params.clearDraft,
44
86
  noforwards: params.forbidForwards,
45
- sendAs: params.sendAs ? await resolvePeer.resolvePeer(client, params.sendAs) : void 0,
87
+ sendAs,
46
88
  invertMedia: params.invertMedia,
47
89
  quickReplyShortcut,
48
90
  effect: params.effect,
@@ -56,50 +98,43 @@ async function sendText(client, chatId, text, params) {
56
98
  }
57
99
  );
58
100
  if (res._ === "updateShortSentMessage") {
101
+ const [replyToHeader, savedPeerId] = _inputReplyToToHeader(replyTo, peer);
59
102
  const msg2 = {
60
103
  _: "message",
61
104
  id: res.id,
62
105
  peerId: peerUtils.inputPeerToPeer(peer),
63
- fromId: { _: "peerUser", userId: client.storage.self.getCached().userId },
106
+ fromId: sendAs ? peerUtils.inputPeerToPeer(sendAs) : { _: "peerUser", userId: client.storage.self.getCached().userId },
107
+ savedPeerId,
108
+ replyTo: replyToHeader,
64
109
  message: message$1,
65
110
  date: res.date,
66
111
  out: res.out,
112
+ silent: params.silent,
113
+ noforwards: params.forbidForwards,
114
+ invertMedia: params.invertMedia,
115
+ effect: params.effect,
67
116
  replyMarkup,
68
- entities: res.entities
117
+ media: res.media,
118
+ entities: res.entities,
119
+ ttlPeriod: res.ttlPeriod
69
120
  };
70
121
  if (!params.shouldDispatch) {
71
122
  client.handleClientUpdate(utils.createDummyUpdate(res.pts, res.ptsCount));
72
123
  }
73
- const peers = new peersIndex.PeersIndex();
74
- const fetchPeer = async (peer2) => {
75
- const id = peerUtils$1.getMarkedPeerId(peer2);
76
- let cached = await client.storage.peers.getCompleteById(id);
77
- if (!cached) {
78
- cached = await batchedQueries._getRawPeerBatched(client, await resolvePeer.resolvePeer(client, peer2));
79
- }
80
- if (!cached) {
81
- throw new errors.MtTypeAssertionError("sendText (@ getFullPeerById)", "user | chat", "null");
82
- }
83
- switch (cached._) {
84
- case "user":
85
- peers.users.set(cached.id, cached);
86
- break;
87
- case "chat":
88
- case "chatForbidden":
89
- case "channel":
90
- case "channelForbidden":
91
- peers.chats.set(cached.id, cached);
92
- break;
93
- default:
94
- throw new errors.MtTypeAssertionError(
95
- "sendText (@ users.getUsers)",
96
- "user | chat | channel",
97
- // not very accurate, but good enough
98
- cached._
99
- );
124
+ const peersToFetch = [peer, msg2.fromId];
125
+ if (savedPeerId) peersToFetch.push(savedPeerId);
126
+ if (replyToHeader?._ === "messageReplyHeader" && replyToHeader.replyToPeerId) {
127
+ peersToFetch.push(replyToHeader.replyToPeerId);
128
+ } else if (replyToHeader?._ === "messageReplyStoryHeader") {
129
+ peersToFetch.push(replyToHeader.peer);
130
+ }
131
+ const peers = await buildPeersIndex._buildPeersIndex(client, "sendText", peersToFetch);
132
+ if (replyToHeader?._ === "messageReplyHeader" && replyToHeader.replyToTopId && replyToHeader.replyToTopId !== 1 && msg2.peerId._ === "peerChannel") {
133
+ const chat = peers.chats.get(msg2.peerId.channelId);
134
+ if (chat?._ === "channel" && chat.forum) {
135
+ replyToHeader.forumTopic = true;
100
136
  }
101
- };
102
- await Promise.all([fetchPeer(peer), fetchPeer(msg2.fromId)]);
137
+ }
103
138
  const ret = new message.Message(msg2, peers);
104
139
  return ret;
105
140
  }
@@ -1,16 +1,57 @@
1
- import { MtTypeAssertionError } from "../../../types/errors.js";
2
1
  import { randomLong } from "../../../utils/long-utils.js";
3
2
  import { getMarkedPeerId } from "../../../utils/peer-utils.js";
4
3
  import { Message as Message$2 } from "../../types/messages/message.js";
5
4
  import { createDummyUpdate } from "../../updates/utils.js";
6
5
  import { inputPeerToPeer } from "../../utils/peer-utils.js";
7
- import { _getRawPeerBatched } from "../chats/batched-queries.js";
6
+ import { _buildPeersIndex } from "../chats/build-peers-index.js";
8
7
  import { _normalizeInputText } from "../misc/normalize-text.js";
9
8
  import { resolvePeer } from "../users/resolve-peer.js";
10
9
  import { _findMessageInUpdate } from "./find-in-update.js";
11
10
  import { _processCommonSendParameters } from "./send-common.js";
12
11
  import { _convertToTl } from "../../types/bots/keyboards/factories.js";
13
- import { PeersIndex } from "../../types/peers/peers-index.js";
12
+ function _inputReplyToToHeader(replyTo, peer) {
13
+ if (!replyTo) return [void 0, void 0];
14
+ switch (replyTo._) {
15
+ case "inputReplyToMessage": {
16
+ const replyToPeerId = replyTo.replyToPeerId && getMarkedPeerId(replyTo.replyToPeerId) !== getMarkedPeerId(peer) ? inputPeerToPeer(replyTo.replyToPeerId) : void 0;
17
+ return [
18
+ {
19
+ _: "messageReplyHeader",
20
+ replyToMsgId: replyTo.replyToMsgId,
21
+ replyToPeerId,
22
+ replyToTopId: replyTo.topMsgId,
23
+ quote: replyTo.quoteText !== void 0 ? true : void 0,
24
+ quoteText: replyTo.quoteText,
25
+ quoteEntities: replyTo.quoteEntities,
26
+ quoteOffset: replyTo.quoteOffset,
27
+ todoItemId: replyTo.todoItemId,
28
+ pollOption: replyTo.pollOption
29
+ },
30
+ replyTo.monoforumPeerId ? inputPeerToPeer(replyTo.monoforumPeerId) : void 0
31
+ ];
32
+ }
33
+ case "inputReplyToStory":
34
+ return [
35
+ {
36
+ _: "messageReplyStoryHeader",
37
+ peer: inputPeerToPeer(replyTo.peer),
38
+ storyId: replyTo.storyId
39
+ },
40
+ void 0
41
+ ];
42
+ case "inputReplyToMonoForum":
43
+ return [void 0, inputPeerToPeer(replyTo.monoforumPeerId)];
44
+ case "inputReplyToEphemeralMessage":
45
+ return [
46
+ {
47
+ _: "messageReplyHeader",
48
+ replyToEphemeral: true,
49
+ replyToMsgId: replyTo.id
50
+ },
51
+ void 0
52
+ ];
53
+ }
54
+ }
14
55
  async function sendText(client, chatId, text, params) {
15
56
  if (!params) params = {};
16
57
  const [message, entities] = await _normalizeInputText(client, text);
@@ -21,6 +62,7 @@ async function sendText(client, chatId, text, params) {
21
62
  params
22
63
  );
23
64
  const randomId = params.randomId ?? randomLong();
65
+ const sendAs = params.sendAs ? await resolvePeer(client, params.sendAs) : void 0;
24
66
  const res = await client.call(
25
67
  {
26
68
  _: "messages.sendMessage",
@@ -35,7 +77,7 @@ async function sendText(client, chatId, text, params) {
35
77
  entities,
36
78
  clearDraft: params.clearDraft,
37
79
  noforwards: params.forbidForwards,
38
- sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : void 0,
80
+ sendAs,
39
81
  invertMedia: params.invertMedia,
40
82
  quickReplyShortcut,
41
83
  effect: params.effect,
@@ -49,50 +91,43 @@ async function sendText(client, chatId, text, params) {
49
91
  }
50
92
  );
51
93
  if (res._ === "updateShortSentMessage") {
94
+ const [replyToHeader, savedPeerId] = _inputReplyToToHeader(replyTo, peer);
52
95
  const msg2 = {
53
96
  _: "message",
54
97
  id: res.id,
55
98
  peerId: inputPeerToPeer(peer),
56
- fromId: { _: "peerUser", userId: client.storage.self.getCached().userId },
99
+ fromId: sendAs ? inputPeerToPeer(sendAs) : { _: "peerUser", userId: client.storage.self.getCached().userId },
100
+ savedPeerId,
101
+ replyTo: replyToHeader,
57
102
  message,
58
103
  date: res.date,
59
104
  out: res.out,
105
+ silent: params.silent,
106
+ noforwards: params.forbidForwards,
107
+ invertMedia: params.invertMedia,
108
+ effect: params.effect,
60
109
  replyMarkup,
61
- entities: res.entities
110
+ media: res.media,
111
+ entities: res.entities,
112
+ ttlPeriod: res.ttlPeriod
62
113
  };
63
114
  if (!params.shouldDispatch) {
64
115
  client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount));
65
116
  }
66
- const peers = new PeersIndex();
67
- const fetchPeer = async (peer2) => {
68
- const id = getMarkedPeerId(peer2);
69
- let cached = await client.storage.peers.getCompleteById(id);
70
- if (!cached) {
71
- cached = await _getRawPeerBatched(client, await resolvePeer(client, peer2));
72
- }
73
- if (!cached) {
74
- throw new MtTypeAssertionError("sendText (@ getFullPeerById)", "user | chat", "null");
75
- }
76
- switch (cached._) {
77
- case "user":
78
- peers.users.set(cached.id, cached);
79
- break;
80
- case "chat":
81
- case "chatForbidden":
82
- case "channel":
83
- case "channelForbidden":
84
- peers.chats.set(cached.id, cached);
85
- break;
86
- default:
87
- throw new MtTypeAssertionError(
88
- "sendText (@ users.getUsers)",
89
- "user | chat | channel",
90
- // not very accurate, but good enough
91
- cached._
92
- );
117
+ const peersToFetch = [peer, msg2.fromId];
118
+ if (savedPeerId) peersToFetch.push(savedPeerId);
119
+ if (replyToHeader?._ === "messageReplyHeader" && replyToHeader.replyToPeerId) {
120
+ peersToFetch.push(replyToHeader.replyToPeerId);
121
+ } else if (replyToHeader?._ === "messageReplyStoryHeader") {
122
+ peersToFetch.push(replyToHeader.peer);
123
+ }
124
+ const peers = await _buildPeersIndex(client, "sendText", peersToFetch);
125
+ if (replyToHeader?._ === "messageReplyHeader" && replyToHeader.replyToTopId && replyToHeader.replyToTopId !== 1 && msg2.peerId._ === "peerChannel") {
126
+ const chat = peers.chats.get(msg2.peerId.channelId);
127
+ if (chat?._ === "channel" && chat.forum) {
128
+ replyToHeader.forumTopic = true;
93
129
  }
94
- };
95
- await Promise.all([fetchPeer(peer), fetchPeer(msg2.fromId)]);
130
+ }
96
131
  const ret = new Message$2(msg2, peers);
97
132
  return ret;
98
133
  }
@@ -1,7 +1,7 @@
1
1
  import { tl } from '../../../tl/index.js';
2
2
  import { ITelegramClient } from '../../client.types.js';
3
- import { InputPeerLike, TypingStatus } from '../../types/index.js';
4
- export declare function _mapTypingStatus(status: Exclude<TypingStatus, 'interaction' | 'interaction_seen'>, progress?: number): tl.TypeSendMessageAction;
3
+ import { InputPeerLike, SendableTypingStatus } from '../../types/index.js';
4
+ export declare function _mapTypingStatus(status: SendableTypingStatus, progress?: number): tl.TypeSendMessageAction;
5
5
  /**
6
6
  * Sends a current user/bot typing event
7
7
  * to a conversation partner or group.
@@ -16,7 +16,7 @@ export declare function _mapTypingStatus(status: Exclude<TypingStatus, 'interact
16
16
  * @param status Typing status
17
17
  * @param params
18
18
  */
19
- export declare function sendTyping(client: ITelegramClient, chatId: InputPeerLike, status?: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction, params?: {
19
+ export declare function sendTyping(client: ITelegramClient, chatId: InputPeerLike, status?: SendableTypingStatus | tl.TypeSendMessageAction, params?: {
20
20
  /**
21
21
  * For `upload_*` and history import actions, progress of the upload
22
22
  */
@@ -1,7 +1,7 @@
1
1
  import { tl } from '../../../tl/index.js';
2
2
  import { ITelegramClient } from '../../client.types.js';
3
- import { InputPeerLike, TypingStatus } from '../../types/index.js';
4
- export declare function _mapTypingStatus(status: Exclude<TypingStatus, 'interaction' | 'interaction_seen'>, progress?: number): tl.TypeSendMessageAction;
3
+ import { InputPeerLike, SendableTypingStatus } from '../../types/index.js';
4
+ export declare function _mapTypingStatus(status: SendableTypingStatus, progress?: number): tl.TypeSendMessageAction;
5
5
  /**
6
6
  * Sends a current user/bot typing event
7
7
  * to a conversation partner or group.
@@ -16,7 +16,7 @@ export declare function _mapTypingStatus(status: Exclude<TypingStatus, 'interact
16
16
  * @param status Typing status
17
17
  * @param params
18
18
  */
19
- export declare function sendTyping(client: ITelegramClient, chatId: InputPeerLike, status?: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction, params?: {
19
+ export declare function sendTyping(client: ITelegramClient, chatId: InputPeerLike, status?: SendableTypingStatus | tl.TypeSendMessageAction, params?: {
20
20
  /**
21
21
  * For `upload_*` and history import actions, progress of the upload
22
22
  */
@@ -21,7 +21,7 @@ async function setTyping(client, params) {
21
21
  threadId
22
22
  } = params;
23
23
  let status = params.status ?? "typing";
24
- if (typeof status === "string") status = sendTyping._mapTypingStatus(status);
24
+ if (typeof status === "string") status = sendTyping._mapTypingStatus(status, params.progress ?? 0);
25
25
  const peer = await resolvePeer.resolvePeer(client, peerId);
26
26
  const timerId = _getTypingTimerId(peer, businessConnectionId);
27
27
  await client.timers.cancel(timerId);
@@ -1,7 +1,7 @@
1
1
  import { tl } from '../../../tl/index.js';
2
2
  import { ITelegramClient } from '../../client.types.js';
3
3
  import { InputPeerLike } from '../../types/peers/peer.js';
4
- import { TypingStatus } from '../../types/peers/typing-status.js';
4
+ import { SendableTypingStatus } from '../../types/peers/typing-status.js';
5
5
  export declare function _getTypingTimerId(peer: tl.TypeInputPeer, businessId?: string): string;
6
6
  /**
7
7
  * Sets whether a user is typing in a specific chat
@@ -17,7 +17,7 @@ export declare function setTyping(client: ITelegramClient, params: {
17
17
  *
18
18
  * @default `typing`
19
19
  */
20
- status?: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction;
20
+ status?: SendableTypingStatus | tl.TypeSendMessageAction;
21
21
  /**
22
22
  * For `upload_*` and history import actions, progress of the upload
23
23
  */
@@ -1,7 +1,7 @@
1
1
  import { tl } from '../../../tl/index.js';
2
2
  import { ITelegramClient } from '../../client.types.js';
3
3
  import { InputPeerLike } from '../../types/peers/peer.js';
4
- import { TypingStatus } from '../../types/peers/typing-status.js';
4
+ import { SendableTypingStatus } from '../../types/peers/typing-status.js';
5
5
  export declare function _getTypingTimerId(peer: tl.TypeInputPeer, businessId?: string): string;
6
6
  /**
7
7
  * Sets whether a user is typing in a specific chat
@@ -17,7 +17,7 @@ export declare function setTyping(client: ITelegramClient, params: {
17
17
  *
18
18
  * @default `typing`
19
19
  */
20
- status?: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction;
20
+ status?: SendableTypingStatus | tl.TypeSendMessageAction;
21
21
  /**
22
22
  * For `upload_*` and history import actions, progress of the upload
23
23
  */
@@ -14,7 +14,7 @@ async function setTyping(client, params) {
14
14
  threadId
15
15
  } = params;
16
16
  let status = params.status ?? "typing";
17
- if (typeof status === "string") status = _mapTypingStatus(status);
17
+ if (typeof status === "string") status = _mapTypingStatus(status, params.progress ?? 0);
18
18
  const peer = await resolvePeer(client, peerId);
19
19
  const timerId = _getTypingTimerId(peer, businessConnectionId);
20
20
  await client.timers.cancel(timerId);
@@ -107,7 +107,17 @@ async function resolvePeer(client, peerId, force = false) {
107
107
  };
108
108
  }
109
109
  } catch (e) {
110
- if (!innerTl.RpcError.is(e, "CHANNEL_INVALID")) throw e;
110
+ if (innerTl.RpcError.is(e, "COMMUNITY_ID_INVALID")) {
111
+ if (client.storage.self.getCached(true)?.isBot) {
112
+ return {
113
+ _: "inputPeerChannel",
114
+ channelId: bareId,
115
+ accessHash: Long.ZERO
116
+ };
117
+ }
118
+ } else if (!innerTl.RpcError.is(e, "CHANNEL_INVALID")) {
119
+ throw e;
120
+ }
111
121
  }
112
122
  break;
113
123
  }
@@ -100,7 +100,17 @@ async function resolvePeer(client, peerId, force = false) {
100
100
  };
101
101
  }
102
102
  } catch (e) {
103
- if (!RpcError.is(e, "CHANNEL_INVALID")) throw e;
103
+ if (RpcError.is(e, "COMMUNITY_ID_INVALID")) {
104
+ if (client.storage.self.getCached(true)?.isBot) {
105
+ return {
106
+ _: "inputPeerChannel",
107
+ channelId: bareId,
108
+ accessHash: Long.ZERO
109
+ };
110
+ }
111
+ } else if (!RpcError.is(e, "CHANNEL_INVALID")) {
112
+ throw e;
113
+ }
104
114
  }
105
115
  break;
106
116
  }
@@ -89,6 +89,18 @@ export { toggleJoinToSend } from './methods/chats/toggle-join-to-send.js';
89
89
  export { transferChatOwnership } from './methods/chats/transfer-chat-ownership.js';
90
90
  export { unarchiveChats } from './methods/chats/unarchive-chats.js';
91
91
  export { unbanChatMember } from './methods/chats/unban-chat-member.js';
92
+ export { banCommunityParticipant } from './methods/communities/ban-community-participant.js';
93
+ export { unbanCommunityParticipant } from './methods/communities/ban-community-participant.js';
94
+ export { createCommunity } from './methods/communities/create-community.js';
95
+ export { getCommunityLinkRequests } from './methods/communities/get-community-link-requests.js';
96
+ export { getCommunityParticipantChats } from './methods/communities/get-community-participant-chats.js';
97
+ export type { CommunityParticipantChats } from './methods/communities/get-community-participant-chats.js';
98
+ export { getJoinedCommunities } from './methods/communities/get-joined-communities.js';
99
+ export { hideCommunityLinkRequest } from './methods/communities/hide-community-link-request.js';
100
+ export { hideAllCommunityLinkRequests } from './methods/communities/hide-community-link-request.js';
101
+ export { linkCommunityPeer } from './methods/communities/link-community-peer.js';
102
+ export { unlinkCommunityPeer } from './methods/communities/link-community-peer.js';
103
+ export { toggleCommunityCollapsed } from './methods/communities/toggle-community-collapsed.js';
92
104
  export { addContact } from './methods/contacts/add-contact.js';
93
105
  export { deleteContacts } from './methods/contacts/delete-contacts.js';
94
106
  export { getContacts } from './methods/contacts/get-contacts.js';
@@ -105,6 +117,13 @@ export { getPeerDialogs } from './methods/dialogs/get-peer-dialogs.js';
105
117
  export { iterDialogs } from './methods/dialogs/iter-dialogs.js';
106
118
  export { joinChatlist } from './methods/dialogs/join-chatlist.js';
107
119
  export { setFoldersOrder } from './methods/dialogs/set-folders-order.js';
120
+ export { deleteAllWelcomeMessages } from './methods/ephemeral/delete-all-welcome-messages.js';
121
+ export { deleteEphemeralMessage } from './methods/ephemeral/delete-ephemeral-message.js';
122
+ export { deleteWelcomeMessage } from './methods/ephemeral/delete-welcome-message.js';
123
+ export { editEphemeralMessage } from './methods/ephemeral/edit-ephemeral-message.js';
124
+ export { getEphemeralCallbackAnswer } from './methods/ephemeral/get-ephemeral-callback-answer.js';
125
+ export { getWelcomeMessages } from './methods/ephemeral/get-welcome-messages.js';
126
+ export { sendEphemeralMessage } from './methods/ephemeral/send-ephemeral-message.js';
108
127
  export { downloadAsBuffer } from './methods/files/download-buffer.js';
109
128
  export { downloadChunk } from './methods/files/download-chunk.js';
110
129
  export { _normalizeFileDownloadLocation } from './methods/files/download-iterable.js';
@@ -89,6 +89,18 @@ export { toggleJoinToSend } from './methods/chats/toggle-join-to-send.js';
89
89
  export { transferChatOwnership } from './methods/chats/transfer-chat-ownership.js';
90
90
  export { unarchiveChats } from './methods/chats/unarchive-chats.js';
91
91
  export { unbanChatMember } from './methods/chats/unban-chat-member.js';
92
+ export { banCommunityParticipant } from './methods/communities/ban-community-participant.js';
93
+ export { unbanCommunityParticipant } from './methods/communities/ban-community-participant.js';
94
+ export { createCommunity } from './methods/communities/create-community.js';
95
+ export { getCommunityLinkRequests } from './methods/communities/get-community-link-requests.js';
96
+ export { getCommunityParticipantChats } from './methods/communities/get-community-participant-chats.js';
97
+ export type { CommunityParticipantChats } from './methods/communities/get-community-participant-chats.js';
98
+ export { getJoinedCommunities } from './methods/communities/get-joined-communities.js';
99
+ export { hideCommunityLinkRequest } from './methods/communities/hide-community-link-request.js';
100
+ export { hideAllCommunityLinkRequests } from './methods/communities/hide-community-link-request.js';
101
+ export { linkCommunityPeer } from './methods/communities/link-community-peer.js';
102
+ export { unlinkCommunityPeer } from './methods/communities/link-community-peer.js';
103
+ export { toggleCommunityCollapsed } from './methods/communities/toggle-community-collapsed.js';
92
104
  export { addContact } from './methods/contacts/add-contact.js';
93
105
  export { deleteContacts } from './methods/contacts/delete-contacts.js';
94
106
  export { getContacts } from './methods/contacts/get-contacts.js';
@@ -105,6 +117,13 @@ export { getPeerDialogs } from './methods/dialogs/get-peer-dialogs.js';
105
117
  export { iterDialogs } from './methods/dialogs/iter-dialogs.js';
106
118
  export { joinChatlist } from './methods/dialogs/join-chatlist.js';
107
119
  export { setFoldersOrder } from './methods/dialogs/set-folders-order.js';
120
+ export { deleteAllWelcomeMessages } from './methods/ephemeral/delete-all-welcome-messages.js';
121
+ export { deleteEphemeralMessage } from './methods/ephemeral/delete-ephemeral-message.js';
122
+ export { deleteWelcomeMessage } from './methods/ephemeral/delete-welcome-message.js';
123
+ export { editEphemeralMessage } from './methods/ephemeral/edit-ephemeral-message.js';
124
+ export { getEphemeralCallbackAnswer } from './methods/ephemeral/get-ephemeral-callback-answer.js';
125
+ export { getWelcomeMessages } from './methods/ephemeral/get-welcome-messages.js';
126
+ export { sendEphemeralMessage } from './methods/ephemeral/send-ephemeral-message.js';
108
127
  export { downloadAsBuffer } from './methods/files/download-buffer.js';
109
128
  export { downloadChunk } from './methods/files/download-chunk.js';
110
129
  export { _normalizeFileDownloadLocation } from './methods/files/download-iterable.js';
@@ -129,6 +129,23 @@ class PeersService extends base.BaseService {
129
129
  accessHash = peer.accessHash;
130
130
  break;
131
131
  }
132
+ case "community":
133
+ case "communityForbidden": {
134
+ if (!peer.accessHash) {
135
+ this._log.warn("received community without access hash: %j", peer);
136
+ return;
137
+ }
138
+ dto = {
139
+ id: peerUtils.toggleChannelIdMark(peer.id),
140
+ accessHash: longUtils.longToFastString(peer.accessHash),
141
+ isMin: peer._ === "community" ? peer.min : false,
142
+ usernames: [],
143
+ updated: Date.now(),
144
+ complete: this._serializeTl(peer)
145
+ };
146
+ accessHash = peer.accessHash;
147
+ break;
148
+ }
132
149
  default:
133
150
  return;
134
151
  }
@@ -163,6 +180,13 @@ class PeersService extends base.BaseService {
163
180
  verified: peer.verified,
164
181
  defaultBannedRights: peer.defaultBannedRights
165
182
  };
183
+ } else if (existing._ === "community" && peer._ === "community") {
184
+ newComplete = {
185
+ ...existing,
186
+ title: peer.title,
187
+ photo: peer.photo,
188
+ defaultBannedRights: peer.defaultBannedRights
189
+ };
166
190
  } else if (existing._ === "user" && peer._ === "user") {
167
191
  newComplete = {
168
192
  ...existing,
@@ -216,6 +240,7 @@ class PeersService extends base.BaseService {
216
240
  await this._refs.deleteByPeer(peer.id);
217
241
  }
218
242
  async _writePending() {
243
+ this._pendingWritesTimer = null;
219
244
  try {
220
245
  await utils.asyncPool(this._pendingWrites.values(), async (dto) => {
221
246
  await this._peers.store(dto);
@@ -122,6 +122,23 @@ class PeersService extends BaseService {
122
122
  accessHash = peer.accessHash;
123
123
  break;
124
124
  }
125
+ case "community":
126
+ case "communityForbidden": {
127
+ if (!peer.accessHash) {
128
+ this._log.warn("received community without access hash: %j", peer);
129
+ return;
130
+ }
131
+ dto = {
132
+ id: toggleChannelIdMark(peer.id),
133
+ accessHash: longToFastString(peer.accessHash),
134
+ isMin: peer._ === "community" ? peer.min : false,
135
+ usernames: [],
136
+ updated: Date.now(),
137
+ complete: this._serializeTl(peer)
138
+ };
139
+ accessHash = peer.accessHash;
140
+ break;
141
+ }
125
142
  default:
126
143
  return;
127
144
  }
@@ -156,6 +173,13 @@ class PeersService extends BaseService {
156
173
  verified: peer.verified,
157
174
  defaultBannedRights: peer.defaultBannedRights
158
175
  };
176
+ } else if (existing._ === "community" && peer._ === "community") {
177
+ newComplete = {
178
+ ...existing,
179
+ title: peer.title,
180
+ photo: peer.photo,
181
+ defaultBannedRights: peer.defaultBannedRights
182
+ };
159
183
  } else if (existing._ === "user" && peer._ === "user") {
160
184
  newComplete = {
161
185
  ...existing,
@@ -209,6 +233,7 @@ class PeersService extends BaseService {
209
233
  await this._refs.deleteByPeer(peer.id);
210
234
  }
211
235
  async _writePending() {
236
+ this._pendingWritesTimer = null;
212
237
  try {
213
238
  await asyncPool(this._pendingWrites.values(), async (dto) => {
214
239
  await this._peers.store(dto);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -66,11 +66,11 @@ class BotKeyboardBuilder {
66
66
  /**
67
67
  * Return contents of this builder as an inline keyboard
68
68
  */
69
- asInline() {
70
- return {
71
- type: "inline",
72
- buttons: this._buttons
73
- };
69
+ asInline(params = {}) {
70
+ const ret = params;
71
+ ret.type = "inline";
72
+ ret.buttons = this._buttons;
73
+ return ret;
74
74
  }
75
75
  /**
76
76
  * Return contents of this builder as a reply keyboard