@mtcute/core 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/highlevel/base.d.ts +3 -3
- package/cjs/highlevel/base.js.map +1 -1
- package/cjs/highlevel/methods/files/download-iterable.js +1 -1
- package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
- package/cjs/highlevel/methods/users/resolve-peer-many.js +1 -1
- package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
- package/cjs/highlevel/types/messages/dialog.d.ts +4 -2
- package/cjs/highlevel/types/messages/dialog.js +4 -2
- package/cjs/highlevel/types/messages/dialog.js.map +1 -1
- package/cjs/highlevel/types/messages/message-action.d.ts +15 -1
- package/cjs/highlevel/types/messages/message-action.js +10 -0
- package/cjs/highlevel/types/messages/message-action.js.map +1 -1
- package/cjs/highlevel/types/peers/full-chat.d.ts +2 -0
- package/cjs/highlevel/types/peers/full-chat.js +4 -0
- package/cjs/highlevel/types/peers/full-chat.js.map +1 -1
- package/cjs/highlevel/updates/manager.js +3 -3
- package/cjs/highlevel/updates/manager.js.map +1 -1
- package/cjs/highlevel/worker/invoker.js +2 -1
- package/cjs/highlevel/worker/invoker.js.map +1 -1
- package/cjs/highlevel/worker/port.js +4 -3
- package/cjs/highlevel/worker/port.js.map +1 -1
- package/cjs/highlevel/worker/protocol.d.ts +10 -5
- package/cjs/highlevel/worker/protocol.js +66 -0
- package/cjs/highlevel/worker/protocol.js.map +1 -1
- package/cjs/highlevel/worker/worker.js +6 -5
- package/cjs/highlevel/worker/worker.js.map +1 -1
- package/cjs/network/client.d.ts +0 -16
- package/cjs/network/client.js +0 -2
- package/cjs/network/client.js.map +1 -1
- package/cjs/network/index.d.ts +2 -1
- package/cjs/network/index.js +1 -0
- package/cjs/network/index.js.map +1 -1
- package/cjs/network/middlewares/bundle.d.ts +3 -0
- package/cjs/network/middlewares/bundle.js +20 -0
- package/cjs/network/middlewares/bundle.js.map +1 -0
- package/cjs/network/middlewares/default.d.ts +8 -0
- package/cjs/network/middlewares/default.js +10 -0
- package/cjs/network/middlewares/default.js.map +1 -0
- package/cjs/network/middlewares/flood-waiter.d.ts +37 -0
- package/cjs/network/middlewares/flood-waiter.js +70 -0
- package/cjs/network/middlewares/flood-waiter.js.map +1 -0
- package/cjs/network/middlewares/index.d.ts +2 -0
- package/cjs/network/middlewares/index.js +29 -0
- package/cjs/network/middlewares/index.js.map +1 -0
- package/cjs/network/middlewares/internal-errors.d.ts +17 -0
- package/cjs/network/middlewares/internal-errors.js +41 -0
- package/cjs/network/middlewares/internal-errors.js.map +1 -0
- package/cjs/network/middlewares/on-error.d.ts +30 -0
- package/cjs/network/middlewares/on-error.js +44 -0
- package/cjs/network/middlewares/on-error.js.map +1 -0
- package/cjs/network/middlewares/on-method.d.ts +39 -0
- package/cjs/network/middlewares/on-method.js +45 -0
- package/cjs/network/middlewares/on-method.js.map +1 -0
- package/cjs/network/mtproto-session.js +1 -1
- package/cjs/network/mtproto-session.js.map +1 -1
- package/cjs/network/multi-session-connection.js +1 -1
- package/cjs/network/multi-session-connection.js.map +1 -1
- package/cjs/network/network-manager.d.ts +23 -6
- package/cjs/network/network-manager.js +55 -102
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/persistent-connection.js +5 -5
- package/cjs/network/persistent-connection.js.map +1 -1
- package/cjs/network/session-connection.js +6 -6
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/storage/driver.js +1 -1
- package/cjs/storage/driver.js.map +1 -1
- package/cjs/storage/storage.js +1 -1
- package/cjs/storage/storage.js.map +1 -1
- package/cjs/utils/abort-signal.d.ts +1 -0
- package/cjs/utils/abort-signal.js +13 -0
- package/cjs/utils/abort-signal.js.map +1 -0
- package/cjs/utils/composer.d.ts +3 -0
- package/cjs/utils/composer.js +22 -0
- package/cjs/utils/composer.js.map +1 -0
- package/cjs/utils/error-reporting.js +1 -1
- package/cjs/utils/error-reporting.js.map +1 -1
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +1 -0
- package/cjs/utils/index.js.map +1 -1
- package/cjs/utils/logger.js +15 -3
- package/cjs/utils/logger.js.map +1 -1
- package/esm/highlevel/base.d.ts +3 -3
- package/esm/highlevel/base.js.map +1 -1
- package/esm/highlevel/methods/files/download-iterable.js +1 -1
- package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
- package/esm/highlevel/methods/users/resolve-peer-many.js +1 -1
- package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
- package/esm/highlevel/types/messages/dialog.d.ts +4 -2
- package/esm/highlevel/types/messages/dialog.js +4 -2
- package/esm/highlevel/types/messages/dialog.js.map +1 -1
- package/esm/highlevel/types/messages/message-action.d.ts +15 -1
- package/esm/highlevel/types/messages/message-action.js +10 -0
- package/esm/highlevel/types/messages/message-action.js.map +1 -1
- package/esm/highlevel/types/peers/full-chat.d.ts +2 -0
- package/esm/highlevel/types/peers/full-chat.js +4 -0
- package/esm/highlevel/types/peers/full-chat.js.map +1 -1
- package/esm/highlevel/updates/manager.js +3 -3
- package/esm/highlevel/updates/manager.js.map +1 -1
- package/esm/highlevel/worker/invoker.js +2 -1
- package/esm/highlevel/worker/invoker.js.map +1 -1
- package/esm/highlevel/worker/port.js +4 -3
- package/esm/highlevel/worker/port.js.map +1 -1
- package/esm/highlevel/worker/protocol.d.ts +10 -5
- package/esm/highlevel/worker/protocol.js +60 -1
- package/esm/highlevel/worker/protocol.js.map +1 -1
- package/esm/highlevel/worker/worker.js +6 -5
- package/esm/highlevel/worker/worker.js.map +1 -1
- package/esm/network/client.d.ts +0 -16
- package/esm/network/client.js +0 -2
- package/esm/network/client.js.map +1 -1
- package/esm/network/index.d.ts +2 -1
- package/esm/network/index.js +1 -0
- package/esm/network/index.js.map +1 -1
- package/esm/network/middlewares/bundle.d.ts +3 -0
- package/esm/network/middlewares/bundle.js +4 -0
- package/esm/network/middlewares/bundle.js.map +1 -0
- package/esm/network/middlewares/default.d.ts +8 -0
- package/esm/network/middlewares/default.js +6 -0
- package/esm/network/middlewares/default.js.map +1 -0
- package/esm/network/middlewares/flood-waiter.d.ts +37 -0
- package/esm/network/middlewares/flood-waiter.js +66 -0
- package/esm/network/middlewares/flood-waiter.js.map +1 -0
- package/esm/network/middlewares/index.d.ts +2 -0
- package/esm/network/middlewares/index.js +3 -0
- package/esm/network/middlewares/index.js.map +1 -0
- package/esm/network/middlewares/internal-errors.d.ts +17 -0
- package/esm/network/middlewares/internal-errors.js +37 -0
- package/esm/network/middlewares/internal-errors.js.map +1 -0
- package/esm/network/middlewares/on-error.d.ts +30 -0
- package/esm/network/middlewares/on-error.js +40 -0
- package/esm/network/middlewares/on-error.js.map +1 -0
- package/esm/network/middlewares/on-method.d.ts +39 -0
- package/esm/network/middlewares/on-method.js +41 -0
- package/esm/network/middlewares/on-method.js.map +1 -0
- package/esm/network/mtproto-session.js +1 -1
- package/esm/network/mtproto-session.js.map +1 -1
- package/esm/network/multi-session-connection.js +1 -1
- package/esm/network/multi-session-connection.js.map +1 -1
- package/esm/network/network-manager.d.ts +23 -6
- package/esm/network/network-manager.js +57 -104
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/persistent-connection.js +5 -5
- package/esm/network/persistent-connection.js.map +1 -1
- package/esm/network/session-connection.js +6 -6
- package/esm/network/session-connection.js.map +1 -1
- package/esm/storage/driver.js +1 -1
- package/esm/storage/driver.js.map +1 -1
- package/esm/storage/storage.js +1 -1
- package/esm/storage/storage.js.map +1 -1
- package/esm/utils/abort-signal.d.ts +1 -0
- package/esm/utils/abort-signal.js +9 -0
- package/esm/utils/abort-signal.js.map +1 -0
- package/esm/utils/composer.d.ts +3 -0
- package/esm/utils/composer.js +18 -0
- package/esm/utils/composer.js.map +1 -0
- package/esm/utils/error-reporting.js +1 -1
- package/esm/utils/error-reporting.js.map +1 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/logger.js +15 -3
- package/esm/utils/logger.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +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"]}
|
|
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 /** Whether the current user can view Telegram Stars revenue for this chat */\n get canViewStarsRevenue(): boolean {\n return this.fullPeer._ === 'channelFull' && this.fullPeer.canViewStats!\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"]}
|
|
@@ -766,7 +766,7 @@ class UpdatesManager {
|
|
|
766
766
|
if (!requestedDiff.has(channelId)) {
|
|
767
767
|
requestedDiff.set(channelId, this._fetchChannelDifference(channelId, fallbackPts)
|
|
768
768
|
.catch((err) => {
|
|
769
|
-
this.log.warn('error fetching difference for %d: %
|
|
769
|
+
this.log.warn('error fetching difference for %d: %e', channelId, err);
|
|
770
770
|
})
|
|
771
771
|
.then((ok) => {
|
|
772
772
|
requestedDiff.delete(channelId);
|
|
@@ -852,7 +852,7 @@ class UpdatesManager {
|
|
|
852
852
|
this.stopLoop();
|
|
853
853
|
return;
|
|
854
854
|
}
|
|
855
|
-
this.log.warn('error fetching common difference: %
|
|
855
|
+
this.log.warn('error fetching common difference: %e', err);
|
|
856
856
|
if (tl_1.tl.RpcError.is(err, 'PERSISTENT_TIMESTAMP_INVALID')) {
|
|
857
857
|
// this function never throws
|
|
858
858
|
return this._fetchUpdatesState();
|
|
@@ -979,7 +979,7 @@ class UpdatesManager {
|
|
|
979
979
|
log.warn('cannot fetch full peer %d - unknown peer type %s', id, peer._);
|
|
980
980
|
})
|
|
981
981
|
.catch((err) => {
|
|
982
|
-
log.warn('error fetching full peer %d: %
|
|
982
|
+
log.warn('error fetching full peer %d: %e', id, err);
|
|
983
983
|
});
|
|
984
984
|
}
|
|
985
985
|
}
|