@mtcute/core 0.18.0-rc.5 → 0.18.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 (630) hide show
  1. package/client.d.cts +1 -0
  2. package/highlevel/base.d.cts +115 -0
  3. package/highlevel/base.test.d.cts +1 -0
  4. package/highlevel/client.d.cts +5045 -0
  5. package/highlevel/client.types.d.cts +61 -0
  6. package/highlevel/index.d.cts +4 -0
  7. package/highlevel/managers/app-config-manager.d.cts +11 -0
  8. package/highlevel/managers/timers.d.cts +10 -0
  9. package/highlevel/methods/_imports.d.cts +1 -0
  10. package/highlevel/methods/_init.d.cts +1 -0
  11. package/highlevel/methods/auth/check-password.d.cts +10 -0
  12. package/highlevel/methods/auth/get-password-hint.d.cts +7 -0
  13. package/highlevel/methods/auth/log-out.d.cts +17 -0
  14. package/highlevel/methods/auth/recover-password.d.cts +12 -0
  15. package/highlevel/methods/auth/resend-code.d.cts +16 -0
  16. package/highlevel/methods/auth/run.d.cts +16 -0
  17. package/highlevel/methods/auth/send-code.d.cts +18 -0
  18. package/highlevel/methods/auth/send-recovery-code.d.cts +7 -0
  19. package/highlevel/methods/auth/sign-in-bot.d.cts +10 -0
  20. package/highlevel/methods/auth/sign-in-qr.d.cts +33 -0
  21. package/highlevel/methods/auth/sign-in.d.cts +19 -0
  22. package/highlevel/methods/auth/start-test.d.cts +30 -0
  23. package/highlevel/methods/auth/start.d.cts +89 -0
  24. package/highlevel/methods/auth/utils.d.cts +9 -0
  25. package/highlevel/methods/bots/answer-callback-query.d.cts +41 -0
  26. package/highlevel/methods/bots/answer-inline-query.d.cts +88 -0
  27. package/highlevel/methods/bots/answer-pre-checkout-query.d.cts +12 -0
  28. package/highlevel/methods/bots/delete-my-commands.d.cts +22 -0
  29. package/highlevel/methods/bots/get-bot-info.d.cts +18 -0
  30. package/highlevel/methods/bots/get-bot-menu-button.d.cts +7 -0
  31. package/highlevel/methods/bots/get-callback-answer.d.cts +41 -0
  32. package/highlevel/methods/bots/get-game-high-scores.d.cts +17 -0
  33. package/highlevel/methods/bots/get-my-commands.d.cts +21 -0
  34. package/highlevel/methods/bots/normalize-command-scope.d.cts +5 -0
  35. package/highlevel/methods/bots/open-webview.d.cts +73 -0
  36. package/highlevel/methods/bots/prepare-inline-message.d.cts +32 -0
  37. package/highlevel/methods/bots/set-bot-info.d.cts +23 -0
  38. package/highlevel/methods/bots/set-bot-menu-button.d.cts +7 -0
  39. package/highlevel/methods/bots/set-game-score.d.cts +54 -0
  40. package/highlevel/methods/bots/set-my-commands.d.cts +26 -0
  41. package/highlevel/methods/bots/set-my-default-rights.d.cts +11 -0
  42. package/highlevel/methods/bots/toggle-emoji-status-permission.d.cts +11 -0
  43. package/highlevel/methods/chats/add-chat-members.d.cts +20 -0
  44. package/highlevel/methods/chats/archive-chats.d.cts +9 -0
  45. package/highlevel/methods/chats/ban-chat-member.d.cts +24 -0
  46. package/highlevel/methods/chats/batched-queries.d.cts +11 -0
  47. package/highlevel/methods/chats/create-channel.d.cts +17 -0
  48. package/highlevel/methods/chats/create-group.d.cts +33 -0
  49. package/highlevel/methods/chats/create-supergroup.d.cts +27 -0
  50. package/highlevel/methods/chats/delete-channel.d.cts +8 -0
  51. package/highlevel/methods/chats/delete-chat-photo.d.cts +10 -0
  52. package/highlevel/methods/chats/delete-group.d.cts +8 -0
  53. package/highlevel/methods/chats/delete-history.d.cts +22 -0
  54. package/highlevel/methods/chats/delete-user-history.d.cts +16 -0
  55. package/highlevel/methods/chats/edit-admin-rights.d.cts +16 -0
  56. package/highlevel/methods/chats/get-chat-event-log.d.cts +61 -0
  57. package/highlevel/methods/chats/get-chat-member.d.cts +15 -0
  58. package/highlevel/methods/chats/get-chat-members.d.cts +51 -0
  59. package/highlevel/methods/chats/get-chat-preview.d.cts +12 -0
  60. package/highlevel/methods/chats/get-chat.d.cts +11 -0
  61. package/highlevel/methods/chats/get-full-chat.d.cts +11 -0
  62. package/highlevel/methods/chats/get-full-user.d.cts +8 -0
  63. package/highlevel/methods/chats/get-nearby-chats.d.cts +9 -0
  64. package/highlevel/methods/chats/get-similar-channels.d.cts +12 -0
  65. package/highlevel/methods/chats/get-user.d.cts +8 -0
  66. package/highlevel/methods/chats/iter-chat-event-log.d.cts +26 -0
  67. package/highlevel/methods/chats/iter-chat-members.d.cts +22 -0
  68. package/highlevel/methods/chats/join-chat.d.cts +14 -0
  69. package/highlevel/methods/chats/kick-chat-member.d.cts +15 -0
  70. package/highlevel/methods/chats/leave-chat.d.cts +13 -0
  71. package/highlevel/methods/chats/mark-chat-unread.d.cts +8 -0
  72. package/highlevel/methods/chats/open-chat.d.cts +26 -0
  73. package/highlevel/methods/chats/reorder-usernames.d.cts +8 -0
  74. package/highlevel/methods/chats/restrict-chat-member.d.cts +28 -0
  75. package/highlevel/methods/chats/save-draft.d.cts +10 -0
  76. package/highlevel/methods/chats/set-chat-color.d.cts +38 -0
  77. package/highlevel/methods/chats/set-chat-default-permissions.d.cts +16 -0
  78. package/highlevel/methods/chats/set-chat-description.d.cts +11 -0
  79. package/highlevel/methods/chats/set-chat-photo.d.cts +20 -0
  80. package/highlevel/methods/chats/set-chat-title.d.cts +11 -0
  81. package/highlevel/methods/chats/set-chat-ttl.d.cts +9 -0
  82. package/highlevel/methods/chats/set-chat-username.d.cts +11 -0
  83. package/highlevel/methods/chats/set-slow-mode.d.cts +12 -0
  84. package/highlevel/methods/chats/toggle-content-protection.d.cts +9 -0
  85. package/highlevel/methods/chats/toggle-fragment-username.d.cts +20 -0
  86. package/highlevel/methods/chats/toggle-join-requests.d.cts +12 -0
  87. package/highlevel/methods/chats/toggle-join-to-send.d.cts +12 -0
  88. package/highlevel/methods/chats/unarchive-chats.d.cts +9 -0
  89. package/highlevel/methods/chats/unban-chat-member.d.cts +16 -0
  90. package/highlevel/methods/contacts/add-contact.d.cts +28 -0
  91. package/highlevel/methods/contacts/delete-contacts.d.cts +12 -0
  92. package/highlevel/methods/contacts/get-contacts.d.cts +6 -0
  93. package/highlevel/methods/contacts/import-contacts.d.cts +9 -0
  94. package/highlevel/methods/dialogs/create-folder.d.cts +13 -0
  95. package/highlevel/methods/dialogs/delete-folder.d.cts +8 -0
  96. package/highlevel/methods/dialogs/edit-folder.d.cts +18 -0
  97. package/highlevel/methods/dialogs/find-dialogs.d.cts +12 -0
  98. package/highlevel/methods/dialogs/find-folder.d.cts +19 -0
  99. package/highlevel/methods/dialogs/get-chatlist-preview.d.cts +8 -0
  100. package/highlevel/methods/dialogs/get-folders.d.cts +9 -0
  101. package/highlevel/methods/dialogs/get-peer-dialogs.d.cts +10 -0
  102. package/highlevel/methods/dialogs/iter-dialogs.d.cts +103 -0
  103. package/highlevel/methods/dialogs/join-chatlist.d.cts +15 -0
  104. package/highlevel/methods/dialogs/set-folders-order.d.cts +7 -0
  105. package/highlevel/methods/files/download-buffer.d.cts +11 -0
  106. package/highlevel/methods/files/download-file.d.cts +1 -0
  107. package/highlevel/methods/files/download-iterable.cjs +9 -7
  108. package/highlevel/methods/files/download-iterable.d.cts +10 -0
  109. package/highlevel/methods/files/download-iterable.js +9 -7
  110. package/highlevel/methods/files/download-node-stream.d.cts +1 -0
  111. package/highlevel/methods/files/download-stream.d.cts +9 -0
  112. package/highlevel/methods/files/normalize-file-to-document.d.cts +9 -0
  113. package/highlevel/methods/files/normalize-input-file.d.cts +13 -0
  114. package/highlevel/methods/files/normalize-input-media.d.cts +12 -0
  115. package/highlevel/methods/files/upload-file.d.cts +72 -0
  116. package/highlevel/methods/files/upload-media.d.cts +28 -0
  117. package/highlevel/methods/forums/create-forum-topic.d.cts +36 -0
  118. package/highlevel/methods/forums/delete-forum-topic-history.d.cts +15 -0
  119. package/highlevel/methods/forums/edit-forum-topic.d.cts +34 -0
  120. package/highlevel/methods/forums/get-forum-topics-by-id.d.cts +9 -0
  121. package/highlevel/methods/forums/get-forum-topics.d.cts +28 -0
  122. package/highlevel/methods/forums/iter-forum-topics.d.cts +20 -0
  123. package/highlevel/methods/forums/reorder-pinned-forum-topics.d.cts +19 -0
  124. package/highlevel/methods/forums/toggle-forum-topic-closed.d.cts +22 -0
  125. package/highlevel/methods/forums/toggle-forum-topic-pinned.d.cts +15 -0
  126. package/highlevel/methods/forums/toggle-forum.d.cts +11 -0
  127. package/highlevel/methods/forums/toggle-general-topic-hidden.d.cts +20 -0
  128. package/highlevel/methods/invite-links/create-invite-link.d.cts +38 -0
  129. package/highlevel/methods/invite-links/edit-invite-link.d.cts +36 -0
  130. package/highlevel/methods/invite-links/export-invite-link.d.cts +12 -0
  131. package/highlevel/methods/invite-links/get-invite-link-members.d.cts +45 -0
  132. package/highlevel/methods/invite-links/get-invite-link.d.cts +9 -0
  133. package/highlevel/methods/invite-links/get-invite-links.d.cts +39 -0
  134. package/highlevel/methods/invite-links/get-primary-invite-link.d.cts +8 -0
  135. package/highlevel/methods/invite-links/hide-all-join-requests.d.cts +13 -0
  136. package/highlevel/methods/invite-links/hide-join-request.d.cts +13 -0
  137. package/highlevel/methods/invite-links/iter-invite-link-members.d.cts +25 -0
  138. package/highlevel/methods/invite-links/iter-invite-links.d.cts +27 -0
  139. package/highlevel/methods/invite-links/revoke-invite-link.d.cts +13 -0
  140. package/highlevel/methods/messages/_business-connection.d.cts +8 -0
  141. package/highlevel/methods/messages/close-poll.d.cts +15 -0
  142. package/highlevel/methods/messages/delete-messages.d.cts +29 -0
  143. package/highlevel/methods/messages/delete-scheduled-messages.d.cts +9 -0
  144. package/highlevel/methods/messages/edit-inline-message.d.cts +51 -0
  145. package/highlevel/methods/messages/edit-message.d.cts +55 -0
  146. package/highlevel/methods/messages/find-in-update.d.cts +13 -0
  147. package/highlevel/methods/messages/forward-messages.d.cts +84 -0
  148. package/highlevel/methods/messages/get-all-scheduled-messages.d.cts +8 -0
  149. package/highlevel/methods/messages/get-available-effects.d.cts +6 -0
  150. package/highlevel/methods/messages/get-callback-query-message.d.cts +14 -0
  151. package/highlevel/methods/messages/get-discussion-message.d.cts +21 -0
  152. package/highlevel/methods/messages/get-fact-check.d.cts +11 -0
  153. package/highlevel/methods/messages/get-history.d.cts +59 -0
  154. package/highlevel/methods/messages/get-message-by-link.d.cts +6 -0
  155. package/highlevel/methods/messages/get-message-group.d.cts +9 -0
  156. package/highlevel/methods/messages/get-message-reactions.d.cts +28 -0
  157. package/highlevel/methods/messages/get-messages-unsafe.d.cts +19 -0
  158. package/highlevel/methods/messages/get-messages.d.cts +17 -0
  159. package/highlevel/methods/messages/get-reaction-users.d.cts +24 -0
  160. package/highlevel/methods/messages/get-reply-to.d.cts +10 -0
  161. package/highlevel/methods/messages/get-scheduled-messages.d.cts +13 -0
  162. package/highlevel/methods/messages/iter-history.d.cts +23 -0
  163. package/highlevel/methods/messages/iter-reaction-users.d.cts +26 -0
  164. package/highlevel/methods/messages/iter-search-global.d.cts +27 -0
  165. package/highlevel/methods/messages/iter-search-messages.d.cts +26 -0
  166. package/highlevel/methods/messages/pin-message.d.cts +21 -0
  167. package/highlevel/methods/messages/read-history.d.cts +24 -0
  168. package/highlevel/methods/messages/read-reactions.d.cts +14 -0
  169. package/highlevel/methods/messages/search-global.d.cts +51 -0
  170. package/highlevel/methods/messages/search-hashtag.d.cts +44 -0
  171. package/highlevel/methods/messages/search-messages.d.cts +93 -0
  172. package/highlevel/methods/messages/send-answer.d.cts +12 -0
  173. package/highlevel/methods/messages/send-comment.d.cts +39 -0
  174. package/highlevel/methods/messages/send-common.d.cts +122 -0
  175. package/highlevel/methods/messages/send-copy-group.d.cts +21 -0
  176. package/highlevel/methods/messages/send-copy.d.cts +32 -0
  177. package/highlevel/methods/messages/send-media-group.d.cts +35 -0
  178. package/highlevel/methods/messages/send-media.d.cts +48 -0
  179. package/highlevel/methods/messages/send-paid-reaction.d.cts +24 -0
  180. package/highlevel/methods/messages/send-quote.d.cts +33 -0
  181. package/highlevel/methods/messages/send-reaction.d.cts +21 -0
  182. package/highlevel/methods/messages/send-reply.d.cts +12 -0
  183. package/highlevel/methods/messages/send-scheduled.d.cts +14 -0
  184. package/highlevel/methods/messages/send-text.d.cts +31 -0
  185. package/highlevel/methods/messages/send-text.test.d.cts +1 -0
  186. package/highlevel/methods/messages/send-typing.d.cts +32 -0
  187. package/highlevel/methods/messages/send-vote.d.cts +15 -0
  188. package/highlevel/methods/messages/set-typing.d.cts +33 -0
  189. package/highlevel/methods/messages/translate-message.d.cts +11 -0
  190. package/highlevel/methods/messages/translate-text.d.cts +9 -0
  191. package/highlevel/methods/messages/unpin-all-messages.d.cts +18 -0
  192. package/highlevel/methods/messages/unpin-message.d.cts +12 -0
  193. package/highlevel/methods/misc/chain-id.d.cts +4 -0
  194. package/highlevel/methods/misc/get-collectible-info.d.cts +6 -0
  195. package/highlevel/methods/misc/init-takeout-session.d.cts +9 -0
  196. package/highlevel/methods/misc/normalize-privacy-rules.d.cts +8 -0
  197. package/highlevel/methods/misc/normalize-text.d.cts +5 -0
  198. package/highlevel/methods/misc/with-params.d.cts +10 -0
  199. package/highlevel/methods/password/change-cloud-password.d.cts +12 -0
  200. package/highlevel/methods/password/enable-cloud-password.d.cts +17 -0
  201. package/highlevel/methods/password/password-email.d.cts +15 -0
  202. package/highlevel/methods/password/remove-cloud-password.d.cts +7 -0
  203. package/highlevel/methods/premium/accept-star-gift.d.cts +16 -0
  204. package/highlevel/methods/premium/apply-boost.d.cts +8 -0
  205. package/highlevel/methods/premium/can-apply-boost.d.cts +29 -0
  206. package/highlevel/methods/premium/create-business-chat-link.d.cts +12 -0
  207. package/highlevel/methods/premium/edit-business-chat-link.d.cts +20 -0
  208. package/highlevel/methods/premium/get-boost-stats.d.cts +9 -0
  209. package/highlevel/methods/premium/get-boosts.d.cts +18 -0
  210. package/highlevel/methods/premium/get-business-chat-links.d.cts +6 -0
  211. package/highlevel/methods/premium/get-business-connection.d.cts +8 -0
  212. package/highlevel/methods/premium/get-my-boost-slots.d.cts +9 -0
  213. package/highlevel/methods/premium/get-star-gift-options.d.cts +6 -0
  214. package/highlevel/methods/premium/get-star-gifts.d.cts +22 -0
  215. package/highlevel/methods/premium/get-stars-transactions.d.cts +34 -0
  216. package/highlevel/methods/premium/iter-boosters.d.cts +24 -0
  217. package/highlevel/methods/premium/iter-star-gifts.d.cts +26 -0
  218. package/highlevel/methods/premium/iter-stars-transactions.d.cts +29 -0
  219. package/highlevel/methods/premium/send-star-gift.d.cts +35 -0
  220. package/highlevel/methods/premium/set-business-intro.d.cts +22 -0
  221. package/highlevel/methods/premium/set-business-work-hours.d.cts +18 -0
  222. package/highlevel/methods/stickers/_utils.d.cts +10 -0
  223. package/highlevel/methods/stickers/add-sticker-to-set.d.cts +21 -0
  224. package/highlevel/methods/stickers/create-sticker-set.d.cts +66 -0
  225. package/highlevel/methods/stickers/delete-sticker-from-set.d.cts +15 -0
  226. package/highlevel/methods/stickers/get-custom-emojis.d.cts +14 -0
  227. package/highlevel/methods/stickers/get-installed-stickers.d.cts +10 -0
  228. package/highlevel/methods/stickers/get-my-sticker-sets.d.cts +13 -0
  229. package/highlevel/methods/stickers/get-sticker-set.d.cts +8 -0
  230. package/highlevel/methods/stickers/move-sticker-in-set.d.cts +17 -0
  231. package/highlevel/methods/stickers/replace-sticker-in-set.d.cts +24 -0
  232. package/highlevel/methods/stickers/set-chat-sticker-set.d.cts +11 -0
  233. package/highlevel/methods/stickers/set-sticker-set-thumb.d.cts +20 -0
  234. package/highlevel/methods/stories/can-send-story.d.cts +13 -0
  235. package/highlevel/methods/stories/delete-stories.d.cts +20 -0
  236. package/highlevel/methods/stories/edit-story.d.cts +38 -0
  237. package/highlevel/methods/stories/find-in-update.d.cts +5 -0
  238. package/highlevel/methods/stories/get-all-stories.d.cts +15 -0
  239. package/highlevel/methods/stories/get-peer-stories.d.cts +8 -0
  240. package/highlevel/methods/stories/get-profile-stories.d.cts +25 -0
  241. package/highlevel/methods/stories/get-stories-by-id.d.cts +10 -0
  242. package/highlevel/methods/stories/get-stories-interactions.d.cts +9 -0
  243. package/highlevel/methods/stories/get-story-link.d.cts +11 -0
  244. package/highlevel/methods/stories/get-story-viewers.d.cts +33 -0
  245. package/highlevel/methods/stories/hide-my-stories-views.d.cts +21 -0
  246. package/highlevel/methods/stories/increment-stories-views.d.cts +13 -0
  247. package/highlevel/methods/stories/iter-all-stories.d.cts +16 -0
  248. package/highlevel/methods/stories/iter-profile-stories.d.cts +21 -0
  249. package/highlevel/methods/stories/iter-story-viewers.d.cts +22 -0
  250. package/highlevel/methods/stories/read-stories.d.cts +11 -0
  251. package/highlevel/methods/stories/send-story-reaction.d.cts +14 -0
  252. package/highlevel/methods/stories/send-story.d.cts +51 -0
  253. package/highlevel/methods/stories/toggle-peer-stories-archived.d.cts +8 -0
  254. package/highlevel/methods/stories/toggle-stories-pinned.d.cts +24 -0
  255. package/highlevel/methods/users/block-user.d.cts +8 -0
  256. package/highlevel/methods/users/delete-profile-photos.d.cts +9 -0
  257. package/highlevel/methods/users/edit-close-friends.d.cts +14 -0
  258. package/highlevel/methods/users/get-common-chats.d.cts +9 -0
  259. package/highlevel/methods/users/get-global-ttl.d.cts +5 -0
  260. package/highlevel/methods/users/get-me.d.cts +6 -0
  261. package/highlevel/methods/users/get-my-username.d.cts +8 -0
  262. package/highlevel/methods/users/get-profile-photo.d.cts +11 -0
  263. package/highlevel/methods/users/get-profile-photos.d.cts +22 -0
  264. package/highlevel/methods/users/get-users.d.cts +12 -0
  265. package/highlevel/methods/users/get-users.test.d.cts +1 -0
  266. package/highlevel/methods/users/is-peer-available.d.cts +20 -0
  267. package/highlevel/methods/users/iter-profile-photos.d.cts +23 -0
  268. package/highlevel/methods/users/resolve-peer-many.d.cts +26 -0
  269. package/highlevel/methods/users/resolve-peer.d.cts +20 -0
  270. package/highlevel/methods/users/resolve-peer.test.d.cts +1 -0
  271. package/highlevel/methods/users/set-emoji-status.d.cts +32 -0
  272. package/highlevel/methods/users/set-global-ttl.d.cts +8 -0
  273. package/highlevel/methods/users/set-my-birthday.d.cts +12 -0
  274. package/highlevel/methods/users/set-my-profile-photo.d.cts +16 -0
  275. package/highlevel/methods/users/set-my-username.d.cts +11 -0
  276. package/highlevel/methods/users/set-online.d.cts +19 -0
  277. package/highlevel/methods/users/unblock-user.d.cts +8 -0
  278. package/highlevel/methods/users/update-profile.d.cts +23 -0
  279. package/highlevel/methods.d.cts +291 -0
  280. package/highlevel/storage/index.d.cts +4 -0
  281. package/highlevel/storage/provider.d.cts +7 -0
  282. package/highlevel/storage/repository/peers.d.cts +44 -0
  283. package/highlevel/storage/repository/ref-messages.d.cts +20 -0
  284. package/highlevel/storage/service/current-user.d.cts +23 -0
  285. package/highlevel/storage/service/peers.d.cts +23 -0
  286. package/highlevel/storage/service/ref-messages.d.cts +15 -0
  287. package/highlevel/storage/service/updates.d.cts +16 -0
  288. package/highlevel/storage/storage.d.cts +27 -0
  289. package/highlevel/types/auth/index.d.cts +1 -0
  290. package/highlevel/types/auth/sent-code.d.cts +56 -0
  291. package/highlevel/types/bots/command-scope/index.d.cts +10 -0
  292. package/highlevel/types/bots/command-scope/inner.d.cts +54 -0
  293. package/highlevel/types/bots/game-high-score.d.cts +23 -0
  294. package/highlevel/types/bots/index.d.cts +6 -0
  295. package/highlevel/types/bots/inline-message/factories.d.cts +47 -0
  296. package/highlevel/types/bots/inline-message/index.d.cts +3 -0
  297. package/highlevel/types/bots/inline-message/types.d.cts +114 -0
  298. package/highlevel/types/bots/inline-result/factories.d.cts +97 -0
  299. package/highlevel/types/bots/inline-result/index.d.cts +3 -0
  300. package/highlevel/types/bots/inline-result/types.d.cts +417 -0
  301. package/highlevel/types/bots/keyboards/builder.d.cts +38 -0
  302. package/highlevel/types/bots/keyboards/builder.test.d.cts +1 -0
  303. package/highlevel/types/bots/keyboards/factories.d.cts +208 -0
  304. package/highlevel/types/bots/keyboards/index.d.cts +15 -0
  305. package/highlevel/types/bots/keyboards/keyboards.test.d.cts +1 -0
  306. package/highlevel/types/bots/keyboards/types.d.cts +34 -0
  307. package/highlevel/types/bots/webview.d.cts +114 -0
  308. package/highlevel/types/calls/discard-reason.d.cts +13 -0
  309. package/highlevel/types/calls/index.d.cts +1 -0
  310. package/highlevel/types/conversation.d.cts +210 -0
  311. package/highlevel/types/errors.d.cts +33 -0
  312. package/highlevel/types/files/file-location.d.cts +48 -0
  313. package/highlevel/types/files/index.d.cts +4 -0
  314. package/highlevel/types/files/uploaded-file.d.cts +24 -0
  315. package/highlevel/types/files/utils.d.cts +89 -0
  316. package/highlevel/types/files/web-document.d.cts +32 -0
  317. package/highlevel/types/index.d.cts +15 -0
  318. package/highlevel/types/media/audio.d.cts +31 -0
  319. package/highlevel/types/media/contact.d.cts +31 -0
  320. package/highlevel/types/media/dice.d.cts +155 -0
  321. package/highlevel/types/media/document-utils.d.cts +11 -0
  322. package/highlevel/types/media/document.d.cts +75 -0
  323. package/highlevel/types/media/extended-media.d.cts +20 -0
  324. package/highlevel/types/media/game.d.cts +38 -0
  325. package/highlevel/types/media/index.d.cts +19 -0
  326. package/highlevel/types/media/input-media/factories.d.cts +142 -0
  327. package/highlevel/types/media/input-media/index.d.cts +3 -0
  328. package/highlevel/types/media/input-media/types.d.cts +520 -0
  329. package/highlevel/types/media/invoice.d.cts +89 -0
  330. package/highlevel/types/media/location.d.cts +83 -0
  331. package/highlevel/types/media/paid-media.d.cts +33 -0
  332. package/highlevel/types/media/photo.d.cts +72 -0
  333. package/highlevel/types/media/poll.d.cts +110 -0
  334. package/highlevel/types/media/sticker.d.cts +123 -0
  335. package/highlevel/types/media/story.d.cts +33 -0
  336. package/highlevel/types/media/thumbnail.d.cts +70 -0
  337. package/highlevel/types/media/venue.d.cts +58 -0
  338. package/highlevel/types/media/video.d.cts +48 -0
  339. package/highlevel/types/media/voice.d.cts +23 -0
  340. package/highlevel/types/media/web-page.d.cts +151 -0
  341. package/highlevel/types/messages/dialog.d.cts +110 -0
  342. package/highlevel/types/messages/draft-message.d.cts +29 -0
  343. package/highlevel/types/messages/fact-check.d.cts +30 -0
  344. package/highlevel/types/messages/index.d.cts +14 -0
  345. package/highlevel/types/messages/input-message-id.d.cts +20 -0
  346. package/highlevel/types/messages/message-action.d.cts +420 -0
  347. package/highlevel/types/messages/message-effect.d.cts +20 -0
  348. package/highlevel/types/messages/message-entity.d.cts +89 -0
  349. package/highlevel/types/messages/message-forward.d.cts +39 -0
  350. package/highlevel/types/messages/message-media.d.cts +23 -0
  351. package/highlevel/types/messages/message-reactions.d.cts +31 -0
  352. package/highlevel/types/messages/message-replies.d.cts +42 -0
  353. package/highlevel/types/messages/message.d.cts +249 -0
  354. package/highlevel/types/messages/replied-message.d.cts +103 -0
  355. package/highlevel/types/messages/search-filters.d.cts +82 -0
  356. package/highlevel/types/misc/app-config.d.cts +887 -0
  357. package/highlevel/types/misc/collectible-info.d.cts +27 -0
  358. package/highlevel/types/misc/entities.d.cts +22 -0
  359. package/highlevel/types/misc/index.d.cts +6 -0
  360. package/highlevel/types/misc/input-privacy-rule/allow.d.cts +22 -0
  361. package/highlevel/types/misc/input-privacy-rule/bundle.d.cts +3 -0
  362. package/highlevel/types/misc/input-privacy-rule/disallow.d.cts +20 -0
  363. package/highlevel/types/misc/input-privacy-rule/index.d.cts +3 -0
  364. package/highlevel/types/misc/input-privacy-rule/types.d.cts +11 -0
  365. package/highlevel/types/misc/sticker-set.d.cts +154 -0
  366. package/highlevel/types/misc/takeout-session.d.cts +49 -0
  367. package/highlevel/types/peers/bot-info.d.cts +21 -0
  368. package/highlevel/types/peers/chat-colors.d.cts +25 -0
  369. package/highlevel/types/peers/chat-event/actions.d.cts +279 -0
  370. package/highlevel/types/peers/chat-event/filters.d.cts +10 -0
  371. package/highlevel/types/peers/chat-event/index.d.cts +27 -0
  372. package/highlevel/types/peers/chat-invite-link-member.d.cts +33 -0
  373. package/highlevel/types/peers/chat-invite-link.d.cts +72 -0
  374. package/highlevel/types/peers/chat-location.d.cts +17 -0
  375. package/highlevel/types/peers/chat-member.d.cts +86 -0
  376. package/highlevel/types/peers/chat-permissions.d.cts +127 -0
  377. package/highlevel/types/peers/chat-photo.d.cts +39 -0
  378. package/highlevel/types/peers/chat-preview.d.cts +55 -0
  379. package/highlevel/types/peers/chat.d.cts +250 -0
  380. package/highlevel/types/peers/chatlist-preview.d.cts +21 -0
  381. package/highlevel/types/peers/forum-topic.d.cts +96 -0
  382. package/highlevel/types/peers/full-chat.cjs +1 -1
  383. package/highlevel/types/peers/full-chat.d.cts +161 -0
  384. package/highlevel/types/peers/full-chat.js +1 -1
  385. package/highlevel/types/peers/full-user.d.cts +115 -0
  386. package/highlevel/types/peers/index.d.cts +19 -0
  387. package/highlevel/types/peers/index.d.ts +1 -0
  388. package/highlevel/types/peers/peer.d.cts +49 -0
  389. package/highlevel/types/peers/peers-index.d.cts +15 -0
  390. package/highlevel/types/peers/peers-index.test.d.cts +1 -0
  391. package/highlevel/types/peers/typing-status.d.cts +26 -0
  392. package/highlevel/types/peers/user.d.cts +268 -0
  393. package/highlevel/types/peers/user.test.d.cts +1 -0
  394. package/highlevel/types/premium/boost-slot.d.cts +37 -0
  395. package/highlevel/types/premium/boost-stats.d.cts +54 -0
  396. package/highlevel/types/premium/boost.d.cts +56 -0
  397. package/highlevel/types/premium/boost.d.ts +1 -2
  398. package/highlevel/types/premium/business-account.d.cts +19 -0
  399. package/highlevel/types/premium/business-chat-link.d.cts +19 -0
  400. package/highlevel/types/premium/business-connection.d.cts +23 -0
  401. package/highlevel/types/premium/business-intro.d.cts +22 -0
  402. package/highlevel/types/premium/business-location.d.cts +10 -0
  403. package/highlevel/types/premium/business-work-hours.d.cts +42 -0
  404. package/highlevel/types/premium/business-work-hours.test.d.cts +1 -0
  405. package/highlevel/types/premium/index.d.cts +12 -0
  406. package/highlevel/types/premium/index.d.ts +1 -0
  407. package/highlevel/types/premium/stars-gift.d.cts +68 -0
  408. package/highlevel/types/premium/stars-status.d.cts +16 -0
  409. package/highlevel/types/premium/stars-status.d.ts +1 -1
  410. package/highlevel/types/premium/stars-transaction.cjs +7 -3
  411. package/highlevel/types/premium/stars-transaction.d.cts +134 -0
  412. package/highlevel/types/premium/stars-transaction.d.ts +1 -1
  413. package/highlevel/types/premium/stars-transaction.js +7 -3
  414. package/highlevel/types/reactions/emoji-status.d.cts +12 -0
  415. package/highlevel/types/reactions/index.d.cts +4 -0
  416. package/highlevel/types/reactions/index.d.ts +2 -0
  417. package/highlevel/types/reactions/peer-reaction.d.cts +53 -0
  418. package/highlevel/types/reactions/reaction-count.d.cts +25 -0
  419. package/highlevel/types/reactions/types.d.cts +16 -0
  420. package/highlevel/types/stories/all-stories.d.cts +28 -0
  421. package/highlevel/types/stories/index.d.cts +7 -0
  422. package/highlevel/types/stories/interactive/base.d.cts +16 -0
  423. package/highlevel/types/stories/interactive/channel-post.d.cts +17 -0
  424. package/highlevel/types/stories/interactive/index.d.cts +12 -0
  425. package/highlevel/types/stories/interactive/input.d.cts +68 -0
  426. package/highlevel/types/stories/interactive/location.d.cts +15 -0
  427. package/highlevel/types/stories/interactive/reaction.d.cts +21 -0
  428. package/highlevel/types/stories/interactive/url.d.cts +11 -0
  429. package/highlevel/types/stories/interactive/venue.d.cts +28 -0
  430. package/highlevel/types/stories/interactive/weather.d.cts +15 -0
  431. package/highlevel/types/stories/peer-stories.d.cts +20 -0
  432. package/highlevel/types/stories/stealth-mode.d.cts +9 -0
  433. package/highlevel/types/stories/story-interactions.d.cts +34 -0
  434. package/highlevel/types/stories/story-viewer.d.cts +75 -0
  435. package/highlevel/types/stories/story.d.cts +79 -0
  436. package/highlevel/types/updates/bot-chat-join-request.d.cts +42 -0
  437. package/highlevel/types/updates/bot-reaction.d.cts +71 -0
  438. package/highlevel/types/updates/bot-stopped.d.cts +28 -0
  439. package/highlevel/types/updates/business-message.d.cts +18 -0
  440. package/highlevel/types/updates/callback-query.d.cts +95 -0
  441. package/highlevel/types/updates/chat-join-request.d.cts +30 -0
  442. package/highlevel/types/updates/chat-member-update.cjs +1 -0
  443. package/highlevel/types/updates/chat-member-update.d.cts +76 -0
  444. package/highlevel/types/updates/chat-member-update.js +1 -0
  445. package/highlevel/types/updates/chosen-inline-result.d.cts +50 -0
  446. package/highlevel/types/updates/delete-business-message-update.d.cts +21 -0
  447. package/highlevel/types/updates/delete-message-update.d.cts +16 -0
  448. package/highlevel/types/updates/delete-story-update.d.cts +18 -0
  449. package/highlevel/types/updates/history-read-update.d.cts +39 -0
  450. package/highlevel/types/updates/index.d.cts +107 -0
  451. package/highlevel/types/updates/inline-query.d.cts +42 -0
  452. package/highlevel/types/updates/parse-update.d.cts +4 -0
  453. package/highlevel/types/updates/poll-update.d.cts +39 -0
  454. package/highlevel/types/updates/poll-vote.d.cts +52 -0
  455. package/highlevel/types/updates/pre-checkout-query.d.cts +36 -0
  456. package/highlevel/types/updates/story-update.d.cts +22 -0
  457. package/highlevel/types/updates/user-status-update.d.cts +28 -0
  458. package/highlevel/types/updates/user-typing-update.d.cts +31 -0
  459. package/highlevel/types/utils.d.cts +12 -0
  460. package/highlevel/updates/index.d.cts +2 -0
  461. package/highlevel/updates/manager.d.cts +121 -0
  462. package/highlevel/updates/parsed.d.cts +26 -0
  463. package/highlevel/updates/types.d.cts +147 -0
  464. package/highlevel/updates/utils.d.cts +21 -0
  465. package/highlevel/utils/convert-file-id.d.cts +46 -0
  466. package/highlevel/utils/entities.d.cts +19 -0
  467. package/highlevel/utils/entities.test.d.cts +1 -0
  468. package/highlevel/utils/file-type.d.cts +2 -0
  469. package/highlevel/utils/file-type.test.d.cts +1 -0
  470. package/highlevel/utils/file-utils.d.cts +31 -0
  471. package/highlevel/utils/file-utils.test.d.cts +1 -0
  472. package/highlevel/utils/index.d.cts +11 -0
  473. package/highlevel/utils/inline-utils.d.cts +14 -0
  474. package/highlevel/utils/inline-utils.test.d.cts +1 -0
  475. package/highlevel/utils/inspectable.d.cts +9 -0
  476. package/highlevel/utils/inspectable.test.d.cts +1 -0
  477. package/highlevel/utils/memoize.d.cts +1 -0
  478. package/highlevel/utils/memoize.test.d.cts +1 -0
  479. package/highlevel/utils/misc-utils.d.cts +12 -0
  480. package/highlevel/utils/peer-utils.d.cts +11 -0
  481. package/highlevel/utils/peer-utils.test.d.cts +1 -0
  482. package/highlevel/utils/query-batcher.d.cts +49 -0
  483. package/highlevel/utils/query-batcher.test.d.cts +1 -0
  484. package/highlevel/utils/rps-meter.d.cts +9 -0
  485. package/highlevel/utils/stream-utils.d.cts +1 -0
  486. package/highlevel/utils/string-session.d.cts +16 -0
  487. package/highlevel/utils/string-session.test.d.cts +1 -0
  488. package/highlevel/utils/voice-utils.d.cts +14 -0
  489. package/highlevel/utils/voice-utils.test.d.cts +1 -0
  490. package/highlevel/worker/app-config.d.cts +9 -0
  491. package/highlevel/worker/errors.d.cts +8 -0
  492. package/highlevel/worker/index.d.cts +3 -0
  493. package/highlevel/worker/invoker.d.cts +18 -0
  494. package/highlevel/worker/port.d.cts +60 -0
  495. package/highlevel/worker/protocol.d.cts +57 -0
  496. package/highlevel/worker/storage.d.cts +39 -0
  497. package/highlevel/worker/worker.d.cts +15 -0
  498. package/index.cjs +8 -0
  499. package/index.d.cts +10 -0
  500. package/index.js +8 -0
  501. package/methods.d.cts +1 -0
  502. package/network/auth-key.d.cts +21 -0
  503. package/network/auth-key.test.d.cts +1 -0
  504. package/network/authorization.d.cts +9 -0
  505. package/network/client.d.cts +218 -0
  506. package/network/config-manager.d.cts +19 -0
  507. package/network/config-manager.test.d.cts +1 -0
  508. package/network/index.d.cts +6 -0
  509. package/network/middlewares/bundle.d.cts +3 -0
  510. package/network/middlewares/default.d.cts +8 -0
  511. package/network/middlewares/flood-waiter.d.cts +37 -0
  512. package/network/middlewares/index.d.cts +4 -0
  513. package/network/middlewares/index.d.ts +2 -0
  514. package/network/middlewares/internal-errors.d.cts +17 -0
  515. package/network/middlewares/on-error.d.cts +30 -0
  516. package/network/middlewares/on-method.d.cts +39 -0
  517. package/network/mtproto-session.d.cts +127 -0
  518. package/network/mtproxy/_fake-tls.d.cts +22 -0
  519. package/network/mtproxy/index.d.cts +42 -0
  520. package/network/multi-session-connection.cjs +25 -43
  521. package/network/multi-session-connection.d.cts +43 -0
  522. package/network/multi-session-connection.d.ts +5 -5
  523. package/network/multi-session-connection.js +25 -43
  524. package/network/network-manager.cjs +7 -20
  525. package/network/network-manager.d.cts +256 -0
  526. package/network/network-manager.js +7 -20
  527. package/network/persistent-connection.cjs +8 -0
  528. package/network/persistent-connection.d.cts +55 -0
  529. package/network/persistent-connection.d.ts +3 -1
  530. package/network/persistent-connection.js +8 -0
  531. package/network/server-salt.d.cts +12 -0
  532. package/network/session-connection.cjs +35 -18
  533. package/network/session-connection.d.cts +94 -0
  534. package/network/session-connection.d.ts +5 -3
  535. package/network/session-connection.js +35 -18
  536. package/network/transports/abstract.d.cts +47 -0
  537. package/network/transports/index.d.cts +3 -0
  538. package/network/transports/intermediate.d.cts +23 -0
  539. package/network/transports/intermediate.test.d.cts +1 -0
  540. package/network/transports/obfuscated.d.cts +23 -0
  541. package/network/transports/obfuscated.test.d.cts +1 -0
  542. package/package.json +13 -13
  543. package/storage/driver.d.cts +58 -0
  544. package/storage/index.d.cts +6 -0
  545. package/storage/memory/driver.d.cts +6 -0
  546. package/storage/memory/index.d.cts +22 -0
  547. package/storage/memory/memory.test.d.cts +1 -0
  548. package/storage/memory/repository/auth-keys.d.cts +19 -0
  549. package/storage/memory/repository/kv.d.cts +11 -0
  550. package/storage/memory/repository/peers.d.cts +18 -0
  551. package/storage/memory/repository/ref-messages.d.cts +16 -0
  552. package/storage/provider.d.cts +10 -0
  553. package/storage/repository/auth-keys.d.cts +41 -0
  554. package/storage/repository/index.d.cts +2 -0
  555. package/storage/repository/key-value.d.cts +10 -0
  556. package/storage/service/auth-keys.d.cts +9 -0
  557. package/storage/service/auth-keys.test.d.cts +1 -0
  558. package/storage/service/base.d.cts +19 -0
  559. package/storage/service/default-dcs.d.cts +10 -0
  560. package/storage/service/future-salts.d.cts +11 -0
  561. package/storage/service/updates.test.d.cts +1 -0
  562. package/storage/service/utils.test-utils.d.cts +2 -0
  563. package/storage/sqlite/driver.d.cts +24 -0
  564. package/storage/sqlite/index.d.cts +17 -0
  565. package/storage/sqlite/repository/auth-keys.d.cts +20 -0
  566. package/storage/sqlite/repository/kv.d.cts +14 -0
  567. package/storage/sqlite/repository/peers.d.cts +19 -0
  568. package/storage/sqlite/repository/ref-messages.d.cts +16 -0
  569. package/storage/sqlite/types.d.cts +18 -0
  570. package/storage/storage.d.cts +55 -0
  571. package/types/errors.d.cts +53 -0
  572. package/types/index.d.cts +4 -0
  573. package/types/peers.d.cts +4 -0
  574. package/types/platform.d.cts +15 -0
  575. package/types/utils.d.cts +9 -0
  576. package/utils/abort-signal.d.cts +1 -0
  577. package/utils/bigint-utils.d.cts +18 -0
  578. package/utils/bigint-utils.test.d.cts +1 -0
  579. package/utils/binary/asn1-parser.d.cts +17 -0
  580. package/utils/crypto/abstract.d.cts +29 -0
  581. package/utils/crypto/factorization.d.cts +6 -0
  582. package/utils/crypto/factorization.test.d.cts +1 -0
  583. package/utils/crypto/index.d.cts +6 -0
  584. package/utils/crypto/keys.d.cts +27 -0
  585. package/utils/crypto/keys.test.d.cts +1 -0
  586. package/utils/crypto/miller-rabin.d.cts +2 -0
  587. package/utils/crypto/miller-rabin.test.d.cts +1 -0
  588. package/utils/crypto/mtproto.d.cts +31 -0
  589. package/utils/crypto/mtproto.test.d.cts +1 -0
  590. package/utils/crypto/password.d.cts +29 -0
  591. package/utils/crypto/password.test.d.cts +1 -0
  592. package/utils/dcs.d.cts +18 -0
  593. package/utils/early-timer.d.cts +41 -0
  594. package/utils/error-reporting.d.cts +3 -0
  595. package/utils/function-utils.d.cts +22 -0
  596. package/utils/function-utils.test.d.cts +1 -0
  597. package/utils/index.d.cts +20 -0
  598. package/utils/linked-list.d.cts +21 -0
  599. package/utils/linked-list.test.d.cts +1 -0
  600. package/utils/links/bots.d.cts +72 -0
  601. package/utils/links/bots.test.d.cts +1 -0
  602. package/utils/links/bundle.d.cts +7 -0
  603. package/utils/links/calls.d.cts +17 -0
  604. package/utils/links/chat.d.cts +47 -0
  605. package/utils/links/chat.test.d.cts +1 -0
  606. package/utils/links/common.d.cts +31 -0
  607. package/utils/links/index.d.cts +2 -0
  608. package/utils/links/misc.d.cts +26 -0
  609. package/utils/links/misc.test.d.cts +1 -0
  610. package/utils/links/proxy.d.cts +18 -0
  611. package/utils/links/proxy.test.d.cts +1 -0
  612. package/utils/links/stickers.d.cts +10 -0
  613. package/utils/links/user.d.cts +28 -0
  614. package/utils/links/user.test.d.cts +1 -0
  615. package/utils/logger.d.cts +54 -0
  616. package/utils/logger.test.d.cts +1 -0
  617. package/utils/long-utils.d.cts +67 -0
  618. package/utils/long-utils.test.d.cts +1 -0
  619. package/utils/misc-utils.d.cts +2 -0
  620. package/utils/peer-utils.d.cts +29 -0
  621. package/utils/peer-utils.test.d.cts +1 -0
  622. package/utils/sorted-array.d.cts +17 -0
  623. package/utils/sorted-array.test.d.cts +1 -0
  624. package/utils/timers.d.cts +1 -0
  625. package/utils/tl-json.d.cts +13 -0
  626. package/utils/tl-json.test.d.cts +1 -0
  627. package/utils/type-assertions.d.cts +29 -0
  628. package/utils/type-assertions.test.d.cts +1 -0
  629. package/utils.d.cts +1 -0
  630. package/worker.d.cts +1 -0
