k2-im 0.1.17 → 0.1.18
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 +1 -1
- package/dist/chat-kit-pinia.d.ts +74 -17
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +74 -17
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +75 -18
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-ACU6MYJB.js +2 -0
- package/dist/chunk-DFJWOEGQ.js +7 -0
- package/dist/{chunk-RT3IRN3M.js → chunk-EBFUMES6.js} +1 -1
- package/dist/{chunk-C6HKXQPW.js → chunk-G7IJFU6R.js} +1 -1
- package/dist/{chunk-VYHK4LIZ.js → chunk-IXEEIWDI.js} +1 -1
- package/dist/chunk-LCNFKUGH.js +1 -0
- package/dist/chunk-RKZTPXBQ.js +1 -0
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +124 -21
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +123 -20
- package/dist/sdk.js +1 -1
- package/package.json +1 -3
- package/dist/chunk-FA3RKHIR.js +0 -2
- package/dist/chunk-GBIHVXZP.js +0 -1
- package/dist/chunk-K6P5ZYHG.js +0 -7
- package/dist/chunk-KTWXKQ4J.js +0 -1
package/dist/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{A as createLazyBrowserApiProtocolClient}from'./chunk-
|
|
1
|
+
export{A as createLazyBrowserApiProtocolClient}from'./chunk-DFJWOEGQ.js';import'./chunk-RKZTPXBQ.js';import'./chunk-WOT6VMZA.js';
|
package/dist/chat-kit-pinia.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as pinia from 'pinia';
|
|
2
2
|
import { Pinia, Store } from 'pinia';
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/** 媒体业务类型:实现据此选对象存储逻辑桶;sticker 对应 app-sticker。 */
|
|
5
5
|
type MediaKind = 'image' | 'video' | 'voice' | 'file' | 'sticker';
|
|
6
6
|
|
|
7
7
|
/** 会话类型。P0 只用 direct / group。 */
|
|
@@ -2492,20 +2492,69 @@ interface MembershipJoinResult {
|
|
|
2492
2492
|
outcome: MembershipJoinOutcome;
|
|
2493
2493
|
}
|
|
2494
2494
|
|
|
2495
|
-
/**
|
|
2496
|
-
interface
|
|
2495
|
+
/** 服务端按逻辑桶签发的 S3 临时上传凭证(已归一为 SDK 合同字段)。 */
|
|
2496
|
+
interface MediaUploadCredentials {
|
|
2497
|
+
/** STS access key id(服务端字段 `access_key_id`)。 */
|
|
2498
|
+
accessKeyId: string;
|
|
2499
|
+
/** STS secret access key(服务端字段 `secret_key`)。 */
|
|
2500
|
+
secretAccessKey: string;
|
|
2501
|
+
/** STS session token(服务端字段 `session_token`)。 */
|
|
2502
|
+
sessionToken: string;
|
|
2503
|
+
/** 服务端声明的过期时间(Unix 秒);缺省时该凭证只受 SDK 本地 TTL 约束。 */
|
|
2504
|
+
expiresAtSeconds?: number;
|
|
2505
|
+
/** 服务端解析出的**物理桶**名,可能与申请用的逻辑桶名不同;PutObject 必须用它。 */
|
|
2497
2506
|
bucket: string;
|
|
2498
|
-
|
|
2507
|
+
/** 物理桶所在区域,决定上传端点;不再从身份池 id 前缀推断。 */
|
|
2508
|
+
region: string;
|
|
2509
|
+
/** 对象 key 前缀;STS 策略只允许写该前缀下的对象,SDK 生成的 key 必须以它开头。 */
|
|
2510
|
+
keyPrefix?: string;
|
|
2511
|
+
/** 公开访问域名(已归一为带 scheme、无尾斜杠);写进消息体的媒体 URL 以它为准。 */
|
|
2512
|
+
dnsPoint: string;
|
|
2513
|
+
/** 服务端身份标识;SDK 不使用,仅原样透出供宿主排查。 */
|
|
2514
|
+
identityId?: string;
|
|
2515
|
+
}
|
|
2516
|
+
/** SDK 向宿主申请凭证时给出的上下文。 */
|
|
2517
|
+
interface MediaUploadCredentialsRequest {
|
|
2518
|
+
/** 宿主 env 配置的**逻辑桶名**;宿主原样提交给自己的 BFF。 */
|
|
2519
|
+
bucket: string;
|
|
2520
|
+
/** true 表示 SDK 判定旧凭证不可用(上传被拒或已过期),宿主必须真的重新请求,不得返回自己的缓存。 */
|
|
2521
|
+
forceRefresh: boolean;
|
|
2499
2522
|
}
|
|
2523
|
+
/**
|
|
2524
|
+
* 宿主注入的取凭证函数:按逻辑桶名向宿主自己的 BFF 申请一次 STS 临时凭证。
|
|
2525
|
+
*
|
|
2526
|
+
* @remarks 这里刻意不带 `AbortSignal`:同一逻辑桶的并发上传会共用同一次在途请求,
|
|
2527
|
+
* 单个上传被取消不应连带中止其它上传正在等待的凭证。宿主实现应当是「打一次接口」的纯函数,
|
|
2528
|
+
* 缓存、TTL、单飞与失败重签由 SDK 负责。
|
|
2529
|
+
*/
|
|
2530
|
+
type MediaUploadCredentialsProvider = (request: MediaUploadCredentialsRequest) => Promise<MediaUploadCredentials>;
|
|
2531
|
+
|
|
2500
2532
|
interface MediaTransferAdapterConfig {
|
|
2501
|
-
/**
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2533
|
+
/**
|
|
2534
|
+
* 按**逻辑桶名**申请 S3 临时上传凭证;由宿主实现(打自己的 BFF),SDK 不硬编码接口路径与前缀。
|
|
2535
|
+
* 缓存、TTL、同桶单飞与失败重签由本 adapter 负责,宿主实现应当是「打一次接口」的纯函数。
|
|
2536
|
+
*/
|
|
2537
|
+
getUploadCredentials: MediaUploadCredentialsProvider;
|
|
2538
|
+
/** 各媒体类型的**逻辑桶名**(宿主 env 配置,如 image→app-image);物理桶以服务端回包为准。 */
|
|
2539
|
+
buckets: Record<MediaKind, string>;
|
|
2540
|
+
/**
|
|
2541
|
+
* CHANNEL(社群)会话按媒体类型覆盖的逻辑桶名;未覆盖的类型继续使用 `buckets`。
|
|
2542
|
+
* iOS 与 prod H5 都为社群媒体准备了独立桶,但对「社群文件是否也走社群桶」结论相反,
|
|
2543
|
+
* 因此这里只提供按类型覆盖的机制,由部署配置决定覆盖哪些类型。
|
|
2544
|
+
*/
|
|
2545
|
+
channelBuckets?: Partial<Record<MediaKind, string>>;
|
|
2546
|
+
/** 群、社群与用户头像使用的独立 app-header 逻辑桶名;不得复用聊天图片桶。 */
|
|
2547
|
+
avatarBucket?: string;
|
|
2548
|
+
/** 是否启用 S3 Transfer Acceleration(默认 true;`cn-` 分区没有加速端点,会强制关闭)。 */
|
|
2508
2549
|
useAccelerateEndpoint?: boolean;
|
|
2550
|
+
/**
|
|
2551
|
+
* 是否允许超过分片阈值(16MiB)的上传使用 S3 分片上传(默认 true)。
|
|
2552
|
+
*
|
|
2553
|
+
* 分片相比单次 PUT 需要各物理桶的 CORS 额外放行 POST(Create/CompleteMultipartUpload)、
|
|
2554
|
+
* DELETE(AbortMultipartUpload)并 `ExposeHeaders: ETag`;未配齐时分片会直接失败。
|
|
2555
|
+
* 部署可置 false 立即退回全量单次 PutObject(大文件回到单连接与整包内存的旧行为),无需发版。
|
|
2556
|
+
*/
|
|
2557
|
+
multipartUpload?: boolean;
|
|
2509
2558
|
/**
|
|
2510
2559
|
* 媒体发送阶段的并发上限;由 im-core 消费,adapter 本身仍只负责单个上传任务。
|
|
2511
2560
|
* 缺省为 4,允许 1-6;高并发会提高吞吐,也会增加文件加密的内存峰值。
|
|
@@ -5137,12 +5186,20 @@ interface ImSettingsApi {
|
|
|
5137
5186
|
}
|
|
5138
5187
|
|
|
5139
5188
|
/**
|
|
5140
|
-
* 媒体对象存储(S3)配置:由宿主注入的**部署基建配置**,SDK
|
|
5141
|
-
*
|
|
5142
|
-
*
|
|
5143
|
-
*
|
|
5144
|
-
*
|
|
5145
|
-
*
|
|
5189
|
+
* 媒体对象存储(S3)配置:由宿主注入的**部署基建配置**,SDK 不硬编码逻辑桶名,也不硬编码取凭证的接口路径。
|
|
5190
|
+
*
|
|
5191
|
+
* 形状 = im-browser `MediaTransferAdapterConfig`:必填 `getUploadCredentials`(按逻辑桶名向宿主自己的 BFF 申请
|
|
5192
|
+
* STS 临时凭证)+ 各 `MediaKind`(image/video/voice/file/sticker)的**逻辑桶名** + 可选 `channelBuckets`(社群会话
|
|
5193
|
+
* 按类型覆盖)、`avatarBucket`、`useAccelerateEndpoint`、`multipartUpload`、`maxConcurrentUploads`。
|
|
5194
|
+
*
|
|
5195
|
+
* 上传凭证由业务后端按登录态签发(与 iOS、prod H5 同一个接口),回包同时给出**物理桶**、区域、`key_prefix` 和
|
|
5196
|
+
* 公开访问域名;SDK 据此拼 object key 与消息体 URL,宿主 env 里配的只是申请凭证用的逻辑桶名。凭证缓存(本地
|
|
5197
|
+
* 1 小时、按服务端过期时间提前 5 分钟失效)、同桶单飞与失败重签由 SDK 负责,宿主只需提供「打一次接口」的纯函数。
|
|
5198
|
+
*
|
|
5199
|
+
* ⚠ 各 bucket 需在对象存储侧配置 CORS 允许本站 origin 的 PUT + GET;超过 16MiB 的上传走 S3 分片,另需放行
|
|
5200
|
+
* POST(Create/CompleteMultipartUpload)、DELETE(AbortMultipartUpload)并 ExposeHeaders: ETag。CORS 未配齐时
|
|
5201
|
+
* 可用 `multipartUpload: false` 退回全量单次 PutObject。
|
|
5202
|
+
* ⚠ 并发字段只由 SDK core 的媒体编排消费;adapter 会忽略该字段。高内存设备可设置 5-6,低内存设备建议 2-3。
|
|
5146
5203
|
*/
|
|
5147
5204
|
type ImMediaConfig = MediaTransferAdapterConfig;
|
|
5148
5205
|
/**
|