@mtcute/core 0.10.2 → 0.12.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 +199 -18
- package/cjs/highlevel/client.js +54 -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/_imports.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.d.ts +3 -0
- 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.d.ts +5 -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.d.ts +10 -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.d.ts +2 -2
- package/cjs/highlevel/methods/chats/get-full-chat.js +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.d.ts +3 -0
- 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.d.ts +9 -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.d.ts +1 -0
- package/cjs/highlevel/methods/files/normalize-input-media.js +12 -12
- 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/_business-connection.d.ts +7 -0
- package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
- package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
- package/cjs/highlevel/methods/messages/close-poll.js +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.d.ts +1 -0
- package/cjs/highlevel/methods/messages/edit-message.js +2 -1
- package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
- package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
- package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
- package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
- package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
- package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
- package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
- package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
- package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
- package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
- 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 +2 -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/search-global.d.ts +4 -0
- package/cjs/highlevel/methods/messages/search-global.js +2 -1
- package/cjs/highlevel/methods/messages/search-global.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.d.ts +28 -0
- package/cjs/highlevel/methods/messages/send-common.js +21 -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 +5 -2
- package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-media.js +4 -2
- 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 +4 -2
- package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
- package/cjs/highlevel/methods/messages/send-typing.js +2 -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/chain-id.d.ts +4 -1
- package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
- package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
- package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
- package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
- package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -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/create-business-chat-link.d.ts +12 -0
- package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
- package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
- package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
- package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
- package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
- package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
- package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
- package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
- package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
- package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
- package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
- package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
- package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
- package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
- package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
- package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
- package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
- package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
- package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
- package/cjs/highlevel/methods/stickers/_utils.js +27 -0
- package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
- package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
- package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
- package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
- package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
- package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
- package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
- package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
- package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
- 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/get-installed-stickers.d.ts +1 -2
- package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
- package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
- package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
- package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
- package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
- package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
- package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
- package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
- package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
- package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
- package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
- package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
- package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
- package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
- 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.d.ts +5 -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-birthday.d.ts +12 -0
- package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
- package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
- 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/methods.d.ts +12 -0
- package/cjs/highlevel/methods.js +33 -3
- package/cjs/highlevel/methods.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 +8 -3
- package/cjs/highlevel/storage/storage.js +17 -4
- package/cjs/highlevel/storage/storage.js.map +1 -1
- package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
- package/cjs/highlevel/types/auth/sent-code.js +15 -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.d.ts +5 -1
- package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
- package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -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.d.ts +7 -1
- package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
- package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
- 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.d.ts +2 -0
- 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 +6 -5
- 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.d.ts +5 -0
- package/cjs/highlevel/types/media/document-utils.js +9 -2
- 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/input-media/types.d.ts +2 -2
- package/cjs/highlevel/types/media/input-media/types.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.d.ts +17 -6
- package/cjs/highlevel/types/media/poll.js +69 -19
- 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 +4 -12
- 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/input-message-id.d.ts +5 -0
- package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
- package/cjs/highlevel/types/messages/message-action.js +6 -0
- 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.d.ts +4 -0
- 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.d.ts +59 -1
- package/cjs/highlevel/types/messages/message.js +102 -1
- 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/collectible-info.d.ts +27 -0
- package/cjs/highlevel/types/misc/collectible-info.js +46 -0
- package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
- package/cjs/highlevel/types/misc/entities.d.ts +7 -0
- package/cjs/highlevel/types/misc/entities.js +15 -0
- package/cjs/highlevel/types/misc/entities.js.map +1 -1
- package/cjs/highlevel/types/misc/index.d.ts +1 -0
- package/cjs/highlevel/types/misc/index.js +1 -0
- package/cjs/highlevel/types/misc/index.js.map +1 -1
- package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
- package/cjs/highlevel/types/misc/sticker-set.js +43 -6
- 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.d.ts +3 -0
- package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
- 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.d.ts +7 -93
- package/cjs/highlevel/types/peers/chat.js +10 -192
- 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/full-chat.d.ts +103 -0
- package/cjs/highlevel/types/peers/full-chat.js +237 -0
- package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
- package/cjs/highlevel/types/peers/index.d.ts +1 -0
- package/cjs/highlevel/types/peers/index.js +1 -0
- package/cjs/highlevel/types/peers/index.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.d.ts +5 -0
- package/cjs/highlevel/types/peers/user.js +12 -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/premium/business-account.d.ts +19 -0
- package/cjs/highlevel/types/premium/business-account.js +45 -0
- package/cjs/highlevel/types/premium/business-account.js.map +1 -0
- package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
- package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
- package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
- package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
- package/cjs/highlevel/types/premium/business-connection.js +45 -0
- package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
- package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
- package/cjs/highlevel/types/premium/business-intro.js +43 -0
- package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
- package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
- package/cjs/highlevel/types/premium/business-location.js +26 -0
- package/cjs/highlevel/types/premium/business-location.js.map +1 -0
- package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
- package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
- package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
- package/cjs/highlevel/types/premium/index.d.ts +5 -0
- package/cjs/highlevel/types/premium/index.js +5 -0
- package/cjs/highlevel/types/premium/index.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/business-message.d.ts +18 -0
- package/cjs/highlevel/types/updates/business-message.js +35 -0
- package/cjs/highlevel/types/updates/business-message.js.map +1 -0
- 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-business-message-update.d.ts +21 -0
- package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
- package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
- 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/index.d.ts +19 -2
- package/cjs/highlevel/types/updates/index.js +5 -1
- package/cjs/highlevel/types/updates/index.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.d.ts +4 -1
- package/cjs/highlevel/types/updates/parse-update.js +8 -0
- package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
- package/cjs/highlevel/types/updates/poll-update.js +4 -2
- 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 +0 -1
- package/cjs/highlevel/updates/manager.js +57 -30
- package/cjs/highlevel/updates/manager.js.map +1 -1
- package/cjs/highlevel/updates/parsed.js +8 -2
- package/cjs/highlevel/updates/parsed.js.map +1 -1
- package/cjs/highlevel/updates/types.d.ts +57 -0
- package/cjs/highlevel/updates/utils.d.ts +2 -0
- 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 +7 -0
- 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/index.js +6 -0
- 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 +1 -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/index.js +6 -0
- 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 +0 -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 +0 -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 +1 -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 +10 -3
- package/cjs/network/network-manager.js +57 -31
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/persistent-connection.d.ts +2 -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 +32 -12
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/network/transports/abstract.d.ts +1 -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 +0 -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 +0 -1
- package/cjs/network/transports/wrapped.js +2 -0
- package/cjs/network/transports/wrapped.js.map +1 -1
- package/cjs/platform.js +6 -0
- 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 +7 -2
- 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 +22 -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 -0
- 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/index.js +6 -0
- 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 +0 -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/client.d.ts +1 -0
- package/client.js +1 -0
- 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 +199 -18
- package/esm/highlevel/client.js +48 -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/_imports.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.d.ts +3 -0
- 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.d.ts +5 -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.d.ts +10 -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.d.ts +2 -2
- package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
- 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.d.ts +3 -0
- 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.d.ts +9 -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.d.ts +1 -0
- package/esm/highlevel/methods/files/normalize-input-media.js +12 -12
- 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/_business-connection.d.ts +7 -0
- package/esm/highlevel/methods/messages/_business-connection.js +38 -0
- package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
- package/esm/highlevel/methods/messages/close-poll.js +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.d.ts +1 -0
- package/esm/highlevel/methods/messages/edit-message.js +2 -1
- package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
- package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
- package/esm/highlevel/methods/messages/find-in-update.js +7 -2
- package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
- package/esm/highlevel/methods/messages/forward-messages.js +2 -0
- package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
- package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
- package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
- package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
- package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
- package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
- 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 +2 -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/search-global.d.ts +4 -0
- package/esm/highlevel/methods/messages/search-global.js +2 -1
- package/esm/highlevel/methods/messages/search-global.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.d.ts +28 -0
- package/esm/highlevel/methods/messages/send-common.js +19 -0
- 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 +5 -2
- package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
- package/esm/highlevel/methods/messages/send-media.js +4 -2
- 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 +4 -2
- package/esm/highlevel/methods/messages/send-text.js.map +1 -1
- package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
- package/esm/highlevel/methods/messages/send-typing.js +2 -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/chain-id.d.ts +4 -1
- package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
- package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
- package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
- package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
- package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -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/create-business-chat-link.d.ts +12 -0
- package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
- package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
- package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
- package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
- package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
- package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
- package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
- package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
- package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
- package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
- package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
- package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
- package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
- package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
- package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
- package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
- package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
- package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
- package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
- package/esm/highlevel/methods/stickers/_utils.js +23 -0
- package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
- package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
- package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
- package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
- package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
- package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
- package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
- package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
- package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
- 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/get-installed-stickers.d.ts +1 -2
- package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
- package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
- package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
- package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
- package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
- package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
- package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
- package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
- package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
- package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
- package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
- package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
- package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
- package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
- 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.d.ts +5 -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-birthday.d.ts +12 -0
- package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
- package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
- 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/methods.d.ts +12 -0
- package/esm/highlevel/methods.js +12 -0
- package/esm/highlevel/methods.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 +8 -3
- package/esm/highlevel/storage/storage.js +17 -4
- package/esm/highlevel/storage/storage.js.map +1 -1
- package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
- package/esm/highlevel/types/auth/sent-code.js +15 -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.d.ts +5 -1
- package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
- package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -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.d.ts +7 -1
- package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
- package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
- 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.d.ts +2 -0
- 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 +6 -5
- 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.d.ts +5 -0
- package/esm/highlevel/types/media/document-utils.js +7 -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/input-media/types.d.ts +2 -2
- package/esm/highlevel/types/media/input-media/types.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.d.ts +17 -6
- package/esm/highlevel/types/media/poll.js +68 -18
- 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 +4 -12
- 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/input-message-id.d.ts +5 -0
- package/esm/highlevel/types/messages/message-action.d.ts +19 -2
- package/esm/highlevel/types/messages/message-action.js +6 -0
- 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.d.ts +4 -0
- 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.d.ts +59 -1
- package/esm/highlevel/types/messages/message.js +102 -1
- 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/collectible-info.d.ts +27 -0
- package/esm/highlevel/types/misc/collectible-info.js +43 -0
- package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
- package/esm/highlevel/types/misc/entities.d.ts +7 -0
- package/esm/highlevel/types/misc/entities.js +13 -1
- package/esm/highlevel/types/misc/entities.js.map +1 -1
- package/esm/highlevel/types/misc/index.d.ts +1 -0
- package/esm/highlevel/types/misc/index.js +1 -0
- package/esm/highlevel/types/misc/index.js.map +1 -1
- package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
- package/esm/highlevel/types/misc/sticker-set.js +45 -8
- 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.d.ts +3 -0
- package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
- package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
- 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.d.ts +7 -93
- package/esm/highlevel/types/peers/chat.js +10 -192
- 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/full-chat.d.ts +103 -0
- package/esm/highlevel/types/peers/full-chat.js +234 -0
- package/esm/highlevel/types/peers/full-chat.js.map +1 -0
- package/esm/highlevel/types/peers/index.d.ts +1 -0
- package/esm/highlevel/types/peers/index.js +1 -0
- package/esm/highlevel/types/peers/index.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.d.ts +5 -0
- package/esm/highlevel/types/peers/user.js +12 -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/premium/business-account.d.ts +19 -0
- package/esm/highlevel/types/premium/business-account.js +42 -0
- package/esm/highlevel/types/premium/business-account.js.map +1 -0
- package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
- package/esm/highlevel/types/premium/business-chat-link.js +36 -0
- package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
- package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
- package/esm/highlevel/types/premium/business-connection.js +42 -0
- package/esm/highlevel/types/premium/business-connection.js.map +1 -0
- package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
- package/esm/highlevel/types/premium/business-intro.js +40 -0
- package/esm/highlevel/types/premium/business-intro.js.map +1 -0
- package/esm/highlevel/types/premium/business-location.d.ts +10 -0
- package/esm/highlevel/types/premium/business-location.js +23 -0
- package/esm/highlevel/types/premium/business-location.js.map +1 -0
- package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
- package/esm/highlevel/types/premium/business-work-hours.js +137 -0
- package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
- package/esm/highlevel/types/premium/index.d.ts +5 -0
- package/esm/highlevel/types/premium/index.js +5 -0
- package/esm/highlevel/types/premium/index.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/business-message.d.ts +18 -0
- package/esm/highlevel/types/updates/business-message.js +31 -0
- package/esm/highlevel/types/updates/business-message.js.map +1 -0
- 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-business-message-update.d.ts +21 -0
- package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
- package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
- 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/index.d.ts +19 -2
- package/esm/highlevel/types/updates/index.js +3 -1
- package/esm/highlevel/types/updates/index.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.d.ts +4 -1
- package/esm/highlevel/types/updates/parse-update.js +9 -1
- package/esm/highlevel/types/updates/parse-update.js.map +1 -1
- package/esm/highlevel/types/updates/poll-update.js +4 -2
- 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.d.ts +0 -1
- package/esm/highlevel/updates/manager.js +57 -30
- package/esm/highlevel/updates/manager.js.map +1 -1
- package/esm/highlevel/updates/parsed.js +8 -2
- package/esm/highlevel/updates/parsed.js.map +1 -1
- package/esm/highlevel/updates/types.d.ts +57 -0
- package/esm/highlevel/updates/utils.d.ts +2 -0
- 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 +4 -0
- 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 -2
- 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.d.ts +0 -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.d.ts +0 -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 -2
- 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 +10 -3
- package/esm/network/network-manager.js +57 -31
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/persistent-connection.d.ts +2 -3
- 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 +32 -12
- package/esm/network/session-connection.js.map +1 -1
- package/esm/network/transports/abstract.d.ts +1 -2
- 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.d.ts +0 -1
- package/esm/network/transports/streamed.js +1 -4
- package/esm/network/transports/streamed.js.map +1 -1
- package/esm/network/transports/wrapped.d.ts +0 -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 +7 -2
- 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 +22 -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 -0
- 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.d.ts +0 -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/index.d.ts +1 -0
- package/index.js +1 -0
- package/methods.d.ts +1 -0
- package/methods.js +1 -0
- package/package.json +13 -13
- package/platform.d.ts +1 -0
- package/platform.js +1 -0
- package/utils.d.ts +1 -0
- package/utils.js +1 -0
- package/worker.d.ts +1 -0
- package/worker.js +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/inline-message/factories.ts"],"names":[],"mappings":";;;AAEA,yDAAwD;AAExD,+EAA6E;AAG7E,oDAAmD;AAanD;;;;;GAKG;AACH,SAAgB,IAAI,CAChB,IAAe,EACf,SAAwD,EAAE;IAE1D,MAAM,GAAG,GAAG,MAA4C,CAAA;IACxD,GAAG,CAAC,IAAI,GAAG,MAAM,CAAA;IACjB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IAEf,OAAO,GAAG,CAAA;AACd,CAAC;AATD,oBASC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,SAAgD,EAAE;IACpE,MAAM,GAAG,GAAG,MAA6C,CAAA;IACzD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAA;IAElB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,sBAKC;AAED;;;;GAIG;AACH,SAAgB,GAAG,CAAC,MAA2C;IAC3D,MAAM,GAAG,GAAG,MAA2C,CAAA;IACvD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAA;IAEhB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,kBAKC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,MAA+C;IACnE,MAAM,GAAG,GAAG,MAA+C,CAAA;IAC3D,GAAG,CAAC,IAAI,GAAG,UAAU,CAAA;IAErB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,0BAKC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,MAA6C;IAC/D,MAAM,GAAG,GAAG,MAA6C,CAAA;IACzD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAA;IAElB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,sBAKC;AAED;;;GAGG;AACH,SAAgB,IAAI,CAAC,MAA4C;IAC7D,MAAM,GAAG,GAAG,MAA4C,CAAA;IACxD,GAAG,CAAC,IAAI,GAAG,MAAM,CAAA;IAEjB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,oBAKC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,MAA+C;IACnE,MAAM,GAAG,GAAG,MAA+C,CAAA;IAC3D,GAAG,CAAC,IAAI,GAAG,SAAS,CAAA;IAEpB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,0BAKC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,MAA+C;IACnE,MAAM,GAAG,GAAG,MAA+C,CAAA;IAC3D,GAAG,CAAC,IAAI,GAAG,SAAS,CAAA;IAEpB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,0BAKC;AAED,gBAAgB;AACT,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,GAAuB;IAEvB,QAAQ,GAAG,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,CAAC,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvE,OAAO;gBACH,CAAC,EAAE,2BAA2B;gBAC9B,OAAO;gBACP,QAAQ;gBACR,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;gBACtD,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAA;SACJ;QACD,KAAK,OAAO,CAAC,CAAC;YACV,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvE,OAAO;gBACH,CAAC,EAAE,gCAAgC;gBACnC,OAAO;gBACP,QAAQ;gBACR,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;gBACtD,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAA;SACJ;QACD,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACX,OAAO;gBACH,CAAC,EAAE,+BAA+B;gBAClC,QAAQ,EAAE;oBACN,CAAC,EAAE,eAAe;oBAClB,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,IAAI,EAAE,GAAG,CAAC,SAAS;iBACtB;gBACD,gDAAgD;gBAChD,OAAO,EAAG,GAAyB,CAAC,OAAO;gBAC3C,MAAM,EAAG,GAAyB,CAAC,MAAM;gBACzC,2BAA2B,EAAG,GAAyB,CAAC,2BAA2B;gBACnF,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;aACzD,CAAA;QACL,KAAK,OAAO;YACR,OAAO;gBACH,CAAC,EAAE,iCAAiC;gBACpC,QAAQ,EAAE;oBACN,CAAC,EAAE,eAAe;oBAClB,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,IAAI,EAAE,GAAG,CAAC,SAAS;iBACtB;gBACD,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE;gBACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;gBAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;gBACjC,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;aACzD,CAAA;QACL,KAAK,MAAM;YACP,OAAO;gBACH,CAAC,EAAE,2BAA2B;gBAC9B,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;aACzD,CAAA;QACL,KAAK,SAAS;YACV,OAAO;gBACH,CAAC,EAAE,mCAAmC;gBACtC,WAAW,EAAE,GAAG,CAAC,KAAK;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;gBAC5B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;gBACtB,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;aACzD,CAAA;QACL,KAAK,SAAS,CAAC,CAAC;YACZ,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvE,OAAO;gBACH,CAAC,EAAE,mCAAmC;gBACtC,OAAO;gBACP,QAAQ;gBACR,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;gBACtD,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,eAAe,EAAE,GAAG,CAAC,IAAI,KAAK,OAAO;gBACrC,eAAe,EAAE,GAAG,CAAC,IAAI,KAAK,OAAO;gBACrC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ;gBACvB,GAAG,EAAE,GAAG,CAAC,GAAG;aACf,CAAA;SACJ;QACD;YACI,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAA;KACvB;AACL,CAAC;AAzFD,oCAyFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../../types/utils.js'\nimport { ITelegramClient } from '../../../client.types.js'\nimport { _normalizeInputText } from '../../../methods/misc/normalize-text.js'\nimport { InputText } from '../../../types/misc/entities.js'\nimport { InputMediaGeoLive } from '../../media/index.js'\nimport { BotKeyboard } from '../keyboards/index.js'\nimport {\n InputInlineMessage,\n InputInlineMessageContact,\n InputInlineMessageGame,\n InputInlineMessageGeo,\n InputInlineMessageGeoLive,\n InputInlineMessageMedia,\n InputInlineMessageText,\n InputInlineMessageVenue,\n InputInlineMessageWebpage,\n} from './types.js'\n\n/**\n * Create a text inline message\n *\n * @param text Message text\n * @param params\n */\nexport function text(\n text: InputText,\n params: Omit<InputInlineMessageText, 'type' | 'text'> = {},\n): InputInlineMessageText {\n const ret = params as tl.Mutable<InputInlineMessageText>\n ret.type = 'text'\n ret.text = text\n\n return ret\n}\n\n/**\n * Create an inline message containing\n * media from the result\n */\nexport function media(params: Omit<InputInlineMessageMedia, 'type'> = {}): InputInlineMessageMedia {\n const ret = params as tl.Mutable<InputInlineMessageMedia>\n ret.type = 'media'\n\n return ret\n}\n\n/**\n * Create an inline message containing a geolocation\n *\n * @param params Additional parameters\n */\nexport function geo(params: Omit<InputInlineMessageGeo, 'type'>): InputInlineMessageGeo {\n const ret = params as tl.Mutable<InputInlineMessageGeo>\n ret.type = 'geo'\n\n return ret\n}\n\n/**\n * Create an inline message containing a live geolocation\n *\n * @param params Additional parameters\n */\nexport function geoLive(params: Omit<InputInlineMessageGeoLive, 'type'>): InputInlineMessageGeoLive {\n const ret = params as tl.Mutable<InputInlineMessageGeoLive>\n ret.type = 'geo_live'\n\n return ret\n}\n\n/**\n * Create an inline message containing a venue\n */\nexport function venue(params: Omit<InputInlineMessageVenue, 'type'>): InputInlineMessageVenue {\n const ret = params as tl.Mutable<InputInlineMessageVenue>\n ret.type = 'venue'\n\n return ret\n}\n\n/**\n * Create an inline message containing a game\n * from the inline result\n */\nexport function game(params: Omit<InputInlineMessageGame, 'type'>): InputInlineMessageGame {\n const ret = params as tl.Mutable<InputInlineMessageGame>\n ret.type = 'game'\n\n return ret\n}\n\n/**\n * Create an inline message containing a contact\n */\nexport function contact(params: Omit<InputInlineMessageContact, 'type'>): InputInlineMessageContact {\n const ret = params as tl.Mutable<InputInlineMessageContact>\n ret.type = 'contact'\n\n return ret\n}\n\n/**\n * Create an inline message containing a webpage\n */\nexport function webpage(params: Omit<InputInlineMessageWebpage, 'type'>): InputInlineMessageWebpage {\n const ret = params as tl.Mutable<InputInlineMessageWebpage>\n ret.type = 'webpage'\n\n return ret\n}\n\n/** @internal */\nexport async function _convertToTl(\n client: ITelegramClient,\n obj: InputInlineMessage,\n): Promise<tl.TypeInputBotInlineMessage> {\n switch (obj.type) {\n case 'text': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageText',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'media': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaAuto',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'geo':\n case 'geo_live':\n return {\n _: 'inputBotInlineMessageMediaGeo',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n // fields will be `undefined` if this is a `geo`\n heading: (obj as InputMediaGeoLive).heading,\n period: (obj as InputMediaGeoLive).period,\n proximityNotificationRadius: (obj as InputMediaGeoLive).proximityNotificationRadius,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'venue':\n return {\n _: 'inputBotInlineMessageMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n title: obj.title,\n address: obj.address,\n provider: obj.source?.provider ?? '',\n venueId: obj.source?.id ?? '',\n venueType: obj.source?.type ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'game':\n return {\n _: 'inputBotInlineMessageGame',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'contact':\n return {\n _: 'inputBotInlineMessageMediaContact',\n phoneNumber: obj.phone,\n firstName: obj.firstName,\n lastName: obj.lastName ?? '',\n vcard: obj.vcard ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'webpage': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaWebPage',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n forceLargeMedia: obj.size === 'large',\n forceSmallMedia: obj.size === 'small',\n optional: !obj.required,\n url: obj.url,\n }\n }\n default:\n assertNever(obj)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/inline-message/factories.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../../types/utils.js'\nimport { ITelegramClient } from '../../../client.types.js'\nimport { _normalizeInputText } from '../../../methods/misc/normalize-text.js'\nimport { InputText } from '../../../types/misc/entities.js'\nimport { InputMediaGeoLive } from '../../media/index.js'\nimport { BotKeyboard } from '../keyboards/index.js'\nimport {\n InputInlineMessage,\n InputInlineMessageContact,\n InputInlineMessageGame,\n InputInlineMessageGeo,\n InputInlineMessageGeoLive,\n InputInlineMessageMedia,\n InputInlineMessageText,\n InputInlineMessageVenue,\n InputInlineMessageWebpage,\n} from './types.js'\n\n/**\n * Create a text inline message\n *\n * @param text Message text\n * @param params\n */\nexport function text(\n text: InputText,\n params: Omit<InputInlineMessageText, 'type' | 'text'> = {},\n): InputInlineMessageText {\n const ret = params as tl.Mutable<InputInlineMessageText>\n ret.type = 'text'\n ret.text = text\n\n return ret\n}\n\n/**\n * Create an inline message containing\n * media from the result\n */\nexport function media(params: Omit<InputInlineMessageMedia, 'type'> = {}): InputInlineMessageMedia {\n const ret = params as tl.Mutable<InputInlineMessageMedia>\n ret.type = 'media'\n\n return ret\n}\n\n/**\n * Create an inline message containing a geolocation\n *\n * @param params Additional parameters\n */\nexport function geo(params: Omit<InputInlineMessageGeo, 'type'>): InputInlineMessageGeo {\n const ret = params as tl.Mutable<InputInlineMessageGeo>\n ret.type = 'geo'\n\n return ret\n}\n\n/**\n * Create an inline message containing a live geolocation\n *\n * @param params Additional parameters\n */\nexport function geoLive(params: Omit<InputInlineMessageGeoLive, 'type'>): InputInlineMessageGeoLive {\n const ret = params as tl.Mutable<InputInlineMessageGeoLive>\n ret.type = 'geo_live'\n\n return ret\n}\n\n/**\n * Create an inline message containing a venue\n */\nexport function venue(params: Omit<InputInlineMessageVenue, 'type'>): InputInlineMessageVenue {\n const ret = params as tl.Mutable<InputInlineMessageVenue>\n ret.type = 'venue'\n\n return ret\n}\n\n/**\n * Create an inline message containing a game\n * from the inline result\n */\nexport function game(params: Omit<InputInlineMessageGame, 'type'>): InputInlineMessageGame {\n const ret = params as tl.Mutable<InputInlineMessageGame>\n ret.type = 'game'\n\n return ret\n}\n\n/**\n * Create an inline message containing a contact\n */\nexport function contact(params: Omit<InputInlineMessageContact, 'type'>): InputInlineMessageContact {\n const ret = params as tl.Mutable<InputInlineMessageContact>\n ret.type = 'contact'\n\n return ret\n}\n\n/**\n * Create an inline message containing a webpage\n */\nexport function webpage(params: Omit<InputInlineMessageWebpage, 'type'>): InputInlineMessageWebpage {\n const ret = params as tl.Mutable<InputInlineMessageWebpage>\n ret.type = 'webpage'\n\n return ret\n}\n\n/** @internal */\nexport async function _convertToTl(\n client: ITelegramClient,\n obj: InputInlineMessage,\n): Promise<tl.TypeInputBotInlineMessage> {\n switch (obj.type) {\n case 'text': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageText',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'media': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaAuto',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n }\n }\n case 'geo':\n case 'geo_live':\n return {\n _: 'inputBotInlineMessageMediaGeo',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n // fields will be `undefined` if this is a `geo`\n heading: (obj as InputMediaGeoLive).heading,\n period: (obj as InputMediaGeoLive).period,\n proximityNotificationRadius: (obj as InputMediaGeoLive).proximityNotificationRadius,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'venue':\n return {\n _: 'inputBotInlineMessageMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n title: obj.title,\n address: obj.address,\n provider: obj.source?.provider ?? '',\n venueId: obj.source?.id ?? '',\n venueType: obj.source?.type ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'game':\n return {\n _: 'inputBotInlineMessageGame',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'contact':\n return {\n _: 'inputBotInlineMessageMediaContact',\n phoneNumber: obj.phone,\n firstName: obj.firstName,\n lastName: obj.lastName ?? '',\n vcard: obj.vcard ?? '',\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n }\n case 'webpage': {\n const [message, entities] = await _normalizeInputText(client, obj.text)\n\n return {\n _: 'inputBotInlineMessageMediaWebPage',\n message,\n entities,\n replyMarkup: BotKeyboard._convertToTl(obj.replyMarkup),\n invertMedia: obj.invertMedia,\n forceLargeMedia: obj.size === 'large',\n forceSmallMedia: obj.size === 'small',\n optional: !obj.required,\n url: obj.url,\n }\n }\n default:\n assertNever(obj)\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { tl } from '@mtcute/tl';
|
|
2
|
-
import {
|
|
2
|
+
import { ITelegramClient } from '../../../client.types.js';
|
|
3
|
+
import { InputInlineResult, InputInlineResultArticle, InputInlineResultAudio, InputInlineResultContact, InputInlineResultFile, InputInlineResultGame, InputInlineResultGeo, InputInlineResultGif, InputInlineResultPhoto, InputInlineResultSticker, InputInlineResultVenue, InputInlineResultVideo, InputInlineResultVoice } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Create an inline result containing an article
|
|
5
6
|
*
|
|
@@ -92,3 +93,5 @@ export declare function contact(id: string, params: Omit<InputInlineResultContac
|
|
|
92
93
|
* @param params Additional parameters
|
|
93
94
|
*/
|
|
94
95
|
export declare function game(id: string, shortName: string, params?: Omit<InputInlineResultGame, 'type' | 'id' | 'shortName'>): InputInlineResultGame;
|
|
96
|
+
/** @internal */
|
|
97
|
+
export declare function _convertToTl(client: ITelegramClient, results: InputInlineResult[]): Promise<[boolean, tl.TypeInputBotInlineResult[]]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/inline-result/factories.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../../types/errors.js'\nimport { ITelegramClient } from '../../../client.types.js'\nimport { fileIdToInputDocument, fileIdToInputPhoto } from '../../../utils/convert-file-id.js'\nimport { extractFileName } from '../../../utils/file-utils.js'\nimport { BotInlineMessage } from '../inline-message/index.js'\nimport {\n InputInlineResult,\n InputInlineResultArticle,\n InputInlineResultAudio,\n InputInlineResultContact,\n InputInlineResultFile,\n InputInlineResultGame,\n InputInlineResultGeo,\n InputInlineResultGif,\n InputInlineResultPhoto,\n InputInlineResultSticker,\n InputInlineResultVenue,\n InputInlineResultVideo,\n InputInlineResultVoice,\n} from './types.js'\n\n/**\n * Create an inline result containing an article\n *\n * @param id Inline result ID\n * @param params Article\n */\nexport function article(id: string, params: Omit<InputInlineResultArticle, 'type' | 'id'>): InputInlineResultArticle {\n const ret = params as tl.Mutable<InputInlineResultArticle>\n ret.id = id\n ret.type = 'article'\n\n return ret\n}\n\n/**\n * Create an inline result containing a GIF\n *\n * @param id Inline result ID\n * @param media GIF animation\n * @param params Additional parameters\n */\nexport function gif(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultGif, 'type' | 'id' | 'media'> = {},\n): InputInlineResultGif {\n const ret = params as tl.Mutable<InputInlineResultGif>\n ret.id = id\n ret.type = 'gif'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a video\n *\n * @param id Inline result ID\n * @param media Video\n * @param params Additional parameters\n */\nexport function video(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultVideo, 'type' | 'id' | 'media'>,\n): InputInlineResultVideo {\n const ret = params as tl.Mutable<InputInlineResultVideo>\n ret.id = id\n ret.type = 'video'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing an audio file\n *\n * @param id Inline result ID\n * @param media Audio file\n * @param params Additional parameters\n */\nexport function audio(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultAudio, 'type' | 'id' | 'media'>,\n): InputInlineResultAudio {\n const ret = params as tl.Mutable<InputInlineResultAudio>\n ret.id = id\n ret.type = 'audio'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a voice note\n *\n * @param id Inline result ID\n * @param media Voice note\n * @param params Additional parameters\n */\nexport function voice(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultVoice, 'type' | 'id' | 'media'>,\n): InputInlineResultVoice {\n const ret = params as tl.Mutable<InputInlineResultVoice>\n ret.id = id\n ret.type = 'voice'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a photo\n *\n * @param id Inline result ID\n * @param media Photo\n * @param params Additional parameters\n */\nexport function photo(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputPhoto,\n params: Omit<InputInlineResultPhoto, 'type' | 'id' | 'media'> = {},\n): InputInlineResultPhoto {\n const ret = params as tl.Mutable<InputInlineResultPhoto>\n ret.id = id\n ret.type = 'photo'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a sticker\n *\n * @param id Inline result ID\n * @param media Sticker\n */\nexport function sticker(id: string, media: string | tl.RawInputDocument): InputInlineResultSticker {\n return {\n id,\n type: 'sticker',\n media,\n }\n}\n\n/**\n * Create an inline result containing a document\n * (only PDF and ZIP are supported when using URL)\n *\n * @param id Inline result ID\n * @param media Document\n * @param params Additional parameters\n */\nexport function file(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultFile, 'type' | 'id' | 'media'>,\n): InputInlineResultFile {\n const ret = params as tl.Mutable<InputInlineResultFile>\n ret.id = id\n ret.type = 'file'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a geolocation\n *\n * @param id Inline result ID\n * @param params Additional parameters\n */\nexport function geo(id: string, params: Omit<InputInlineResultGeo, 'type' | 'id'>): InputInlineResultGeo {\n const ret = params as tl.Mutable<InputInlineResultGeo>\n ret.id = id\n ret.type = 'geo'\n\n return ret\n}\n\n/**\n * Create an inline result containing a venue\n *\n * @param id Inline result ID\n * @param params Venue parameters\n */\nexport function venue(id: string, params: Omit<InputInlineResultVenue, 'type' | 'id'>): InputInlineResultVenue {\n const ret = params as tl.Mutable<InputInlineResultVenue>\n ret.id = id\n ret.type = 'venue'\n\n return ret\n}\n\n/**\n * Create an inline result containing a contact\n *\n * @param id Inline result ID\n * @param params Contact parameters\n */\nexport function contact(id: string, params: Omit<InputInlineResultContact, 'type' | 'id'>): InputInlineResultContact {\n const ret = params as tl.Mutable<InputInlineResultContact>\n ret.id = id\n ret.type = 'contact'\n\n return ret\n}\n\n/**\n * Create an inline result containing a game\n *\n * @param id Inline result ID\n * @param shortName Short name of the game\n * @param params Additional parameters\n */\nexport function game(\n id: string,\n shortName: string,\n params: Omit<InputInlineResultGame, 'type' | 'id' | 'shortName'> = {},\n): InputInlineResultGame {\n const ret = params as tl.Mutable<InputInlineResultGame>\n ret.id = id\n ret.type = 'game'\n ret.shortName = shortName\n\n return ret\n}\n\n/** @internal */\nexport async function _convertToTl(\n client: ITelegramClient,\n results: InputInlineResult[],\n): Promise<[boolean, tl.TypeInputBotInlineResult[]]> {\n const normalizeThumb = (obj: InputInlineResult, fallback?: string): tl.RawInputWebDocument | undefined => {\n if (obj.type !== 'voice' && obj.type !== 'audio' && obj.type !== 'sticker' && obj.type !== 'game') {\n if (!obj.thumb || typeof obj.thumb === 'string') {\n if (!obj.thumb && !fallback) {\n return undefined\n }\n\n return {\n _: 'inputWebDocument',\n size: 0,\n url: obj.thumb || fallback!,\n mimeType: obj.type === 'gif' ? obj.thumbMime ?? obj.mime ?? 'video/mp4' : 'image/jpeg',\n attributes: [],\n }\n }\n\n return obj.thumb\n }\n }\n\n const items: tl.TypeInputBotInlineResult[] = []\n\n let isGallery = false\n let forceVertical = false\n\n for (const obj of results) {\n switch (obj.type) {\n case 'article': {\n forceVertical = true\n\n let sendMessage: tl.TypeInputBotInlineMessage\n\n if (obj.message) {\n sendMessage = await BotInlineMessage._convertToTl(client, obj.message)\n } else {\n let message = obj.title\n const entities: tl.TypeMessageEntity[] = [\n {\n _: 'messageEntityBold',\n offset: 0,\n length: message.length,\n },\n ]\n\n if (obj.url) {\n entities.push({\n _: 'messageEntityTextUrl',\n url: obj.url,\n offset: 0,\n length: message.length,\n })\n }\n\n if (obj.description) {\n message += '\\n' + obj.description\n }\n\n sendMessage = {\n _: 'inputBotInlineMessageText',\n message,\n entities,\n }\n }\n\n items.push({\n _: 'inputBotInlineResult',\n id: obj.id,\n type: obj.type,\n title: obj.title,\n description: obj.description,\n url: obj.hideUrl ? undefined : obj.url,\n content:\n obj.url && obj.hideUrl ?\n {\n _: 'inputWebDocument',\n url: obj.url,\n mimeType: 'text/html',\n size: 0,\n attributes: [],\n } :\n undefined,\n thumb: typeof obj.thumb === 'string' ? normalizeThumb(obj) : obj.thumb,\n sendMessage,\n })\n continue\n }\n case 'game': {\n let sendMessage: tl.TypeInputBotInlineMessage\n\n if (obj.message) {\n sendMessage = await BotInlineMessage._convertToTl(client, obj.message)\n\n if (sendMessage._ !== 'inputBotInlineMessageGame') {\n throw new MtArgumentError('game inline result must contain a game inline message')\n }\n } else {\n sendMessage = {\n _: 'inputBotInlineMessageGame',\n }\n }\n\n items.push({\n _: 'inputBotInlineResultGame',\n id: obj.id,\n shortName: obj.shortName,\n sendMessage,\n })\n continue\n }\n case 'gif':\n case 'photo':\n case 'sticker':\n isGallery = true\n break\n case 'audio':\n case 'contact':\n case 'voice':\n forceVertical = true\n }\n\n let sendMessage: tl.TypeInputBotInlineMessage\n\n if (obj.message) {\n sendMessage = await BotInlineMessage._convertToTl(client, obj.message)\n } else if (obj.type === 'venue') {\n if (obj.latitude && obj.longitude) {\n sendMessage = {\n _: 'inputBotInlineMessageMediaVenue',\n title: obj.title,\n address: obj.address,\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n provider: '',\n venueId: '',\n venueType: '',\n }\n } else {\n throw new MtArgumentError('message or location (lat&lon) bust be supplied for venue inline result')\n }\n } else if (obj.type === 'video' && obj.isEmbed && typeof obj.media === 'string') {\n sendMessage = {\n _: 'inputBotInlineMessageText',\n message: obj.media,\n }\n } else if (obj.type === 'geo') {\n sendMessage = {\n _: 'inputBotInlineMessageMediaGeo',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n }\n } else if (obj.type === 'contact') {\n sendMessage = {\n _: 'inputBotInlineMessageMediaContact',\n phoneNumber: obj.phone,\n firstName: obj.firstName,\n lastName: obj.lastName ?? '',\n vcard: '',\n }\n } else {\n sendMessage = {\n _: 'inputBotInlineMessageMediaAuto',\n message: '',\n }\n }\n\n let media: tl.TypeInputWebDocument | tl.TypeInputDocument | tl.TypeInputPhoto | undefined = undefined\n\n if (obj.type !== 'geo' && obj.type !== 'venue' && obj.type !== 'contact') {\n if (typeof obj.media === 'string') {\n // file id or url\n if (obj.media.match(/^https?:\\/\\//)) {\n if (obj.type === 'sticker') {\n throw new MtArgumentError('sticker inline result cannot contain a URL')\n }\n\n let mime: string\n if (obj.type === 'video') mime = 'video/mp4'\n else if (obj.type === 'audio') {\n mime = obj.mime ?? 'audio/mpeg'\n } else if (obj.type === 'gif') {\n mime = obj.mime ?? 'video/mp4'\n } else if (obj.type === 'voice') mime = 'audio/ogg'\n else if (obj.type === 'file') {\n if (!obj.mime) {\n throw new MtArgumentError('MIME type must be specified for file inline result')\n }\n\n mime = obj.mime\n } else mime = 'image/jpeg'\n\n const attributes: tl.TypeDocumentAttribute[] = []\n\n if (\n (obj.type === 'video' || obj.type === 'gif' || obj.type === 'photo') &&\n obj.width &&\n obj.height\n ) {\n if (obj.type !== 'photo' && obj.duration) {\n attributes.push({\n _: 'documentAttributeVideo',\n w: obj.width,\n h: obj.height,\n duration: obj.duration,\n })\n } else {\n attributes.push({\n _: 'documentAttributeImageSize',\n w: obj.width,\n h: obj.height,\n })\n }\n } else if (obj.type === 'audio' || obj.type === 'voice') {\n attributes.push({\n _: 'documentAttributeAudio',\n voice: obj.type === 'voice',\n duration: obj.duration ?? 0,\n title: obj.type === 'audio' ? obj.title : '',\n performer: obj.type === 'audio' ? obj.performer : '',\n })\n }\n\n attributes.push({\n _: 'documentAttributeFilename',\n fileName: extractFileName(obj.media),\n })\n\n media = {\n _: 'inputWebDocument',\n url: obj.media,\n mimeType: mime,\n size: 0,\n attributes,\n }\n } else if (obj.type === 'photo') {\n media = fileIdToInputPhoto(obj.media)\n } else {\n media = fileIdToInputDocument(obj.media)\n }\n } else {\n media = obj.media\n }\n }\n\n let title: string | undefined = undefined\n let description: string | undefined = undefined\n\n // incredible hacks by durov team.\n // i honestly don't understand why didn't they just\n // make a bunch of types, as they normally do,\n // but whatever.\n // ref: https://github.com/tdlib/td/blob/master/td/telegram/InlineQueriesManager.cpp\n if (obj.type === 'contact') {\n title = obj.lastName?.length ? `${obj.firstName} ${obj.lastName}` : obj.firstName\n } else if (obj.type !== 'sticker') {\n title = obj.title\n }\n\n if (obj.type === 'audio') {\n description = obj.performer\n } else if (obj.type === 'geo') {\n description = `${obj.latitude} ${obj.longitude}`\n } else if (obj.type === 'venue') {\n description = obj.address\n } else if (obj.type === 'contact') {\n description = obj.phone\n } else if (obj.type !== 'voice' && obj.type !== 'sticker') {\n description = obj.description\n }\n\n if (!media || media._ === 'inputWebDocument') {\n items.push({\n _: 'inputBotInlineResult',\n id: obj.id,\n type: obj.type,\n title,\n description,\n content: media,\n thumb: normalizeThumb(obj, media?.url),\n sendMessage,\n })\n continue\n }\n\n if (media._ === 'inputPhoto') {\n items.push({\n _: 'inputBotInlineResultPhoto',\n id: obj.id,\n type: obj.type,\n photo: media,\n sendMessage,\n })\n continue\n }\n\n items.push({\n _: 'inputBotInlineResultDocument',\n id: obj.id,\n type: obj.type,\n title,\n description,\n document: media,\n sendMessage,\n })\n }\n\n return [isGallery && !forceVertical, items]\n}\n"]}
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/inline-result/factories.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../../types/errors.js'\nimport { ITelegramClient } from '../../../client.types.js'\nimport { fileIdToInputDocument, fileIdToInputPhoto } from '../../../utils/convert-file-id.js'\nimport { extractFileName } from '../../../utils/file-utils.js'\nimport { BotInlineMessage } from '../inline-message/index.js'\nimport {\n InputInlineResult,\n InputInlineResultArticle,\n InputInlineResultAudio,\n InputInlineResultContact,\n InputInlineResultFile,\n InputInlineResultGame,\n InputInlineResultGeo,\n InputInlineResultGif,\n InputInlineResultPhoto,\n InputInlineResultSticker,\n InputInlineResultVenue,\n InputInlineResultVideo,\n InputInlineResultVoice,\n} from './types.js'\n\n/**\n * Create an inline result containing an article\n *\n * @param id Inline result ID\n * @param params Article\n */\nexport function article(id: string, params: Omit<InputInlineResultArticle, 'type' | 'id'>): InputInlineResultArticle {\n const ret = params as tl.Mutable<InputInlineResultArticle>\n ret.id = id\n ret.type = 'article'\n\n return ret\n}\n\n/**\n * Create an inline result containing a GIF\n *\n * @param id Inline result ID\n * @param media GIF animation\n * @param params Additional parameters\n */\nexport function gif(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultGif, 'type' | 'id' | 'media'> = {},\n): InputInlineResultGif {\n const ret = params as tl.Mutable<InputInlineResultGif>\n ret.id = id\n ret.type = 'gif'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a video\n *\n * @param id Inline result ID\n * @param media Video\n * @param params Additional parameters\n */\nexport function video(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultVideo, 'type' | 'id' | 'media'>,\n): InputInlineResultVideo {\n const ret = params as tl.Mutable<InputInlineResultVideo>\n ret.id = id\n ret.type = 'video'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing an audio file\n *\n * @param id Inline result ID\n * @param media Audio file\n * @param params Additional parameters\n */\nexport function audio(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultAudio, 'type' | 'id' | 'media'>,\n): InputInlineResultAudio {\n const ret = params as tl.Mutable<InputInlineResultAudio>\n ret.id = id\n ret.type = 'audio'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a voice note\n *\n * @param id Inline result ID\n * @param media Voice note\n * @param params Additional parameters\n */\nexport function voice(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultVoice, 'type' | 'id' | 'media'>,\n): InputInlineResultVoice {\n const ret = params as tl.Mutable<InputInlineResultVoice>\n ret.id = id\n ret.type = 'voice'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a photo\n *\n * @param id Inline result ID\n * @param media Photo\n * @param params Additional parameters\n */\nexport function photo(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputPhoto,\n params: Omit<InputInlineResultPhoto, 'type' | 'id' | 'media'> = {},\n): InputInlineResultPhoto {\n const ret = params as tl.Mutable<InputInlineResultPhoto>\n ret.id = id\n ret.type = 'photo'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a sticker\n *\n * @param id Inline result ID\n * @param media Sticker\n */\nexport function sticker(id: string, media: string | tl.RawInputDocument): InputInlineResultSticker {\n return {\n id,\n type: 'sticker',\n media,\n }\n}\n\n/**\n * Create an inline result containing a document\n * (only PDF and ZIP are supported when using URL)\n *\n * @param id Inline result ID\n * @param media Document\n * @param params Additional parameters\n */\nexport function file(\n id: string,\n media: string | tl.RawInputWebDocument | tl.RawInputDocument,\n params: Omit<InputInlineResultFile, 'type' | 'id' | 'media'>,\n): InputInlineResultFile {\n const ret = params as tl.Mutable<InputInlineResultFile>\n ret.id = id\n ret.type = 'file'\n ret.media = media\n\n return ret\n}\n\n/**\n * Create an inline result containing a geolocation\n *\n * @param id Inline result ID\n * @param params Additional parameters\n */\nexport function geo(id: string, params: Omit<InputInlineResultGeo, 'type' | 'id'>): InputInlineResultGeo {\n const ret = params as tl.Mutable<InputInlineResultGeo>\n ret.id = id\n ret.type = 'geo'\n\n return ret\n}\n\n/**\n * Create an inline result containing a venue\n *\n * @param id Inline result ID\n * @param params Venue parameters\n */\nexport function venue(id: string, params: Omit<InputInlineResultVenue, 'type' | 'id'>): InputInlineResultVenue {\n const ret = params as tl.Mutable<InputInlineResultVenue>\n ret.id = id\n ret.type = 'venue'\n\n return ret\n}\n\n/**\n * Create an inline result containing a contact\n *\n * @param id Inline result ID\n * @param params Contact parameters\n */\nexport function contact(id: string, params: Omit<InputInlineResultContact, 'type' | 'id'>): InputInlineResultContact {\n const ret = params as tl.Mutable<InputInlineResultContact>\n ret.id = id\n ret.type = 'contact'\n\n return ret\n}\n\n/**\n * Create an inline result containing a game\n *\n * @param id Inline result ID\n * @param shortName Short name of the game\n * @param params Additional parameters\n */\nexport function game(\n id: string,\n shortName: string,\n params: Omit<InputInlineResultGame, 'type' | 'id' | 'shortName'> = {},\n): InputInlineResultGame {\n const ret = params as tl.Mutable<InputInlineResultGame>\n ret.id = id\n ret.type = 'game'\n ret.shortName = shortName\n\n return ret\n}\n\n/** @internal */\nexport async function _convertToTl(\n client: ITelegramClient,\n results: InputInlineResult[],\n): Promise<[boolean, tl.TypeInputBotInlineResult[]]> {\n const normalizeThumb = (obj: InputInlineResult, fallback?: string): tl.RawInputWebDocument | undefined => {\n if (obj.type !== 'voice' && obj.type !== 'audio' && obj.type !== 'sticker' && obj.type !== 'game') {\n if (!obj.thumb || typeof obj.thumb === 'string') {\n if (!obj.thumb && !fallback) {\n return undefined\n }\n\n return {\n _: 'inputWebDocument',\n size: 0,\n url: obj.thumb || fallback!,\n mimeType: obj.type === 'gif' ? obj.thumbMime ?? obj.mime ?? 'video/mp4' : 'image/jpeg',\n attributes: [],\n }\n }\n\n return obj.thumb\n }\n }\n\n const items: tl.TypeInputBotInlineResult[] = []\n\n let isGallery = false\n let forceVertical = false\n\n for (const obj of results) {\n switch (obj.type) {\n case 'article': {\n forceVertical = true\n\n let sendMessage: tl.TypeInputBotInlineMessage\n\n if (obj.message) {\n sendMessage = await BotInlineMessage._convertToTl(client, obj.message)\n } else {\n let message = obj.title\n const entities: tl.TypeMessageEntity[] = [\n {\n _: 'messageEntityBold',\n offset: 0,\n length: message.length,\n },\n ]\n\n if (obj.url) {\n entities.push({\n _: 'messageEntityTextUrl',\n url: obj.url,\n offset: 0,\n length: message.length,\n })\n }\n\n if (obj.description) {\n message += '\\n' + obj.description\n }\n\n sendMessage = {\n _: 'inputBotInlineMessageText',\n message,\n entities,\n }\n }\n\n items.push({\n _: 'inputBotInlineResult',\n id: obj.id,\n type: obj.type,\n title: obj.title,\n description: obj.description,\n url: obj.hideUrl ? undefined : obj.url,\n content:\n obj.url && obj.hideUrl ?\n {\n _: 'inputWebDocument',\n url: obj.url,\n mimeType: 'text/html',\n size: 0,\n attributes: [],\n } :\n undefined,\n thumb: typeof obj.thumb === 'string' ? normalizeThumb(obj) : obj.thumb,\n sendMessage,\n })\n continue\n }\n case 'game': {\n let sendMessage: tl.TypeInputBotInlineMessage\n\n if (obj.message) {\n sendMessage = await BotInlineMessage._convertToTl(client, obj.message)\n\n if (sendMessage._ !== 'inputBotInlineMessageGame') {\n throw new MtArgumentError('game inline result must contain a game inline message')\n }\n } else {\n sendMessage = {\n _: 'inputBotInlineMessageGame',\n }\n }\n\n items.push({\n _: 'inputBotInlineResultGame',\n id: obj.id,\n shortName: obj.shortName,\n sendMessage,\n })\n continue\n }\n case 'gif':\n case 'photo':\n case 'sticker':\n isGallery = true\n break\n case 'audio':\n case 'contact':\n case 'voice':\n forceVertical = true\n }\n\n let sendMessage: tl.TypeInputBotInlineMessage\n\n if (obj.message) {\n sendMessage = await BotInlineMessage._convertToTl(client, obj.message)\n } else if (obj.type === 'venue') {\n if (obj.latitude && obj.longitude) {\n sendMessage = {\n _: 'inputBotInlineMessageMediaVenue',\n title: obj.title,\n address: obj.address,\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n provider: '',\n venueId: '',\n venueType: '',\n }\n } else {\n throw new MtArgumentError('message or location (lat&lon) bust be supplied for venue inline result')\n }\n } else if (obj.type === 'video' && obj.isEmbed && typeof obj.media === 'string') {\n sendMessage = {\n _: 'inputBotInlineMessageText',\n message: obj.media,\n }\n } else if (obj.type === 'geo') {\n sendMessage = {\n _: 'inputBotInlineMessageMediaGeo',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: obj.latitude,\n long: obj.longitude,\n },\n }\n } else if (obj.type === 'contact') {\n sendMessage = {\n _: 'inputBotInlineMessageMediaContact',\n phoneNumber: obj.phone,\n firstName: obj.firstName,\n lastName: obj.lastName ?? '',\n vcard: '',\n }\n } else {\n sendMessage = {\n _: 'inputBotInlineMessageMediaAuto',\n message: '',\n }\n }\n\n let media: tl.TypeInputWebDocument | tl.TypeInputDocument | tl.TypeInputPhoto | undefined = undefined\n\n if (obj.type !== 'geo' && obj.type !== 'venue' && obj.type !== 'contact') {\n if (typeof obj.media === 'string') {\n // file id or url\n if (obj.media.match(/^https?:\\/\\//)) {\n if (obj.type === 'sticker') {\n throw new MtArgumentError('sticker inline result cannot contain a URL')\n }\n\n let mime: string\n if (obj.type === 'video') mime = 'video/mp4'\n else if (obj.type === 'audio') {\n mime = obj.mime ?? 'audio/mpeg'\n } else if (obj.type === 'gif') {\n mime = obj.mime ?? 'video/mp4'\n } else if (obj.type === 'voice') mime = 'audio/ogg'\n else if (obj.type === 'file') {\n if (!obj.mime) {\n throw new MtArgumentError('MIME type must be specified for file inline result')\n }\n\n mime = obj.mime\n } else mime = 'image/jpeg'\n\n const attributes: tl.TypeDocumentAttribute[] = []\n\n if (\n (obj.type === 'video' || obj.type === 'gif' || obj.type === 'photo') &&\n obj.width &&\n obj.height\n ) {\n if (obj.type !== 'photo' && obj.duration) {\n attributes.push({\n _: 'documentAttributeVideo',\n w: obj.width,\n h: obj.height,\n duration: obj.duration,\n })\n } else {\n attributes.push({\n _: 'documentAttributeImageSize',\n w: obj.width,\n h: obj.height,\n })\n }\n } else if (obj.type === 'audio' || obj.type === 'voice') {\n attributes.push({\n _: 'documentAttributeAudio',\n voice: obj.type === 'voice',\n duration: obj.duration ?? 0,\n title: obj.type === 'audio' ? obj.title : '',\n performer: obj.type === 'audio' ? obj.performer : '',\n })\n }\n\n attributes.push({\n _: 'documentAttributeFilename',\n fileName: extractFileName(obj.media),\n })\n\n media = {\n _: 'inputWebDocument',\n url: obj.media,\n mimeType: mime,\n size: 0,\n attributes,\n }\n } else if (obj.type === 'photo') {\n media = fileIdToInputPhoto(obj.media)\n } else {\n media = fileIdToInputDocument(obj.media)\n }\n } else {\n media = obj.media\n }\n }\n\n let title: string | undefined = undefined\n let description: string | undefined = undefined\n\n // incredible hacks by durov team.\n // i honestly don't understand why didn't they just\n // make a bunch of types, as they normally do,\n // but whatever.\n // ref: https://github.com/tdlib/td/blob/master/td/telegram/InlineQueriesManager.cpp\n if (obj.type === 'contact') {\n title = obj.lastName?.length ? `${obj.firstName} ${obj.lastName}` : obj.firstName\n } else if (obj.type !== 'sticker') {\n title = obj.title\n }\n\n if (obj.type === 'audio') {\n description = obj.performer\n } else if (obj.type === 'geo') {\n description = `${obj.latitude} ${obj.longitude}`\n } else if (obj.type === 'venue') {\n description = obj.address\n } else if (obj.type === 'contact') {\n description = obj.phone\n } else if (obj.type !== 'voice' && obj.type !== 'sticker') {\n description = obj.description\n }\n\n if (!media || media._ === 'inputWebDocument') {\n items.push({\n _: 'inputBotInlineResult',\n id: obj.id,\n type: obj.type,\n title,\n description,\n content: media,\n thumb: normalizeThumb(obj, media?.url),\n sendMessage,\n })\n continue\n }\n\n if (media._ === 'inputPhoto') {\n items.push({\n _: 'inputBotInlineResultPhoto',\n id: obj.id,\n type: obj.type,\n photo: media,\n sendMessage,\n })\n continue\n }\n\n items.push({\n _: 'inputBotInlineResultDocument',\n id: obj.id,\n type: obj.type,\n title,\n description,\n document: media,\n sendMessage,\n })\n }\n\n return [isGallery && !forceVertical, items]\n}\n"]}
|
|
@@ -5,9 +5,10 @@ exports.BotKeyboardBuilder = void 0;
|
|
|
5
5
|
* Builder for bot keyboards
|
|
6
6
|
*/
|
|
7
7
|
class BotKeyboardBuilder {
|
|
8
|
+
maxRowWidth;
|
|
9
|
+
_buttons = [];
|
|
8
10
|
constructor(maxRowWidth = 3) {
|
|
9
11
|
this.maxRowWidth = maxRowWidth;
|
|
10
|
-
this._buttons = [];
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Add buttons, wrapping them once {@link maxRowWidth} is reached
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/keyboards/builder.ts"],"names":[],"mappings":";;;AAMA;;GAEG;AACH,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/keyboards/builder.ts"],"names":[],"mappings":";;;AAMA;;GAEG;AACH,MAAa,kBAAkB;IAGN;IAFb,QAAQ,GAA8B,EAAE,CAAA;IAEhD,YAAqB,cAA6B,CAAC;QAA9B,gBAAW,GAAX,WAAW,CAAmB;IAAG,CAAC;IAEvD;;;;OAIG;IACH,IAAI,CAAC,GAAG,OAA4C;QAChD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAEhC,IAAI,GAAG,GAA4B,EAAE,CAAA;QACrC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,OAAO,GAAG,KAAK,UAAU;gBAAE,GAAG,GAAG,GAAG,EAAE,CAAA;YAC1C,IAAI,CAAC,GAAG;gBAAE,OAAM;YAEhB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEb,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACvB,GAAG,GAAG,EAAE,CAAA;YACZ,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAiD;QACjD,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,GAAG,CAAA;YACd,GAAG,GAAG,EAAE,CAAA;YACR,EAAE,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAA;QAC7D,IAAI,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE7C,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAoC,EAAE,KAAK,GAAG,KAAK;QACtD,IAAI,OAAO,GAAG,KAAK,UAAU;YAAE,GAAG,GAAG,GAAG,EAAE,CAAA;QAC1C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,IACI,IAAI,CAAC,QAAQ,CAAC,MAAM;YACpB,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAC3G,CAAC;YACC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI,CAAC,QAAQ;SACzB,CAAA;IACL,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,SAAwD,EAAE;QAC9D,MAAM,GAAG,GAAG,MAAyC,CAAA;QACrD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAA;QAClB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE3B,OAAO,GAAG,CAAA;IACd,CAAC;CACJ;AA7FD,gDA6FC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport type { InlineKeyboardMarkup, ReplyKeyboardMarkup } from './types.js'\n\nexport type ButtonLike = tl.TypeKeyboardButton | false | null | undefined | void\n\n/**\n * Builder for bot keyboards\n */\nexport class BotKeyboardBuilder {\n private _buttons: tl.TypeKeyboardButton[][] = []\n\n constructor(readonly maxRowWidth: number | null = 3) {}\n\n /**\n * Add buttons, wrapping them once {@link maxRowWidth} is reached\n *\n * @param buttons Buttons to add\n */\n push(...buttons: (ButtonLike | (() => ButtonLike))[]): this {\n if (!buttons.length) return this\n\n let row: tl.TypeKeyboardButton[] = []\n buttons.forEach((btn) => {\n if (typeof btn === 'function') btn = btn()\n if (!btn) return\n\n row.push(btn)\n\n if (row.length === this.maxRowWidth) {\n this._buttons.push(row)\n row = []\n }\n })\n\n if (row.length) {\n this._buttons.push(row)\n }\n\n return this\n }\n\n /**\n * Add a row of buttons. Will not be wrapped.\n *\n * @param row Row or a function that will populate it\n */\n row(row: ButtonLike[] | ((arr: ButtonLike[]) => void)): this {\n if (typeof row === 'function') {\n const fn = row\n row = []\n fn(row)\n }\n\n const normal = row.filter(Boolean) as tl.TypeKeyboardButton[]\n if (normal.length) this._buttons.push(normal)\n\n return this\n }\n\n /**\n * Append a button to the last row, wrapping if needed.\n *\n * @param btn Button to add\n * @param force Whether to forcefully add the button (i.e. do not wrap)\n */\n append(btn: ButtonLike | (() => ButtonLike), force = false): this {\n if (typeof btn === 'function') btn = btn()\n if (!btn) return this\n\n if (\n this._buttons.length &&\n (this.maxRowWidth === null || force || this._buttons[this._buttons.length - 1].length < this.maxRowWidth)\n ) {\n this._buttons[this._buttons.length - 1].push(btn)\n } else {\n this._buttons.push([btn])\n }\n\n return this\n }\n\n /**\n * Return contents of this builder as an inline keyboard\n */\n asInline(): InlineKeyboardMarkup {\n return {\n type: 'inline',\n buttons: this._buttons,\n }\n }\n\n /**\n * Return contents of this builder as a reply keyboard\n */\n asReply(params: Omit<ReplyKeyboardMarkup, 'type' | 'buttons'> = {}): ReplyKeyboardMarkup {\n const ret = params as tl.Mutable<ReplyKeyboardMarkup>\n ret.type = 'reply'\n ret.buttons = this._buttons\n\n return ret\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tl } from '@mtcute/tl';
|
|
2
2
|
import { BotKeyboardBuilder } from './builder.js';
|
|
3
|
-
import { InlineKeyboardMarkup, ReplyKeyboardForceReply, ReplyKeyboardHide, ReplyKeyboardMarkup } from './types.js';
|
|
3
|
+
import { InlineKeyboardMarkup, ReplyKeyboardForceReply, ReplyKeyboardHide, ReplyKeyboardMarkup, ReplyMarkup } from './types.js';
|
|
4
4
|
/** Create a keyboard builder */
|
|
5
5
|
export declare function builder(maxRowWidth?: number | null): BotKeyboardBuilder;
|
|
6
6
|
/**
|
|
@@ -193,3 +193,9 @@ export declare function requestPeer(text: string, buttonId: number, params: {
|
|
|
193
193
|
* @param predicate Button text or predicate function
|
|
194
194
|
*/
|
|
195
195
|
export declare function findButton(buttons: tl.TypeKeyboardButton[][], predicate: string | ((btn: tl.TypeKeyboardButton) => boolean)): tl.TypeKeyboardButton | null;
|
|
196
|
+
/** @internal */
|
|
197
|
+
export declare function _rowsTo2d(rows: tl.RawKeyboardButtonRow[]): tl.TypeKeyboardButton[][];
|
|
198
|
+
/** @internal */
|
|
199
|
+
export declare function _2dToRows(arr: tl.TypeKeyboardButton[][], inline: boolean): tl.RawKeyboardButtonRow[];
|
|
200
|
+
/** @internal */
|
|
201
|
+
export declare function _convertToTl(obj?: ReplyMarkup): tl.TypeReplyMarkup | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/keyboards/factories.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../../platform.js'\nimport { assertNever } from '../../../../types/utils.js'\nimport { toInputUser } from '../../../utils/peer-utils.js'\nimport { BotKeyboardBuilder } from './builder.js'\nimport {\n InlineKeyboardMarkup,\n ReplyKeyboardForceReply,\n ReplyKeyboardHide,\n ReplyKeyboardMarkup,\n ReplyMarkup,\n} from './types.js'\n\n/** Create a keyboard builder */\nexport function builder(maxRowWidth?: number | null): BotKeyboardBuilder {\n return new BotKeyboardBuilder(maxRowWidth)\n}\n\n/**\n * Create an inline keyboard markup\n *\n * @param buttons Two-dimensional array of buttons\n */\nexport function inline(buttons: tl.TypeKeyboardButton[][]): InlineKeyboardMarkup {\n return {\n type: 'inline',\n buttons,\n }\n}\n\n/**\n * Create a reply keyboard markup\n *\n * @param buttons Two-dimensional array of buttons\n * @param params Additional parameters for the keyboard\n */\nexport function reply(\n buttons: tl.TypeKeyboardButton[][],\n params: Omit<ReplyKeyboardMarkup, 'type' | 'buttons'> = {},\n): ReplyKeyboardMarkup {\n const ret = params as tl.Mutable<ReplyKeyboardMarkup>\n ret.type = 'reply'\n ret.buttons = buttons\n\n return ret\n}\n\n/**\n * Hide the previously sent reply keyboard\n *\n * @param selective\n * Whether to remove the keyboard for specific users only. Targets:\n * - users that are @mentioned in the text of the Message\n * - in case this is a reply, sender of the original message\n */\nexport function hideReply(selective?: boolean): ReplyKeyboardHide {\n return {\n type: 'reply_hide',\n selective,\n }\n}\n\n/**\n * Force the user to send a reply\n */\nexport function forceReply(params: Omit<ReplyKeyboardForceReply, 'type'> = {}): ReplyKeyboardForceReply {\n const ret = params as tl.Mutable<ReplyKeyboardForceReply>\n ret.type = 'force_reply'\n\n return ret\n}\n\n/**\n * Create a text-only keyboard button.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n */\nexport function text(text: string): tl.RawKeyboardButton {\n return {\n _: 'keyboardButton',\n text,\n }\n}\n\n/**\n * Create a keyboard button requesting for user's contact.\n * Available only for private chats.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n */\nexport function requestContact(text: string): tl.RawKeyboardButtonRequestPhone {\n return {\n _: 'keyboardButtonRequestPhone',\n text,\n }\n}\n\n/**\n * Create a keyboard button requesting for user's geo location.\n * Available only for private chats.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n */\nexport function requestGeo(text: string): tl.RawKeyboardButtonRequestGeoLocation {\n return {\n _: 'keyboardButtonRequestGeoLocation',\n text,\n }\n}\n\n/**\n * Create a keyboard button requesting the user to create and send a poll.\n * Available only for private chats.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n * @param quiz If set, only quiz polls can be sent\n */\nexport function requestPoll(text: string, quiz?: boolean): tl.RawKeyboardButtonRequestPoll {\n return {\n _: 'keyboardButtonRequestPoll',\n text,\n quiz,\n }\n}\n\n/**\n * Create a keyboard button with a link.\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button text\n * @param url URL\n */\nexport function url(text: string, url: string): tl.RawKeyboardButtonUrl {\n return {\n _: 'keyboardButtonUrl',\n text,\n url,\n }\n}\n\n/**\n * Create a keyboard button with a link.\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button text\n * @param data Callback data (1-64 bytes). String will be converted to `Buffer`\n * @param requiresPassword\n * Whether the user should verify their identity by entering 2FA password.\n * See more: {@link tl.RawKeyboardButtonCallback#requiresPassword}\n */\nexport function callback(\n text: string,\n data: string | Uint8Array,\n requiresPassword?: boolean,\n): tl.RawKeyboardButtonCallback {\n return {\n _: 'keyboardButtonCallback',\n text,\n requiresPassword,\n data: typeof data === 'string' ? getPlatform().utf8Encode(data) : data,\n }\n}\n\n/**\n * Button to force a user to switch to inline mode.\n *\n * Pressing the button will prompt the user to select\n * one of their chats, open that chat and insert the bot‘s\n * username and the specified inline query (if any) in the input field.\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button text\n * @param query Inline query (can be empty or omitted)\n * @param currentChat\n * If set, pressing the button will insert the bot's username\n * and the specified inline query in the current chat's input field\n */\nexport function switchInline(text: string, query = '', currentChat?: boolean): tl.RawKeyboardButtonSwitchInline {\n return {\n _: 'keyboardButtonSwitchInline',\n samePeer: currentChat,\n text,\n query,\n }\n}\n\n/**\n * Button to start a game\n *\n * Used for inline keyboards, not reply!\n *\n * **Note**: This type of button must always be\n * the first button in the first row. ID of the\n * game is inferred from {@link InputMedia.game},\n * thus this button should only be used with it.\n */\nexport function game(text: string): tl.RawKeyboardButtonGame {\n return { _: 'keyboardButtonGame', text }\n}\n\n/**\n * Button to pay for a product.\n *\n * Used for inline keyboards, not reply!\n *\n * **Note**: This type of button must always be\n * the first button in the first row. Related\n * invoice is inferred from {@link InputMedia.invoice},\n * thus this button should only be used with it.\n */\nexport function pay(text: string): tl.RawKeyboardButtonBuy {\n return { _: 'keyboardButtonBuy', text }\n}\n\n/**\n * Button to authorize a user\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button label\n * @param url Authorization URL (see {@link tl.RawInputKeyboardButtonUrlAuth})\n * @param params\n */\nexport function urlAuth(\n text: string,\n url: string,\n params: {\n /**\n * Button label when forwarded\n */\n fwdText?: string\n\n /**\n * Whether to request the permission for\n * your bot to send messages to the user\n */\n requestWriteAccess?: boolean\n\n /**\n * Bot, which will be used for user authorization.\n * `url` domain must be the same as the domain linked\n * with the bot.\n *\n * @default current bot\n */\n bot?: tl.TypeInputUser\n } = {},\n): tl.RawInputKeyboardButtonUrlAuth {\n return {\n _: 'inputKeyboardButtonUrlAuth',\n text,\n url,\n bot: params.bot ?? {\n _: 'inputUserSelf',\n },\n fwdText: params.fwdText,\n requestWriteAccess: params.requestWriteAccess,\n }\n}\n\n/**\n * Button to open webview\n *\n * Used for both inline keyboards and reply ones\n *\n * @param text Button label\n * @param url WebView URL\n */\nexport function webView(text: string, url: string): tl.RawKeyboardButtonWebView {\n return {\n _: 'keyboardButtonWebView',\n text,\n url,\n }\n}\n\n/**\n * Button to open user profile\n *\n * @param text Text of the button\n * @param user User to be opened (use {@link TelegramClient.resolvePeer})\n */\nexport function userProfile(text: string, user: tl.TypeInputPeer): tl.RawInputKeyboardButtonUserProfile {\n return {\n _: 'inputKeyboardButtonUserProfile',\n text,\n userId: toInputUser(user),\n }\n}\n\n/**\n * Button to request a peer from the user\n *\n * @param text Text of the button\n * @param buttonId ID of the button that will later be passed to the service message\n */\nexport function requestPeer(\n text: string,\n buttonId: number,\n params: {\n /**\n * Peer type, along with filters\n */\n peerType: tl.TypeRequestPeerType\n\n /**\n * Maximum number of peers to be selected\n *\n * @default 1\n */\n count?: number\n },\n): tl.RawKeyboardButtonRequestPeer {\n return {\n _: 'keyboardButtonRequestPeer',\n text,\n buttonId,\n peerType: params.peerType,\n maxQuantity: params.count ?? 1,\n }\n}\n\n/**\n * Find a button in the keyboard by its text or by predicate\n *\n * @param buttons Two-dimensional array of buttons\n * @param predicate Button text or predicate function\n */\nexport function findButton(\n buttons: tl.TypeKeyboardButton[][],\n predicate: string | ((btn: tl.TypeKeyboardButton) => boolean),\n): tl.TypeKeyboardButton | null {\n if (typeof predicate === 'string') {\n const text = predicate\n\n predicate = (btn) => {\n return 'text' in btn && btn.text === text\n }\n }\n\n for (const row of buttons) {\n for (const btn of row) {\n if (predicate(btn)) {\n return btn\n }\n }\n }\n\n return null\n}\n\n/** @internal */\nexport function _rowsTo2d(rows: tl.RawKeyboardButtonRow[]): tl.TypeKeyboardButton[][] {\n return rows.map((it) => it.buttons)\n}\n\n/** @internal */\nexport function _2dToRows(arr: tl.TypeKeyboardButton[][], inline: boolean): tl.RawKeyboardButtonRow[] {\n return arr.map((row) => {\n if (!inline) {\n // le cringe\n row = row.map((btn) =>\n btn._ === 'keyboardButtonWebView' ?\n {\n ...btn,\n _: 'keyboardButtonSimpleWebView',\n } :\n btn,\n )\n }\n\n return {\n _: 'keyboardButtonRow',\n buttons: row,\n }\n })\n}\n\n/** @internal */\nexport function _convertToTl(obj?: ReplyMarkup): tl.TypeReplyMarkup | undefined {\n if (!obj) return obj\n if (tl.isAnyReplyMarkup(obj)) return obj\n\n switch (obj.type) {\n case 'reply':\n return {\n _: 'replyKeyboardMarkup',\n resize: obj.resize,\n singleUse: obj.singleUse,\n selective: obj.selective,\n persistent: obj.persistent,\n placeholder: obj.placeholder,\n rows: _2dToRows(obj.buttons, false),\n }\n case 'reply_hide':\n return {\n _: 'replyKeyboardHide',\n selective: obj.selective,\n }\n case 'force_reply':\n return {\n _: 'replyKeyboardForceReply',\n singleUse: obj.singleUse,\n selective: obj.selective,\n placeholder: obj.placeholder,\n }\n case 'inline':\n return {\n _: 'replyInlineMarkup',\n rows: _2dToRows(obj.buttons, true),\n }\n default:\n assertNever(obj)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../../../src/highlevel/types/bots/keyboards/factories.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,yDAAqD;AACrD,yDAAwD;AACxD,gEAA0D;AAC1D,6CAAiD;AASjD,gCAAgC;AAChC,SAAgB,OAAO,CAAC,WAA2B;IAC/C,OAAO,IAAI,+BAAkB,CAAC,WAAW,CAAC,CAAA;AAC9C,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,OAAkC;IACrD,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,OAAO;KACV,CAAA;AACL,CAAC;AALD,wBAKC;AAED;;;;;GAKG;AACH,SAAgB,KAAK,CACjB,OAAkC,EAClC,SAAwD,EAAE;IAE1D,MAAM,GAAG,GAAG,MAAyC,CAAA;IACrD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAA;IAClB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAA;IAErB,OAAO,GAAG,CAAA;AACd,CAAC;AATD,sBASC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,SAAmB;IACzC,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,SAAS;KACZ,CAAA;AACL,CAAC;AALD,8BAKC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,SAAgD,EAAE;IACzE,MAAM,GAAG,GAAG,MAA6C,CAAA;IACzD,GAAG,CAAC,IAAI,GAAG,aAAa,CAAA;IAExB,OAAO,GAAG,CAAA;AACd,CAAC;AALD,gCAKC;AAED;;;;;;GAMG;AACH,SAAgB,IAAI,CAAC,IAAY;IAC7B,OAAO;QACH,CAAC,EAAE,gBAAgB;QACnB,IAAI;KACP,CAAA;AACL,CAAC;AALD,oBAKC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO;QACH,CAAC,EAAE,4BAA4B;QAC/B,IAAI;KACP,CAAA;AACL,CAAC;AALD,wCAKC;AAED;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,IAAY;IACnC,OAAO;QACH,CAAC,EAAE,kCAAkC;QACrC,IAAI;KACP,CAAA;AACL,CAAC;AALD,gCAKC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,IAAc;IACpD,OAAO;QACH,CAAC,EAAE,2BAA2B;QAC9B,IAAI;QACJ,IAAI;KACP,CAAA;AACL,CAAC;AAND,kCAMC;AAED;;;;;;;GAOG;AACH,SAAgB,GAAG,CAAC,IAAY,EAAE,GAAW;IACzC,OAAO;QACH,CAAC,EAAE,mBAAmB;QACtB,IAAI;QACJ,GAAG;KACN,CAAA;AACL,CAAC;AAND,kBAMC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,QAAQ,CACpB,IAAY,EACZ,IAAyB,EACzB,gBAA0B;IAE1B,OAAO;QACH,CAAC,EAAE,wBAAwB;QAC3B,IAAI;QACJ,gBAAgB;QAChB,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,yBAAW,GAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACzE,CAAA;AACL,CAAC;AAXD,4BAWC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,KAAK,GAAG,EAAE,EAAE,WAAqB;IACxE,OAAO;QACH,CAAC,EAAE,4BAA4B;QAC/B,QAAQ,EAAE,WAAW;QACrB,IAAI;QACJ,KAAK;KACR,CAAA;AACL,CAAC;AAPD,oCAOC;AAED;;;;;;;;;GASG;AACH,SAAgB,IAAI,CAAC,IAAY;IAC7B,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAA;AAC5C,CAAC;AAFD,oBAEC;AAED;;;;;;;;;GASG;AACH,SAAgB,GAAG,CAAC,IAAY;IAC5B,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAA;AAC3C,CAAC;AAFD,kBAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,OAAO,CACnB,IAAY,EACZ,GAAW,EACX,SAoBI,EAAE;IAEN,OAAO;QACH,CAAC,EAAE,4BAA4B;QAC/B,IAAI;QACJ,GAAG;QACH,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;YACf,CAAC,EAAE,eAAe;SACrB;QACD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;KAChD,CAAA;AACL,CAAC;AAnCD,0BAmCC;AAED;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,IAAY,EAAE,GAAW;IAC7C,OAAO;QACH,CAAC,EAAE,uBAAuB;QAC1B,IAAI;QACJ,GAAG;KACN,CAAA;AACL,CAAC;AAND,0BAMC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,IAAsB;IAC5D,OAAO;QACH,CAAC,EAAE,gCAAgC;QACnC,IAAI;QACJ,MAAM,EAAE,IAAA,2BAAW,EAAC,IAAI,CAAC;KAC5B,CAAA;AACL,CAAC;AAND,kCAMC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CACvB,IAAY,EACZ,QAAgB,EAChB,MAYC;IAED,OAAO;QACH,CAAC,EAAE,2BAA2B;QAC9B,IAAI;QACJ,QAAQ;QACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;KACjC,CAAA;AACL,CAAC;AAxBD,kCAwBC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CACtB,OAAkC,EAClC,SAA6D;IAE7D,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAA;QAEtB,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE;YAChB,OAAO,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;QAC7C,CAAC,CAAA;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAA;YACd,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AArBD,gCAqBC;AAED,gBAAgB;AAChB,SAAgB,SAAS,CAAC,IAA+B;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAFD,8BAEC;AAED,gBAAgB;AAChB,SAAgB,SAAS,CAAC,GAA8B,EAAE,MAAe;IACrE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,YAAY;YACZ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAClB,GAAG,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC;gBAC/B;oBACI,GAAG,GAAG;oBACN,CAAC,EAAE,6BAA6B;iBACnC,CAAC,CAAC;gBACH,GAAG,CACV,CAAA;QACL,CAAC;QAED,OAAO;YACH,CAAC,EAAE,mBAAmB;YACtB,OAAO,EAAE,GAAG;SACf,CAAA;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAnBD,8BAmBC;AAED,gBAAgB;AAChB,SAAgB,YAAY,CAAC,GAAiB;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IACpB,IAAI,OAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAExC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,OAAO;YACR,OAAO;gBACH,CAAC,EAAE,qBAAqB;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;aACtC,CAAA;QACL,KAAK,YAAY;YACb,OAAO;gBACH,CAAC,EAAE,mBAAmB;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;aAC3B,CAAA;QACL,KAAK,aAAa;YACd,OAAO;gBACH,CAAC,EAAE,yBAAyB;gBAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAA;QACL,KAAK,QAAQ;YACT,OAAO;gBACH,CAAC,EAAE,mBAAmB;gBACtB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;aACrC,CAAA;QACL;YACI,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAA;IACxB,CAAC;AACL,CAAC;AAnCD,oCAmCC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../../platform.js'\nimport { assertNever } from '../../../../types/utils.js'\nimport { toInputUser } from '../../../utils/peer-utils.js'\nimport { BotKeyboardBuilder } from './builder.js'\nimport {\n InlineKeyboardMarkup,\n ReplyKeyboardForceReply,\n ReplyKeyboardHide,\n ReplyKeyboardMarkup,\n ReplyMarkup,\n} from './types.js'\n\n/** Create a keyboard builder */\nexport function builder(maxRowWidth?: number | null): BotKeyboardBuilder {\n return new BotKeyboardBuilder(maxRowWidth)\n}\n\n/**\n * Create an inline keyboard markup\n *\n * @param buttons Two-dimensional array of buttons\n */\nexport function inline(buttons: tl.TypeKeyboardButton[][]): InlineKeyboardMarkup {\n return {\n type: 'inline',\n buttons,\n }\n}\n\n/**\n * Create a reply keyboard markup\n *\n * @param buttons Two-dimensional array of buttons\n * @param params Additional parameters for the keyboard\n */\nexport function reply(\n buttons: tl.TypeKeyboardButton[][],\n params: Omit<ReplyKeyboardMarkup, 'type' | 'buttons'> = {},\n): ReplyKeyboardMarkup {\n const ret = params as tl.Mutable<ReplyKeyboardMarkup>\n ret.type = 'reply'\n ret.buttons = buttons\n\n return ret\n}\n\n/**\n * Hide the previously sent reply keyboard\n *\n * @param selective\n * Whether to remove the keyboard for specific users only. Targets:\n * - users that are @mentioned in the text of the Message\n * - in case this is a reply, sender of the original message\n */\nexport function hideReply(selective?: boolean): ReplyKeyboardHide {\n return {\n type: 'reply_hide',\n selective,\n }\n}\n\n/**\n * Force the user to send a reply\n */\nexport function forceReply(params: Omit<ReplyKeyboardForceReply, 'type'> = {}): ReplyKeyboardForceReply {\n const ret = params as tl.Mutable<ReplyKeyboardForceReply>\n ret.type = 'force_reply'\n\n return ret\n}\n\n/**\n * Create a text-only keyboard button.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n */\nexport function text(text: string): tl.RawKeyboardButton {\n return {\n _: 'keyboardButton',\n text,\n }\n}\n\n/**\n * Create a keyboard button requesting for user's contact.\n * Available only for private chats.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n */\nexport function requestContact(text: string): tl.RawKeyboardButtonRequestPhone {\n return {\n _: 'keyboardButtonRequestPhone',\n text,\n }\n}\n\n/**\n * Create a keyboard button requesting for user's geo location.\n * Available only for private chats.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n */\nexport function requestGeo(text: string): tl.RawKeyboardButtonRequestGeoLocation {\n return {\n _: 'keyboardButtonRequestGeoLocation',\n text,\n }\n}\n\n/**\n * Create a keyboard button requesting the user to create and send a poll.\n * Available only for private chats.\n *\n * Used for reply keyboards, not inline!\n *\n * @param text Button text\n * @param quiz If set, only quiz polls can be sent\n */\nexport function requestPoll(text: string, quiz?: boolean): tl.RawKeyboardButtonRequestPoll {\n return {\n _: 'keyboardButtonRequestPoll',\n text,\n quiz,\n }\n}\n\n/**\n * Create a keyboard button with a link.\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button text\n * @param url URL\n */\nexport function url(text: string, url: string): tl.RawKeyboardButtonUrl {\n return {\n _: 'keyboardButtonUrl',\n text,\n url,\n }\n}\n\n/**\n * Create a keyboard button with a link.\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button text\n * @param data Callback data (1-64 bytes). String will be converted to `Buffer`\n * @param requiresPassword\n * Whether the user should verify their identity by entering 2FA password.\n * See more: {@link tl.RawKeyboardButtonCallback#requiresPassword}\n */\nexport function callback(\n text: string,\n data: string | Uint8Array,\n requiresPassword?: boolean,\n): tl.RawKeyboardButtonCallback {\n return {\n _: 'keyboardButtonCallback',\n text,\n requiresPassword,\n data: typeof data === 'string' ? getPlatform().utf8Encode(data) : data,\n }\n}\n\n/**\n * Button to force a user to switch to inline mode.\n *\n * Pressing the button will prompt the user to select\n * one of their chats, open that chat and insert the bot‘s\n * username and the specified inline query (if any) in the input field.\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button text\n * @param query Inline query (can be empty or omitted)\n * @param currentChat\n * If set, pressing the button will insert the bot's username\n * and the specified inline query in the current chat's input field\n */\nexport function switchInline(text: string, query = '', currentChat?: boolean): tl.RawKeyboardButtonSwitchInline {\n return {\n _: 'keyboardButtonSwitchInline',\n samePeer: currentChat,\n text,\n query,\n }\n}\n\n/**\n * Button to start a game\n *\n * Used for inline keyboards, not reply!\n *\n * **Note**: This type of button must always be\n * the first button in the first row. ID of the\n * game is inferred from {@link InputMedia.game},\n * thus this button should only be used with it.\n */\nexport function game(text: string): tl.RawKeyboardButtonGame {\n return { _: 'keyboardButtonGame', text }\n}\n\n/**\n * Button to pay for a product.\n *\n * Used for inline keyboards, not reply!\n *\n * **Note**: This type of button must always be\n * the first button in the first row. Related\n * invoice is inferred from {@link InputMedia.invoice},\n * thus this button should only be used with it.\n */\nexport function pay(text: string): tl.RawKeyboardButtonBuy {\n return { _: 'keyboardButtonBuy', text }\n}\n\n/**\n * Button to authorize a user\n *\n * Used for inline keyboards, not reply!\n *\n * @param text Button label\n * @param url Authorization URL (see {@link tl.RawInputKeyboardButtonUrlAuth})\n * @param params\n */\nexport function urlAuth(\n text: string,\n url: string,\n params: {\n /**\n * Button label when forwarded\n */\n fwdText?: string\n\n /**\n * Whether to request the permission for\n * your bot to send messages to the user\n */\n requestWriteAccess?: boolean\n\n /**\n * Bot, which will be used for user authorization.\n * `url` domain must be the same as the domain linked\n * with the bot.\n *\n * @default current bot\n */\n bot?: tl.TypeInputUser\n } = {},\n): tl.RawInputKeyboardButtonUrlAuth {\n return {\n _: 'inputKeyboardButtonUrlAuth',\n text,\n url,\n bot: params.bot ?? {\n _: 'inputUserSelf',\n },\n fwdText: params.fwdText,\n requestWriteAccess: params.requestWriteAccess,\n }\n}\n\n/**\n * Button to open webview\n *\n * Used for both inline keyboards and reply ones\n *\n * @param text Button label\n * @param url WebView URL\n */\nexport function webView(text: string, url: string): tl.RawKeyboardButtonWebView {\n return {\n _: 'keyboardButtonWebView',\n text,\n url,\n }\n}\n\n/**\n * Button to open user profile\n *\n * @param text Text of the button\n * @param user User to be opened (use {@link TelegramClient.resolvePeer})\n */\nexport function userProfile(text: string, user: tl.TypeInputPeer): tl.RawInputKeyboardButtonUserProfile {\n return {\n _: 'inputKeyboardButtonUserProfile',\n text,\n userId: toInputUser(user),\n }\n}\n\n/**\n * Button to request a peer from the user\n *\n * @param text Text of the button\n * @param buttonId ID of the button that will later be passed to the service message\n */\nexport function requestPeer(\n text: string,\n buttonId: number,\n params: {\n /**\n * Peer type, along with filters\n */\n peerType: tl.TypeRequestPeerType\n\n /**\n * Maximum number of peers to be selected\n *\n * @default 1\n */\n count?: number\n },\n): tl.RawKeyboardButtonRequestPeer {\n return {\n _: 'keyboardButtonRequestPeer',\n text,\n buttonId,\n peerType: params.peerType,\n maxQuantity: params.count ?? 1,\n }\n}\n\n/**\n * Find a button in the keyboard by its text or by predicate\n *\n * @param buttons Two-dimensional array of buttons\n * @param predicate Button text or predicate function\n */\nexport function findButton(\n buttons: tl.TypeKeyboardButton[][],\n predicate: string | ((btn: tl.TypeKeyboardButton) => boolean),\n): tl.TypeKeyboardButton | null {\n if (typeof predicate === 'string') {\n const text = predicate\n\n predicate = (btn) => {\n return 'text' in btn && btn.text === text\n }\n }\n\n for (const row of buttons) {\n for (const btn of row) {\n if (predicate(btn)) {\n return btn\n }\n }\n }\n\n return null\n}\n\n/** @internal */\nexport function _rowsTo2d(rows: tl.RawKeyboardButtonRow[]): tl.TypeKeyboardButton[][] {\n return rows.map((it) => it.buttons)\n}\n\n/** @internal */\nexport function _2dToRows(arr: tl.TypeKeyboardButton[][], inline: boolean): tl.RawKeyboardButtonRow[] {\n return arr.map((row) => {\n if (!inline) {\n // le cringe\n row = row.map((btn) =>\n btn._ === 'keyboardButtonWebView' ?\n {\n ...btn,\n _: 'keyboardButtonSimpleWebView',\n } :\n btn,\n )\n }\n\n return {\n _: 'keyboardButtonRow',\n buttons: row,\n }\n })\n}\n\n/** @internal */\nexport function _convertToTl(obj?: ReplyMarkup): tl.TypeReplyMarkup | undefined {\n if (!obj) return obj\n if (tl.isAnyReplyMarkup(obj)) return obj\n\n switch (obj.type) {\n case 'reply':\n return {\n _: 'replyKeyboardMarkup',\n resize: obj.resize,\n singleUse: obj.singleUse,\n selective: obj.selective,\n persistent: obj.persistent,\n placeholder: obj.placeholder,\n rows: _2dToRows(obj.buttons, false),\n }\n case 'reply_hide':\n return {\n _: 'replyKeyboardHide',\n selective: obj.selective,\n }\n case 'force_reply':\n return {\n _: 'replyKeyboardForceReply',\n singleUse: obj.singleUse,\n selective: obj.selective,\n placeholder: obj.placeholder,\n }\n case 'inline':\n return {\n _: 'replyInlineMarkup',\n rows: _2dToRows(obj.buttons, true),\n }\n default:\n assertNever(obj)\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tl } from '@mtcute/tl';
|
|
1
2
|
/**
|
|
2
3
|
* Phone call discard reason. Can be:
|
|
3
4
|
* - `missed`: The call was missed
|
|
@@ -6,3 +7,7 @@
|
|
|
6
7
|
* - `busy`: The call was discarded because the user is in another call
|
|
7
8
|
*/
|
|
8
9
|
export type CallDiscardReason = 'missed' | 'disconnect' | 'hangup' | 'busy';
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare function _callDiscardReasonFromTl(raw: tl.TypePhoneCallDiscardReason): CallDiscardReason;
|
|
12
|
+
/** @internal */
|
|
13
|
+
export declare function _callDiscardReasonToTl(r: CallDiscardReason): tl.TypePhoneCallDiscardReason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discard-reason.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/calls/discard-reason.ts"],"names":[],"mappings":";;;AAEA,sDAAqD;AAWrD,gBAAgB;AAChB,SAAgB,wBAAwB,CAAC,GAAkC;IACvE,QAAQ,GAAG,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"discard-reason.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/calls/discard-reason.ts"],"names":[],"mappings":";;;AAEA,sDAAqD;AAWrD,gBAAgB;AAChB,SAAgB,wBAAwB,CAAC,GAAkC;IACvE,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QACZ,KAAK,8BAA8B;YAC/B,OAAO,QAAQ,CAAA;QACnB,KAAK,kCAAkC;YACnC,OAAO,YAAY,CAAA;QACvB,KAAK,8BAA8B;YAC/B,OAAO,QAAQ,CAAA;QACnB,KAAK,4BAA4B;YAC7B,OAAO,MAAM,CAAA;QACjB;YACI,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAA;IACxB,CAAC;AACL,CAAC;AAbD,4DAaC;AAED,gBAAgB;AAChB,SAAgB,sBAAsB,CAAC,CAAoB;IACvD,QAAQ,CAAC,EAAE,CAAC;QACR,KAAK,QAAQ;YACT,OAAO,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;QAChD,KAAK,YAAY;YACb,OAAO,EAAE,CAAC,EAAE,kCAAkC,EAAE,CAAA;QACpD,KAAK,QAAQ;YACT,OAAO,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;QAChD,KAAK,MAAM;YACP,OAAO,EAAE,CAAC,EAAE,4BAA4B,EAAE,CAAA;QAC9C;YACI,IAAA,sBAAW,EAAC,CAAC,CAAC,CAAA;IACtB,CAAC;AACL,CAAC;AAbD,wDAaC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../types/utils.js'\n\n/**\n * Phone call discard reason. Can be:\n * - `missed`: The call was missed\n * - `disconnect`: The connection has interrupted\n * - `hangup`: The call was ended normally\n * - `busy`: The call was discarded because the user is in another call\n */\nexport type CallDiscardReason = 'missed' | 'disconnect' | 'hangup' | 'busy'\n\n/** @internal */\nexport function _callDiscardReasonFromTl(raw: tl.TypePhoneCallDiscardReason): CallDiscardReason {\n switch (raw._) {\n case 'phoneCallDiscardReasonMissed':\n return 'missed'\n case 'phoneCallDiscardReasonDisconnect':\n return 'disconnect'\n case 'phoneCallDiscardReasonHangup':\n return 'hangup'\n case 'phoneCallDiscardReasonBusy':\n return 'busy'\n default:\n assertNever(raw)\n }\n}\n\n/** @internal */\nexport function _callDiscardReasonToTl(r: CallDiscardReason): tl.TypePhoneCallDiscardReason {\n switch (r) {\n case 'missed':\n return { _: 'phoneCallDiscardReasonMissed' }\n case 'disconnect':\n return { _: 'phoneCallDiscardReasonDisconnect' }\n case 'hangup':\n return { _: 'phoneCallDiscardReasonHangup' }\n case 'busy':\n return { _: 'phoneCallDiscardReasonBusy' }\n default:\n assertNever(r)\n }\n}\n"]}
|
|
@@ -25,16 +25,22 @@ const CONVERSATION_SYMBOL = Symbol('conversation');
|
|
|
25
25
|
* and synchronize them manually.
|
|
26
26
|
*/
|
|
27
27
|
class Conversation {
|
|
28
|
+
client;
|
|
29
|
+
chat;
|
|
30
|
+
_inputPeer;
|
|
31
|
+
_chatId;
|
|
32
|
+
_started = false;
|
|
33
|
+
_lastMessage;
|
|
34
|
+
_lastReceivedMessage;
|
|
35
|
+
_queuedNewMessage = new deque_js_1.Deque();
|
|
36
|
+
_pendingNewMessages = new deque_js_1.Deque();
|
|
37
|
+
_lock = new async_lock_js_1.AsyncLock();
|
|
38
|
+
_pendingEditMessage = new Map();
|
|
39
|
+
_recentEdits = new deque_js_1.Deque(10);
|
|
40
|
+
_pendingRead = new Map();
|
|
28
41
|
constructor(client, chat) {
|
|
29
42
|
this.client = client;
|
|
30
43
|
this.chat = chat;
|
|
31
|
-
this._started = false;
|
|
32
|
-
this._queuedNewMessage = new deque_js_1.Deque();
|
|
33
|
-
this._pendingNewMessages = new deque_js_1.Deque();
|
|
34
|
-
this._lock = new async_lock_js_1.AsyncLock();
|
|
35
|
-
this._pendingEditMessage = new Map();
|
|
36
|
-
this._recentEdits = new deque_js_1.Deque(10);
|
|
37
|
-
this._pendingRead = new Map();
|
|
38
44
|
if (!(CONVERSATION_SYMBOL in client)) {
|
|
39
45
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
46
|
client[CONVERSATION_SYMBOL] = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../../src/highlevel/types/conversation.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError, MtTimeoutError } from '../../types/errors.js'\nimport { MaybePromise } from '../../types/utils.js'\nimport { AsyncLock } from '../../utils/async-lock.js'\nimport { ControllablePromise, createControllablePromise } from '../../utils/controllable-promise.js'\nimport { Deque } from '../../utils/deque.js'\nimport { getMarkedPeerId } from '../../utils/peer-utils.js'\nimport { ITelegramClient } from '../client.types.js'\nimport { getPeerDialogs } from '../methods/dialogs/get-peer-dialogs.js'\nimport { readHistory } from '../methods/messages/read-history.js'\nimport { sendMedia } from '../methods/messages/send-media.js'\nimport { sendMediaGroup } from '../methods/messages/send-media-group.js'\nimport { sendText } from '../methods/messages/send-text.js'\nimport { resolvePeer } from '../methods/users/resolve-peer.js'\nimport type { Message } from './messages/message.js'\nimport type { InputPeerLike } from './peers/index.js'\nimport type { HistoryReadUpdate, ParsedUpdate } from './updates/index.js'\nimport { ParametersSkip2 } from './utils.js'\n\ninterface QueuedHandler<T> {\n promise: ControllablePromise<T>\n check?: (update: T) => MaybePromise<boolean>\n timeout?: NodeJS.Timeout\n}\n\nconst CONVERSATION_SYMBOL = Symbol('conversation')\n\ninterface ConversationsState {\n pendingConversations: Map<number, Conversation[]>\n hasConversations: boolean\n}\n\n/**\n * Represents a conversation inside some chat.\n *\n * A conversation keeps track of any messages sent or edited\n * since it was started and until it was stopped,\n * and allows waiting for events in it.\n *\n * If you need a conversation across multiple chats,\n * you should use multiple {@link Conversation} objects\n * and synchronize them manually.\n */\nexport class Conversation {\n private _inputPeer!: tl.TypeInputPeer\n private _chatId!: number\n private _started = false\n\n private _lastMessage!: number\n private _lastReceivedMessage!: number\n\n private _queuedNewMessage = new Deque<QueuedHandler<Message>>()\n private _pendingNewMessages = new Deque<Message>()\n private _lock = new AsyncLock()\n\n private _pendingEditMessage: Map<number, QueuedHandler<Message>> = new Map()\n private _recentEdits = new Deque<Message>(10)\n\n private _pendingRead: Map<number, QueuedHandler<void>> = new Map()\n\n constructor(\n readonly client: ITelegramClient,\n readonly chat: InputPeerLike,\n ) {\n if (!(CONVERSATION_SYMBOL in client)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (client as any)[CONVERSATION_SYMBOL] = {\n pendingConversations: new Map(),\n hasConversations: false,\n } satisfies ConversationsState\n }\n }\n\n private static _getState(client: ITelegramClient): ConversationsState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (client as any)[CONVERSATION_SYMBOL] as ConversationsState\n }\n\n /**\n * Pass the update to the conversation manager and all registered\n * conversations on this client.\n *\n * @returns `true` if the update was handled by some conversation\n */\n static handleUpdate(client: ITelegramClient, update: ParsedUpdate): boolean {\n const state = Conversation._getState(client)\n if (!state?.hasConversations) return false\n\n let chatId\n\n switch (update.name) {\n case 'new_message':\n case 'edit_message':\n chatId = getMarkedPeerId(update.data.raw.peerId)\n break\n case 'history_read':\n chatId = update.data.chatId\n break\n default:\n return false\n }\n\n const conv = state.pendingConversations.get(chatId)\n if (!conv) return false\n\n for (const c of conv) {\n switch (update.name) {\n case 'new_message':\n c._onNewMessage(update.data)\n\n return true\n case 'edit_message':\n c._onEditMessage(update.data)\n\n return true\n case 'history_read':\n c._onHistoryRead(update.data)\n\n return true\n }\n }\n\n return false\n }\n\n /**\n * Get the input peer that this conversation is with\n */\n get inputPeer(): tl.TypeInputPeer {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._inputPeer\n }\n\n /**\n * ID of the very last message in this conversation.\n */\n get lastMessage(): number {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._lastMessage\n }\n\n /**\n * ID of the last incoming message in this conversation.\n *\n * Note that before any messages were received since the {@link start}\n * of the conversation, this will equal to {@link lastMessage}\n */\n get lastReceivedMessage(): number {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._lastReceivedMessage\n }\n\n /**\n * Start the conversation\n */\n async start(): Promise<void> {\n if (this._started) return\n\n this._started = true\n this._inputPeer = await resolvePeer(this.client, this.chat)\n this._chatId = getMarkedPeerId(this._inputPeer)\n\n const [dialog] = await getPeerDialogs(this.client, this._inputPeer)\n const lastMessage = dialog.lastMessage\n\n if (lastMessage) {\n this._lastMessage = this._lastReceivedMessage = lastMessage.id\n } else {\n this._lastMessage = this._lastReceivedMessage = 0\n }\n\n const state = Conversation._getState(this.client)\n\n if (!state.pendingConversations.has(this._chatId)) {\n state.pendingConversations.set(this._chatId, [])\n }\n state.pendingConversations.get(this._chatId)!.push(this)\n state.hasConversations = true\n }\n\n /**\n * Stop the conversation\n */\n stop(): void {\n if (!this._started) return\n\n const state = Conversation._getState(this.client)\n\n const pending = state.pendingConversations.get(this._chatId)\n const pendingIdx = pending?.indexOf(this) ?? -1\n\n if (pendingIdx > -1) {\n // just in case\n pending!.splice(pendingIdx, 1)\n }\n if (pending && !pending.length) {\n state.pendingConversations.delete(this._chatId)\n }\n state.hasConversations = Boolean(state.pendingConversations.size)\n\n // reset pending status\n this._queuedNewMessage.clear()\n this._pendingNewMessages.clear()\n this._pendingEditMessage.clear()\n this._recentEdits.clear()\n this._pendingRead.clear()\n\n this._started = false\n }\n\n private _recordMessage(msg: Message, incoming = false): Message {\n this._lastMessage = msg.id\n if (incoming) this._lastReceivedMessage = msg.id\n\n return msg\n }\n\n /**\n * Send a text message to this conversation.\n *\n * Wrapper over {@link sendText}\n */\n async sendText(...params: ParametersSkip2<typeof sendText>): ReturnType<typeof sendText> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._recordMessage(await sendText(this.client, this._inputPeer, ...params))\n }\n\n /**\n * Send a media to this conversation.\n *\n * Wrapper over {@link sendMedia}\n */\n async sendMedia(...params: ParametersSkip2<typeof sendMedia>): ReturnType<typeof sendMedia> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._recordMessage(await sendMedia(this.client, this._inputPeer, ...params))\n }\n\n /**\n * Send a media group to this conversation.\n *\n * Wrapper over {@link sendMediaGroup}\n */\n async sendMediaGroup(...params: ParametersSkip2<typeof sendMediaGroup>): ReturnType<typeof sendMediaGroup> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const msgs = await sendMediaGroup(this.client, this._inputPeer, ...params)\n\n this._recordMessage(msgs[msgs.length - 1])\n\n return msgs\n }\n\n /**\n * Mark the conversation as read up to a certain point.\n *\n * By default, reads until the last message.\n * You can pass `message=null` to read the entire conversation,\n * or pass message ID to read up until that ID.\n */\n markRead({\n message,\n clearMentions = true,\n }: { message?: number | null; clearMentions?: boolean } = {}): Promise<void> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n if (message === null) {\n message = 0\n } else if (message === undefined) {\n message = this._lastMessage ?? 0\n }\n\n return readHistory(this.client, this._inputPeer, { maxId: message, clearMentions })\n }\n\n /**\n * Helper method that calls {@link start},\n * the provided function and then {@link stop}.\n *\n * It is preferred that you use this function rather than\n * manually starting and stopping the conversation.\n *\n * If you don't stop the conversation when you're done,\n * it *will* lead to memory leaks.\n *\n * @param handler\n */\n async with<T>(handler: () => MaybePromise<T>): Promise<T> {\n await this.start()\n\n let err: unknown\n let res: T\n\n try {\n res = await handler()\n } catch (e) {\n err = e\n }\n\n this.stop()\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n if (err) throw err\n\n return res!\n }\n\n /**\n * Wait for a new message in the conversation\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param [timeout=15000] Timeout for the handler in ms. Pass `null` to disable.\n * When the timeout is reached, `MtTimeoutError` is thrown.\n */\n waitForNewMessage(\n filter?: (msg: Message) => MaybePromise<boolean>,\n timeout: number | null = 15000,\n ): Promise<Message> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const promise = createControllablePromise<Message>()\n\n let timer: NodeJS.Timeout | undefined = undefined\n\n if (timeout !== null) {\n timer = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._queuedNewMessage.removeBy((it) => it.promise === promise)\n }, timeout)\n }\n\n this._queuedNewMessage.pushBack({\n promise,\n check: filter,\n timeout: timer,\n })\n\n this._processPendingNewMessages()\n\n return promise\n }\n\n /**\n * Wait for a response for the given message\n * (def. the last one) in the conversation.\n *\n * A message is considered to be a response if\n * it was sent after the given one.\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param params\n */\n waitForResponse(\n filter?: (msg: Message) => MaybePromise<boolean>,\n params?: {\n /**\n * Message for which to wait for response for.\n *\n * @default last sent/received message\n */\n message?: number\n\n /**\n * Timeout for the handler in ms. Pass `null` to disable.\n *\n * When the timeout is reached, `TimeoutError` is thrown.\n *\n * @default `15000` (15 sec)\n */\n timeout?: number | null\n },\n ): Promise<Message> {\n const msgId = params?.message ?? this._lastMessage ?? 0\n\n const pred = filter ?\n (msg: Message) => (msg.id > msgId ? filter(msg) : false) :\n (msg: Message) => msg.id > msgId\n\n return this.waitForNewMessage(pred, params?.timeout)\n }\n\n /**\n * Wait for the reply for the given message'\n * (def. the last one) in the conversation.\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param params\n */\n waitForReply(\n filter?: (msg: Message) => MaybePromise<boolean>,\n params?: {\n /**\n * Message for which to wait for reply for.\n *\n * @default last sent/received message\n */\n message?: number\n\n /**\n * Timeout for the handler in ms. Pass `null` to disable.\n *\n * When the timeout is reached, `TimeoutError` is thrown.\n *\n * @default `15000` (15 sec)\n */\n timeout?: number | null\n },\n ): Promise<Message> {\n const msgId = params?.message ?? this._lastMessage\n\n if (!msgId) {\n throw new MtArgumentError('Provide message for which to wait for reply for')\n }\n\n const pred = filter ?\n (msg: Message) => (msg.replyToMessage?.id === msgId ? filter(msg) : false) :\n (msg: Message) => msg.replyToMessage?.id === msgId\n\n return this.waitForNewMessage(pred, params?.timeout)\n }\n\n /**\n * Wait for a message to be edited in the conversation.\n * By defaults wait for the last message sent by the other party\n * (at the moment) to be edited.\n *\n * Returns the edited message.\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param params\n */\n async waitForEdit(\n filter?: (msg: Message) => MaybePromise<boolean>,\n params?: {\n /**\n * Message for which to wait for reply for.\n *\n * @default last received message\n */\n message?: number\n\n /**\n * Timeout for the handler in ms. Pass `null` to disable.\n *\n * When the timeout is reached, `TimeoutError` is thrown.\n *\n * @default `15000` (15 sec)\n */\n timeout?: number | null\n },\n ): Promise<Message> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const msgId = params?.message ?? this._lastReceivedMessage\n\n if (!msgId) {\n throw new MtArgumentError('Provide message for which to wait for edit for')\n }\n\n const promise = createControllablePromise<Message>()\n\n let timer: NodeJS.Timeout | undefined = undefined\n const timeout = params?.timeout\n\n if (timeout) {\n timer = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._pendingEditMessage.delete(msgId)\n }, timeout)\n }\n\n this._pendingEditMessage.set(msgId, {\n promise,\n check: filter,\n timeout: timer,\n })\n\n this._processRecentEdits()\n\n return promise\n }\n\n /**\n * Wait for the message to be read by the other party.\n *\n * Note that reading the message doesn't mean the response was sent,\n * and if the response was sent, it doesn't mean that the message was read.\n *\n * @param message Message for which to wait for read for. Defaults to last message.\n * @param timeout Timeout for the handler in ms, def. 15 sec. Pass `null` to disable.\n * When the timeout is reached, `TimeoutError` is thrown.\n */\n async waitForRead(message?: number, timeout: number | null = 15000): Promise<void> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const msgId = message ?? this._lastMessage\n\n if (!msgId) {\n throw new MtArgumentError('Provide message for which to wait for read for')\n }\n\n // check if the message is already read\n const [dialog] = await getPeerDialogs(this.client, this._inputPeer)\n if (dialog.lastRead >= msgId) return\n\n const promise = createControllablePromise<void>()\n\n let timer: NodeJS.Timeout | undefined = undefined\n\n if (timeout !== null) {\n timer = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._pendingRead.delete(msgId)\n }, timeout)\n }\n\n this._pendingRead.set(msgId, {\n promise,\n timeout: timer,\n })\n\n return promise\n }\n\n private _onNewMessage(msg: Message) {\n if (msg.chat.id !== this._chatId) return\n\n if (!this._queuedNewMessage.length) {\n this._pendingNewMessages.pushBack(msg)\n\n return\n }\n\n const it = this._queuedNewMessage.peekFront()!\n\n // order does matter for new messages\n void this._lock.acquire().then(async () => {\n try {\n if (!it.check || (await it.check(msg))) {\n if (it.timeout) clearTimeout(it.timeout)\n it.promise.resolve(msg)\n this._queuedNewMessage.popFront()\n }\n } catch (e: unknown) {\n this.client.emitError(e)\n }\n\n this._lastMessage = this._lastReceivedMessage = msg.id\n\n // this func will *never* error, so no need to use .then\n this._lock.release()\n })\n }\n\n private _onEditMessage(msg: Message, fromRecent = false) {\n if (msg.chat.id !== this._chatId) return\n\n const it = this._pendingEditMessage.get(msg.id)\n\n if (!it) {\n if (!fromRecent) {\n this._recentEdits.pushBack(msg)\n }\n\n return\n }\n\n (async () => {\n if (!it.check || (await it.check(msg))) {\n if (it.timeout) clearTimeout(it.timeout)\n it.promise.resolve(msg)\n this._pendingEditMessage.delete(msg.id)\n }\n })().catch((e) => {\n this.client.emitError(e)\n })\n }\n\n private _onHistoryRead(upd: HistoryReadUpdate) {\n if (upd.chatId !== this._chatId) return\n\n const lastRead = upd.maxReadId\n\n for (const msgId of this._pendingRead.keys()) {\n if (msgId <= lastRead) {\n const it = this._pendingRead.get(msgId)!\n if (it.timeout) clearTimeout(it.timeout)\n it.promise.resolve()\n this._pendingRead.delete(msgId)\n }\n }\n }\n\n private _processPendingNewMessages() {\n if (!this._pendingNewMessages.length) return\n\n let it\n\n while ((it = this._pendingNewMessages.popFront())) {\n this._onNewMessage(it)\n }\n }\n\n private _processRecentEdits() {\n if (!this._recentEdits.length) return\n\n const iter = this._recentEdits.iter()\n let it\n\n while (!(it = iter.next()).done) {\n this._onEditMessage(it.value, true)\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../../src/highlevel/types/conversation.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError, MtTimeoutError } from '../../types/errors.js'\nimport { MaybePromise } from '../../types/utils.js'\nimport { AsyncLock } from '../../utils/async-lock.js'\nimport { ControllablePromise, createControllablePromise } from '../../utils/controllable-promise.js'\nimport { Deque } from '../../utils/deque.js'\nimport { getMarkedPeerId } from '../../utils/peer-utils.js'\nimport { ITelegramClient } from '../client.types.js'\nimport { getPeerDialogs } from '../methods/dialogs/get-peer-dialogs.js'\nimport { readHistory } from '../methods/messages/read-history.js'\nimport { sendMedia } from '../methods/messages/send-media.js'\nimport { sendMediaGroup } from '../methods/messages/send-media-group.js'\nimport { sendText } from '../methods/messages/send-text.js'\nimport { resolvePeer } from '../methods/users/resolve-peer.js'\nimport type { Message } from './messages/message.js'\nimport type { InputPeerLike } from './peers/index.js'\nimport type { HistoryReadUpdate, ParsedUpdate } from './updates/index.js'\nimport { ParametersSkip2 } from './utils.js'\n\ninterface QueuedHandler<T> {\n promise: ControllablePromise<T>\n check?: (update: T) => MaybePromise<boolean>\n timeout?: NodeJS.Timeout\n}\n\nconst CONVERSATION_SYMBOL = Symbol('conversation')\n\ninterface ConversationsState {\n pendingConversations: Map<number, Conversation[]>\n hasConversations: boolean\n}\n\n/**\n * Represents a conversation inside some chat.\n *\n * A conversation keeps track of any messages sent or edited\n * since it was started and until it was stopped,\n * and allows waiting for events in it.\n *\n * If you need a conversation across multiple chats,\n * you should use multiple {@link Conversation} objects\n * and synchronize them manually.\n */\nexport class Conversation {\n private _inputPeer!: tl.TypeInputPeer\n private _chatId!: number\n private _started = false\n\n private _lastMessage!: number\n private _lastReceivedMessage!: number\n\n private _queuedNewMessage = new Deque<QueuedHandler<Message>>()\n private _pendingNewMessages = new Deque<Message>()\n private _lock = new AsyncLock()\n\n private _pendingEditMessage: Map<number, QueuedHandler<Message>> = new Map()\n private _recentEdits = new Deque<Message>(10)\n\n private _pendingRead: Map<number, QueuedHandler<void>> = new Map()\n\n constructor(\n readonly client: ITelegramClient,\n readonly chat: InputPeerLike,\n ) {\n if (!(CONVERSATION_SYMBOL in client)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (client as any)[CONVERSATION_SYMBOL] = {\n pendingConversations: new Map(),\n hasConversations: false,\n } satisfies ConversationsState\n }\n }\n\n private static _getState(client: ITelegramClient): ConversationsState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (client as any)[CONVERSATION_SYMBOL] as ConversationsState\n }\n\n /**\n * Pass the update to the conversation manager and all registered\n * conversations on this client.\n *\n * @returns `true` if the update was handled by some conversation\n */\n static handleUpdate(client: ITelegramClient, update: ParsedUpdate): boolean {\n const state = Conversation._getState(client)\n if (!state?.hasConversations) return false\n\n let chatId\n\n switch (update.name) {\n case 'new_message':\n case 'edit_message':\n chatId = getMarkedPeerId(update.data.raw.peerId)\n break\n case 'history_read':\n chatId = update.data.chatId\n break\n default:\n return false\n }\n\n const conv = state.pendingConversations.get(chatId)\n if (!conv) return false\n\n for (const c of conv) {\n switch (update.name) {\n case 'new_message':\n c._onNewMessage(update.data)\n\n return true\n case 'edit_message':\n c._onEditMessage(update.data)\n\n return true\n case 'history_read':\n c._onHistoryRead(update.data)\n\n return true\n }\n }\n\n return false\n }\n\n /**\n * Get the input peer that this conversation is with\n */\n get inputPeer(): tl.TypeInputPeer {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._inputPeer\n }\n\n /**\n * ID of the very last message in this conversation.\n */\n get lastMessage(): number {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._lastMessage\n }\n\n /**\n * ID of the last incoming message in this conversation.\n *\n * Note that before any messages were received since the {@link start}\n * of the conversation, this will equal to {@link lastMessage}\n */\n get lastReceivedMessage(): number {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._lastReceivedMessage\n }\n\n /**\n * Start the conversation\n */\n async start(): Promise<void> {\n if (this._started) return\n\n this._started = true\n this._inputPeer = await resolvePeer(this.client, this.chat)\n this._chatId = getMarkedPeerId(this._inputPeer)\n\n const [dialog] = await getPeerDialogs(this.client, this._inputPeer)\n const lastMessage = dialog.lastMessage\n\n if (lastMessage) {\n this._lastMessage = this._lastReceivedMessage = lastMessage.id\n } else {\n this._lastMessage = this._lastReceivedMessage = 0\n }\n\n const state = Conversation._getState(this.client)\n\n if (!state.pendingConversations.has(this._chatId)) {\n state.pendingConversations.set(this._chatId, [])\n }\n state.pendingConversations.get(this._chatId)!.push(this)\n state.hasConversations = true\n }\n\n /**\n * Stop the conversation\n */\n stop(): void {\n if (!this._started) return\n\n const state = Conversation._getState(this.client)\n\n const pending = state.pendingConversations.get(this._chatId)\n const pendingIdx = pending?.indexOf(this) ?? -1\n\n if (pendingIdx > -1) {\n // just in case\n pending!.splice(pendingIdx, 1)\n }\n if (pending && !pending.length) {\n state.pendingConversations.delete(this._chatId)\n }\n state.hasConversations = Boolean(state.pendingConversations.size)\n\n // reset pending status\n this._queuedNewMessage.clear()\n this._pendingNewMessages.clear()\n this._pendingEditMessage.clear()\n this._recentEdits.clear()\n this._pendingRead.clear()\n\n this._started = false\n }\n\n private _recordMessage(msg: Message, incoming = false): Message {\n this._lastMessage = msg.id\n if (incoming) this._lastReceivedMessage = msg.id\n\n return msg\n }\n\n /**\n * Send a text message to this conversation.\n *\n * Wrapper over {@link sendText}\n */\n async sendText(...params: ParametersSkip2<typeof sendText>): ReturnType<typeof sendText> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._recordMessage(await sendText(this.client, this._inputPeer, ...params))\n }\n\n /**\n * Send a media to this conversation.\n *\n * Wrapper over {@link sendMedia}\n */\n async sendMedia(...params: ParametersSkip2<typeof sendMedia>): ReturnType<typeof sendMedia> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n return this._recordMessage(await sendMedia(this.client, this._inputPeer, ...params))\n }\n\n /**\n * Send a media group to this conversation.\n *\n * Wrapper over {@link sendMediaGroup}\n */\n async sendMediaGroup(...params: ParametersSkip2<typeof sendMediaGroup>): ReturnType<typeof sendMediaGroup> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const msgs = await sendMediaGroup(this.client, this._inputPeer, ...params)\n\n this._recordMessage(msgs[msgs.length - 1])\n\n return msgs\n }\n\n /**\n * Mark the conversation as read up to a certain point.\n *\n * By default, reads until the last message.\n * You can pass `message=null` to read the entire conversation,\n * or pass message ID to read up until that ID.\n */\n markRead({\n message,\n clearMentions = true,\n }: { message?: number | null; clearMentions?: boolean } = {}): Promise<void> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n if (message === null) {\n message = 0\n } else if (message === undefined) {\n message = this._lastMessage ?? 0\n }\n\n return readHistory(this.client, this._inputPeer, { maxId: message, clearMentions })\n }\n\n /**\n * Helper method that calls {@link start},\n * the provided function and then {@link stop}.\n *\n * It is preferred that you use this function rather than\n * manually starting and stopping the conversation.\n *\n * If you don't stop the conversation when you're done,\n * it *will* lead to memory leaks.\n *\n * @param handler\n */\n async with<T>(handler: () => MaybePromise<T>): Promise<T> {\n await this.start()\n\n let err: unknown\n let res: T\n\n try {\n res = await handler()\n } catch (e) {\n err = e\n }\n\n this.stop()\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n if (err) throw err\n\n return res!\n }\n\n /**\n * Wait for a new message in the conversation\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param [timeout=15000] Timeout for the handler in ms. Pass `null` to disable.\n * When the timeout is reached, `MtTimeoutError` is thrown.\n */\n waitForNewMessage(\n filter?: (msg: Message) => MaybePromise<boolean>,\n timeout: number | null = 15000,\n ): Promise<Message> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const promise = createControllablePromise<Message>()\n\n let timer: NodeJS.Timeout | undefined = undefined\n\n if (timeout !== null) {\n timer = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._queuedNewMessage.removeBy((it) => it.promise === promise)\n }, timeout)\n }\n\n this._queuedNewMessage.pushBack({\n promise,\n check: filter,\n timeout: timer,\n })\n\n this._processPendingNewMessages()\n\n return promise\n }\n\n /**\n * Wait for a response for the given message\n * (def. the last one) in the conversation.\n *\n * A message is considered to be a response if\n * it was sent after the given one.\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param params\n */\n waitForResponse(\n filter?: (msg: Message) => MaybePromise<boolean>,\n params?: {\n /**\n * Message for which to wait for response for.\n *\n * @default last sent/received message\n */\n message?: number\n\n /**\n * Timeout for the handler in ms. Pass `null` to disable.\n *\n * When the timeout is reached, `TimeoutError` is thrown.\n *\n * @default `15000` (15 sec)\n */\n timeout?: number | null\n },\n ): Promise<Message> {\n const msgId = params?.message ?? this._lastMessage ?? 0\n\n const pred = filter ?\n (msg: Message) => (msg.id > msgId ? filter(msg) : false) :\n (msg: Message) => msg.id > msgId\n\n return this.waitForNewMessage(pred, params?.timeout)\n }\n\n /**\n * Wait for the reply for the given message'\n * (def. the last one) in the conversation.\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param params\n */\n waitForReply(\n filter?: (msg: Message) => MaybePromise<boolean>,\n params?: {\n /**\n * Message for which to wait for reply for.\n *\n * @default last sent/received message\n */\n message?: number\n\n /**\n * Timeout for the handler in ms. Pass `null` to disable.\n *\n * When the timeout is reached, `TimeoutError` is thrown.\n *\n * @default `15000` (15 sec)\n */\n timeout?: number | null\n },\n ): Promise<Message> {\n const msgId = params?.message ?? this._lastMessage\n\n if (!msgId) {\n throw new MtArgumentError('Provide message for which to wait for reply for')\n }\n\n const pred = filter ?\n (msg: Message) => (msg.replyToMessage?.id === msgId ? filter(msg) : false) :\n (msg: Message) => msg.replyToMessage?.id === msgId\n\n return this.waitForNewMessage(pred, params?.timeout)\n }\n\n /**\n * Wait for a message to be edited in the conversation.\n * By defaults wait for the last message sent by the other party\n * (at the moment) to be edited.\n *\n * Returns the edited message.\n *\n * @param filter Filter for the handler. You can use any filter you can use for dispatcher\n * @param params\n */\n async waitForEdit(\n filter?: (msg: Message) => MaybePromise<boolean>,\n params?: {\n /**\n * Message for which to wait for reply for.\n *\n * @default last received message\n */\n message?: number\n\n /**\n * Timeout for the handler in ms. Pass `null` to disable.\n *\n * When the timeout is reached, `TimeoutError` is thrown.\n *\n * @default `15000` (15 sec)\n */\n timeout?: number | null\n },\n ): Promise<Message> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const msgId = params?.message ?? this._lastReceivedMessage\n\n if (!msgId) {\n throw new MtArgumentError('Provide message for which to wait for edit for')\n }\n\n const promise = createControllablePromise<Message>()\n\n let timer: NodeJS.Timeout | undefined = undefined\n const timeout = params?.timeout\n\n if (timeout) {\n timer = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._pendingEditMessage.delete(msgId)\n }, timeout)\n }\n\n this._pendingEditMessage.set(msgId, {\n promise,\n check: filter,\n timeout: timer,\n })\n\n this._processRecentEdits()\n\n return promise\n }\n\n /**\n * Wait for the message to be read by the other party.\n *\n * Note that reading the message doesn't mean the response was sent,\n * and if the response was sent, it doesn't mean that the message was read.\n *\n * @param message Message for which to wait for read for. Defaults to last message.\n * @param timeout Timeout for the handler in ms, def. 15 sec. Pass `null` to disable.\n * When the timeout is reached, `TimeoutError` is thrown.\n */\n async waitForRead(message?: number, timeout: number | null = 15000): Promise<void> {\n if (!this._started) {\n throw new MtArgumentError(\"Conversation hasn't started yet\")\n }\n\n const msgId = message ?? this._lastMessage\n\n if (!msgId) {\n throw new MtArgumentError('Provide message for which to wait for read for')\n }\n\n // check if the message is already read\n const [dialog] = await getPeerDialogs(this.client, this._inputPeer)\n if (dialog.lastRead >= msgId) return\n\n const promise = createControllablePromise<void>()\n\n let timer: NodeJS.Timeout | undefined = undefined\n\n if (timeout !== null) {\n timer = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._pendingRead.delete(msgId)\n }, timeout)\n }\n\n this._pendingRead.set(msgId, {\n promise,\n timeout: timer,\n })\n\n return promise\n }\n\n private _onNewMessage(msg: Message) {\n if (msg.chat.id !== this._chatId) return\n\n if (!this._queuedNewMessage.length) {\n this._pendingNewMessages.pushBack(msg)\n\n return\n }\n\n const it = this._queuedNewMessage.peekFront()!\n\n // order does matter for new messages\n void this._lock.acquire().then(async () => {\n try {\n if (!it.check || (await it.check(msg))) {\n if (it.timeout) clearTimeout(it.timeout)\n it.promise.resolve(msg)\n this._queuedNewMessage.popFront()\n }\n } catch (e: unknown) {\n this.client.emitError(e)\n }\n\n this._lastMessage = this._lastReceivedMessage = msg.id\n\n // this func will *never* error, so no need to use .then\n this._lock.release()\n })\n }\n\n private _onEditMessage(msg: Message, fromRecent = false) {\n if (msg.chat.id !== this._chatId) return\n\n const it = this._pendingEditMessage.get(msg.id)\n\n if (!it) {\n if (!fromRecent) {\n this._recentEdits.pushBack(msg)\n }\n\n return\n }\n\n (async () => {\n if (!it.check || (await it.check(msg))) {\n if (it.timeout) clearTimeout(it.timeout)\n it.promise.resolve(msg)\n this._pendingEditMessage.delete(msg.id)\n }\n })().catch((e) => {\n this.client.emitError(e)\n })\n }\n\n private _onHistoryRead(upd: HistoryReadUpdate) {\n if (upd.chatId !== this._chatId) return\n\n const lastRead = upd.maxReadId\n\n for (const msgId of this._pendingRead.keys()) {\n if (msgId <= lastRead) {\n const it = this._pendingRead.get(msgId)!\n if (it.timeout) clearTimeout(it.timeout)\n it.promise.resolve()\n this._pendingRead.delete(msgId)\n }\n }\n }\n\n private _processPendingNewMessages() {\n if (!this._pendingNewMessages.length) return\n\n let it\n\n while ((it = this._pendingNewMessages.popFront())) {\n this._onNewMessage(it)\n }\n }\n\n private _processRecentEdits() {\n if (!this._recentEdits.length) return\n\n const iter = this._recentEdits.iter()\n let it\n\n while (!(it = iter.next()).done) {\n this._onEditMessage(it.value, true)\n }\n }\n}\n"]}
|
|
@@ -12,6 +12,9 @@ exports.MtPeerNotFoundError = MtPeerNotFoundError;
|
|
|
12
12
|
* Could not find a message by the provided information
|
|
13
13
|
*/
|
|
14
14
|
class MtMessageNotFoundError extends errors_js_1.MtcuteError {
|
|
15
|
+
peerId;
|
|
16
|
+
messageId;
|
|
17
|
+
context;
|
|
15
18
|
constructor(peerId, messageId, context) {
|
|
16
19
|
super(`Message${context ? ' ' + context : ''} ${messageId} not found in ${peerId}`);
|
|
17
20
|
this.peerId = peerId;
|