@mtcute/core 0.30.2 → 0.31.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 (233) hide show
  1. package/client.cjs +73 -0
  2. package/client.js +73 -0
  3. package/highlevel/client.d.cts +344 -114
  4. package/highlevel/client.d.ts +344 -114
  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/join-chat.cjs +1 -1
  10. package/highlevel/methods/chats/join-chat.d.cts +2 -1
  11. package/highlevel/methods/chats/join-chat.d.ts +2 -1
  12. package/highlevel/methods/chats/join-chat.js +1 -1
  13. package/highlevel/methods/chats/transfer-chat-ownership.cjs +6 -17
  14. package/highlevel/methods/chats/transfer-chat-ownership.js +6 -17
  15. package/highlevel/methods/communities/ban-community-participant.cjs +30 -0
  16. package/highlevel/methods/communities/ban-community-participant.d.cts +20 -0
  17. package/highlevel/methods/communities/ban-community-participant.d.ts +20 -0
  18. package/highlevel/methods/communities/ban-community-participant.js +25 -0
  19. package/highlevel/methods/communities/create-community.cjs +29 -0
  20. package/highlevel/methods/communities/create-community.d.cts +22 -0
  21. package/highlevel/methods/communities/create-community.d.ts +22 -0
  22. package/highlevel/methods/communities/create-community.js +24 -0
  23. package/highlevel/methods/communities/get-community-link-requests.cjs +27 -0
  24. package/highlevel/methods/communities/get-community-link-requests.d.cts +17 -0
  25. package/highlevel/methods/communities/get-community-link-requests.d.ts +17 -0
  26. package/highlevel/methods/communities/get-community-link-requests.js +22 -0
  27. package/highlevel/methods/communities/get-community-participant-chats.cjs +24 -0
  28. package/highlevel/methods/communities/get-community-participant-chats.d.cts +17 -0
  29. package/highlevel/methods/communities/get-community-participant-chats.d.ts +17 -0
  30. package/highlevel/methods/communities/get-community-participant-chats.js +19 -0
  31. package/highlevel/methods/communities/get-joined-communities.cjs +21 -0
  32. package/highlevel/methods/communities/get-joined-communities.d.cts +6 -0
  33. package/highlevel/methods/communities/get-joined-communities.d.ts +6 -0
  34. package/highlevel/methods/communities/get-joined-communities.js +16 -0
  35. package/highlevel/methods/communities/hide-community-link-request.cjs +30 -0
  36. package/highlevel/methods/communities/hide-community-link-request.d.cts +22 -0
  37. package/highlevel/methods/communities/hide-community-link-request.d.ts +22 -0
  38. package/highlevel/methods/communities/hide-community-link-request.js +25 -0
  39. package/highlevel/methods/communities/link-community-peer.cjs +32 -0
  40. package/highlevel/methods/communities/link-community-peer.d.cts +22 -0
  41. package/highlevel/methods/communities/link-community-peer.d.ts +22 -0
  42. package/highlevel/methods/communities/link-community-peer.js +27 -0
  43. package/highlevel/methods/communities/toggle-community-collapsed.cjs +18 -0
  44. package/highlevel/methods/communities/toggle-community-collapsed.d.cts +16 -0
  45. package/highlevel/methods/communities/toggle-community-collapsed.d.ts +16 -0
  46. package/highlevel/methods/communities/toggle-community-collapsed.js +13 -0
  47. package/highlevel/methods/ephemeral/delete-ephemeral-message.cjs +20 -0
  48. package/highlevel/methods/ephemeral/delete-ephemeral-message.d.cts +13 -0
  49. package/highlevel/methods/ephemeral/delete-ephemeral-message.d.ts +13 -0
  50. package/highlevel/methods/ephemeral/delete-ephemeral-message.js +15 -0
  51. package/highlevel/methods/ephemeral/edit-ephemeral-message.cjs +33 -0
  52. package/highlevel/methods/ephemeral/edit-ephemeral-message.d.cts +25 -0
  53. package/highlevel/methods/ephemeral/edit-ephemeral-message.d.ts +25 -0
  54. package/highlevel/methods/ephemeral/edit-ephemeral-message.js +28 -0
  55. package/highlevel/methods/ephemeral/find-in-update.cjs +27 -0
  56. package/highlevel/methods/ephemeral/find-in-update.d.cts +8 -0
  57. package/highlevel/methods/ephemeral/find-in-update.d.ts +8 -0
  58. package/highlevel/methods/ephemeral/find-in-update.js +22 -0
  59. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.cjs +31 -0
  60. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.d.cts +29 -0
  61. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.d.ts +29 -0
  62. package/highlevel/methods/ephemeral/get-ephemeral-callback-answer.js +26 -0
  63. package/highlevel/methods/ephemeral/send-ephemeral-message.cjs +38 -0
  64. package/highlevel/methods/ephemeral/send-ephemeral-message.d.cts +29 -0
  65. package/highlevel/methods/ephemeral/send-ephemeral-message.d.ts +29 -0
  66. package/highlevel/methods/ephemeral/send-ephemeral-message.js +33 -0
  67. package/highlevel/methods/files/download-iterable.cjs +4 -2
  68. package/highlevel/methods/files/download-iterable.js +4 -2
  69. package/highlevel/methods/files/download-iterable.test.d.cts +1 -0
  70. package/highlevel/methods/files/download-iterable.test.d.ts +1 -0
  71. package/highlevel/methods/files/download-stream.cjs +5 -6
  72. package/highlevel/methods/files/download-stream.js +5 -6
  73. package/highlevel/methods/forums/create-forum-topic.d.cts +7 -0
  74. package/highlevel/methods/forums/create-forum-topic.d.ts +7 -0
  75. package/highlevel/methods/forums/delete-forum-topic-history.d.cts +1 -1
  76. package/highlevel/methods/forums/delete-forum-topic-history.d.ts +1 -1
  77. package/highlevel/methods/forums/edit-forum-topic.cjs +1 -1
  78. package/highlevel/methods/forums/edit-forum-topic.d.cts +2 -2
  79. package/highlevel/methods/forums/edit-forum-topic.d.ts +2 -2
  80. package/highlevel/methods/forums/edit-forum-topic.js +1 -1
  81. package/highlevel/methods/forums/get-forum-topics-by-id.cjs +5 -1
  82. package/highlevel/methods/forums/get-forum-topics-by-id.d.cts +9 -1
  83. package/highlevel/methods/forums/get-forum-topics-by-id.d.ts +9 -1
  84. package/highlevel/methods/forums/get-forum-topics-by-id.js +5 -1
  85. package/highlevel/methods/forums/get-forum-topics-by-id.test.d.cts +1 -0
  86. package/highlevel/methods/forums/get-forum-topics-by-id.test.d.ts +1 -0
  87. package/highlevel/methods/forums/get-forum-topics.cjs +1 -1
  88. package/highlevel/methods/forums/get-forum-topics.js +1 -1
  89. package/highlevel/methods/forums/toggle-forum-topic-closed.d.cts +1 -1
  90. package/highlevel/methods/forums/toggle-forum-topic-closed.d.ts +1 -1
  91. package/highlevel/methods/forums/toggle-forum-topic-pinned.d.cts +1 -1
  92. package/highlevel/methods/forums/toggle-forum-topic-pinned.d.ts +1 -1
  93. package/highlevel/methods/forums/toggle-general-topic-hidden.cjs +2 -2
  94. package/highlevel/methods/forums/toggle-general-topic-hidden.js +3 -3
  95. package/highlevel/methods/messages/send-common.d.cts +7 -1
  96. package/highlevel/methods/messages/send-common.d.ts +7 -1
  97. package/highlevel/methods/messages/send-text.cjs +70 -4
  98. package/highlevel/methods/messages/send-text.js +70 -4
  99. package/highlevel/methods/users/resolve-peer.cjs +11 -1
  100. package/highlevel/methods/users/resolve-peer.js +11 -1
  101. package/highlevel/methods.d.cts +16 -0
  102. package/highlevel/methods.d.ts +16 -0
  103. package/highlevel/storage/service/peers.cjs +25 -0
  104. package/highlevel/storage/service/peers.js +25 -0
  105. package/highlevel/storage/service/peers.test.d.cts +1 -0
  106. package/highlevel/storage/service/peers.test.d.ts +1 -0
  107. package/highlevel/types/conversation.cjs +8 -0
  108. package/highlevel/types/conversation.d.cts +1 -0
  109. package/highlevel/types/conversation.d.ts +1 -0
  110. package/highlevel/types/conversation.js +10 -2
  111. package/highlevel/types/conversation.test.d.cts +1 -0
  112. package/highlevel/types/conversation.test.d.ts +1 -0
  113. package/highlevel/types/messages/ephemeral-message.cjs +103 -0
  114. package/highlevel/types/messages/ephemeral-message.d.cts +55 -0
  115. package/highlevel/types/messages/ephemeral-message.d.ts +55 -0
  116. package/highlevel/types/messages/ephemeral-message.js +98 -0
  117. package/highlevel/types/messages/index.d.cts +1 -0
  118. package/highlevel/types/messages/index.d.ts +1 -0
  119. package/highlevel/types/messages/message-action.cjs +6 -0
  120. package/highlevel/types/messages/message-action.d.cts +8 -1
  121. package/highlevel/types/messages/message-action.d.ts +8 -1
  122. package/highlevel/types/messages/message-action.js +6 -0
  123. package/highlevel/types/messages/replied-message.cjs +5 -1
  124. package/highlevel/types/messages/replied-message.d.cts +5 -1
  125. package/highlevel/types/messages/replied-message.d.ts +5 -1
  126. package/highlevel/types/messages/replied-message.js +5 -1
  127. package/highlevel/types/peers/chat.cjs +23 -3
  128. package/highlevel/types/peers/chat.d.cts +8 -3
  129. package/highlevel/types/peers/chat.d.ts +8 -3
  130. package/highlevel/types/peers/chat.js +24 -4
  131. package/highlevel/types/peers/community-peer.cjs +60 -0
  132. package/highlevel/types/peers/community-peer.d.cts +37 -0
  133. package/highlevel/types/peers/community-peer.d.ts +37 -0
  134. package/highlevel/types/peers/community-peer.js +55 -0
  135. package/highlevel/types/peers/full-chat.cjs +20 -5
  136. package/highlevel/types/peers/full-chat.d.cts +5 -0
  137. package/highlevel/types/peers/full-chat.d.ts +5 -0
  138. package/highlevel/types/peers/full-chat.js +20 -5
  139. package/highlevel/types/peers/index.d.cts +1 -0
  140. package/highlevel/types/peers/index.d.ts +1 -0
  141. package/highlevel/types/peers/peer.cjs +2 -0
  142. package/highlevel/types/peers/peer.js +2 -0
  143. package/highlevel/types/peers/user.cjs +6 -0
  144. package/highlevel/types/peers/user.d.cts +2 -0
  145. package/highlevel/types/peers/user.d.ts +2 -0
  146. package/highlevel/types/peers/user.js +6 -0
  147. package/highlevel/types/updates/delete-ephemeral-messages-update.cjs +27 -0
  148. package/highlevel/types/updates/delete-ephemeral-messages-update.d.cts +15 -0
  149. package/highlevel/types/updates/delete-ephemeral-messages-update.d.ts +15 -0
  150. package/highlevel/types/updates/delete-ephemeral-messages-update.js +22 -0
  151. package/highlevel/types/updates/ephemeral-callback-query.cjs +61 -0
  152. package/highlevel/types/updates/ephemeral-callback-query.d.cts +38 -0
  153. package/highlevel/types/updates/ephemeral-callback-query.d.ts +38 -0
  154. package/highlevel/types/updates/ephemeral-callback-query.js +56 -0
  155. package/highlevel/types/updates/index.d.cts +16 -2
  156. package/highlevel/types/updates/index.d.ts +16 -2
  157. package/highlevel/types/updates/parse-update.cjs +12 -1
  158. package/highlevel/types/updates/parse-update.js +12 -1
  159. package/highlevel/updates/manager.cjs +31 -13
  160. package/highlevel/updates/manager.d.cts +1 -0
  161. package/highlevel/updates/manager.d.ts +1 -0
  162. package/highlevel/updates/manager.js +31 -13
  163. package/highlevel/updates/manager.test.d.cts +1 -0
  164. package/highlevel/updates/manager.test.d.ts +1 -0
  165. package/highlevel/utils/stream-utils.cjs +8 -4
  166. package/highlevel/utils/stream-utils.js +8 -4
  167. package/highlevel/utils/stream-utils.test.d.cts +1 -0
  168. package/highlevel/utils/stream-utils.test.d.ts +1 -0
  169. package/highlevel/utils/walk-page-blocks.cjs +4 -0
  170. package/highlevel/utils/walk-page-blocks.js +4 -0
  171. package/index.cjs +10 -0
  172. package/index.js +11 -1
  173. package/methods.cjs +27 -0
  174. package/methods.js +27 -0
  175. package/network/client.cjs +4 -3
  176. package/network/client.d.cts +1 -0
  177. package/network/client.d.ts +1 -0
  178. package/network/client.js +4 -3
  179. package/network/middlewares/flood-waiter.cjs +2 -2
  180. package/network/middlewares/flood-waiter.js +2 -2
  181. package/network/middlewares/internal-errors.cjs +1 -1
  182. package/network/middlewares/internal-errors.js +1 -1
  183. package/network/middlewares/media-throttle.cjs +1 -1
  184. package/network/middlewares/media-throttle.js +1 -1
  185. package/network/mtproxy/index.cjs +4 -3
  186. package/network/mtproxy/index.d.cts +2 -2
  187. package/network/mtproxy/index.d.ts +2 -2
  188. package/network/mtproxy/index.js +4 -3
  189. package/network/network-manager.cjs +44 -16
  190. package/network/network-manager.d.cts +10 -3
  191. package/network/network-manager.d.ts +10 -3
  192. package/network/network-manager.js +45 -17
  193. package/network/network-manager.test.d.cts +1 -0
  194. package/network/network-manager.test.d.ts +1 -0
  195. package/network/persistent-connection.cjs +10 -2
  196. package/network/persistent-connection.js +10 -2
  197. package/network/session-connection.cjs +3 -0
  198. package/network/session-connection.js +3 -0
  199. package/network/transports/abstract.cjs +16 -0
  200. package/network/transports/abstract.d.cts +8 -2
  201. package/network/transports/abstract.d.ts +8 -2
  202. package/network/transports/abstract.js +17 -1
  203. package/network/transports/obfuscated.cjs +3 -1
  204. package/network/transports/obfuscated.js +3 -1
  205. package/package.json +6 -6
  206. package/tl/api-schema.json +1 -1
  207. package/tl/binary/reader.cjs +90 -15
  208. package/tl/binary/reader.js +90 -15
  209. package/tl/binary/writer.cjs +385 -80
  210. package/tl/binary/writer.js +385 -80
  211. package/tl/compat/reader.cjs +11 -0
  212. package/tl/compat/reader.js +11 -0
  213. package/tl/index.d.cts +12380 -4272
  214. package/tl/index.d.ts +12380 -4272
  215. package/tl/inner-tl.cjs +70 -20
  216. package/tl/inner-tl.js +70 -20
  217. package/tl/raw-errors.json +1 -1
  218. package/utils/abort-signal.cjs +1 -12
  219. package/utils/abort-signal.js +1 -12
  220. package/utils/abort-signal.test.d.cts +1 -0
  221. package/utils/abort-signal.test.d.ts +1 -0
  222. package/utils/binary/compat.cjs +14 -0
  223. package/utils/binary/compat.js +14 -0
  224. package/utils/early-timer.cjs +3 -11
  225. package/utils/early-timer.js +3 -11
  226. package/utils/early-timer.test.d.cts +1 -0
  227. package/utils/early-timer.test.d.ts +1 -0
  228. package/utils/function-utils.cjs +9 -4
  229. package/utils/function-utils.js +9 -4
  230. package/utils/links/bots.cjs +3 -0
  231. package/utils/links/bots.js +3 -0
  232. package/utils/peer-utils.cjs +8 -0
  233. package/utils/peer-utils.js +8 -0
