@mtcute/core 0.11.0 → 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/client.d.ts +198 -18
- package/cjs/highlevel/client.js +53 -0
- package/cjs/highlevel/client.js.map +1 -1
- package/cjs/highlevel/methods/_imports.js.map +1 -1
- package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
- package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
- package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -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/dialogs/get-folders.d.ts +3 -0
- package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
- package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
- package/cjs/highlevel/methods/files/normalize-input-media.js +11 -10
- package/cjs/highlevel/methods/files/normalize-input-media.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/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-discussion-message.d.ts +4 -0
- 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/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-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-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-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/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-text.d.ts +5 -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/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-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/find-in-update.d.ts +5 -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.d.ts +12 -0
- package/cjs/highlevel/methods.js +33 -3
- package/cjs/highlevel/methods.js.map +1 -1
- package/cjs/highlevel/storage/storage.d.ts +7 -2
- package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
- package/cjs/highlevel/types/auth/sent-code.js +14 -0
- package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
- package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
- package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
- package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
- package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
- package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
- package/cjs/highlevel/types/files/utils.d.ts +6 -5
- package/cjs/highlevel/types/files/utils.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/input-media/types.d.ts +2 -2
- package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
- package/cjs/highlevel/types/media/poll.d.ts +17 -6
- package/cjs/highlevel/types/media/poll.js +65 -18
- package/cjs/highlevel/types/media/poll.js.map +1 -1
- package/cjs/highlevel/types/messages/dialog.js +1 -12
- package/cjs/highlevel/types/messages/dialog.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-media.d.ts +4 -0
- package/cjs/highlevel/types/messages/message.d.ts +59 -1
- package/cjs/highlevel/types/messages/message.js +96 -1
- package/cjs/highlevel/types/messages/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 +36 -5
- package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
- package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
- package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
- package/cjs/highlevel/types/peers/chat.d.ts +7 -93
- package/cjs/highlevel/types/peers/chat.js +2 -195
- package/cjs/highlevel/types/peers/chat.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/user.d.ts +5 -0
- package/cjs/highlevel/types/peers/user.js +7 -0
- package/cjs/highlevel/types/peers/user.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/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/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/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/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 +2 -2
- package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
- package/cjs/highlevel/updates/manager.d.ts +0 -1
- package/cjs/highlevel/updates/manager.js +7 -2
- 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/utils/inspectable.js +7 -0
- package/cjs/highlevel/utils/inspectable.js.map +1 -1
- package/cjs/highlevel/worker/index.js +6 -0
- package/cjs/highlevel/worker/protocol.d.ts +0 -1
- package/cjs/index.js +6 -0
- package/cjs/network/client.d.ts +0 -1
- package/cjs/network/mtproto-session.d.ts +0 -1
- package/cjs/network/multi-session-connection.d.ts +0 -1
- package/cjs/network/network-manager.d.ts +8 -0
- package/cjs/network/network-manager.js +9 -4
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/persistent-connection.d.ts +0 -1
- package/cjs/network/session-connection.js +10 -0
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/network/transports/abstract.d.ts +0 -1
- package/cjs/network/transports/streamed.d.ts +0 -1
- package/cjs/network/transports/wrapped.d.ts +0 -1
- package/cjs/platform.js +6 -0
- package/cjs/storage/sqlite/repository/peers.js +1 -2
- package/cjs/storage/sqlite/repository/peers.js.map +1 -1
- package/cjs/storage/storage.d.ts +21 -0
- package/cjs/types/utils.d.ts +1 -0
- package/cjs/types/utils.js.map +1 -1
- package/cjs/utils/index.js +6 -0
- package/cjs/utils/reloadable.d.ts +0 -1
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/esm/highlevel/client.d.ts +198 -18
- package/esm/highlevel/client.js +47 -0
- package/esm/highlevel/client.js.map +1 -1
- package/esm/highlevel/methods/_imports.js.map +1 -1
- package/esm/highlevel/methods/auth/utils.d.ts +3 -0
- package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
- package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -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/dialogs/get-folders.d.ts +3 -0
- package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
- package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
- package/esm/highlevel/methods/files/normalize-input-media.js +11 -10
- package/esm/highlevel/methods/files/normalize-input-media.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/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-discussion-message.d.ts +4 -0
- 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/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-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-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-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/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-text.d.ts +5 -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/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-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/find-in-update.d.ts +5 -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.d.ts +12 -0
- package/esm/highlevel/methods.js +12 -0
- package/esm/highlevel/methods.js.map +1 -1
- package/esm/highlevel/storage/storage.d.ts +7 -2
- package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
- package/esm/highlevel/types/auth/sent-code.js +14 -0
- package/esm/highlevel/types/auth/sent-code.js.map +1 -1
- package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
- package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
- package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
- package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
- package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
- package/esm/highlevel/types/files/utils.d.ts +6 -5
- package/esm/highlevel/types/files/utils.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/input-media/types.d.ts +2 -2
- package/esm/highlevel/types/media/input-media/types.js.map +1 -1
- package/esm/highlevel/types/media/poll.d.ts +17 -6
- package/esm/highlevel/types/media/poll.js +64 -17
- package/esm/highlevel/types/media/poll.js.map +1 -1
- package/esm/highlevel/types/messages/dialog.js +1 -12
- package/esm/highlevel/types/messages/dialog.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-media.d.ts +4 -0
- package/esm/highlevel/types/messages/message.d.ts +59 -1
- package/esm/highlevel/types/messages/message.js +96 -1
- package/esm/highlevel/types/messages/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 +38 -7
- package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
- package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
- package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
- package/esm/highlevel/types/peers/chat.d.ts +7 -93
- package/esm/highlevel/types/peers/chat.js +2 -195
- package/esm/highlevel/types/peers/chat.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/user.d.ts +5 -0
- package/esm/highlevel/types/peers/user.js +7 -0
- package/esm/highlevel/types/peers/user.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/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/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/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/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 +2 -2
- package/esm/highlevel/types/updates/poll-update.js.map +1 -1
- package/esm/highlevel/updates/manager.d.ts +0 -1
- package/esm/highlevel/updates/manager.js +7 -2
- 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/utils/inspectable.js +4 -0
- package/esm/highlevel/utils/inspectable.js.map +1 -1
- package/esm/highlevel/worker/protocol.d.ts +0 -1
- package/esm/network/client.d.ts +0 -1
- package/esm/network/mtproto-session.d.ts +0 -1
- package/esm/network/multi-session-connection.d.ts +0 -1
- package/esm/network/network-manager.d.ts +8 -0
- package/esm/network/network-manager.js +9 -4
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/persistent-connection.d.ts +0 -1
- package/esm/network/session-connection.js +10 -0
- package/esm/network/session-connection.js.map +1 -1
- package/esm/network/transports/abstract.d.ts +0 -1
- package/esm/network/transports/streamed.d.ts +0 -1
- package/esm/network/transports/wrapped.d.ts +0 -1
- package/esm/storage/sqlite/repository/peers.js +1 -2
- package/esm/storage/sqlite/repository/peers.js.map +1 -1
- package/esm/storage/storage.d.ts +21 -0
- package/esm/types/utils.d.ts +1 -0
- package/esm/types/utils.js.map +1 -1
- package/esm/utils/reloadable.d.ts +0 -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 +5 -5
- 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":"message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertNever } from '../../../types/utils.js'\nimport { getMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { BotKeyboard, ReplyMarkup } from '../bots/keyboards/index.js'\nimport { TextWithEntities } from '../misc/index.js'\nimport { Chat } from '../peers/chat.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\nimport { _messageActionFromTl, MessageAction } from './message-action.js'\nimport { MessageEntity } from './message-entity.js'\nimport { MessageForwardInfo } from './message-forward.js'\nimport { _messageMediaFromTl, MessageMedia } from './message-media.js'\nimport { MessageReactions } from './message-reactions.js'\nimport { MessageRepliesInfo } from './message-replies.js'\nimport { RepliedMessageInfo } from './replied-message.js'\n\n/**\n * A Telegram message.\n */\nexport class Message {\n /**\n * Raw TL object.\n */\n readonly raw: tl.RawMessage | tl.RawMessageService\n\n constructor(\n raw: tl.TypeMessage,\n readonly _peers: PeersIndex,\n /**\n * Whether the message is scheduled.\n * If it is, then its {@link date} is set to future.\n */\n readonly isScheduled = false,\n ) {\n assertTypeIsNot('Message#ctor', raw, 'messageEmpty')\n\n this.raw = raw\n }\n\n /** Unique message identifier inside this chat */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * For channel posts, number of views\n *\n * `null` for service messages and non-post messages.\n */\n get views(): number | null {\n return this.raw._ === 'message' ? this.raw.views ?? null : null\n }\n\n /**\n * Whether the message is incoming or outgoing:\n * - Messages received from other chats are incoming (`outgoing = false`)\n * - Messages sent by you to other chats are outgoing (`outgoing = true`)\n * - Messages to yourself (i.e. *Saved Messages*) are incoming (`outgoing = false`)\n */\n get isOutgoing(): boolean {\n return this.raw.out!\n }\n\n /**\n * Whether this message is a service message\n */\n get isService(): boolean {\n return this.raw._ === 'messageService'\n }\n\n /** Whether this message has content protection (i.e. disabled forwards) */\n get isContentProtected(): boolean {\n return this.raw._ === 'message' && this.raw.noforwards!\n }\n\n /**\n * Multiple media messages with the same grouped ID\n * indicate an album or media group\n *\n * `null` for service messages and non-grouped messages\n */\n get groupedId(): tl.Long | null {\n return this.raw._ === 'message' ? this.raw.groupedId ?? null : null\n }\n\n /**\n * Same as {@link groupedId}, but is globally unique across chats.\n */\n get groupedIdUnique(): string | null {\n if (!(this.raw._ === 'message' && this.raw.groupedId !== undefined)) return null\n\n return `${this.raw.groupedId.low}|${this.raw.groupedId.high}|${getMarkedPeerId(this.raw.peerId)}`\n }\n\n /**\n * Message sender.\n *\n * Usually is a {@link User}, but can be a {@link Chat}\n * in case the message was sent by an anonymous admin, anonymous premium user,\n * or if the message is a forwarded channel post.\n *\n * If the message was sent by an anonymous admin,\n * sender will equal to {@link chat}.\n *\n * If the message is a forwarded channel post,\n * sender is the channel itself.\n */\n get sender(): Peer {\n const from = this.raw.fromId\n\n if (!from) {\n if (this.raw.peerId._ === 'peerUser') {\n return new User(this._peers.user(this.raw.peerId.userId))\n }\n\n // anon admin, return the chat\n return this.chat\n }\n\n return parsePeer(from, this._peers)\n }\n\n /**\n * Conversation the message belongs to\n */\n get chat(): Chat {\n return Chat._parseFromMessage(this.raw, this._peers)\n }\n\n /**\n * Date the message was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * If this message is a forward, contains info about it.\n */\n get forward(): MessageForwardInfo | null {\n if (this.raw._ !== 'message' || !this.raw.fwdFrom) {\n return null\n }\n\n return new MessageForwardInfo(this.raw.fwdFrom, this._peers)\n }\n\n /**\n * Whether the message is a channel post that was\n * automatically forwarded to the connected discussion group\n */\n get isAutomaticForward(): boolean {\n if (this.raw._ === 'messageService' || !this.raw.fwdFrom) return false\n\n const fwd = this.raw.fwdFrom\n\n return Boolean(\n this.chat.chatType === 'supergroup' &&\n fwd.savedFromMsgId &&\n fwd.savedFromPeer?._ === 'peerChannel' &&\n getMarkedPeerId(fwd.savedFromPeer) !== getMarkedPeerId(this.raw.peerId),\n )\n }\n\n /**\n * Information about comments (for channels) or replies (for groups)\n */\n get replies(): MessageRepliesInfo | null {\n if (this.raw._ !== 'message' || !this.raw.replies) return null\n\n return new MessageRepliesInfo(this.raw.replies, this._peers)\n }\n\n /**\n * For replies, information about the that is being replied to.\n *\n * Mutually exclusive with {@link replyToStory}\n */\n get replyToMessage(): RepliedMessageInfo | null {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return null\n\n return new RepliedMessageInfo(this.raw.replyTo, this._peers)\n }\n\n /**\n * For replies, information about the story that is being replied to\n *\n * Mutually exclusive with {@link replyToMessage}\n */\n get replyToStory(): tl.RawMessageReplyStoryHeader | null {\n if (this.raw.replyTo?._ !== 'messageReplyStoryHeader') return null\n\n return this.raw.replyTo\n }\n\n /** Whether this message is in a forum topic */\n get isTopicMessage(): boolean {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return false\n\n return this.raw.replyTo.forumTopic!\n }\n\n /**\n * Whether this message contains mention of the current user\n */\n get isMention(): boolean {\n return this.raw.mentioned!\n }\n\n /**\n * If this message is generated from an inline query,\n * information about the bot which generated it\n */\n get viaBot(): User | null {\n if (this.raw._ === 'messageService' || !this.raw.viaBotId) {\n return null\n }\n\n return new User(this._peers.user(this.raw.viaBotId))\n }\n\n /**\n * Message text or media caption.\n *\n * Empty string for service messages\n * (you should handle i18n yourself)\n */\n get text(): string {\n return this.raw._ === 'messageService' ? '' : this.raw.message\n }\n\n /**\n * Message text/caption entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities: MessageEntity[] = []\n\n if (this.raw._ === 'message' && this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n\n get textWithEntities(): TextWithEntities {\n if (this.raw._ === 'messageService') return { text: '', entities: [] }\n\n return {\n text: this.raw.message,\n entities: this.raw.entities,\n }\n }\n\n /**\n * Message action. `null` for non-service messages\n * or for unsupported events.\n *\n * For unsupported events, use `.raw.action` directly.\n */\n get action(): MessageAction | null {\n if (this.raw._ === 'message') {\n return null\n }\n\n return _messageActionFromTl.call(this, this.raw.action)\n }\n\n /**\n * Message media. `null` for text-only and service messages\n * and for unsupported media types.\n *\n * For unsupported media types, use `.raw.media` directly.\n */\n get media(): MessageMedia {\n if (this.raw._ === 'messageService' || !this.raw.media || this.raw.media._ === 'messageMediaEmpty') {\n return null\n }\n\n return _messageMediaFromTl(this._peers, this.raw.media)\n }\n\n /**\n * Whether this is a premium media\n * (e.g. >2gb file or fullscreen sticker)\n * that was forwarded without author by a non-premium user\n */\n get isForwardedPremiumMedia(): boolean {\n return this.raw._ === 'message' && this.raw.media?._ === 'messageMediaDocument' && this.raw.media.nopremium!\n }\n\n /**\n * TTL period of the message, in seconds.\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n\n /**\n * Reply markup provided with this message, if any.\n */\n get markup(): ReplyMarkup | null {\n if (this.raw._ === 'messageService' || !this.raw.replyMarkup) {\n return null\n }\n\n const rm = this.raw.replyMarkup\n\n switch (rm._) {\n case 'replyKeyboardHide':\n return {\n type: 'reply_hide',\n selective: rm.selective,\n }\n case 'replyKeyboardForceReply':\n return {\n type: 'force_reply',\n singleUse: rm.singleUse,\n selective: rm.selective,\n }\n case 'replyKeyboardMarkup':\n return {\n type: 'reply',\n resize: rm.resize,\n singleUse: rm.singleUse,\n selective: rm.selective,\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n case 'replyInlineMarkup':\n return {\n type: 'inline',\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n default:\n assertNever(rm)\n }\n }\n\n /**\n * Whether this message can be forwarded\n *\n * `false` for service mesasges and private restricted chats/chanenls\n */\n get canBeForwarded(): boolean {\n return this.raw._ === 'message' && !this.raw.noforwards\n }\n\n get reactions(): MessageReactions | null {\n if (this.raw._ === 'messageService' || !this.raw.reactions) {\n return null\n }\n\n return new MessageReactions(this.raw.id, getMarkedPeerId(this.raw.peerId), this.raw.reactions, this._peers)\n }\n\n /**\n * Generated permalink to this message, only for groups and channels\n *\n * @throws MtArgumentError In case the chat does not support message links\n */\n get link(): string {\n if (this.chat.chatType === 'supergroup' || this.chat.chatType === 'channel') {\n if (this.chat.username) {\n return `https://t.me/${this.chat.username}/${this.id}`\n }\n\n return `https://t.me/c/${toggleChannelIdMark(this.chat.id)}/${this.id}`\n }\n\n throw new MtArgumentError(`Cannot generate message link for ${this.chat.chatType}`)\n }\n}\n\nmemoizeGetters(Message, [\n 'sender',\n 'chat',\n 'forward',\n 'replies',\n 'viaBot',\n 'entities',\n 'action',\n 'media',\n 'markup',\n 'reactions',\n])\nmakeInspectable(Message, ['isScheduled'], ['link'])\n"]}
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/messages/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertNever } from '../../../types/utils.js'\nimport { getMarkedPeerId, toggleChannelIdMark } from '../../../utils/peer-utils.js'\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { BotKeyboard, ReplyMarkup } from '../bots/keyboards/index.js'\nimport { TextWithEntities } from '../misc/index.js'\nimport { Chat } from '../peers/chat.js'\nimport { parsePeer, Peer } from '../peers/peer.js'\nimport { PeersIndex } from '../peers/peers-index.js'\nimport { User } from '../peers/user.js'\nimport { _messageActionFromTl, MessageAction } from './message-action.js'\nimport { MessageEntity } from './message-entity.js'\nimport { MessageForwardInfo } from './message-forward.js'\nimport { _messageMediaFromTl, MessageMedia } from './message-media.js'\nimport { MessageReactions } from './message-reactions.js'\nimport { MessageRepliesInfo } from './message-replies.js'\nimport { RepliedMessageInfo } from './replied-message.js'\n\n/**\n * A Telegram message.\n */\nexport class Message {\n /**\n * Raw TL object.\n */\n readonly raw: tl.RawMessage | tl.RawMessageService\n\n constructor(\n raw: tl.TypeMessage,\n readonly _peers: PeersIndex,\n /**\n * Whether the message is scheduled.\n * If it is, then its {@link date} is set to future.\n */\n readonly isScheduled = false,\n ) {\n assertTypeIsNot('Message#ctor', raw, 'messageEmpty')\n\n this.raw = raw\n }\n\n /** Unique message identifier inside this chat */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * For channel posts, number of views\n *\n * `null` for service messages and non-post messages.\n */\n get views(): number | null {\n return this.raw._ === 'message' ? this.raw.views ?? null : null\n }\n\n /**\n * For channel posts, number of forwards\n *\n * `null` for service messages and non-post messages, or\n * if the current user is not an admin in the channel\n */\n get forwards(): number | null {\n return this.raw._ === 'message' ? this.raw.forwards ?? null : null\n }\n\n /**\n * For channel posts with signatures enabled, name of the post author\n */\n get signature(): string | null {\n return this.raw._ === 'message' ? this.raw.postAuthor ?? null : null\n }\n\n /**\n * Whether the message is incoming or outgoing:\n * - Messages received from other chats are incoming (`outgoing = false`)\n * - Messages sent by you to other chats are outgoing (`outgoing = true`)\n * - Messages to yourself (i.e. *Saved Messages*) are incoming (`outgoing = false`)\n */\n get isOutgoing(): boolean {\n return this.raw.out!\n }\n\n /**\n * Whether this message is a service message\n */\n get isService(): boolean {\n return this.raw._ === 'messageService'\n }\n\n /** Whether this message has content protection (i.e. disabled forwards) */\n get isContentProtected(): boolean {\n return this.raw._ === 'message' && this.raw.noforwards!\n }\n\n /**\n * Whether the message was sent by an implicit action, for example,\n * as an away or a greeting business message, or as a scheduled message\n */\n get isFromOffline(): boolean {\n return this.raw._ === 'message' && this.raw.offline!\n }\n\n /** Whether this is a silent message (no notification triggered) */\n get isSilent(): boolean {\n return this.raw.silent!\n }\n\n /** Whether there are unread media attachments in this message */\n get hasUnreadMedia(): boolean {\n return this.raw.mediaUnread!\n }\n\n /** Whether this is a broadcast channel post */\n get isChannelPost(): boolean {\n return this.raw._ === 'message' && this.raw.post!\n }\n\n /**\n * Whether this message was automatically sent from a scheduled message.\n *\n * **Note**: for messages sent by other users, this is always `false`.\n */\n get isFromScheduled(): boolean {\n return this.raw._ === 'message' && this.raw.fromScheduled!\n }\n\n /** Whether the message is pinned in the current chat */\n get isPinned(): boolean {\n return this.raw._ === 'message' && this.raw.pinned!\n }\n\n /** Whether the message should be considered unedited, even if {@link editDate} ≠ null */\n get hideEditMark(): boolean {\n return this.raw._ === 'message' && this.raw.editHide!\n }\n\n /**\n * If set, any eventual webpage preview should be shown on top of\n * the message instead of at the bottom.\n */\n get invertMedia(): boolean {\n return this.raw._ === 'message' && this.raw.invertMedia!\n }\n\n /**\n * Multiple media messages with the same grouped ID\n * indicate an album or media group\n *\n * `null` for service messages and non-grouped messages\n */\n get groupedId(): tl.Long | null {\n return this.raw._ === 'message' ? this.raw.groupedId ?? null : null\n }\n\n /**\n * Same as {@link groupedId}, but is globally unique across chats.\n */\n get groupedIdUnique(): string | null {\n if (!(this.raw._ === 'message' && this.raw.groupedId !== undefined)) return null\n\n return `${this.raw.groupedId.low}|${this.raw.groupedId.high}|${getMarkedPeerId(this.raw.peerId)}`\n }\n\n /**\n * Message sender.\n *\n * Usually is a {@link User}, but can be a {@link Chat}\n * in case the message was sent by an anonymous admin, anonymous premium user,\n * or if the message is a forwarded channel post.\n *\n * If the message was sent by an anonymous admin,\n * sender will equal to {@link chat}.\n *\n * If the message is a forwarded channel post,\n * sender is the channel itself.\n */\n get sender(): Peer {\n const from = this.raw.fromId\n\n if (!from) {\n if (this.raw.peerId._ === 'peerUser') {\n return new User(this._peers.user(this.raw.peerId.userId))\n }\n\n // anon admin, return the chat\n return this.chat\n }\n\n return parsePeer(from, this._peers)\n }\n\n /**\n * Number of boosts applied to this {@link chat} by the sender\n */\n get senderBoostCount(): number {\n if (this.raw._ !== 'message') return 0\n\n return this.raw.fromBoostsApplied ?? 0\n }\n\n /**\n * Conversation the message belongs to\n */\n get chat(): Chat {\n return Chat._parseFromMessage(this.raw, this._peers)\n }\n\n /**\n * Date when the message was sent\n */\n get date(): Date {\n return new Date(this.raw.date * 1000)\n }\n\n /**\n * Date when the message was last edited\n */\n get editDate(): Date | null {\n if (this.raw._ === 'messageService') return null\n\n return this.raw.editDate ? new Date(this.raw.editDate * 1000) : null\n }\n\n /**\n * If this message is a forward, contains info about it.\n */\n get forward(): MessageForwardInfo | null {\n if (this.raw._ !== 'message' || !this.raw.fwdFrom) {\n return null\n }\n\n return new MessageForwardInfo(this.raw.fwdFrom, this._peers)\n }\n\n /**\n * Whether the message is a channel post that was\n * automatically forwarded to the connected discussion group\n */\n get isAutomaticForward(): boolean {\n if (this.raw._ === 'messageService' || !this.raw.fwdFrom) return false\n\n const fwd = this.raw.fwdFrom\n\n return Boolean(\n this.chat.chatType === 'supergroup' &&\n fwd.savedFromMsgId &&\n fwd.savedFromPeer?._ === 'peerChannel' &&\n getMarkedPeerId(fwd.savedFromPeer) !== getMarkedPeerId(this.raw.peerId),\n )\n }\n\n /**\n * Information about comments (for channels) or replies (for groups)\n */\n get replies(): MessageRepliesInfo | null {\n if (this.raw._ !== 'message' || !this.raw.replies) return null\n\n return new MessageRepliesInfo(this.raw.replies, this._peers)\n }\n\n /**\n * For replies, information about the that is being replied to.\n *\n * Mutually exclusive with {@link replyToStory}\n */\n get replyToMessage(): RepliedMessageInfo | null {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return null\n\n return new RepliedMessageInfo(this.raw.replyTo, this._peers)\n }\n\n /**\n * For replies, information about the story that is being replied to\n *\n * Mutually exclusive with {@link replyToMessage}\n */\n get replyToStory(): tl.RawMessageReplyStoryHeader | null {\n if (this.raw.replyTo?._ !== 'messageReplyStoryHeader') return null\n\n return this.raw.replyTo\n }\n\n /** Whether this message is in a forum topic */\n get isTopicMessage(): boolean {\n if (this.raw.replyTo?._ !== 'messageReplyHeader') return false\n\n return this.raw.replyTo.forumTopic!\n }\n\n /**\n * Whether this message contains mention of the current user\n */\n get isMention(): boolean {\n return this.raw.mentioned!\n }\n\n /**\n * If non-null, this message is not actually sent, and is\n * instead inside a group of \"quick reply\" messages\n * under the given shortcut ID\n */\n get quickReplyShortcutId(): number | null {\n if (this.raw._ === 'messageService') return null\n\n return this.raw.quickReplyShortcutId ?? null\n }\n\n /**\n * If this message is generated from an inline query,\n * information about the bot which generated it\n */\n get viaBot(): User | null {\n if (this.raw._ === 'messageService' || !this.raw.viaBotId) {\n return null\n }\n\n return new User(this._peers.user(this.raw.viaBotId))\n }\n\n /**\n * If this message was sent by a business bot on behalf of {@link sender},\n * information about the business bot.\n *\n * **Note**: only available to the business account and the bot itself.\n */\n get viaBusinessBot(): User | null {\n if (this.raw._ === 'messageService' || !this.raw.viaBusinessBotId) {\n return null\n }\n\n return new User(this._peers.user(this.raw.viaBusinessBotId))\n }\n\n /**\n * Message text or media caption.\n *\n * Empty string for service messages\n * (you should handle i18n yourself)\n */\n get text(): string {\n return this.raw._ === 'messageService' ? '' : this.raw.message\n }\n\n /**\n * Message text/caption entities (may be empty)\n */\n get entities(): ReadonlyArray<MessageEntity> {\n const entities: MessageEntity[] = []\n\n if (this.raw._ === 'message' && this.raw.entities?.length) {\n for (const ent of this.raw.entities) {\n entities.push(new MessageEntity(ent, this.raw.message))\n }\n }\n\n return entities\n }\n\n get textWithEntities(): TextWithEntities {\n if (this.raw._ === 'messageService') return { text: '', entities: [] }\n\n return {\n text: this.raw.message,\n entities: this.raw.entities,\n }\n }\n\n /**\n * Message action. `null` for non-service messages\n * or for unsupported events.\n *\n * For unsupported events, use `.raw.action` directly.\n */\n get action(): MessageAction | null {\n if (this.raw._ === 'message') {\n return null\n }\n\n return _messageActionFromTl.call(this, this.raw.action)\n }\n\n /**\n * Message media. `null` for text-only and service messages\n * and for unsupported media types.\n *\n * For unsupported media types, use `.raw.media` directly.\n */\n get media(): MessageMedia {\n if (this.raw._ === 'messageService' || !this.raw.media || this.raw.media._ === 'messageMediaEmpty') {\n return null\n }\n\n return _messageMediaFromTl(this._peers, this.raw.media)\n }\n\n /**\n * Whether this is a premium media\n * (e.g. >2gb file or fullscreen sticker)\n * that was forwarded without author by a non-premium user\n */\n get isForwardedPremiumMedia(): boolean {\n return this.raw._ === 'message' && this.raw.media?._ === 'messageMediaDocument' && this.raw.media.nopremium!\n }\n\n /**\n * TTL period of the message, in seconds.\n */\n get ttlPeriod(): number | null {\n return this.raw.ttlPeriod ?? null\n }\n\n /**\n * Reply markup provided with this message, if any.\n */\n get markup(): ReplyMarkup | null {\n if (this.raw._ === 'messageService' || !this.raw.replyMarkup) {\n return null\n }\n\n const rm = this.raw.replyMarkup\n\n switch (rm._) {\n case 'replyKeyboardHide':\n return {\n type: 'reply_hide',\n selective: rm.selective,\n }\n case 'replyKeyboardForceReply':\n return {\n type: 'force_reply',\n singleUse: rm.singleUse,\n selective: rm.selective,\n }\n case 'replyKeyboardMarkup':\n return {\n type: 'reply',\n resize: rm.resize,\n singleUse: rm.singleUse,\n selective: rm.selective,\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n case 'replyInlineMarkup':\n return {\n type: 'inline',\n buttons: BotKeyboard._rowsTo2d(rm.rows),\n }\n default:\n assertNever(rm)\n }\n }\n\n /**\n * Whether this message can be forwarded\n *\n * `false` for service mesasges and private restricted chats/chanenls\n */\n get canBeForwarded(): boolean {\n return this.raw._ === 'message' && !this.raw.noforwards\n }\n\n get reactions(): MessageReactions | null {\n if (this.raw._ === 'messageService' || !this.raw.reactions) {\n return null\n }\n\n return new MessageReactions(this.raw.id, getMarkedPeerId(this.raw.peerId), this.raw.reactions, this._peers)\n }\n\n /**\n * Generated permalink to this message, only for groups and channels\n *\n * @throws MtArgumentError In case the chat does not support message links\n */\n get link(): string {\n if (this.chat.chatType === 'supergroup' || this.chat.chatType === 'channel') {\n if (this.chat.username) {\n return `https://t.me/${this.chat.username}/${this.id}`\n }\n\n return `https://t.me/c/${toggleChannelIdMark(this.chat.id)}/${this.id}`\n }\n\n throw new MtArgumentError(`Cannot generate message link for ${this.chat.chatType}`)\n }\n}\n\nmemoizeGetters(Message, [\n 'sender',\n 'chat',\n 'forward',\n 'replies',\n 'viaBot',\n 'entities',\n 'action',\n 'media',\n 'markup',\n 'reactions',\n])\nmakeInspectable(Message, ['isScheduled'], ['link'])\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import Long from 'long';
|
|
2
|
+
import { tl } from '@mtcute/tl';
|
|
3
|
+
/**
|
|
4
|
+
* Information about a Fragment collectible
|
|
5
|
+
*/
|
|
6
|
+
export declare class CollectibleInfo {
|
|
7
|
+
readonly raw: tl.fragment.RawCollectibleInfo;
|
|
8
|
+
constructor(raw: tl.fragment.RawCollectibleInfo);
|
|
9
|
+
/** Date when the item was purchased */
|
|
10
|
+
get purchaseDate(): Date;
|
|
11
|
+
/** Crypto currency used to purchase the item */
|
|
12
|
+
get cryptoCurrency(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Amount of crypto currency used to purchase the item,
|
|
15
|
+
* in the smallest units
|
|
16
|
+
*/
|
|
17
|
+
get cryptoAmount(): Long;
|
|
18
|
+
/** Fiat currency to which the crypto currency was converted */
|
|
19
|
+
get currency(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Converted amount in fiat currency,
|
|
22
|
+
* in the smallest units (e.g. cents)
|
|
23
|
+
*/
|
|
24
|
+
get amount(): Long;
|
|
25
|
+
/** URL to the collectible on Fragment */
|
|
26
|
+
get url(): string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CollectibleInfo = void 0;
|
|
4
|
+
const inspectable_js_1 = require("../../utils/inspectable.js");
|
|
5
|
+
/**
|
|
6
|
+
* Information about a Fragment collectible
|
|
7
|
+
*/
|
|
8
|
+
class CollectibleInfo {
|
|
9
|
+
raw;
|
|
10
|
+
constructor(raw) {
|
|
11
|
+
this.raw = raw;
|
|
12
|
+
}
|
|
13
|
+
/** Date when the item was purchased */
|
|
14
|
+
get purchaseDate() {
|
|
15
|
+
return new Date(this.raw.purchaseDate * 1000);
|
|
16
|
+
}
|
|
17
|
+
/** Crypto currency used to purchase the item */
|
|
18
|
+
get cryptoCurrency() {
|
|
19
|
+
return this.raw.cryptoCurrency;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Amount of crypto currency used to purchase the item,
|
|
23
|
+
* in the smallest units
|
|
24
|
+
*/
|
|
25
|
+
get cryptoAmount() {
|
|
26
|
+
return this.raw.cryptoAmount;
|
|
27
|
+
}
|
|
28
|
+
/** Fiat currency to which the crypto currency was converted */
|
|
29
|
+
get currency() {
|
|
30
|
+
return this.raw.currency;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Converted amount in fiat currency,
|
|
34
|
+
* in the smallest units (e.g. cents)
|
|
35
|
+
*/
|
|
36
|
+
get amount() {
|
|
37
|
+
return this.raw.amount;
|
|
38
|
+
}
|
|
39
|
+
/** URL to the collectible on Fragment */
|
|
40
|
+
get url() {
|
|
41
|
+
return this.raw.url;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.CollectibleInfo = CollectibleInfo;
|
|
45
|
+
(0, inspectable_js_1.makeInspectable)(CollectibleInfo);
|
|
46
|
+
//# sourceMappingURL=collectible-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectible-info.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/collectible-info.ts"],"names":[],"mappings":";;;AAIA,+DAA4D;AAE5D;;GAEG;AACH,MAAa,eAAe;IACH;IAArB,YAAqB,GAAmC;QAAnC,QAAG,GAAH,GAAG,CAAgC;IAAG,CAAC;IAE5D,uCAAuC;IACvC,IAAI,YAAY;QACZ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IACjD,CAAC;IAED,gDAAgD;IAChD,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAA;IAClC,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,+DAA+D;IAC/D,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,yCAAyC;IACzC,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACvB,CAAC;CACJ;AAtCD,0CAsCC;AAED,IAAA,gCAAe,EAAC,eAAe,CAAC,CAAA","sourcesContent":["import Long from 'long'\n\nimport { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\n\n/**\n * Information about a Fragment collectible\n */\nexport class CollectibleInfo {\n constructor(readonly raw: tl.fragment.RawCollectibleInfo) {}\n\n /** Date when the item was purchased */\n get purchaseDate(): Date {\n return new Date(this.raw.purchaseDate * 1000)\n }\n\n /** Crypto currency used to purchase the item */\n get cryptoCurrency(): string {\n return this.raw.cryptoCurrency\n }\n\n /**\n * Amount of crypto currency used to purchase the item,\n * in the smallest units\n */\n get cryptoAmount(): Long {\n return this.raw.cryptoAmount\n }\n\n /** Fiat currency to which the crypto currency was converted */\n get currency(): string {\n return this.raw.currency\n }\n\n /**\n * Converted amount in fiat currency,\n * in the smallest units (e.g. cents)\n */\n get amount(): Long {\n return this.raw.amount\n }\n\n /** URL to the collectible on Fragment */\n get url(): string {\n return this.raw.url\n }\n}\n\nmakeInspectable(CollectibleInfo)\n"]}
|
|
@@ -13,3 +13,10 @@ export interface TextWithEntities {
|
|
|
13
13
|
* Can be either a plain string or an object with `text` and `entities` fields.
|
|
14
14
|
*/
|
|
15
15
|
export type InputText = string | TextWithEntities;
|
|
16
|
+
/**
|
|
17
|
+
* Convert {@link InputText} to a {@link tl.RawTextWithEntities} object
|
|
18
|
+
*
|
|
19
|
+
* @param text Input text
|
|
20
|
+
* @returns TL object
|
|
21
|
+
*/
|
|
22
|
+
export declare function inputTextToTl(text: InputText): tl.RawTextWithEntities;
|
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inputTextToTl = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Convert {@link InputText} to a {@link tl.RawTextWithEntities} object
|
|
6
|
+
*
|
|
7
|
+
* @param text Input text
|
|
8
|
+
* @returns TL object
|
|
9
|
+
*/
|
|
10
|
+
function inputTextToTl(text) {
|
|
11
|
+
return {
|
|
12
|
+
_: 'textWithEntities',
|
|
13
|
+
text: typeof text === 'string' ? text : text.text,
|
|
14
|
+
entities: typeof text === 'string' ? [] : text.entities ?? [],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.inputTextToTl = inputTextToTl;
|
|
3
18
|
//# sourceMappingURL=entities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/entities.ts"],"names":[],"mappings":"","sourcesContent":["import { tl } from '@mtcute/tl'\n\n/**\n * Formatted text with entities\n */\nexport interface TextWithEntities {\n readonly text: string\n readonly entities?: tl.TypeMessageEntity[]\n}\n\n/**\n * Type to be used as a parameter for methods that accept\n * a formatted text with entities.\n *\n * Can be either a plain string or an object with `text` and `entities` fields.\n */\nexport type InputText = string | TextWithEntities\n"]}
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/entities.ts"],"names":[],"mappings":";;;AAkBA;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAe;IACzC,OAAO;QACH,CAAC,EAAE,kBAAkB;QACrB,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QACjD,QAAQ,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE;KAChE,CAAA;AACL,CAAC;AAND,sCAMC","sourcesContent":["import { tl } from '@mtcute/tl'\n\n/**\n * Formatted text with entities\n */\nexport interface TextWithEntities {\n readonly text: string\n readonly entities?: tl.TypeMessageEntity[]\n}\n\n/**\n * Type to be used as a parameter for methods that accept\n * a formatted text with entities.\n *\n * Can be either a plain string or an object with `text` and `entities` fields.\n */\nexport type InputText = string | TextWithEntities\n\n/**\n * Convert {@link InputText} to a {@link tl.RawTextWithEntities} object\n *\n * @param text Input text\n * @returns TL object\n */\nexport function inputTextToTl(text: InputText): tl.RawTextWithEntities {\n return {\n _: 'textWithEntities',\n text: typeof text === 'string' ? text : text.text,\n entities: typeof text === 'string' ? [] : text.entities ?? [],\n }\n}\n"]}
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./app-config.js"), exports);
|
|
18
|
+
__exportStar(require("./collectible-info.js"), exports);
|
|
18
19
|
__exportStar(require("./entities.js"), exports);
|
|
19
20
|
__exportStar(require("./input-privacy-rule/index.js"), exports);
|
|
20
21
|
__exportStar(require("./sticker-set.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,gDAA6B;AAC7B,gEAA6C;AAC7C,mDAAgC;AAChC,uDAAoC","sourcesContent":["export * from './app-config.js'\nexport * from './entities.js'\nexport * from './input-privacy-rule/index.js'\nexport * from './sticker-set.js'\nexport * from './takeout-session.js'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,wDAAqC;AACrC,gDAA6B;AAC7B,gEAA6C;AAC7C,mDAAgC;AAChC,uDAAoC","sourcesContent":["export * from './app-config.js'\nexport * from './collectible-info.js'\nexport * from './entities.js'\nexport * from './input-privacy-rule/index.js'\nexport * from './sticker-set.js'\nexport * from './takeout-session.js'\n"]}
|
|
@@ -48,11 +48,12 @@ export interface StickerInfo {
|
|
|
48
48
|
export declare class StickerSet {
|
|
49
49
|
readonly brief: tl.RawStickerSet;
|
|
50
50
|
readonly full?: tl.messages.RawStickerSet;
|
|
51
|
+
readonly cover?: tl.TypeStickerSetCovered;
|
|
51
52
|
/**
|
|
52
53
|
* Whether this object contains information about stickers inside the set
|
|
53
54
|
*/
|
|
54
55
|
readonly isFull: boolean;
|
|
55
|
-
constructor(raw: tl.TypeStickerSet | tl.messages.TypeStickerSet);
|
|
56
|
+
constructor(raw: tl.TypeStickerSet | tl.messages.TypeStickerSet | tl.TypeStickerSetCovered);
|
|
56
57
|
/**
|
|
57
58
|
* Whether this sticker set was archived
|
|
58
59
|
* (due to too many saved stickers in the current account)
|
|
@@ -62,6 +63,10 @@ export declare class StickerSet {
|
|
|
62
63
|
* Whether this stickerset is official
|
|
63
64
|
*/
|
|
64
65
|
get isOfficial(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether this sticker set was created by the current user
|
|
68
|
+
*/
|
|
69
|
+
get isCreator(): boolean;
|
|
65
70
|
/**
|
|
66
71
|
* Type of the stickers in this set
|
|
67
72
|
*/
|
|
@@ -98,6 +103,8 @@ export declare class StickerSet {
|
|
|
98
103
|
* In case this object does not contain info about stickers (i.e. {@link isFull} = false)
|
|
99
104
|
*/
|
|
100
105
|
get stickers(): ReadonlyArray<StickerInfo>;
|
|
106
|
+
/** Cover stickers of the sticker set. Not the same as {@link thumbnails} */
|
|
107
|
+
get covers(): ReadonlyArray<Sticker>;
|
|
101
108
|
/**
|
|
102
109
|
* Available sticker set thumbnails.
|
|
103
110
|
*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StickerSet = exports.normalizeInputStickerSet = void 0;
|
|
4
|
+
const tl_1 = require("@mtcute/tl");
|
|
4
5
|
const errors_js_1 = require("../../../types/errors.js");
|
|
5
6
|
const long_utils_js_1 = require("../../../utils/long-utils.js");
|
|
6
7
|
const index_js_1 = require("../../utils/index.js");
|
|
@@ -43,12 +44,20 @@ function normalizeInputStickerSet(input) {
|
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
exports.normalizeInputStickerSet = normalizeInputStickerSet;
|
|
47
|
+
function parseStickerOrThrow(doc) {
|
|
48
|
+
const sticker = (0, document_utils_js_1.parseSticker)(doc);
|
|
49
|
+
if (!sticker) {
|
|
50
|
+
throw new errors_js_1.MtTypeAssertionError('full.documents', 'sticker', 'not a sticker');
|
|
51
|
+
}
|
|
52
|
+
return sticker;
|
|
53
|
+
}
|
|
46
54
|
/**
|
|
47
55
|
* A sticker set (aka sticker pack)
|
|
48
56
|
*/
|
|
49
57
|
class StickerSet {
|
|
50
58
|
brief;
|
|
51
59
|
full;
|
|
60
|
+
cover;
|
|
52
61
|
/**
|
|
53
62
|
* Whether this object contains information about stickers inside the set
|
|
54
63
|
*/
|
|
@@ -61,6 +70,10 @@ class StickerSet {
|
|
|
61
70
|
else if (raw._ === 'stickerSet') {
|
|
62
71
|
this.brief = raw;
|
|
63
72
|
}
|
|
73
|
+
else if (tl_1.tl.isAnyStickerSetCovered(raw)) {
|
|
74
|
+
this.cover = raw;
|
|
75
|
+
this.brief = raw.set;
|
|
76
|
+
}
|
|
64
77
|
else {
|
|
65
78
|
throw new errors_js_1.MtTypeAssertionError('StickerSet', 'messages.stickerSet | stickerSet', raw._);
|
|
66
79
|
}
|
|
@@ -79,6 +92,12 @@ class StickerSet {
|
|
|
79
92
|
get isOfficial() {
|
|
80
93
|
return this.brief.official;
|
|
81
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Whether this sticker set was created by the current user
|
|
97
|
+
*/
|
|
98
|
+
get isCreator() {
|
|
99
|
+
return this.brief.creator;
|
|
100
|
+
}
|
|
82
101
|
/**
|
|
83
102
|
* Type of the stickers in this set
|
|
84
103
|
*/
|
|
@@ -145,15 +164,12 @@ class StickerSet {
|
|
|
145
164
|
* In case this object does not contain info about stickers (i.e. {@link isFull} = false)
|
|
146
165
|
*/
|
|
147
166
|
get stickers() {
|
|
148
|
-
if (!this.
|
|
167
|
+
if (!this.full)
|
|
149
168
|
throw new errors_js_2.MtEmptyError();
|
|
150
169
|
const stickers = [];
|
|
151
170
|
const index = new long_utils_js_1.LongMap();
|
|
152
171
|
this.full.documents.forEach((doc) => {
|
|
153
|
-
const sticker = (
|
|
154
|
-
if (!(sticker instanceof index_js_2.Sticker)) {
|
|
155
|
-
throw new errors_js_1.MtTypeAssertionError('full.documents', 'Sticker', sticker.mimeType);
|
|
156
|
-
}
|
|
172
|
+
const sticker = parseStickerOrThrow(doc);
|
|
157
173
|
const info = {
|
|
158
174
|
alt: sticker.emoji,
|
|
159
175
|
emoji: '', // populated later
|
|
@@ -172,6 +188,21 @@ class StickerSet {
|
|
|
172
188
|
});
|
|
173
189
|
return stickers;
|
|
174
190
|
}
|
|
191
|
+
/** Cover stickers of the sticker set. Not the same as {@link thumbnails} */
|
|
192
|
+
get covers() {
|
|
193
|
+
if (!this.cover)
|
|
194
|
+
return [];
|
|
195
|
+
switch (this.cover._) {
|
|
196
|
+
case 'stickerSetCovered':
|
|
197
|
+
return [parseStickerOrThrow(this.cover.cover)];
|
|
198
|
+
case 'stickerSetMultiCovered':
|
|
199
|
+
return this.cover.covers.map((it) => parseStickerOrThrow(it));
|
|
200
|
+
case 'stickerSetFullCovered':
|
|
201
|
+
return this.cover.documents.map((it) => parseStickerOrThrow(it));
|
|
202
|
+
case 'stickerSetNoCovered':
|
|
203
|
+
return [];
|
|
204
|
+
}
|
|
205
|
+
}
|
|
175
206
|
/**
|
|
176
207
|
* Available sticker set thumbnails.
|
|
177
208
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-set.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/sticker-set.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { LongMap } from '../../../utils/long-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtEmptyError } from '../errors.js'\nimport { InputFileLike } from '../files/index.js'\nimport { parseDocument } from '../media/document-utils.js'\nimport { MaskPosition, Sticker, StickerSourceType, StickerType, Thumbnail } from '../media/index.js'\n\n/**\n * Input sticker set.\n * Can be one of:\n * - Raw TL object\n * - Sticker set short name\n * - {@link StickerSet} object\n * - `{ dice: \"<emoji>\" }` (e.g. `{ dice: \"🎲\" }`) - Used for fetching animated dice stickers\n * - `{ system: string }` - for system stickersets:\n * - `\"animated\"` - Animated emojis stickerset\n * - `\"animated_animations\"` - Animated emoji reaction stickerset\n * (contains animations to play when a user clicks on a given animated emoji)\n * - `\"premium_gifts\"` - Stickers to show when receiving a gifted Telegram Premium subscription,\n * - `\"generic_animations\"` - Generic animation stickerset containing animations to play\n * when reacting to messages using a normal emoji without a custom animation\n * - `\"default_statuses\"` - Default custom emoji status stickerset\n * - `\"default_topic_icons\"` - Default custom emoji stickerset for forum topic icons\n * - `\"default_channel_statuses\"` - Default custom emoji status stickerset for channels\n */\nexport type InputStickerSet =\n | tl.TypeInputStickerSet\n | { dice: string }\n | {\n system:\n | 'animated'\n | 'animated_animations'\n | 'premium_gifts'\n | 'generic_animations'\n | 'default_statuses'\n | 'default_topic_icons'\n | 'default_channel_statuses'\n }\n | StickerSet\n | string\n\nexport function normalizeInputStickerSet(input: InputStickerSet): tl.TypeInputStickerSet {\n if (typeof input === 'string') {\n return {\n _: 'inputStickerSetShortName',\n shortName: input,\n }\n }\n if ('_' in input) return input\n if (input instanceof StickerSet) return input.inputStickerSet\n\n if ('dice' in input) {\n return {\n _: 'inputStickerSetDice',\n emoticon: input.dice,\n }\n }\n\n switch (input.system) {\n case 'animated':\n return { _: 'inputStickerSetAnimatedEmoji' }\n case 'animated_animations':\n return { _: 'inputStickerSetAnimatedEmojiAnimations' }\n case 'premium_gifts':\n return { _: 'inputStickerSetPremiumGifts' }\n case 'generic_animations':\n return { _: 'inputStickerSetEmojiGenericAnimations' }\n case 'default_statuses':\n return { _: 'inputStickerSetEmojiDefaultStatuses' }\n case 'default_topic_icons':\n return { _: 'inputStickerSetEmojiDefaultTopicIcons' }\n case 'default_channel_statuses':\n return { _: 'inputStickerSetEmojiChannelDefaultStatuses' }\n }\n}\n\n/**\n * Information about one sticker inside the set\n */\nexport interface StickerInfo {\n /**\n * Primary alt emoji that is displayed in dialogs list\n */\n readonly alt: string\n\n /**\n * One or more emojis representing this sticker\n */\n readonly emoji: string\n\n /**\n * Document with the actual sticker\n */\n readonly sticker: Sticker\n}\n\n/**\n * A sticker set (aka sticker pack)\n */\nexport class StickerSet {\n readonly brief: tl.RawStickerSet\n readonly full?: tl.messages.RawStickerSet\n\n /**\n * Whether this object contains information about stickers inside the set\n */\n readonly isFull: boolean\n\n constructor(raw: tl.TypeStickerSet | tl.messages.TypeStickerSet) {\n if (raw._ === 'messages.stickerSet') {\n this.full = raw\n this.brief = raw.set\n } else if (raw._ === 'stickerSet') {\n this.brief = raw\n } else {\n throw new MtTypeAssertionError('StickerSet', 'messages.stickerSet | stickerSet', raw._)\n }\n\n this.isFull = raw._ === 'messages.stickerSet'\n }\n\n /**\n * Whether this sticker set was archived\n * (due to too many saved stickers in the current account)\n */\n get isArchived(): boolean {\n return this.brief.archived!\n }\n\n /**\n * Whether this stickerset is official\n */\n get isOfficial(): boolean {\n return this.brief.official!\n }\n\n /**\n * Type of the stickers in this set\n */\n get type(): StickerType {\n if (this.brief.masks) {\n return 'mask'\n }\n\n if (this.brief.emojis) {\n return 'emoji'\n }\n\n return 'sticker'\n }\n\n /**\n * Source file type of the stickers in this set\n */\n get sourceType(): StickerSourceType {\n if (this.brief.animated) {\n return 'animated'\n }\n\n if (this.brief.videos) {\n return 'video'\n }\n\n return 'static'\n }\n\n /**\n * Date when this sticker set was installed\n */\n get installedDate(): Date | null {\n return this.brief.installedDate ? new Date(this.brief.installedDate * 1000) : null\n }\n\n /**\n * Number of stickers in this sticker set\n */\n get count(): number {\n return this.brief.count\n }\n\n /**\n * Input sticker set to be used in other API methods\n */\n get inputStickerSet(): tl.TypeInputStickerSet {\n return {\n _: 'inputStickerSetID',\n id: this.brief.id,\n accessHash: this.brief.accessHash,\n }\n }\n\n /**\n * Title of the sticker set\n */\n get title(): string {\n return this.brief.title\n }\n\n /**\n * Short name of sticker set to use in `tg://addstickers?set=short_name`\n * or `https://t.me/addstickers/short_name`\n */\n get shortName(): string {\n return this.brief.shortName\n }\n\n /**\n * List of stickers inside this sticker set\n *\n * @throws MtEmptyError\n * In case this object does not contain info about stickers (i.e. {@link isFull} = false)\n */\n get stickers(): ReadonlyArray<StickerInfo> {\n if (!this.isFull) throw new MtEmptyError()\n\n const stickers: StickerInfo[] = []\n const index = new LongMap<tl.Mutable<StickerInfo>>()\n\n this.full!.documents.forEach((doc) => {\n const sticker = parseDocument(doc as tl.RawDocument)\n\n if (!(sticker instanceof Sticker)) {\n throw new MtTypeAssertionError('full.documents', 'Sticker', sticker.mimeType)\n }\n\n const info: tl.Mutable<StickerInfo> = {\n alt: sticker.emoji,\n emoji: '', // populated later\n sticker,\n }\n stickers.push(info)\n index.set(doc.id, info)\n })\n\n this.full!.packs.forEach((pack) => {\n pack.documents.forEach((id) => {\n const item = index.get(id)\n\n if (item) {\n item.emoji += pack.emoticon\n }\n })\n })\n\n return stickers\n }\n\n /**\n * Available sticker set thumbnails.\n *\n * Returns empty array if not available\n * (i.e. first sticker should be used as thumbnail)\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n return this.brief.thumbs?.map((sz) => new Thumbnail(this.brief, sz)) ?? []\n }\n\n /**\n * Get a sticker set thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return this.thumbnails.find((it) => it.type === type) ?? null\n }\n\n /**\n * Find stickers given their emoji.\n *\n * @param emoji Emoji to search for\n * @throws MtEmptyError\n * In case this object does not contain info about stickers (i.e. {@link isFull} = false)\n */\n getStickersByEmoji(emoji: string): StickerInfo[] {\n return this.stickers.filter((it) => it.alt === emoji || it.emoji.includes(emoji))\n }\n\n private _getInputDocument(idx: number): tl.TypeInputDocument {\n if (!this.full) throw new MtEmptyError()\n\n if (idx < 0) idx = this.full.documents.length + idx\n const doc = this.full.documents[idx] as tl.RawDocument\n\n if (!doc) {\n throw new RangeError(`Sticker set does not have sticker ${idx}`)\n }\n\n return {\n _: 'inputDocument',\n id: doc.id,\n accessHash: doc.accessHash,\n fileReference: doc.fileReference,\n }\n }\n}\n\nmemoizeGetters(StickerSet, ['thumbnails', 'stickers'])\nmakeInspectable(StickerSet, ['isFull'])\n\nexport interface InputStickerSetItem {\n /**\n * File containing the sticker.\n *\n * For normal stickers: must be a `.png` or `.webp` file\n * up to 512kb, having both dimensions `<=512px`, and having\n * one of the dimensions `==512px`\n *\n * For animated stickers: must be a `.tgs` file\n * up to 64kb, having canvas dimensions exactly\n * `512x512`px, duration no more than 3 seconds\n * and animated at 60fps ([source](https://core.telegram.org/animated_stickers#technical-requirements))\n */\n file: InputFileLike\n\n /**\n * One or more emojis that represent this sticker\n */\n emojis: string\n\n /**\n * In case this is a mask sticker,\n * position of the mask\n */\n maskPosition?: MaskPosition\n}\n"]}
|
|
1
|
+
{"version":3,"file":"sticker-set.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/misc/sticker-set.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,wDAA+D;AAC/D,gEAAsD;AACtD,mDAAsD;AACtD,uDAAuD;AACvD,4CAA2C;AAE3C,kEAAyD;AACzD,gDAAoG;AAoCpG,SAAgB,wBAAwB,CAAC,KAAsB;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACH,CAAC,EAAE,0BAA0B;YAC7B,SAAS,EAAE,KAAK;SACnB,CAAA;IACL,CAAC;IACD,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IAC9B,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC,eAAe,CAAA;IAE7D,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAClB,OAAO;YACH,CAAC,EAAE,qBAAqB;YACxB,QAAQ,EAAE,KAAK,CAAC,IAAI;SACvB,CAAA;IACL,CAAC;IAED,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,UAAU;YACX,OAAO,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;QAChD,KAAK,qBAAqB;YACtB,OAAO,EAAE,CAAC,EAAE,wCAAwC,EAAE,CAAA;QAC1D,KAAK,eAAe;YAChB,OAAO,EAAE,CAAC,EAAE,6BAA6B,EAAE,CAAA;QAC/C,KAAK,oBAAoB;YACrB,OAAO,EAAE,CAAC,EAAE,uCAAuC,EAAE,CAAA;QACzD,KAAK,kBAAkB;YACnB,OAAO,EAAE,CAAC,EAAE,qCAAqC,EAAE,CAAA;QACvD,KAAK,qBAAqB;YACtB,OAAO,EAAE,CAAC,EAAE,uCAAuC,EAAE,CAAA;QACzD,KAAK,0BAA0B;YAC3B,OAAO,EAAE,CAAC,EAAE,4CAA4C,EAAE,CAAA;IAClE,CAAC;AACL,CAAC;AAjCD,4DAiCC;AAsBD,SAAS,mBAAmB,CAAC,GAAmB;IAC5C,MAAM,OAAO,GAAG,IAAA,gCAAY,EAAC,GAAG,CAAC,CAAA;IAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,gCAAoB,CAAC,gBAAgB,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;IAChF,CAAC;IAED,OAAO,OAAO,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAa,UAAU;IACV,KAAK,CAAkB;IACvB,IAAI,CAA4B;IAChC,KAAK,CAA2B;IAEzC;;OAEG;IACM,MAAM,CAAS;IAExB,YAAY,GAA8E;QACtF,IAAI,GAAG,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;YACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAA;QACxB,CAAC;aAAM,IAAI,GAAG,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;QACpB,CAAC;aAAM,IAAI,OAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;YAChB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAA;QACxB,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,gCAAoB,CAAC,YAAY,EAAE,kCAAkC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3F,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,qBAAqB,CAAA;IACjD,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAS,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAS,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAQ,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,OAAO,CAAA;QAClB,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAU,CAAA;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,OAAO,CAAA;QAClB,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtF,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACf,OAAO;YACH,CAAC,EAAE,mBAAmB;YACtB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;SACpC,CAAA;IACL,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;IAC/B,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAY,EAAE,CAAA;QAExC,MAAM,QAAQ,GAAkB,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,IAAI,uBAAO,EAA2B,CAAA;QAEpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAqB,CAAC,CAAA;YAE1D,MAAM,IAAI,GAA4B;gBAClC,GAAG,EAAE,OAAO,CAAC,KAAK;gBAClB,KAAK,EAAE,EAAE,EAAE,kBAAkB;gBAC7B,OAAO;aACV,CAAA;YACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACnB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAE1B,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAA;gBAC/B,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,4EAA4E;IAC5E,IAAI,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAE1B,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,KAAK,mBAAmB;gBACpB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAuB,CAAC,CAAC,CAAA;YACpE,KAAK,wBAAwB;gBACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAoB,CAAC,CAAC,CAAA;YACnF,KAAK,uBAAuB;gBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAoB,CAAC,CAAC,CAAA;YACtF,KAAK,qBAAqB;gBACtB,OAAO,EAAE,CAAA;QACjB,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,oBAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9E,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAA;IACjE,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACrF,CAAC;IAEO,iBAAiB,CAAC,GAAW;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAY,EAAE,CAAA;QAExC,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAA;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAmB,CAAA;QAEtD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,UAAU,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAA;QACpE,CAAC;QAED,OAAO;YACH,CAAC,EAAE,eAAe;YAClB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;SACnC,CAAA;IACL,CAAC;CACJ;AA9ND,gCA8NC;AAED,IAAA,2BAAc,EAAC,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;AACtD,IAAA,0BAAe,EAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { LongMap } from '../../../utils/long-utils.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MtEmptyError } from '../errors.js'\nimport { InputFileLike } from '../files/index.js'\nimport { parseSticker } from '../media/document-utils.js'\nimport { MaskPosition, Sticker, StickerSourceType, StickerType, Thumbnail } from '../media/index.js'\n\n/**\n * Input sticker set.\n * Can be one of:\n * - Raw TL object\n * - Sticker set short name\n * - {@link StickerSet} object\n * - `{ dice: \"<emoji>\" }` (e.g. `{ dice: \"🎲\" }`) - Used for fetching animated dice stickers\n * - `{ system: string }` - for system stickersets:\n * - `\"animated\"` - Animated emojis stickerset\n * - `\"animated_animations\"` - Animated emoji reaction stickerset\n * (contains animations to play when a user clicks on a given animated emoji)\n * - `\"premium_gifts\"` - Stickers to show when receiving a gifted Telegram Premium subscription,\n * - `\"generic_animations\"` - Generic animation stickerset containing animations to play\n * when reacting to messages using a normal emoji without a custom animation\n * - `\"default_statuses\"` - Default custom emoji status stickerset\n * - `\"default_topic_icons\"` - Default custom emoji stickerset for forum topic icons\n * - `\"default_channel_statuses\"` - Default custom emoji status stickerset for channels\n */\nexport type InputStickerSet =\n | tl.TypeInputStickerSet\n | { dice: string }\n | {\n system:\n | 'animated'\n | 'animated_animations'\n | 'premium_gifts'\n | 'generic_animations'\n | 'default_statuses'\n | 'default_topic_icons'\n | 'default_channel_statuses'\n }\n | StickerSet\n | string\n\nexport function normalizeInputStickerSet(input: InputStickerSet): tl.TypeInputStickerSet {\n if (typeof input === 'string') {\n return {\n _: 'inputStickerSetShortName',\n shortName: input,\n }\n }\n if ('_' in input) return input\n if (input instanceof StickerSet) return input.inputStickerSet\n\n if ('dice' in input) {\n return {\n _: 'inputStickerSetDice',\n emoticon: input.dice,\n }\n }\n\n switch (input.system) {\n case 'animated':\n return { _: 'inputStickerSetAnimatedEmoji' }\n case 'animated_animations':\n return { _: 'inputStickerSetAnimatedEmojiAnimations' }\n case 'premium_gifts':\n return { _: 'inputStickerSetPremiumGifts' }\n case 'generic_animations':\n return { _: 'inputStickerSetEmojiGenericAnimations' }\n case 'default_statuses':\n return { _: 'inputStickerSetEmojiDefaultStatuses' }\n case 'default_topic_icons':\n return { _: 'inputStickerSetEmojiDefaultTopicIcons' }\n case 'default_channel_statuses':\n return { _: 'inputStickerSetEmojiChannelDefaultStatuses' }\n }\n}\n\n/**\n * Information about one sticker inside the set\n */\nexport interface StickerInfo {\n /**\n * Primary alt emoji that is displayed in dialogs list\n */\n readonly alt: string\n\n /**\n * One or more emojis representing this sticker\n */\n readonly emoji: string\n\n /**\n * Document with the actual sticker\n */\n readonly sticker: Sticker\n}\n\nfunction parseStickerOrThrow(doc: tl.RawDocument): Sticker {\n const sticker = parseSticker(doc)\n\n if (!sticker) {\n throw new MtTypeAssertionError('full.documents', 'sticker', 'not a sticker')\n }\n\n return sticker\n}\n\n/**\n * A sticker set (aka sticker pack)\n */\nexport class StickerSet {\n readonly brief: tl.RawStickerSet\n readonly full?: tl.messages.RawStickerSet\n readonly cover?: tl.TypeStickerSetCovered\n\n /**\n * Whether this object contains information about stickers inside the set\n */\n readonly isFull: boolean\n\n constructor(raw: tl.TypeStickerSet | tl.messages.TypeStickerSet | tl.TypeStickerSetCovered) {\n if (raw._ === 'messages.stickerSet') {\n this.full = raw\n this.brief = raw.set\n } else if (raw._ === 'stickerSet') {\n this.brief = raw\n } else if (tl.isAnyStickerSetCovered(raw)) {\n this.cover = raw\n this.brief = raw.set\n } else {\n throw new MtTypeAssertionError('StickerSet', 'messages.stickerSet | stickerSet', raw._)\n }\n\n this.isFull = raw._ === 'messages.stickerSet'\n }\n\n /**\n * Whether this sticker set was archived\n * (due to too many saved stickers in the current account)\n */\n get isArchived(): boolean {\n return this.brief.archived!\n }\n\n /**\n * Whether this stickerset is official\n */\n get isOfficial(): boolean {\n return this.brief.official!\n }\n\n /**\n * Whether this sticker set was created by the current user\n */\n get isCreator(): boolean {\n return this.brief.creator!\n }\n\n /**\n * Type of the stickers in this set\n */\n get type(): StickerType {\n if (this.brief.masks) {\n return 'mask'\n }\n\n if (this.brief.emojis) {\n return 'emoji'\n }\n\n return 'sticker'\n }\n\n /**\n * Source file type of the stickers in this set\n */\n get sourceType(): StickerSourceType {\n if (this.brief.animated) {\n return 'animated'\n }\n\n if (this.brief.videos) {\n return 'video'\n }\n\n return 'static'\n }\n\n /**\n * Date when this sticker set was installed\n */\n get installedDate(): Date | null {\n return this.brief.installedDate ? new Date(this.brief.installedDate * 1000) : null\n }\n\n /**\n * Number of stickers in this sticker set\n */\n get count(): number {\n return this.brief.count\n }\n\n /**\n * Input sticker set to be used in other API methods\n */\n get inputStickerSet(): tl.TypeInputStickerSet {\n return {\n _: 'inputStickerSetID',\n id: this.brief.id,\n accessHash: this.brief.accessHash,\n }\n }\n\n /**\n * Title of the sticker set\n */\n get title(): string {\n return this.brief.title\n }\n\n /**\n * Short name of sticker set to use in `tg://addstickers?set=short_name`\n * or `https://t.me/addstickers/short_name`\n */\n get shortName(): string {\n return this.brief.shortName\n }\n\n /**\n * List of stickers inside this sticker set\n *\n * @throws MtEmptyError\n * In case this object does not contain info about stickers (i.e. {@link isFull} = false)\n */\n get stickers(): ReadonlyArray<StickerInfo> {\n if (!this.full) throw new MtEmptyError()\n\n const stickers: StickerInfo[] = []\n const index = new LongMap<tl.Mutable<StickerInfo>>()\n\n this.full.documents.forEach((doc) => {\n const sticker = parseStickerOrThrow(doc as tl.RawDocument)\n\n const info: tl.Mutable<StickerInfo> = {\n alt: sticker.emoji,\n emoji: '', // populated later\n sticker,\n }\n stickers.push(info)\n index.set(doc.id, info)\n })\n\n this.full.packs.forEach((pack) => {\n pack.documents.forEach((id) => {\n const item = index.get(id)\n\n if (item) {\n item.emoji += pack.emoticon\n }\n })\n })\n\n return stickers\n }\n\n /** Cover stickers of the sticker set. Not the same as {@link thumbnails} */\n get covers(): ReadonlyArray<Sticker> {\n if (!this.cover) return []\n\n switch (this.cover._) {\n case 'stickerSetCovered':\n return [parseStickerOrThrow(this.cover.cover as tl.RawDocument)]\n case 'stickerSetMultiCovered':\n return this.cover.covers.map((it) => parseStickerOrThrow(it as tl.RawDocument))\n case 'stickerSetFullCovered':\n return this.cover.documents.map((it) => parseStickerOrThrow(it as tl.RawDocument))\n case 'stickerSetNoCovered':\n return []\n }\n }\n\n /**\n * Available sticker set thumbnails.\n *\n * Returns empty array if not available\n * (i.e. first sticker should be used as thumbnail)\n */\n get thumbnails(): ReadonlyArray<Thumbnail> {\n return this.brief.thumbs?.map((sz) => new Thumbnail(this.brief, sz)) ?? []\n }\n\n /**\n * Get a sticker set thumbnail by its type.\n *\n * Thumbnail types are described in the\n * [Telegram docs](https://core.telegram.org/api/files#image-thumbnail-types),\n * and are also available as static members of {@link Thumbnail} for convenience.\n *\n * @param type Thumbnail type\n */\n getThumbnail(type: string): Thumbnail | null {\n return this.thumbnails.find((it) => it.type === type) ?? null\n }\n\n /**\n * Find stickers given their emoji.\n *\n * @param emoji Emoji to search for\n * @throws MtEmptyError\n * In case this object does not contain info about stickers (i.e. {@link isFull} = false)\n */\n getStickersByEmoji(emoji: string): StickerInfo[] {\n return this.stickers.filter((it) => it.alt === emoji || it.emoji.includes(emoji))\n }\n\n private _getInputDocument(idx: number): tl.TypeInputDocument {\n if (!this.full) throw new MtEmptyError()\n\n if (idx < 0) idx = this.full.documents.length + idx\n const doc = this.full.documents[idx] as tl.RawDocument\n\n if (!doc) {\n throw new RangeError(`Sticker set does not have sticker ${idx}`)\n }\n\n return {\n _: 'inputDocument',\n id: doc.id,\n accessHash: doc.accessHash,\n fileReference: doc.fileReference,\n }\n }\n}\n\nmemoizeGetters(StickerSet, ['thumbnails', 'stickers'])\nmakeInspectable(StickerSet, ['isFull'])\n\nexport interface InputStickerSetItem {\n /**\n * File containing the sticker.\n *\n * For normal stickers: must be a `.png` or `.webp` file\n * up to 512kb, having both dimensions `<=512px`, and having\n * one of the dimensions `==512px`\n *\n * For animated stickers: must be a `.tgs` file\n * up to 64kb, having canvas dimensions exactly\n * `512x512`px, duration no more than 3 seconds\n * and animated at 60fps ([source](https://core.telegram.org/animated_stickers#technical-requirements))\n */\n file: InputFileLike\n\n /**\n * One or more emojis that represent this sticker\n */\n emojis: string\n\n /**\n * In case this is a mask sticker,\n * position of the mask\n */\n maskPosition?: MaskPosition\n}\n"]}
|
|
@@ -6,6 +6,7 @@ import { ChatLocation } from '../chat-location.js';
|
|
|
6
6
|
import { ChatMember } from '../chat-member.js';
|
|
7
7
|
import { ChatPermissions } from '../chat-permissions.js';
|
|
8
8
|
import { ForumTopic } from '../forum-topic.js';
|
|
9
|
+
import { PeersIndex } from '../peers-index.js';
|
|
9
10
|
import { User } from '../user.js';
|
|
10
11
|
/** A user has joined the channel (in the case of big groups, info of the user that has joined isn't shown) */
|
|
11
12
|
export interface ChatActionUserJoined {
|
|
@@ -261,3 +262,5 @@ export interface ChatActionTopicDeleted {
|
|
|
261
262
|
}
|
|
262
263
|
/** Chat event action (`null` if unsupported) */
|
|
263
264
|
export type ChatAction = ChatActionUserJoined | ChatActionUserLeft | ChatActionUserInvited | ChatActionTitleChanged | ChatActionDescriptionChanged | ChatActionUsernameChanged | ChatActionUsernamesChanged | ChatActionPhotoChanged | ChatActionInvitesToggled | ChatActionSignaturesToggled | ChatActionMessagePinned | ChatActionMessageEdited | ChatActionMessageDeleted | ChatActionUserPermissionsChanged | ChatActionUserAdminPermissionsChanged | ChatActionStickersetChanged | ChatActionHistoryToggled | ChatActionDefaultPermissionsChanged | ChatActionPollStopped | ChatActionLinkedChatChanged | ChatActionLocationChanged | ChatActionSlowModeChanged | ChatActionCallStarted | ChatActionCallEnded | ChatActionCallSettingChanged | ChatActionUserJoinedInvite | ChatActionInviteLinkDeleted | ChatActionInviteLinkEdited | ChatActionInviteLinkRevoked | ChatActionUserJoinedApproved | ChatActionTtlChanged | ChatActionNoForwardsToggled | ChatActionForumToggled | ChatActionTopicCreated | ChatActionTopicEdited | ChatActionTopicDeleted | null;
|
|
265
|
+
/** @internal */
|
|
266
|
+
export declare function _actionFromTl(e: tl.TypeChannelAdminLogEventAction, peers: PeersIndex): ChatAction;
|
|
@@ -6,3 +6,5 @@ export interface ChatEventFilters {
|
|
|
6
6
|
localFilter?: Record<string, true>;
|
|
7
7
|
}
|
|
8
8
|
export type InputChatEventFilters = ChatEventFilters | tl.TypeChannelAdminLogEventsFilter | MaybeArray<Exclude<ChatAction, null>['type']> | undefined;
|
|
9
|
+
/** @internal */
|
|
10
|
+
export declare function normalizeChatEventFilters(input: InputChatEventFilters): ChatEventFilters;
|