@mtcute/core 0.11.0 → 0.12.1
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 +2 -2
- package/cjs/network/client.js +9 -1
- package/cjs/network/client.js.map +1 -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 +11 -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 +2 -2
- package/esm/network/client.js +9 -1
- package/esm/network/client.js.map +1 -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 +11 -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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { tl } from '@mtcute/tl';
|
|
2
|
+
import { Photo } from '../media/photo.js';
|
|
3
|
+
import { StickerSet } from '../misc/sticker-set.js';
|
|
4
|
+
import { BusinessAccount } from '../premium/business-account.js';
|
|
5
|
+
import { Chat } from './chat.js';
|
|
6
|
+
import { ChatInviteLink } from './chat-invite-link.js';
|
|
7
|
+
import { ChatLocation } from './chat-location.js';
|
|
8
|
+
/**
|
|
9
|
+
* Complete information about a particular chat.
|
|
10
|
+
*/
|
|
11
|
+
export declare class FullChat extends Chat {
|
|
12
|
+
readonly fullPeer: tl.TypeUserFull | tl.TypeChatFull;
|
|
13
|
+
constructor(peer: tl.TypeUser | tl.TypeChat, fullPeer: tl.TypeUserFull | tl.TypeChatFull);
|
|
14
|
+
/** @internal */
|
|
15
|
+
static _parse(full: tl.messages.RawChatFull | tl.users.TypeUserFull): FullChat;
|
|
16
|
+
/**
|
|
17
|
+
* Whether this chat (user) has restricted sending them voice/video messages.
|
|
18
|
+
*/
|
|
19
|
+
get hasBlockedVoices(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Full information about this chat's photo, if any.
|
|
22
|
+
*
|
|
23
|
+
* Unlike {@link Chat.photo}, this field contains additional information
|
|
24
|
+
* about the photo, such as its date, more sizes, and is the only
|
|
25
|
+
* way to get the animated profile photo.
|
|
26
|
+
*
|
|
27
|
+
* This field takes into account any personal/fallback photo
|
|
28
|
+
* that the user may have set
|
|
29
|
+
*/
|
|
30
|
+
get fullPhoto(): Photo | null;
|
|
31
|
+
/**
|
|
32
|
+
* A custom photo (set by the current user) that should be displayed
|
|
33
|
+
* instead of the actual chat photo.
|
|
34
|
+
*
|
|
35
|
+
* Currently only available for users.
|
|
36
|
+
*/
|
|
37
|
+
get personalPhoto(): Photo | null;
|
|
38
|
+
/**
|
|
39
|
+
* Actual profile photo of the user, bypassing the custom one.
|
|
40
|
+
*/
|
|
41
|
+
get realPhoto(): Photo | null;
|
|
42
|
+
/**
|
|
43
|
+
* A photo that the user has set to be shown
|
|
44
|
+
* in case their actual profile photo is not available
|
|
45
|
+
* due to privacy settings.
|
|
46
|
+
*
|
|
47
|
+
* Currently only available for users.
|
|
48
|
+
*/
|
|
49
|
+
get publicPhoto(): Photo | null;
|
|
50
|
+
/**
|
|
51
|
+
* Bio of the other party in a private chat, or description of a
|
|
52
|
+
* group, supergroup or channel.
|
|
53
|
+
*/
|
|
54
|
+
get bio(): string | null;
|
|
55
|
+
/**
|
|
56
|
+
* Chat's primary invite link, for groups, supergroups and channels.
|
|
57
|
+
*/
|
|
58
|
+
get inviteLink(): ChatInviteLink | null;
|
|
59
|
+
/**
|
|
60
|
+
* For supergroups, information about the group sticker set.
|
|
61
|
+
*/
|
|
62
|
+
get stickerSet(): StickerSet | null;
|
|
63
|
+
/**
|
|
64
|
+
* For supergroups, information about the group emoji set.
|
|
65
|
+
*/
|
|
66
|
+
get emojiSet(): StickerSet | null;
|
|
67
|
+
/**
|
|
68
|
+
* Whether the group sticker set can be changed by you.
|
|
69
|
+
*/
|
|
70
|
+
get canSetStickerSet(): boolean | null;
|
|
71
|
+
/**
|
|
72
|
+
* Number of boosts applied by the current user to this chat.
|
|
73
|
+
*/
|
|
74
|
+
get boostsApplied(): number;
|
|
75
|
+
/**
|
|
76
|
+
* Number of boosts required for the user to be unrestricted in this chat.
|
|
77
|
+
*/
|
|
78
|
+
get boostsForUnrestrict(): number;
|
|
79
|
+
/**
|
|
80
|
+
* Chat members count, for groups, supergroups and channels only.
|
|
81
|
+
*/
|
|
82
|
+
get membersCount(): number | null;
|
|
83
|
+
/**
|
|
84
|
+
* Location of the chat.
|
|
85
|
+
*/
|
|
86
|
+
get location(): ChatLocation | null;
|
|
87
|
+
private _linkedChat?;
|
|
88
|
+
/**
|
|
89
|
+
* Information about a linked chat:
|
|
90
|
+
* - for channels: the discussion group
|
|
91
|
+
* - for supergroups: the linked channel
|
|
92
|
+
* - for users: the personal channel
|
|
93
|
+
*/
|
|
94
|
+
get linkedChat(): Chat | null;
|
|
95
|
+
/**
|
|
96
|
+
* TTL of all messages in this chat, in seconds
|
|
97
|
+
*/
|
|
98
|
+
get ttlPeriod(): number | null;
|
|
99
|
+
/**
|
|
100
|
+
* If this is a business account, information about the business.
|
|
101
|
+
*/
|
|
102
|
+
get business(): BusinessAccount | null;
|
|
103
|
+
}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FullChat = void 0;
|
|
4
|
+
const errors_js_1 = require("../../../types/errors.js");
|
|
5
|
+
const inspectable_js_1 = require("../../utils/inspectable.js");
|
|
6
|
+
const memoize_js_1 = require("../../utils/memoize.js");
|
|
7
|
+
const photo_js_1 = require("../media/photo.js");
|
|
8
|
+
const sticker_set_js_1 = require("../misc/sticker-set.js");
|
|
9
|
+
const business_account_js_1 = require("../premium/business-account.js");
|
|
10
|
+
const chat_js_1 = require("./chat.js");
|
|
11
|
+
const chat_invite_link_js_1 = require("./chat-invite-link.js");
|
|
12
|
+
const chat_location_js_1 = require("./chat-location.js");
|
|
13
|
+
const peers_index_js_1 = require("./peers-index.js");
|
|
14
|
+
/**
|
|
15
|
+
* Complete information about a particular chat.
|
|
16
|
+
*/
|
|
17
|
+
class FullChat extends chat_js_1.Chat {
|
|
18
|
+
fullPeer;
|
|
19
|
+
constructor(peer, fullPeer) {
|
|
20
|
+
super(peer);
|
|
21
|
+
this.fullPeer = fullPeer;
|
|
22
|
+
}
|
|
23
|
+
/** @internal */
|
|
24
|
+
static _parse(full) {
|
|
25
|
+
const peers = peers_index_js_1.PeersIndex.from(full);
|
|
26
|
+
if (full._ === 'users.userFull') {
|
|
27
|
+
const { fullUser } = full;
|
|
28
|
+
const user = peers.user(full.fullUser.id);
|
|
29
|
+
if (!user || user._ === 'userEmpty') {
|
|
30
|
+
throw new errors_js_1.MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined');
|
|
31
|
+
}
|
|
32
|
+
const ret = new FullChat(user, fullUser);
|
|
33
|
+
if (fullUser.personalChannelId) {
|
|
34
|
+
ret._linkedChat = new chat_js_1.Chat(peers.chat(fullUser.personalChannelId));
|
|
35
|
+
}
|
|
36
|
+
return ret;
|
|
37
|
+
}
|
|
38
|
+
const { fullChat } = full;
|
|
39
|
+
const ret = new FullChat(peers.chat(fullChat.id), fullChat);
|
|
40
|
+
if (fullChat._ === 'channelFull' && fullChat.linkedChatId) {
|
|
41
|
+
ret._linkedChat = new chat_js_1.Chat(peers.chat(fullChat.linkedChatId));
|
|
42
|
+
}
|
|
43
|
+
return ret;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Whether this chat (user) has restricted sending them voice/video messages.
|
|
47
|
+
*/
|
|
48
|
+
get hasBlockedVoices() {
|
|
49
|
+
return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Full information about this chat's photo, if any.
|
|
53
|
+
*
|
|
54
|
+
* Unlike {@link Chat.photo}, this field contains additional information
|
|
55
|
+
* about the photo, such as its date, more sizes, and is the only
|
|
56
|
+
* way to get the animated profile photo.
|
|
57
|
+
*
|
|
58
|
+
* This field takes into account any personal/fallback photo
|
|
59
|
+
* that the user may have set
|
|
60
|
+
*/
|
|
61
|
+
get fullPhoto() {
|
|
62
|
+
if (!this.fullPeer)
|
|
63
|
+
return null;
|
|
64
|
+
let photo = undefined;
|
|
65
|
+
switch (this.fullPeer._) {
|
|
66
|
+
case 'userFull':
|
|
67
|
+
photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto;
|
|
68
|
+
break;
|
|
69
|
+
case 'chatFull':
|
|
70
|
+
case 'channelFull':
|
|
71
|
+
photo = this.fullPeer.chatPhoto;
|
|
72
|
+
}
|
|
73
|
+
if (photo?._ !== 'photo')
|
|
74
|
+
return null;
|
|
75
|
+
return new photo_js_1.Photo(photo);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A custom photo (set by the current user) that should be displayed
|
|
79
|
+
* instead of the actual chat photo.
|
|
80
|
+
*
|
|
81
|
+
* Currently only available for users.
|
|
82
|
+
*/
|
|
83
|
+
get personalPhoto() {
|
|
84
|
+
if (!this.fullPeer || this.fullPeer._ !== 'userFull')
|
|
85
|
+
return null;
|
|
86
|
+
if (this.fullPeer.personalPhoto?._ !== 'photo')
|
|
87
|
+
return null;
|
|
88
|
+
return new photo_js_1.Photo(this.fullPeer.personalPhoto);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Actual profile photo of the user, bypassing the custom one.
|
|
92
|
+
*/
|
|
93
|
+
get realPhoto() {
|
|
94
|
+
if (!this.fullPeer)
|
|
95
|
+
return null;
|
|
96
|
+
if (this.fullPeer._ !== 'userFull')
|
|
97
|
+
return this.fullPhoto;
|
|
98
|
+
if (this.fullPeer.personalPhoto?._ !== 'photo')
|
|
99
|
+
return null;
|
|
100
|
+
return new photo_js_1.Photo(this.fullPeer.personalPhoto);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A photo that the user has set to be shown
|
|
104
|
+
* in case their actual profile photo is not available
|
|
105
|
+
* due to privacy settings.
|
|
106
|
+
*
|
|
107
|
+
* Currently only available for users.
|
|
108
|
+
*/
|
|
109
|
+
get publicPhoto() {
|
|
110
|
+
if (!this.fullPeer || this.fullPeer._ !== 'userFull')
|
|
111
|
+
return null;
|
|
112
|
+
if (this.fullPeer.fallbackPhoto?._ !== 'photo')
|
|
113
|
+
return null;
|
|
114
|
+
return new photo_js_1.Photo(this.fullPeer.fallbackPhoto);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Bio of the other party in a private chat, or description of a
|
|
118
|
+
* group, supergroup or channel.
|
|
119
|
+
*/
|
|
120
|
+
get bio() {
|
|
121
|
+
return this.fullPeer?.about ?? null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Chat's primary invite link, for groups, supergroups and channels.
|
|
125
|
+
*/
|
|
126
|
+
get inviteLink() {
|
|
127
|
+
if (this.fullPeer && this.fullPeer._ !== 'userFull') {
|
|
128
|
+
switch (this.fullPeer.exportedInvite?._) {
|
|
129
|
+
case 'chatInvitePublicJoinRequests':
|
|
130
|
+
return null;
|
|
131
|
+
case 'chatInviteExported':
|
|
132
|
+
return new chat_invite_link_js_1.ChatInviteLink(this.fullPeer.exportedInvite);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* For supergroups, information about the group sticker set.
|
|
139
|
+
*/
|
|
140
|
+
get stickerSet() {
|
|
141
|
+
if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.stickerset)
|
|
142
|
+
return null;
|
|
143
|
+
return new sticker_set_js_1.StickerSet(this.fullPeer.stickerset);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* For supergroups, information about the group emoji set.
|
|
147
|
+
*/
|
|
148
|
+
get emojiSet() {
|
|
149
|
+
if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.emojiset)
|
|
150
|
+
return null;
|
|
151
|
+
return new sticker_set_js_1.StickerSet(this.fullPeer.emojiset);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Whether the group sticker set can be changed by you.
|
|
155
|
+
*/
|
|
156
|
+
get canSetStickerSet() {
|
|
157
|
+
return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Number of boosts applied by the current user to this chat.
|
|
161
|
+
*/
|
|
162
|
+
get boostsApplied() {
|
|
163
|
+
if (!this.fullPeer || this.fullPeer._ !== 'channelFull')
|
|
164
|
+
return 0;
|
|
165
|
+
return this.fullPeer?.boostsApplied ?? 0;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Number of boosts required for the user to be unrestricted in this chat.
|
|
169
|
+
*/
|
|
170
|
+
get boostsForUnrestrict() {
|
|
171
|
+
if (!this.fullPeer || this.fullPeer._ !== 'channelFull')
|
|
172
|
+
return 0;
|
|
173
|
+
return this.fullPeer?.boostsUnrestrict ?? 0;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Chat members count, for groups, supergroups and channels only.
|
|
177
|
+
*/
|
|
178
|
+
get membersCount() {
|
|
179
|
+
switch (this.fullPeer._) {
|
|
180
|
+
case 'userFull':
|
|
181
|
+
return null;
|
|
182
|
+
case 'chatFull':
|
|
183
|
+
if (this.fullPeer.participants._ !== 'chatParticipants') {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
return this.fullPeer.participants.participants.length;
|
|
187
|
+
case 'channelFull':
|
|
188
|
+
return this.fullPeer.participantsCount ?? null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Location of the chat.
|
|
193
|
+
*/
|
|
194
|
+
get location() {
|
|
195
|
+
if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
return new chat_location_js_1.ChatLocation(this.fullPeer.location);
|
|
199
|
+
}
|
|
200
|
+
_linkedChat;
|
|
201
|
+
/**
|
|
202
|
+
* Information about a linked chat:
|
|
203
|
+
* - for channels: the discussion group
|
|
204
|
+
* - for supergroups: the linked channel
|
|
205
|
+
* - for users: the personal channel
|
|
206
|
+
*/
|
|
207
|
+
get linkedChat() {
|
|
208
|
+
return this._linkedChat ?? null;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* TTL of all messages in this chat, in seconds
|
|
212
|
+
*/
|
|
213
|
+
get ttlPeriod() {
|
|
214
|
+
return this.fullPeer?.ttlPeriod ?? null;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* If this is a business account, information about the business.
|
|
218
|
+
*/
|
|
219
|
+
get business() {
|
|
220
|
+
if (!this.fullPeer || this.fullPeer._ !== 'userFull')
|
|
221
|
+
return null;
|
|
222
|
+
return new business_account_js_1.BusinessAccount(this.fullPeer);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
exports.FullChat = FullChat;
|
|
226
|
+
(0, memoize_js_1.memoizeGetters)(FullChat, [
|
|
227
|
+
'fullPhoto',
|
|
228
|
+
'personalPhoto',
|
|
229
|
+
'realPhoto',
|
|
230
|
+
'publicPhoto',
|
|
231
|
+
'location',
|
|
232
|
+
'stickerSet',
|
|
233
|
+
'emojiSet',
|
|
234
|
+
'business',
|
|
235
|
+
]);
|
|
236
|
+
(0, inspectable_js_1.makeInspectable)(FullChat);
|
|
237
|
+
//# sourceMappingURL=full-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"full-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/full-chat.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { Photo } from '../media/photo.js'\nimport { StickerSet } from '../misc/sticker-set.js'\nimport { BusinessAccount } from '../premium/business-account.js'\nimport { Chat } from './chat.js'\nimport { ChatInviteLink } from './chat-invite-link.js'\nimport { ChatLocation } from './chat-location.js'\nimport { PeersIndex } from './peers-index.js'\n\n/**\n * Complete information about a particular chat.\n */\nexport class FullChat extends Chat {\n constructor(\n peer: tl.TypeUser | tl.TypeChat,\n readonly fullPeer: tl.TypeUserFull | tl.TypeChatFull,\n ) {\n super(peer)\n }\n\n /** @internal */\n static _parse(full: tl.messages.RawChatFull | tl.users.TypeUserFull): FullChat {\n const peers = PeersIndex.from(full)\n\n if (full._ === 'users.userFull') {\n const { fullUser } = full\n const user = peers.user(full.fullUser.id)\n\n if (!user || user._ === 'userEmpty') {\n throw new MtTypeAssertionError('Chat._parseFull', 'user', user?._ ?? 'undefined')\n }\n\n const ret = new FullChat(user, fullUser)\n\n if (fullUser.personalChannelId) {\n ret._linkedChat = new Chat(peers.chat(fullUser.personalChannelId))\n }\n\n return ret\n }\n\n const { fullChat } = full\n\n const ret = new FullChat(peers.chat(fullChat.id), fullChat)\n\n if (fullChat._ === 'channelFull' && fullChat.linkedChatId) {\n ret._linkedChat = new Chat(peers.chat(fullChat.linkedChatId))\n }\n\n return ret\n }\n\n /**\n * Whether this chat (user) has restricted sending them voice/video messages.\n */\n get hasBlockedVoices(): boolean {\n return this.fullPeer?._ === 'userFull' && this.fullPeer.voiceMessagesForbidden!\n }\n\n /**\n * Full information about this chat's photo, if any.\n *\n * Unlike {@link Chat.photo}, this field contains additional information\n * about the photo, such as its date, more sizes, and is the only\n * way to get the animated profile photo.\n *\n * This field takes into account any personal/fallback photo\n * that the user may have set\n */\n get fullPhoto(): Photo | null {\n if (!this.fullPeer) return null\n\n let photo: tl.TypePhoto | undefined = undefined\n\n switch (this.fullPeer._) {\n case 'userFull':\n photo = this.fullPeer.personalPhoto ?? this.fullPeer.profilePhoto ?? this.fullPeer.fallbackPhoto\n break\n case 'chatFull':\n case 'channelFull':\n photo = this.fullPeer.chatPhoto\n }\n\n if (photo?._ !== 'photo') return null\n\n return new Photo(photo)\n }\n\n /**\n * A custom photo (set by the current user) that should be displayed\n * instead of the actual chat photo.\n *\n * Currently only available for users.\n */\n get personalPhoto(): Photo | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n if (this.fullPeer.personalPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.personalPhoto)\n }\n\n /**\n * Actual profile photo of the user, bypassing the custom one.\n */\n get realPhoto(): Photo | null {\n if (!this.fullPeer) return null\n if (this.fullPeer._ !== 'userFull') return this.fullPhoto\n if (this.fullPeer.personalPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.personalPhoto)\n }\n\n /**\n * A photo that the user has set to be shown\n * in case their actual profile photo is not available\n * due to privacy settings.\n *\n * Currently only available for users.\n */\n get publicPhoto(): Photo | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n if (this.fullPeer.fallbackPhoto?._ !== 'photo') return null\n\n return new Photo(this.fullPeer.fallbackPhoto)\n }\n\n /**\n * Bio of the other party in a private chat, or description of a\n * group, supergroup or channel.\n */\n get bio(): string | null {\n return this.fullPeer?.about ?? null\n }\n\n /**\n * Chat's primary invite link, for groups, supergroups and channels.\n */\n get inviteLink(): ChatInviteLink | null {\n if (this.fullPeer && this.fullPeer._ !== 'userFull') {\n switch (this.fullPeer.exportedInvite?._) {\n case 'chatInvitePublicJoinRequests':\n return null\n case 'chatInviteExported':\n return new ChatInviteLink(this.fullPeer.exportedInvite)\n }\n }\n\n return null\n }\n\n /**\n * For supergroups, information about the group sticker set.\n */\n get stickerSet(): StickerSet | null {\n if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.stickerset) return null\n\n return new StickerSet(this.fullPeer.stickerset)\n }\n\n /**\n * For supergroups, information about the group emoji set.\n */\n get emojiSet(): StickerSet | null {\n if (this.fullPeer?._ !== 'channelFull' || !this.fullPeer.emojiset) return null\n\n return new StickerSet(this.fullPeer.emojiset)\n }\n\n /**\n * Whether the group sticker set can be changed by you.\n */\n get canSetStickerSet(): boolean | null {\n return this.fullPeer && this.fullPeer._ === 'channelFull' ? this.fullPeer.canSetStickers ?? null : null\n }\n\n /**\n * Number of boosts applied by the current user to this chat.\n */\n get boostsApplied(): number {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull') return 0\n\n return this.fullPeer?.boostsApplied ?? 0\n }\n\n /**\n * Number of boosts required for the user to be unrestricted in this chat.\n */\n get boostsForUnrestrict(): number {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull') return 0\n\n return this.fullPeer?.boostsUnrestrict ?? 0\n }\n\n /**\n * Chat members count, for groups, supergroups and channels only.\n */\n get membersCount(): number | null {\n switch (this.fullPeer._) {\n case 'userFull':\n return null\n case 'chatFull':\n if (this.fullPeer.participants._ !== 'chatParticipants') {\n return null\n }\n\n return this.fullPeer.participants.participants.length\n case 'channelFull':\n return this.fullPeer.participantsCount ?? null\n }\n }\n\n /**\n * Location of the chat.\n */\n get location(): ChatLocation | null {\n if (!this.fullPeer || this.fullPeer._ !== 'channelFull' || this.fullPeer.location?._ !== 'channelLocation') {\n return null\n }\n\n return new ChatLocation(this.fullPeer.location)\n }\n\n private _linkedChat?: Chat\n /**\n * Information about a linked chat:\n * - for channels: the discussion group\n * - for supergroups: the linked channel\n * - for users: the personal channel\n */\n get linkedChat(): Chat | null {\n return this._linkedChat ?? null\n }\n\n /**\n * TTL of all messages in this chat, in seconds\n */\n get ttlPeriod(): number | null {\n return this.fullPeer?.ttlPeriod ?? null\n }\n\n /**\n * If this is a business account, information about the business.\n */\n get business(): BusinessAccount | null {\n if (!this.fullPeer || this.fullPeer._ !== 'userFull') return null\n\n return new BusinessAccount(this.fullPeer)\n }\n}\n\nmemoizeGetters(FullChat, [\n 'fullPhoto',\n 'personalPhoto',\n 'realPhoto',\n 'publicPhoto',\n 'location',\n 'stickerSet',\n 'emojiSet',\n 'business',\n])\nmakeInspectable(FullChat)\n"]}
|
|
@@ -8,6 +8,7 @@ export * from './chat-permissions.js';
|
|
|
8
8
|
export * from './chat-photo.js';
|
|
9
9
|
export * from './chat-preview.js';
|
|
10
10
|
export * from './forum-topic.js';
|
|
11
|
+
export * from './full-chat.js';
|
|
11
12
|
export * from './peer.js';
|
|
12
13
|
export * from './peers-index.js';
|
|
13
14
|
export * from './typing-status.js';
|
|
@@ -24,6 +24,7 @@ __exportStar(require("./chat-permissions.js"), exports);
|
|
|
24
24
|
__exportStar(require("./chat-photo.js"), exports);
|
|
25
25
|
__exportStar(require("./chat-preview.js"), exports);
|
|
26
26
|
__exportStar(require("./forum-topic.js"), exports);
|
|
27
|
+
__exportStar(require("./full-chat.js"), exports);
|
|
27
28
|
__exportStar(require("./peer.js"), exports);
|
|
28
29
|
__exportStar(require("./peers-index.js"), exports);
|
|
29
30
|
__exportStar(require("./typing-status.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,wDAAqC;AACrC,wDAAqC;AACrC,+DAA4C;AAC5C,qDAAkC;AAClC,mDAAgC;AAChC,wDAAqC;AACrC,kDAA+B;AAC/B,oDAAiC;AACjC,mDAAgC;AAChC,4CAAyB;AACzB,mDAAgC;AAChC,qDAAkC;AAClC,4CAAyB","sourcesContent":["export * from './chat.js'\nexport * from './chat-event/index.js'\nexport * from './chat-invite-link.js'\nexport * from './chat-invite-link-member.js'\nexport * from './chat-location.js'\nexport * from './chat-member.js'\nexport * from './chat-permissions.js'\nexport * from './chat-photo.js'\nexport * from './chat-preview.js'\nexport * from './forum-topic.js'\nexport * from './peer.js'\nexport * from './peers-index.js'\nexport * from './typing-status.js'\nexport * from './user.js'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,wDAAqC;AACrC,wDAAqC;AACrC,+DAA4C;AAC5C,qDAAkC;AAClC,mDAAgC;AAChC,wDAAqC;AACrC,kDAA+B;AAC/B,oDAAiC;AACjC,mDAAgC;AAChC,iDAA8B;AAC9B,4CAAyB;AACzB,mDAAgC;AAChC,qDAAkC;AAClC,4CAAyB","sourcesContent":["export * from './chat.js'\nexport * from './chat-event/index.js'\nexport * from './chat-invite-link.js'\nexport * from './chat-invite-link-member.js'\nexport * from './chat-location.js'\nexport * from './chat-member.js'\nexport * from './chat-permissions.js'\nexport * from './chat-photo.js'\nexport * from './chat-preview.js'\nexport * from './forum-topic.js'\nexport * from './full-chat.js'\nexport * from './peer.js'\nexport * from './peers-index.js'\nexport * from './typing-status.js'\nexport * from './user.js'\n"]}
|
|
@@ -69,6 +69,11 @@ export declare class User {
|
|
|
69
69
|
get isDeleted(): boolean;
|
|
70
70
|
/** Whether this user is a bot */
|
|
71
71
|
get isBot(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Whether this user is a bot that can be connected to a
|
|
74
|
+
* Telegram Business account to receive its messages
|
|
75
|
+
*/
|
|
76
|
+
get isBusinessBot(): boolean;
|
|
72
77
|
/** Whether this user is a bot that has access to all messages */
|
|
73
78
|
get isBotWithHistory(): boolean;
|
|
74
79
|
/** Whether this user is a bot that can't be added to chats */
|
|
@@ -76,6 +76,13 @@ class User {
|
|
|
76
76
|
get isBot() {
|
|
77
77
|
return this.raw.bot;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Whether this user is a bot that can be connected to a
|
|
81
|
+
* Telegram Business account to receive its messages
|
|
82
|
+
*/
|
|
83
|
+
get isBusinessBot() {
|
|
84
|
+
return this.raw.botBusiness;
|
|
85
|
+
}
|
|
79
86
|
/** Whether this user is a bot that has access to all messages */
|
|
80
87
|
get isBotWithHistory() {
|
|
81
88
|
return this.raw.botChatHistory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/peers/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { makeInspectable } from '../../utils/index.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { MessageEntity } from '../messages/message-entity.js'\nimport { EmojiStatus } from '../reactions/emoji-status.js'\nimport { ChatColors } from './chat-colors.js'\nimport { ChatPhoto } from './chat-photo.js'\n\n/**\n * User's Last Seen & Online status.\n * Can be one of the following:\n * - `online`, user is online right now.\n * - `offline`, user is currently offline.\n * - `recently`, user with hidden last seen time who was online between 1 second and 72 hours ago.\n * - `within_week`, user with hidden last seen time who was online between 72 hours and 7 days ago.\n * - `within_month`, user with hidden last seen time who was online between 7 days and a month ago.\n * - `long_time_ago`, blocked user or user with hidden last seen time who was online more than a month ago.\n * - `bot`, for bots.\n */\nexport type UserStatus = 'online' | 'offline' | 'recently' | 'within_week' | 'within_month' | 'long_time_ago' | 'bot'\n\nexport interface UserParsedStatus {\n status: UserStatus\n lastOnline: Date | null\n nextOffline: Date | null\n byMe: boolean\n}\n\nexport class User {\n readonly type = 'user' as const\n\n /**\n * Underlying raw TL object\n */\n readonly raw: tl.RawUser\n\n constructor(user: tl.TypeUser) {\n assertTypeIs('User#init', user, 'user')\n\n this.raw = user\n }\n\n /** Unique identifier for this user or bot */\n get id(): number {\n return this.raw.id\n }\n\n /**\n * Whether this user's information is incomplete.\n *\n * This usually only happens in large chats, where\n * the server sometimes sends only a part of the user's\n * information. Basic info like name and profile photo\n * are always available, but other fields may be omitted\n * despite being available.\n *\n * It was observed that these fields may be missing:\n * - `username, usernames`\n * - `status, lastOnline, nextOffline`\n * - `storiesMaxId`\n * - `photo` - in some cases when user has some some privacy settings\n * - and probably more\n *\n * This currently only ever happens for non-bot users, so if you are building\n * a normal bot, you can safely ignore this field.\n *\n * To fetch the \"complete\" user information, use one of these methods:\n * - {@link TelegramClient.getUsers}\n * - {@link TelegramClient.getChat}\n * - {@link TelegramClient.getFullChat}.\n *\n * Learn more: [Incomplete peers](https://mtcute.dev/guide/topics/peers.html#incomplete-peers)\n */\n get isMin(): boolean {\n return this.raw.min!\n }\n\n /** Whether this user is you yourself */\n get isSelf(): boolean {\n return this.raw.self!\n }\n\n /** Whether this user is in your contacts */\n get isContact(): boolean {\n return this.raw.contact!\n }\n\n /** Whether you both have each other's contact */\n get isMutualContact(): boolean {\n return this.raw.mutualContact!\n }\n\n /** Whether this user is in yout \"close friends\" list */\n get isCloseFriend(): boolean {\n return this.raw.closeFriend!\n }\n\n /** Whether this user is deleted */\n get isDeleted(): boolean {\n return this.raw.deleted!\n }\n\n /** Whether this user is a bot */\n get isBot(): boolean {\n return this.raw.bot!\n }\n\n /**\n * Whether this user is a bot that can be connected to a\n * Telegram Business account to receive its messages\n */\n get isBusinessBot(): boolean {\n return this.raw.botBusiness!\n }\n\n /** Whether this user is a bot that has access to all messages */\n get isBotWithHistory(): boolean {\n return this.raw.botChatHistory!\n }\n\n /** Whether this user is a bot that can't be added to chats */\n get isBotWithoutChats(): boolean {\n return this.raw.botNochats!\n }\n\n /** Whether this bot offers an attachment menu web app */\n get isBotWithAttachmentMenu(): boolean {\n return this.raw.botAttachMenu!\n }\n\n /** Whether this bot can be edited by the current user */\n get isBotEditable(): boolean {\n return this.raw.botCanEdit!\n }\n\n /** Whether this user has been verified by Telegram */\n get isVerified(): boolean {\n return this.raw.verified!\n }\n\n /**\n * Whether this user has been restricted. Bots only.\n * See {@link restrictionReason} for details\n */\n get isRestricted(): boolean {\n return this.raw.restricted!\n }\n\n /**\n * Reason why this bot was restricted\n */\n get restrictionReason(): tl.TypeRestrictionReason[] {\n return this.raw.restrictionReason ?? []\n }\n\n /** Whether this user has been flagged for scam */\n get isScam(): boolean {\n return this.raw.scam!\n }\n\n /** Whether this user has been flagged for impersonation */\n get isFake(): boolean {\n return this.raw.fake!\n }\n\n /** Whether this user is part of the Telegram support team */\n get isSupport(): boolean {\n return this.raw.support!\n }\n\n /** Whether this user has Premium subscription */\n get isPremium(): boolean {\n return this.raw.premium!\n }\n\n /** Whether Premium is required to contact this user */\n get isPremiumRequired(): boolean {\n return this.raw.contactRequirePremium!\n }\n\n /** User's or bot's first name */\n get firstName(): string {\n return this.raw.firstName ?? 'Deleted Account'\n }\n\n /** User's or bot's last name */\n get lastName(): string | null {\n return this.raw.lastName ?? null\n }\n\n static parseStatus(status?: tl.TypeUserStatus, bot = false): UserParsedStatus {\n let ret: UserStatus\n let date: Date\n let byMe = false\n\n const us = status\n\n if (bot) {\n ret = 'bot'\n } else if (!us) {\n ret = 'long_time_ago'\n } else {\n switch (us._) {\n case 'userStatusOnline':\n ret = 'online'\n date = new Date(us.expires * 1000)\n break\n case 'userStatusOffline':\n ret = 'offline'\n date = new Date(us.wasOnline * 1000)\n break\n case 'userStatusRecently':\n ret = 'recently'\n byMe = us.byMe!\n break\n case 'userStatusLastWeek':\n ret = 'within_week'\n byMe = us.byMe!\n break\n case 'userStatusLastMonth':\n ret = 'within_month'\n byMe = us.byMe!\n break\n default:\n ret = 'long_time_ago'\n break\n }\n }\n\n return {\n status: ret,\n lastOnline: ret === 'offline' ? date! : null,\n nextOffline: ret === 'online' ? date! : null,\n byMe,\n }\n }\n\n private get _parsedStatus() {\n return User.parseStatus(this.raw.status, this.raw.bot)\n }\n\n /** User's Last Seen & Online status */\n get status(): UserStatus {\n return this._parsedStatus.status\n }\n\n /**\n * Whether user's online status is hidden because\n * we have hidden our own online status from them,\n * and we don't have Premium subscription.\n */\n get statusHiddenByMe(): boolean {\n return this._parsedStatus.byMe\n }\n\n /**\n * Last time this user was seen online.\n * Only available if {@link status} is `offline`\n */\n get lastOnline(): Date | null {\n return this._parsedStatus.lastOnline\n }\n\n /**\n * Time when this user will automatically go offline.\n * Only available if {@link status} is `online`\n */\n get nextOffline(): Date | null {\n return this._parsedStatus.nextOffline\n }\n\n /** User's or bot's username */\n get username(): string | null {\n return this.raw.username ?? this.raw.usernames?.[0]?.username ?? null\n }\n\n /** User's or bot's usernames (including collectibles) */\n get usernames(): ReadonlyArray<tl.RawUsername> | null {\n if (this.raw.username) {\n return [{ _: 'username', username: this.raw.username, active: true }]\n }\n\n if (!this.raw.usernames?.length) {\n return null\n }\n\n return this.raw.usernames\n }\n\n /**\n * IETF language tag of the user's language\n *\n * Only available in some contexts\n */\n get language(): string | null {\n return this.raw.langCode ?? null\n }\n\n /**\n * User's or bot's assigned DC (data center).\n * Available only in case the user has set a public profile photo.\n *\n * **Note**: this information is approximate; it is based on where\n * Telegram stores a user profile pictures and does not by any means tell\n * you the user location (i.e. a user might travel far away, but will still connect\n * to its assigned DC).\n * More info at [Pyrogram FAQ](https://docs.pyrogram.org/faq#what-are-the-ip-addresses-of-telegram-data-centers).\n */\n get dcId(): number | null {\n return (this.raw.photo as Exclude<typeof this.raw.photo, tl.RawUserProfilePhotoEmpty>)?.dcId ?? null\n }\n\n /** User's phone number */\n get phoneNumber(): string | null {\n return this.raw.phone ?? null\n }\n\n /**\n * Get this user's input peer for advanced use-cases.\n *\n * > **Note**: for {@link min} users, this method will return\n * > `mtcute.dummyInputPeerMinUser`, which is actually not a valid input peer.\n * > These are used to indicate that the user is incomplete, and a message\n * > reference is needed to resolve the peer.\n * >\n * > Such objects are handled by {@link TelegramClient.resolvePeer} method,\n * > so prefer using it whenever you need an input peer.\n */\n get inputPeer(): tl.TypeInputPeer {\n if (this.raw.min) {\n return {\n _: 'mtcute.dummyInputPeerMinUser',\n userId: this.raw.id,\n }\n }\n\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"user's access hash is not available!\")\n }\n\n return {\n _: 'inputPeerUser',\n userId: this.raw.id,\n accessHash: this.raw.accessHash,\n }\n }\n\n /**\n * User's or bot's current profile photo, if any.\n * Suitable for downloads only\n */\n get photo(): ChatPhoto | null {\n if (this.raw.photo?._ !== 'userProfilePhoto') return null\n\n return new ChatPhoto(this.inputPeer, this.raw.photo)\n }\n\n /**\n * The list of reasons why this bot might be unavailable to some users.\n * This field is available only in case *isRestricted* is `true`\n */\n get restrictions(): ReadonlyArray<tl.RawRestrictionReason> | null {\n return this.raw.restrictionReason ?? null\n }\n\n /**\n * User's display name.\n *\n * First name and last name if available,\n * only first name otherwise.\n */\n get displayName(): string {\n if (!this.firstName) return 'Deleted Account'\n if (this.lastName) return `${this.firstName} ${this.lastName}`\n\n return this.firstName\n }\n\n /**\n * User's emoji status, if any.\n */\n get emojiStatus(): EmojiStatus | null {\n if (!this.raw.emojiStatus || this.raw.emojiStatus._ === 'emojiStatusEmpty') return null\n\n return new EmojiStatus(this.raw.emojiStatus)\n }\n\n /** Whether you have hidden (arhived) this user's stories */\n get storiesHidden(): boolean {\n return this.raw.storiesHidden!\n }\n\n get storiesUnavailable(): boolean {\n return this.raw.storiesUnavailable!\n }\n\n /**\n * Maximum ID of stories this user has (or 0 if none)\n */\n get storiesMaxId(): number {\n return this.raw.storiesMaxId ?? 0\n }\n\n /**\n * Color that should be used when rendering replies to\n * their messages and web previews sent by them,\n * as well as to render the chat title\n */\n get color(): ChatColors {\n return new ChatColors(this.raw.id, this.raw.color)\n }\n\n /**\n * Color that should be used when rendering the header of\n * the user's profile\n *\n * If `null`, a generic header should be used instead\n */\n get profileColors(): ChatColors | null {\n return this.raw.profileColor ? new ChatColors(this.raw.id, this.raw.profileColor) : null\n }\n\n /**\n * Create a mention for the user.\n *\n * When available and `text` is omitted, this method will return `@username`.\n * Otherwise, text mention is created.\n *\n * Use `null` as `text` (first parameter) to force create a text\n * mention with display name, even if there is a username.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * @param text Text of the mention.\n * @example\n * ```typescript\n * msg.replyText(html`Hello, ${msg.sender.mention()`)\n * ```\n */\n mention(text?: string | null): string | MessageEntity {\n if (text === undefined && this.username) {\n return `@${this.username}`\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityMentionName',\n offset: 0,\n length: text.length,\n userId: this.raw.id,\n },\n text,\n )\n }\n\n /**\n * Create a permanent mention for this user.\n *\n * *Permanent* means that this mention will also\n * contain user's access hash, so even if the user\n * changes their username or the client forgets\n * about that user, it can still be mentioned.\n *\n * Telegram might change access hash in some cases,\n * so it may not exactly be *permanent*. The only way\n * to actually make it permanent is to send it as a message\n * somewhere and load it from there if needed.\n *\n * Note that some users (particularly, users with hidden forwards)\n * may not be mentioned like this outside the chats you have in common.\n *\n * This method is only needed when the result will be\n * stored somewhere outside current mtcute instance (e.g. saved for later use),\n * otherwise {@link mention} will be enough.\n *\n * > **Note**: This method doesn't format anything on its own.\n * > Instead, it returns a {@link MessageEntity} that can later\n * > be used with `html` or `md` template tags\n *\n * > **Note**: the resulting text can only be used by clients\n * > that support mtcute notation of permanent\n * > mention links (`tg://user?id=123&hash=abc`).\n * >\n * > Also note that these permanent mentions are only\n * > valid for current account, since peer access hashes are\n * > account-specific and can't be used on another account.\n * >\n * > Also note that for some users such mentions might not work at all\n * > due to privacy settings.\n *\n * @param text Mention text\n */\n permanentMention(text?: string | null): MessageEntity {\n if (!this.raw.accessHash) {\n throw new MtArgumentError(\"User's access hash is not available!\")\n }\n\n if (!text) text = this.displayName\n\n return new MessageEntity(\n {\n _: 'messageEntityTextUrl',\n offset: 0,\n length: text.length,\n url: `tg://user?id=${this.id}&hash=${this.raw.accessHash.toString(16)}`,\n },\n text,\n )\n }\n}\n\nmemoizeGetters(User, [\n '_parsedStatus' as keyof User,\n 'usernames',\n 'inputPeer',\n 'photo',\n 'emojiStatus',\n 'color',\n 'profileColors',\n])\nmakeInspectable(User, undefined, ['_parsedStatus' as keyof User])\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { tl } from '@mtcute/tl';
|
|
2
|
+
import { BusinessIntro } from './business-intro.js';
|
|
3
|
+
import { BusinessLocation } from './business-location.js';
|
|
4
|
+
import { BusinessWorkHours } from './business-work-hours.js';
|
|
5
|
+
/** Information about a business account */
|
|
6
|
+
export declare class BusinessAccount {
|
|
7
|
+
readonly info: tl.RawUserFull;
|
|
8
|
+
constructor(info: tl.RawUserFull);
|
|
9
|
+
/** Introduction of the business account */
|
|
10
|
+
get intro(): BusinessIntro | null;
|
|
11
|
+
/** Work hours of the business */
|
|
12
|
+
get workHours(): BusinessWorkHours | null;
|
|
13
|
+
/** Location of the business */
|
|
14
|
+
get location(): BusinessLocation | null;
|
|
15
|
+
/** Information about a greeting message */
|
|
16
|
+
get greetingMessage(): tl.TypeBusinessGreetingMessage | null;
|
|
17
|
+
/** Information about an "away" message */
|
|
18
|
+
get awayMessage(): tl.TypeBusinessAwayMessage | null;
|
|
19
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BusinessAccount = void 0;
|
|
4
|
+
const inspectable_js_1 = require("../../utils/inspectable.js");
|
|
5
|
+
const memoize_js_1 = require("../../utils/memoize.js");
|
|
6
|
+
const business_intro_js_1 = require("./business-intro.js");
|
|
7
|
+
const business_location_js_1 = require("./business-location.js");
|
|
8
|
+
const business_work_hours_js_1 = require("./business-work-hours.js");
|
|
9
|
+
/** Information about a business account */
|
|
10
|
+
class BusinessAccount {
|
|
11
|
+
info;
|
|
12
|
+
constructor(info) {
|
|
13
|
+
this.info = info;
|
|
14
|
+
}
|
|
15
|
+
/** Introduction of the business account */
|
|
16
|
+
get intro() {
|
|
17
|
+
if (!this.info.businessIntro)
|
|
18
|
+
return null;
|
|
19
|
+
return new business_intro_js_1.BusinessIntro(this.info.businessIntro);
|
|
20
|
+
}
|
|
21
|
+
/** Work hours of the business */
|
|
22
|
+
get workHours() {
|
|
23
|
+
if (!this.info.businessWorkHours)
|
|
24
|
+
return null;
|
|
25
|
+
return new business_work_hours_js_1.BusinessWorkHours(this.info.businessWorkHours);
|
|
26
|
+
}
|
|
27
|
+
/** Location of the business */
|
|
28
|
+
get location() {
|
|
29
|
+
if (!this.info.businessLocation)
|
|
30
|
+
return null;
|
|
31
|
+
return new business_location_js_1.BusinessLocation(this.info.businessLocation);
|
|
32
|
+
}
|
|
33
|
+
/** Information about a greeting message */
|
|
34
|
+
get greetingMessage() {
|
|
35
|
+
return this.info.businessGreetingMessage ?? null;
|
|
36
|
+
}
|
|
37
|
+
/** Information about an "away" message */
|
|
38
|
+
get awayMessage() {
|
|
39
|
+
return this.info.businessAwayMessage ?? null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.BusinessAccount = BusinessAccount;
|
|
43
|
+
(0, memoize_js_1.memoizeGetters)(BusinessAccount, ['intro', 'workHours', 'location']);
|
|
44
|
+
(0, inspectable_js_1.makeInspectable)(BusinessAccount);
|
|
45
|
+
//# sourceMappingURL=business-account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-account.js","sourceRoot":"","sources":["../../../../../src/highlevel/types/premium/business-account.ts"],"names":[],"mappings":";;;AAEA,+DAA4D;AAC5D,uDAAuD;AACvD,2DAAmD;AACnD,iEAAyD;AACzD,qEAA4D;AAE5D,2CAA2C;AAC3C,MAAa,eAAe;IACH;IAArB,YAAqB,IAAoB;QAApB,SAAI,GAAJ,IAAI,CAAgB;IAAG,CAAC;IAE7C,2CAA2C;IAC3C,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAEzC,OAAO,IAAI,iCAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACrD,CAAC;IAED,iCAAiC;IACjC,IAAI,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAE7C,OAAO,IAAI,0CAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7D,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,uCAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC3D,CAAC;IAED,2CAA2C;IAC3C,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAA;IACpD,CAAC;IAED,0CAA0C;IAC1C,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAA;IAChD,CAAC;CACJ;AAjCD,0CAiCC;AAED,IAAA,2BAAc,EAAC,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;AACnE,IAAA,gCAAe,EAAC,eAAe,CAAC,CAAA","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { makeInspectable } from '../../utils/inspectable.js'\nimport { memoizeGetters } from '../../utils/memoize.js'\nimport { BusinessIntro } from './business-intro.js'\nimport { BusinessLocation } from './business-location.js'\nimport { BusinessWorkHours } from './business-work-hours.js'\n\n/** Information about a business account */\nexport class BusinessAccount {\n constructor(readonly info: tl.RawUserFull) {}\n\n /** Introduction of the business account */\n get intro(): BusinessIntro | null {\n if (!this.info.businessIntro) return null\n\n return new BusinessIntro(this.info.businessIntro)\n }\n\n /** Work hours of the business */\n get workHours(): BusinessWorkHours | null {\n if (!this.info.businessWorkHours) return null\n\n return new BusinessWorkHours(this.info.businessWorkHours)\n }\n\n /** Location of the business */\n get location(): BusinessLocation | null {\n if (!this.info.businessLocation) return null\n\n return new BusinessLocation(this.info.businessLocation)\n }\n\n /** Information about a greeting message */\n get greetingMessage(): tl.TypeBusinessGreetingMessage | null {\n return this.info.businessGreetingMessage ?? null\n }\n\n /** Information about an \"away\" message */\n get awayMessage(): tl.TypeBusinessAwayMessage | null {\n return this.info.businessAwayMessage ?? null\n }\n}\n\nmemoizeGetters(BusinessAccount, ['intro', 'workHours', 'location'])\nmakeInspectable(BusinessAccount)\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { tl } from '@mtcute/tl';
|
|
2
|
+
import { MessageEntity } from '../messages/message-entity.js';
|
|
3
|
+
/**
|
|
4
|
+
* A business chat link, i.e. a link to start a chat with a pre-filled message.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BusinessChatLink {
|
|
7
|
+
readonly raw: tl.RawBusinessChatLink;
|
|
8
|
+
constructor(raw: tl.RawBusinessChatLink);
|
|
9
|
+
/** The link itself */
|
|
10
|
+
get link(): string;
|
|
11
|
+
/** Text to be inserted into the message input */
|
|
12
|
+
get text(): string;
|
|
13
|
+
/** Entities for the text */
|
|
14
|
+
get entities(): MessageEntity[];
|
|
15
|
+
/** Custom title for the link */
|
|
16
|
+
get title(): string | null;
|
|
17
|
+
/** Number of clicks on the link */
|
|
18
|
+
get clicks(): number;
|
|
19
|
+
}
|