package/methods.cjs CHANGED
@@ -88,6 +88,14 @@ const toggleJoinToSend = require("./highlevel/methods/chats/toggle-join-to-send.
88
88
  const transferChatOwnership = require("./highlevel/methods/chats/transfer-chat-ownership.cjs");
89
89
  const unarchiveChats = require("./highlevel/methods/chats/unarchive-chats.cjs");
90
90
  const unbanChatMember = require("./highlevel/methods/chats/unban-chat-member.cjs");
91
+ const banCommunityParticipant = require("./highlevel/methods/communities/ban-community-participant.cjs");
92
+ const createCommunity = require("./highlevel/methods/communities/create-community.cjs");
93
+ const getCommunityLinkRequests = require("./highlevel/methods/communities/get-community-link-requests.cjs");
94
+ const getCommunityParticipantChats = require("./highlevel/methods/communities/get-community-participant-chats.cjs");
95
+ const getJoinedCommunities = require("./highlevel/methods/communities/get-joined-communities.cjs");
96
+ const hideCommunityLinkRequest = require("./highlevel/methods/communities/hide-community-link-request.cjs");
97
+ const linkCommunityPeer = require("./highlevel/methods/communities/link-community-peer.cjs");
98
+ const toggleCommunityCollapsed = require("./highlevel/methods/communities/toggle-community-collapsed.cjs");
91
99
  const addContact = require("./highlevel/methods/contacts/add-contact.cjs");
92
100
  const deleteContacts = require("./highlevel/methods/contacts/delete-contacts.cjs");
93
101
  const getContacts = require("./highlevel/methods/contacts/get-contacts.cjs");
@@ -104,6 +112,10 @@ const getPeerDialogs = require("./highlevel/methods/dialogs/get-peer-dialogs.cjs
104
112
  const iterDialogs = require("./highlevel/methods/dialogs/iter-dialogs.cjs");
105
113
  const joinChatlist = require("./highlevel/methods/dialogs/join-chatlist.cjs");
106
114
  const setFoldersOrder = require("./highlevel/methods/dialogs/set-folders-order.cjs");
115
+ const deleteEphemeralMessage = require("./highlevel/methods/ephemeral/delete-ephemeral-message.cjs");
116
+ const editEphemeralMessage = require("./highlevel/methods/ephemeral/edit-ephemeral-message.cjs");
117
+ const getEphemeralCallbackAnswer = require("./highlevel/methods/ephemeral/get-ephemeral-callback-answer.cjs");
118
+ const sendEphemeralMessage = require("./highlevel/methods/ephemeral/send-ephemeral-message.cjs");
107
119
  const downloadBuffer = require("./highlevel/methods/files/download-buffer.cjs");
108
120
  const downloadChunk = require("./highlevel/methods/files/download-chunk.cjs");
109
121
  const downloadIterable = require("./highlevel/methods/files/download-iterable.cjs");
@@ -376,6 +388,17 @@ exports.toggleJoinToSend = toggleJoinToSend.toggleJoinToSend;
376
388
  exports.transferChatOwnership = transferChatOwnership.transferChatOwnership;
377
389
  exports.unarchiveChats = unarchiveChats.unarchiveChats;
378
390
  exports.unbanChatMember = unbanChatMember.unbanChatMember;
391
+ exports.banCommunityParticipant = banCommunityParticipant.banCommunityParticipant;
392
+ exports.unbanCommunityParticipant = banCommunityParticipant.unbanCommunityParticipant;
393
+ exports.createCommunity = createCommunity.createCommunity;
394
+ exports.getCommunityLinkRequests = getCommunityLinkRequests.getCommunityLinkRequests;
395
+ exports.getCommunityParticipantChats = getCommunityParticipantChats.getCommunityParticipantChats;
396
+ exports.getJoinedCommunities = getJoinedCommunities.getJoinedCommunities;
397
+ exports.hideAllCommunityLinkRequests = hideCommunityLinkRequest.hideAllCommunityLinkRequests;
398
+ exports.hideCommunityLinkRequest = hideCommunityLinkRequest.hideCommunityLinkRequest;
399
+ exports.linkCommunityPeer = linkCommunityPeer.linkCommunityPeer;
400
+ exports.unlinkCommunityPeer = linkCommunityPeer.unlinkCommunityPeer;
401
+ exports.toggleCommunityCollapsed = toggleCommunityCollapsed.toggleCommunityCollapsed;
379
402
  exports.addContact = addContact.addContact;
380
403
  exports.deleteContacts = deleteContacts.deleteContacts;
381
404
  exports.getContacts = getContacts.getContacts;
@@ -392,6 +415,10 @@ exports.getPeerDialogs = getPeerDialogs.getPeerDialogs;
392
415
  exports.iterDialogs = iterDialogs.iterDialogs;
393
416
  exports.joinChatlist = joinChatlist.joinChatlist;
394
417
  exports.setFoldersOrder = setFoldersOrder.setFoldersOrder;
418
+ exports.deleteEphemeralMessage = deleteEphemeralMessage.deleteEphemeralMessage;
419
+ exports.editEphemeralMessage = editEphemeralMessage.editEphemeralMessage;
420
+ exports.getEphemeralCallbackAnswer = getEphemeralCallbackAnswer.getEphemeralCallbackAnswer;
421
+ exports.sendEphemeralMessage = sendEphemeralMessage.sendEphemeralMessage;
395
422
  exports.downloadAsBuffer = downloadBuffer.downloadAsBuffer;
396
423
  exports.downloadChunk = downloadChunk.downloadChunk;
397
424
  exports._normalizeFileDownloadLocation = downloadIterable._normalizeFileDownloadLocation;
package/methods.js CHANGED
@@ -81,6 +81,14 @@ import { toggleJoinToSend } from "./highlevel/methods/chats/toggle-join-to-send.
81
81
  import { transferChatOwnership } from "./highlevel/methods/chats/transfer-chat-ownership.js";
82
82
  import { unarchiveChats } from "./highlevel/methods/chats/unarchive-chats.js";
83
83
  import { unbanChatMember } from "./highlevel/methods/chats/unban-chat-member.js";
84
+ import { banCommunityParticipant, unbanCommunityParticipant } from "./highlevel/methods/communities/ban-community-participant.js";
85
+ import { createCommunity } from "./highlevel/methods/communities/create-community.js";
86
+ import { getCommunityLinkRequests } from "./highlevel/methods/communities/get-community-link-requests.js";
87
+ import { getCommunityParticipantChats } from "./highlevel/methods/communities/get-community-participant-chats.js";
88
+ import { getJoinedCommunities } from "./highlevel/methods/communities/get-joined-communities.js";
89
+ import { hideAllCommunityLinkRequests, hideCommunityLinkRequest } from "./highlevel/methods/communities/hide-community-link-request.js";
90
+ import { linkCommunityPeer, unlinkCommunityPeer } from "./highlevel/methods/communities/link-community-peer.js";
91
+ import { toggleCommunityCollapsed } from "./highlevel/methods/communities/toggle-community-collapsed.js";
84
92
  import { addContact } from "./highlevel/methods/contacts/add-contact.js";
85
93
  import { deleteContacts } from "./highlevel/methods/contacts/delete-contacts.js";
86
94
  import { getContacts } from "./highlevel/methods/contacts/get-contacts.js";
@@ -97,6 +105,10 @@ import { getPeerDialogs } from "./highlevel/methods/dialogs/get-peer-dialogs.js"
97
105
  import { iterDialogs } from "./highlevel/methods/dialogs/iter-dialogs.js";
98
106
  import { joinChatlist } from "./highlevel/methods/dialogs/join-chatlist.js";
99
107
  import { setFoldersOrder } from "./highlevel/methods/dialogs/set-folders-order.js";
108
+ import { deleteEphemeralMessage } from "./highlevel/methods/ephemeral/delete-ephemeral-message.js";
109
+ import { editEphemeralMessage } from "./highlevel/methods/ephemeral/edit-ephemeral-message.js";
110
+ import { getEphemeralCallbackAnswer } from "./highlevel/methods/ephemeral/get-ephemeral-callback-answer.js";
111
+ import { sendEphemeralMessage } from "./highlevel/methods/ephemeral/send-ephemeral-message.js";
100
112
  import { downloadAsBuffer } from "./highlevel/methods/files/download-buffer.js";
101
113
  import { downloadChunk } from "./highlevel/methods/files/download-chunk.js";
102
114
  import { _normalizeFileDownloadLocation, downloadAsIterable } from "./highlevel/methods/files/download-iterable.js";
@@ -303,6 +315,7 @@ export {
303
315
  applyBoost,
304
316
  archiveChats,
305
317
  banChatMember,
318
+ banCommunityParticipant,
306
319
  blockUser,
307
320
  buyResaleGift,
308
321
  canApplyBoost,
@@ -318,6 +331,7 @@ export {
318
331
  commentText,
319
332
  createBusinessChatLink,
320
333
  createChannel,
334
+ createCommunity,
321
335
  createFolder,
322
336
  createForumTopic,
323
337
  createGroup,
@@ -330,6 +344,7 @@ export {
330
344
  deleteChannel,
331
345
  deleteChatPhoto,
332
346
  deleteContacts,
347
+ deleteEphemeralMessage,
333
348
  deleteFolder,
334
349
  deleteForumTopicHistory,
335
350
  deleteGroup,
@@ -351,6 +366,7 @@ export {
351
366
  editChatMemberRank,
352
367
  editCloseFriends,
353
368
  editCloseFriendsRaw,
369
+ editEphemeralMessage,
354
370
  editFolder,
355
371
  editForumTopic,
356
372
  editInlineMessage,
@@ -383,11 +399,14 @@ export {
383
399
  getChats,
384
400
  getCollectibleInfo,
385
401
  getCommonChats,
402
+ getCommunityLinkRequests,
403
+ getCommunityParticipantChats,
386
404
  getContacts,
387
405
  getCreatorAfterLeave,
388
406
  getCustomEmojis,
389
407
  getCustomEmojisFromMessages,
390
408
  getDiscussionMessage,
409
+ getEphemeralCallbackAnswer,
391
410
  getFactCheck,
392
411
  getFolders,
393
412
  getForumTopics,
@@ -402,6 +421,7 @@ export {
402
421
  getInviteLink,
403
422
  getInviteLinkMembers,
404
423
  getInviteLinks,
424
+ getJoinedCommunities,
405
425
  getMe,
406
426
  getMessageAuthor,
407
427
  getMessageByLink,
@@ -446,7 +466,9 @@ export {
446
466
  getUser,
447
467
  getUsers,
448
468
  getWebPagePreview,
469
+ hideAllCommunityLinkRequests,
449
470
  hideAllJoinRequests,
471
+ hideCommunityLinkRequest,
450
472
  hideJoinRequest,
451
473
  hideMyStoriesViews,
452
474
  importContacts,
@@ -476,6 +498,7 @@ export {
476
498
  joinChatlist,
477
499
  kickChatMember,
478
500
  leaveChat,
501
+ linkCommunityPeer,
479
502
  logOut,
480
503
  markChatUnread,
481
504
  moveStickerInSet,
@@ -517,6 +540,7 @@ export {
517
540
  sendCode,
518
541
  sendCopy,
519
542
  sendCopyGroup,
543
+ sendEphemeralMessage,
520
544
  sendMedia,
521
545
  sendMediaGroup,
522
546
  sendOnline,
@@ -565,6 +589,7 @@ export {
565
589
  signInQr,
566
590
  start,
567
591
  startTest,
592
+ toggleCommunityCollapsed,
568
593
  toggleContentProtection,
569
594
  toggleEmojiStatusPermission,
570
595
  toggleForumTopicClosed,
@@ -583,7 +608,9 @@ export {
583
608
  translateText,
584
609
  unarchiveChats,
585
610
  unbanChatMember,
611
+ unbanCommunityParticipant,
586
612
  unblockUser,
613
+ unlinkCommunityPeer,
587
614
  unpinAllMessages,
588
615
  unpinMessage,
589
616
  unsaveMusicFromProfile,
@@ -70,7 +70,6 @@ class MtClient {
70
70
  onConnecting: this.onConnecting.emit.bind(this.onConnecting),
71
71
  onNetworkChanged: this.onNetworkChanged.emit.bind(this.onNetworkChanged),
72
72
  onUpdate: this.onUpdate.emit.bind(this.onUpdate),
73
- stopSignal: this.stopSignal,
74
73
  platform: params.platform,
75
74
  ...miscUtils.dropUndefined(params.network)
76
75
  },
@@ -106,6 +105,7 @@ class MtClient {
106
105
  log;
107
106
  network;
108
107
  _abortController;
108
+ /** Signal that is aborted when the client is destroyed */
109
109
  stopSignal;
110
110
  onUsable = new utils.Emitter();
111
111
  onConnecting = new utils.Emitter();
@@ -143,12 +143,11 @@ class MtClient {
143
143
  return this._connect.run();
144
144
  }
145
145
  async disconnect() {
146
- await this.network.destroy();
146
+ await this.network.disconnect();
147
147
  await this.storage.save();
148
148
  this._config.destroy();
149
149
  this._prepare.reset();
150
150
  this._connect.reset();
151
- this._abortController.abort();
152
151
  this.log.debug("client disconnected");
153
152
  }
154
153
  /**
@@ -157,6 +156,8 @@ class MtClient {
157
156
  * **Note**: must be called *after* {@link disconnect}
158
157
  */
159
158
  async destroy() {
159
+ this._abortController.abort();
160
+ await this.network.destroy();
160
161
  await this.storage.destroy();
161
162
  this.log.debug("client destroyed");
162
163
  }
@@ -156,6 +156,7 @@ export declare class MtClient {
156
156
  readonly log: Logger;
157
157
  readonly network: NetworkManager;
158
158
  private _abortController;
159
+ /** Signal that is aborted when the client is destroyed */
159
160
  readonly stopSignal: AbortSignal;
160
161
  readonly onUsable: Emitter<void>;
161
162
  readonly onConnecting: Emitter<void>;
@@ -156,6 +156,7 @@ export declare class MtClient {
156
156
  readonly log: Logger;
157
157
  readonly network: NetworkManager;
158
158
  private _abortController;
159
+ /** Signal that is aborted when the client is destroyed */
159
160
  readonly stopSignal: AbortSignal;
160
161
  readonly onUsable: Emitter<void>;
161
162
  readonly onConnecting: Emitter<void>;
package/network/client.js CHANGED
@@ -63,7 +63,6 @@ class MtClient {
63
63
  onConnecting: this.onConnecting.emit.bind(this.onConnecting),
64
64
  onNetworkChanged: this.onNetworkChanged.emit.bind(this.onNetworkChanged),
65
65
  onUpdate: this.onUpdate.emit.bind(this.onUpdate),
66
- stopSignal: this.stopSignal,
67
66
  platform: params.platform,
68
67
  ...dropUndefined(params.network)
69
68
  },
@@ -99,6 +98,7 @@ class MtClient {
99
98
  log;
100
99
  network;
101
100
  _abortController;
101
+ /** Signal that is aborted when the client is destroyed */
102
102
  stopSignal;
103
103
  onUsable = new Emitter();
104
104
  onConnecting = new Emitter();
@@ -136,12 +136,11 @@ class MtClient {
136
136
  return this._connect.run();
137
137
  }
138
138
  async disconnect() {
139
- await this.network.destroy();
139
+ await this.network.disconnect();
140
140
  await this.storage.save();
141
141
  this._config.destroy();
142
142
  this._prepare.reset();
143
143
  this._connect.reset();
144
- this._abortController.abort();
145
144
  this.log.debug("client disconnected");
146
145
  }
147
146
  /**
@@ -150,6 +149,8 @@ class MtClient {
150
149
  * **Note**: must be called *after* {@link disconnect}
151
150
  */
152
151
  async destroy() {
152
+ this._abortController.abort();
153
+ await this.network.destroy();
153
154
  await this.storage.destroy();
154
155
  this.log.debug("client destroyed");
155
156
  }
@@ -35,7 +35,7 @@ function floodWaiter(options) {
35
35
  if (delta <= minStoredWait) {
36
36
  storage.delete(method);
37
37
  } else if (delta <= floodSleepThreshold) {
38
- await miscUtils.sleepWithAbort(delta, abortSignal.combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal));
38
+ await miscUtils.sleepWithAbort(delta, abortSignal.combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal));
39
39
  storage.delete(method);
40
40
  } else {
41
41
  return {
@@ -74,7 +74,7 @@ function floodWaiter(options) {
74
74
  }
75
75
  await miscUtils.sleepWithAbort(
76
76
  ms,
77
- abortSignal.combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal)
77
+ abortSignal.combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal)
78
78
  );
79
79
  continue;
80
80
  }
@@ -28,7 +28,7 @@ function floodWaiter(options) {
28
28
  if (delta <= minStoredWait) {
29
29
  storage.delete(method);
30
30
  } else if (delta <= floodSleepThreshold) {
31
- await sleepWithAbort(delta, combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal));
31
+ await sleepWithAbort(delta, combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal));
32
32
  storage.delete(method);
33
33
  } else {
34
34
  return {
@@ -67,7 +67,7 @@ function floodWaiter(options) {
67
67
  }
68
68
  await sleepWithAbort(
69
69
  ms,
70
- combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal)
70
+ combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal)
71
71
  );
72
72
  continue;
73
73
  }
@@ -50,7 +50,7 @@ function internalErrorsHandler(params) {
50
50
  if (waitSeconds > 0) {
51
51
  await miscUtils.sleepWithAbort(
52
52
  waitSeconds * 1e3,
53
- abortSignal.combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal)
53
+ abortSignal.combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal)
54
54
  );
55
55
  }
56
56
  continue;
@@ -43,7 +43,7 @@ function internalErrorsHandler(params) {
43
43
  if (waitSeconds > 0) {
44
44
  await sleepWithAbort(
45
45
  waitSeconds * 1e3,
46
- combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal)
46
+ combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal)
47
47
  );
48
48
  }
49
49
  continue;
@@ -52,7 +52,7 @@ function mediaThrottle(params) {
52
52
  const dcId = ctx.params?.dcId ?? ctx.manager.getPrimaryDcId();
53
53
  const limiter = getLimiter(kind, dcId, ctx.manager.params.isPremium);
54
54
  if (!limiter.tryAcquire(bytes)) {
55
- const abortSignal$1 = abortSignal.combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal);
55
+ const abortSignal$1 = abortSignal.combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal);
56
56
  await limiter.acquire(bytes, abortSignal$1);
57
57
  }
58
58
  try {
@@ -45,7 +45,7 @@ function mediaThrottle(params) {
45
45
  const dcId = ctx.params?.dcId ?? ctx.manager.getPrimaryDcId();
46
46
  const limiter = getLimiter(kind, dcId, ctx.manager.params.isPremium);
47
47
  if (!limiter.tryAcquire(bytes)) {
48
- const abortSignal = combineAbortSignals(ctx.manager.params.stopSignal, ctx.params?.abortSignal);
48
+ const abortSignal = combineAbortSignals(ctx.manager.teardownSignal, ctx.params?.abortSignal);
49
49
  await limiter.acquire(bytes, abortSignal);
50
50
  }
51
51
  try {
@@ -11,6 +11,7 @@ const errors = require("../../types/errors.cjs");
11
11
  const _fakeTls = require("./_fake-tls.cjs");
12
12
  const obfuscated = require("../transports/obfuscated.cjs");
13
13
  const intermediate = require("../transports/intermediate.cjs");
14
+ const abstract = require("../transports/abstract.cjs");
14
15
  const MAX_DOMAIN_LENGTH = 182;
15
16
  const TLS_START_SERVER = [
16
17
  new Uint8Array([22, 3, 3]),
@@ -86,13 +87,13 @@ class BaseMtProxyTransport {
86
87
  new obfuscated.ObfuscatedPacketCodec(new intermediate.PaddedIntermediatePacketCodec(), proxy)
87
88
  );
88
89
  }
89
- async connect() {
90
+ async connect(_dc, abortSignal) {
90
91
  const conn = await this._connectTcp({
91
92
  address: this._proxy.host,
92
93
  port: this._proxy.port
93
- });
94
+ }, abortSignal);
94
95
  if (this._fakeTlsDomain) {
95
- await this._handleConnectFakeTls(conn);
96
+ await abstract.performHandshakeWithAbort(conn, abortSignal, () => this._handleConnectFakeTls(conn));
96
97
  }
97
98
  return conn;
98
99
  }
@@ -23,7 +23,7 @@ export interface MtProxySettings {
23
23
  * Base for a TCP transport that connects via an MTProxy
24
24
  */
25
25
  export declare abstract class BaseMtProxyTransport implements TelegramTransport {
26
- abstract _connectTcp(endpoint: TcpEndpoint): Promise<ITcpConnection>;
26
+ abstract _connectTcp(endpoint: TcpEndpoint, abortSignal: AbortSignal): Promise<ITcpConnection>;
27
27
  readonly _proxy: MtProxySettings;
28
28
  private _rawSecret;
29
29
  private _randomPadding;
@@ -37,6 +37,6 @@ export declare abstract class BaseMtProxyTransport implements TelegramTransport
37
37
  constructor(proxy: MtProxySettings);
38
38
  getMtproxyInfo(): tl.RawInputClientProxy;
39
39
  packetCodec(dc: BasicDcOption): IPacketCodec;
40
- connect(): Promise<ITelegramConnection>;
40
+ connect(_dc: BasicDcOption, abortSignal: AbortSignal): Promise<ITelegramConnection>;
41
41
  private _handleConnectFakeTls;
42
42
  }
@@ -23,7 +23,7 @@ export interface MtProxySettings {
23
23
  * Base for a TCP transport that connects via an MTProxy
24
24
  */
25
25
  export declare abstract class BaseMtProxyTransport implements TelegramTransport {
26
- abstract _connectTcp(endpoint: TcpEndpoint): Promise<ITcpConnection>;
26
+ abstract _connectTcp(endpoint: TcpEndpoint, abortSignal: AbortSignal): Promise<ITcpConnection>;
27
27
  readonly _proxy: MtProxySettings;
28
28
  private _rawSecret;
29
29
  private _randomPadding;
@@ -37,6 +37,6 @@ export declare abstract class BaseMtProxyTransport implements TelegramTransport
37
37
  constructor(proxy: MtProxySettings);
38
38
  getMtproxyInfo(): tl.RawInputClientProxy;
39
39
  packetCodec(dc: BasicDcOption): IPacketCodec;
40
- connect(): Promise<ITelegramConnection>;
40
+ connect(_dc: BasicDcOption, abortSignal: AbortSignal): Promise<ITelegramConnection>;
41
41
  private _handleConnectFakeTls;
42
42
  }
@@ -4,6 +4,7 @@ import { MtSecurityError, MtUnsupportedError } from "../../types/errors.js";
4
4
  import { FakeTlsPacketCodec, generateFakeTlsHeader } from "./_fake-tls.js";
5
5
  import { ObfuscatedPacketCodec } from "../transports/obfuscated.js";
6
6
  import { PaddedIntermediatePacketCodec, IntermediatePacketCodec } from "../transports/intermediate.js";
7
+ import { performHandshakeWithAbort } from "../transports/abstract.js";
7
8
  const MAX_DOMAIN_LENGTH = 182;
8
9
  const TLS_START_SERVER = [
9
10
  new Uint8Array([22, 3, 3]),
@@ -79,13 +80,13 @@ class BaseMtProxyTransport {
79
80
  new ObfuscatedPacketCodec(new PaddedIntermediatePacketCodec(), proxy)
80
81
  );
81
82
  }
82
- async connect() {
83
+ async connect(_dc, abortSignal) {
83
84
  const conn = await this._connectTcp({
84
85
  address: this._proxy.host,
85
86
  port: this._proxy.port
86
- });
87
+ }, abortSignal);
87
88
  if (this._fakeTlsDomain) {
88
- await this._handleConnectFakeTls(conn);
89
+ await performHandshakeWithAbort(conn, abortSignal, () => this._handleConnectFakeTls(conn));
89
90
  }
90
91
  return conn;
91
92
  }
@@ -227,7 +227,7 @@ class NetworkManager {
227
227
  _: "initConnection",
228
228
  deviceModel,
229
229
  systemVersion: "1.0",
230
- appVersion: "0.30.2",
230
+ appVersion: "0.31.0",
231
231
  systemLangCode: "en",
232
232
  langPack: "",
233
233
  // "langPacks are for official apps only"
@@ -279,34 +279,45 @@ class NetworkManager {
279
279
  return { main, media };
280
280
  }
281
281
  _resetOnNetworkChange;
282
+ _destroyed = false;
283
+ _teardownAbort = new AbortController();
284
+ /** Signal that is aborted when the network manager is disconnected or destroyed */
285
+ get teardownSignal() {
286
+ return this._teardownAbort.signal;
287
+ }
288
+ _onPrimaryUsable = () => this.params.onUsable();
289
+ _onPrimaryWait = () => this.params.onConnecting();
290
+ _onPrimaryUpdate = (update) => this._updateHandler(update, false);
282
291
  _switchPrimaryDc(dc) {
283
292
  if (this._primaryDc && this._primaryDc !== dc) {
284
293
  this._primaryDc.setIsPrimary(false);
294
+ this._primaryDc.main.onUsable.remove(this._onPrimaryUsable);
295
+ this._primaryDc.main.onWait.remove(this._onPrimaryWait);
296
+ this._primaryDc.main.onUpdate.remove(this._onPrimaryUpdate);
285
297
  }
286
298
  this._primaryDc = dc;
287
299
  dc.setIsPrimary(true);
288
300
  this.params.onConnecting();
289
- dc.main.onUsable.add(() => {
290
- if (dc !== this._primaryDc) return;
291
- this.params.onUsable();
292
- });
293
- dc.main.onWait.add(() => {
294
- if (dc !== this._primaryDc) return;
295
- this.params.onConnecting();
296
- });
297
- dc.main.onUpdate.add((update) => {
298
- this._updateHandler(update, false);
299
- });
301
+ dc.main.onUsable.remove(this._onPrimaryUsable);
302
+ dc.main.onWait.remove(this._onPrimaryWait);
303
+ dc.main.onUpdate.remove(this._onPrimaryUpdate);
304
+ dc.main.onUsable.add(this._onPrimaryUsable);
305
+ dc.main.onWait.add(this._onPrimaryWait);
306
+ dc.main.onUpdate.add(this._onPrimaryUpdate);
300
307
  return dc.loadKeys().then(() => dc.main.ensureConnected());
301
308
  }
302
309
  _dcCreationPromise = /* @__PURE__ */ new Map();
303
310
  async _getOtherDc(dcId) {
311
+ if (this._destroyed) {
312
+ throw new errors.MtcuteError("Network manager is destroyed");
313
+ }
304
314
  if (!this._dcConnections.has(dcId)) {
305
315
  if (this._dcCreationPromise.has(dcId)) {
306
316
  await this._dcCreationPromise.get(dcId);
307
317
  return utils.asNonNull(this._dcConnections.get(dcId));
308
318
  }
309
319
  const promise = new utils.Deferred();
320
+ promise.promise.catch(utils.noop);
310
321
  this._dcCreationPromise.set(dcId, promise.promise);
311
322
  this._log.debug("creating new DC %d", dcId);
312
323
  try {
@@ -323,7 +334,7 @@ class NetworkManager {
323
334
  this._log.debug("dc %d was not created: %e", dcId, e);
324
335
  promise.reject(e);
325
336
  this._dcCreationPromise.delete(dcId);
326
- return this._getOtherDc(dcId);
337
+ throw e;
327
338
  }
328
339
  }
329
340
  return this._dcConnections.get(dcId);
@@ -334,9 +345,15 @@ class NetworkManager {
334
345
  * @param defaultDcs Default DCs to connect to
335
346
  */
336
347
  async connect(defaultDcs) {
348
+ if (this._destroyed) {
349
+ throw new errors.MtcuteError("Network manager is destroyed");
350
+ }
337
351
  if (defaultDcs.main.id !== defaultDcs.media.id) {
338
352
  throw new errors.MtArgumentError("Default DCs must be the same");
339
353
  }
354
+ if (this._teardownAbort.signal.aborted) {
355
+ this._teardownAbort = new AbortController();
356
+ }
340
357
  if (this._dcConnections.has(defaultDcs.main.id)) {
341
358
  throw new errors.MtArgumentError("DC manager already exists");
342
359
  }
@@ -375,11 +392,12 @@ class NetworkManager {
375
392
  }
376
393
  typeAssertions.assertTypeIs("auth.importAuthorization", res, "auth.authorization");
377
394
  promise.resolve();
378
- this._pendingExports.delete(manager.dcId);
379
395
  } catch (e) {
380
396
  this._log.warn("failed to export auth to dc %d: %s", manager.dcId, e);
381
397
  promise.reject(e);
382
398
  throw e;
399
+ } finally {
400
+ this._pendingExports.delete(manager.dcId);
383
401
  }
384
402
  }
385
403
  setIsPremium(isPremium) {
@@ -449,6 +467,9 @@ class NetworkManager {
449
467
  }
450
468
  }
451
469
  async changePrimaryDc(newDc) {
470
+ if (this._destroyed) {
471
+ throw new errors.MtcuteError("Network manager is destroyed");
472
+ }
452
473
  if (newDc === this._primaryDc?.dcId) return;
453
474
  const options = await this._findDcOptions(newDc);
454
475
  if (!this._dcConnections.has(newDc)) {
@@ -581,13 +602,20 @@ class NetworkManager {
581
602
  if (!this._primaryDc) throw new errors.MtcuteError("Not connected to any DC");
582
603
  return this._primaryDc.dcId;
583
604
  }
584
- async destroy() {
605
+ async disconnect() {
606
+ this._teardownAbort.abort();
607
+ this._primaryDc = void 0;
585
608
  for (const dc of this._dcConnections.values()) {
586
609
  await dc.destroy();
587
610
  }
588
611
  this._dcConnections.clear();
589
- this.config.onUpdated.remove(this._onConfigChanged);
590
612
  this._resetOnNetworkChange?.();
613
+ this._resetOnNetworkChange = void 0;
614
+ }
615
+ async destroy() {
616
+ this._destroyed = true;
617
+ await this.disconnect();
618
+ this.config.onUpdated.remove(this._onConfigChanged);
591
619
  }
592
620
  getMtprotoMessageId() {
593
621
  return this._primaryDc.main._connections[0]._session.getMessageId();
@@ -36,7 +36,6 @@ export interface NetworkManagerParams {
36
36
  onUsable: () => void;
37
37
  onConnecting: () => void;
38
38
  onNetworkChanged: (connected: boolean) => void;
39
- stopSignal: AbortSignal;
40
39
  }
41
40
  export type ConnectionCountDelegate = (kind: ConnectionKind, dcId: number, isPremium: boolean) => number;
42
41
  /**
@@ -238,13 +237,20 @@ export declare class NetworkManager {
238
237
  readonly _transport: TelegramTransport;
239
238
  readonly _reconnectionStrategy: ReconnectionStrategy;
240
239
  readonly _connectionCount: ConnectionCountDelegate;
241
- protected readonly _dcConnections: Map<number, DcConnectionManager>;
242
- protected _primaryDc?: DcConnectionManager;
240
+ readonly _dcConnections: Map<number, DcConnectionManager>;
241
+ _primaryDc?: DcConnectionManager;
243
242
  protected _primaryDcRecreationPromise?: Deferred<void>;
244
243
  private _updateHandler;
245
244
  constructor(params: NetworkManagerParams & NetworkManagerExtraParams, config: ConfigManager);
246
245
  private _findDcOptions;
247
246
  private _resetOnNetworkChange?;
247
+ private _destroyed;
248
+ private _teardownAbort;
249
+ /** Signal that is aborted when the network manager is disconnected or destroyed */
250
+ get teardownSignal(): AbortSignal;
251
+ private _onPrimaryUsable;
252
+ private _onPrimaryWait;
253
+ private _onPrimaryUpdate;
248
254
  private _switchPrimaryDc;
249
255
  private _dcCreationPromise;
250
256
  _getOtherDc(dcId: number): Promise<DcConnectionManager>;
@@ -271,6 +277,7 @@ export declare class NetworkManager {
271
277
  changeTransport(transport: TelegramTransport): Promise<void>;
272
278
  getPoolSize(kind: ConnectionKind, dcId?: number): number;
273
279
  getPrimaryDcId(): number;
280
+ disconnect(): Promise<void>;
274
281
  destroy(): Promise<void>;
275
282
  getMtprotoMessageId(): Long;
276
283
  recreateDc(dcId: number): Promise<void>;
@@ -36,7 +36,6 @@ export interface NetworkManagerParams {
36
36
  onUsable: () => void;
37
37
  onConnecting: () => void;
38
38
  onNetworkChanged: (connected: boolean) => void;
39
- stopSignal: AbortSignal;
40
39
  }
41
40
  export type ConnectionCountDelegate = (kind: ConnectionKind, dcId: number, isPremium: boolean) => number;
42
41
  /**
@@ -238,13 +237,20 @@ export declare class NetworkManager {
238
237
  readonly _transport: TelegramTransport;
239
238
  readonly _reconnectionStrategy: ReconnectionStrategy;
240
239
  readonly _connectionCount: ConnectionCountDelegate;
241
- protected readonly _dcConnections: Map<number, DcConnectionManager>;
242
- protected _primaryDc?: DcConnectionManager;
240
+ readonly _dcConnections: Map<number, DcConnectionManager>;
241
+ _primaryDc?: DcConnectionManager;
243
242
  protected _primaryDcRecreationPromise?: Deferred<void>;
244
243
  private _updateHandler;
245
244
  constructor(params: NetworkManagerParams & NetworkManagerExtraParams, config: ConfigManager);
246
245
  private _findDcOptions;
247
246
  private _resetOnNetworkChange?;
247
+ private _destroyed;
248
+ private _teardownAbort;
249
+ /** Signal that is aborted when the network manager is disconnected or destroyed */
250
+ get teardownSignal(): AbortSignal;
251
+ private _onPrimaryUsable;
252
+ private _onPrimaryWait;
253
+ private _onPrimaryUpdate;
248
254
  private _switchPrimaryDc;
249
255
  private _dcCreationPromise;
250
256
  _getOtherDc(dcId: number): Promise<DcConnectionManager>;
@@ -271,6 +277,7 @@ export declare class NetworkManager {
271
277
  changeTransport(transport: TelegramTransport): Promise<void>;
272
278
  getPoolSize(kind: ConnectionKind, dcId?: number): number;
273
279
  getPrimaryDcId(): number;
280
+ disconnect(): Promise<void>;
274
281
  destroy(): Promise<void>;
275
282
  getMtprotoMessageId(): Long;
276
283
  recreateDc(dcId: number): Promise<void>;