k2-im 0.1.43 → 0.1.44

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/dist/browser.js CHANGED
@@ -1 +1 @@
1
- export{Ta as canCopyImageToClipboard,Ua as copyImageToClipboard,B as createLazyBrowserApiProtocolClient}from'./chunk-6FH2DBQE.js';import'./chunk-6WAB2ZRF.js';import'./chunk-WOT6VMZA.js';
1
+ export{Ua as canCopyImageToClipboard,Va as copyImageToClipboard,B as createLazyBrowserApiProtocolClient}from'./chunk-SVYZRVHS.js';import'./chunk-XNBJ3NXF.js';import'./chunk-WOT6VMZA.js';
@@ -42,8 +42,8 @@ interface ConversationDraft$1 {
42
42
  attachments: readonly [];
43
43
  updatedAt: number;
44
44
  }
45
- /** 消息内容类型。sticker=表情/贴图(BMessage contentType=7);call=单聊通话记录(contentType=10);transfer=转账(contentType=16);gift=礼品/刮刮卡(contentType=17);robot=机器人卡片(contentType=18);miniProgram=小程序分享卡(contentType=22);redPacket=红包卡(contentType=25);game=小游戏(contentType=27);未知 wire 正文统一归一为 unknown。 */
46
- type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'filesAlbum' | 'robot' | 'unknown';
45
+ /** 消息内容类型。sticker=表情/贴图(BMessage contentType=7);call=单聊通话记录(contentType=10);transfer=转账(contentType=16);gift=礼品/刮刮卡(contentType=17);robot=机器人卡片(contentType=18);miniProgram=小程序分享卡(contentType=22);redPacket=红包卡(contentType=25);game=小游戏(contentType=27);liveRoom=直播间分享(contentType=30);未知 wire 正文统一归一为 unknown。 */
46
+ type MessageContentType = 'text' | 'system' | 'image' | 'video' | 'voice' | 'file' | 'sticker' | 'contact' | 'miniProgram' | 'game' | 'transfer' | 'gift' | 'call' | 'redPacket' | 'mediaAlbum' | 'filesAlbum' | 'robot' | 'liveRoom' | 'unknown';
47
47
  /**
48
48
  * 发送态(客户端态):消息从本地创建到服务端确认的生命周期。
49
49
  * `uploading` 仅媒体消息使用:文件上传阶段(uploading→pending→sending→sent);
@@ -114,6 +114,8 @@ type LastMessageSummary = {
114
114
  kind: 'transfer';
115
115
  } | {
116
116
  kind: 'gift';
117
+ } | {
118
+ kind: 'liveRoom';
117
119
  } | {
118
120
  kind: 'call';
119
121
  callKind: ImCallKind;
@@ -612,6 +614,40 @@ interface ImMediaAlbumBody {
612
614
  /** 媒体项,顺序即用户选择顺序(决定宫格 index 与首项朝向)。 */
613
615
  items: readonly ImMediaAlbumItem[];
614
616
  }
