k2-im 0.1.27 → 0.1.28

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{A as createLazyBrowserApiProtocolClient}from'./chunk-MYXIQBZ4.js';import'./chunk-PY2CC436.js';import'./chunk-WOT6VMZA.js';
1
+ export{A as createLazyBrowserApiProtocolClient}from'./chunk-FQJBDSXT.js';import'./chunk-O7GQQMEW.js';import'./chunk-WOT6VMZA.js';
@@ -185,8 +185,10 @@ interface ImVideoBody {
185
185
  width: number;
186
186
  /** 视频像素高(BMessage.height)。 */
187
187
  height: number;
188
- /** 时长(秒,BMessage.duration;proto 单位秒,contentType=3|4 有效)。 */
188
+ /** 时长(秒,可含小数);移动端旧消息的毫秒值由 SDK 转换,宿主不得猜单位。 */
189
189
  duration?: number;
190
+ /** SDK 已确认时长为秒的标记;兼容旧缓存时防止重复转换。缺省仍按公开 API 的秒约定传入。 */
191
+ durationUnit?: 'seconds';
190
192
  /** 封面帧原始字节(本地首帧截图,内嵌不单传,对应 BMessage.thumbData bytes)。UI 转 blob 渲染,无需下载即可展示封面。 */
191
193
  thumbData?: Uint8Array;
192
194
  /** 视频文件 MD5(BMessage.MD5;Android 当前未赋值,保留可选)。 */
@@ -4525,7 +4527,7 @@ interface ConversationMessageApi {
4525
4527
  sendText: (text: string, options?: TextMessageOptions) => Promise<SendMessageResult>;
4526
4528
  /** 分享个人、普通群或社群名片;发送目标仍由当前 handle 的精确会话身份决定。 */
4527
4529
  sendContact: (contact: ContactCardInput, options?: ContactMessageOptions) => Promise<SendMessageResult>;
4528
- /** 读取图片 Blob 并进入既有图片上传/加密/Outbox 链路;图片 caption 当前显式 unsupported。 */
4530
+ /** 发送 JPEG、PNG 或 WebP 原图;核对文件头和 MIME,不支持的格式返回 IM_SDK_IMAGE_FORMAT_UNSUPPORTED。图片 caption 当前显式 unsupported。 */
4529
4531
  sendImage: (file: File | Blob, options?: ImageMessageOptions) => Promise<SendMessageResult>;
4530
4532
  /** 读取视频 Blob 并发送;caption 使用已验证的 BMessage.describe。 */
4531
4533
  sendVideo: (file: File | Blob, options?: VideoMessageOptions) => Promise<SendMessageResult>;
@@ -4542,7 +4544,8 @@ interface ConversationMessageApi {
4542
4544
  * SDK 内部回落成普通图片/视频消息(三端一致)。**校验是整条的**——某一项超限会拒绝整条,
4543
4545
  * 因为协议上它就是一条消息,没有「发一半」这种状态。
4544
4546
  *
4545
- * GIF 不能进合集(三端一致),调用方要先按 MIME 把它拆出去走 `sendGif`。
4547
+ * 图片仅支持 JPEG、PNG、WebP,任一项格式不支持时整批返回 IM_SDK_IMAGE_FORMAT_UNSUPPORTED。
4548
+ * GIF 不能进合集,调用方应先用 Chat Kit 分类工具拆出去走 `sendGif`。
4546
4549
  */
4547
4550
  sendMediaAlbum: (items: readonly MediaAlbumItemInput[], options?: MediaAlbumMessageOptions) => Promise<SendMessageResult>;
4548
4551
  /** 发送已经托管在远端的静态贴图;资源和贴图包身份均为必填合同。 */
@@ -4994,6 +4997,19 @@ interface ImMediaTasksApi {
4994
4997
  file: Blob;
4995
4998
  signal?: AbortSignal;
4996
4999
  }) => Promise<(TKind extends 'video' ? VideoPreviewMetadata : ImagePreviewMetadata) | null>;
5000
+ /**
5001
+ * 从本地视频提取仅供页面展示的高清 JPEG 封面,不上传、不下载、不写缓存。
5002
+ *
5003
+ * 长边最多 960px 且不放大原视频;与发送预读共用同一解码执行器。返回 Blob 由宿主创建和释放
5004
+ * object URL,不能作为 localPreviewMetadata 发进消息正文。读取失败返回 null 并记录诊断;
5005
+ * 宿主取消抛 AbortError,运行时失效或未装配能力时抛与 prepareLocalPreview 相同的明确错误。
5006
+ * @param input.file 本地或已解密的完整视频 Blob。
5007
+ * @param input.signal 页面卸载、换源或切会话时取消这次抽帧。
5008
+ */
5009
+ prepareLocalVideoPoster: (input: {
5010
+ file: Blob;
5011
+ signal?: AbortSignal;
5012
+ }) => Promise<Blob | null>;
4997
5013
  }
4998
5014
 
4999
5015
  /**
@@ -6197,7 +6213,7 @@ declare function useImApplicationsStore(pinia?: Pinia): ImApplicationsStore;
6197
6213
  * 二期收敛:kit 框架无关层不再直接产中文,改产本联合里的码 + 参数(如 {reason}/{label}/{size}),由宿主经 im-i18n 渲染。
6198
6214
  * 动态原始报错(error.message)作为 `{reason}` 参数拼接,不入 catalog(属诊断,不翻译)。
6199
6215
  */
6200
- 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.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' | 'forward.emptyInput' | 'forward.allSkipped' | 'forward.partialSkipped' | 'forward.done' | 'forward.failed';
6216
+ 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' | 'forward.emptyInput' | 'forward.allSkipped' | 'forward.partialSkipped' | 'forward.done' | 'forward.failed';
6201
6217
 
6202
6218
  /**
6203
6219
  * 本文件管理图片和视频本地预览地址的完整生命周期。