@mtcute/core 0.10.1 → 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/types/utils.d.ts +1 -1
- package/cjs/types/utils.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/types/utils.d.ts +1 -1
- package/esm/types/utils.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
|
@@ -7,6 +7,14 @@ import { Thumbnail } from './thumbnail.js';
|
|
|
7
7
|
* A photo
|
|
8
8
|
*/
|
|
9
9
|
class Photo extends FileLocation {
|
|
10
|
+
raw;
|
|
11
|
+
media;
|
|
12
|
+
type = 'photo';
|
|
13
|
+
/** Biggest available photo width */
|
|
14
|
+
width;
|
|
15
|
+
/** Biggest available photo height */
|
|
16
|
+
height;
|
|
17
|
+
_bestSize;
|
|
10
18
|
constructor(raw, media) {
|
|
11
19
|
const location = {
|
|
12
20
|
_: 'inputPhotoFileLocation',
|
|
@@ -49,7 +57,6 @@ class Photo extends FileLocation {
|
|
|
49
57
|
super(location, size, raw.dcId);
|
|
50
58
|
this.raw = raw;
|
|
51
59
|
this.media = media;
|
|
52
|
-
this.type = 'photo';
|
|
53
60
|
this._bestSize = bestSize;
|
|
54
61
|
this.width = width;
|
|
55
62
|
this.height = height;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/photo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"photo.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/photo.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\nimport { Thumbnail } from './thumbnail.js'\n\n/**\n * A photo\n */\nexport class Photo extends FileLocation {\n readonly type = 'photo' as const\n\n /** Biggest available photo width */\n readonly width: number\n\n /** Biggest available photo height */\n readonly height: number\n\n private _bestSize?: tl.RawPhotoSize | tl.RawPhotoSizeProgressive\n\n constructor(\n readonly raw: tl.RawPhoto,\n readonly media?: tl.RawMessageMediaPhoto,\n ) {\n const location = {\n _: 'inputPhotoFileLocation',\n id: raw.id,\n fileReference: raw.fileReference,\n accessHash: raw.accessHash,\n thumbSize: '',\n } as tl.Mutable<tl.RawInputPhotoFileLocation>\n let size\n let width\n let height: number\n\n let bestSize: tl.RawPhotoSize | tl.RawPhotoSizeProgressive\n\n const progressive = raw.sizes.find((it) => it._ === 'photoSizeProgressive') as\n | tl.RawPhotoSizeProgressive\n | undefined\n\n if (progressive) {\n location.thumbSize = progressive.type\n size = Math.max(...progressive.sizes)\n width = progressive.w\n height = progressive.h\n\n bestSize = progressive\n } else {\n let max: tl.RawPhotoSize | null = null\n\n for (const sz of raw.sizes) {\n if (sz._ === 'photoSize' && (!max || sz.size > max.size)) {\n max = sz\n }\n }\n\n if (max) {\n location.thumbSize = max.type\n size = max.size\n width = max.w\n height = max.h\n\n bestSize = max\n } else {\n // does this happen at all?\n throw new MtArgumentError('Photo does not have any sizes')\n }\n }\n\n super(location, size, raw.dcId)\n this._bestSize = bestSize\n this.width = width\n this.height = height\n this.type = 'photo'\n }\n\n /**\n * Photo ID\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /** Date this photo was sent */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Whether this photo is an animated profile picture\n */\n get isAnimatedAvatar(): boolean {\n return Boolean(this.raw.videoSizes?.some((s) => s._ === 'videoSize' && s.type === 'u'))\n }\n\n /**\n * Whether this photo is an animated profile picture, built from an emoji/sticker markup\n */\n get isMarkupAvatar(): boolean {\n return Boolean(\n this.raw.videoSizes?.some((s) => s._ === 'videoSizeEmojiMarkup' || s._ === 'videoSizeStickerMarkup'),\n )\n }\n\n /** Whether this photo is hidden with a spoiler */\n get hasSpoiler(): boolean {\n return this.media?.spoiler ?? false\n }\n\n /** For self-destructing photos, TTL in seconds */\n get ttlSeconds(): number | null {\n return this.media?.ttlSeconds ?? null\n }\n\n /**\n * Available thumbnails.\n *\n * **Note**: This list will also contain the largest thumbnail that is\n * represented by the current object.\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n const res = this.raw.sizes.map((sz) => new Thumbnail(this.raw, sz))\n this.raw.videoSizes?.forEach((sz) => res.push(new Thumbnail(this.raw, sz)))\n\n return res\n }\n\n /**\n * Get a photo thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return this.thumbnails.find((it) => it.type === type) ?? null\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this photo's best thumbnail.\n */\n get fileId(): string {\n if (!this._bestSize) {\n throw new MtArgumentError('Cannot get File ID for this photo')\n }\n\n return this.getThumbnail(this._bestSize.type)!.fileId\n }\n\n /**\n * Get TDLib and Bot API compatible Unique File ID\n * representing this photo's best thumbnail.\n */\n get uniqueFileId(): string {\n if (!this._bestSize) {\n throw new MtArgumentError('Cannot get File ID for this photo')\n }\n\n return this.getThumbnail(this._bestSize.type)!.uniqueFileId\n }\n\n /**\n * Input photo generated from this object.\n */\n get inputPhoto(): tl.TypeInputPhoto {\n return {\n _: 'inputPhoto',\n id: this.raw.id,\n accessHash: this.raw.accessHash,\n fileReference: this.raw.fileReference,\n }\n }\n\n /**\n * Input media generated from this object,\n * to be used in {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaPhoto',\n id: this.inputPhoto,\n }\n }\n}\n\nmemoizeGetters(Photo, ['thumbnails', 'fileId', 'uniqueFileId'])\nmakeInspectable(Photo, ['fileSize', 'dcId', 'width', 'height'], ['inputMedia', 'inputPhoto'])\n"]}
|
|
@@ -3,11 +3,14 @@ import { makeInspectable } from '../../utils/index.js';
|
|
|
3
3
|
import { memoizeGetters } from '../../utils/memoize.js';
|
|
4
4
|
import { MessageEntity } from '../messages/message-entity.js';
|
|
5
5
|
class Poll {
|
|
6
|
+
raw;
|
|
7
|
+
_peers;
|
|
8
|
+
results;
|
|
9
|
+
type = 'poll';
|
|
6
10
|
constructor(raw, _peers, results) {
|
|
7
11
|
this.raw = raw;
|
|
8
12
|
this._peers = _peers;
|
|
9
13
|
this.results = results;
|
|
10
|
-
this.type = 'poll';
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
16
|
* Unique identifier of the poll
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/poll.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAqC7D,MAAM,OAAO,IAAI;
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/poll.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { PeersIndex } from '../peers/peers-index.js'\n\nexport interface PollAnswer {\n /**\n * Answer text\n */\n text: string\n\n /**\n * Answer data, to be passed to\n * {@link TelegramClient.sendVote}\n */\n data: Uint8Array\n\n /**\n * Number of people who has chosen this result.\n * If not available (i.e. not voted yet)\n *\n * @default `0`\n */\n voters: number\n\n /**\n * Whether this answer was chosen by the current user\n */\n chosen: boolean\n\n /**\n * Whether this answer is correct (for quizzes).\n * Not available before choosing an answer\n *\n * @default `false`\n */\n correct: boolean\n}\n\nexport class Poll {\n readonly type = 'poll' as const\n\n constructor(\n readonly raw: tl.TypePoll,\n readonly _peers: PeersIndex,\n readonly results?: tl.TypePollResults,\n ) {}\n\n /**\n * Unique identifier of the poll\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /**\n * Poll question\n */\n get question(): string {\n return this.raw.question\n }\n\n /**\n * List of answers in this poll\n */\n get answers(): ReadonlyArray<PollAnswer> {\n const results = this.results?.results\n\n return this.raw.answers.map((ans, idx) => {\n if (results) {\n const res = results[idx]\n\n return {\n text: ans.text,\n data: ans.option,\n voters: res.voters,\n chosen: Boolean(res.chosen),\n correct: Boolean(res.correct),\n }\n }\n\n return {\n text: ans.text,\n data: ans.option,\n voters: 0,\n chosen: false,\n correct: false,\n }\n })\n }\n\n /**\n * Total number of voters in this poll, if available\n */\n get voters(): number {\n return this.results?.totalVoters ?? 0\n }\n\n /**\n * Whether this poll is closed, i.e. does not\n * accept votes anymore\n */\n get isClosed(): boolean {\n return this.raw.closed!\n }\n\n /**\n * Whether this poll is public, i.e. you\n * list of voters is publicly available\n */\n get isPublic(): boolean {\n return this.raw.publicVoters!\n }\n\n /**\n * Whether this is a quiz\n */\n get isQuiz(): boolean {\n return this.raw.quiz!\n }\n\n /**\n * Whether this poll accepts multiple answers\n */\n get isMultiple(): boolean {\n return this.raw.multipleChoice!\n }\n\n /**\n * Solution for the quiz, only available\n * in case you have already answered\n */\n get solution(): string | null {\n return this.results?.solution ?? null\n }\n\n /**\n * Format entities for {@link solution}, only available\n * in case you have already answered\n */\n get solutionEntities(): ReadonlyArray<MessageEntity> | null {\n if (!this.results) return null\n\n const res: MessageEntity[] = []\n\n if (this.results.solutionEntities?.length) {\n for (const ent of this.results.solutionEntities) {\n res.push(new MessageEntity(ent, this.results.solution))\n }\n }\n\n return res\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n *\n * A few notes:\n * - Using this will result in an\n * independent poll, which will not\n * be auto-updated with the current.\n * - If this is a quiz, a normal poll\n * will be returned since the client does not\n * know the correct answer.\n * - This always returns a non-closed poll,\n * even if the current poll was closed\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n closed: false,\n id: Long.ZERO,\n publicVoters: this.raw.publicVoters,\n multipleChoice: this.raw.multipleChoice,\n question: this.raw.question,\n answers: this.raw.answers,\n closePeriod: this.raw.closePeriod,\n closeDate: this.raw.closeDate,\n },\n }\n }\n}\n\nmemoizeGetters(Poll, ['answers', 'solutionEntities'])\nmakeInspectable(Poll, undefined, ['inputMedia'])\n"]}
|
|
@@ -14,6 +14,9 @@ const MASK_POS = ['forehead', 'eyes', 'mouth', 'chin'];
|
|
|
14
14
|
* A sticker
|
|
15
15
|
*/
|
|
16
16
|
class Sticker extends RawDocument {
|
|
17
|
+
attr;
|
|
18
|
+
attr2;
|
|
19
|
+
type = 'sticker';
|
|
17
20
|
_fileIdType() {
|
|
18
21
|
return tdFileId.FileType.Sticker;
|
|
19
22
|
}
|
|
@@ -21,7 +24,6 @@ class Sticker extends RawDocument {
|
|
|
21
24
|
super(doc);
|
|
22
25
|
this.attr = attr;
|
|
23
26
|
this.attr2 = attr2;
|
|
24
|
-
this.type = 'sticker';
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* Sticker width in pixels
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticker.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/sticker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACrC,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;CACD,CAAA;AA6CV,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAA;AAE/D;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"sticker.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/sticker.ts"],"names":[],"mappings":"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","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\n\nexport const MASK_POSITION_POINT_TO_TL = {\n forehead: 0,\n eyes: 1,\n mouth: 2,\n chin: 3,\n} as const\n\nexport interface MaskPosition {\n /**\n * The part of the face relative where the mask should be placed\n */\n point: 'forehead' | 'eyes' | 'mouth' | 'chin'\n\n /**\n * Shift by X-axis measured in widths of the mask scaled to\n * the face size, from left to right. For example, choosing\n * -1.0 will place mask just to the left of the default\n * mask position.\n */\n x: number\n\n /**\n * Shift by Y-axis measured in heights of the mask scaled to\n * the face size, from top to bottom. For example, 1.0\n * will place the mask just below the default mask position.\n */\n y: number\n\n /**\n * Mask scaling coefficient. For example, 2.0 means double size.\n */\n scale: number\n}\n\n/**\n * Type of the sticker\n * - `sticker`: regular sticker\n * - `mask`: mask sticker\n * - `emoji`: custom emoji\n */\nexport type StickerType = 'sticker' | 'mask' | 'emoji'\n\n/**\n * Sticker source file type\n * - `static`: static sticker (webp)\n * - `animated`: animated sticker (gzipped lottie json)\n * - `video`: video sticker (webm)\n */\nexport type StickerSourceType = 'static' | 'animated' | 'video'\n\nconst MASK_POS = ['forehead', 'eyes', 'mouth', 'chin'] as const\n\n/**\n * A sticker\n */\nexport class Sticker extends RawDocument {\n readonly type = 'sticker' as const\n\n protected _fileIdType(): tdFileId.FileType {\n return tdFileId.FileType.Sticker\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeSticker | tl.RawDocumentAttributeCustomEmoji,\n readonly attr2?: tl.RawDocumentAttributeImageSize | tl.RawDocumentAttributeVideo,\n ) {\n super(doc)\n }\n\n /**\n * Sticker width in pixels\n */\n get width(): number {\n return this.attr2?.w ?? 512\n }\n\n /**\n * Sticker height in pixels\n */\n get height(): number {\n return this.attr2?.h ?? 512\n }\n\n /**\n * Whether this sticker is a premium sticker\n * (has premium fullscreen animation)\n */\n get isPremiumSticker(): boolean {\n return Boolean(this.raw.videoThumbs?.some((s) => s._ === 'videoSize' && s.type === 'f'))\n }\n\n /**\n * Whether this sticker is a valid sticker.\n *\n * If it is not, then this is probably a WEBP photo\n * that Telegram treats as a sticker.\n */\n get isValidSticker(): boolean {\n return this.attr2 !== undefined && (this.attr2.w === 512 || this.attr2.h === 512)\n }\n\n /**\n * Primary emoji associated with this sticker,\n * that is displayed in dialogs list.\n *\n * If there is none, empty string is returned.\n *\n * **Note:** This only contains at most one emoji.\n * Some stickers have multiple associated emojis,\n * but only one is returned here. This is Telegram's\n * limitation! Use {@link getAllEmojis} instead.\n *\n * For custom emojis, this alt should be used as a fallback\n * text that will be \"behind\" the custom emoji entity.\n */\n get emoji(): string {\n return this.attr.alt\n }\n\n /**\n * Whether this custom emoji can be used by non-premium users.\n * `false` if this is not a custom emoji.\n *\n * > Not sure if there are any such stickers currently.\n */\n get customEmojiFree(): boolean {\n return this.attr._ === 'documentAttributeCustomEmoji' ? this.attr.free ?? false : false\n }\n\n /**\n * If this is a custom emoji, its unique ID\n * that can be used in {@link TelegramClient#getCustomEmojis}\n */\n get customEmojiId(): tl.Long {\n if (this.attr._ !== 'documentAttributeCustomEmoji') {\n throw new MtArgumentError('This is not a custom emoji')\n }\n\n return this.raw.id\n }\n\n /**\n * Type of the sticker\n */\n get stickerType(): StickerType {\n if (this.attr._ === 'documentAttributeSticker') {\n return this.attr.mask ? 'mask' : 'sticker'\n } else if (this.attr._ === 'documentAttributeCustomEmoji') {\n return 'emoji'\n }\n\n return 'sticker'\n }\n\n /**\n * Type of the file representing the sticker\n */\n get sourceType(): StickerSourceType {\n if (this.attr2?._ === 'documentAttributeVideo') {\n return 'video'\n }\n\n return this.mimeType === 'application/x-tgsticker' ? 'animated' : 'static'\n }\n\n /**\n * Whether this sticker has an associated public sticker set.\n */\n get hasStickerSet(): boolean {\n return this.attr.stickerset._ === 'inputStickerSetID'\n }\n\n /**\n * Input sticker set that it associated with this sticker, if available.\n */\n get inputStickerSet(): tl.TypeInputStickerSet | null {\n return this.attr.stickerset._ === 'inputStickerSetEmpty' ? null : this.attr.stickerset\n }\n\n /**\n * Position where this mask should be placed\n */\n get maskPosition(): MaskPosition | null {\n if (this.attr._ !== 'documentAttributeSticker' || !this.attr.maskCoords) {\n return null\n }\n\n const raw = this.attr.maskCoords\n\n return {\n point: MASK_POS[raw.n],\n x: raw.x,\n y: raw.y,\n scale: raw.zoom,\n }\n }\n}\n\nmemoizeGetters(Sticker, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'maskPosition'])\nmakeInspectable(Sticker, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
|
|
@@ -6,10 +6,12 @@ import { Story } from '../stories/story.js';
|
|
|
6
6
|
* internally represented as a message media
|
|
7
7
|
*/
|
|
8
8
|
class MediaStory {
|
|
9
|
+
raw;
|
|
10
|
+
_peers;
|
|
11
|
+
type = 'story';
|
|
9
12
|
constructor(raw, _peers) {
|
|
10
13
|
this.raw = raw;
|
|
11
14
|
this._peers = _peers;
|
|
12
|
-
this.type = 'story';
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* Whether this story was automatically forwarded to you
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/story.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"story.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/story.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAQ,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,UAAU;IAIN;IACA;IAJJ,IAAI,GAAG,OAAgB,CAAA;IAEhC,YACa,GAA4B,EAC5B,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAyB;QAC5B,WAAM,GAAN,MAAM,CAAY;IAC5B,CAAC;IAEJ;;;OAGG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,UAAW,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAElD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,iBAAiB;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;SAClB,CAAA;IACL,CAAC;CACJ;AAED,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { Story } from '../stories/story.js'\n\n/**\n * Information about a \"forwarded\" story in a message,\n * internally represented as a message media\n */\nexport class MediaStory {\n readonly type = 'story' as const\n\n constructor(\n readonly raw: tl.RawMessageMediaStory,\n readonly _peers: PeersIndex,\n ) {}\n\n /**\n * Whether this story was automatically forwarded to you\n * because you were mentioned in it\n */\n get isMention(): boolean {\n return this.raw.viaMention!\n }\n\n /**\n * Peer who has posted this story\n */\n get peer(): Peer {\n return parsePeer(this.raw.peer, this._peers)\n }\n\n /**\n * ID of the story\n */\n get storyId(): number {\n return this.raw.id\n }\n\n /**\n * Contents of the story. May not be available, in which case the story\n * should be fetched using {@link getStoriesById}\n */\n get story(): Story | null {\n if (this.raw.story?._ !== 'storyItem') return null\n\n return new Story(this.raw.story, this._peers)\n }\n\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaStory',\n peer: this.peer.inputPeer,\n id: this.raw.id,\n }\n }\n}\n\nmakeInspectable(MediaStory, undefined, ['inputMedia'])\n"]}
|
|
@@ -11,6 +11,41 @@ import { FileLocation } from '../files/index.js';
|
|
|
11
11
|
* One size of some thumbnail
|
|
12
12
|
*/
|
|
13
13
|
class Thumbnail extends FileLocation {
|
|
14
|
+
// see: https://core.telegram.org/api/files#image-thumbnail-types
|
|
15
|
+
static THUMB_100x100_BOX = 's';
|
|
16
|
+
static THUMB_320x320_BOX = 'm';
|
|
17
|
+
static THUMB_800x800_BOX = 'x';
|
|
18
|
+
static THUMB_1280x1280_BOX = 'y';
|
|
19
|
+
static THUMB_2560x2560_BOX = 'w';
|
|
20
|
+
static THUMB_160x160_CROP = 'a';
|
|
21
|
+
static THUMB_320x320_CROP = 'b';
|
|
22
|
+
static THUMB_640x640_CROP = 'c';
|
|
23
|
+
static THUMB_1280x1280_CROP = 'd';
|
|
24
|
+
static THUMB_STRIP = 'i';
|
|
25
|
+
static THUMB_OUTLINE = 'j';
|
|
26
|
+
/** Animated profile pictures preview */
|
|
27
|
+
static THUMB_VIDEO_PROFILE = 'u';
|
|
28
|
+
/** Trimmed and downscaled video previews */
|
|
29
|
+
static THUMB_VIDEO_PREVIEW = 'v';
|
|
30
|
+
/** Fullscreen animation for Premium stickers */
|
|
31
|
+
static THUMB_VIDEO_FULLSCREEN = 'f';
|
|
32
|
+
/** (non-standard) Emoji-based markup for profile photo */
|
|
33
|
+
static THUMB_EMOJI_MARKUP = 'pfp_em';
|
|
34
|
+
/** (non-standard) Sticker-based markup for profile photo */
|
|
35
|
+
static THUMB_STICKER_MARKUP = 'pfp_st';
|
|
36
|
+
raw;
|
|
37
|
+
/**
|
|
38
|
+
* Thumbnail width
|
|
39
|
+
* (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})
|
|
40
|
+
*/
|
|
41
|
+
width;
|
|
42
|
+
/**
|
|
43
|
+
* Thumbnail height
|
|
44
|
+
* (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})
|
|
45
|
+
*/
|
|
46
|
+
height;
|
|
47
|
+
_path;
|
|
48
|
+
_media;
|
|
14
49
|
constructor(media, sz) {
|
|
15
50
|
switch (sz._) {
|
|
16
51
|
case 'photoSizeEmpty':
|
|
@@ -197,28 +232,6 @@ class Thumbnail extends FileLocation {
|
|
|
197
232
|
});
|
|
198
233
|
}
|
|
199
234
|
}
|
|
200
|
-
// see: https://core.telegram.org/api/files#image-thumbnail-types
|
|
201
|
-
Thumbnail.THUMB_100x100_BOX = 's';
|
|
202
|
-
Thumbnail.THUMB_320x320_BOX = 'm';
|
|
203
|
-
Thumbnail.THUMB_800x800_BOX = 'x';
|
|
204
|
-
Thumbnail.THUMB_1280x1280_BOX = 'y';
|
|
205
|
-
Thumbnail.THUMB_2560x2560_BOX = 'w';
|
|
206
|
-
Thumbnail.THUMB_160x160_CROP = 'a';
|
|
207
|
-
Thumbnail.THUMB_320x320_CROP = 'b';
|
|
208
|
-
Thumbnail.THUMB_640x640_CROP = 'c';
|
|
209
|
-
Thumbnail.THUMB_1280x1280_CROP = 'd';
|
|
210
|
-
Thumbnail.THUMB_STRIP = 'i';
|
|
211
|
-
Thumbnail.THUMB_OUTLINE = 'j';
|
|
212
|
-
/** Animated profile pictures preview */
|
|
213
|
-
Thumbnail.THUMB_VIDEO_PROFILE = 'u';
|
|
214
|
-
/** Trimmed and downscaled video previews */
|
|
215
|
-
Thumbnail.THUMB_VIDEO_PREVIEW = 'v';
|
|
216
|
-
/** Fullscreen animation for Premium stickers */
|
|
217
|
-
Thumbnail.THUMB_VIDEO_FULLSCREEN = 'f';
|
|
218
|
-
/** (non-standard) Emoji-based markup for profile photo */
|
|
219
|
-
Thumbnail.THUMB_EMOJI_MARKUP = 'pfp_em';
|
|
220
|
-
/** (non-standard) Sticker-based markup for profile photo */
|
|
221
|
-
Thumbnail.THUMB_STICKER_MARKUP = 'pfp_st';
|
|
222
235
|
const Thumbnail$1 = /*#__PURE__*/memoizeGetters(Thumbnail, ['fileId', 'uniqueFileId']);
|
|
223
236
|
const Thumbnail$2 = /*#__PURE__*/makeInspectable(Thumbnail$1, ['fileSize', 'dcId', 'width', 'height'], ['path']);
|
|
224
237
|
//# sourceMappingURL=thumbnail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/thumbnail.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,YAAY;IA6CvC,YACI,KAA0F,EAC1F,EAAuC;QAEvC,QAAQ,EAAE,CAAC,CAAC,EAAE;YACV,KAAK,gBAAgB,CAAC;YACtB,KAAK,iBAAiB;gBAClB,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;SAC3F;QAED,IAAI,QAA+F,CAAA;QACnG,IAAI,IAAI,CAAA;QACR,IAAI,KAAK,CAAA;QACT,IAAI,MAAc,CAAA;QAElB,QAAQ,EAAE,CAAC,CAAC,EAAE;YACV,KAAK,mBAAmB;gBACpB,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;gBACvC,KAAK,GAAG,MAAM,GAAG,GAAG,CAAA;gBACpB,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAA;gBACtB,MAAK;YACT,KAAK,eAAe,EAAE,SAAS;gBAC3B,QAAQ,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAM,CAAC,CAAA;gBAC3C,KAAK,GAAG,MAAM,GAAG,GAAG,CAAA;gBACpB,IAAI,GAAG,QAAQ,CAAA,CAAC,6BAA6B;gBAC7C,MAAK;YACT,KAAK,sBAAsB,CAAC;YAC5B,KAAK,wBAAwB;gBACzB,QAAQ,GAAG,GAAG,EAAE;oBACZ,MAAM,IAAI,eAAe,CAAC,qEAAqE,CAAC,CAAA;gBACpG,CAAC,CAAA;gBACD,KAAK,GAAG,MAAM,GAAG,GAAG,CAAA;gBACpB,IAAI,GAAG,QAAQ,CAAA;gBACf,MAAK;YACT;gBACI,IAAI,KAAK,CAAC,CAAC,KAAK,YAAY,EAAE;oBAC1B,QAAQ,GAAG;wBACP,CAAC,EAAE,sBAAsB;wBACzB,UAAU,EAAE;4BACR,CAAC,EAAE,mBAAmB;4BACtB,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,UAAU,EAAE,KAAK,CAAC,UAAU;yBAC/B;wBACD,YAAY,EAAE,KAAK,CAAC,YAAa;qBACpC,CAAA;iBACJ;qBAAM,IAAI,KAAK,CAAC,CAAC,KAAK,6BAA6B,EAAE;oBAClD,4EAA4E;oBAC5E,MAAM,IAAI,oBAAoB,CAAC,mCAAmC,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;iBACjG;qBAAM;oBACH,QAAQ,GAAG;wBACP,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,2BAA2B;wBAC/E,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,SAAS,EAAE,EAAE,CAAC,IAAI;qBACrB,CAAA;iBACJ;gBACD,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;gBACZ,MAAM,GAAG,EAAE,CAAC,CAAC,CAAA;gBACb,IAAI,GAAG,EAAE,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAA;gBACxE,MAAK;SACZ;QAED,IAAI,IAAwB,CAAA;QAE5B,IAAI,KAAK,CAAC,CAAC,KAAK,YAAY,EAAE;YAC1B,IAAI,GAAG,KAAK,CAAC,SAAS,CAAA;SACzB;aAAM,IAAI,KAAK,CAAC,CAAC,KAAK,6BAA6B,EAAE;YAClD,IAAI,GAAG,CAAC,CAAA;SACX;aAAM;YACH,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;SACpB;QAED,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QAEnB,IAAI,EAAE,CAAC,CAAC,KAAK,eAAe,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;SACxC;IACL,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAsB,EAAE;YACvC,OAAO,SAAS,CAAC,kBAAkB,CAAA;SACtC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,wBAAwB,EAAE;YACzC,OAAO,SAAS,CAAC,oBAAoB,CAAA;SACxC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI;QACJ,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QAEzD,OAAO,IAAI,CAAC,KAAM,CAAA;IACtB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,MAAM;QACN,IACI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAsB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC;YACnG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,6BAA6B,CAAC,uBAAuB;UACzE;YACE,MAAM,IAAI,eAAe,CAAC,kCAAkC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;SAC5E;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,YAAY,EAAE;YAChC,OAAO,QAAQ,CAAC,WAAW,EAAE,EAAE;gBAC3B,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAK;gBAChB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE;oBACN,CAAC,EAAE,OAAO;oBACV,EAAE,EAAE,IAAI,CAAC,IAAI;oBACb,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,MAAM,EAAE;wBACJ,CAAC,EAAE,4BAA4B;wBAC/B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;wBAClB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;wBAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAa;qBACrC;iBACJ;aACJ,CAAC,CAAA;SACL;QAED,OAAO,QAAQ,CAAC,WAAW,EAAE,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;YAC3E,IAAI,EAAE,IAAI,CAAC,IAAK;YAChB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,QAAQ,EAAE;gBACN,CAAC,EAAE,OAAO;gBACV,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAClB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,MAAM,EAAE;oBACJ,CAAC,EAAE,WAAW;oBACd,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;oBAC/E,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;iBAChE;aACJ;SACJ,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACZ,IACI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAsB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC;YACnG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,6BAA6B,CAAC,uBAAuB;UACzE;YACE,MAAM,IAAI,eAAe,CAAC,yCAAyC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;SACnF;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,YAAY,EAAE;YAChC,OAAO,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACxD,CAAC,EAAE,OAAO;gBACV,EAAE,EAAE,IAAI,CAAC,IAAI;gBACb,MAAM,EAAE;oBACJ,CAAC,EAAE,4BAA4B;oBAC/B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBAClB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;oBAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAa;iBACrC;aACJ,CAAC,CAAA;SACL;QAED,OAAO,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;YACxG,CAAC,EAAE,OAAO;YACV,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClB,MAAM,EAAE;gBACJ,CAAC,EAAE,WAAW;gBACd,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;gBAC/E,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;aAChE;SACJ,CAAC,CAAA;IACN,CAAC;;AAtPD,iEAAiE;AACjD,2BAAiB,GAAG,GAAG,CAAA;AACvB,2BAAiB,GAAG,GAAG,CAAA;AACvB,2BAAiB,GAAG,GAAG,CAAA;AACvB,6BAAmB,GAAG,GAAG,CAAA;AACzB,6BAAmB,GAAG,GAAG,CAAA;AAEzB,4BAAkB,GAAG,GAAG,CAAA;AACxB,4BAAkB,GAAG,GAAG,CAAA;AACxB,4BAAkB,GAAG,GAAG,CAAA;AACxB,8BAAoB,GAAG,GAAG,CAAA;AAE1B,qBAAW,GAAG,GAAG,CAAA;AACjB,uBAAa,GAAG,GAAG,CAAA;AAEnC,wCAAwC;AACxB,6BAAmB,GAAG,GAAG,CAAA;AACzC,4CAA4C;AAC5B,6BAAmB,GAAG,GAAG,CAAA;AACzC,gDAAgD;AAChC,gCAAsB,GAAG,GAAG,CAAA;AAE5C,0DAA0D;AAC1C,4BAAkB,GAAG,QAAQ,CAAA;AAC7C,4DAA4D;AAC5C,8BAAoB,GAAG,QAAQ,CAAA;AAgOnD,cAAc,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;AACrD,eAAe,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA","sourcesContent":["import Long from 'long'\n\nimport { tdFileId as td, toFileId, toUniqueFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { MtArgumentError, MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { inflateSvgPath, strippedPhotoToJpg, svgPathToFile } from '../../utils/file-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\n\n/**\n * One size of some thumbnail\n */\nexport class Thumbnail extends FileLocation {\n // see: https://core.telegram.org/api/files#image-thumbnail-types\n static readonly THUMB_100x100_BOX = 's'\n static readonly THUMB_320x320_BOX = 'm'\n static readonly THUMB_800x800_BOX = 'x'\n static readonly THUMB_1280x1280_BOX = 'y'\n static readonly THUMB_2560x2560_BOX = 'w'\n\n static readonly THUMB_160x160_CROP = 'a'\n static readonly THUMB_320x320_CROP = 'b'\n static readonly THUMB_640x640_CROP = 'c'\n static readonly THUMB_1280x1280_CROP = 'd'\n\n static readonly THUMB_STRIP = 'i'\n static readonly THUMB_OUTLINE = 'j'\n\n /** Animated profile pictures preview */\n static readonly THUMB_VIDEO_PROFILE = 'u'\n /** Trimmed and downscaled video previews */\n static readonly THUMB_VIDEO_PREVIEW = 'v'\n /** Fullscreen animation for Premium stickers */\n static readonly THUMB_VIDEO_FULLSCREEN = 'f'\n\n /** (non-standard) Emoji-based markup for profile photo */\n static readonly THUMB_EMOJI_MARKUP = 'pfp_em'\n /** (non-standard) Sticker-based markup for profile photo */\n static readonly THUMB_STICKER_MARKUP = 'pfp_st'\n\n readonly raw: tl.TypePhotoSize | tl.TypeVideoSize\n\n /**\n * Thumbnail width\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly width: number\n\n /**\n * Thumbnail height\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly height: number\n\n private _path?: string\n private _media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview\n\n constructor(\n media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview,\n sz: tl.TypePhotoSize | tl.TypeVideoSize,\n ) {\n switch (sz._) {\n case 'photoSizeEmpty':\n case 'photoCachedSize':\n throw new MtTypeAssertionError('sz', 'not (photoSizeEmpty | photoCachedSize)', sz._)\n }\n\n let location: tl.TypeInputFileLocation | Uint8Array | (() => tl.TypeInputFileLocation | Uint8Array)\n let size\n let width\n let height: number\n\n switch (sz._) {\n case 'photoStrippedSize':\n location = strippedPhotoToJpg(sz.bytes)\n width = height = NaN\n size = location.length\n break\n case 'photoPathSize': // lazily\n location = () => svgPathToFile(this._path!)\n width = height = NaN\n size = Infinity // this doesn't really matter\n break\n case 'videoSizeEmojiMarkup':\n case 'videoSizeStickerMarkup':\n location = () => {\n throw new MtArgumentError('Cannot download thumbnail with emoji/sticker markup, try other size')\n }\n width = height = NaN\n size = Infinity\n break\n default:\n if (media._ === 'stickerSet') {\n location = {\n _: 'inputStickerSetThumb',\n stickerset: {\n _: 'inputStickerSetID',\n id: media.id,\n accessHash: media.accessHash,\n },\n thumbVersion: media.thumbVersion!,\n }\n } else if (media._ === 'messageExtendedMediaPreview') {\n // according to tdlib and tdesktop sources, sz can only be photoStrippedSize\n throw new MtTypeAssertionError('messageExtendedMediaPreview#thumb', 'photoStrippedSize', sz._)\n } else {\n location = {\n _: media._ === 'photo' ? 'inputPhotoFileLocation' : 'inputDocumentFileLocation',\n id: media.id,\n fileReference: media.fileReference,\n accessHash: media.accessHash,\n thumbSize: sz.type,\n }\n }\n width = sz.w\n height = sz.h\n size = sz._ === 'photoSizeProgressive' ? Math.max(...sz.sizes) : sz.size\n break\n }\n\n let dcId: number | undefined\n\n if (media._ === 'stickerSet') {\n dcId = media.thumbDcId\n } else if (media._ === 'messageExtendedMediaPreview') {\n dcId = 0\n } else {\n dcId = media.dcId\n }\n\n super(location, size, dcId)\n this.raw = sz\n this.width = width\n this.height = height\n this._media = media\n\n if (sz._ === 'photoPathSize') {\n this._path = inflateSvgPath(sz.bytes)\n }\n }\n\n get isVideo(): boolean {\n return this.raw._ === 'videoSize'\n }\n\n /**\n * Thumbnail type\n */\n get type(): string {\n if (this.raw._ === 'videoSizeEmojiMarkup') {\n return Thumbnail.THUMB_EMOJI_MARKUP\n }\n if (this.raw._ === 'videoSizeStickerMarkup') {\n return Thumbnail.THUMB_STICKER_MARKUP\n }\n\n return this.raw.type\n }\n\n /**\n * If {@link raw} is `tl.RawPhotoPathSize` (i.e. `raw.type === Thumbnail.THUMB_OUTLINE`),\n * this property will return raw SVG path of the preview.\n *\n * When downloading path thumbnails, a valid SVG file is returned.\n *\n * See also: https://core.telegram.org/api/files#vector-thumbnails\n *\n * @throws MtTypeAssertionError In case {@link raw} is not `tl.RawPhotoPathSize`\n */\n get path(): string {\n assertTypeIs('Thumbnail#path', this.raw, 'photoPathSize')\n\n return this._path!\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this thumbnail.\n *\n * > **Note:** You can't use this file id to send a thumbnail,\n * > only to download it.\n */\n get fileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toFileId(getPlatform(), {\n type: td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: null,\n location: {\n _: 'photo',\n id: Long.ZERO,\n accessHash: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n },\n })\n }\n\n return toFileId(getPlatform(), {\n type: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: this._media.fileReference,\n location: {\n _: 'photo',\n id: this._media.id,\n accessHash: this._media.accessHash,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n },\n })\n }\n\n /**\n * Get a unique File ID representing this thumbnail.\n */\n get uniqueFileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a unique file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toUniqueFileId(getPlatform(), td.FileType.Thumbnail, {\n _: 'photo',\n id: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n })\n }\n\n return toUniqueFileId(getPlatform(), this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail, {\n _: 'photo',\n id: this._media.id,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n })\n }\n}\n\nmemoizeGetters(Thumbnail, ['fileId', 'uniqueFileId'])\nmakeInspectable(Thumbnail, ['fileSize', 'dcId', 'width', 'height'], ['path'])\n"]}
|
|
1
|
+
{"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/thumbnail.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { tdFileId as td, toFileId, toUniqueFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { MtArgumentError, MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { inflateSvgPath, strippedPhotoToJpg, svgPathToFile } from '../../utils/file-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { FileLocation } from '../files/index.js'\n\n/**\n * One size of some thumbnail\n */\nexport class Thumbnail extends FileLocation {\n // see: https://core.telegram.org/api/files#image-thumbnail-types\n static readonly THUMB_100x100_BOX = 's'\n static readonly THUMB_320x320_BOX = 'm'\n static readonly THUMB_800x800_BOX = 'x'\n static readonly THUMB_1280x1280_BOX = 'y'\n static readonly THUMB_2560x2560_BOX = 'w'\n\n static readonly THUMB_160x160_CROP = 'a'\n static readonly THUMB_320x320_CROP = 'b'\n static readonly THUMB_640x640_CROP = 'c'\n static readonly THUMB_1280x1280_CROP = 'd'\n\n static readonly THUMB_STRIP = 'i'\n static readonly THUMB_OUTLINE = 'j'\n\n /** Animated profile pictures preview */\n static readonly THUMB_VIDEO_PROFILE = 'u'\n /** Trimmed and downscaled video previews */\n static readonly THUMB_VIDEO_PREVIEW = 'v'\n /** Fullscreen animation for Premium stickers */\n static readonly THUMB_VIDEO_FULLSCREEN = 'f'\n\n /** (non-standard) Emoji-based markup for profile photo */\n static readonly THUMB_EMOJI_MARKUP = 'pfp_em'\n /** (non-standard) Sticker-based markup for profile photo */\n static readonly THUMB_STICKER_MARKUP = 'pfp_st'\n\n readonly raw: tl.TypePhotoSize | tl.TypeVideoSize\n\n /**\n * Thumbnail width\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly width: number\n\n /**\n * Thumbnail height\n * (`NaN` for {@link THUMB_OUTLINE} and {@link THUMB_STRIP})\n */\n readonly height: number\n\n private _path?: string\n private _media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview\n\n constructor(\n media: tl.RawPhoto | tl.RawDocument | tl.RawStickerSet | tl.RawMessageExtendedMediaPreview,\n sz: tl.TypePhotoSize | tl.TypeVideoSize,\n ) {\n switch (sz._) {\n case 'photoSizeEmpty':\n case 'photoCachedSize':\n throw new MtTypeAssertionError('sz', 'not (photoSizeEmpty | photoCachedSize)', sz._)\n }\n\n let location: tl.TypeInputFileLocation | Uint8Array | (() => tl.TypeInputFileLocation | Uint8Array)\n let size\n let width\n let height: number\n\n switch (sz._) {\n case 'photoStrippedSize':\n location = strippedPhotoToJpg(sz.bytes)\n width = height = NaN\n size = location.length\n break\n case 'photoPathSize': // lazily\n location = () => svgPathToFile(this._path!)\n width = height = NaN\n size = Infinity // this doesn't really matter\n break\n case 'videoSizeEmojiMarkup':\n case 'videoSizeStickerMarkup':\n location = () => {\n throw new MtArgumentError('Cannot download thumbnail with emoji/sticker markup, try other size')\n }\n width = height = NaN\n size = Infinity\n break\n default:\n if (media._ === 'stickerSet') {\n location = {\n _: 'inputStickerSetThumb',\n stickerset: {\n _: 'inputStickerSetID',\n id: media.id,\n accessHash: media.accessHash,\n },\n thumbVersion: media.thumbVersion!,\n }\n } else if (media._ === 'messageExtendedMediaPreview') {\n // according to tdlib and tdesktop sources, sz can only be photoStrippedSize\n throw new MtTypeAssertionError('messageExtendedMediaPreview#thumb', 'photoStrippedSize', sz._)\n } else {\n location = {\n _: media._ === 'photo' ? 'inputPhotoFileLocation' : 'inputDocumentFileLocation',\n id: media.id,\n fileReference: media.fileReference,\n accessHash: media.accessHash,\n thumbSize: sz.type,\n }\n }\n width = sz.w\n height = sz.h\n size = sz._ === 'photoSizeProgressive' ? Math.max(...sz.sizes) : sz.size\n break\n }\n\n let dcId: number | undefined\n\n if (media._ === 'stickerSet') {\n dcId = media.thumbDcId\n } else if (media._ === 'messageExtendedMediaPreview') {\n dcId = 0\n } else {\n dcId = media.dcId\n }\n\n super(location, size, dcId)\n this.raw = sz\n this.width = width\n this.height = height\n this._media = media\n\n if (sz._ === 'photoPathSize') {\n this._path = inflateSvgPath(sz.bytes)\n }\n }\n\n get isVideo(): boolean {\n return this.raw._ === 'videoSize'\n }\n\n /**\n * Thumbnail type\n */\n get type(): string {\n if (this.raw._ === 'videoSizeEmojiMarkup') {\n return Thumbnail.THUMB_EMOJI_MARKUP\n }\n if (this.raw._ === 'videoSizeStickerMarkup') {\n return Thumbnail.THUMB_STICKER_MARKUP\n }\n\n return this.raw.type\n }\n\n /**\n * If {@link raw} is `tl.RawPhotoPathSize` (i.e. `raw.type === Thumbnail.THUMB_OUTLINE`),\n * this property will return raw SVG path of the preview.\n *\n * When downloading path thumbnails, a valid SVG file is returned.\n *\n * See also: https://core.telegram.org/api/files#vector-thumbnails\n *\n * @throws MtTypeAssertionError In case {@link raw} is not `tl.RawPhotoPathSize`\n */\n get path(): string {\n assertTypeIs('Thumbnail#path', this.raw, 'photoPathSize')\n\n return this._path!\n }\n\n /**\n * Get TDLib and Bot API compatible File ID\n * representing this thumbnail.\n *\n * > **Note:** You can't use this file id to send a thumbnail,\n * > only to download it.\n */\n get fileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toFileId(getPlatform(), {\n type: td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: null,\n location: {\n _: 'photo',\n id: Long.ZERO,\n accessHash: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n },\n })\n }\n\n return toFileId(getPlatform(), {\n type: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n dcId: this.dcId!,\n fileReference: this._media.fileReference,\n location: {\n _: 'photo',\n id: this._media.id,\n accessHash: this._media.accessHash,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n },\n })\n }\n\n /**\n * Get a unique File ID representing this thumbnail.\n */\n get uniqueFileId(): string {\n if (\n (this.raw._ !== 'photoSize' && this.raw._ !== 'photoSizeProgressive' && this.raw._ !== 'videoSize') ||\n this._media._ === 'messageExtendedMediaPreview' // just for type safety\n ) {\n throw new MtArgumentError(`Cannot generate a unique file ID for \"${this.type}\"`)\n }\n\n if (this._media._ === 'stickerSet') {\n return toUniqueFileId(getPlatform(), td.FileType.Thumbnail, {\n _: 'photo',\n id: Long.ZERO,\n source: {\n _: 'stickerSetThumbnailVersion',\n id: this._media.id,\n accessHash: this._media.accessHash,\n version: this._media.thumbVersion!,\n },\n })\n }\n\n return toUniqueFileId(getPlatform(), this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail, {\n _: 'photo',\n id: this._media.id,\n source: {\n _: 'thumbnail',\n fileType: this._media._ === 'photo' ? td.FileType.Photo : td.FileType.Thumbnail,\n thumbnailType: this.raw.type === 'u' ? '\\x00' : this.raw.type,\n },\n })\n }\n}\n\nmemoizeGetters(Thumbnail, ['fileId', 'uniqueFileId'])\nmakeInspectable(Thumbnail, ['fileSize', 'dcId', 'width', 'height'], ['path'])\n"]}
|
|
@@ -3,9 +3,10 @@ import { makeInspectable } from '../../utils/index.js';
|
|
|
3
3
|
import { memoizeGetters } from '../../utils/memoize.js';
|
|
4
4
|
import { Location } from './location.js';
|
|
5
5
|
class Venue {
|
|
6
|
+
raw;
|
|
7
|
+
type = 'venue';
|
|
6
8
|
constructor(raw) {
|
|
7
9
|
this.raw = raw;
|
|
8
|
-
this.type = 'venue';
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Geolocation of the venue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venue.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/venue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAwBxC,MAAM,OAAO,KAAK;
|
|
1
|
+
{"version":3,"file":"venue.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/venue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAwBxC,MAAM,OAAO,KAAK;IAGO;IAFZ,IAAI,GAAG,OAAgB,CAAA;IAEhC,YAAqB,GAA4B;QAA5B,QAAG,GAAH,GAAG,CAAyB;IAAG,CAAC;IAErD;;OAEG;IACH,IAAI,QAAQ;QACR,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAExD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAmC;YACtD,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAC3B,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,UAAU;QACV,OAAO;YACH,CAAC,EAAE,iBAAiB;YACpB,QAAQ,EAAE;gBACN,CAAC,EAAE,eAAe;gBAClB,GAAG,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,GAAG;gBACzC,IAAI,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,IAAI;gBAC3C,cAAc,EAAG,IAAI,CAAC,GAAG,CAAC,GAAsB,CAAC,cAAc;aAClE;YACD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAC3B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAChC,CAAA;IACL,CAAC;CACJ;AAED,cAAc,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC7C,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Location } from './location.js'\n\nexport interface VenueSource {\n /**\n * Provider name (`foursquare` or `gplaces` for Google Places)\n */\n provider?: 'foursquare' | 'gplaces'\n\n /**\n * Venue ID in the provider's DB\n */\n id: string\n\n /**\n * Venue type in the provider's DB\n *\n * - [Supported types for Foursquare](https://developer.foursquare.com/docs/build-with-foursquare/categories/)\n * (use names, lowercase them, replace spaces and \" & \" with `_` (underscore) and remove other symbols,\n * and use `/` (slash) as hierarchy separator)\n * - [Supported types for Google Places](https://developers.google.com/places/web-service/supported_types)\n */\n type: string\n}\n\nexport class Venue {\n readonly type = 'venue' as const\n\n constructor(readonly raw: tl.RawMessageMediaVenue) {}\n\n /**\n * Geolocation of the venue\n */\n get location(): Location {\n assertTypeIs('Venue#location', this.raw.geo, 'geoPoint')\n\n return new Location(this.raw.geo)\n }\n\n /**\n * Venue name\n */\n get title(): string {\n return this.raw.title\n }\n\n /**\n * Venue address\n */\n get address(): string {\n return this.raw.address\n }\n\n /**\n * When available, source from where this venue was acquired\n */\n get source(): VenueSource | null {\n if (!this.raw.provider) return null\n\n return {\n provider: this.raw.provider as VenueSource['provider'],\n id: this.raw.venueId,\n type: this.raw.venueType,\n }\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}\n *\n * A few notes:\n * - Using this will result in an\n * independent poll, which will not\n * be auto-updated with the current.\n * - If this is a quiz, a normal poll\n * will be returned since the client does not\n * know the correct answer.\n * - This always returns a non-closed poll,\n * even if the current poll was closed\n */\n get inputMedia(): tl.TypeInputMedia {\n return {\n _: 'inputMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: (this.raw.geo as tl.RawGeoPoint).lat,\n long: (this.raw.geo as tl.RawGeoPoint).long,\n accuracyRadius: (this.raw.geo as tl.RawGeoPoint).accuracyRadius,\n },\n title: this.raw.title,\n address: this.raw.address,\n provider: this.raw.provider,\n venueId: this.raw.venueId,\n venueType: this.raw.venueType,\n }\n }\n}\n\nmemoizeGetters(Venue, ['location', 'source'])\nmakeInspectable(Venue, undefined, ['inputMedia'])\n"]}
|
|
@@ -8,6 +8,9 @@ import { RawDocument } from './document.js';
|
|
|
8
8
|
* **Note:** Legacy GIF animations are also wrapped with this class.
|
|
9
9
|
*/
|
|
10
10
|
class Video extends RawDocument {
|
|
11
|
+
attr;
|
|
12
|
+
media;
|
|
13
|
+
type = 'video';
|
|
11
14
|
_fileIdType() {
|
|
12
15
|
if (this.isRound)
|
|
13
16
|
return tdFileId.FileType.VideoNote;
|
|
@@ -19,7 +22,6 @@ class Video extends RawDocument {
|
|
|
19
22
|
super(doc);
|
|
20
23
|
this.attr = attr;
|
|
21
24
|
this.media = media;
|
|
22
|
-
this.type = 'video';
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Video width in pixels
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;;GAIG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;;GAIG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IAYrB;IACA;IAZJ,IAAI,GAAG,OAAgB,CAAA;IAEtB,WAAW;QACjB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;QAExD,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAA;IAClC,CAAC;IAED,YACI,GAAmB,EACV,IAAqE,EACrE,KAAkC;QAE3C,KAAK,CAAC,GAAG,CAAC,CAAA;QAHD,SAAI,GAAJ,IAAI,CAAiE;QACrE,UAAK,GAAL,KAAK,CAA6B;IAG/C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,CACH,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,4BAA4B;YAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,2BAA2B,CAAC,CACzE,CAAA;IACL,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACtF,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,4BAA4B,CAAA;IACvD,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAA;IACvC,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,CAAA;IACzC,CAAC;CACJ;AAED,cAAc,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAA;AAC1F,eAAe,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\n\n/**\n * A video, round video message or GIF animation.\n *\n * **Note:** Legacy GIF animations are also wrapped with this class.\n */\nexport class Video extends RawDocument {\n readonly type = 'video' as const\n\n protected _fileIdType(): tdFileId.FileType {\n if (this.isRound) return tdFileId.FileType.VideoNote\n if (this.isAnimation) return tdFileId.FileType.Animation\n\n return tdFileId.FileType.Video\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeVideo | tl.RawDocumentAttributeImageSize,\n readonly media?: tl.RawMessageMediaDocument,\n ) {\n super(doc)\n }\n\n /**\n * Video width in pixels\n */\n get width(): number {\n return this.attr.w\n }\n\n /**\n * Video height in pixels\n */\n get height(): number {\n return this.attr.h\n }\n\n /**\n * Video duration in seconds.\n *\n * `0` for legacy GIFs\n */\n get duration(): number {\n return this.attr._ === 'documentAttributeVideo' ? this.attr.duration : 0\n }\n\n /**\n * Whether this video is an animated GIF\n * (represented either by actual GIF or a silent MP4 video)\n */\n get isAnimation(): boolean {\n return (\n this.attr._ === 'documentAttributeImageSize' ||\n this.raw.attributes.some((it) => it._ === 'documentAttributeAnimated')\n )\n }\n\n /**\n * Whether this video is a round video message (aka video note)\n */\n get isRound(): boolean {\n return this.attr._ === 'documentAttributeVideo' && Boolean(this.attr.roundMessage)\n }\n\n /**\n * Whether this video is a legacy GIF (i.e. its MIME is `image/gif`)\n */\n get isLegacyGif(): boolean {\n return this.attr._ === 'documentAttributeImageSize'\n }\n\n /** Whether this video is hidden with a spoiler */\n get hasSpoiler(): boolean {\n return this.media?.spoiler ?? false\n }\n\n /** For self-destructing videos, TTL in seconds */\n get ttlSeconds(): number | null {\n return this.media?.ttlSeconds ?? null\n }\n}\n\nmemoizeGetters(Video, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'isAnimation'])\nmakeInspectable(Video, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument'])\n"]}
|
|
@@ -7,13 +7,14 @@ import { RawDocument } from './document.js';
|
|
|
7
7
|
* An voice note.
|
|
8
8
|
*/
|
|
9
9
|
class Voice extends RawDocument {
|
|
10
|
+
attr;
|
|
11
|
+
type = 'voice';
|
|
10
12
|
_fileIdType() {
|
|
11
13
|
return tdFileId.FileType.VoiceNote;
|
|
12
14
|
}
|
|
13
15
|
constructor(doc, attr) {
|
|
14
16
|
super(doc);
|
|
15
17
|
this.attr = attr;
|
|
16
|
-
this.type = 'voice';
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Duration of the voice note in seconds.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/voice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/voice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IASrB;IARJ,IAAI,GAAG,OAAgB,CAAA;IAEtB,WAAW;QACjB,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;IACtC,CAAC;IAED,YACI,GAAmB,EACV,IAAkC;QAE3C,KAAK,CAAC,GAAG,CAAC,CAAA;QAFD,SAAI,GAAJ,IAAI,CAA8B;IAG/C,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC,CAAA;IAC9C,CAAC;CACJ;AACD,cAAc,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAA;AACvF,eAAe,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAA","sourcesContent":["import { tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { decodeWaveform } from '../../utils/voice-utils.js'\nimport { RawDocument } from './document.js'\n\n/**\n * An voice note.\n */\nexport class Voice extends RawDocument {\n readonly type = 'voice' as const\n\n protected _fileIdType(): tdFileId.FileType {\n return tdFileId.FileType.VoiceNote\n }\n\n constructor(\n doc: tl.RawDocument,\n readonly attr: tl.RawDocumentAttributeAudio,\n ) {\n super(doc)\n }\n\n /**\n * Duration of the voice note in seconds.\n */\n get duration(): number {\n return this.attr.duration\n }\n\n /**\n * Voice note's waveform\n *\n * Represented with integers in range [0, 31],\n * usually has length of 100\n */\n get waveform(): number[] {\n return decodeWaveform(this.attr.waveform!)\n }\n}\nmemoizeGetters(Voice, ['fileName', 'thumbnails', 'fileId', 'uniqueFileId', 'waveform'])\nmakeInspectable(Voice, ['fileSize', 'dcId'], ['inputMedia', 'inputDocument', 'waveform'])\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-page.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/web-page.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"web-page.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/media/web-page.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { RawDocument } from './document.js'\nimport { parseDocument } from './document-utils.js'\nimport { Photo } from './photo.js'\n\n/**\n * Web page preview.\n *\n * **Warning**: Documentation of this class also contains my\n * personal research about how Telegram\n * handles different pages and embeds. **By no means**\n * this should be considered the definitive source of truth,\n * as this is not documented officially, and only consists\n * of my own observations and experiments.\n */\nexport class WebPage {\n readonly type = 'webpage' as const\n\n constructor(readonly raw: tl.RawWebPage) {}\n\n /**\n * Unique ID of the preview\n */\n get id(): tl.Long {\n return this.raw.id\n }\n\n /**\n * Original page URL\n */\n get url(): string {\n return this.raw.url\n }\n\n /**\n * URL to be displayed to the user.\n *\n * Usually a normal URL with stripped protocol and garbage.\n */\n get displayUrl(): string {\n return this.raw.displayUrl\n }\n\n /**\n * Type of the preview, taken directly from TL object\n *\n * Officially documented are:\n * `article, photo, audio, video, document, profile, app`,\n * but also these are encountered:\n * `telegram_user, telegram_bot, telegram_channel, telegram_megagroup, telegram_story`:\n *\n * - `telegram_*` ones seem to be used for `t.me` links.\n * - `article` seems to be used for almost all custom pages with `og:*` tags\n * - `photo`, `audio` and `video` seem to be derived from `og:type`,\n * and the page itself may contain a preview photo and an embed link\n * for the player. This may not correctly represent actual content type:\n * Spotify links are `audio`, but SoundCloud are `video`. YouTube links are `video`,\n * but tweets with video are `photo`.\n * - `document` seem to be used for files downloadable directly from the URL,\n * like PDFs, audio files, videos, etc. {@link document} seem to be\n * present if `type` is `document`.\n * - `profile` doesn't seem to be used\n * - `app` doesn't seem to be used\n *\n * `unknown` is returned if no type is returned in the TL object.\n */\n get previewType(): string {\n return this.raw.type || 'unknown'\n }\n\n /**\n * Page title\n *\n * Usually defined by `og:site_name` meta tag or website domain\n */\n get siteName(): string | null {\n return this.raw.siteName ?? null\n }\n\n /**\n * Page title\n *\n * Usually defined by `og:title` meta tag or `<title>` tag\n */\n get title(): string | null {\n return this.raw.title ?? null\n }\n\n /**\n * Page description\n *\n * Usually defined by `description` or `og:description` meta tag\n */\n get description(): string | null {\n return this.raw.description ?? null\n }\n\n /**\n * Page author\n *\n * The source for this is unknown, seems to be\n * custom-made for services like Twitter.\n *\n * In official apps this seems to be used as a fallback for description.\n */\n get author(): string | null {\n return this.raw.author ?? null\n }\n\n /**\n * The embed URL.\n *\n * Based on my research, Telegram only allows\n * embedding pages from a server-side white-list of domains.\n *\n * That is, you can't just copy-paste meta tags\n * from YouTube to your own domain and expect Telegram\n * to return a webpage with embed.\n *\n * IDK why is that, maybe they are concerned about\n * leaking users' IPs to 3rd parties or something\n * (but why allow embedding in the first place then?)\n *\n * Telegram for Android does not show \"play\" button for\n * webpages without embeds, and instead treats it like a simple\n * photo (why?).\n *\n * TDesktop does not support embeds and seems\n * to use {@link type} to determine them, and specifically\n * [checks](https://github.com/telegramdesktop/tdesktop/blob/3343880ed0e5a86accc7334af54b3470e29ee686/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp#L561)\n * for `YouTube` in {@link siteName} to display YouTube icon.\n */\n get embedUrl(): string | null {\n return this.raw.embedUrl ?? null\n }\n\n /**\n * Embed type.\n *\n * Now this is actually stupid.\n * As per [official documentation](https://core.telegram.org/constructor/webPage),\n * `embed_type` contains «MIME type of the embedded preview, (e.g., text/html or video/mp4)».\n * But in fact every time I encountered it it contained a simple string `iframe`.\n *\n * I couldn't find any usage of this field in official apps either.\n */\n get embedType(): string | null {\n return this.raw.embedType ?? null\n }\n\n /**\n * Width of the embed in pixels, 0 if not available.\n */\n get embedWidth(): number {\n return this.raw.embedWidth || 0\n }\n\n /**\n * Height of the embed in pixels, 0 if not available.\n */\n get embedHeight(): number {\n return this.raw.embedHeight || 0\n }\n\n /**\n * A photo inside this webpage preview.\n *\n * Used for most of the preview types.\n */\n get photo(): Photo | null {\n if (this.raw.photo?._ !== 'photo') {\n return null\n }\n\n return new Photo(this.raw.photo)\n }\n\n /**\n * Document inside this webpage preview.\n *\n * Seems that this is only used for `document` previews.\n *\n * Can be a {@link Photo}, {@link Video},\n * {@link Audio}, {@link Document}.\n */\n get document(): RawDocument | null {\n if (this.raw.document?._ !== 'document') {\n return null\n }\n\n return parseDocument(this.raw.document)\n }\n\n /**\n * Input media TL object generated from this object,\n * to be used inside {@link InputMediaLike} and\n * {@link TelegramClient.sendMedia}.\n *\n * WebPage can't provide an input media, since some\n * can only be auto-generated from a link. This getter\n * is only provided to allow using `msg.media.inputMedia`\n */\n get inputMedia(): tl.TypeInputMedia {\n throw new MtArgumentError('WebPage cannot provide an InputMedia')\n }\n}\n\nmemoizeGetters(WebPage, ['photo', 'document'])\nmakeInspectable(WebPage, undefined, ['inputMedia'])\n"]}
|