@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.
- package/client.d.cts +1 -0
- package/highlevel/base.d.cts +115 -0
- package/highlevel/base.test.d.cts +1 -0
- package/highlevel/client.d.cts +5045 -0
- package/highlevel/client.types.d.cts +61 -0
- package/highlevel/index.d.cts +4 -0
- package/highlevel/managers/app-config-manager.d.cts +11 -0
- package/highlevel/managers/timers.d.cts +10 -0
- package/highlevel/methods/_imports.d.cts +1 -0
- package/highlevel/methods/_init.d.cts +1 -0
- package/highlevel/methods/auth/check-password.d.cts +10 -0
- package/highlevel/methods/auth/get-password-hint.d.cts +7 -0
- package/highlevel/methods/auth/log-out.d.cts +17 -0
- package/highlevel/methods/auth/recover-password.d.cts +12 -0
- package/highlevel/methods/auth/resend-code.d.cts +16 -0
- package/highlevel/methods/auth/run.d.cts +16 -0
- package/highlevel/methods/auth/send-code.d.cts +18 -0
- package/highlevel/methods/auth/send-recovery-code.d.cts +7 -0
- package/highlevel/methods/auth/sign-in-bot.d.cts +10 -0
- package/highlevel/methods/auth/sign-in-qr.d.cts +33 -0
- package/highlevel/methods/auth/sign-in.d.cts +19 -0
- package/highlevel/methods/auth/start-test.d.cts +30 -0
- package/highlevel/methods/auth/start.d.cts +89 -0
- package/highlevel/methods/auth/utils.d.cts +9 -0
- package/highlevel/methods/bots/answer-callback-query.d.cts +41 -0
- package/highlevel/methods/bots/answer-inline-query.d.cts +88 -0
- package/highlevel/methods/bots/answer-pre-checkout-query.d.cts +12 -0
- package/highlevel/methods/bots/delete-my-commands.d.cts +22 -0
- package/highlevel/methods/bots/get-bot-info.d.cts +18 -0
- package/highlevel/methods/bots/get-bot-menu-button.d.cts +7 -0
- package/highlevel/methods/bots/get-callback-answer.d.cts +41 -0
- package/highlevel/methods/bots/get-game-high-scores.d.cts +17 -0
- package/highlevel/methods/bots/get-my-commands.d.cts +21 -0
- package/highlevel/methods/bots/normalize-command-scope.d.cts +5 -0
- package/highlevel/methods/bots/open-webview.d.cts +73 -0
- package/highlevel/methods/bots/prepare-inline-message.d.cts +32 -0
- package/highlevel/methods/bots/set-bot-info.d.cts +23 -0
- package/highlevel/methods/bots/set-bot-menu-button.d.cts +7 -0
- package/highlevel/methods/bots/set-game-score.d.cts +54 -0
- package/highlevel/methods/bots/set-my-commands.d.cts +26 -0
- package/highlevel/methods/bots/set-my-default-rights.d.cts +11 -0
- package/highlevel/methods/bots/toggle-emoji-status-permission.d.cts +11 -0
- package/highlevel/methods/chats/add-chat-members.d.cts +20 -0
- package/highlevel/methods/chats/archive-chats.d.cts +9 -0
- package/highlevel/methods/chats/ban-chat-member.d.cts +24 -0
- package/highlevel/methods/chats/batched-queries.d.cts +11 -0
- package/highlevel/methods/chats/create-channel.d.cts +17 -0
- package/highlevel/methods/chats/create-group.d.cts +33 -0
- package/highlevel/methods/chats/create-supergroup.d.cts +27 -0
- package/highlevel/methods/chats/delete-channel.d.cts +8 -0
- package/highlevel/methods/chats/delete-chat-photo.d.cts +10 -0
- package/highlevel/methods/chats/delete-group.d.cts +8 -0
- package/highlevel/methods/chats/delete-history.d.cts +22 -0
- package/highlevel/methods/chats/delete-user-history.d.cts +16 -0
- package/highlevel/methods/chats/edit-admin-rights.d.cts +16 -0
- package/highlevel/methods/chats/get-chat-event-log.d.cts +61 -0
- package/highlevel/methods/chats/get-chat-member.d.cts +15 -0
- package/highlevel/methods/chats/get-chat-members.d.cts +51 -0
- package/highlevel/methods/chats/get-chat-preview.d.cts +12 -0
- package/highlevel/methods/chats/get-chat.d.cts +11 -0
- package/highlevel/methods/chats/get-full-chat.d.cts +11 -0
- package/highlevel/methods/chats/get-full-user.d.cts +8 -0
- package/highlevel/methods/chats/get-nearby-chats.d.cts +9 -0
- package/highlevel/methods/chats/get-similar-channels.d.cts +12 -0
- package/highlevel/methods/chats/get-user.d.cts +8 -0
- package/highlevel/methods/chats/iter-chat-event-log.d.cts +26 -0
- package/highlevel/methods/chats/iter-chat-members.d.cts +22 -0
- package/highlevel/methods/chats/join-chat.d.cts +14 -0
- package/highlevel/methods/chats/kick-chat-member.d.cts +15 -0
- package/highlevel/methods/chats/leave-chat.d.cts +13 -0
- package/highlevel/methods/chats/mark-chat-unread.d.cts +8 -0
- package/highlevel/methods/chats/open-chat.d.cts +26 -0
- package/highlevel/methods/chats/reorder-usernames.d.cts +8 -0
- package/highlevel/methods/chats/restrict-chat-member.d.cts +28 -0
- package/highlevel/methods/chats/save-draft.d.cts +10 -0
- package/highlevel/methods/chats/set-chat-color.d.cts +38 -0
- package/highlevel/methods/chats/set-chat-default-permissions.d.cts +16 -0
- package/highlevel/methods/chats/set-chat-description.d.cts +11 -0
- package/highlevel/methods/chats/set-chat-photo.d.cts +20 -0
- package/highlevel/methods/chats/set-chat-title.d.cts +11 -0
- package/highlevel/methods/chats/set-chat-ttl.d.cts +9 -0
- package/highlevel/methods/chats/set-chat-username.d.cts +11 -0
- package/highlevel/methods/chats/set-slow-mode.d.cts +12 -0
- package/highlevel/methods/chats/toggle-content-protection.d.cts +9 -0
- package/highlevel/methods/chats/toggle-fragment-username.d.cts +20 -0
- package/highlevel/methods/chats/toggle-join-requests.d.cts +12 -0
- package/highlevel/methods/chats/toggle-join-to-send.d.cts +12 -0
- package/highlevel/methods/chats/unarchive-chats.d.cts +9 -0
- package/highlevel/methods/chats/unban-chat-member.d.cts +16 -0
- package/highlevel/methods/contacts/add-contact.d.cts +28 -0
- package/highlevel/methods/contacts/delete-contacts.d.cts +12 -0
- package/highlevel/methods/contacts/get-contacts.d.cts +6 -0
- package/highlevel/methods/contacts/import-contacts.d.cts +9 -0
- package/highlevel/methods/dialogs/create-folder.d.cts +13 -0
- package/highlevel/methods/dialogs/delete-folder.d.cts +8 -0
- package/highlevel/methods/dialogs/edit-folder.d.cts +18 -0
- package/highlevel/methods/dialogs/find-dialogs.d.cts +12 -0
- package/highlevel/methods/dialogs/find-folder.d.cts +19 -0
- package/highlevel/methods/dialogs/get-chatlist-preview.d.cts +8 -0
- package/highlevel/methods/dialogs/get-folders.d.cts +9 -0
- package/highlevel/methods/dialogs/get-peer-dialogs.d.cts +10 -0
- package/highlevel/methods/dialogs/iter-dialogs.d.cts +103 -0
- package/highlevel/methods/dialogs/join-chatlist.d.cts +15 -0
- package/highlevel/methods/dialogs/set-folders-order.d.cts +7 -0
- package/highlevel/methods/files/download-buffer.d.cts +11 -0
- package/highlevel/methods/files/download-file.d.cts +1 -0
- package/highlevel/methods/files/download-iterable.cjs +9 -7
- package/highlevel/methods/files/download-iterable.d.cts +10 -0
- package/highlevel/methods/files/download-iterable.js +9 -7
- package/highlevel/methods/files/download-node-stream.d.cts +1 -0
- package/highlevel/methods/files/download-stream.d.cts +9 -0
- package/highlevel/methods/files/normalize-file-to-document.d.cts +9 -0
- package/highlevel/methods/files/normalize-input-file.d.cts +13 -0
- package/highlevel/methods/files/normalize-input-media.d.cts +12 -0
- package/highlevel/methods/files/upload-file.d.cts +72 -0
- package/highlevel/methods/files/upload-media.d.cts +28 -0
- package/highlevel/methods/forums/create-forum-topic.d.cts +36 -0
- package/highlevel/methods/forums/delete-forum-topic-history.d.cts +15 -0
- package/highlevel/methods/forums/edit-forum-topic.d.cts +34 -0
- package/highlevel/methods/forums/get-forum-topics-by-id.d.cts +9 -0
- package/highlevel/methods/forums/get-forum-topics.d.cts +28 -0
- package/highlevel/methods/forums/iter-forum-topics.d.cts +20 -0
- package/highlevel/methods/forums/reorder-pinned-forum-topics.d.cts +19 -0
- package/highlevel/methods/forums/toggle-forum-topic-closed.d.cts +22 -0
- package/highlevel/methods/forums/toggle-forum-topic-pinned.d.cts +15 -0
- package/highlevel/methods/forums/toggle-forum.d.cts +11 -0
- package/highlevel/methods/forums/toggle-general-topic-hidden.d.cts +20 -0
- package/highlevel/methods/invite-links/create-invite-link.d.cts +38 -0
- package/highlevel/methods/invite-links/edit-invite-link.d.cts +36 -0
- package/highlevel/methods/invite-links/export-invite-link.d.cts +12 -0
- package/highlevel/methods/invite-links/get-invite-link-members.d.cts +45 -0
- package/highlevel/methods/invite-links/get-invite-link.d.cts +9 -0
- package/highlevel/methods/invite-links/get-invite-links.d.cts +39 -0
- package/highlevel/methods/invite-links/get-primary-invite-link.d.cts +8 -0
- package/highlevel/methods/invite-links/hide-all-join-requests.d.cts +13 -0
- package/highlevel/methods/invite-links/hide-join-request.d.cts +13 -0
- package/highlevel/methods/invite-links/iter-invite-link-members.d.cts +25 -0
- package/highlevel/methods/invite-links/iter-invite-links.d.cts +27 -0
- package/highlevel/methods/invite-links/revoke-invite-link.d.cts +13 -0
- package/highlevel/methods/messages/_business-connection.d.cts +8 -0
- package/highlevel/methods/messages/close-poll.d.cts +15 -0
- package/highlevel/methods/messages/delete-messages.d.cts +29 -0
- package/highlevel/methods/messages/delete-scheduled-messages.d.cts +9 -0
- package/highlevel/methods/messages/edit-inline-message.d.cts +51 -0
- package/highlevel/methods/messages/edit-message.d.cts +55 -0
- package/highlevel/methods/messages/find-in-update.d.cts +13 -0
- package/highlevel/methods/messages/forward-messages.d.cts +84 -0
- package/highlevel/methods/messages/get-all-scheduled-messages.d.cts +8 -0
- package/highlevel/methods/messages/get-available-effects.d.cts +6 -0
- package/highlevel/methods/messages/get-callback-query-message.d.cts +14 -0
- package/highlevel/methods/messages/get-discussion-message.d.cts +21 -0
- package/highlevel/methods/messages/get-fact-check.d.cts +11 -0
- package/highlevel/methods/messages/get-history.d.cts +59 -0
- package/highlevel/methods/messages/get-message-by-link.d.cts +6 -0
- package/highlevel/methods/messages/get-message-group.d.cts +9 -0
- package/highlevel/methods/messages/get-message-reactions.d.cts +28 -0
- package/highlevel/methods/messages/get-messages-unsafe.d.cts +19 -0
- package/highlevel/methods/messages/get-messages.d.cts +17 -0
- package/highlevel/methods/messages/get-reaction-users.d.cts +24 -0
- package/highlevel/methods/messages/get-reply-to.d.cts +10 -0
- package/highlevel/methods/messages/get-scheduled-messages.d.cts +13 -0
- package/highlevel/methods/messages/iter-history.d.cts +23 -0
- package/highlevel/methods/messages/iter-reaction-users.d.cts +26 -0
- package/highlevel/methods/messages/iter-search-global.d.cts +27 -0
- package/highlevel/methods/messages/iter-search-messages.d.cts +26 -0
- package/highlevel/methods/messages/pin-message.d.cts +21 -0
- package/highlevel/methods/messages/read-history.d.cts +24 -0
- package/highlevel/methods/messages/read-reactions.d.cts +14 -0
- package/highlevel/methods/messages/search-global.d.cts +51 -0
- package/highlevel/methods/messages/search-hashtag.d.cts +44 -0
- package/highlevel/methods/messages/search-messages.d.cts +93 -0
- package/highlevel/methods/messages/send-answer.d.cts +12 -0
- package/highlevel/methods/messages/send-comment.d.cts +39 -0
- package/highlevel/methods/messages/send-common.d.cts +122 -0
- package/highlevel/methods/messages/send-copy-group.d.cts +21 -0
- package/highlevel/methods/messages/send-copy.d.cts +32 -0
- package/highlevel/methods/messages/send-media-group.d.cts +35 -0
- package/highlevel/methods/messages/send-media.d.cts +48 -0
- package/highlevel/methods/messages/send-paid-reaction.d.cts +24 -0
- package/highlevel/methods/messages/send-quote.d.cts +33 -0
- package/highlevel/methods/messages/send-reaction.d.cts +21 -0
- package/highlevel/methods/messages/send-reply.d.cts +12 -0
- package/highlevel/methods/messages/send-scheduled.d.cts +14 -0
- package/highlevel/methods/messages/send-text.d.cts +31 -0
- package/highlevel/methods/messages/send-text.test.d.cts +1 -0
- package/highlevel/methods/messages/send-typing.d.cts +32 -0
- package/highlevel/methods/messages/send-vote.d.cts +15 -0
- package/highlevel/methods/messages/set-typing.d.cts +33 -0
- package/highlevel/methods/messages/translate-message.d.cts +11 -0
- package/highlevel/methods/messages/translate-text.d.cts +9 -0
- package/highlevel/methods/messages/unpin-all-messages.d.cts +18 -0
- package/highlevel/methods/messages/unpin-message.d.cts +12 -0
- package/highlevel/methods/misc/chain-id.d.cts +4 -0
- package/highlevel/methods/misc/get-collectible-info.d.cts +6 -0
- package/highlevel/methods/misc/init-takeout-session.d.cts +9 -0
- package/highlevel/methods/misc/normalize-privacy-rules.d.cts +8 -0
- package/highlevel/methods/misc/normalize-text.d.cts +5 -0
- package/highlevel/methods/misc/with-params.d.cts +10 -0
- package/highlevel/methods/password/change-cloud-password.d.cts +12 -0
- package/highlevel/methods/password/enable-cloud-password.d.cts +17 -0
- package/highlevel/methods/password/password-email.d.cts +15 -0
- package/highlevel/methods/password/remove-cloud-password.d.cts +7 -0
- package/highlevel/methods/premium/accept-star-gift.d.cts +16 -0
- package/highlevel/methods/premium/apply-boost.d.cts +8 -0
- package/highlevel/methods/premium/can-apply-boost.d.cts +29 -0
- package/highlevel/methods/premium/create-business-chat-link.d.cts +12 -0
- package/highlevel/methods/premium/edit-business-chat-link.d.cts +20 -0
- package/highlevel/methods/premium/get-boost-stats.d.cts +9 -0
- package/highlevel/methods/premium/get-boosts.d.cts +18 -0
- package/highlevel/methods/premium/get-business-chat-links.d.cts +6 -0
- package/highlevel/methods/premium/get-business-connection.d.cts +8 -0
- package/highlevel/methods/premium/get-my-boost-slots.d.cts +9 -0
- package/highlevel/methods/premium/get-star-gift-options.d.cts +6 -0
- package/highlevel/methods/premium/get-star-gifts.d.cts +22 -0
- package/highlevel/methods/premium/get-stars-transactions.d.cts +34 -0
- package/highlevel/methods/premium/iter-boosters.d.cts +24 -0
- package/highlevel/methods/premium/iter-star-gifts.d.cts +26 -0
- package/highlevel/methods/premium/iter-stars-transactions.d.cts +29 -0
- package/highlevel/methods/premium/send-star-gift.d.cts +35 -0
- package/highlevel/methods/premium/set-business-intro.d.cts +22 -0
- package/highlevel/methods/premium/set-business-work-hours.d.cts +18 -0
- package/highlevel/methods/stickers/_utils.d.cts +10 -0
- package/highlevel/methods/stickers/add-sticker-to-set.d.cts +21 -0
- package/highlevel/methods/stickers/create-sticker-set.d.cts +66 -0
- package/highlevel/methods/stickers/delete-sticker-from-set.d.cts +15 -0
- package/highlevel/methods/stickers/get-custom-emojis.d.cts +14 -0
- package/highlevel/methods/stickers/get-installed-stickers.d.cts +10 -0
- package/highlevel/methods/stickers/get-my-sticker-sets.d.cts +13 -0
- package/highlevel/methods/stickers/get-sticker-set.d.cts +8 -0
- package/highlevel/methods/stickers/move-sticker-in-set.d.cts +17 -0
- package/highlevel/methods/stickers/replace-sticker-in-set.d.cts +24 -0
- package/highlevel/methods/stickers/set-chat-sticker-set.d.cts +11 -0
- package/highlevel/methods/stickers/set-sticker-set-thumb.d.cts +20 -0
- package/highlevel/methods/stories/can-send-story.d.cts +13 -0
- package/highlevel/methods/stories/delete-stories.d.cts +20 -0
- package/highlevel/methods/stories/edit-story.d.cts +38 -0
- package/highlevel/methods/stories/find-in-update.d.cts +5 -0
- package/highlevel/methods/stories/get-all-stories.d.cts +15 -0
- package/highlevel/methods/stories/get-peer-stories.d.cts +8 -0
- package/highlevel/methods/stories/get-profile-stories.d.cts +25 -0
- package/highlevel/methods/stories/get-stories-by-id.d.cts +10 -0
- package/highlevel/methods/stories/get-stories-interactions.d.cts +9 -0
- package/highlevel/methods/stories/get-story-link.d.cts +11 -0
- package/highlevel/methods/stories/get-story-viewers.d.cts +33 -0
- package/highlevel/methods/stories/hide-my-stories-views.d.cts +21 -0
- package/highlevel/methods/stories/increment-stories-views.d.cts +13 -0
- package/highlevel/methods/stories/iter-all-stories.d.cts +16 -0
- package/highlevel/methods/stories/iter-profile-stories.d.cts +21 -0
- package/highlevel/methods/stories/iter-story-viewers.d.cts +22 -0
- package/highlevel/methods/stories/read-stories.d.cts +11 -0
- package/highlevel/methods/stories/send-story-reaction.d.cts +14 -0
- package/highlevel/methods/stories/send-story.d.cts +51 -0
- package/highlevel/methods/stories/toggle-peer-stories-archived.d.cts +8 -0
- package/highlevel/methods/stories/toggle-stories-pinned.d.cts +24 -0
- package/highlevel/methods/users/block-user.d.cts +8 -0
- package/highlevel/methods/users/delete-profile-photos.d.cts +9 -0
- package/highlevel/methods/users/edit-close-friends.d.cts +14 -0
- package/highlevel/methods/users/get-common-chats.d.cts +9 -0
- package/highlevel/methods/users/get-global-ttl.d.cts +5 -0
- package/highlevel/methods/users/get-me.d.cts +6 -0
- package/highlevel/methods/users/get-my-username.d.cts +8 -0
- package/highlevel/methods/users/get-profile-photo.d.cts +11 -0
- package/highlevel/methods/users/get-profile-photos.d.cts +22 -0
- package/highlevel/methods/users/get-users.d.cts +12 -0
- package/highlevel/methods/users/get-users.test.d.cts +1 -0
- package/highlevel/methods/users/is-peer-available.d.cts +20 -0
- package/highlevel/methods/users/iter-profile-photos.d.cts +23 -0
- package/highlevel/methods/users/resolve-peer-many.d.cts +26 -0
- package/highlevel/methods/users/resolve-peer.d.cts +20 -0
- package/highlevel/methods/users/resolve-peer.test.d.cts +1 -0
- package/highlevel/methods/users/set-emoji-status.d.cts +32 -0
- package/highlevel/methods/users/set-global-ttl.d.cts +8 -0
- package/highlevel/methods/users/set-my-birthday.d.cts +12 -0
- package/highlevel/methods/users/set-my-profile-photo.d.cts +16 -0
- package/highlevel/methods/users/set-my-username.d.cts +11 -0
- package/highlevel/methods/users/set-online.d.cts +19 -0
- package/highlevel/methods/users/unblock-user.d.cts +8 -0
- package/highlevel/methods/users/update-profile.d.cts +23 -0
- package/highlevel/methods.d.cts +291 -0
- package/highlevel/storage/index.d.cts +4 -0
- package/highlevel/storage/provider.d.cts +7 -0
- package/highlevel/storage/repository/peers.d.cts +44 -0
- package/highlevel/storage/repository/ref-messages.d.cts +20 -0
- package/highlevel/storage/service/current-user.d.cts +23 -0
- package/highlevel/storage/service/peers.d.cts +23 -0
- package/highlevel/storage/service/ref-messages.d.cts +15 -0
- package/highlevel/storage/service/updates.d.cts +16 -0
- package/highlevel/storage/storage.d.cts +27 -0
- package/highlevel/types/auth/index.d.cts +1 -0
- package/highlevel/types/auth/sent-code.d.cts +56 -0
- package/highlevel/types/bots/command-scope/index.d.cts +10 -0
- package/highlevel/types/bots/command-scope/inner.d.cts +54 -0
- package/highlevel/types/bots/game-high-score.d.cts +23 -0
- package/highlevel/types/bots/index.d.cts +6 -0
- package/highlevel/types/bots/inline-message/factories.d.cts +47 -0
- package/highlevel/types/bots/inline-message/index.d.cts +3 -0
- package/highlevel/types/bots/inline-message/types.d.cts +114 -0
- package/highlevel/types/bots/inline-result/factories.d.cts +97 -0
- package/highlevel/types/bots/inline-result/index.d.cts +3 -0
- package/highlevel/types/bots/inline-result/types.d.cts +417 -0
- package/highlevel/types/bots/keyboards/builder.d.cts +38 -0
- package/highlevel/types/bots/keyboards/builder.test.d.cts +1 -0
- package/highlevel/types/bots/keyboards/factories.d.cts +208 -0
- package/highlevel/types/bots/keyboards/index.d.cts +15 -0
- package/highlevel/types/bots/keyboards/keyboards.test.d.cts +1 -0
- package/highlevel/types/bots/keyboards/types.d.cts +34 -0
- package/highlevel/types/bots/webview.d.cts +114 -0
- package/highlevel/types/calls/discard-reason.d.cts +13 -0
- package/highlevel/types/calls/index.d.cts +1 -0
- package/highlevel/types/conversation.d.cts +210 -0
- package/highlevel/types/errors.d.cts +33 -0
- package/highlevel/types/files/file-location.d.cts +48 -0
- package/highlevel/types/files/index.d.cts +4 -0
- package/highlevel/types/files/uploaded-file.d.cts +24 -0
- package/highlevel/types/files/utils.d.cts +89 -0
- package/highlevel/types/files/web-document.d.cts +32 -0
- package/highlevel/types/index.d.cts +15 -0
- package/highlevel/types/media/audio.d.cts +31 -0
- package/highlevel/types/media/contact.d.cts +31 -0
- package/highlevel/types/media/dice.d.cts +155 -0
- package/highlevel/types/media/document-utils.d.cts +11 -0
- package/highlevel/types/media/document.d.cts +75 -0
- package/highlevel/types/media/extended-media.d.cts +20 -0
- package/highlevel/types/media/game.d.cts +38 -0
- package/highlevel/types/media/index.d.cts +19 -0
- package/highlevel/types/media/input-media/factories.d.cts +142 -0
- package/highlevel/types/media/input-media/index.d.cts +3 -0
- package/highlevel/types/media/input-media/types.d.cts +520 -0
- package/highlevel/types/media/invoice.d.cts +89 -0
- package/highlevel/types/media/location.d.cts +83 -0
- package/highlevel/types/media/paid-media.d.cts +33 -0
- package/highlevel/types/media/photo.d.cts +72 -0
- package/highlevel/types/media/poll.d.cts +110 -0
- package/highlevel/types/media/sticker.d.cts +123 -0
- package/highlevel/types/media/story.d.cts +33 -0
- package/highlevel/types/media/thumbnail.d.cts +70 -0
- package/highlevel/types/media/venue.d.cts +58 -0
- package/highlevel/types/media/video.d.cts +48 -0
- package/highlevel/types/media/voice.d.cts +23 -0
- package/highlevel/types/media/web-page.d.cts +151 -0
- package/highlevel/types/messages/dialog.d.cts +110 -0
- package/highlevel/types/messages/draft-message.d.cts +29 -0
- package/highlevel/types/messages/fact-check.d.cts +30 -0
- package/highlevel/types/messages/index.d.cts +14 -0
- package/highlevel/types/messages/input-message-id.d.cts +20 -0
- package/highlevel/types/messages/message-action.d.cts +420 -0
- package/highlevel/types/messages/message-effect.d.cts +20 -0
- package/highlevel/types/messages/message-entity.d.cts +89 -0
- package/highlevel/types/messages/message-forward.d.cts +39 -0
- package/highlevel/types/messages/message-media.d.cts +23 -0
- package/highlevel/types/messages/message-reactions.d.cts +31 -0
- package/highlevel/types/messages/message-replies.d.cts +42 -0
- package/highlevel/types/messages/message.d.cts +249 -0
- package/highlevel/types/messages/replied-message.d.cts +103 -0
- package/highlevel/types/messages/search-filters.d.cts +82 -0
- package/highlevel/types/misc/app-config.d.cts +887 -0
- package/highlevel/types/misc/collectible-info.d.cts +27 -0
- package/highlevel/types/misc/entities.d.cts +22 -0
- package/highlevel/types/misc/index.d.cts +6 -0
- package/highlevel/types/misc/input-privacy-rule/allow.d.cts +22 -0
- package/highlevel/types/misc/input-privacy-rule/bundle.d.cts +3 -0
- package/highlevel/types/misc/input-privacy-rule/disallow.d.cts +20 -0
- package/highlevel/types/misc/input-privacy-rule/index.d.cts +3 -0
- package/highlevel/types/misc/input-privacy-rule/types.d.cts +11 -0
- package/highlevel/types/misc/sticker-set.d.cts +154 -0
- package/highlevel/types/misc/takeout-session.d.cts +49 -0
- package/highlevel/types/peers/bot-info.d.cts +21 -0
- package/highlevel/types/peers/chat-colors.d.cts +25 -0
- package/highlevel/types/peers/chat-event/actions.d.cts +279 -0
- package/highlevel/types/peers/chat-event/filters.d.cts +10 -0
- package/highlevel/types/peers/chat-event/index.d.cts +27 -0
- package/highlevel/types/peers/chat-invite-link-member.d.cts +33 -0
- package/highlevel/types/peers/chat-invite-link.d.cts +72 -0
- package/highlevel/types/peers/chat-location.d.cts +17 -0
- package/highlevel/types/peers/chat-member.d.cts +86 -0
- package/highlevel/types/peers/chat-permissions.d.cts +127 -0
- package/highlevel/types/peers/chat-photo.d.cts +39 -0
- package/highlevel/types/peers/chat-preview.d.cts +55 -0
- package/highlevel/types/peers/chat.d.cts +250 -0
- package/highlevel/types/peers/chatlist-preview.d.cts +21 -0
- package/highlevel/types/peers/forum-topic.d.cts +96 -0
- package/highlevel/types/peers/full-chat.cjs +1 -1
- package/highlevel/types/peers/full-chat.d.cts +161 -0
- package/highlevel/types/peers/full-chat.js +1 -1
- package/highlevel/types/peers/full-user.d.cts +115 -0
- package/highlevel/types/peers/index.d.cts +19 -0
- package/highlevel/types/peers/index.d.ts +1 -0
- package/highlevel/types/peers/peer.d.cts +49 -0
- package/highlevel/types/peers/peers-index.d.cts +15 -0
- package/highlevel/types/peers/peers-index.test.d.cts +1 -0
- package/highlevel/types/peers/typing-status.d.cts +26 -0
- package/highlevel/types/peers/user.d.cts +268 -0
- package/highlevel/types/peers/user.test.d.cts +1 -0
- package/highlevel/types/premium/boost-slot.d.cts +37 -0
- package/highlevel/types/premium/boost-stats.d.cts +54 -0
- package/highlevel/types/premium/boost.d.cts +56 -0
- package/highlevel/types/premium/boost.d.ts +1 -2
- package/highlevel/types/premium/business-account.d.cts +19 -0
- package/highlevel/types/premium/business-chat-link.d.cts +19 -0
- package/highlevel/types/premium/business-connection.d.cts +23 -0
- package/highlevel/types/premium/business-intro.d.cts +22 -0
- package/highlevel/types/premium/business-location.d.cts +10 -0
- package/highlevel/types/premium/business-work-hours.d.cts +42 -0
- package/highlevel/types/premium/business-work-hours.test.d.cts +1 -0
- package/highlevel/types/premium/index.d.cts +12 -0
- package/highlevel/types/premium/index.d.ts +1 -0
- package/highlevel/types/premium/stars-gift.d.cts +68 -0
- package/highlevel/types/premium/stars-status.d.cts +16 -0
- package/highlevel/types/premium/stars-status.d.ts +1 -1
- package/highlevel/types/premium/stars-transaction.cjs +7 -3
- package/highlevel/types/premium/stars-transaction.d.cts +134 -0
- package/highlevel/types/premium/stars-transaction.d.ts +1 -1
- package/highlevel/types/premium/stars-transaction.js +7 -3
- package/highlevel/types/reactions/emoji-status.d.cts +12 -0
- package/highlevel/types/reactions/index.d.cts +4 -0
- package/highlevel/types/reactions/index.d.ts +2 -0
- package/highlevel/types/reactions/peer-reaction.d.cts +53 -0
- package/highlevel/types/reactions/reaction-count.d.cts +25 -0
- package/highlevel/types/reactions/types.d.cts +16 -0
- package/highlevel/types/stories/all-stories.d.cts +28 -0
- package/highlevel/types/stories/index.d.cts +7 -0
- package/highlevel/types/stories/interactive/base.d.cts +16 -0
- package/highlevel/types/stories/interactive/channel-post.d.cts +17 -0
- package/highlevel/types/stories/interactive/index.d.cts +12 -0
- package/highlevel/types/stories/interactive/input.d.cts +68 -0
- package/highlevel/types/stories/interactive/location.d.cts +15 -0
- package/highlevel/types/stories/interactive/reaction.d.cts +21 -0
- package/highlevel/types/stories/interactive/url.d.cts +11 -0
- package/highlevel/types/stories/interactive/venue.d.cts +28 -0
- package/highlevel/types/stories/interactive/weather.d.cts +15 -0
- package/highlevel/types/stories/peer-stories.d.cts +20 -0
- package/highlevel/types/stories/stealth-mode.d.cts +9 -0
- package/highlevel/types/stories/story-interactions.d.cts +34 -0
- package/highlevel/types/stories/story-viewer.d.cts +75 -0
- package/highlevel/types/stories/story.d.cts +79 -0
- package/highlevel/types/updates/bot-chat-join-request.d.cts +42 -0
- package/highlevel/types/updates/bot-reaction.d.cts +71 -0
- package/highlevel/types/updates/bot-stopped.d.cts +28 -0
- package/highlevel/types/updates/business-message.d.cts +18 -0
- package/highlevel/types/updates/callback-query.d.cts +95 -0
- package/highlevel/types/updates/chat-join-request.d.cts +30 -0
- package/highlevel/types/updates/chat-member-update.cjs +1 -0
- package/highlevel/types/updates/chat-member-update.d.cts +76 -0
- package/highlevel/types/updates/chat-member-update.js +1 -0
- package/highlevel/types/updates/chosen-inline-result.d.cts +50 -0
- package/highlevel/types/updates/delete-business-message-update.d.cts +21 -0
- package/highlevel/types/updates/delete-message-update.d.cts +16 -0
- package/highlevel/types/updates/delete-story-update.d.cts +18 -0
- package/highlevel/types/updates/history-read-update.d.cts +39 -0
- package/highlevel/types/updates/index.d.cts +107 -0
- package/highlevel/types/updates/inline-query.d.cts +42 -0
- package/highlevel/types/updates/parse-update.d.cts +4 -0
- package/highlevel/types/updates/poll-update.d.cts +39 -0
- package/highlevel/types/updates/poll-vote.d.cts +52 -0
- package/highlevel/types/updates/pre-checkout-query.d.cts +36 -0
- package/highlevel/types/updates/story-update.d.cts +22 -0
- package/highlevel/types/updates/user-status-update.d.cts +28 -0
- package/highlevel/types/updates/user-typing-update.d.cts +31 -0
- package/highlevel/types/utils.d.cts +12 -0
- package/highlevel/updates/index.d.cts +2 -0
- package/highlevel/updates/manager.d.cts +121 -0
- package/highlevel/updates/parsed.d.cts +26 -0
- package/highlevel/updates/types.d.cts +147 -0
- package/highlevel/updates/utils.d.cts +21 -0
- package/highlevel/utils/convert-file-id.d.cts +46 -0
- package/highlevel/utils/entities.d.cts +19 -0
- package/highlevel/utils/entities.test.d.cts +1 -0
- package/highlevel/utils/file-type.d.cts +2 -0
- package/highlevel/utils/file-type.test.d.cts +1 -0
- package/highlevel/utils/file-utils.d.cts +31 -0
- package/highlevel/utils/file-utils.test.d.cts +1 -0
- package/highlevel/utils/index.d.cts +11 -0
- package/highlevel/utils/inline-utils.d.cts +14 -0
- package/highlevel/utils/inline-utils.test.d.cts +1 -0
- package/highlevel/utils/inspectable.d.cts +9 -0
- package/highlevel/utils/inspectable.test.d.cts +1 -0
- package/highlevel/utils/memoize.d.cts +1 -0
- package/highlevel/utils/memoize.test.d.cts +1 -0
- package/highlevel/utils/misc-utils.d.cts +12 -0
- package/highlevel/utils/peer-utils.d.cts +11 -0
- package/highlevel/utils/peer-utils.test.d.cts +1 -0
- package/highlevel/utils/query-batcher.d.cts +49 -0
- package/highlevel/utils/query-batcher.test.d.cts +1 -0
- package/highlevel/utils/rps-meter.d.cts +9 -0
- package/highlevel/utils/stream-utils.d.cts +1 -0
- package/highlevel/utils/string-session.d.cts +16 -0
- package/highlevel/utils/string-session.test.d.cts +1 -0
- package/highlevel/utils/voice-utils.d.cts +14 -0
- package/highlevel/utils/voice-utils.test.d.cts +1 -0
- package/highlevel/worker/app-config.d.cts +9 -0
- package/highlevel/worker/errors.d.cts +8 -0
- package/highlevel/worker/index.d.cts +3 -0
- package/highlevel/worker/invoker.d.cts +18 -0
- package/highlevel/worker/port.d.cts +60 -0
- package/highlevel/worker/protocol.d.cts +57 -0
- package/highlevel/worker/storage.d.cts +39 -0
- package/highlevel/worker/worker.d.cts +15 -0
- package/index.cjs +8 -0
- package/index.d.cts +10 -0
- package/index.js +8 -0
- package/methods.d.cts +1 -0
- package/network/auth-key.d.cts +21 -0
- package/network/auth-key.test.d.cts +1 -0
- package/network/authorization.d.cts +9 -0
- package/network/client.d.cts +218 -0
- package/network/config-manager.d.cts +19 -0
- package/network/config-manager.test.d.cts +1 -0
- package/network/index.d.cts +6 -0
- package/network/middlewares/bundle.d.cts +3 -0
- package/network/middlewares/default.d.cts +8 -0
- package/network/middlewares/flood-waiter.d.cts +37 -0
- package/network/middlewares/index.d.cts +4 -0
- package/network/middlewares/index.d.ts +2 -0
- package/network/middlewares/internal-errors.d.cts +17 -0
- package/network/middlewares/on-error.d.cts +30 -0
- package/network/middlewares/on-method.d.cts +39 -0
- package/network/mtproto-session.d.cts +127 -0
- package/network/mtproxy/_fake-tls.d.cts +22 -0
- package/network/mtproxy/index.d.cts +42 -0
- package/network/multi-session-connection.cjs +25 -43
- package/network/multi-session-connection.d.cts +43 -0
- package/network/multi-session-connection.d.ts +5 -5
- package/network/multi-session-connection.js +25 -43
- package/network/network-manager.cjs +7 -20
- package/network/network-manager.d.cts +256 -0
- package/network/network-manager.js +7 -20
- package/network/persistent-connection.cjs +8 -0
- package/network/persistent-connection.d.cts +55 -0
- package/network/persistent-connection.d.ts +3 -1
- package/network/persistent-connection.js +8 -0
- package/network/server-salt.d.cts +12 -0
- package/network/session-connection.cjs +35 -18
- package/network/session-connection.d.cts +94 -0
- package/network/session-connection.d.ts +5 -3
- package/network/session-connection.js +35 -18
- package/network/transports/abstract.d.cts +47 -0
- package/network/transports/index.d.cts +3 -0
- package/network/transports/intermediate.d.cts +23 -0
- package/network/transports/intermediate.test.d.cts +1 -0
- package/network/transports/obfuscated.d.cts +23 -0
- package/network/transports/obfuscated.test.d.cts +1 -0
- package/package.json +13 -13
- package/storage/driver.d.cts +58 -0
- package/storage/index.d.cts +6 -0
- package/storage/memory/driver.d.cts +6 -0
- package/storage/memory/index.d.cts +22 -0
- package/storage/memory/memory.test.d.cts +1 -0
- package/storage/memory/repository/auth-keys.d.cts +19 -0
- package/storage/memory/repository/kv.d.cts +11 -0
- package/storage/memory/repository/peers.d.cts +18 -0
- package/storage/memory/repository/ref-messages.d.cts +16 -0
- package/storage/provider.d.cts +10 -0
- package/storage/repository/auth-keys.d.cts +41 -0
- package/storage/repository/index.d.cts +2 -0
- package/storage/repository/key-value.d.cts +10 -0
- package/storage/service/auth-keys.d.cts +9 -0
- package/storage/service/auth-keys.test.d.cts +1 -0
- package/storage/service/base.d.cts +19 -0
- package/storage/service/default-dcs.d.cts +10 -0
- package/storage/service/future-salts.d.cts +11 -0
- package/storage/service/updates.test.d.cts +1 -0
- package/storage/service/utils.test-utils.d.cts +2 -0
- package/storage/sqlite/driver.d.cts +24 -0
- package/storage/sqlite/index.d.cts +17 -0
- package/storage/sqlite/repository/auth-keys.d.cts +20 -0
- package/storage/sqlite/repository/kv.d.cts +14 -0
- package/storage/sqlite/repository/peers.d.cts +19 -0
- package/storage/sqlite/repository/ref-messages.d.cts +16 -0
- package/storage/sqlite/types.d.cts +18 -0
- package/storage/storage.d.cts +55 -0
- package/types/errors.d.cts +53 -0
- package/types/index.d.cts +4 -0
- package/types/peers.d.cts +4 -0
- package/types/platform.d.cts +15 -0
- package/types/utils.d.cts +9 -0
- package/utils/abort-signal.d.cts +1 -0
- package/utils/bigint-utils.d.cts +18 -0
- package/utils/bigint-utils.test.d.cts +1 -0
- package/utils/binary/asn1-parser.d.cts +17 -0
- package/utils/crypto/abstract.d.cts +29 -0
- package/utils/crypto/factorization.d.cts +6 -0
- package/utils/crypto/factorization.test.d.cts +1 -0
- package/utils/crypto/index.d.cts +6 -0
- package/utils/crypto/keys.d.cts +27 -0
- package/utils/crypto/keys.test.d.cts +1 -0
- package/utils/crypto/miller-rabin.d.cts +2 -0
- package/utils/crypto/miller-rabin.test.d.cts +1 -0
- package/utils/crypto/mtproto.d.cts +31 -0
- package/utils/crypto/mtproto.test.d.cts +1 -0
- package/utils/crypto/password.d.cts +29 -0
- package/utils/crypto/password.test.d.cts +1 -0
- package/utils/dcs.d.cts +18 -0
- package/utils/early-timer.d.cts +41 -0
- package/utils/error-reporting.d.cts +3 -0
- package/utils/function-utils.d.cts +22 -0
- package/utils/function-utils.test.d.cts +1 -0
- package/utils/index.d.cts +20 -0
- package/utils/linked-list.d.cts +21 -0
- package/utils/linked-list.test.d.cts +1 -0
- package/utils/links/bots.d.cts +72 -0
- package/utils/links/bots.test.d.cts +1 -0
- package/utils/links/bundle.d.cts +7 -0
- package/utils/links/calls.d.cts +17 -0
- package/utils/links/chat.d.cts +47 -0
- package/utils/links/chat.test.d.cts +1 -0
- package/utils/links/common.d.cts +31 -0
- package/utils/links/index.d.cts +2 -0
- package/utils/links/misc.d.cts +26 -0
- package/utils/links/misc.test.d.cts +1 -0
- package/utils/links/proxy.d.cts +18 -0
- package/utils/links/proxy.test.d.cts +1 -0
- package/utils/links/stickers.d.cts +10 -0
- package/utils/links/user.d.cts +28 -0
- package/utils/links/user.test.d.cts +1 -0
- package/utils/logger.d.cts +54 -0
- package/utils/logger.test.d.cts +1 -0
- package/utils/long-utils.d.cts +67 -0
- package/utils/long-utils.test.d.cts +1 -0
- package/utils/misc-utils.d.cts +2 -0
- package/utils/peer-utils.d.cts +29 -0
- package/utils/peer-utils.test.d.cts +1 -0
- package/utils/sorted-array.d.cts +17 -0
- package/utils/sorted-array.test.d.cts +1 -0
- package/utils/timers.d.cts +1 -0
- package/utils/tl-json.d.cts +13 -0
- package/utils/tl-json.test.d.cts +1 -0
- package/utils/type-assertions.d.cts +29 -0
- package/utils/type-assertions.test.d.cts +1 -0
- package/utils.d.cts +1 -0
- 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 {
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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,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
|
|
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.
|
|
15
|
-
"@fuman/net": "0.0.
|
|
16
|
-
"@fuman/utils": "0.0.
|
|
17
|
-
"@mtcute/file-id": "0.18.0
|
|
18
|
-
"@mtcute/tl": "0.
|
|
19
|
-
"@mtcute/tl-runtime": "0.
|
|
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,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,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 {};
|