617
+ /** 直播间分享的直播类型。wire `liveType`:1 视频、2 语音、3 双手机、4 单手机录屏、5 语聊房。 */
618
+ type ImLiveRoomType = 'video' | 'voice' | 'dual-phone' | 'screen-record' | 'voice-chat';
619
+ /** 直播间分享的房间状态。wire `liveRoomStatus`:1 预告、2 直播中、3 已结束。 */
620
+ type ImLiveRoomStatus = 'preview' | 'live' | 'ended';
621
+ /**
622
+ * 直播间分享卡片正文(contentType==='liveRoom',协议 BMessage.contentType=30,fields 98-112)。
623
+ *
624
+ * @remarks 调用方先拿到直播间快照再写入本结构。Core 不请求直播接口,也不把缺省枚举猜成某一种直播。
625
+ * `uid` 是声网 SDK 初始化用的 UID,不是 IM 用户 id。
626
+ */
627
+ interface ImLiveRoomBody {
628
+ /** 直播间 ID(BMessage.liveRoomId)。 */
629
+ liveRoomId: string;
630
+ liveType: ImLiveRoomType;
631
+ liveRoomStatus: ImLiveRoomStatus;
632
+ /** 当前账号是否已关注主播。协议 bool 无法区分未设置,false 也是有效状态。 */
633
+ isFocus: boolean;
634
+ /** 当前账号是否已预约这场直播。 */
635
+ isReservation: boolean;
636
+ liveRecordId?: string;
637
+ /** 画面比例原文,例如 `16:9`。 */
638
+ screenRatio?: string;
639
+ broadcasterUserId?: string;
640
+ broadcasterUserName?: string;
641
+ /** 声网 SDK 初始化 UID(BMessage.uid)。 */
642
+ uid?: string;
643
+ liveCover?: string;
644
+ liveRoomName?: string;
645
+ /** 预告时间,秒级时间戳的十进制字符串。 */
646
+ livePreviewTime?: string;
647
+ livePreviewId?: string;
648
+ /** 直播间人数字符串,保持协议原文,不在 Core 换算。 */
649
+ liveRoomViewers?: string;
650
+ }
615
651
  interface ImMessageBody {
616
652
  /** P0 文本内容(明文,解密后的结果)。 */
617
653
  text?: string;
@@ -647,6 +683,8 @@ interface ImMessageBody {
647
683
  filesAlbum?: ImFilesAlbumBody;
648
684
  /** contentType==='robot' 时的机器人卡片。 */
649
685
  robot?: ImRobotBody;
686
+ /** contentType==='liveRoom' 时的直播间分享卡片。 */
687
+ liveRoom?: ImLiveRoomBody;
650
688
  /** contentType==='unknown' 时的稳定未知正文,不含原始 wire type。 */
651
689
  unknown?: UnknownMessageBody;
652
690
  }
@@ -2647,9 +2685,9 @@ interface ImGroupCallMeetingSnapshot {
2647
2685
  readonly createdAt: number;
2648
2686
  }
2649
2687
 
2650
- type EditFailReason = 'not-found' | 'not-own' | 'not-sent' | 'recalled' | 'deleted' | 'expired' | 'unsupported' | 'empty' | 'restricted' | 'unsupported-content' | 'no-key' | 'encrypt-failed' | 'timeout' | 'failed' | 'disconnected';
2688
+ type EditFailReason = 'not-found' | 'not-own' | 'pinned' | 'not-sent' | 'recalled' | 'deleted' | 'expired' | 'unsupported' | 'empty' | 'restricted' | 'unsupported-content' | 'no-key' | 'encrypt-failed' | 'timeout' | 'failed' | 'disconnected';
2651
2689
 
2652
- type RecallFailReason = 'not-found' | 'not-own' | 'not-sent' | 'expired' | 'unsupported' | 'timeout' | 'server-expired' | 'failed' | 'disconnected';
2690
+ type RecallFailReason = 'not-found' | 'not-own' | 'pinned' | 'not-sent' | 'expired' | 'unsupported' | 'timeout' | 'server-expired' | 'failed' | 'disconnected';
2653
2691
 
2654
2692
  /** 浏览器 PushSubscription.toJSON() 的可移植数据;不依赖 DOM 或浏览器全局。 */
2655
2693
  interface ImWebPushSubscription {
@@ -3202,6 +3240,10 @@ interface TransferMessageOptions {
3202
3240
  interface GiftMessageOptions {
3203
3241
  replyToMessageId?: string;
3204
3242
  }
3243
+ /** 直播间分享卡发送选项;正文由调用方提供,Core 不补默认直播类型。 */
3244
+ interface LiveRoomMessageOptions {
3245
+ replyToMessageId?: string;
3246
+ }
3205
3247
  /**
3206
3248
  * 媒体合集里的一项:一张图片或一个视频。
3207
3249
  *
@@ -3415,6 +3457,36 @@ interface ImDirectorySearchApi {
3415
3457
  search: (keyword: string) => Promise<ImDirectorySearchResult>;
3416
3458
  }
3417
3459
 
3460
+ /** 回源失败的原因与能否重试。 */
3461
+ interface MessagesByIdFailure {
3462
+ /**
3463
+ * 能否稍后重试。
3464
+ *
3465
+ * 服务端错误、网络异常和登录过期都算可以重试;无权限(已退群或已退出频道)和参数错误是终态,
3466
+ * 再试多少次结果都一样,调用方应该停下来而不是反复打接口。
3467
+ */
3468
+ retryable: boolean;
3469
+ /** 原始错误,供诊断与上报。 */
3470
+ error: unknown;
3471
+ }
3472
+ /** 回源的汇总结果。三组 id 互不重叠,合起来覆盖调用方传入的全部有效 id。 */
3473
+ interface ImMessagesByIdResult<TMessage> {
3474
+ /** 成功取回的消息。已经进了本地历史,后续本地查询就能命中。 */
3475
+ readonly messages: readonly TMessage[];
3476
+ /**
3477
+ * 服务端确认没有这些消息:已被删除、超出保留期被清理,或对当前用户不可见。
3478
+ * 这是终态,调用方应记下来并停止重试。
3479
+ */
3480
+ readonly missingMessageIds: readonly string[];
3481
+ /**
3482
+ * 这次没取到、但不代表不存在的消息 id(请求失败了)。
3483
+ * 是否值得再试看 `failure.retryable`。
3484
+ */
3485
+ readonly unresolvedMessageIds: readonly string[];
3486
+ /** `unresolvedMessageIds` 非空时的失败原因;全部取到或全部确认缺失时不存在。 */
3487
+ readonly failure?: MessagesByIdFailure;
3488
+ }
3489
+
3418
3490
  /**
3419
3491
  * SDK 内部 CHANNEL sibling:装配资料、成员、申请、置顶、历史限制与通知修复能力。
3420
3492
  *
@@ -3567,6 +3639,15 @@ interface ImContactSearchResult {
3567
3639
  age?: number;
3568
3640
  relationship: ImContactRelationship;
3569
3641
  }
3642
+ /** 当前账号黑名单中的一名用户;不暴露关系记录 id、status 等后端字段。 */
3643
+ interface ImBlockedContact {
3644
+ userId: string;
3645
+ /** 优先当前账号设置的备注,没有备注时为对方昵称。 */
3646
+ displayName: string;
3647
+ nickname: string;
3648
+ remark?: string;
3649
+ avatarUrl?: string;
3650
+ }
3570
3651
  /** 好友申请提交结果;调用成功不等于一定需要对端审核。 */
3571
3652
  interface ImFriendshipRequestResult {
3572
3653
  status: 'sent' | 'added' | 'already-friend';
@@ -3606,6 +3687,15 @@ interface ImContactApi extends ImDirectoryApi<'individual'> {
3606
3687
  }) => Promise<ImFriendshipRequestResult>;
3607
3688
  /** 远端确认后加入黑名单,并清理该用户的本机 direct 会话和聊天数据。 */
3608
3689
  blockUser: (userId: string) => Promise<void>;
3690
+ /** 读取当前账号的黑名单;结果直接来自服务端,空数组表示名单为空。 */
3691
+ listBlocked: () => Promise<readonly ImBlockedContact[]>;
3692
+ /**
3693
+ * 远端确认后把用户移出黑名单。
3694
+ *
3695
+ * @remarks 移出后双方是否恢复为好友由服务端决定,SDK 不猜:本地关系先改为 `unknown`,
3696
+ * 再强制查询服务端关系并刷新资料。拉黑时已删除的 direct 会话和聊天记录不会恢复。
3697
+ */
3698
+ unblockUser: (userId: string) => Promise<void>;
3609
3699
  /** 提交联系人举报;该操作不修改好友关系、会话或本地资料。 */
3610
3700
  reportUser: (userId: string, problem: string) => Promise<void>;
3611
3701
  /**
@@ -4320,6 +4410,8 @@ type ConversationLastMessageSummary = {
4320
4410
  kind: 'transfer';
4321
4411
  } | {
4322
4412
  kind: 'gift';
4413
+ } | {
4414
+ kind: 'liveRoom';
4323
4415
  } | {
4324
4416
  kind: 'redPacket';
4325
4417
  } | {
@@ -4706,36 +4798,6 @@ interface ImExpressionsApi {
4706
4798
  };
4707
4799
  }
4708
4800
 
4709
- /** 回源失败的原因与能否重试。 */
4710
- interface MessagesByIdFailure {
4711
- /**
4712
- * 能否稍后重试。
4713
- *
4714
- * 服务端错误、网络异常和登录过期都算可以重试;无权限(已退群或已退出频道)和参数错误是终态,
4715
- * 再试多少次结果都一样,调用方应该停下来而不是反复打接口。
4716
- */
4717
- retryable: boolean;
4718
- /** 原始错误,供诊断与上报。 */
4719
- error: unknown;
4720
- }
4721
- /** 回源的汇总结果。三组 id 互不重叠,合起来覆盖调用方传入的全部有效 id。 */
4722
- interface ImMessagesByIdResult<TMessage> {
4723
- /** 成功取回的消息。已经进了本地历史,后续本地查询就能命中。 */
4724
- readonly messages: readonly TMessage[];
4725
- /**
4726
- * 服务端确认没有这些消息:已被删除、超出保留期被清理,或对当前用户不可见。
4727
- * 这是终态,调用方应记下来并停止重试。
4728
- */
4729
- readonly missingMessageIds: readonly string[];
4730
- /**
4731
- * 这次没取到、但不代表不存在的消息 id(请求失败了)。
4732
- * 是否值得再试看 `failure.retryable`。
4733
- */
4734
- readonly unresolvedMessageIds: readonly string[];
4735
- /** `unresolvedMessageIds` 非空时的失败原因;全部取到或全部确认缺失时不存在。 */
4736
- readonly failure?: MessagesByIdFailure;
4737
- }
4738
-
4739
4801
  /**
4740
4802
  * 绑定单个精确会话的产品句柄与独立连续消息窗口。
4741
4803
  * 句柄提供历史、消息、草稿、已读和免打扰动作;SDK/DomainState 仍拥有消息真相,关闭只释放窗口和订阅。
@@ -4893,6 +4955,12 @@ interface ConversationMessageApi {
4893
4955
  * @remarks CHANNEL 当前产品入口不发送礼物,会返回 unsupported。消息固定明文。
4894
4956
  */
4895
4957
  sendGift: (gift: ImGiftBody, options?: GiftMessageOptions) => Promise<SendMessageResult>;
4958
+ /**
4959
+ * 分享直播间卡片。调用方必须先拿到直播间快照。
4960
+ *
4961
+ * @remarks Core 不请求直播接口,也不补默认直播类型或房间状态。群和频道按会话加密发送。
4962
+ */
4963
+ sendLiveRoom: (liveRoom: ImLiveRoomBody, options?: LiveRoomMessageOptions) => Promise<SendMessageResult>;
4896
4964
  /** 当前用户已选相同 emoji 时移除,否则添加或替换。emoji 必须是协议 token,例如 `[Great]`。 */
4897
4965
  toggleReaction: (messageId: string, emoji: string) => Promise<ImReactionChangeResult>;
4898
4966
  /** 显式添加/替换或移除,供参与者详情等不能用 toggle 猜动作的产品交互。 */
@@ -4920,7 +4988,7 @@ interface ConversationMessageApi {
4920
4988
  */
4921
4989
  replaceInterruptedFile: (messageId: string, file: File | Blob, options?: FileMessageOptions) => Promise<SendMessageResult>;
4922
4990
  /**
4923
- * 编辑当前会话的一条文本消息;所有权、正文类型、时间窗、加密与 CHANNEL 权限由对应 core sibling 校验。
4991
+ * 编辑当前会话的一条非置顶文本消息;所有权、正文类型、时间窗、加密与 CHANNEL 权限由对应 core sibling 校验。
4924
4992
  * @throws 消息不属于当前 handle,或 core 返回稳定业务失败时抛出 `ImSdkErrorShape`;不暴露协议 errcode。
4925
4993
  * @example
4926
4994
  * ```ts
@@ -4931,10 +4999,10 @@ interface ConversationMessageApi {
4931
4999
  * ```
4932
5000
  */
4933
5001
  editText: (messageId: string, text: string, options?: EditTextOptions) => Promise<ImProductMessage>;
4934
- /** 撤回当前会话消息;成功后由同一 DomainState 更新窗口,失败抛稳定产品错误。 */
5002
+ /** 撤回当前会话非置顶消息;成功后由同一 DomainState 更新窗口,失败抛稳定产品错误。 */
4935
5003
  recall: (messageId: string) => Promise<void>;
4936
5004
  /**
4937
- * 仅从当前账号本机删除一条已落地消息。
5005
+ * 仅从当前账号本机删除一条已落地且未置顶的消息。
4938
5006
  *
4939
5007
  * @remarks 不清理已读、置顶、草稿、宿主下载文件、独立媒体缓存或远端历史。仍由 Outbox 持有或正在上传的消息会被拒绝;
4940
5008
  * queued 消息只有在 `client.outbox.cancel` 成功移除账本后,才能删除其本地失败气泡,避免把删除气泡误当作取消发送。
@@ -5056,7 +5124,7 @@ interface ChannelConversationMessageApi extends ConversationMessageApi {
5056
5124
  *
5057
5125
  * @remarks 不受本人撤回时间窗限制;权限由 CHANNEL profile 预检并由服务端最终校验。成功后消息进入
5058
5126
  * `deletedForEveryone` 终态;Chat Kit 时间线仅向社群群主和管理员显示删除提示,普通成员隐藏该项。
5059
- * 该方法不用于本机删除,也不适用于普通群。
5127
+ * 置顶原消息即使由管理员或群主操作也会拒绝;该方法不用于本机删除,也不适用于普通群。
5060
5128
  * @example
5061
5129
  * ```ts
5062
5130
  * const channel = await client.openConversation({ conversationType: 'channel', conversationId: '9001' })
@@ -6279,6 +6347,25 @@ interface ImContactsApi extends ImDirectoryApi<'individual'> {
6279
6347
  * ```
6280
6348
  */
6281
6349
  blockUser: (userId: string) => Promise<void>;
6350
+ /**
6351
+ * 读取当前账号的黑名单;每次都查询服务端,空数组表示名单为空。
6352
+ *
6353
+ * @example
6354
+ * ```ts
6355
+ * const blocked = await client.contacts.listBlocked()
6356
+ * ```
6357
+ */
6358
+ listBlocked: () => Promise<readonly ImBlockedContact[]>;
6359
+ /**
6360
+ * 把用户移出黑名单。
6361
+ *
6362
+ * @remarks 远端成功后 SDK 重新向服务端查询双方关系,不假设恢复为好友;拉黑时已删除的会话和聊天记录不会恢复。
6363
+ * @example
6364
+ * ```ts
6365
+ * await client.contacts.unblockUser('user-7')
6366
+ * ```
6367
+ */
6368
+ unblockUser: (userId: string) => Promise<void>;
6282
6369
  /**
6283
6370
  * 举报联系人;成功只表示服务端已接收,不改变好友关系或本地会话。
6284
6371
  *
@@ -6411,6 +6498,8 @@ interface AdvancedContactsApi extends ImDirectoryApi<'individual'> {
6411
6498
  searchUser: ImContactApi['searchUser'];
6412
6499
  requestFriendship: ImContactApi['requestFriendship'];
6413
6500
  blockUser: ImContactApi['blockUser'];
6501
+ listBlocked: ImContactApi['listBlocked'];
6502
+ unblockUser: ImContactApi['unblockUser'];
6414
6503
  reportUser: ImContactApi['reportUser'];
6415
6504
  deleteFriendship: ImContactApi['deleteFriendship'];
6416
6505
  }
@@ -6699,7 +6788,7 @@ declare function useImApplicationsStore(pinia?: Pinia): ImApplicationsStore;
6699
6788
  * 二期收敛:kit 框架无关层不再直接产中文,改产本联合里的码 + 参数(如 {reason}/{label}/{size}),由宿主经 im-i18n 渲染。
6700
6789
  * 动态原始报错(error.message)作为 `{reason}` 参数拼接,不入 catalog(属诊断,不翻译)。
6701
6790
  */
6702
- type ImServiceTextKey = 'common.notConnected' | 'common.selectOrOpenConversation' | 'common.conversationTypeNotReady' | 'common.conversationNotReady' | `recall.${RecallFailReason}` | `edit.${EditFailReason}` | 'localDelete.done' | 'localDelete.notFound' | 'localDelete.inFlight' | 'localDelete.failed' | 'channelDelete.notFound' | 'channelDelete.unsupported' | 'channelDelete.notSent' | 'channelDelete.unavailable' | 'channelDelete.forbidden' | 'channelDelete.timeout' | 'channelDelete.failed' | 'channelDelete.disconnected' | 'directBlock.contactRequired' | 'groupBlock.left' | 'groupBlock.removed' | 'groupBlock.dismissed' | 'groupBlock.unknownRestricted' | 'channelBlock.guest' | 'channelBlock.left' | 'channelBlock.removed' | 'channelBlock.dismissed' | 'channelBlock.muted' | 'channelBlock.allMembersMuted' | 'channelBlock.currentUserMuted' | 'channelBlock.blacklisted' | 'channelBlock.unknownRestricted' | 'channelProfile.loadFailed' | 'channelProfile.notFound' | 'channelProfile.retryAction' | 'channelMembers.title' | 'channelMembers.searchPlaceholder' | 'channelMembers.loading' | 'channelMembers.loadFailed' | 'channelMembers.retryAction' | 'channelMembers.empty' | 'channelMembers.loadingMore' | 'channelMembers.loadMoreFailed' | 'channelMembers.exhausted' | 'channelMembers.loadMoreAction' | 'label.image' | 'label.video' | 'label.file' | 'label.sticker' | 'send.failed' | 'send.retryFailed' | 'send.cancelFailed' | 'send.mediaFailed' | 'send.mediaEmpty' | 'send.mediaCancelled' | 'send.mediaCountLimit' | 'send.mediaTooLarge' | 'send.mediaFormatMismatch' | 'send.imageFormatUnsupported' | 'send.videoTooLong' | 'send.videoDurationUnavailable' | 'send.voiceEmpty' | 'send.voiceStorageNotConfigured' | 'send.voiceCancelled' | 'send.voiceFailed' | 'media.uploadWaiting' | 'media.voiceNotReady' | 'media.voiceLoadEmpty' | 'media.voiceLoadFailed' | 'media.videoOpenEmpty' | 'media.videoLoadFailed' | 'media.imageInvalid' | 'media.imageLoadFailed' | 'media.fileDownloadEmpty' | 'media.fileDownloadFailed' | 'conversation.muteEnableFailed' | 'conversation.muteDisableFailed' | 'conversation.backgroundLoadFailed' | 'read.markReadFailed' | 'storage.failed' | 'sync.failed' | 'draft.saveFailed' | 'history.returnLatestFailed' | 'pinned.forbidden' | 'pinned.network' | 'pinned.contract' | 'pinned.unsupported' | 'pinned.failed' | 'pinned.previewUnavailable' | 'pinned.locateFailed' | 'pinned.recalled' | 'pinned.deleted' | 'pinned.protected' | 'pinned.pinAction' | 'pinned.unpinAction' | 'pinned.unpinConfirm' | 'pinned.cancelAction' | 'lifecycle.missingLoginState' | 'lifecycle.prepareFailed' | 'lifecycle.missingConnectParams' | 'lifecycle.connectFailed' | 'lifecycle.disposed' | 'lifecycle.connectionOccupied' | 'lifecycle.connectionCoordinationUnavailable' | 'forward.emptyInput' | 'forward.allSkipped' | 'forward.partialSkipped' | 'forward.done' | 'forward.failed';
6791
+ type ImServiceTextKey = 'common.notConnected' | 'common.selectOrOpenConversation' | 'common.conversationTypeNotReady' | 'common.conversationNotReady' | `recall.${RecallFailReason}` | `edit.${EditFailReason}` | 'localDelete.done' | 'localDelete.notFound' | 'localDelete.inFlight' | 'localDelete.failed' | 'channelDelete.notFound' | 'channelDelete.unsupported' | 'channelDelete.notSent' | 'channelDelete.unavailable' | 'channelDelete.forbidden' | 'channelDelete.timeout' | 'channelDelete.failed' | 'channelDelete.disconnected' | 'directBlock.contactRequired' | 'groupBlock.left' | 'groupBlock.removed' | 'groupBlock.dismissed' | 'groupBlock.unknownRestricted' | 'channelBlock.guest' | 'channelBlock.left' | 'channelBlock.removed' | 'channelBlock.dismissed' | 'channelBlock.muted' | 'channelBlock.allMembersMuted' | 'channelBlock.currentUserMuted' | 'channelBlock.blacklisted' | 'channelBlock.unknownRestricted' | 'channelProfile.loadFailed' | 'channelProfile.notFound' | 'channelProfile.retryAction' | 'channelMembers.title' | 'channelMembers.searchPlaceholder' | 'channelMembers.loading' | 'channelMembers.loadFailed' | 'channelMembers.retryAction' | 'channelMembers.empty' | 'channelMembers.loadingMore' | 'channelMembers.loadMoreFailed' | 'channelMembers.exhausted' | 'channelMembers.loadMoreAction' | 'label.image' | 'label.video' | 'label.file' | 'label.sticker' | 'send.failed' | 'send.retryFailed' | 'send.cancelFailed' | 'send.mediaFailed' | 'send.mediaEmpty' | 'send.mediaCancelled' | 'send.mediaCountLimit' | 'send.mediaTooLarge' | 'send.mediaFormatMismatch' | 'send.imageFormatUnsupported' | 'send.videoTooLong' | 'send.videoDurationUnavailable' | 'send.voiceEmpty' | 'send.voiceStorageNotConfigured' | 'send.voiceCancelled' | 'send.voiceFailed' | 'media.uploadWaiting' | 'media.voiceNotReady' | 'media.voiceLoadEmpty' | 'media.voiceLoadFailed' | 'media.videoOpenEmpty' | 'media.videoLoadFailed' | 'media.imageInvalid' | 'media.imageLoadFailed' | 'media.fileDownloadEmpty' | 'media.fileDownloadFailed' | 'conversation.muteEnableFailed' | 'conversation.muteDisableFailed' | 'conversation.backgroundLoadFailed' | 'read.markReadFailed' | 'storage.failed' | 'sync.failed' | 'draft.saveFailed' | 'history.returnLatestFailed' | 'pinned.forbidden' | 'pinned.network' | 'pinned.contract' | 'pinned.unsupported' | 'pinned.failed' | 'pinned.previewUnavailable' | 'pinned.locateFailed' | 'pinned.messageNotFound' | 'pinned.recalled' | 'pinned.deleted' | 'pinned.protected' | 'pinned.pinAction' | 'pinned.unpinAction' | 'pinned.unpinConfirm' | 'pinned.cancelAction' | 'lifecycle.missingLoginState' | 'lifecycle.prepareFailed' | 'lifecycle.missingConnectParams' | 'lifecycle.connectFailed' | 'lifecycle.disposed' | 'lifecycle.connectionOccupied' | 'lifecycle.connectionCoordinationUnavailable' | 'forward.emptyInput' | 'forward.allSkipped' | 'forward.partialSkipped' | 'forward.done' | 'forward.failed';
6703
6792
 
6704
6793
  /**
6705
6794
  * 本文件管理图片和视频本地预览地址的完整生命周期。