@mtcute/core 0.10.2 → 0.11.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/cjs/highlevel/base.d.ts +1 -1
- package/cjs/highlevel/base.js +29 -23
- package/cjs/highlevel/base.js.map +1 -1
- package/cjs/highlevel/client.d.ts +3 -2
- package/cjs/highlevel/client.js +1 -0
- package/cjs/highlevel/client.js.map +1 -1
- package/cjs/highlevel/managers/app-config-manager.js +7 -5
- package/cjs/highlevel/managers/app-config-manager.js.map +1 -1
- package/cjs/highlevel/methods/_init.js.map +1 -1
- package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
- package/cjs/highlevel/methods/auth/start.js.map +1 -1
- package/cjs/highlevel/methods/auth/utils.js.map +1 -1
- package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
- package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
- package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
- package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
- package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
- package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
- package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
- package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
- package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
- package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
- package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
- package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
- package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
- package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
- package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
- package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
- package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
- package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
- package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
- package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
- package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
- package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
- package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
- package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
- package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
- package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
- package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
- package/cjs/highlevel/methods/files/download-iterable.js +1 -1
- package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
- package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
- package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
- package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
- package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
- package/cjs/highlevel/methods/files/normalize-input-media.js +1 -2
- package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
- package/cjs/highlevel/methods/files/upload-file.js +7 -6
- package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
- package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
- package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
- package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
- package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
- package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
- package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
- package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
- package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
- package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
- package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-history.js +5 -1
- package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
- package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
- package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
- package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
- package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
- package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
- package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
- package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
- package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
- package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
- package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
- package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
- package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
- package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
- package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
- package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
- package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
- package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
- package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
- package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
- package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
- package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
- package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
- package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
- package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
- package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
- package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
- package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
- package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
- package/cjs/highlevel/methods/users/get-users.js.map +1 -1
- package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
- package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
- package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
- package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
- package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
- package/cjs/highlevel/storage/service/current-user.js +2 -0
- package/cjs/highlevel/storage/service/current-user.js.map +1 -1
- package/cjs/highlevel/storage/service/peers.js +5 -1
- package/cjs/highlevel/storage/service/peers.js.map +1 -1
- package/cjs/highlevel/storage/service/ref-messages.js +3 -0
- package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
- package/cjs/highlevel/storage/service/updates.js +1 -0
- package/cjs/highlevel/storage/service/updates.js.map +1 -1
- package/cjs/highlevel/storage/storage.d.ts +1 -1
- package/cjs/highlevel/storage/storage.js +17 -4
- package/cjs/highlevel/storage/storage.js.map +1 -1
- package/cjs/highlevel/types/auth/sent-code.js +1 -0
- package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
- package/cjs/highlevel/types/bots/game-high-score.js +2 -0
- package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
- package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
- package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
- package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
- package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
- package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
- package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
- package/cjs/highlevel/types/conversation.js +13 -7
- package/cjs/highlevel/types/conversation.js.map +1 -1
- package/cjs/highlevel/types/errors.js +3 -0
- package/cjs/highlevel/types/errors.js.map +1 -1
- package/cjs/highlevel/types/files/file-location.js +3 -0
- package/cjs/highlevel/types/files/file-location.js.map +1 -1
- package/cjs/highlevel/types/files/uploaded-file.js +1 -1
- package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
- package/cjs/highlevel/types/files/utils.d.ts +3 -3
- package/cjs/highlevel/types/files/utils.js.map +1 -1
- package/cjs/highlevel/types/files/web-document.js +1 -0
- package/cjs/highlevel/types/files/web-document.js.map +1 -1
- package/cjs/highlevel/types/media/audio.js +3 -2
- package/cjs/highlevel/types/media/audio.js.map +1 -1
- package/cjs/highlevel/types/media/contact.js +2 -1
- package/cjs/highlevel/types/media/contact.js.map +1 -1
- package/cjs/highlevel/types/media/dice.js +125 -124
- package/cjs/highlevel/types/media/dice.js.map +1 -1
- package/cjs/highlevel/types/media/document-utils.js.map +1 -1
- package/cjs/highlevel/types/media/document.js +2 -4
- package/cjs/highlevel/types/media/document.js.map +1 -1
- package/cjs/highlevel/types/media/game.js +2 -1
- package/cjs/highlevel/types/media/game.js.map +1 -1
- package/cjs/highlevel/types/media/invoice.js +4 -1
- package/cjs/highlevel/types/media/invoice.js.map +1 -1
- package/cjs/highlevel/types/media/location.js +4 -5
- package/cjs/highlevel/types/media/location.js.map +1 -1
- package/cjs/highlevel/types/media/photo.js +8 -1
- package/cjs/highlevel/types/media/photo.js.map +1 -1
- package/cjs/highlevel/types/media/poll.js +4 -1
- package/cjs/highlevel/types/media/poll.js.map +1 -1
- package/cjs/highlevel/types/media/sticker.js +3 -1
- package/cjs/highlevel/types/media/sticker.js.map +1 -1
- package/cjs/highlevel/types/media/story.js +3 -1
- package/cjs/highlevel/types/media/story.js.map +1 -1
- package/cjs/highlevel/types/media/thumbnail.js +35 -22
- package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
- package/cjs/highlevel/types/media/venue.js +2 -1
- package/cjs/highlevel/types/media/venue.js.map +1 -1
- package/cjs/highlevel/types/media/video.js +3 -1
- package/cjs/highlevel/types/media/video.js.map +1 -1
- package/cjs/highlevel/types/media/voice.js +2 -1
- package/cjs/highlevel/types/media/voice.js.map +1 -1
- package/cjs/highlevel/types/media/web-page.js +2 -1
- package/cjs/highlevel/types/media/web-page.js.map +1 -1
- package/cjs/highlevel/types/messages/dialog.js +3 -0
- package/cjs/highlevel/types/messages/dialog.js.map +1 -1
- package/cjs/highlevel/types/messages/draft-message.js +1 -0
- package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
- package/cjs/highlevel/types/messages/message-action.js.map +1 -1
- package/cjs/highlevel/types/messages/message-entity.js +2 -0
- package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
- package/cjs/highlevel/types/messages/message-forward.js +2 -0
- package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
- package/cjs/highlevel/types/messages/message-media.js.map +1 -1
- package/cjs/highlevel/types/messages/message-reactions.js +4 -0
- package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
- package/cjs/highlevel/types/messages/message-replies.js +2 -0
- package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
- package/cjs/highlevel/types/messages/message.js +6 -0
- package/cjs/highlevel/types/messages/message.js.map +1 -1
- package/cjs/highlevel/types/messages/replied-message.js +2 -0
- package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
- package/cjs/highlevel/types/misc/sticker-set.js +7 -1
- package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
- package/cjs/highlevel/types/misc/takeout-session.js +5 -0
- package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-colors.js +2 -0
- package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
- package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
- package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
- package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-location.js +1 -0
- package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-member.js +2 -0
- package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
- package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-photo.js +5 -0
- package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-preview.js +2 -0
- package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
- package/cjs/highlevel/types/peers/chat.js +12 -1
- package/cjs/highlevel/types/peers/chat.js.map +1 -1
- package/cjs/highlevel/types/peers/forum-topic.js +9 -6
- package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
- package/cjs/highlevel/types/peers/peer.js.map +1 -1
- package/cjs/highlevel/types/peers/peers-index.js +3 -1
- package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
- package/cjs/highlevel/types/peers/user.js +5 -1
- package/cjs/highlevel/types/peers/user.js.map +1 -1
- package/cjs/highlevel/types/premium/boost-slot.js +2 -0
- package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
- package/cjs/highlevel/types/premium/boost-stats.js +1 -0
- package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
- package/cjs/highlevel/types/premium/boost.js +2 -0
- package/cjs/highlevel/types/premium/boost.js.map +1 -1
- package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
- package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
- package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
- package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
- package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
- package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
- package/cjs/highlevel/types/reactions/types.js.map +1 -1
- package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
- package/cjs/highlevel/types/stories/all-stories.js +3 -1
- package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/base.js +1 -0
- package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
- package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/input.js +1 -0
- package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/location.js +2 -1
- package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
- package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
- package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
- package/cjs/highlevel/types/stories/peer-stories.js +2 -0
- package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
- package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
- package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
- package/cjs/highlevel/types/stories/story-interactions.js +2 -0
- package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
- package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
- package/cjs/highlevel/types/stories/story-viewer.js +6 -0
- package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
- package/cjs/highlevel/types/stories/story.js +2 -0
- package/cjs/highlevel/types/stories/story.js.map +1 -1
- package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
- package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
- package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
- package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
- package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
- package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
- package/cjs/highlevel/types/updates/callback-query.js +4 -0
- package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
- package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
- package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
- package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
- package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
- package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
- package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
- package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
- package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
- package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
- package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
- package/cjs/highlevel/types/updates/history-read-update.js +1 -0
- package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
- package/cjs/highlevel/types/updates/inline-query.js +2 -0
- package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
- package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
- package/cjs/highlevel/types/updates/poll-update.js +2 -0
- package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
- package/cjs/highlevel/types/updates/poll-vote.js +2 -0
- package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
- package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
- package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
- package/cjs/highlevel/types/updates/story-update.js +2 -0
- package/cjs/highlevel/types/updates/story-update.js.map +1 -1
- package/cjs/highlevel/types/updates/user-status-update.js +1 -0
- package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
- package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
- package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
- package/cjs/highlevel/updates/manager.d.ts +1 -1
- package/cjs/highlevel/updates/manager.js +50 -28
- package/cjs/highlevel/updates/manager.js.map +1 -1
- package/cjs/highlevel/updates/parsed.js.map +1 -1
- package/cjs/highlevel/updates/utils.js.map +1 -1
- package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
- package/cjs/highlevel/utils/entities.js.map +1 -1
- package/cjs/highlevel/utils/file-type.d.ts +1 -0
- package/cjs/highlevel/utils/file-type.js +35 -1
- package/cjs/highlevel/utils/file-type.js.map +1 -1
- package/cjs/highlevel/utils/file-utils.js +1 -1
- package/cjs/highlevel/utils/file-utils.js.map +1 -1
- package/cjs/highlevel/utils/inline-utils.js.map +1 -1
- package/cjs/highlevel/utils/inspectable.js.map +1 -1
- package/cjs/highlevel/utils/memoize.js.map +1 -1
- package/cjs/highlevel/utils/peer-utils.js.map +1 -1
- package/cjs/highlevel/utils/query-batcher.js.map +1 -1
- package/cjs/highlevel/utils/rps-meter.js +3 -0
- package/cjs/highlevel/utils/rps-meter.js.map +1 -1
- package/cjs/highlevel/utils/stream-utils.js.map +1 -1
- package/cjs/highlevel/utils/string-session.d.ts +1 -2
- package/cjs/highlevel/utils/string-session.js +27 -7
- package/cjs/highlevel/utils/string-session.js.map +1 -1
- package/cjs/highlevel/utils/voice-utils.js.map +1 -1
- package/cjs/highlevel/worker/app-config.d.ts +2 -3
- package/cjs/highlevel/worker/app-config.js +6 -3
- package/cjs/highlevel/worker/app-config.js.map +1 -1
- package/cjs/highlevel/worker/errors.js.map +1 -1
- package/cjs/highlevel/worker/invoker.js +3 -2
- package/cjs/highlevel/worker/invoker.js.map +1 -1
- package/cjs/highlevel/worker/port.d.ts +16 -17
- package/cjs/highlevel/worker/port.js +74 -49
- package/cjs/highlevel/worker/port.js.map +1 -1
- package/cjs/highlevel/worker/protocol.d.ts +2 -2
- package/cjs/highlevel/worker/protocol.js.map +1 -1
- package/cjs/highlevel/worker/storage.d.ts +9 -13
- package/cjs/highlevel/worker/storage.js +34 -19
- package/cjs/highlevel/worker/storage.js.map +1 -1
- package/cjs/highlevel/worker/worker.js +3 -0
- package/cjs/highlevel/worker/worker.js.map +1 -1
- package/cjs/network/auth-key.js +8 -1
- package/cjs/network/auth-key.js.map +1 -1
- package/cjs/network/authorization.js.map +1 -1
- package/cjs/network/client.d.ts +1 -1
- package/cjs/network/client.js +39 -14
- package/cjs/network/client.js.map +1 -1
- package/cjs/network/config-manager.js.map +1 -1
- package/cjs/network/mtproto-session.d.ts +1 -1
- package/cjs/network/mtproto-session.js +40 -30
- package/cjs/network/mtproto-session.js.map +1 -1
- package/cjs/network/multi-session-connection.d.ts +2 -2
- package/cjs/network/multi-session-connection.js +13 -7
- package/cjs/network/multi-session-connection.js.map +1 -1
- package/cjs/network/network-manager.d.ts +2 -3
- package/cjs/network/network-manager.js +49 -28
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/persistent-connection.d.ts +3 -3
- package/cjs/network/persistent-connection.js +33 -22
- package/cjs/network/persistent-connection.js.map +1 -1
- package/cjs/network/server-salt.js +4 -5
- package/cjs/network/server-salt.js.map +1 -1
- package/cjs/network/session-connection.d.ts +1 -1
- package/cjs/network/session-connection.js +22 -12
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/network/transports/abstract.d.ts +2 -2
- package/cjs/network/transports/abstract.js +1 -0
- package/cjs/network/transports/abstract.js.map +1 -1
- package/cjs/network/transports/intermediate.js +1 -0
- package/cjs/network/transports/intermediate.js.map +1 -1
- package/cjs/network/transports/obfuscated.js +3 -0
- package/cjs/network/transports/obfuscated.js.map +1 -1
- package/cjs/network/transports/streamed.d.ts +1 -1
- package/cjs/network/transports/streamed.js +1 -4
- package/cjs/network/transports/streamed.js.map +1 -1
- package/cjs/network/transports/wrapped.d.ts +1 -1
- package/cjs/network/transports/wrapped.js +2 -0
- package/cjs/network/transports/wrapped.js.map +1 -1
- package/cjs/platform.js.map +1 -1
- package/cjs/storage/driver.js +3 -4
- package/cjs/storage/driver.js.map +1 -1
- package/cjs/storage/memory/driver.js +1 -3
- package/cjs/storage/memory/driver.js.map +1 -1
- package/cjs/storage/memory/index.js +5 -7
- package/cjs/storage/memory/index.js.map +1 -1
- package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
- package/cjs/storage/memory/repository/auth-keys.js +2 -0
- package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
- package/cjs/storage/memory/repository/kv.d.ts +1 -1
- package/cjs/storage/memory/repository/kv.js +2 -0
- package/cjs/storage/memory/repository/kv.js.map +1 -1
- package/cjs/storage/memory/repository/peers.d.ts +1 -1
- package/cjs/storage/memory/repository/peers.js +2 -0
- package/cjs/storage/memory/repository/peers.js.map +1 -1
- package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
- package/cjs/storage/memory/repository/ref-messages.js +2 -0
- package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
- package/cjs/storage/service/auth-keys.js +2 -0
- package/cjs/storage/service/auth-keys.js.map +1 -1
- package/cjs/storage/service/base.js +4 -0
- package/cjs/storage/service/base.js.map +1 -1
- package/cjs/storage/service/default-dcs.js +2 -0
- package/cjs/storage/service/default-dcs.js.map +1 -1
- package/cjs/storage/service/future-salts.js +2 -1
- package/cjs/storage/service/future-salts.js.map +1 -1
- package/cjs/storage/sqlite/driver.js +10 -10
- package/cjs/storage/sqlite/driver.js.map +1 -1
- package/cjs/storage/sqlite/index.d.ts +1 -1
- package/cjs/storage/sqlite/index.js +5 -0
- package/cjs/storage/sqlite/index.js.map +1 -1
- package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
- package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
- package/cjs/storage/sqlite/repository/kv.js +5 -0
- package/cjs/storage/sqlite/repository/kv.js.map +1 -1
- package/cjs/storage/sqlite/repository/peers.js +6 -0
- package/cjs/storage/sqlite/repository/peers.js.map +1 -1
- package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
- package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
- package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
- package/cjs/storage/storage.d.ts +1 -3
- package/cjs/storage/storage.js +21 -13
- package/cjs/storage/storage.js.map +1 -1
- package/cjs/types/errors.js +13 -0
- package/cjs/types/errors.js.map +1 -1
- package/cjs/utils/async-lock.js +1 -3
- package/cjs/utils/async-lock.js.map +1 -1
- package/cjs/utils/bigint-utils.js.map +1 -1
- package/cjs/utils/binary/asn1-parser.js.map +1 -1
- package/cjs/utils/buffer-utils.js.map +1 -1
- package/cjs/utils/condition-variable.js +2 -0
- package/cjs/utils/condition-variable.js.map +1 -1
- package/cjs/utils/crypto/factorization.js.map +1 -1
- package/cjs/utils/crypto/keys.js.map +1 -1
- package/cjs/utils/crypto/miller-rabin.js.map +1 -1
- package/cjs/utils/crypto/password.js.map +1 -1
- package/cjs/utils/crypto/utils.js.map +1 -1
- package/cjs/utils/dcs.js +1 -1
- package/cjs/utils/dcs.js.map +1 -1
- package/cjs/utils/deque.js +8 -2
- package/cjs/utils/deque.js.map +1 -1
- package/cjs/utils/early-timer.js +4 -1
- package/cjs/utils/early-timer.js.map +1 -1
- package/cjs/utils/error-reporting.js.map +1 -1
- package/cjs/utils/function-utils.js.map +1 -1
- package/cjs/utils/linked-list.js +4 -1
- package/cjs/utils/linked-list.js.map +1 -1
- package/cjs/utils/links/bots.js.map +1 -1
- package/cjs/utils/links/chat.js.map +1 -1
- package/cjs/utils/links/common.js.map +1 -1
- package/cjs/utils/links/misc.js.map +1 -1
- package/cjs/utils/logger.d.ts +2 -2
- package/cjs/utils/logger.js +21 -14
- package/cjs/utils/logger.js.map +1 -1
- package/cjs/utils/long-utils.js +2 -6
- package/cjs/utils/long-utils.js.map +1 -1
- package/cjs/utils/lru-map.js +5 -1
- package/cjs/utils/lru-map.js.map +1 -1
- package/cjs/utils/lru-set.js +4 -0
- package/cjs/utils/lru-set.js.map +1 -1
- package/cjs/utils/peer-utils.js.map +1 -1
- package/cjs/utils/reloadable.d.ts +1 -1
- package/cjs/utils/reloadable.js +10 -7
- package/cjs/utils/reloadable.js.map +1 -1
- package/cjs/utils/sorted-array.js +2 -0
- package/cjs/utils/sorted-array.js.map +1 -1
- package/cjs/utils/tl-json.js.map +1 -1
- package/cjs/utils/type-assertions.js.map +1 -1
- package/esm/highlevel/base.d.ts +1 -1
- package/esm/highlevel/base.js +29 -23
- package/esm/highlevel/base.js.map +1 -1
- package/esm/highlevel/client.d.ts +2 -1
- package/esm/highlevel/client.js +1 -0
- package/esm/highlevel/client.js.map +1 -1
- package/esm/highlevel/managers/app-config-manager.js +7 -5
- package/esm/highlevel/managers/app-config-manager.js.map +1 -1
- package/esm/highlevel/methods/_init.js.map +1 -1
- package/esm/highlevel/methods/auth/start-test.js.map +1 -1
- package/esm/highlevel/methods/auth/start.js.map +1 -1
- package/esm/highlevel/methods/auth/utils.js.map +1 -1
- package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
- package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
- package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
- package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
- package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
- package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
- package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
- package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
- package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
- package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
- package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
- package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
- package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
- package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
- package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
- package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
- package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
- package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
- package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
- package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
- package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
- package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
- package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
- package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
- package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
- package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
- package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
- package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
- package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
- package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
- package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
- package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
- package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
- package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
- package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
- package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
- package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
- package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
- package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
- package/esm/highlevel/methods/files/download-iterable.js +1 -1
- package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
- package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
- package/esm/highlevel/methods/files/download-stream.js.map +1 -1
- package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
- package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
- package/esm/highlevel/methods/files/normalize-input-media.js +1 -2
- package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
- package/esm/highlevel/methods/files/upload-file.js +8 -7
- package/esm/highlevel/methods/files/upload-file.js.map +1 -1
- package/esm/highlevel/methods/files/upload-media.js.map +1 -1
- package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
- package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
- package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
- package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
- package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
- package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
- package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
- package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
- package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
- package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
- package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
- package/esm/highlevel/methods/messages/get-history.js +5 -1
- package/esm/highlevel/methods/messages/get-history.js.map +1 -1
- package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
- package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
- package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
- package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
- package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
- package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
- package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
- package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
- package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
- package/esm/highlevel/methods/messages/read-history.js.map +1 -1
- package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
- package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
- package/esm/highlevel/methods/messages/send-common.js.map +1 -1
- package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
- package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
- package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
- package/esm/highlevel/methods/messages/send-media.js.map +1 -1
- package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
- package/esm/highlevel/methods/messages/send-text.js.map +1 -1
- package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
- package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
- package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
- package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
- package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
- package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
- package/esm/highlevel/methods/misc/with-params.js.map +1 -1
- package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
- package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
- package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
- package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
- package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
- package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
- package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
- package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
- package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
- package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
- package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
- package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
- package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
- package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
- package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
- package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
- package/esm/highlevel/methods/stories/send-story.js.map +1 -1
- package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
- package/esm/highlevel/methods/users/get-users.js.map +1 -1
- package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
- package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
- package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
- package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
- package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
- package/esm/highlevel/storage/service/current-user.js +2 -0
- package/esm/highlevel/storage/service/current-user.js.map +1 -1
- package/esm/highlevel/storage/service/peers.js +5 -1
- package/esm/highlevel/storage/service/peers.js.map +1 -1
- package/esm/highlevel/storage/service/ref-messages.js +3 -0
- package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
- package/esm/highlevel/storage/service/updates.js +1 -0
- package/esm/highlevel/storage/service/updates.js.map +1 -1
- package/esm/highlevel/storage/storage.d.ts +1 -1
- package/esm/highlevel/storage/storage.js +17 -4
- package/esm/highlevel/storage/storage.js.map +1 -1
- package/esm/highlevel/types/auth/sent-code.js +1 -0
- package/esm/highlevel/types/auth/sent-code.js.map +1 -1
- package/esm/highlevel/types/bots/game-high-score.js +2 -0
- package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
- package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
- package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
- package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
- package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
- package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
- package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
- package/esm/highlevel/types/conversation.js +13 -7
- package/esm/highlevel/types/conversation.js.map +1 -1
- package/esm/highlevel/types/errors.js +3 -0
- package/esm/highlevel/types/errors.js.map +1 -1
- package/esm/highlevel/types/files/file-location.js +3 -0
- package/esm/highlevel/types/files/file-location.js.map +1 -1
- package/esm/highlevel/types/files/uploaded-file.js +1 -1
- package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
- package/esm/highlevel/types/files/utils.d.ts +1 -1
- package/esm/highlevel/types/files/utils.js.map +1 -1
- package/esm/highlevel/types/files/web-document.js +1 -0
- package/esm/highlevel/types/files/web-document.js.map +1 -1
- package/esm/highlevel/types/media/audio.js +3 -2
- package/esm/highlevel/types/media/audio.js.map +1 -1
- package/esm/highlevel/types/media/contact.js +2 -1
- package/esm/highlevel/types/media/contact.js.map +1 -1
- package/esm/highlevel/types/media/dice.js +125 -124
- package/esm/highlevel/types/media/dice.js.map +1 -1
- package/esm/highlevel/types/media/document-utils.js.map +1 -1
- package/esm/highlevel/types/media/document.js +2 -4
- package/esm/highlevel/types/media/document.js.map +1 -1
- package/esm/highlevel/types/media/game.js +2 -1
- package/esm/highlevel/types/media/game.js.map +1 -1
- package/esm/highlevel/types/media/invoice.js +4 -1
- package/esm/highlevel/types/media/invoice.js.map +1 -1
- package/esm/highlevel/types/media/location.js +4 -5
- package/esm/highlevel/types/media/location.js.map +1 -1
- package/esm/highlevel/types/media/photo.js +8 -1
- package/esm/highlevel/types/media/photo.js.map +1 -1
- package/esm/highlevel/types/media/poll.js +4 -1
- package/esm/highlevel/types/media/poll.js.map +1 -1
- package/esm/highlevel/types/media/sticker.js +3 -1
- package/esm/highlevel/types/media/sticker.js.map +1 -1
- package/esm/highlevel/types/media/story.js +3 -1
- package/esm/highlevel/types/media/story.js.map +1 -1
- package/esm/highlevel/types/media/thumbnail.js +35 -22
- package/esm/highlevel/types/media/thumbnail.js.map +1 -1
- package/esm/highlevel/types/media/venue.js +2 -1
- package/esm/highlevel/types/media/venue.js.map +1 -1
- package/esm/highlevel/types/media/video.js +3 -1
- package/esm/highlevel/types/media/video.js.map +1 -1
- package/esm/highlevel/types/media/voice.js +2 -1
- package/esm/highlevel/types/media/voice.js.map +1 -1
- package/esm/highlevel/types/media/web-page.js +2 -1
- package/esm/highlevel/types/media/web-page.js.map +1 -1
- package/esm/highlevel/types/messages/dialog.js +3 -0
- package/esm/highlevel/types/messages/dialog.js.map +1 -1
- package/esm/highlevel/types/messages/draft-message.js +1 -0
- package/esm/highlevel/types/messages/draft-message.js.map +1 -1
- package/esm/highlevel/types/messages/message-action.js.map +1 -1
- package/esm/highlevel/types/messages/message-entity.js +2 -0
- package/esm/highlevel/types/messages/message-entity.js.map +1 -1
- package/esm/highlevel/types/messages/message-forward.js +2 -0
- package/esm/highlevel/types/messages/message-forward.js.map +1 -1
- package/esm/highlevel/types/messages/message-media.js.map +1 -1
- package/esm/highlevel/types/messages/message-reactions.js +4 -0
- package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
- package/esm/highlevel/types/messages/message-replies.js +2 -0
- package/esm/highlevel/types/messages/message-replies.js.map +1 -1
- package/esm/highlevel/types/messages/message.js +6 -0
- package/esm/highlevel/types/messages/message.js.map +1 -1
- package/esm/highlevel/types/messages/replied-message.js +2 -0
- package/esm/highlevel/types/messages/replied-message.js.map +1 -1
- package/esm/highlevel/types/misc/sticker-set.js +7 -1
- package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
- package/esm/highlevel/types/misc/takeout-session.js +5 -0
- package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
- package/esm/highlevel/types/peers/chat-colors.js +2 -0
- package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
- package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
- package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
- package/esm/highlevel/types/peers/chat-event/index.js +2 -0
- package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
- package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
- package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
- package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
- package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
- package/esm/highlevel/types/peers/chat-location.js +1 -0
- package/esm/highlevel/types/peers/chat-location.js.map +1 -1
- package/esm/highlevel/types/peers/chat-member.js +2 -0
- package/esm/highlevel/types/peers/chat-member.js.map +1 -1
- package/esm/highlevel/types/peers/chat-permissions.js +1 -0
- package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
- package/esm/highlevel/types/peers/chat-photo.js +5 -0
- package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
- package/esm/highlevel/types/peers/chat-preview.js +2 -0
- package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
- package/esm/highlevel/types/peers/chat.js +12 -1
- package/esm/highlevel/types/peers/chat.js.map +1 -1
- package/esm/highlevel/types/peers/forum-topic.js +9 -6
- package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
- package/esm/highlevel/types/peers/peer.js.map +1 -1
- package/esm/highlevel/types/peers/peers-index.js +3 -1
- package/esm/highlevel/types/peers/peers-index.js.map +1 -1
- package/esm/highlevel/types/peers/user.js +5 -1
- package/esm/highlevel/types/peers/user.js.map +1 -1
- package/esm/highlevel/types/premium/boost-slot.js +2 -0
- package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
- package/esm/highlevel/types/premium/boost-stats.js +1 -0
- package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
- package/esm/highlevel/types/premium/boost.js +2 -0
- package/esm/highlevel/types/premium/boost.js.map +1 -1
- package/esm/highlevel/types/reactions/emoji-status.js +1 -0
- package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
- package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
- package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
- package/esm/highlevel/types/reactions/reaction-count.js +1 -0
- package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
- package/esm/highlevel/types/reactions/types.js.map +1 -1
- package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
- package/esm/highlevel/types/stories/all-stories.js +3 -1
- package/esm/highlevel/types/stories/all-stories.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/base.js +1 -0
- package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
- package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/input.js +1 -0
- package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/location.js +2 -1
- package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
- package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/venue.js +2 -1
- package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
- package/esm/highlevel/types/stories/peer-stories.js +2 -0
- package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
- package/esm/highlevel/types/stories/stealth-mode.js +1 -0
- package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
- package/esm/highlevel/types/stories/story-interactions.js +2 -0
- package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
- package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
- package/esm/highlevel/types/stories/story-viewer.js +6 -0
- package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
- package/esm/highlevel/types/stories/story.js +2 -0
- package/esm/highlevel/types/stories/story.js.map +1 -1
- package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
- package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
- package/esm/highlevel/types/updates/bot-reaction.js +4 -0
- package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
- package/esm/highlevel/types/updates/bot-stopped.js +2 -0
- package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
- package/esm/highlevel/types/updates/callback-query.js +4 -0
- package/esm/highlevel/types/updates/callback-query.js.map +1 -1
- package/esm/highlevel/types/updates/chat-join-request.js +2 -0
- package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
- package/esm/highlevel/types/updates/chat-member-update.js +2 -0
- package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
- package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
- package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
- package/esm/highlevel/types/updates/delete-message-update.js +1 -0
- package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
- package/esm/highlevel/types/updates/delete-story-update.js +2 -0
- package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
- package/esm/highlevel/types/updates/history-read-update.js +1 -0
- package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
- package/esm/highlevel/types/updates/inline-query.js +2 -0
- package/esm/highlevel/types/updates/inline-query.js.map +1 -1
- package/esm/highlevel/types/updates/parse-update.js.map +1 -1
- package/esm/highlevel/types/updates/poll-update.js +2 -0
- package/esm/highlevel/types/updates/poll-update.js.map +1 -1
- package/esm/highlevel/types/updates/poll-vote.js +2 -0
- package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
- package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
- package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
- package/esm/highlevel/types/updates/story-update.js +2 -0
- package/esm/highlevel/types/updates/story-update.js.map +1 -1
- package/esm/highlevel/types/updates/user-status-update.js +1 -0
- package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
- package/esm/highlevel/types/updates/user-typing-update.js +1 -0
- package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
- package/esm/highlevel/updates/manager.js +50 -28
- package/esm/highlevel/updates/manager.js.map +1 -1
- package/esm/highlevel/updates/parsed.js.map +1 -1
- package/esm/highlevel/updates/utils.js.map +1 -1
- package/esm/highlevel/utils/convert-file-id.js.map +1 -1
- package/esm/highlevel/utils/entities.js.map +1 -1
- package/esm/highlevel/utils/file-type.d.ts +1 -0
- package/esm/highlevel/utils/file-type.js +34 -0
- package/esm/highlevel/utils/file-type.js.map +1 -1
- package/esm/highlevel/utils/file-utils.js +1 -1
- package/esm/highlevel/utils/file-utils.js.map +1 -1
- package/esm/highlevel/utils/inline-utils.js.map +1 -1
- package/esm/highlevel/utils/inspectable.js.map +1 -1
- package/esm/highlevel/utils/memoize.js.map +1 -1
- package/esm/highlevel/utils/peer-utils.js.map +1 -1
- package/esm/highlevel/utils/query-batcher.js.map +1 -1
- package/esm/highlevel/utils/rps-meter.js +3 -0
- package/esm/highlevel/utils/rps-meter.js.map +1 -1
- package/esm/highlevel/utils/stream-utils.js.map +1 -1
- package/esm/highlevel/utils/string-session.d.ts +1 -2
- package/esm/highlevel/utils/string-session.js +27 -7
- package/esm/highlevel/utils/string-session.js.map +1 -1
- package/esm/highlevel/utils/voice-utils.js.map +1 -1
- package/esm/highlevel/worker/app-config.d.ts +2 -3
- package/esm/highlevel/worker/app-config.js +6 -3
- package/esm/highlevel/worker/app-config.js.map +1 -1
- package/esm/highlevel/worker/errors.js.map +1 -1
- package/esm/highlevel/worker/invoker.js +3 -2
- package/esm/highlevel/worker/invoker.js.map +1 -1
- package/esm/highlevel/worker/port.d.ts +16 -17
- package/esm/highlevel/worker/port.js +74 -49
- package/esm/highlevel/worker/port.js.map +1 -1
- package/esm/highlevel/worker/protocol.d.ts +1 -1
- package/esm/highlevel/worker/protocol.js.map +1 -1
- package/esm/highlevel/worker/storage.d.ts +9 -13
- package/esm/highlevel/worker/storage.js +34 -19
- package/esm/highlevel/worker/storage.js.map +1 -1
- package/esm/highlevel/worker/worker.js +3 -0
- package/esm/highlevel/worker/worker.js.map +1 -1
- package/esm/network/auth-key.js +8 -1
- package/esm/network/auth-key.js.map +1 -1
- package/esm/network/authorization.js.map +1 -1
- package/esm/network/client.js +39 -14
- package/esm/network/client.js.map +1 -1
- package/esm/network/config-manager.js.map +1 -1
- package/esm/network/mtproto-session.js +40 -30
- package/esm/network/mtproto-session.js.map +1 -1
- package/esm/network/multi-session-connection.d.ts +1 -1
- package/esm/network/multi-session-connection.js +13 -7
- package/esm/network/multi-session-connection.js.map +1 -1
- package/esm/network/network-manager.d.ts +2 -3
- package/esm/network/network-manager.js +49 -28
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/persistent-connection.d.ts +2 -2
- package/esm/network/persistent-connection.js +33 -22
- package/esm/network/persistent-connection.js.map +1 -1
- package/esm/network/server-salt.js +4 -5
- package/esm/network/server-salt.js.map +1 -1
- package/esm/network/session-connection.d.ts +1 -1
- package/esm/network/session-connection.js +22 -12
- package/esm/network/session-connection.js.map +1 -1
- package/esm/network/transports/abstract.d.ts +1 -1
- package/esm/network/transports/abstract.js +1 -0
- package/esm/network/transports/abstract.js.map +1 -1
- package/esm/network/transports/intermediate.js +1 -0
- package/esm/network/transports/intermediate.js.map +1 -1
- package/esm/network/transports/obfuscated.js +3 -0
- package/esm/network/transports/obfuscated.js.map +1 -1
- package/esm/network/transports/streamed.js +1 -4
- package/esm/network/transports/streamed.js.map +1 -1
- package/esm/network/transports/wrapped.js +2 -0
- package/esm/network/transports/wrapped.js.map +1 -1
- package/esm/platform.js.map +1 -1
- package/esm/storage/driver.js +3 -4
- package/esm/storage/driver.js.map +1 -1
- package/esm/storage/memory/driver.js +1 -3
- package/esm/storage/memory/driver.js.map +1 -1
- package/esm/storage/memory/index.js +5 -7
- package/esm/storage/memory/index.js.map +1 -1
- package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
- package/esm/storage/memory/repository/auth-keys.js +2 -0
- package/esm/storage/memory/repository/auth-keys.js.map +1 -1
- package/esm/storage/memory/repository/kv.d.ts +1 -1
- package/esm/storage/memory/repository/kv.js +2 -0
- package/esm/storage/memory/repository/kv.js.map +1 -1
- package/esm/storage/memory/repository/peers.d.ts +1 -1
- package/esm/storage/memory/repository/peers.js +2 -0
- package/esm/storage/memory/repository/peers.js.map +1 -1
- package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
- package/esm/storage/memory/repository/ref-messages.js +2 -0
- package/esm/storage/memory/repository/ref-messages.js.map +1 -1
- package/esm/storage/service/auth-keys.js +2 -0
- package/esm/storage/service/auth-keys.js.map +1 -1
- package/esm/storage/service/base.js +4 -0
- package/esm/storage/service/base.js.map +1 -1
- package/esm/storage/service/default-dcs.js +2 -0
- package/esm/storage/service/default-dcs.js.map +1 -1
- package/esm/storage/service/future-salts.js +2 -1
- package/esm/storage/service/future-salts.js.map +1 -1
- package/esm/storage/sqlite/driver.js +10 -10
- package/esm/storage/sqlite/driver.js.map +1 -1
- package/esm/storage/sqlite/index.d.ts +1 -1
- package/esm/storage/sqlite/index.js +5 -0
- package/esm/storage/sqlite/index.js.map +1 -1
- package/esm/storage/sqlite/repository/auth-keys.js +9 -0
- package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
- package/esm/storage/sqlite/repository/kv.js +5 -0
- package/esm/storage/sqlite/repository/kv.js.map +1 -1
- package/esm/storage/sqlite/repository/peers.js +6 -0
- package/esm/storage/sqlite/repository/peers.js.map +1 -1
- package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
- package/esm/storage/sqlite/repository/ref-messages.js +6 -0
- package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
- package/esm/storage/storage.d.ts +1 -3
- package/esm/storage/storage.js +21 -13
- package/esm/storage/storage.js.map +1 -1
- package/esm/types/errors.js +13 -0
- package/esm/types/errors.js.map +1 -1
- package/esm/utils/async-lock.js +1 -3
- package/esm/utils/async-lock.js.map +1 -1
- package/esm/utils/bigint-utils.js.map +1 -1
- package/esm/utils/binary/asn1-parser.js.map +1 -1
- package/esm/utils/buffer-utils.js.map +1 -1
- package/esm/utils/condition-variable.js +2 -0
- package/esm/utils/condition-variable.js.map +1 -1
- package/esm/utils/crypto/factorization.js.map +1 -1
- package/esm/utils/crypto/keys.js.map +1 -1
- package/esm/utils/crypto/miller-rabin.js.map +1 -1
- package/esm/utils/crypto/password.js.map +1 -1
- package/esm/utils/crypto/utils.js.map +1 -1
- package/esm/utils/dcs.js +1 -1
- package/esm/utils/dcs.js.map +1 -1
- package/esm/utils/deque.js +8 -2
- package/esm/utils/deque.js.map +1 -1
- package/esm/utils/early-timer.js +4 -1
- package/esm/utils/early-timer.js.map +1 -1
- package/esm/utils/error-reporting.js.map +1 -1
- package/esm/utils/function-utils.js.map +1 -1
- package/esm/utils/linked-list.js +4 -1
- package/esm/utils/linked-list.js.map +1 -1
- package/esm/utils/links/bots.js.map +1 -1
- package/esm/utils/links/chat.js.map +1 -1
- package/esm/utils/links/common.js.map +1 -1
- package/esm/utils/links/misc.js.map +1 -1
- package/esm/utils/logger.d.ts +2 -2
- package/esm/utils/logger.js +21 -14
- package/esm/utils/logger.js.map +1 -1
- package/esm/utils/long-utils.js +2 -6
- package/esm/utils/long-utils.js.map +1 -1
- package/esm/utils/lru-map.js +5 -1
- package/esm/utils/lru-map.js.map +1 -1
- package/esm/utils/lru-set.js +4 -0
- package/esm/utils/lru-set.js.map +1 -1
- package/esm/utils/peer-utils.js.map +1 -1
- package/esm/utils/reloadable.js +10 -7
- package/esm/utils/reloadable.js.map +1 -1
- package/esm/utils/sorted-array.js +2 -0
- package/esm/utils/sorted-array.js.map +1 -1
- package/esm/utils/tl-json.js.map +1 -1
- package/esm/utils/type-assertions.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-peer.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/users/resolve-peer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAEtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEpF,kBAAkB;AAClB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAAqB,EACrB,KAAK,GAAG,KAAK;IAEb,mEAAmE;IACnE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtB,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;SACnC;aAAM,IAAI,WAAW,IAAI,MAAM,EAAE;YAC9B,cAAc;YACd,MAAM,GAAG,MAAM,CAAC,SAAS,CAAA;SAC5B;aAAM;YACH,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;SAC/B;KACJ;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,QAAQ,MAAM,CAAC,CAAC,EAAE;YACd,KAAK,8BAA8B;gBAC/B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;gBACtB,MAAK;YACT,KAAK,iCAAiC;gBAClC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC9C,MAAK;YACT;gBACI,OAAO,MAAM,CAAA;SACpB;KACJ;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;QACtC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9D,IAAI,WAAW;YAAE,OAAO,WAAW,CAAA;KACtC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,CAAA;QAEvE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAExC,IAAI,GAAG,CAAA;QAEP,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACvB,eAAe;YACf,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACjE,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAA;YAEnC,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACpB,CAAC,EAAE,uBAAuB;gBAC1B,KAAK,EAAE,MAAM;aAChB,CAAC,CAAA;SACL;aAAM;YACH,WAAW;YACX,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBACpE,IAAI,WAAW;oBAAE,OAAO,WAAW,CAAA;aACtC;YAED,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACpB,CAAC,EAAE,0BAA0B;gBAC7B,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAA;SACL;QAED,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE;YAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;YAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAElD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;oBACnB,kCAAkC;oBAClC,+CAA+C;oBAC/C,sDAAsD;oBACtD,MAAM,IAAI,mBAAmB,CACzB,6BAA6B,MAAM,uCAAuC,CAC7E,CAAA;iBACJ;gBAED,OAAO;oBACH,CAAC,EAAE,eAAe;oBAClB,MAAM,EAAE,KAAK,CAAC,EAAE;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC/B,CAAA;aACJ;SACJ;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,aAAa,EAAE;YACrC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAA;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAElD,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,KAAK,kBAAkB,CAAC,EAAE;oBAC5D,6BAA6B;oBAC7B,+DAA+D;oBAC/D,uDAAuD;oBACvD,MAAM,IAAI,oBAAoB,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;iBACvF;gBAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;oBACnB,qCAAqC;oBACrC,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,MAAM,uCAAuC,CAAC,CAAA;iBACtG;gBAED,OAAO;oBACH,CAAC,EAAE,kBAAkB;oBACrB,SAAS,EAAE,KAAK,CAAC,EAAE;oBACnB,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC/B,CAAA;aACJ;SACJ;aAAM;YACH,6BAA6B;YAC7B,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAC5F;QAED,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAA;KACtE;IAED,4DAA4D;IAC5D,6DAA6D;IAC7D,8BAA8B;IAC9B,qEAAqE;IACrE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAEpD,QAAQ,QAAQ,EAAE;QACd,KAAK,MAAM;YACP,OAAO;gBACH,CAAC,EAAE,eAAe;gBAClB,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,IAAI,CAAC,IAAI;aACxB,CAAA;QACL,KAAK,MAAM;YACP,OAAO;gBACH,CAAC,EAAE,eAAe;gBAClB,MAAM,EAAE,MAAM;aACjB,CAAA;QACL,KAAK,SAAS;YACV,OAAO;gBACH,CAAC,EAAE,kBAAkB;gBACrB,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,IAAI,CAAC,IAAI;aACxB,CAAA;KACR;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAAqB,EACrB,KAAK,GAAG,KAAK;IAEb,OAAO,WAAW,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAuB,EACvB,MAAqB,EACrB,KAAK,GAAG,KAAK;IAEb,OAAO,cAAc,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;AAC3E,CAAC","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { getMarkedPeerId, parseMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { MtPeerNotFoundError } from '../../types/errors.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { toInputChannel, toInputPeer, toInputUser } from '../../utils/peer-utils.js'\n\n// @available=both\n/**\n * Get the `InputPeer` of a known peer id.\n * Useful when an `InputPeer` is needed in Raw API.\n *\n * @param peerId The peer identifier that you want to extract the `InputPeer` from.\n * @param force Whether to force re-fetch the peer from the server (only for usernames and phone numbers)\n */\nexport async function resolvePeer(\n client: ITelegramClient,\n peerId: InputPeerLike,\n force = false,\n): Promise<tl.TypeInputPeer> {\n // for convenience we also accept tl and User/Chat objects directly\n if (typeof peerId === 'object') {\n if (tl.isAnyPeer(peerId)) {\n peerId = getMarkedPeerId(peerId)\n } else if ('inputPeer' in peerId) {\n // User | Chat\n peerId = peerId.inputPeer\n } else {\n peerId = toInputPeer(peerId)\n }\n }\n\n if (typeof peerId === 'object') {\n switch (peerId._) {\n case 'mtcute.dummyInputPeerMinUser':\n peerId = peerId.userId\n break\n case 'mtcute.dummyInputPeerMinChannel':\n peerId = toggleChannelIdMark(peerId.channelId)\n break\n default:\n return peerId\n }\n }\n\n if (typeof peerId === 'number' && !force) {\n const fromStorage = await client.storage.peers.getById(peerId)\n if (fromStorage) return fromStorage\n }\n\n if (typeof peerId === 'string') {\n if (peerId === 'self' || peerId === 'me') return { _: 'inputPeerSelf' }\n\n peerId = peerId.replace(/[@+\\s()]/g, '')\n\n let res\n\n if (peerId.match(/^\\d+$/)) {\n // phone number\n const fromStorage = await client.storage.peers.getByPhone(peerId)\n if (fromStorage) return fromStorage\n\n res = await client.call({\n _: 'contacts.resolvePhone',\n phone: peerId,\n })\n } else {\n // username\n if (!force) {\n const fromStorage = await client.storage.peers.getByUsername(peerId)\n if (fromStorage) return fromStorage\n }\n\n res = await client.call({\n _: 'contacts.resolveUsername',\n username: peerId,\n })\n }\n\n if (res.peer._ === 'peerUser') {\n const id = res.peer.userId\n\n const found = res.users.find((it) => it.id === id)\n\n if (found && found._ === 'user') {\n if (!found.accessHash) {\n // no access hash, we can't use it\n // this may happen when bot resolves a username\n // of a user who hasn't started a conversation with it\n throw new MtPeerNotFoundError(\n `Peer (user) with username ${peerId} was found, but it has no access hash`,\n )\n }\n\n return {\n _: 'inputPeerUser',\n userId: found.id,\n accessHash: found.accessHash,\n }\n }\n } else if (res.peer._ === 'peerChannel') {\n const id = res.peer.channelId\n const found = res.chats.find((it) => it.id === id)\n\n if (found) {\n if (!(found._ === 'channel' || found._ === 'channelForbidden')) {\n // chats can't have usernames\n // furthermore, our id is a channel id, so it must be a channel\n // this should never happen, unless Telegram goes crazy\n throw new MtTypeAssertionError('contacts.resolveUsername#chats', 'channel', found._)\n }\n\n if (!found.accessHash) {\n // shouldn't happen? but just in case\n throw new MtPeerNotFoundError(`Peer (channel) with ${peerId} was found, but it has no access hash`)\n }\n\n return {\n _: 'inputPeerChannel',\n channelId: found.id,\n accessHash: found.accessHash,\n }\n }\n } else {\n // chats can't have usernames\n throw new MtTypeAssertionError('contacts.resolveUsername', 'user or channel', res.peer._)\n }\n\n throw new MtPeerNotFoundError(`Could not find a peer by ${peerId}`)\n }\n\n // in some cases, the server allows us to use access_hash=0.\n // particularly, when we're a bot or we're referencing a user\n // who we have \"seen\" recently\n // if it's not the case, we'll get an `PEER_ID_INVALID` error anyways\n const [peerType, bareId] = parseMarkedPeerId(peerId)\n\n switch (peerType) {\n case 'user':\n return {\n _: 'inputPeerUser',\n userId: bareId,\n accessHash: Long.ZERO,\n }\n case 'chat':\n return {\n _: 'inputPeerChat',\n chatId: bareId,\n }\n case 'channel':\n return {\n _: 'inputPeerChannel',\n channelId: bareId,\n accessHash: Long.ZERO,\n }\n }\n}\n\n/**\n * Shorthand for `resolvePeer` that converts the input peer to `InputUser`.\n */\nexport async function resolveUser(\n client: ITelegramClient,\n peerId: InputPeerLike,\n force = false,\n): Promise<tl.TypeInputUser> {\n return toInputUser(await resolvePeer(client, peerId, force), peerId)\n}\n\n/**\n * Shorthand for `resolvePeer` that converts the input peer to `InputChannel`.\n */\nexport async function resolveChannel(\n client: ITelegramClient,\n peerId: InputPeerLike,\n force = false,\n): Promise<tl.TypeInputChannel> {\n return toInputChannel(await resolvePeer(client, peerId, force), peerId)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resolve-peer.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/users/resolve-peer.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { getMarkedPeerId, parseMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { MtPeerNotFoundError } from '../../types/errors.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { toInputChannel, toInputPeer, toInputUser } from '../../utils/peer-utils.js'\n\n// @available=both\n/**\n * Get the `InputPeer` of a known peer id.\n * Useful when an `InputPeer` is needed in Raw API.\n *\n * @param peerId The peer identifier that you want to extract the `InputPeer` from.\n * @param force Whether to force re-fetch the peer from the server (only for usernames and phone numbers)\n */\nexport async function resolvePeer(\n client: ITelegramClient,\n peerId: InputPeerLike,\n force = false,\n): Promise<tl.TypeInputPeer> {\n // for convenience we also accept tl and User/Chat objects directly\n if (typeof peerId === 'object') {\n if (tl.isAnyPeer(peerId)) {\n peerId = getMarkedPeerId(peerId)\n } else if ('inputPeer' in peerId) {\n // User | Chat\n peerId = peerId.inputPeer\n } else {\n peerId = toInputPeer(peerId)\n }\n }\n\n if (typeof peerId === 'object') {\n switch (peerId._) {\n case 'mtcute.dummyInputPeerMinUser':\n peerId = peerId.userId\n break\n case 'mtcute.dummyInputPeerMinChannel':\n peerId = toggleChannelIdMark(peerId.channelId)\n break\n default:\n return peerId\n }\n }\n\n if (typeof peerId === 'number' && !force) {\n const fromStorage = await client.storage.peers.getById(peerId)\n if (fromStorage) return fromStorage\n }\n\n if (typeof peerId === 'string') {\n if (peerId === 'self' || peerId === 'me') return { _: 'inputPeerSelf' }\n\n peerId = peerId.replace(/[@+\\s()]/g, '')\n\n let res\n\n if (peerId.match(/^\\d+$/)) {\n // phone number\n const fromStorage = await client.storage.peers.getByPhone(peerId)\n if (fromStorage) return fromStorage\n\n res = await client.call({\n _: 'contacts.resolvePhone',\n phone: peerId,\n })\n } else {\n // username\n if (!force) {\n const fromStorage = await client.storage.peers.getByUsername(peerId)\n if (fromStorage) return fromStorage\n }\n\n res = await client.call({\n _: 'contacts.resolveUsername',\n username: peerId,\n })\n }\n\n if (res.peer._ === 'peerUser') {\n const id = res.peer.userId\n\n const found = res.users.find((it) => it.id === id)\n\n if (found && found._ === 'user') {\n if (!found.accessHash) {\n // no access hash, we can't use it\n // this may happen when bot resolves a username\n // of a user who hasn't started a conversation with it\n throw new MtPeerNotFoundError(\n `Peer (user) with username ${peerId} was found, but it has no access hash`,\n )\n }\n\n return {\n _: 'inputPeerUser',\n userId: found.id,\n accessHash: found.accessHash,\n }\n }\n } else if (res.peer._ === 'peerChannel') {\n const id = res.peer.channelId\n const found = res.chats.find((it) => it.id === id)\n\n if (found) {\n if (!(found._ === 'channel' || found._ === 'channelForbidden')) {\n // chats can't have usernames\n // furthermore, our id is a channel id, so it must be a channel\n // this should never happen, unless Telegram goes crazy\n throw new MtTypeAssertionError('contacts.resolveUsername#chats', 'channel', found._)\n }\n\n if (!found.accessHash) {\n // shouldn't happen? but just in case\n throw new MtPeerNotFoundError(`Peer (channel) with ${peerId} was found, but it has no access hash`)\n }\n\n return {\n _: 'inputPeerChannel',\n channelId: found.id,\n accessHash: found.accessHash,\n }\n }\n } else {\n // chats can't have usernames\n throw new MtTypeAssertionError('contacts.resolveUsername', 'user or channel', res.peer._)\n }\n\n throw new MtPeerNotFoundError(`Could not find a peer by ${peerId}`)\n }\n\n // in some cases, the server allows us to use access_hash=0.\n // particularly, when we're a bot or we're referencing a user\n // who we have \"seen\" recently\n // if it's not the case, we'll get an `PEER_ID_INVALID` error anyways\n const [peerType, bareId] = parseMarkedPeerId(peerId)\n\n switch (peerType) {\n case 'user':\n return {\n _: 'inputPeerUser',\n userId: bareId,\n accessHash: Long.ZERO,\n }\n case 'chat':\n return {\n _: 'inputPeerChat',\n chatId: bareId,\n }\n case 'channel':\n return {\n _: 'inputPeerChannel',\n channelId: bareId,\n accessHash: Long.ZERO,\n }\n }\n}\n\n/**\n * Shorthand for `resolvePeer` that converts the input peer to `InputUser`.\n */\nexport async function resolveUser(\n client: ITelegramClient,\n peerId: InputPeerLike,\n force = false,\n): Promise<tl.TypeInputUser> {\n return toInputUser(await resolvePeer(client, peerId, force), peerId)\n}\n\n/**\n * Shorthand for `resolvePeer` that converts the input peer to `InputChannel`.\n */\nexport async function resolveChannel(\n client: ITelegramClient,\n peerId: InputPeerLike,\n force = false,\n): Promise<tl.TypeInputChannel> {\n return toInputChannel(await resolvePeer(client, peerId, force), peerId)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-my-emoji-status.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/users/set-my-emoji-status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAuB,EACvB,KAAqB,EACrB,MAKC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE9B,IAAI,WAA+B,CAAA;IAEnC,IAAI,KAAK,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"set-my-emoji-status.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/users/set-my-emoji-status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAuB,EACvB,KAAqB,EACrB,MAKC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE9B,IAAI,WAA+B,CAAA;IAEnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,WAAW,GAAG,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC3C,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACf,WAAW,GAAG;YACV,CAAC,EAAE,kBAAkB;YACrB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;SAC9B,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,WAAW,GAAG;YACV,CAAC,EAAE,aAAa;YAChB,UAAU,EAAE,KAAK;SACpB,CAAA;IACL,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,2BAA2B;QAC9B,WAAW;KACd,CAAC,CAAA;IAEF,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAA;AAC9C,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { normalizeDate } from '../../utils/index.js'\n\n/**\n * Set an emoji status for the current user\n *\n * @param emoji Custom emoji ID or `null` to remove the emoji\n */\nexport async function setMyEmojiStatus(\n client: ITelegramClient,\n emoji: tl.Long | null,\n params?: {\n /**\n * Date when the emoji status should expire (only if `emoji` is not `null`)\n */\n until?: number | Date\n },\n): Promise<void> {\n const { until } = params ?? {}\n\n let emojiStatus: tl.TypeEmojiStatus\n\n if (emoji === null) {\n emojiStatus = { _: 'emojiStatusEmpty' }\n } else if (until) {\n emojiStatus = {\n _: 'emojiStatusUntil',\n documentId: emoji,\n until: normalizeDate(until),\n }\n } else {\n emojiStatus = {\n _: 'emojiStatus',\n documentId: emoji,\n }\n }\n\n const r = await client.call({\n _: 'account.updateEmojiStatus',\n emojiStatus,\n })\n\n assertTrue('account.updateEmojiStatus', r)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-my-profile-photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/users/set-my-profile-photo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAiB,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAuB,EACvB,MAOC;IAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IACnC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEtB,8CAA8C;IAC9C,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"set-my-profile-photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/users/set-my-profile-photo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAiB,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAuB,EACvB,MAOC;IAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IACnC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEtB,8CAA8C;IAC9C,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC1B,CAAC,EAAE,2BAA2B;gBAC9B,EAAE,EAAE,KAAK;aACZ,CAAC,CAAA;YAEF,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAoB,CAAC,CAAA;QAC9C,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,2BAA2B;QAC9B,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACnF,YAAY,EAAE,UAAU;KAC3B,CAAC,CAAA;IAEF,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAoB,CAAC,CAAA;AAC9C,CAAC","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputFileLike, Photo } from '../../types/index.js'\nimport { fileIdToInputPhoto } from '../../utils/convert-file-id.js'\nimport { _normalizeInputFile } from '../files/normalize-input-file.js'\n\n/**\n * Set a new profile photo or video for the current user.\n *\n * You can also pass a file ID or an InputPhoto to re-use existing photo.\n */\nexport async function setMyProfilePhoto(\n client: ITelegramClient,\n params: {\n /** Media type (photo or video) */\n type: 'photo' | 'video'\n /** Input media file */\n media: InputFileLike | tl.TypeInputPhoto\n /** When `type = video`, timestamp in seconds which will be shown as a static preview. */\n previewSec?: number\n },\n): Promise<Photo> {\n const { type, previewSec } = params\n let { media } = params\n\n // try parsing media as file id or input photo\n if (tdFileId.isFileIdLike(media) || (typeof media === 'object' && tl.isAnyInputPhoto(media))) {\n if (typeof media === 'string' && media.match(/^https?:\\/\\//)) {\n throw new MtArgumentError(\"Profile photo can't be set from URL.\")\n }\n\n if (typeof media !== 'string' || !media.match(/^file:/)) {\n if (tdFileId.isFileIdLike(media)) {\n media = fileIdToInputPhoto(media)\n }\n\n const res = await client.call({\n _: 'photos.updateProfilePhoto',\n id: media,\n })\n\n return new Photo(res.photo as tl.RawPhoto)\n }\n }\n\n const res = await client.call({\n _: 'photos.uploadProfilePhoto',\n [type === 'photo' ? 'file' : 'video']: await _normalizeInputFile(client, media, {}),\n videoStartTs: previewSec,\n })\n\n return new Photo(res.photo as tl.RawPhoto)\n}\n"]}
|
|
@@ -57,10 +57,12 @@ function parse(data) {
|
|
|
57
57
|
}
|
|
58
58
|
// todo: add testMode here
|
|
59
59
|
export class CurrentUserService extends BaseService {
|
|
60
|
+
_kv;
|
|
60
61
|
constructor(_kv, opts) {
|
|
61
62
|
super(opts);
|
|
62
63
|
this._kv = _kv;
|
|
63
64
|
}
|
|
65
|
+
_cached;
|
|
64
66
|
async store(info) {
|
|
65
67
|
if (info && this._cached) {
|
|
66
68
|
// update the existing object so the references to it are still valid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"current-user.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/current-user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAG3F,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAS5D,MAAM,eAAe,GAAG,cAAc,CAAA;AAEtC,SAAS,SAAS,CAAC,IAA4B;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IAE9C,IAAI,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"current-user.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/current-user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter, TlSerializationCounter } from '@mtcute/tl-runtime'\n\nimport { IKeyValueRepository } from '../../../storage/repository/key-value.js'\nimport { BaseService, ServiceOptions } from '../../../storage/service/base.js'\nimport { MtArgumentError } from '../../../types/index.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { extractUsernames } from '../../utils/peer-utils.js'\n\nexport interface CurrentUserInfo {\n userId: number\n isBot: boolean\n isPremium: boolean\n usernames: string[]\n}\n\nconst KV_CURRENT_USER = 'current_user'\n\nfunction serialize(info: CurrentUserInfo | null): Uint8Array {\n if (!info) return new Uint8Array(0)\n\n const hasUsernames = info.usernames.length > 0\n\n let usernamesOverhead = hasUsernames ? 4 : 0\n\n for (const username of info.usernames) {\n // since usernames are always ASCII, string length is the same as byte length\n usernamesOverhead += TlSerializationCounter.countBytesOverhead(username.length) + username.length\n }\n\n const writer = TlBinaryWriter.manual(16 + usernamesOverhead)\n writer.int(1) // version\n\n let flags = 0\n if (info.isBot) flags |= 1\n if (hasUsernames) flags |= 2\n if (info.isPremium) flags |= 4\n\n writer.int(flags)\n writer.int53(info.userId)\n\n if (hasUsernames) {\n writer.int(info.usernames.length)\n\n for (const username of info.usernames) {\n writer.string(username)\n }\n }\n\n return writer.result()\n}\n\nfunction parse(data: Uint8Array): CurrentUserInfo | null {\n if (data.length === 0) return null\n\n const reader = TlBinaryReader.manual(data)\n if (reader.int() !== 1) return null\n\n const flags = reader.int()\n const userId = reader.int53()\n\n let usernames: string[] = []\n\n if (flags & 2) {\n const len = reader.int()\n usernames = new Array<string>(len)\n\n for (let i = 0; i < len; i++) {\n usernames[i] = reader.string()\n }\n }\n\n return {\n userId,\n isBot: (flags & 1) !== 0,\n isPremium: (flags & 4) !== 0,\n usernames,\n }\n}\n\n// todo: add testMode here\n\nexport class CurrentUserService extends BaseService {\n constructor(\n private _kv: IKeyValueRepository,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n private _cached?: CurrentUserInfo | null\n\n async store(info: CurrentUserInfo | null): Promise<void> {\n if (info && this._cached) {\n // update the existing object so the references to it are still valid\n if (this._cached.userId === info.userId) {\n return\n }\n\n this._cached.userId = info.userId\n this._cached.isBot = info.isBot\n } else {\n this._cached = info\n }\n\n await this._kv.set(KV_CURRENT_USER, serialize(info))\n await this._driver.save?.()\n }\n\n async storeFrom(user: tl.TypeUser): Promise<CurrentUserInfo> {\n assertTypeIs('storeFrom', user, 'user')\n\n const obj: CurrentUserInfo = {\n userId: user.id,\n isBot: user.bot!,\n isPremium: user.premium!,\n usernames: extractUsernames(user),\n }\n await this.store(obj)\n\n return obj\n }\n\n async fetch(): Promise<CurrentUserInfo | null> {\n if (this._cached) return this._cached\n\n const data = await this._kv.get(KV_CURRENT_USER)\n if (!data) return null\n\n const info = parse(data)\n this._cached = info\n\n return info\n }\n\n getCached(safe = false): CurrentUserInfo | null {\n if (this._cached === undefined) {\n if (safe) return null\n\n throw new MtArgumentError('User info is not cached yet')\n }\n\n return this._cached\n }\n\n async update(params: { username?: string; usernames?: string[]; isPremium?: boolean }): Promise<void> {\n const info = await this.fetch()\n if (!info) return\n\n const { username, usernames, isPremium } = params\n\n if (isPremium !== undefined) info.isPremium = isPremium\n\n if (username !== undefined) {\n // \"main\" username is always the first one\n info.usernames[0] = username\n } else if (usernames !== undefined) {\n info.usernames = usernames\n }\n\n return this.store(info)\n }\n}\n"]}
|
|
@@ -28,12 +28,16 @@ function getInputPeer(dto) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
export class PeersService extends BaseService {
|
|
31
|
+
options;
|
|
32
|
+
_peers;
|
|
33
|
+
_refs;
|
|
34
|
+
_cache;
|
|
35
|
+
_pendingWrites = new Map();
|
|
31
36
|
constructor(options, _peers, _refs, common) {
|
|
32
37
|
super(common);
|
|
33
38
|
this.options = options;
|
|
34
39
|
this._peers = _peers;
|
|
35
40
|
this._refs = _refs;
|
|
36
|
-
this._pendingWrites = new Map();
|
|
37
41
|
this._cache = new LruMap(options.cacheSize ?? 100);
|
|
38
42
|
}
|
|
39
43
|
async updatePeersFrom(obj) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/peers.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { BaseService, ServiceOptions } from '../../../storage/service/base.js'\nimport { longFromFastString, longToFastString } from '../../../utils/long-utils.js'\nimport { LruMap } from '../../../utils/lru-map.js'\nimport { getAllPeersFrom, parseMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { extractUsernames } from '../../utils/peer-utils.js'\nimport { IPeersRepository } from '../repository/peers.js'\nimport { RefMessagesService } from './ref-messages.js'\n\ninterface CacheItem {\n peer: tl.TypeInputPeer\n complete: tl.TypeUser | tl.TypeChat | null\n}\n\nexport interface PeersServiceOptions {\n cacheSize?: number\n updatesWriteInterval?: number\n}\n\nconst USERNAME_TTL = 24 * 60 * 60 * 1000 // 1 day\n\nfunction getInputPeer(dto: IPeersRepository.PeerInfo): tl.TypeInputPeer {\n const [type, id] = parseMarkedPeerId(dto.id)\n\n switch (type) {\n case 'user':\n return {\n _: 'inputPeerUser',\n userId: id,\n accessHash: longFromFastString(dto.accessHash),\n }\n case 'chat':\n return {\n _: 'inputPeerChat',\n chatId: id,\n }\n case 'channel':\n return {\n _: 'inputPeerChannel',\n channelId: id,\n accessHash: longFromFastString(dto.accessHash),\n }\n }\n}\n\nexport class PeersService extends BaseService {\n private _cache: LruMap<number, CacheItem>\n private _pendingWrites = new Map<number, IPeersRepository.PeerInfo>()\n\n constructor(\n private options: PeersServiceOptions,\n private _peers: IPeersRepository,\n private _refs: RefMessagesService,\n common: ServiceOptions,\n ) {\n super(common)\n\n this._cache = new LruMap(options.cacheSize ?? 100)\n }\n\n async updatePeersFrom(obj: tl.TlObject | tl.TlObject[]) {\n let count = 0\n\n for (const peer of getAllPeersFrom(obj)) {\n // no point in caching min peers as we can't use them\n if ((peer as Extract<typeof peer, { min?: unknown }>).min) continue\n\n count += 1\n\n await this.store(peer)\n }\n\n if (count > 0) {\n await this._driver.save?.()\n this._log.debug('cached %d peers', count)\n\n return true\n }\n\n return false\n }\n\n async store(peer: tl.TypeUser | tl.TypeChat): Promise<void> {\n let dto: IPeersRepository.PeerInfo\n let accessHash: tl.Long\n\n switch (peer._) {\n case 'user': {\n if (!peer.accessHash) {\n this._log.warn('received user without access hash: %j', peer)\n\n return\n }\n\n dto = {\n id: peer.id,\n accessHash: longToFastString(peer.accessHash),\n phone: peer.phone,\n usernames: extractUsernames(peer),\n updated: Date.now(),\n complete: this._serializeTl(peer),\n }\n accessHash = peer.accessHash\n break\n }\n case 'chat':\n case 'chatForbidden': {\n dto = {\n id: -peer.id,\n accessHash: '',\n updated: Date.now(),\n complete: this._serializeTl(peer),\n usernames: [],\n }\n accessHash = Long.ZERO\n break\n }\n case 'channel':\n case 'channelForbidden': {\n if (!peer.accessHash) {\n this._log.warn('received channel without access hash: %j', peer)\n\n return\n }\n\n dto = {\n id: toggleChannelIdMark(peer.id),\n accessHash: longToFastString(peer.accessHash),\n usernames: extractUsernames(peer as tl.RawChannel),\n updated: Date.now(),\n complete: this._serializeTl(peer),\n }\n accessHash = peer.accessHash\n break\n }\n default:\n return\n }\n\n const cached = this._cache.get(peer.id)\n\n if (cached && this.options.updatesWriteInterval !== 0) {\n const oldAccessHash = (cached.peer as Extract<tl.TypeInputPeer, { accessHash?: unknown }>).accessHash\n\n if (oldAccessHash?.eq(accessHash)) {\n // when entity is cached and hash is the same, an update query is needed,\n // since some field in the full entity might have changed, or the username/phone\n //\n // to avoid too many DB calls, and since these updates are pretty common,\n // they are grouped and applied in batches no more than once every 30sec (or user-defined).\n //\n // until then, they are either served from in-memory cache,\n // or an older version is fetched from DB\n\n this._pendingWrites.set(peer.id, dto)\n cached.complete = peer\n\n return\n }\n }\n\n // entity is not cached in memory, or the access hash has changed\n // we need to update it in the DB asap, and also update the in-memory cache\n await this._peers.store(dto)\n this._cache.set(peer.id, {\n peer: getInputPeer(dto),\n complete: peer,\n })\n\n // todo: if (!this._cachedSelf?.isBot) {\n // we have the full peer, we no longer need the references\n // we can skip this in the other branch, since in that case it would've already been deleted\n await this._refs.deleteByPeer(peer.id)\n }\n\n private _returnCaching(id: number, dto: IPeersRepository.PeerInfo) {\n const peer = getInputPeer(dto)\n const complete = this._deserializeTl(dto.complete)\n\n this._cache.set(id, {\n peer,\n complete: complete as tl.TypeUser | tl.TypeChat | null,\n })\n\n return peer\n }\n\n async getById(id: number, allowRefs = true): Promise<tl.TypeInputPeer | null> {\n const cached = this._cache.get(id)\n if (cached) return cached.peer\n\n const dto = await this._peers.getById(id)\n\n if (dto) {\n return this._returnCaching(id, dto)\n }\n\n if (allowRefs) {\n const ref = await this._refs.getForPeer(id)\n if (!ref) return null\n\n const [chatId, msgId] = ref\n const chat = await this.getById(chatId, false)\n if (!chat) return null\n\n if (id > 0) {\n // user\n return {\n _: 'inputPeerUserFromMessage',\n peer: chat,\n msgId,\n userId: id,\n }\n }\n\n // channel\n return {\n _: 'inputPeerChannelFromMessage',\n peer: chat,\n msgId,\n channelId: toggleChannelIdMark(id),\n }\n }\n\n return null\n }\n\n async getByPhone(phone: string): Promise<tl.TypeInputPeer | null> {\n const dto = await this._peers.getByPhone(phone)\n if (!dto) return null\n\n return this._returnCaching(dto.id, dto)\n }\n\n async getByUsername(username: string): Promise<tl.TypeInputPeer | null> {\n const dto = await this._peers.getByUsername(username.toLowerCase())\n if (!dto) return null\n\n if (Date.now() - dto.updated > USERNAME_TTL) {\n // username is too old, we can't trust it. ask the client to re-fetch it\n return null\n }\n\n return this._returnCaching(dto.id, dto)\n }\n\n async getCompleteById(id: number): Promise<tl.TypeUser | tl.TypeChat | null> {\n const cached = this._cache.get(id)\n if (cached) return cached.complete\n\n const dto = await this._peers.getById(id)\n if (!dto) return null\n\n const cacheItem: CacheItem = {\n peer: getInputPeer(dto),\n complete: this._deserializeTl(dto.complete) as tl.TypeUser | tl.TypeChat | null,\n }\n this._cache.set(id, cacheItem)\n\n return cacheItem.complete\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/peers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAc5D,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,QAAQ;AAEjD,SAAS,YAAY,CAAC,GAA8B;IAChD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAE5C,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,MAAM;YACP,OAAO;gBACH,CAAC,EAAE,eAAe;gBAClB,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;aACjD,CAAA;QACL,KAAK,MAAM;YACP,OAAO;gBACH,CAAC,EAAE,eAAe;gBAClB,MAAM,EAAE,EAAE;aACb,CAAA;QACL,KAAK,SAAS;YACV,OAAO;gBACH,CAAC,EAAE,kBAAkB;gBACrB,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;aACjD,CAAA;IACT,CAAC;AACL,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,WAAW;IAK7B;IACA;IACA;IANJ,MAAM,CAA2B;IACjC,cAAc,GAAG,IAAI,GAAG,EAAqC,CAAA;IAErE,YACY,OAA4B,EAC5B,MAAwB,EACxB,KAAyB,EACjC,MAAsB;QAEtB,KAAK,CAAC,MAAM,CAAC,CAAA;QALL,YAAO,GAAP,OAAO,CAAqB;QAC5B,WAAM,GAAN,MAAM,CAAkB;QACxB,UAAK,GAAL,KAAK,CAAoB;QAKjC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAgC;QAClD,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,qDAAqD;YACrD,IAAK,IAAgD,CAAC,GAAG;gBAAE,SAAQ;YAEnE,KAAK,IAAI,CAAC,CAAA;YAEV,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;YAEzC,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAA+B;QACvC,IAAI,GAA8B,CAAA;QAClC,IAAI,UAAmB,CAAA;QAEvB,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAA;oBAE7D,OAAM;gBACV,CAAC;gBAED,GAAG,GAAG;oBACF,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;oBACjC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;iBACpC,CAAA;gBACD,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;gBAC5B,MAAK;YACT,CAAC;YACD,KAAK,MAAM,CAAC;YACZ,KAAK,eAAe,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG;oBACF,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;oBACZ,UAAU,EAAE,EAAE;oBACd,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBACjC,SAAS,EAAE,EAAE;iBAChB,CAAA;gBACD,UAAU,GAAG,IAAI,CAAC,IAAI,CAAA;gBACtB,MAAK;YACT,CAAC;YACD,KAAK,SAAS,CAAC;YACf,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAA;oBAEhE,OAAM;gBACV,CAAC;gBAED,GAAG,GAAG;oBACF,EAAE,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC7C,SAAS,EAAE,gBAAgB,CAAC,IAAqB,CAAC;oBAClD,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;oBACnB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;iBACpC,CAAA;gBACD,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;gBAC5B,MAAK;YACT,CAAC;YACD;gBACI,OAAM;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEvC,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,aAAa,GAAI,MAAM,CAAC,IAA4D,CAAC,UAAU,CAAA;YAErG,IAAI,aAAa,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,yEAAyE;gBACzE,gFAAgF;gBAChF,EAAE;gBACF,yEAAyE;gBACzE,2FAA2F;gBAC3F,EAAE;gBACF,2DAA2D;gBAC3D,yCAAyC;gBAEzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACrC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;gBAEtB,OAAM;YACV,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,2EAA2E;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YACrB,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;YACvB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,wCAAwC;QACxC,0DAA0D;QAC1D,4FAA4F;QAC5F,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEO,cAAc,CAAC,EAAU,EAAE,GAA8B;QAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAElD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YAChB,IAAI;YACJ,QAAQ,EAAE,QAA4C;SACzD,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,SAAS,GAAG,IAAI;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAClC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,IAAI,CAAA;QAE9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEzC,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YAC3C,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YAErB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACT,OAAO;gBACP,OAAO;oBACH,CAAC,EAAE,0BAA0B;oBAC7B,IAAI,EAAE,IAAI;oBACV,KAAK;oBACL,MAAM,EAAE,EAAE;iBACb,CAAA;YACL,CAAC;YAED,UAAU;YACV,OAAO;gBACH,CAAC,EAAE,6BAA6B;gBAChC,IAAI,EAAE,IAAI;gBACV,KAAK;gBACL,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;aACrC,CAAA;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC;YAC1C,wEAAwE;YACxE,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAClC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAA;QAElC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,SAAS,GAAc;YACzB,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAqC;SAClF,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QAE9B,OAAO,SAAS,CAAC,QAAQ,CAAA;IAC7B,CAAC;CACJ","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { BaseService, ServiceOptions } from '../../../storage/service/base.js'\nimport { longFromFastString, longToFastString } from '../../../utils/long-utils.js'\nimport { LruMap } from '../../../utils/lru-map.js'\nimport { getAllPeersFrom, parseMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { extractUsernames } from '../../utils/peer-utils.js'\nimport { IPeersRepository } from '../repository/peers.js'\nimport { RefMessagesService } from './ref-messages.js'\n\ninterface CacheItem {\n peer: tl.TypeInputPeer\n complete: tl.TypeUser | tl.TypeChat | null\n}\n\nexport interface PeersServiceOptions {\n cacheSize?: number\n updatesWriteInterval?: number\n}\n\nconst USERNAME_TTL = 24 * 60 * 60 * 1000 // 1 day\n\nfunction getInputPeer(dto: IPeersRepository.PeerInfo): tl.TypeInputPeer {\n const [type, id] = parseMarkedPeerId(dto.id)\n\n switch (type) {\n case 'user':\n return {\n _: 'inputPeerUser',\n userId: id,\n accessHash: longFromFastString(dto.accessHash),\n }\n case 'chat':\n return {\n _: 'inputPeerChat',\n chatId: id,\n }\n case 'channel':\n return {\n _: 'inputPeerChannel',\n channelId: id,\n accessHash: longFromFastString(dto.accessHash),\n }\n }\n}\n\nexport class PeersService extends BaseService {\n private _cache: LruMap<number, CacheItem>\n private _pendingWrites = new Map<number, IPeersRepository.PeerInfo>()\n\n constructor(\n private options: PeersServiceOptions,\n private _peers: IPeersRepository,\n private _refs: RefMessagesService,\n common: ServiceOptions,\n ) {\n super(common)\n\n this._cache = new LruMap(options.cacheSize ?? 100)\n }\n\n async updatePeersFrom(obj: tl.TlObject | tl.TlObject[]) {\n let count = 0\n\n for (const peer of getAllPeersFrom(obj)) {\n // no point in caching min peers as we can't use them\n if ((peer as Extract<typeof peer, { min?: unknown }>).min) continue\n\n count += 1\n\n await this.store(peer)\n }\n\n if (count > 0) {\n await this._driver.save?.()\n this._log.debug('cached %d peers', count)\n\n return true\n }\n\n return false\n }\n\n async store(peer: tl.TypeUser | tl.TypeChat): Promise<void> {\n let dto: IPeersRepository.PeerInfo\n let accessHash: tl.Long\n\n switch (peer._) {\n case 'user': {\n if (!peer.accessHash) {\n this._log.warn('received user without access hash: %j', peer)\n\n return\n }\n\n dto = {\n id: peer.id,\n accessHash: longToFastString(peer.accessHash),\n phone: peer.phone,\n usernames: extractUsernames(peer),\n updated: Date.now(),\n complete: this._serializeTl(peer),\n }\n accessHash = peer.accessHash\n break\n }\n case 'chat':\n case 'chatForbidden': {\n dto = {\n id: -peer.id,\n accessHash: '',\n updated: Date.now(),\n complete: this._serializeTl(peer),\n usernames: [],\n }\n accessHash = Long.ZERO\n break\n }\n case 'channel':\n case 'channelForbidden': {\n if (!peer.accessHash) {\n this._log.warn('received channel without access hash: %j', peer)\n\n return\n }\n\n dto = {\n id: toggleChannelIdMark(peer.id),\n accessHash: longToFastString(peer.accessHash),\n usernames: extractUsernames(peer as tl.RawChannel),\n updated: Date.now(),\n complete: this._serializeTl(peer),\n }\n accessHash = peer.accessHash\n break\n }\n default:\n return\n }\n\n const cached = this._cache.get(peer.id)\n\n if (cached && this.options.updatesWriteInterval !== 0) {\n const oldAccessHash = (cached.peer as Extract<tl.TypeInputPeer, { accessHash?: unknown }>).accessHash\n\n if (oldAccessHash?.eq(accessHash)) {\n // when entity is cached and hash is the same, an update query is needed,\n // since some field in the full entity might have changed, or the username/phone\n //\n // to avoid too many DB calls, and since these updates are pretty common,\n // they are grouped and applied in batches no more than once every 30sec (or user-defined).\n //\n // until then, they are either served from in-memory cache,\n // or an older version is fetched from DB\n\n this._pendingWrites.set(peer.id, dto)\n cached.complete = peer\n\n return\n }\n }\n\n // entity is not cached in memory, or the access hash has changed\n // we need to update it in the DB asap, and also update the in-memory cache\n await this._peers.store(dto)\n this._cache.set(peer.id, {\n peer: getInputPeer(dto),\n complete: peer,\n })\n\n // todo: if (!this._cachedSelf?.isBot) {\n // we have the full peer, we no longer need the references\n // we can skip this in the other branch, since in that case it would've already been deleted\n await this._refs.deleteByPeer(peer.id)\n }\n\n private _returnCaching(id: number, dto: IPeersRepository.PeerInfo) {\n const peer = getInputPeer(dto)\n const complete = this._deserializeTl(dto.complete)\n\n this._cache.set(id, {\n peer,\n complete: complete as tl.TypeUser | tl.TypeChat | null,\n })\n\n return peer\n }\n\n async getById(id: number, allowRefs = true): Promise<tl.TypeInputPeer | null> {\n const cached = this._cache.get(id)\n if (cached) return cached.peer\n\n const dto = await this._peers.getById(id)\n\n if (dto) {\n return this._returnCaching(id, dto)\n }\n\n if (allowRefs) {\n const ref = await this._refs.getForPeer(id)\n if (!ref) return null\n\n const [chatId, msgId] = ref\n const chat = await this.getById(chatId, false)\n if (!chat) return null\n\n if (id > 0) {\n // user\n return {\n _: 'inputPeerUserFromMessage',\n peer: chat,\n msgId,\n userId: id,\n }\n }\n\n // channel\n return {\n _: 'inputPeerChannelFromMessage',\n peer: chat,\n msgId,\n channelId: toggleChannelIdMark(id),\n }\n }\n\n return null\n }\n\n async getByPhone(phone: string): Promise<tl.TypeInputPeer | null> {\n const dto = await this._peers.getByPhone(phone)\n if (!dto) return null\n\n return this._returnCaching(dto.id, dto)\n }\n\n async getByUsername(username: string): Promise<tl.TypeInputPeer | null> {\n const dto = await this._peers.getByUsername(username.toLowerCase())\n if (!dto) return null\n\n if (Date.now() - dto.updated > USERNAME_TTL) {\n // username is too old, we can't trust it. ask the client to re-fetch it\n return null\n }\n\n return this._returnCaching(dto.id, dto)\n }\n\n async getCompleteById(id: number): Promise<tl.TypeUser | tl.TypeChat | null> {\n const cached = this._cache.get(id)\n if (cached) return cached.complete\n\n const dto = await this._peers.getById(id)\n if (!dto) return null\n\n const cacheItem: CacheItem = {\n peer: getInputPeer(dto),\n complete: this._deserializeTl(dto.complete) as tl.TypeUser | tl.TypeChat | null,\n }\n this._cache.set(id, cacheItem)\n\n return cacheItem.complete\n }\n}\n"]}
|
|
@@ -3,6 +3,9 @@ import { LruMap } from '../../../utils/lru-map.js';
|
|
|
3
3
|
// todo: move inside updates manager?
|
|
4
4
|
// todo: chatId -> channelId
|
|
5
5
|
export class RefMessagesService extends BaseService {
|
|
6
|
+
options;
|
|
7
|
+
_refs;
|
|
8
|
+
_cache;
|
|
6
9
|
constructor(options, _refs, common) {
|
|
7
10
|
super(common);
|
|
8
11
|
this.options = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/ref-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAOlD,qCAAqC;AACrC,4BAA4B;AAE5B,MAAM,OAAO,kBAAmB,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"ref-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/ref-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAOlD,qCAAqC;AACrC,4BAA4B;AAE5B,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAIlC;IACA;IAJL,MAAM,CAAkC;IAEhD,YACa,OAAkC,EAClC,KAAmC,EAC5C,MAAsB;QAEtB,KAAK,CAAC,MAAM,CAAC,CAAA;QAJJ,YAAO,GAAP,OAAO,CAA2B;QAClC,UAAK,GAAL,KAAK,CAA8B;QAK5C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QAEzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,GAAG;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAErC,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAgB;QACzC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvC,8CAA8C;QAC9C,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;CACJ","sourcesContent":["import { BaseService, ServiceOptions } from '../../../storage/service/base.js'\nimport { LruMap } from '../../../utils/lru-map.js'\nimport { IReferenceMessagesRepository } from '../repository/ref-messages.js'\n\nexport interface RefMessagesServiceOptions {\n cacheSize?: number\n}\n\n// todo: move inside updates manager?\n// todo: chatId -> channelId\n\nexport class RefMessagesService extends BaseService {\n private _cache: LruMap<number, [number, number]>\n\n constructor(\n readonly options: RefMessagesServiceOptions,\n readonly _refs: IReferenceMessagesRepository,\n common: ServiceOptions,\n ) {\n super(common)\n\n this._cache = new LruMap(options.cacheSize ?? 1000)\n }\n\n async store(peerId: number, chatId: number, msgId: number): Promise<void> {\n await this._refs.store(peerId, chatId, msgId)\n this._cache.set(peerId, [chatId, msgId])\n }\n\n async getForPeer(peerId: number): Promise<[number, number] | null> {\n const cached = this._cache.get(peerId)\n if (cached) return cached\n\n const ref = await this._refs.getByPeer(peerId)\n if (ref) this._cache.set(peerId, ref)\n\n return ref\n }\n\n async delete(chatId: number, msgIds: number[]): Promise<void> {\n await this._refs.delete(chatId, msgIds)\n // it's too expensive to invalidate the cache,\n // so we just clear it completely instead\n this._cache.clear()\n }\n\n async deleteByPeer(peerId: number): Promise<void> {\n await this._refs.deleteByPeer(peerId)\n this._cache.delete(peerId)\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/updates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,MAAM,MAAM,GAAG,aAAa,CAAA;AAC5B,MAAM,MAAM,GAAG,aAAa,CAAA;AAC5B,MAAM,OAAO,GAAG,cAAc,CAAA;AAC9B,MAAM,MAAM,GAAG,aAAa,CAAA;AAC5B,MAAM,iBAAiB,GAAG,kBAAkB,CAAA;AAE5C,qCAAqC;AAErC,MAAM,OAAO,mBAAoB,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../../../src/highlevel/storage/service/updates.ts"],"names":[],"mappings":"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","sourcesContent":["import { IKeyValueRepository } from '../../../storage/repository/key-value.js'\nimport { BaseService, ServiceOptions } from '../../../storage/service/base.js'\nimport { dataViewFromBuffer } from '../../../utils/buffer-utils.js'\n\nconst KV_PTS = 'updates_pts'\nconst KV_QTS = 'updates_qts'\nconst KV_DATE = 'updates_date'\nconst KV_SEQ = 'updates_seq'\nconst KV_CHANNEL_PREFIX = 'updates_channel:'\n\n// todo: move inside updates manager?\n\nexport class UpdatesStateService extends BaseService {\n constructor(\n readonly _kv: IKeyValueRepository,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n private async _getInt(key: string): Promise<number | null> {\n const val = await this._kv.get(key)\n if (!val) return null\n\n return dataViewFromBuffer(val).getInt32(0, true)\n }\n\n private async _setInt(key: string, val: number): Promise<void> {\n const buf = new Uint8Array(4)\n dataViewFromBuffer(buf).setInt32(0, val, true)\n\n await this._kv.set(key, buf)\n }\n\n async getState(): Promise<[number, number, number, number] | null> {\n const [pts, qts, date, seq] = await Promise.all([\n this._getInt(KV_PTS),\n this._getInt(KV_QTS),\n this._getInt(KV_DATE),\n this._getInt(KV_SEQ),\n ])\n\n if (pts === null || qts === null || date === null || seq === null) {\n return null\n }\n\n return [pts, qts, date, seq]\n }\n\n async setPts(pts: number): Promise<void> {\n await this._setInt(KV_PTS, pts)\n }\n\n async setQts(qts: number): Promise<void> {\n await this._setInt(KV_QTS, qts)\n }\n\n async setDate(date: number): Promise<void> {\n await this._setInt(KV_DATE, date)\n }\n\n async setSeq(seq: number): Promise<void> {\n await this._setInt(KV_SEQ, seq)\n }\n\n async getChannelPts(channelId: number): Promise<number | null> {\n const val = await this._kv.get(KV_CHANNEL_PREFIX + channelId)\n if (!val) return null\n\n return dataViewFromBuffer(val).getUint32(0, true)\n }\n\n async setChannelPts(channelId: number, pts: number): Promise<void> {\n const buf = new Uint8Array(4)\n dataViewFromBuffer(buf).setUint32(0, pts, true)\n\n await this._kv.set(KV_CHANNEL_PREFIX + channelId, buf)\n }\n\n async setManyChannelPts(cpts: Map<number, number>): Promise<void> {\n const promises: Promise<void>[] = []\n\n for (const [channelId, pts] of cpts.entries()) {\n promises.push(this.setChannelPts(channelId, pts))\n }\n\n await Promise.all(promises)\n }\n}\n"]}
|
|
@@ -11,12 +11,12 @@ interface TelegramStorageManagerOptions {
|
|
|
11
11
|
export declare class TelegramStorageManager {
|
|
12
12
|
private mt;
|
|
13
13
|
private options;
|
|
14
|
-
constructor(mt: StorageManager, options: TelegramStorageManagerOptions & TelegramStorageManagerExtraOptions);
|
|
15
14
|
private provider;
|
|
16
15
|
readonly updates: UpdatesStateService;
|
|
17
16
|
readonly self: PublicPart<CurrentUserService>;
|
|
18
17
|
readonly refMsgs: RefMessagesService;
|
|
19
18
|
readonly peers: PublicPart<PeersService>;
|
|
19
|
+
constructor(mt: StorageManager, options: TelegramStorageManagerOptions & TelegramStorageManagerExtraOptions);
|
|
20
20
|
clear(withAuthKeys?: boolean): Promise<void>;
|
|
21
21
|
}
|
|
22
22
|
export {};
|
|
@@ -3,14 +3,27 @@ import { PeersService } from './service/peers.js';
|
|
|
3
3
|
import { RefMessagesService } from './service/ref-messages.js';
|
|
4
4
|
import { UpdatesStateService } from './service/updates.js';
|
|
5
5
|
export class TelegramStorageManager {
|
|
6
|
+
mt;
|
|
7
|
+
options;
|
|
8
|
+
provider;
|
|
9
|
+
updates;
|
|
10
|
+
self;
|
|
11
|
+
refMsgs;
|
|
12
|
+
peers;
|
|
6
13
|
constructor(mt, options) {
|
|
7
14
|
this.mt = mt;
|
|
8
15
|
this.options = options;
|
|
9
16
|
this.provider = this.options.provider;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
const serviceOptions = {
|
|
18
|
+
driver: this.mt.driver,
|
|
19
|
+
readerMap: this.mt.options.readerMap,
|
|
20
|
+
writerMap: this.mt.options.writerMap,
|
|
21
|
+
log: this.mt.log,
|
|
22
|
+
};
|
|
23
|
+
this.updates = new UpdatesStateService(this.provider.kv, serviceOptions);
|
|
24
|
+
this.self = new CurrentUserService(this.provider.kv, serviceOptions);
|
|
25
|
+
this.refMsgs = new RefMessagesService(this.options.refMessages ?? {}, this.provider.refMessages, serviceOptions);
|
|
26
|
+
this.peers = new PeersService(this.options.peers ?? {}, this.provider.peers, this.refMsgs, serviceOptions);
|
|
14
27
|
}
|
|
15
28
|
async clear(withAuthKeys = false) {
|
|
16
29
|
await this.provider.peers.deleteAll();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../src/highlevel/storage/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../src/highlevel/storage/storage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAA6B,MAAM,2BAA2B,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAY1D,MAAM,OAAO,sBAAsB;IASnB;IACA;IATJ,QAAQ,CAAA;IAEP,OAAO,CAAA;IACP,IAAI,CAAgC;IACpC,OAAO,CAAA;IACP,KAAK,CAA0B;IAExC,YACY,EAAkB,EAClB,OAA2E;QAD3E,OAAE,GAAF,EAAE,CAAgB;QAClB,YAAO,GAAP,OAAO,CAAoE;QAEnF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;QAErC,MAAM,cAAc,GAAmB;YACnC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS;YACpC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS;YACpC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;SACnB,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CACjC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,cAAc,CACjB,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CACzB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,IAAI,CAAC,OAAO,EACZ,cAAc,CACjB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK;QAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAA;QACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACrC,CAAC;CACJ","sourcesContent":["import { ServiceOptions } from '../../storage/service/base.js'\nimport { StorageManager } from '../../storage/storage.js'\nimport { PublicPart } from '../../types/utils.js'\nimport { ITelegramStorageProvider } from './provider.js'\nimport { CurrentUserService } from './service/current-user.js'\nimport { PeersService, PeersServiceOptions } from './service/peers.js'\nimport { RefMessagesService, RefMessagesServiceOptions } from './service/ref-messages.js'\nimport { UpdatesStateService } from './service/updates.js'\n\ninterface TelegramStorageManagerOptions {\n provider: ITelegramStorageProvider\n}\n\n/** @internal */\nexport interface TelegramStorageManagerExtraOptions {\n refMessages?: RefMessagesServiceOptions\n peers?: PeersServiceOptions\n}\n\nexport class TelegramStorageManager {\n private provider\n\n readonly updates\n readonly self: PublicPart<CurrentUserService>\n readonly refMsgs\n readonly peers: PublicPart<PeersService>\n\n constructor(\n private mt: StorageManager,\n private options: TelegramStorageManagerOptions & TelegramStorageManagerExtraOptions,\n ) {\n this.provider = this.options.provider\n\n const serviceOptions: ServiceOptions = {\n driver: this.mt.driver,\n readerMap: this.mt.options.readerMap,\n writerMap: this.mt.options.writerMap,\n log: this.mt.log,\n }\n\n this.updates = new UpdatesStateService(this.provider.kv, serviceOptions)\n this.self = new CurrentUserService(this.provider.kv, serviceOptions)\n this.refMsgs = new RefMessagesService(\n this.options.refMessages ?? {},\n this.provider.refMessages,\n serviceOptions,\n )\n this.peers = new PeersService(\n this.options.peers ?? {},\n this.provider.peers,\n this.refMsgs,\n serviceOptions,\n )\n }\n\n async clear(withAuthKeys = false) {\n await this.provider.peers.deleteAll()\n await this.provider.refMessages.deleteAll()\n await this.mt.clear(withAuthKeys)\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sent-code.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/auth/sent-code.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,WAAW,GAAgE;IAC7E,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,MAAM;IAC/B,4BAA4B,EAAE,YAAY;IAC1C,sBAAsB,EAAE,KAAK;IAC7B,6BAA6B,EAAE,aAAa;IAC5C,4BAA4B,EAAE,OAAO;IACrC,qCAAqC,EAAE,gBAAgB;IACvD,8BAA8B,EAAE,UAAU;IAC1C,8BAA8B,EAAE,UAAU;CAC7C,CAAA;AAED,MAAM,WAAW,GAA4D;IACzE,mBAAmB,EAAE,MAAM;IAC3B,wBAAwB,EAAE,YAAY;IACtC,kBAAkB,EAAE,KAAK;IACzB,yBAAyB,EAAE,aAAa;IACxC,0BAA0B,EAAE,UAAU;CACzC,CAAA;AAmCD;;GAEG;AACH,MAAM,OAAO,QAAQ;
|
|
1
|
+
{"version":3,"file":"sent-code.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/auth/sent-code.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,WAAW,GAAgE;IAC7E,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,MAAM;IAC/B,4BAA4B,EAAE,YAAY;IAC1C,sBAAsB,EAAE,KAAK;IAC7B,6BAA6B,EAAE,aAAa;IAC5C,4BAA4B,EAAE,OAAO;IACrC,qCAAqC,EAAE,gBAAgB;IACvD,8BAA8B,EAAE,UAAU;IAC1C,8BAA8B,EAAE,UAAU;CAC7C,CAAA;AAED,MAAM,WAAW,GAA4D;IACzE,mBAAmB,EAAE,MAAM;IAC3B,wBAAwB,EAAE,YAAY;IACtC,kBAAkB,EAAE,KAAK;IACzB,yBAAyB,EAAE,aAAa;IACxC,0BAA0B,EAAE,UAAU;CACzC,CAAA;AAmCD;;GAEG;AACH,MAAM,OAAO,QAAQ;IACI;IAArB,YAAqB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAEjD;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACxE,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;CACJ;AAED,eAAe,CAAC,QAAQ,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\n\nconst sentCodeMap: Record<tl.auth.TypeSentCodeType['_'], SentCodeDeliveryType> = {\n 'auth.sentCodeTypeApp': 'app',\n 'auth.sentCodeTypeCall': 'call',\n 'auth.sentCodeTypeFlashCall': 'flash_call',\n 'auth.sentCodeTypeSms': 'sms',\n 'auth.sentCodeTypeMissedCall': 'missed_call',\n 'auth.sentCodeTypeEmailCode': 'email',\n 'auth.sentCodeTypeSetUpEmailRequired': 'email_required',\n 'auth.sentCodeTypeFragmentSms': 'fragment',\n 'auth.sentCodeTypeFirebaseSms': 'firebase',\n}\n\nconst nextCodeMap: Record<tl.auth.TypeCodeType['_'], NextCodeDeliveryType> = {\n 'auth.codeTypeCall': 'call',\n 'auth.codeTypeFlashCall': 'flash_call',\n 'auth.codeTypeSms': 'sms',\n 'auth.codeTypeMissedCall': 'missed_call',\n 'auth.codeTypeFragmentSms': 'fragment',\n}\n\n/**\n * Type describing code delivery type.\n * - `app`: Code is delivered via Telegram account\n * - `sms`: Code is sent via SMS\n * - `call`: Code is sent via voice call\n * - `flash_call`: Code is the last 5 digits of the caller's phone number\n * - `missed_call`: Code is the last 5 digits of the caller's phone number\n * - `email`: Code is sent via Email\n * - `email_required`: Code sending via email setup is required\n * - `fragment`: Code is sent via Fragment anonymous numbers\n * - `firebase`: Code is sent via Firebase\n * - `Success`: Code is not needed, you're already logged in (only for future auth tokens)\n */\nexport type SentCodeDeliveryType =\n | 'app'\n | 'sms'\n | 'call'\n | 'flash_call'\n | 'missed_call'\n | 'email'\n | 'email_required'\n | 'fragment'\n | 'firebase'\n | 'success'\n\n/**\n * Type describing next code delivery type.\n * See {@link DeliveryType} for information on values.\n *\n * Additionally, can be `none` if no more types are available\n */\nexport type NextCodeDeliveryType = Exclude<SentCodeDeliveryType, 'app'> | 'none'\n\n/**\n * Information about sent confirmation code\n */\nexport class SentCode {\n constructor(readonly raw: tl.auth.RawSentCode) {}\n\n /**\n * Type of currently sent confirmation code\n */\n get type(): SentCodeDeliveryType {\n return sentCodeMap[this.raw.type._]\n }\n\n /**\n * Type of the confirmation code that will be sent\n * if you call {@link TelegramClient.resendCode}.\n */\n get nextType(): NextCodeDeliveryType {\n return this.raw.nextType ? nextCodeMap[this.raw.nextType._] : 'none'\n }\n\n /**\n * Confirmation code identifier used for the next authorization steps\n * (like {@link TelegramClient.signIn} and {@link TelegramClient.signUp})\n */\n get phoneCodeHash(): string {\n return this.raw.phoneCodeHash\n }\n\n /**\n * Delay in seconds to wait before calling {@link TelegramClient.resendCode}\n */\n get timeout(): number {\n return this.raw.timeout ?? 0\n }\n\n /**\n * Length of the code (0 for flash calls)\n */\n get length(): number {\n return 'length' in this.raw.type ? this.raw.type.length : 0\n }\n}\n\nmakeInspectable(SentCode)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-high-score.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/bots/game-high-score.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC;;GAEG;AACH,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"game-high-score.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/bots/game-high-score.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC;;GAEG;AACH,MAAM,OAAO,aAAa;IAET;IACA;IAFb,YACa,GAAoB,EACpB,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAiB;QACpB,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;CACJ;AAED,cAAc,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACvC,eAAe,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\n\n/**\n * Game high score\n */\nexport class GameHighScore {\n constructor(\n readonly raw: tl.RawHighScore,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * User who has scored this score\n */\n get user(): User {\n return new User(this._peers.user(this.raw.userId))\n }\n\n /**\n * Position in the records list\n */\n get position(): number {\n return this.raw.pos\n }\n\n /**\n * Score\n */\n get score(): number {\n return this.raw.score\n }\n}\n\nmemoizeGetters(GameHighScore, ['user'])\nmakeInspectable(GameHighScore)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/inline-message/factories.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../../types/utils.js'\nimport { ITelegramClient } from '../../../client.types.js'\nimport { _normalizeInputText } from '../../../methods/misc/normalize-text.js'\nimport { InputText } from '../../../types/misc/entities.js'\nimport { InputMediaGeoLive } from '../../media/index.js'\nimport { BotKeyboard } from '../keyboards/index.js'\nimport {\n InputInlineMessage,\n InputInlineMessageContact,\n InputInlineMessageGame,\n InputInlineMessageGeo,\n InputInlineMessageGeoLive,\n InputInlineMessageMedia,\n InputInlineMessageText,\n InputInlineMessageVenue,\n InputInlineMessageWebpage,\n} from './types.js'\n\n/**\n * Create a text inline message\n *\n * @param text Message text\n * @param params\n */\nexport function text(\n text: InputText,\n params: Omit<InputInlineMessageText, 'type' | 'text'> = {},\n): InputInlineMessageText {\n const ret = params as tl.Mutable<InputInlineMessageText>\n ret.type = 'text'\n ret.text = text\n\n return ret\n}\n\n/**\n * Create an inline message containing\n * media from the result\n */\nexport function media(params: Omit<InputInlineMessageMedia, 'type'> = {}): InputInlineMessageMedia {\n const ret = params as tl.Mutable<InputInlineMessageMedia>\n ret.type = 'media'\n\n return ret\n}\n\n/**\n * Create an inline message containing a geolocation\n *\n * @param params Additional parameters\n */\nexport function geo(params: Omit<InputInlineMessageGeo, 'type'>): InputInlineMessageGeo {\n const ret = params as tl.Mutable<InputInlineMessageGeo>\n ret.type = 'geo'\n\n return ret\n}\n\n/**\n * Create an inline message containing a live geolocation\n *\n * @param params Additional parameters\n */\nexport function geoLive(params: Omit<InputInlineMessageGeoLive, 'type'>): InputInlineMessageGeoLive {\n const ret = params as tl.Mutable<InputInlineMessageGeoLive>\n ret.type = 'geo_live'\n\n return ret\n}\n\n/**\n * Create an inline message containing a venue\n */\nexport function venue(params: Omit<InputInlineMessageVenue, 'type'>): InputInlineMessageVenue {\n const ret = params as tl.Mutable<InputInlineMessageVenue>\n ret.type = 'venue'\n\n return ret\n}\n\n/**\n * Create an inline message containing a game\n * from the inline result\n */\nexport function game(params: Omit<InputInlineMessageGame, 'type'>): InputInlineMessageGame {\n const ret = params as tl.Mutable<InputInlineMessageGame>\n ret.type = 'game'\n\n return ret\n}\n\n/**\n * Create an inline message containing a contact\n */\nexport function contact(params: Omit<InputInlineMessageContact, 'type'>): InputInlineMessageContact {\n const ret = params as tl.Mutable<InputInlineMessageContact>\n ret.type = 'contact'\n\n return ret\n}\n\n/**\n * Create an inline message containing a webpage\n */\nexport function webpage(params: Omit<InputInlineMessageWebpage, 'type'>): InputInlineMessageWebpage {\n const ret = params as tl.Mutable<InputInlineMessageWebpage>\n ret.type = 'webpage'\n\n return ret\n}\n\n/** @internal */\nexport async function _convertToTl(\n client: ITelegramClient,\n obj: InputInlineMessage,\n): Promise<tl.TypeInputBotInlineMessage> {\n switch (obj.type) {\n case 'text': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageText',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'media': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaAuto',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'geo':\n case 'geo_live':\n return {\n _: 'inputBotInlineMessageMediaGeo',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n // fields will be `undefined` if this is a `geo`\n heading: (obj as InputMediaGeoLive).heading,\n period: (obj as InputMediaGeoLive).period,\n proximityNotificationRadius: (obj as InputMediaGeoLive).proximityNotificationRadius,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'venue':\n return {\n _: 'inputBotInlineMessageMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n title: obj.title,\n address: obj.address,\n provider: obj.source?.provider ?? '',\n venueId: obj.source?.id ?? '',\n venueType: obj.source?.type ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'game':\n return {\n _: 'inputBotInlineMessageGame',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'contact':\n return {\n _: 'inputBotInlineMessageMediaContact',\n phoneNumber: obj.phone,\n firstName: obj.firstName,\n lastName: obj.lastName ?? '',\n vcard: obj.vcard ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'webpage': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaWebPage',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n forceLargeMedia: obj.size === 'large',\n forceSmallMedia: obj.size === 'small',\n optional: !obj.required,\n url: obj.url,\n }\n }\n default:\n assertNever(obj)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/inline-message/factories.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../../types/utils.js'\nimport { ITelegramClient } from '../../../client.types.js'\nimport { _normalizeInputText } from '../../../methods/misc/normalize-text.js'\nimport { InputText } from '../../../types/misc/entities.js'\nimport { InputMediaGeoLive } from '../../media/index.js'\nimport { BotKeyboard } from '../keyboards/index.js'\nimport {\n InputInlineMessage,\n InputInlineMessageContact,\n InputInlineMessageGame,\n InputInlineMessageGeo,\n InputInlineMessageGeoLive,\n InputInlineMessageMedia,\n InputInlineMessageText,\n InputInlineMessageVenue,\n InputInlineMessageWebpage,\n} from './types.js'\n\n/**\n * Create a text inline message\n *\n * @param text Message text\n * @param params\n */\nexport function text(\n text: InputText,\n params: Omit<InputInlineMessageText, 'type' | 'text'> = {},\n): InputInlineMessageText {\n const ret = params as tl.Mutable<InputInlineMessageText>\n ret.type = 'text'\n ret.text = text\n\n return ret\n}\n\n/**\n * Create an inline message containing\n * media from the result\n */\nexport function media(params: Omit<InputInlineMessageMedia, 'type'> = {}): InputInlineMessageMedia {\n const ret = params as tl.Mutable<InputInlineMessageMedia>\n ret.type = 'media'\n\n return ret\n}\n\n/**\n * Create an inline message containing a geolocation\n *\n * @param params Additional parameters\n */\nexport function geo(params: Omit<InputInlineMessageGeo, 'type'>): InputInlineMessageGeo {\n const ret = params as tl.Mutable<InputInlineMessageGeo>\n ret.type = 'geo'\n\n return ret\n}\n\n/**\n * Create an inline message containing a live geolocation\n *\n * @param params Additional parameters\n */\nexport function geoLive(params: Omit<InputInlineMessageGeoLive, 'type'>): InputInlineMessageGeoLive {\n const ret = params as tl.Mutable<InputInlineMessageGeoLive>\n ret.type = 'geo_live'\n\n return ret\n}\n\n/**\n * Create an inline message containing a venue\n */\nexport function venue(params: Omit<InputInlineMessageVenue, 'type'>): InputInlineMessageVenue {\n const ret = params as tl.Mutable<InputInlineMessageVenue>\n ret.type = 'venue'\n\n return ret\n}\n\n/**\n * Create an inline message containing a game\n * from the inline result\n */\nexport function game(params: Omit<InputInlineMessageGame, 'type'>): InputInlineMessageGame {\n const ret = params as tl.Mutable<InputInlineMessageGame>\n ret.type = 'game'\n\n return ret\n}\n\n/**\n * Create an inline message containing a contact\n */\nexport function contact(params: Omit<InputInlineMessageContact, 'type'>): InputInlineMessageContact {\n const ret = params as tl.Mutable<InputInlineMessageContact>\n ret.type = 'contact'\n\n return ret\n}\n\n/**\n * Create an inline message containing a webpage\n */\nexport function webpage(params: Omit<InputInlineMessageWebpage, 'type'>): InputInlineMessageWebpage {\n const ret = params as tl.Mutable<InputInlineMessageWebpage>\n ret.type = 'webpage'\n\n return ret\n}\n\n/** @internal */\nexport async function _convertToTl(\n client: ITelegramClient,\n obj: InputInlineMessage,\n): Promise<tl.TypeInputBotInlineMessage> {\n switch (obj.type) {\n case 'text': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageText',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'media': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaAuto',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'geo':\n case 'geo_live':\n return {\n _: 'inputBotInlineMessageMediaGeo',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n // fields will be `undefined` if this is a `geo`\n heading: (obj as InputMediaGeoLive).heading,\n period: (obj as InputMediaGeoLive).period,\n proximityNotificationRadius: (obj as InputMediaGeoLive).proximityNotificationRadius,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'venue':\n return {\n _: 'inputBotInlineMessageMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n title: obj.title,\n address: obj.address,\n provider: obj.source?.provider ?? '',\n venueId: obj.source?.id ?? '',\n venueType: obj.source?.type ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'game':\n return {\n _: 'inputBotInlineMessageGame',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'contact':\n return {\n _: 'inputBotInlineMessageMediaContact',\n phoneNumber: obj.phone,\n firstName: obj.firstName,\n lastName: obj.lastName ?? '',\n vcard: obj.vcard ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'webpage': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaWebPage',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n forceLargeMedia: obj.size === 'large',\n forceSmallMedia: obj.size === 'small',\n optional: !obj.required,\n url: obj.url,\n }\n }\n default:\n assertNever(obj)\n }\n}\n"]}
|