k2-im 0.2.16 → 0.2.17
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/chat-kit-pinia.d.ts +55 -11
- package/dist/chat-kit-vue.d.ts +5 -5
- package/dist/chat-kit.d.ts +101 -11
- package/dist/index.d.ts +104 -13
- package/dist/modules/im-browser/src/http/cm-http-adapter.js +1 -1
- package/dist/modules/im-browser/src/http/request-timeout.js +1 -0
- package/dist/modules/im-browser/src/http/requests/core-json-request.js +1 -1
- package/dist/modules/im-browser/src/http/requests/get-conversation-background-presets.js +1 -1
- package/dist/modules/im-browser/src/http/requests/pull-offline-channel.js +1 -1
- package/dist/modules/im-browser/src/media/media-download-request.js +1 -0
- package/dist/modules/im-browser/src/media/media-downloader.js +1 -1
- package/dist/modules/im-browser/src/media/media-preview-preparation-executor.js +1 -1
- package/dist/modules/im-browser/src/media/media-transfer-policy.js +1 -1
- package/dist/modules/im-browser/src/storage/indexed-db-storage-adapter.js +1 -1
- package/dist/modules/im-chat-kit/src/runtime/chat-runtime.js +1 -1
- package/dist/modules/im-chat-kit/src/runtime/media-object-url-registry.js +1 -1
- package/dist/modules/im-chat-kit/src/services/media.service.js +1 -1
- package/dist/modules/im-chat-kit/src/utils/media-transfer-presentation.js +1 -1
- package/dist/modules/im-core/src/mapping/group-offline-mapper.js +1 -1
- package/dist/modules/im-core/src/message-flow/media/media-sender.js +1 -1
- package/dist/modules/im-sdk/src/create-im-client.js +1 -1
- package/dist/modules/im-sdk/src/product/conversation-handle.js +1 -1
- package/dist/modules/im-sdk/src/product/media.js +1 -1
- package/dist/modules/im-sdk/src/runtime/history-page-size.js +1 -0
- package/dist/modules/im-sdk/src/runtime/local-media-preview.js +1 -1
- package/dist/modules/im-sdk/src/runtime/recent-history-fetcher.js +1 -1
- package/dist/modules/im-sdk/src/runtime/session-runtime.js +1 -1
- package/dist/sdk.d.ts +49 -10
- package/package.json +1 -1
package/dist/sdk.d.ts
CHANGED
|
@@ -2553,13 +2553,13 @@ interface MediaTransferAdapterConfig {
|
|
|
2553
2553
|
useAccelerateEndpoint?: boolean;
|
|
2554
2554
|
/**
|
|
2555
2555
|
* 统一允许 S3 分片上传和 Range 分段下载,默认 false(单次 PUT / 普通 GET)。
|
|
2556
|
-
* 显式 true
|
|
2556
|
+
* 显式 true 后,上传对象达到 8 MiB 使用 Multipart;上传片长与下载段长均为 16 MiB。
|
|
2557
2557
|
* 开启前各桶须支持分片请求方法,并暴露上传 ETag、下载 Content-Range 与强 ETag。
|
|
2558
2558
|
* @example { multipartTransfer: true } 同时允许大资源分片上传、下载。
|
|
2559
2559
|
*/
|
|
2560
2560
|
multipartTransfer?: boolean;
|
|
2561
2561
|
/**
|
|
2562
|
-
*
|
|
2562
|
+
* 总开关开启后,是否允许达到分片阈值(8 MiB)的上传使用 S3 分片上传。
|
|
2563
2563
|
*
|
|
2564
2564
|
* 分片相比单次 PUT 需要各物理桶的 CORS 额外放行 POST(Create/CompleteMultipartUpload)、
|
|
2565
2565
|
* DELETE(AbortMultipartUpload)并 `ExposeHeaders: ETag`;未配齐时分片会直接失败。
|
|
@@ -2575,8 +2575,8 @@ interface MediaTransferAdapterConfig {
|
|
|
2575
2575
|
/**
|
|
2576
2576
|
* 媒体发送阶段的并发上限;由 im-core 消费,限制媒体任务数而非分片请求数。
|
|
2577
2577
|
*
|
|
2578
|
-
*
|
|
2579
|
-
* 缺省 5
|
|
2578
|
+
* 并发按媒体体积分两档:小于分片阈值(8 MiB)的非视频媒体走小文件档,
|
|
2579
|
+
* 缺省 5;视频与达到阈值(或字节数未知)的内容走大文件档,缺省 3。
|
|
2580
2580
|
* 分档只限制媒体任务数;实际 PUT/UploadPart 另受 adapter 的六路数据请求限制。
|
|
2581
2581
|
* 两档都只接受 1-6 的整数,超出范围由 core 显式报错。
|
|
2582
2582
|
* - 传一个数字:所有媒体共用这一个并发数,与分档前的语义一致。
|
|
@@ -2603,11 +2603,12 @@ interface MediaTransferAdapterConfig {
|
|
|
2603
2603
|
* - `multipart-etag-missing`:分片响应读不到 ETag,**桶 CORS 缺 `ExposeHeaders: ETag`**,不是网络问题。
|
|
2604
2604
|
* - `multipart-abort-failed`:分片失败后的 `AbortMultipartUpload` 清理本身失败,已上传分片可能残留并计费。
|
|
2605
2605
|
* - `multipart-upload-failed`:分片上传因其它原因失败;`cause` 保留原始错误,消息列出分片对 CORS 的额外要求。
|
|
2606
|
+
* - `download-timeout`:下载连续 30 秒无新数据,或单次 GET 超过 30 分钟。
|
|
2606
2607
|
* - `download-range-invalid`:分段状态、范围、长度或可读响应头不符合合同。
|
|
2607
2608
|
* - `download-object-changed`:分段之间的强 ETag 或总长度改变,拒绝混合不同文件版本。
|
|
2608
2609
|
* - `download-range-failed`:下载返回非成功 HTTP 状态。
|
|
2609
2610
|
*/
|
|
2610
|
-
type MediaTransferErrorCode = 'upload-timeout' | 'bucket-unconfigured' | 'credentials-provider-missing' | 'credentials-request-failed' | 'credentials-invalid' | 'upload-source-invalid' | 'upload-size-exceeded' | 'upload-resume-unavailable' | 'multipart-etag-missing' | 'multipart-abort-failed' | 'multipart-upload-failed' | 'download-range-invalid' | 'download-object-changed' | 'download-range-failed';
|
|
2611
|
+
type MediaTransferErrorCode = 'upload-timeout' | 'bucket-unconfigured' | 'credentials-provider-missing' | 'credentials-request-failed' | 'credentials-invalid' | 'upload-source-invalid' | 'upload-size-exceeded' | 'upload-resume-unavailable' | 'multipart-etag-missing' | 'multipart-abort-failed' | 'multipart-upload-failed' | 'download-timeout' | 'download-range-invalid' | 'download-object-changed' | 'download-range-failed';
|
|
2611
2612
|
/** 媒体传输统一错误:携带稳定业务码 + 可选底层 cause(诊断用,永不携带凭证明文)。 */
|
|
2612
2613
|
declare class MediaTransferError extends Error {
|
|
2613
2614
|
readonly code: MediaTransferErrorCode;
|
|
@@ -5304,16 +5305,26 @@ interface ImMediaTasksApi {
|
|
|
5304
5305
|
includeDisplayPoster?: boolean;
|
|
5305
5306
|
}) => Promise<(TKind extends 'video' ? LocalVideoPreviewMetadata : ImagePreviewMetadata) | null>;
|
|
5306
5307
|
/**
|
|
5307
|
-
*
|
|
5308
|
+
* 从本地视频或已有截图生成气泡封面;传入消息身份时复用独立持久缓存,不下载或上传。
|
|
5308
5309
|
*
|
|
5309
5310
|
* 长边最多 960px 且不放大原视频;与发送预读共用同一解码执行器。返回 Blob 由宿主创建和释放
|
|
5310
5311
|
* object URL,不能作为 localPreviewMetadata 发进消息正文。读取失败返回 null 并记录诊断;
|
|
5311
5312
|
* 宿主取消抛 AbortError,运行时失效或未装配能力时抛与 prepareLocalPreview 相同的明确错误。
|
|
5312
|
-
* @param input.file 本地或已解密的完整视频 Blob
|
|
5313
|
+
* @param input.file 本地或已解密的完整视频 Blob;已有 poster 时可以不传。
|
|
5314
|
+
* @param input.poster 发送前已经提取的截图,避免重新加载视频抽帧。
|
|
5315
|
+
* @param input.message 可选消息身份,用于持久保存封面。
|
|
5316
|
+
* @param input.expectedResourceUrl 取得源文件前的资源地址,防止换图后的旧结果污染缓存。
|
|
5313
5317
|
* @param input.signal 页面卸载、换源或切会话时取消这次抽帧。
|
|
5314
5318
|
*/
|
|
5315
5319
|
prepareLocalVideoPoster: (input: {
|
|
5316
|
-
file
|
|
5320
|
+
file?: Blob;
|
|
5321
|
+
poster?: Blob;
|
|
5322
|
+
message?: ImMessageRef;
|
|
5323
|
+
expectedResourceUrl?: string;
|
|
5324
|
+
signal?: AbortSignal;
|
|
5325
|
+
}) => Promise<Blob | null>;
|
|
5326
|
+
/** 只读视频气泡封面缓存;不下载、不抽帧,未命中返回 null。 */
|
|
5327
|
+
getCachedVideoPoster: (message: ImMessageRef, options?: {
|
|
5317
5328
|
signal?: AbortSignal;
|
|
5318
5329
|
}) => Promise<Blob | null>;
|
|
5319
5330
|
/**
|
|
@@ -5329,6 +5340,34 @@ interface ImMediaTasksApi {
|
|
|
5329
5340
|
file: Blob;
|
|
5330
5341
|
signal?: AbortSignal;
|
|
5331
5342
|
}) => Promise<Blob | null>;
|
|
5343
|
+
/**
|
|
5344
|
+
* 从本机原图生成独立的静态显示图,供 PC/H5 气泡使用;不下载、不上传、不改原图与消息尺寸。
|
|
5345
|
+
* 传入消息引用时先查独立的显示图缓存;稳定远端资源的结果可持久保存,本地待上传资源只生成。
|
|
5346
|
+
* 所有浏览器可解码格式均处理;最长边不超过 maxSize 且不放大,透明图优先保留透明度。
|
|
5347
|
+
* WebP 质量 0.85,最低 0.82,目标 256 KiB、最多 512 KiB;超过字节预算时可继续缩小,失败返回 null 并记录诊断。
|
|
5348
|
+
* 取消、账号失效、能力缺失和非法参数明确拒绝;返回 Blob 的 object URL 由宿主管理。
|
|
5349
|
+
* @param input.file 原始或已解密的完整图片 Blob,不会被修改。
|
|
5350
|
+
* @param input.maxSize 显示图最长边上限,必须是 1 到 2048 的整数。
|
|
5351
|
+
* @param input.signal 页面退出、资源失效时取消准备。
|
|
5352
|
+
* @param input.message 可选的精确消息引用,用于按消息、合集项、资源版本和尺寸隔离显示图缓存。
|
|
5353
|
+
* @param input.expectedResourceUrl 取得 file 前记录的消息资源地址;与 message 配合使用,不匹配时返回 null,防止旧文件写入新资源缓存。
|
|
5354
|
+
* @example const display = await client.media.prepareLocalImageDisplay({ file: original, maxSize: 1440 })
|
|
5355
|
+
*/
|
|
5356
|
+
prepareLocalImageDisplay: (input: {
|
|
5357
|
+
file: Blob;
|
|
5358
|
+
maxSize: number;
|
|
5359
|
+
message?: ImMessageRef;
|
|
5360
|
+
expectedResourceUrl?: string;
|
|
5361
|
+
signal?: AbortSignal;
|
|
5362
|
+
}) => Promise<Blob | null>;
|
|
5363
|
+
/**
|
|
5364
|
+
* 仅读取指定消息和尺寸的持久显示图,不下载原图、不编码;未命中或读取期间资源失效返回 null。
|
|
5365
|
+
* maxSize 必须是 1 到 2048 的整数;取消、账号失效、存储读取失败明确拒绝。
|
|
5366
|
+
*/
|
|
5367
|
+
getCachedImageDisplay: (message: ImMessageRef, options: {
|
|
5368
|
+
maxSize: number;
|
|
5369
|
+
signal?: AbortSignal;
|
|
5370
|
+
}) => Promise<Blob | null>;
|
|
5332
5371
|
}
|
|
5333
5372
|
|
|
5334
5373
|
/**
|
|
@@ -6032,7 +6071,7 @@ declare function resolveImEmojiToken(token: string): ImEmojiCatalogEntry | undef
|
|
|
6032
6071
|
* 1 小时、按服务端过期时间提前 5 分钟失效)、同桶并发请求复用和失败后重新签发由 SDK 负责,宿主只需提供「打一次接口」的纯函数。
|
|
6033
6072
|
*
|
|
6034
6073
|
* 默认单次 PUT/GET;仅 multipartTransfer=true 才允许大资源分片上传、下载。
|
|
6035
|
-
* 各 bucket 需在对象存储侧配置 CORS 允许本站 origin 的 PUT + GET
|
|
6074
|
+
* 各 bucket 需在对象存储侧配置 CORS 允许本站 origin 的 PUT + GET;开启分片后,达到 8 MiB 的上传另需放行
|
|
6036
6075
|
* POST(Create/CompleteMultipartUpload)、DELETE(AbortMultipartUpload)并 ExposeHeaders: ETag。CORS 未配齐时
|
|
6037
6076
|
* 下载还需暴露 Content-Range 与强 ETag;multipartTransfer=false 统一关闭分片上传和下载。
|
|
6038
6077
|
* ⚠ 并发字段只由 SDK core 的媒体编排消费;adapter 会忽略该字段。高内存设备可设置 5-6,低内存设备建议 2-3。
|
|
@@ -6641,7 +6680,7 @@ interface ImResourceUploadResult {
|
|
|
6641
6680
|
/** 独立资源上传器;不创建消息、Outbox 项或 client.media 任务。 */
|
|
6642
6681
|
interface ImResourceUploader {
|
|
6643
6682
|
/**
|
|
6644
|
-
* 上传原始文件。默认单次 PUT;multipartTransfer=true 且
|
|
6683
|
+
* 上传原始文件。默认单次 PUT;multipartTransfer=true 且 ≥8 MiB 才允许分片,沿用既有凭证刷新策略。
|
|
6645
6684
|
* 失败会清理未完成分片并保留错误,显式重试须再次调用 upload;不会退回旧 HTTP 上传接口。
|
|
6646
6685
|
* @throws 取消为 AbortError;若取消后的分片清理失败,仍报告 multipart-abort-failed。
|
|
6647
6686
|
* 配置、凭证、S3 或清理失败直接拒绝;dispose 后不可再使用。
|