@@ -0,0 +1,94 @@
1
+ import { mtp, tl } from '@mtcute/tl';
2
+ import { TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime';
3
+ import { ICorePlatform } from '../types/platform.js';
4
+ import { Logger } from '../utils/index.js';
5
+ import { PersistentConnectionParams, PersistentConnection } from './persistent-connection.js';
6
+ import { ServerSaltManager } from './server-salt.js';
7
+ import { Emitter } from '@fuman/utils';
8
+ import { MtprotoSession } from './mtproto-session.js';
9
+ export interface SessionConnectionParams extends PersistentConnectionParams {
10
+ initConnection: tl.RawInitConnectionRequest;
11
+ inactivityTimeout?: number;
12
+ pingInterval: number;
13
+ enableErrorReporting: boolean;
14
+ layer: number;
15
+ disableUpdates?: boolean;
16
+ withUpdates?: boolean;
17
+ isMainConnection: boolean;
18
+ isMainDcConnection: boolean;
19
+ usePfs?: boolean;
20
+ salts: ServerSaltManager;
21
+ readerMap: TlReaderMap;
22
+ writerMap: TlWriterMap;
23
+ platform: ICorePlatform;
24
+ }
25
+ /**
26
+ * A connection to a single DC.
27
+ */
28
+ export declare class SessionConnection extends PersistentConnection {
29
+ readonly params: SessionConnectionParams;
30
+ private _flushTimer;
31
+ private _queuedDestroySession;
32
+ private _pendingWaitForUnencrypted;
33
+ private _usePfs;
34
+ private _isPfsBindingPending;
35
+ private _isPfsBindingPendingInBackground;
36
+ private _pfsUpdateTimeout?;
37
+ private _inactivityPendingFlush;
38
+ private _readerMap;
39
+ private _writerMap;
40
+ private _crypto;
41
+ private _salts;
42
+ readonly _session: MtprotoSession;
43
+ private _pingInterval;
44
+ readonly onDisconnect: Emitter<void>;
45
+ readonly onKeyChange: Emitter<Uint8Array | null>;
46
+ readonly onTmpKeyChange: Emitter<[Uint8Array, number] | null>;
47
+ readonly onFloodDone: Emitter<void>;
48
+ readonly onRequestAuth: Emitter<void>;
49
+ readonly onAuthBegin: Emitter<void>;
50
+ readonly onUpdate: Emitter<tl.TypeUpdates>;
51
+ readonly onFutureSalts: Emitter<mtp.RawMt_future_salt[]>;
52
+ private _triedReconnectingOn404;
53
+ constructor(params: SessionConnectionParams, log: Logger);
54
+ private _online;
55
+ getAuthKey(temp?: boolean): Uint8Array | null;
56
+ setUsePfs(usePfs: boolean): void;
57
+ onClosed(): void;
58
+ destroy(): Promise<void>;
59
+ reset(forever?: boolean): void;
60
+ onConnected(): void;
61
+ protected handleError(error: Error): void;
62
+ protected onConnectionUsable(): void;
63
+ _authorize(): void;
64
+ private _authorizePfs;
65
+ waitForUnencryptedMessage(timeout?: number): Promise<Uint8Array>;
66
+ protected onMessage(data: Uint8Array): void;
67
+ private _handleRawMessage;
68
+ private _handleMessage;
69
+ private _onRpcResult;
70
+ private _processPendingChainedFails;
71
+ private _onMessageAcked;
72
+ private _onAllFailed;
73
+ private _onMessageFailed;
74
+ private _registerOutgoingMsgId;
75
+ private _onPong;
76
+ private _onBadServerSalt;
77
+ private _onBadMsgNotification;
78
+ private _onNewSessionCreated;
79
+ private _onMessageInfo;
80
+ private _onMessagesInfo;
81
+ private _onMsgsStateInfo;
82
+ private _onFutureSalts;
83
+ private _onDestroySessionResult;
84
+ private _enqueueRpc;
85
+ _resetSession(): void;
86
+ private _sendAck;
87
+ sendRpc<T extends tl.RpcMethod>(request: T, timeout?: number, abortSignal?: AbortSignal, chainId?: string | number): Promise<tl.RpcCallReturn[T['_']]>;
88
+ notifyNetworkChanged(online: boolean): void;
89
+ private _cancelRpc;
90
+ protected _onInactivityTimeout(): void;
91
+ flushWhenIdle(): void;
92
+ private _flush;
93
+ private _doFlush;
94
+ }
@@ -1,10 +1,11 @@
1
1
  import { mtp, tl } from '@mtcute/tl';
2
2
  import { TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime';
3
3
  import { ICorePlatform } from '../types/platform.js';
4
- import { MtprotoSession } from './mtproto-session.js';
4
+ import { Logger } from '../utils/index.js';
5
5
  import { PersistentConnectionParams, PersistentConnection } from './persistent-connection.js';
6
6
  import { ServerSaltManager } from './server-salt.js';
7
7
  import { Emitter } from '@fuman/utils';
8
+ import { MtprotoSession } from './mtproto-session.js';
8
9
  export interface SessionConnectionParams extends PersistentConnectionParams {
9
10
  initConnection: tl.RawInitConnectionRequest;
10
11
  inactivityTimeout?: number;
@@ -25,7 +26,6 @@ export interface SessionConnectionParams extends PersistentConnectionParams {
25
26
  * A connection to a single DC.
26
27
  */
27
28
  export declare class SessionConnection extends PersistentConnection {
28
- readonly _session: MtprotoSession;
29
29
  readonly params: SessionConnectionParams;
30
30
  private _flushTimer;
31
31
  private _queuedDestroySession;
@@ -39,6 +39,7 @@ export declare class SessionConnection extends PersistentConnection {
39
39
  private _writerMap;
40
40
  private _crypto;
41
41
  private _salts;
42
+ readonly _session: MtprotoSession;
42
43
  private _pingInterval;
43
44
  readonly onDisconnect: Emitter<void>;
44
45
  readonly onKeyChange: Emitter<Uint8Array | null>;
@@ -48,7 +49,8 @@ export declare class SessionConnection extends PersistentConnection {
48
49
  readonly onAuthBegin: Emitter<void>;
49
50
  readonly onUpdate: Emitter<tl.TypeUpdates>;
50
51
  readonly onFutureSalts: Emitter<mtp.RawMt_future_salt[]>;
51
- constructor(params: SessionConnectionParams, _session: MtprotoSession);
52
+ private _triedReconnectingOn404;
53
+ constructor(params: SessionConnectionParams, log: Logger);
52
54
  private _online;
53
55
  getAuthKey(temp?: boolean): Uint8Array | null;
54
56
  setUsePfs(usePfs: boolean): void;
@@ -6,6 +6,7 @@ import { createAesIgeForMessageOld } from "../utils/crypto/mtproto.js";
6
6
  import { EarlyTimer } from "../utils/early-timer.js";
7
7
  import { longFromBuffer, randomLong, removeFromLongArray } from "../utils/long-utils.js";
8
8
  import { doAuthorization } from "./authorization.js";
9
+ import { MtprotoSession } from "./mtproto-session.js";
9
10
  import { PersistentConnection } from "./persistent-connection.js";
10
11
  import { TransportError } from "./transports/abstract.js";
11
12
  import { MtcuteError, MtTimeoutError, MtArgumentError } from "../types/errors.js";
@@ -18,19 +19,6 @@ const RPC_ERROR_ID = 558156313;
18
19
  const INVOKE_AFTER_MSG_ID = 3416209197;
19
20
  const INVOKE_AFTER_MSG_SIZE = 12;
20
21
  class SessionConnection extends PersistentConnection {
21
- constructor(params, _session) {
22
- super(params, _session.log.create("conn"));
23
- this._session = _session;
24
- this._flushTimer.onTimeout(this._flush.bind(this));
25
- this._pingInterval = params.pingInterval;
26
- this._readerMap = params.readerMap;
27
- this._writerMap = params.writerMap;
28
- this._crypto = params.crypto;
29
- this._salts = params.salts;
30
- this._handleRawMessage = this._handleRawMessage.bind(this);
31
- this._usePfs = this.params.usePfs ?? false;
32
- this._online = params.platform.isOnline?.() ?? true;
33
- }
34
22
  _flushTimer = new EarlyTimer();
35
23
  _queuedDestroySession = [];
36
24
  // waitForMessage
@@ -44,6 +32,7 @@ class SessionConnection extends PersistentConnection {
44
32
  _writerMap;
45
33
  _crypto;
46
34
  _salts;
35
+ _session;
47
36
  // todo: we should probably do adaptive ping interval based on rtt like tdlib:
48
37
  // https://github.com/tdlib/td/blob/91aa6c9e4d0774eabf4f8d7f3aa51239032059a6/td/mtproto/SessionConnection.h
49
38
  _pingInterval;
@@ -56,6 +45,26 @@ class SessionConnection extends PersistentConnection {
56
45
  onAuthBegin = new Emitter();
57
46
  onUpdate = new Emitter();
58
47
  onFutureSalts = new Emitter();
48
+ _triedReconnectingOn404 = false;
49
+ constructor(params, log) {
50
+ super(params, log.create("conn"));
51
+ this._session = new MtprotoSession(
52
+ params.crypto,
53
+ log.create("session"),
54
+ params.readerMap,
55
+ params.writerMap,
56
+ params.salts
57
+ );
58
+ this._flushTimer.onTimeout(this._flush.bind(this));
59
+ this._pingInterval = params.pingInterval;
60
+ this._readerMap = params.readerMap;
61
+ this._writerMap = params.writerMap;
62
+ this._crypto = params.crypto;
63
+ this._salts = params.salts;
64
+ this._handleRawMessage = this._handleRawMessage.bind(this);
65
+ this._usePfs = this.params.usePfs ?? false;
66
+ this._online = params.platform.isOnline?.() ?? true;
67
+ }
59
68
  _online;
60
69
  getAuthKey(temp = false) {
61
70
  const key = temp ? this._session._authKeyTemp : this._session._authKey;
@@ -112,6 +121,7 @@ class SessionConnection extends PersistentConnection {
112
121
  this.onError.add((err) => {
113
122
  this.log.warn("caught error after destroying: %s", err);
114
123
  });
124
+ this._session.reset();
115
125
  }
116
126
  }
117
127
  onConnected() {
@@ -137,22 +147,27 @@ class SessionConnection extends PersistentConnection {
137
147
  if (error.code === 404) {
138
148
  if (this._usePfs) {
139
149
  if (!this._isPfsBindingPending && this._session._authKeyTemp.ready) {
140
- this.log.info("transport error 404, reauthorizing pfs");
150
+ this.log.debug("transport error 404, reauthorizing pfs");
141
151
  this._session._authKeyTemp.reset();
142
152
  this._authorizePfs();
143
153
  this._onAllFailed("temp key expired, binding started");
144
154
  return;
145
155
  } else if (this._isPfsBindingPending) {
146
- this.log.info("transport error 404, pfs binding in progress");
156
+ this.log.debug("transport error 404, pfs binding in progress");
147
157
  this._onAllFailed("temp key expired, binding pending");
148
158
  return;
149
159
  }
150
160
  }
151
- this.log.info("transport error 404, reauthorizing");
161
+ if (!this._triedReconnectingOn404) {
162
+ this.log.warn("transport error 404. trying to reconnect");
163
+ this._triedReconnectingOn404 = true;
164
+ this._resetSession();
165
+ return;
166
+ }
167
+ this.log.warn("transport error 404, reauthorizing");
152
168
  this._session.resetAuthKey();
153
169
  this._resetSession();
154
170
  this.onKeyChange.emit(null);
155
- this.onError.emit(error);
156
171
  return;
157
172
  }
158
173
  this.log.error("transport error %d", error.code);
@@ -778,6 +793,7 @@ class SessionConnection extends PersistentConnection {
778
793
  this.onUpdate.emit({ _: "updatesTooLong" });
779
794
  }
780
795
  this._salts.currentSalt = serverSalt;
796
+ this._triedReconnectingOn404 = false;
781
797
  this.log.debug("received new_session_created, uid = %l, first msg_id = %l", uniqueId, firstMsgId);
782
798
  for (const msgId of this._session.pendingMessages.keys()) {
783
799
  const val = this._session.pendingMessages.get(msgId);
@@ -928,7 +944,7 @@ class SessionConnection extends PersistentConnection {
928
944
  layer: this.params.layer,
929
945
  query: {
930
946
  ...this.params.initConnection,
931
- // proxy,
947
+ proxy: this._mtproxyInfo,
932
948
  query: obj
933
949
  }
934
950
  };
@@ -994,6 +1010,7 @@ class SessionConnection extends PersistentConnection {
994
1010
  notifyNetworkChanged(online) {
995
1011
  this._online = online;
996
1012
  if (online) {
1013
+ if (this._inactive) return;
997
1014
  this.reconnect();
998
1015
  } else {
999
1016
  this.disconnectManual().catch((err) => {
@@ -0,0 +1,47 @@
1
+ import { IFrameDecoder, IFrameEncoder } from '@fuman/io';
2
+ import { IConnection } from '@fuman/net';
3
+ import { tl } from '@mtcute/tl';
4
+ import { MaybePromise } from '../../types/index.js';
5
+ import { BasicDcOption, ICryptoProvider, Logger } from '../../utils/index.js';
6
+ /**
7
+ * Interface implementing a transport to interact with Telegram servers.
8
+ */
9
+ export interface ITelegramConnection extends IConnection<any, any> {
10
+ /**
11
+ * Provides crypto and logging for the transport.
12
+ * Not done in constructor to simplify factory.
13
+ *
14
+ * This method is called before any other.
15
+ */
16
+ setup?(crypto: ICryptoProvider, log: Logger): void;
17
+ getMtproxyInfo?(): tl.RawInputClientProxy;
18
+ }
19
+ export interface TelegramTransport {
20
+ setup?(crypto: ICryptoProvider, log: Logger): void;
21
+ connect: (dc: BasicDcOption) => Promise<ITelegramConnection>;
22
+ packetCodec: (dc: BasicDcOption) => IPacketCodec;
23
+ }
24
+ /**
25
+ * Interface declaring handling of received packets.
26
+ * When receiving a packet, its content is sent to feed(),
27
+ * and codec is supposed to emit `packet` or `error` event when packet is parsed.
28
+ */
29
+ export interface IPacketCodec extends IFrameDecoder, IFrameEncoder {
30
+ /** Initial tag of the codec. Will be sent immediately once connected. */
31
+ tag(): MaybePromise<Uint8Array>;
32
+ /**
33
+ * For codecs that use crypto functions and/or logging.
34
+ * This method is called before any other.
35
+ */
36
+ setup?(crypto: ICryptoProvider, log: Logger): void;
37
+ }
38
+ /**
39
+ * Error that represents an error in an underlying transport
40
+ * (and usually means either server-side problems or bug in library)
41
+ *
42
+ * More: https://core.telegram.org/mtproto/mtproto-transports#transport-errors
43
+ */
44
+ export declare class TransportError extends Error {
45
+ code: number;
46
+ constructor(code: number);
47
+ }
@@ -0,0 +1,3 @@
1
+ export * from './abstract.js';
2
+ export * from './intermediate.js';
3
+ export * from './obfuscated.js';
@@ -0,0 +1,23 @@
1
+ import { Bytes, ISyncWritable } from '@fuman/io';
2
+ import { ICryptoProvider } from '../../utils/index.js';
3
+ import { IPacketCodec } from './abstract.js';
4
+ /**
5
+ * Intermediate packet codec.
6
+ * See https://core.telegram.org/mtproto/mtproto-transports#intermediate
7
+ */
8
+ export declare class IntermediatePacketCodec implements IPacketCodec {
9
+ tag(): Uint8Array;
10
+ decode(reader: Bytes, eof: boolean): Uint8Array | null;
11
+ encode(frame: Uint8Array, into: ISyncWritable): void;
12
+ reset(): void;
13
+ }
14
+ /**
15
+ * Padded intermediate packet codec.
16
+ * See https://core.telegram.org/mtproto/mtproto-transports#padded-intermediate
17
+ */
18
+ export declare class PaddedIntermediatePacketCodec extends IntermediatePacketCodec implements IPacketCodec {
19
+ tag(): Uint8Array;
20
+ private _crypto;
21
+ setup?(crypto: ICryptoProvider): void;
22
+ encode(frame: Uint8Array, into: ISyncWritable): void;
23
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import { ISyncWritable, Bytes } from '@fuman/io';
2
+ import { ICryptoProvider, Logger } from '../../utils/index.js';
3
+ import { IPacketCodec } from './abstract.js';
4
+ export interface MtProxyInfo {
5
+ dcId: number;
6
+ secret: Uint8Array;
7
+ test: boolean;
8
+ media: boolean;
9
+ }
10
+ export declare class ObfuscatedPacketCodec implements IPacketCodec {
11
+ private _encryptor?;
12
+ private _decryptor?;
13
+ private _crypto;
14
+ private _inner;
15
+ private _proxy?;
16
+ setup(crypto: ICryptoProvider, log: Logger): void;
17
+ constructor(inner: IPacketCodec, proxy?: MtProxyInfo);
18
+ tag(): Promise<Uint8Array>;
19
+ encode(packet: Uint8Array, into: ISyncWritable): Promise<void>;
20
+ private _decodeBuf;
21
+ decode(reader: Bytes, eof: boolean): Promise<Uint8Array | null>;
22
+ reset(): void;
23
+ }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,22 +1,17 @@
1
1
  {
2
2
  "name": "@mtcute/core",
3
3
  "type": "module",
4
- "version": "0.18.0-rc.5",
4
+ "version": "0.18.0",
5
5
  "description": "Type-safe library for MTProto (Telegram API)",
6
6
  "license": "MIT",
7
- "homepage": "https://mtcute.dev",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/mtcute/mtcute.git"
11
- },
12
7
  "scripts": {},
13
8
  "dependencies": {
14
- "@fuman/io": "0.0.3",
15
- "@fuman/net": "0.0.3",
16
- "@fuman/utils": "0.0.3",
17
- "@mtcute/file-id": "0.18.0-rc.5",
18
- "@mtcute/tl": "0.18.0-rc.5",
19
- "@mtcute/tl-runtime": "0.18.0-rc.5",
9
+ "@fuman/io": "0.0.4",
10
+ "@fuman/net": "0.0.4",
11
+ "@fuman/utils": "0.0.4",
12
+ "@mtcute/file-id": "^0.18.0",
13
+ "@mtcute/tl": "^195.0.0",
14
+ "@mtcute/tl-runtime": "^0.17.0",
20
15
  "@types/events": "3.0.0",
21
16
  "events": "3.2.0",
22
17
  "long": "5.2.3"
@@ -74,5 +69,10 @@
74
69
  }
75
70
  },
76
71
  "author": "alina sireneva <alina@tei.su>",
77
- "sideEffects": false
72
+ "sideEffects": false,
73
+ "homepage": "https://mtcute.dev",
74
+ "repository": {
75
+ "type": "git",
76
+ "url": "git+https://github.com/mtcute/mtcute.git"
77
+ }
78
78
  }
@@ -0,0 +1,58 @@
1
+ import { ICorePlatform } from '../types/platform.js';
2
+ import { MaybePromise } from '../types/utils.js';
3
+ import { Logger } from '../utils/logger.js';
4
+ /**
5
+ * Basic storage driver interface,
6
+ * describing the lifecycle of a storage driver
7
+ */
8
+ export interface IStorageDriver {
9
+ /**
10
+ * Load session from some external storage.
11
+ * Should be used either to load data from file/network/etc
12
+ * to memory, or to open required connections to fetch data on demand
13
+ *
14
+ * May be called more than once, handle this with care
15
+ * (or use {@link BaseStorageDriver} that handles this for you)
16
+ */
17
+ load?: () => MaybePromise<void>;
18
+ /**
19
+ * Save session to some external storage.
20
+ * Should be used to commit pending changes in the session.
21
+ * For example, saving session content to file/network/etc,
22
+ * or committing a database transaction
23
+ *
24
+ * It is safe to batch all changes and only commit them here,
25
+ * unless stated otherwise in the method description
26
+ */
27
+ save?: () => MaybePromise<void>;
28
+ /**
29
+ * Cleanup session and release all used resources.
30
+ *
31
+ * May be called more than once, handle this with care
32
+ * (or use {@link BaseStorageDriver} that handles this for you)
33
+ */
34
+ destroy?: () => MaybePromise<void>;
35
+ /**
36
+ * Setup the driver, passing the logger instance,
37
+ * in case your driver needs it
38
+ */
39
+ setup?: (log: Logger, platform: ICorePlatform) => void;
40
+ }
41
+ /**
42
+ * Base storage driver class, implementing {@link IStorageDriver}
43
+ * and handling the lifecycle for you
44
+ */
45
+ export declare abstract class BaseStorageDriver implements IStorageDriver {
46
+ abstract _load(): MaybePromise<void>;
47
+ abstract _destroy(): MaybePromise<void>;
48
+ abstract _save?(): MaybePromise<void>;
49
+ private _loadedTimes;
50
+ private _destroyed;
51
+ protected _log: Logger;
52
+ protected _platform: ICorePlatform;
53
+ setup(log: Logger, platform: ICorePlatform): void;
54
+ protected get loaded(): boolean;
55
+ load(): Promise<void>;
56
+ destroy(): Promise<void>;
57
+ save(): MaybePromise<void>;
58
+ }
@@ -0,0 +1,6 @@
1
+ export * from './driver.js';
2
+ export * from './memory/index.js';
3
+ export * from './provider.js';
4
+ export * from './repository/index.js';
5
+ export * from './sqlite/index.js';
6
+ export * from './storage.js';
@@ -0,0 +1,6 @@
1
+ import { IStorageDriver } from '../driver.js';
2
+ export declare class MemoryStorageDriver implements IStorageDriver {
3
+ readonly states: Map<string, object>;
4
+ getState<T extends object>(repo: string, def: () => T): T;
5
+ load(): void;
6
+ }
@@ -0,0 +1,22 @@
1
+ import { ITelegramStorageProvider } from '../../highlevel/storage/provider.js';
2
+ import { IMtStorageProvider } from '../provider.js';
3
+ import { MemoryStorageDriver } from './driver.js';
4
+ import { MemoryAuthKeysRepository } from './repository/auth-keys.js';
5
+ import { MemoryKeyValueRepository } from './repository/kv.js';
6
+ import { MemoryPeersRepository } from './repository/peers.js';
7
+ import { MemoryRefMessagesRepository } from './repository/ref-messages.js';
8
+ export { MemoryStorageDriver } from './driver.js';
9
+ /**
10
+ * In-memory storage driver implementation for mtcute.
11
+ *
12
+ * This storage is **not persistent**, meaning that all data
13
+ * **will** be lost on restart. Only use this storage for testing,
14
+ * or if you know exactly what you're doing.
15
+ */
16
+ export declare class MemoryStorage implements IMtStorageProvider, ITelegramStorageProvider {
17
+ readonly driver: MemoryStorageDriver;
18
+ readonly kv: MemoryKeyValueRepository;
19
+ readonly authKeys: MemoryAuthKeysRepository;
20
+ readonly peers: MemoryPeersRepository;
21
+ readonly refMessages: MemoryRefMessagesRepository;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import { IAuthKeysRepository } from '../../repository/auth-keys.js';
2
+ import { MemoryStorageDriver } from '../driver.js';
3
+ interface AuthKeysState {
4
+ authKeys: Map<number, Uint8Array>;
5
+ authKeysTemp: Map<string, Uint8Array>;
6
+ authKeysTempExpiry: Map<string, number>;
7
+ }
8
+ export declare class MemoryAuthKeysRepository implements IAuthKeysRepository {
9
+ readonly _driver: MemoryStorageDriver;
10
+ readonly state: AuthKeysState;
11
+ constructor(_driver: MemoryStorageDriver);
12
+ set(dc: number, key: Uint8Array | null): void;
13
+ get(dc: number): Uint8Array | null;
14
+ setTemp(dc: number, idx: number, key: Uint8Array | null, expires: number): void;
15
+ getTemp(dc: number, idx: number, now: number): Uint8Array | null;
16
+ deleteByDc(dc: number): void;
17
+ deleteAll(): void;
18
+ }
19
+ export {};
@@ -0,0 +1,11 @@
1
+ import { IKeyValueRepository } from '../../repository/key-value.js';
2
+ import { MemoryStorageDriver } from '../driver.js';
3
+ export declare class MemoryKeyValueRepository implements IKeyValueRepository {
4
+ readonly _driver: MemoryStorageDriver;
5
+ readonly state: Map<string, Uint8Array>;
6
+ constructor(_driver: MemoryStorageDriver);
7
+ set(key: string, value: Uint8Array): void;
8
+ get(key: string): Uint8Array | null;
9
+ delete(key: string): void;
10
+ deleteAll(): void;
11
+ }
@@ -0,0 +1,18 @@
1
+ import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js';
2
+ import { MemoryStorageDriver } from '../driver.js';
3
+ interface PeersState {
4
+ entities: Map<number, IPeersRepository.PeerInfo>;
5
+ usernameIndex: Map<string, number>;
6
+ phoneIndex: Map<string, number>;
7
+ }
8
+ export declare class MemoryPeersRepository implements IPeersRepository {
9
+ readonly _driver: MemoryStorageDriver;
10
+ readonly state: PeersState;
11
+ constructor(_driver: MemoryStorageDriver);
12
+ store(peer: IPeersRepository.PeerInfo): void;
13
+ getById(id: number, allowMin: boolean): IPeersRepository.PeerInfo | null;
14
+ getByUsername(username: string): IPeersRepository.PeerInfo | null;
15
+ getByPhone(phone: string): IPeersRepository.PeerInfo | null;
16
+ deleteAll(): void;
17
+ }
18
+ export {};
@@ -0,0 +1,16 @@
1
+ import { IReferenceMessagesRepository } from '../../../highlevel/storage/repository/ref-messages.js';
2
+ import { MemoryStorageDriver } from '../driver.js';
3
+ interface RefMessagesState {
4
+ refs: Map<number, Set<string>>;
5
+ }
6
+ export declare class MemoryRefMessagesRepository implements IReferenceMessagesRepository {
7
+ readonly _driver: MemoryStorageDriver;
8
+ readonly state: RefMessagesState;
9
+ constructor(_driver: MemoryStorageDriver);
10
+ store(peerId: number, chatId: number, msgId: number): void;
11
+ getByPeer(peerId: number): [number, number] | null;
12
+ delete(chatId: number, msgIds: number[]): void;
13
+ deleteByPeer(peerId: number): void;
14
+ deleteAll(): void;
15
+ }
16
+ export {};
@@ -0,0 +1,10 @@
1
+ import { IStorageDriver } from './driver.js';
2
+ import { IAuthKeysRepository } from './repository/auth-keys.js';
3
+ import { IKeyValueRepository } from './repository/key-value.js';
4
+ export type IStorageProvider<T> = T & {
5
+ readonly driver: IStorageDriver;
6
+ };
7
+ export type IMtStorageProvider = IStorageProvider<{
8
+ readonly kv: IKeyValueRepository;
9
+ readonly authKeys: IAuthKeysRepository;
10
+ }>;
@@ -0,0 +1,41 @@
1
+ import { MaybePromise } from '../../types/utils.js';
2
+ export interface IAuthKeysRepository {
3
+ /**
4
+ * Store auth_key for the given DC
5
+ *
6
+ * If `key` is `null`, the key should be deleted instead
7
+ *
8
+ * **MUST** be applied immediately, without batching
9
+ */
10
+ set: (dc: number, key: Uint8Array | null) => MaybePromise<void>;
11
+ /** Get auth_key for the given DC */
12
+ get: (dc: number) => MaybePromise<Uint8Array | null>;
13
+ /**
14
+ * Store temp_auth_key for the given DC and idx,
15
+ * along with its expiration date (in seconds)
16
+ *
17
+ * If `key` is `null`, the key should be deleted instead
18
+ *
19
+ * **MUST** be applied immediately, without batching
20
+ */
21
+ setTemp: (dc: number, idx: number, key: Uint8Array | null, expires: number) => MaybePromise<void>;
22
+ /**
23
+ * Given the DC id, idx and point in time (in seconds),
24
+ * return the temp_auth_key that should be used for the next request
25
+ * (such that `now < key.expires`), or `null` if no such key exists
26
+ */
27
+ getTemp: (dc: number, idx: number, now: number) => MaybePromise<Uint8Array | null>;
28
+ /**
29
+ * Delete all stored auth keys for the given DC, including
30
+ * both permanent and temp keys
31
+ *
32
+ * **MUST** be applied immediately, without batching
33
+ */
34
+ deleteByDc: (dc: number) => MaybePromise<void>;
35
+ /**
36
+ * Delete all stored auth keys, including both permanent and temp keys
37
+ *
38
+ * **MUST** be applied immediately, without batching
39
+ */
40
+ deleteAll: () => MaybePromise<void>;
41
+ }
@@ -0,0 +1,2 @@
1
+ export * from './auth-keys.js';
2
+ export * from './key-value.js';
@@ -0,0 +1,10 @@
1
+ import { MaybePromise } from '../../types/utils.js';
2
+ export interface IKeyValueRepository {
3
+ /** Set a key-value pair */
4
+ set: (key: string, value: Uint8Array) => MaybePromise<void>;
5
+ /** Get a key-value pair */
6
+ get: (key: string) => MaybePromise<Uint8Array | null>;
7
+ /** Delete a key-value pair */
8
+ delete: (key: string) => MaybePromise<void>;
9
+ deleteAll: () => MaybePromise<void>;
10
+ }
@@ -0,0 +1,9 @@
1
+ import { IAuthKeysRepository } from '../repository/auth-keys.js';
2
+ import { ServiceOptions, BaseService } from './base.js';
3
+ import { FutureSaltsService } from './future-salts.js';
4
+ export declare class AuthKeysService extends BaseService {
5
+ readonly _keys: IAuthKeysRepository;
6
+ readonly _salts: FutureSaltsService;
7
+ constructor(_keys: IAuthKeysRepository, _salts: FutureSaltsService, opts: ServiceOptions);
8
+ deleteByDc(dc: number): Promise<void>;
9
+ }
@@ -0,0 +1 @@
1
+ export {};