k2-im 0.1.16 → 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/i18n.d.ts CHANGED
@@ -10,7 +10,7 @@ declare const DEFAULT_LOCALE: ImLocale;
10
10
  */
11
11
  declare function normalizeImLocale(input: string): ImLocale;
12
12
 
13
- /** 媒体业务类型:实现据此选对象存储 bucket/host;sticker 对应 app-sticker。 */
13
+ /** 媒体业务类型:实现据此选对象存储逻辑桶;sticker 对应 app-sticker。 */
14
14
  type MediaKind = 'image' | 'video' | 'voice' | 'file' | 'sticker';
15
15
 
16
16
  /** 会话类型。P0 只用 direct / group。 */
package/dist/i18n.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-SXY56EVC.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-7HTZ3OXY.js';import'./chunk-KZM3GLRL.js';import'./chunk-WOT6VMZA.js';
1
+ import'./chunk-SXY56EVC.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-G7IJFU6R.js';import'./chunk-RKZTPXBQ.js';import'./chunk-WOT6VMZA.js';
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ declare const DEFAULT_LOCALE: ImLocale;
10
10
  */
11
11
  declare function normalizeImLocale(input: string): ImLocale;
12
12
 
13
- /** 媒体业务类型:实现据此选对象存储 bucket/host;sticker 对应 app-sticker。 */
13
+ /** 媒体业务类型:实现据此选对象存储逻辑桶;sticker 对应 app-sticker。 */
14
14
  type MediaKind = 'image' | 'video' | 'voice' | 'file' | 'sticker';
15
15
 
16
16
  /** 会话类型。P0 只用 direct / group。 */
@@ -1345,6 +1345,13 @@ interface ImLoginContext {
1345
1345
  interface ImAuthIssue {
1346
1346
  code: number;
1347
1347
  reason: 'token_expired' | 'kicked' | 'banned' | 'unknown';
1348
+ /**
1349
+ * 服务端记录的账号上次登录时间(毫秒时间戳),用于宿主提示「你的账号于某时在其他设备登录」。
1350
+ *
1351
+ * 只有登录被拒的被踢路径(CMLoginAck.nLastLoginTime)能拿到该时间;运行期收到
1352
+ * CM_KICKOUT_NOTIFICATION 时协议不带时间,此处为 undefined,由宿主自行决定如何展示。
1353
+ */
1354
+ lastLoginTime?: number;
1348
1355
  }
1349
1356
  interface ImAuthProvider {
1350
1357
  /** 返回登录上下文;返回 null 表示当前不可登录(缺凭据)。 */
@@ -1677,6 +1684,45 @@ interface ImProfilePort {
1677
1684
  clearCache?: () => void;
1678
1685
  }
1679
1686
 
1687
+ /** 会话收藏可展示的内容类型;与 iOS `isSupportCollectionMsgType` 对齐。 */
1688
+ type ImSessionFavoriteKind = 'text' | 'image' | 'video' | 'voice' | 'location' | 'file';
1689
+ /** 服务端一条会话收藏快照;列表以 HTTP 为准,不回写原消息。 */
1690
+ interface ImSessionFavoriteItem$1 {
1691
+ readonly collectId: string;
1692
+ readonly msgId: string;
1693
+ readonly kind: ImSessionFavoriteKind;
1694
+ readonly senderId: string;
1695
+ readonly senderName: string;
1696
+ readonly avatarUrl: string;
1697
+ readonly createdAt: string;
1698
+ readonly text: string;
1699
+ readonly imageUrl: string;
1700
+ readonly fileName: string;
1701
+ readonly body: Readonly<Record<string, unknown>>;
1702
+ readonly conversation: ConversationRef | null;
1703
+ }
1704
+ /** 把一条会话消息写成收藏快照时所需的已校验字段。 */
1705
+ interface ImSessionFavoriteWriteInput {
1706
+ readonly messageId: string;
1707
+ readonly conversation: ConversationRef;
1708
+ readonly senderId: string;
1709
+ readonly createdAt: number;
1710
+ readonly kind: ImSessionFavoriteKind;
1711
+ readonly plainBody: Readonly<Record<string, unknown>>;
1712
+ readonly peerId: string;
1713
+ readonly hide?: boolean;
1714
+ }
1715
+ /**
1716
+ * 会话收藏 HTTP 端口。
1717
+ *
1718
+ * Browser adapter 负责 `/user/favorite/*`、收藏 TEA 和 DTO 映射;Core 不持有收藏列表副本。
1719
+ */
1720
+ interface ImSessionFavoritePort {
1721
+ list: () => Promise<readonly ImSessionFavoriteItem$1[]>;
1722
+ add: (input: ImSessionFavoriteWriteInput) => Promise<ImSessionFavoriteItem$1>;
1723
+ delete: (collectIds: readonly string[]) => Promise<void>;
1724
+ }
1725
+
1680
1726
  /** 迁移期存储会话入参;新代码使用 ref,string 仅兼容唯一命中的旧调用。 */
1681
1727
  type ImStorageConversation = ConversationRef | string;
1682
1728
  /** 打开账号库的选项。namespace = 账号隔离键(登录 userId)。 */
@@ -2095,6 +2141,10 @@ type ImEvent = {
2095
2141
  | {
2096
2142
  type: 'application:updated';
2097
2143
  application: ApplicationUpdate;
2144
+ }
2145
+ /** 其它端改了会话收藏;权威列表必须重新拉 HTTP,不携带收藏正文。 */
2146
+ | {
2147
+ type: 'session-favorites:changed';
2098
2148
  } | {
2099
2149
  type: 'sync:complete';
2100
2150
  conversations: ConversationRef[];
@@ -3226,20 +3276,79 @@ interface MembershipJoinResult {
3226
3276
  outcome: MembershipJoinOutcome;
3227
3277
  }
3228
3278
 
3229
- /** 单个媒体类型的对象存储位置:bucket + 公网 host(URL = host/key)。 */
3230
- interface MediaBucketConfig {
3279
+ /** 服务端按逻辑桶签发的 S3 临时上传凭证(已归一为 SDK 合同字段)。 */
3280
+ interface MediaUploadCredentials {
3281
+ /** STS access key id(服务端字段 `access_key_id`)。 */
3282
+ accessKeyId: string;
3283
+ /** STS secret access key(服务端字段 `secret_key`)。 */
3284
+ secretAccessKey: string;
3285
+ /** STS session token(服务端字段 `session_token`)。 */
3286
+ sessionToken: string;
3287
+ /** 服务端声明的过期时间(Unix 秒);缺省时该凭证只受 SDK 本地 TTL 约束。 */
3288
+ expiresAtSeconds?: number;
3289
+ /** 服务端解析出的**物理桶**名,可能与申请用的逻辑桶名不同;PutObject 必须用它。 */
3231
3290
  bucket: string;
3232
- host: string;
3291
+ /** 物理桶所在区域,决定上传端点;不再从身份池 id 前缀推断。 */
3292
+ region: string;
3293
+ /** 对象 key 前缀;STS 策略只允许写该前缀下的对象,SDK 生成的 key 必须以它开头。 */
3294
+ keyPrefix?: string;
3295
+ /** 公开访问域名(已归一为带 scheme、无尾斜杠);写进消息体的媒体 URL 以它为准。 */
3296
+ dnsPoint: string;
3297
+ /** 服务端身份标识;SDK 不使用,仅原样透出供宿主排查。 */
3298
+ identityId?: string;
3299
+ }
3300
+ /** SDK 向宿主申请凭证时给出的上下文。 */
3301
+ interface MediaUploadCredentialsRequest {
3302
+ /** 宿主 env 配置的**逻辑桶名**;宿主原样提交给自己的 BFF。 */
3303
+ bucket: string;
3304
+ /** true 表示 SDK 判定旧凭证不可用(上传被拒或已过期),宿主必须真的重新请求,不得返回自己的缓存。 */
3305
+ forceRefresh: boolean;
3233
3306
  }
3307
+ /**
3308
+ * 宿主注入的取凭证函数:按逻辑桶名向宿主自己的 BFF 申请一次 STS 临时凭证。
3309
+ *
3310
+ * @remarks 这里刻意不带 `AbortSignal`:同一逻辑桶的并发上传会共用同一次在途请求,
3311
+ * 单个上传被取消不应连带中止其它上传正在等待的凭证。宿主实现应当是「打一次接口」的纯函数,
3312
+ * 缓存、TTL、单飞与失败重签由 SDK 负责。
3313
+ */
3314
+ type MediaUploadCredentialsProvider = (request: MediaUploadCredentialsRequest) => Promise<MediaUploadCredentials>;
3315
+ /**
3316
+ * 把服务端原始回包归一为 `MediaUploadCredentials`,同时兼容 snake_case 与 camelCase。
3317
+ *
3318
+ * 宿主可直接用它解析自己 BFF 的返回值,避免 PC 与 H5 各写一份宽松解析;SDK 在收到 provider
3319
+ * 结果后也会再跑一次本函数,因此绕过它自行构造的对象同样会被校验。
3320
+ *
3321
+ * @param raw 凭证对象本身(不含 code/msg 外层包装,由宿主先拆包)。
3322
+ * @returns 归一后的凭证;关键字段缺失或非法时抛 `MediaTransferError('credentials-invalid')`,不返回半份凭证。
3323
+ */
3324
+ declare function normalizeMediaUploadCredentials(raw: unknown): MediaUploadCredentials;
3325
+
3234
3326
  interface MediaTransferAdapterConfig {
3235
- /** AWS Cognito 身份池 id(形如 `ap-northeast-1:xxxx`;region 从前缀解析)。 */
3236
- identityPoolId: string;
3237
- /** 群、社群与用户头像使用的独立 app-header bucket/host;不得复用聊天图片桶。 */
3238
- avatar?: MediaBucketConfig;
3239
- /** 各媒体类型的 bucket/host 映射(对齐 Android:image→app-image 等)。 */
3240
- buckets: Record<MediaKind, MediaBucketConfig>;
3241
- /** 是否启用 S3 Transfer Acceleration(对齐 Android,默认 true)。 */
3327
+ /**
3328
+ * 按**逻辑桶名**申请 S3 临时上传凭证;由宿主实现(打自己的 BFF),SDK 不硬编码接口路径与前缀。
3329
+ * 缓存、TTL、同桶单飞与失败重签由本 adapter 负责,宿主实现应当是「打一次接口」的纯函数。
3330
+ */
3331
+ getUploadCredentials: MediaUploadCredentialsProvider;
3332
+ /** 各媒体类型的**逻辑桶名**(宿主 env 配置,如 image→app-image);物理桶以服务端回包为准。 */
3333
+ buckets: Record<MediaKind, string>;
3334
+ /**
3335
+ * CHANNEL(社群)会话按媒体类型覆盖的逻辑桶名;未覆盖的类型继续使用 `buckets`。
3336
+ * iOS 与 prod H5 都为社群媒体准备了独立桶,但对「社群文件是否也走社群桶」结论相反,
3337
+ * 因此这里只提供按类型覆盖的机制,由部署配置决定覆盖哪些类型。
3338
+ */
3339
+ channelBuckets?: Partial<Record<MediaKind, string>>;
3340
+ /** 群、社群与用户头像使用的独立 app-header 逻辑桶名;不得复用聊天图片桶。 */
3341
+ avatarBucket?: string;
3342
+ /** 是否启用 S3 Transfer Acceleration(默认 true;`cn-` 分区没有加速端点,会强制关闭)。 */
3242
3343
  useAccelerateEndpoint?: boolean;
3344
+ /**
3345
+ * 是否允许超过分片阈值(16MiB)的上传使用 S3 分片上传(默认 true)。
3346
+ *
3347
+ * 分片相比单次 PUT 需要各物理桶的 CORS 额外放行 POST(Create/CompleteMultipartUpload)、
3348
+ * DELETE(AbortMultipartUpload)并 `ExposeHeaders: ETag`;未配齐时分片会直接失败。
3349
+ * 部署可置 false 立即退回全量单次 PutObject(大文件回到单连接与整包内存的旧行为),无需发版。
3350
+ */
3351
+ multipartUpload?: boolean;
3243
3352
  /**
3244
3353
  * 媒体发送阶段的并发上限;由 im-core 消费,adapter 本身仍只负责单个上传任务。
3245
3354
  * 缺省为 4,允许 1-6;高并发会提高吞吐,也会增加文件加密的内存峰值。
@@ -3247,6 +3356,28 @@ interface MediaTransferAdapterConfig {
3247
3356
  maxConcurrentUploads?: number;
3248
3357
  }
3249
3358
 
3359
+ /**
3360
+ * 媒体传输错误码(稳定业务码,宿主据此给提示或排查):
3361
+ * - `bucket-unconfigured`:该媒体类型或头像没有配置逻辑桶名(宿主 env 缺该资源类型)。
3362
+ * - `credentials-provider-missing`:宿主没有注入 `getUploadCredentials`,无法申请临时凭证。
3363
+ * - `credentials-request-failed`:宿主取凭证失败(网络、鉴权或业务码非成功);`cause` 保留宿主原始错误。
3364
+ * - `credentials-invalid`:凭证回包缺少必要字段或字段非法,不允许用半份凭证去签名。
3365
+ * - `upload-source-invalid`:上传内容既不是 `Uint8Array` 也不是 `Blob`(纯 JS 宿主绕过类型时的 fail-fast)。
3366
+ * - `multipart-etag-missing`:分片响应读不到 ETag,**桶 CORS 缺 `ExposeHeaders: ETag`**,不是网络问题。
3367
+ * - `multipart-abort-failed`:分片失败后的 `AbortMultipartUpload` 清理本身失败,已上传分片可能残留并计费。
3368
+ * - `multipart-upload-failed`:分片上传因其它原因失败;`cause` 保留原始错误,消息列出分片对 CORS 的额外要求。
3369
+ */
3370
+ type MediaTransferErrorCode = 'bucket-unconfigured' | 'credentials-provider-missing' | 'credentials-request-failed' | 'credentials-invalid' | 'upload-source-invalid' | 'multipart-etag-missing' | 'multipart-abort-failed' | 'multipart-upload-failed';
3371
+ /** 媒体传输统一错误:携带稳定业务码 + 可选底层 cause(诊断用,永不携带凭证明文)。 */
3372
+ declare class MediaTransferError extends Error {
3373
+ readonly code: MediaTransferErrorCode;
3374
+ constructor(code: MediaTransferErrorCode, message?: string, options?: {
3375
+ cause?: unknown;
3376
+ });
3377
+ }
3378
+ /** 判定并提取 MediaTransferError 的错误码;非该错误返回 undefined(调用方走通用失败处理)。 */
3379
+ declare function mediaTransferErrorCodeOf(error: unknown): MediaTransferErrorCode | undefined;
3380
+
3250
3381
  interface NetworkEventTarget {
3251
3382
  addEventListener: (type: string, listener: () => void) => void;
3252
3383
  removeEventListener: (type: string, listener: () => void) => void;
@@ -3311,8 +3442,9 @@ declare function createIndexedDbStorageAdapter(options: IndexedDbStorageAdapterO
3311
3442
  * - `encode-failed`:录音成品 → Speex/Ogg 编码失败。
3312
3443
  * - `decode-failed`:Speex/Ogg → PCM 解码失败(下载损坏 / teaKey 不对 / 非 Speex 文件)。
3313
3444
  * - `empty-recording`:录音成品为空(授权慢返回 / 极短按压)。
3445
+ * - `invalid-playback-rate`:播放速率不是有限数字(NaN/Infinity/非 number)——调用方 bug,不静默回落默认速率。
3314
3446
  */
3315
- type VoiceErrorCode = 'insecure-context' | 'no-media-devices' | 'no-media-recorder' | 'permission-denied' | 'device-not-found' | 'device-busy' | 'audio-context-blocked' | 'codec-unavailable' | 'encode-failed' | 'decode-failed' | 'empty-recording';
3447
+ type VoiceErrorCode = 'insecure-context' | 'no-media-devices' | 'no-media-recorder' | 'permission-denied' | 'device-not-found' | 'device-busy' | 'audio-context-blocked' | 'codec-unavailable' | 'encode-failed' | 'decode-failed' | 'empty-recording' | 'invalid-playback-rate';
3316
3448
  /** 判定并提取 VoiceError 的错误码;非 VoiceError 返回 undefined(调用方走通用错误提示)。 */
3317
3449
  declare function voiceErrorCodeOf(error: unknown): VoiceErrorCode | undefined;
3318
3450
 
@@ -3348,10 +3480,17 @@ interface VoicePlayerState {
3348
3480
  currentTimeMs: number;
3349
3481
  /** 播放失败的曲目 id 集合(错误态;再次 toggle 重试并清除)。 */
3350
3482
  errorIds: ReadonlySet<string>;
3483
+ /** 当前播放速率(0.5-2.0):播放器级配置,切曲、stop、dispose 都保持,不随单条曲目变化。 */
3484
+ playbackRate: number;
3351
3485
  }
3352
3486
  interface VoicePlayerOptions {
3353
3487
  /** 解码结果 WAV objectURL LRU 上限(缺省 8;60s 16k mono WAV ≈ 2MB/条)。 */
3354
3488
  cacheMax?: number;
3489
+ /**
3490
+ * 初始播放速率(缺省 1):宿主用它把自己保存的全局默认语速带进新播放器(如账号切换后重建实例)。
3491
+ * 有限值夹取到 0.5-2.0;非有限值抛 `VoiceError('invalid-playback-rate')`。
3492
+ */
3493
+ playbackRate?: number;
3355
3494
  }
3356
3495
  interface VoiceToggleOptions {
3357
3496
  /** 曲目字节加载器(宿主闭包:本地缓存命中或下载+TEA 解密);返回 null = 加载失败(曲目置错误态,由宿主自行提示)。 */
@@ -3376,6 +3515,12 @@ interface VoicePlayer {
3376
3515
  beginScrub: (id: string) => void;
3377
3516
  /** 结束拖动定位:拖动前在播则从新位置继续。 */
3378
3517
  endScrub: (id: string) => void;
3518
+ /**
3519
+ * 设置播放速率:立即作用于正在播放的曲目,并作为之后所有曲目的速率(播放器级配置)。
3520
+ * 有限值夹取到 0.5-2.0 后写入状态快照;非有限值(NaN/Infinity/非 number)抛
3521
+ * `VoiceError('invalid-playback-rate')`,不静默回落默认速率。
3522
+ */
3523
+ setPlaybackRate: (rate: number) => void;
3379
3524
  /** 停止播放、清 Audio src 并复位;decoded LRU 仍保留供重播。宿主在切会话/撤回/页面隐藏等位置调用。幂等。 */
3380
3525
  stop: () => void;
3381
3526
  /** 释放全部资源(Audio src、缓存 object URL 与订阅)。HMR/宿主销毁时调用;重复调用无副作用。 */
@@ -5704,12 +5849,16 @@ interface ImProductEventMap {
5704
5849
  'application:updated': Readonly<{
5705
5850
  application: ImProductApplicationUpdate;
5706
5851
  }>;
5852
+ /** 其它端改了会话收藏;权威列表必须重新拉 HTTP。 */
5853
+ 'session-favorites:changed': Readonly<Record<never, never>>;
5707
5854
  'sync:complete': Readonly<{
5708
5855
  conversations: readonly ConversationRef<ProductConversationListType>[];
5709
5856
  }>;
5857
+ /** `lastLoginTime` 为服务端记录的上次登录时间(毫秒),仅被踢且走登录 ACK 的路径才有值。 */
5710
5858
  'auth:invalid': Readonly<{
5711
5859
  code: string;
5712
5860
  reason: ImProductAuthInvalidReason;
5861
+ lastLoginTime?: number;
5713
5862
  }>;
5714
5863
  'error': Readonly<{
5715
5864
  error: ImProductEventError;
@@ -5995,6 +6144,31 @@ interface ImSearchApi {
5995
6144
  readonly messages: ImMessageSearchApi;
5996
6145
  }
5997
6146
 
6147
+ /**
6148
+ * 会话收藏稳定产品门面。
6149
+ *
6150
+ * 本模块不缓存服务端列表;每次 list/add/delete 都以当前账号 provider 为准。
6151
+ * 收藏快照与原聊天消息解耦:原消息删除、撤回或编辑不会回写收藏。
6152
+ */
6153
+
6154
+ type ImSessionFavoriteItem = Readonly<ImSessionFavoriteItem$1>;
6155
+ /** 产品层会话收藏 API。 */
6156
+ interface ImSessionFavoritesApi {
6157
+ list: () => Promise<readonly ImSessionFavoriteItem[]>;
6158
+ addFromMessage: (input: {
6159
+ message: ImMessageView;
6160
+ conversation: ConversationRef;
6161
+ selfId: string;
6162
+ }) => Promise<ImSessionFavoriteItem>;
6163
+ delete: (collectIds: readonly string[]) => Promise<void>;
6164
+ }
6165
+ /** 对齐 iOS Cell:文本 / 图 / 视频 / 语音 / 文件可收藏;表情、名片、通话等不可。 */
6166
+ declare function resolveSessionFavoriteKindFromMessage(message: ImMessageView): ImSessionFavoriteKind | null;
6167
+ /**
6168
+ * 组收藏快照明文。content 空则返回 null,对齐 iOS `collectMsg:YES` 不写空 body。
6169
+ */
6170
+ declare function buildSessionFavoritePlainBody(message: ImMessageView): Readonly<Record<string, unknown>> | null;
6171
+
5998
6172
  /**
5999
6173
  * 当前账号的 IM 本地偏好产品域。
6000
6174
  *
@@ -6060,12 +6234,20 @@ declare const IM_EMOJI_CATALOG: readonly ImEmojiCatalogEntry[];
6060
6234
  declare function resolveImEmojiToken(token: string): ImEmojiCatalogEntry | undefined;
6061
6235
 
6062
6236
  /**
6063
- * 媒体对象存储(S3)配置:由宿主注入的**部署基建配置**,SDK 不硬编码 bucket/身份池/host(配置归属宿主层,经 ImClientOptions.media 注入)。
6064
- * 形状 = im-browser `MediaTransferAdapterConfig`:`identityPoolId` + 独立 `avatar` app-header 位置 + 各 `MediaKind`(image/video/voice/file/sticker)的 `{ bucket, host }` + 可选 `useAccelerateEndpoint`、`maxConcurrentUploads`。
6065
- * 业务契约对齐 Android AWSUploadManager / CommonConstants.AWS(Cognito 匿名身份池直传、对象 public-read、Transfer Acceleration;见 研究Android图片消息实现.md §A.2)。
6066
- * ⚠ 各 bucket 需在对象存储侧配置 CORS 允许本站 origin(含分片上传 POST/DELETE + ExposeHeaders ETag);`identityPoolId` 前端可见(对齐 Android 现状)。
6067
- * 并发字段只由 SDK core 的媒体编排消费;adapter 会忽略该字段。高内存设备可设置 5-6,低内存设备建议 2-3。
6068
- * ⚠ 后续如需更安全(presigned URL)改 im-browser 的 `MediaTransferPort` 实现即可,本配置与调用方不变。
6237
+ * 媒体对象存储(S3)配置:由宿主注入的**部署基建配置**,SDK 不硬编码逻辑桶名,也不硬编码取凭证的接口路径。
6238
+ *
6239
+ * 形状 = im-browser `MediaTransferAdapterConfig`:必填 `getUploadCredentials`(按逻辑桶名向宿主自己的 BFF 申请
6240
+ * STS 临时凭证)+ 各 `MediaKind`(image/video/voice/file/sticker)的**逻辑桶名** + 可选 `channelBuckets`(社群会话
6241
+ * 按类型覆盖)、`avatarBucket`、`useAccelerateEndpoint`、`multipartUpload`、`maxConcurrentUploads`。
6242
+ *
6243
+ * 上传凭证由业务后端按登录态签发(与 iOS、prod H5 同一个接口),回包同时给出**物理桶**、区域、`key_prefix` 和
6244
+ * 公开访问域名;SDK 据此拼 object key 与消息体 URL,宿主 env 里配的只是申请凭证用的逻辑桶名。凭证缓存(本地
6245
+ * 1 小时、按服务端过期时间提前 5 分钟失效)、同桶单飞与失败重签由 SDK 负责,宿主只需提供「打一次接口」的纯函数。
6246
+ *
6247
+ * ⚠ 各 bucket 需在对象存储侧配置 CORS 允许本站 origin 的 PUT + GET;超过 16MiB 的上传走 S3 分片,另需放行
6248
+ * POST(Create/CompleteMultipartUpload)、DELETE(AbortMultipartUpload)并 ExposeHeaders: ETag。CORS 未配齐时
6249
+ * 可用 `multipartUpload: false` 退回全量单次 PutObject。
6250
+ * ⚠ 并发字段只由 SDK core 的媒体编排消费;adapter 会忽略该字段。高内存设备可设置 5-6,低内存设备建议 2-3。
6069
6251
  */
6070
6252
  type ImMediaConfig = MediaTransferAdapterConfig;
6071
6253
  /**
@@ -6231,6 +6413,8 @@ interface ImAdvancedClientOptions extends ImClientOptions {
6231
6413
  coreClient?: ApiProtocolClient;
6232
6414
  /** 高级/测试入口可注入端口替身;default 始终使用 Browser adapter。 */
6233
6415
  expressionProvider?: ImExpressionPort;
6416
+ /** 高级/测试入口可注入会话收藏端口替身;default 始终使用 Browser adapter。 */
6417
+ sessionFavoriteProvider?: ImSessionFavoritePort;
6234
6418
  }
6235
6419
  /** 产品级账号与连接生命周期;adapter、transport 和连接状态机原子不进入该接口。 */
6236
6420
  interface ImSessionApi {
@@ -6506,6 +6690,7 @@ interface ImProductClient {
6506
6690
  readonly channels: ImChannelsApi;
6507
6691
  readonly applications: ImApplicationsApi;
6508
6692
  readonly expressions: ImExpressionsApi;
6693
+ readonly sessionFavorites: ImSessionFavoritesApi;
6509
6694
  readonly outbox: ImOutboxApi;
6510
6695
  readonly drafts: ImDraftsApi;
6511
6696
  readonly search: ImSearchApi;
@@ -7348,7 +7533,7 @@ declare namespace pinnedMessage_service {
7348
7533
  }
7349
7534
 
7350
7535
  type ConversationCapabilityAction = 'conversation.openProfile' | 'conversation.readHistory' | 'conversation.listPreferences' | 'composer.send' | 'composer.mentionAll' | 'profile.edit' | 'relationship.manage' | 'members.view' | 'members.manage' | 'members.invite' | 'members.remove' | 'members.setAdmin' | 'ownership.transfer' | 'conversation.leave' | 'channel.manageMute' | 'channel.setMemberPrivateChat' | 'channel.dismiss';
7351
- type MessageCapabilityAction = 'message.reply' | 'message.recall' | 'message.edit' | 'message.pin' | 'message.unpin' | 'message.deleteLocal' | 'message.deleteForEveryone' | 'message.forward' | 'message.multiSelect';
7536
+ type MessageCapabilityAction = 'message.reply' | 'message.recall' | 'message.edit' | 'message.pin' | 'message.unpin' | 'message.deleteLocal' | 'message.deleteForEveryone' | 'message.forward' | 'message.favorite' | 'message.multiSelect';
7352
7537
  type MemberTargetCapabilityAction = 'members.removeTarget' | 'members.editNicknameTarget' | 'members.setAdminTarget' | 'members.unsetAdminTarget';
7353
7538
  interface MessageCapabilityInput {
7354
7539
  snapshot: ConversationCapabilitySnapshot;
@@ -8121,7 +8306,7 @@ declare function replaceInterruptedMediaFile(runtime: ChatRuntime, input: {
8121
8306
  conversationId: string;
8122
8307
  conversationType: ConversationType;
8123
8308
  }, hooks: SendCommandHooks): Promise<boolean>;
8124
- /** 判断部署配置是否提供完整语音存储地址;缺失时录音入口和最终发送都应明确禁用。 */
8309
+ /** 判断部署配置是否提供语音逻辑桶名;缺失时录音入口和最终发送都应明确禁用。 */
8125
8310
  declare function isVoiceStorageConfigured(runtime: ChatRuntime): boolean;
8126
8311
  /**
8127
8312
  * 发送录音器产出的语音消息。
@@ -8936,5 +9121,5 @@ declare function resampleWaveform(data: readonly number[], targetCount: number):
8936
9121
  */
8937
9122
  declare function placeholderWaveform(seed: string, count: number): number[];
8938
9123
 
8939
- export { DEFAULT_EMOJI_ASSET_BASE, DEFAULT_LOADING_MINIMUM_VISIBLE_MS, DEFAULT_LOADING_SHOW_DELAY_MS, DEFAULT_LOCALE, EDIT_WINDOW_MS, EMOJI_CATALOG, EMOJI_GAME_DICE_STABLE_KEY, EMOJI_GAME_RPS_STABLE_KEY, EMOJI_TOKEN_RE, IM_CHAT_FONT_SCALES, IM_DIAGNOSTIC_CATEGORIES, IM_EMOJI_CATALOG, ImPinnedMessageOperationError, MAX_BATCH_FILES, MAX_RECENT_EMOJI_COUNT, REACTION_SUPPORTED_CONTENT_TYPES, SPIKE_STEP, UNICODE_EMOJI_CATALOG, blockReasonForChannelSession, blockReasonForChannelState, blockReasonForGroupState, blockReasonForSession, calculateMediaBox, canEditMessage, canPinChannelMessage, canPinGroupMessage, canPinMessage, canPromoteMediaPresentationSource, canReactToMessage, canRecallMessage, canTransmit, canTransmitByType, canTransmitContent, cancelMediaUpload, captureRuntimeClientOperation, captureRuntimeOperation, classifyStickerImageType, createChatRuntime, createDelayedLoadingIndicator, createEmojiMatcher, createFaceToFaceGroupQrPayload, createImClient, createImConsoleDiagnosticSink, createImDiagnosticMemoryBuffer, createImI18n, createImTextSearchMatcher, createLinkMatcher, createNewMessageBadgeController, createSdkDiagnosticWriter, createThreadItems, createVoicePlayer, createVoiceRecordingSession, decideConversationAction, decideMemberTargetAction, decideMessageAction, detectVoiceCapabilities, emojiAssetUrl, emojiUrlByCode, extractSearchText, fetchConversationFileBatch, fetchConversationImageBatch, fetchConversationMessageBatch, fetchConversationVideoBatch, fetchConversationVoiceBatch, fetchNextConversationSearchBatch, formatChatDateSeparator, formatConversationDisplayTime, formatFailure, formatFileSize, formatLastMessageSummary, formatMediaDuration, formatMediaPlaceholder, formatMentionAll, formatServiceText, formatSystemMessage, forward_service as forwardService, getFileExtension, getImTextSearchInitial, getImTimeCatalog, getLocalDayKey, hasEmojiCandidate, hasLinkCandidate, highlightSegments, isGifFile, isMessageLocateScrollProtected, isMessageTailChangeFromOlderWindowTrim, isMessageViewportMeasurable, isMessageVisibleForNewMessageBadge, isPinnedMessageProtected, isVoiceStorageConfigured, loadOlderUntilBoundary, mediaBatchBudgetBytes, media_service as mediaService, message_service as messageService, migrateImCachePrefix, normalizeImLocale, normalizeLinkHref, parseUnicodeEmojiCode, pinnedMessage_service as pinnedMessageService, placeholderWaveform, prependRecentEmoji, profile_service as profileService, read_service as readService, refreshPrependMessageAnchorPosition, registerImCatalogOverrides, replaceInterruptedMediaFile, requiresConversationEncryption, requiresForwardTypeConfirmation, resampleWaveform, resetImCatalogOverrides, resolveBestMediaPresentationSource, resolveCenteredMessageScrollTop, resolveChannelAccess, resolveChannelMemberAvatarUrl, resolveChannelMemberDisplayName, resolveConversationListPresentation, resolveDisplayTimestamp, resolveEmojiToken, resolveFriendDisplayName, resolveImEmojiToken, resolveImProfileAccessDestination, resolveImThreadActiveDate, resolveMediaPresentation, resolveMemberDisplayName, resolveMessageBodyKind, resolveMessageTimelineTimestamp, resolvePrependMessageAnchor, resolvePrependMessageAnchorAdjustment, resolvePrependMessageAnchorPosition, resolvePublicNickname, resolveQuotedMessagePresentation, resolveSenderAvatarUrl, resolveStandaloneEmojiMessage, resolveSurvivingMessageAnchorAdjustment, resolveTextSegments, resolveUnicodeEmoji, resolveVisibleMessageAnchorPositions, retryMessage, runMediaSendBatch, sendAsFilesBatch, sendBlockReasonForDecision, sendMediaFile, sendMediaFilesBatch, sendText, sendVoice, shouldCompleteInitialViewport, shouldFillInitialHistoryViewport, shouldFollowIncomingMessage, shouldLoadNewerHistoryPage, shouldPrefetchOlderHistory, shouldRestoreMessageViewportFocus, shouldShowChatDateSeparator, shouldTrackRemoteMessageForBadge, sortSessions, spikeCountForDuration, sumSessionsUnread, supportsConversationMention, unicodeEmojiTextFromCode, voiceErrorCodeOf };
8940
- export type { ApplySessionResult, BrowseMessagesInput, CanPinMessageInput, CapabilityAvailability, CapabilityDecision, CapabilityReason, CenteredMessageScrollInput, ChannelAccessSnapshot, ChannelBaseSessionState, ChannelConversationCapabilities, ChannelConversationMessageApi, ChannelJoinApplication, ChannelJoinApplicationNotification, ChannelJoinApplicationPage, ChannelMember, ChannelMemberPage, ChannelMentionMember, ChannelMentionMemberPage, ChannelMiniProgramRel, ChannelMiniProgramRelConfigType, ChannelMuteReason, ChannelPermissionSet, ChannelProfile, ChannelRole, ChannelSessionState, ChatMediaMessageRef, ChatProfileAdapter, ChatRuntime, ChatRuntimeCredentials, ChatRuntimeFactories, ChatRuntimeHostDeps, ChatRuntimeOpResult, ContactCardInput, ContactMessageOptions, ConversationBackgroundPreset, ConversationBackgroundSelection, ConversationCapabilityAction, ConversationCapabilitySnapshot, ConversationDraft, ConversationDraftApi, ConversationEntryUnreadSnapshot, ConversationHandle, ConversationHandleSnapshot, ConversationInitialPosition, ConversationLastMessageSummary, ConversationListItem, ConversationListMention, ConversationListPresentation, ConversationListPresentationLabels, ConversationListPresentationOptions, ConversationListPreviewSegment, ConversationMessageApi, ConversationOpenOptions, ConversationRef, ConversationSearchCategory, ConversationSearchPage, ConversationSearchResult, ConversationSystemSummary, ConversationType, CreateThreadItemsInput, DelayedLoadingIndicator, DelayedLoadingIndicatorOptions, DirectConversationCapabilities, DirectConversationMessageApi, DraftInput, EditTextOptions, EmojiEntry, EmojiRecentItem, EmojiSegment, ExpressionMessageOptions, FileMessageOptions, FormatFailureContext, FormatLastMessageContext, FormatMediaPlaceholderContext, FormatServiceTextContext, FormatSystemMessageContext, FormatTimeDisplayContext, ForwardCommandHooks, ForwardFailReason, ForwardItemStatus, ForwardMessageFailure, ForwardMessagesInput, ForwardMessagesResult, ForwardTarget, ForwardedMessageRef, GameMessageOptions, GifMessageOptions, GroupConversationCapabilities, GroupConversationMessageApi, GroupMemberItem, GroupProfile, HighlightSegment, ImAppearanceSettingsApi, ImApplicationItem, ImApplicationRef, ImApplicationsApi, ImAuthIssue, ImAuthProvider, ImCacheOptions, ImCachePrefixMigrationContext, ImCachePrefixMigrator, ImCallKind, ImCallOutcome, ImCallRecordBody, ImCatalog, ImCatalogOverrides, ImChannelConversationAccessSnapshot, ImChannelMemberPresentation, ImChannelMentionApi, ImChannelMentionPresentation, ImChannelMiniProgramRel, ImChannelPermissions, ImChannelPinnedMessage, ImChannelProfile, ImChannelProfilePresentation, ImChannelRole, ImChannelState, ImChannelsApi, ImChatFontScale, ImClientOptions, ImConnectionState, ImContactBody, ImContactKind, ImContactProfile, ImContactRelationship, ImContactRemarkPhone, ImContactSearchResult, ImContactsApi, ImConversationBackgroundApi, ImConversationCapabilitiesApi, ImConversationListApi, ImConversationListSnapshot, ImConversationListState, ImConversationSearchApi, ImCoreApiOptions, ImCreateChannelInput, ImCreateChannelResult, ImCreateFaceToFaceGroupResult, ImCreateGroupInput, ImCreateGroupResult, ImCreatedChannel, ImCreatedGroup, ImDebugOptions, ImDiagnosticCategory, ImDiagnosticError, ImDiagnosticLayer, ImDiagnosticLevel, ImDiagnosticMemoryBuffer, ImDiagnosticMemoryBufferFilter, ImDiagnosticMemoryBufferOptions, ImDiagnosticMemoryBufferSnapshot, ImDiagnosticMessage, ImDiagnosticRecord, ImDiagnosticSink, ImDiagnosticWriter, ImDirectCallAnswerResult, ImDirectCallFailReason, ImDirectCallHangupInput, ImDirectCallHangupReason, ImDirectCallInviteInput, ImDirectCallNotifyAudioInput, ImDirectCallTargetInput, ImDirectCallsApi, ImDirectReadReceiptSettings, ImDirectoryApi, ImDirectoryFieldMatch, ImDirectoryItem, ImDirectoryKind, ImDirectoryPage, ImDirectorySearchApi, ImDirectorySearchItem, ImDirectorySearchResult, ImDraftsApi, ImEmojiCatalogEntry, ImEndpointProvider, ImEventsApi, ImExpressionAsset, ImExpressionAssetInput, ImExpressionEmojiRecentInput, ImExpressionFavoriteKind, ImExpressionOptions, ImExpressionRecentInput, ImExpressionRecentItem, ImExpressionRecentItemKind, ImExpressionsApi, ImFaceToFaceGroup, ImFailureCatalog, ImFileBody, ImForwardOperationResult, ImFriendshipRequestResult, ImGameBody, ImGameType, ImGifAssetInput, ImGiphyAsset, ImGiphyPage, ImGiphyPageOptions, ImGroupCallAnswerInput, ImGroupCallBusyInput, ImGroupCallCreateInput, ImGroupCallJoinInput, ImGroupCallMeetingSnapshot, ImGroupCallMember, ImGroupCallMemberStatus, ImGroupCallStatusInput, ImGroupCallTargetInput, ImGroupCallsApi, ImGroupConversationState, ImGroupMemberPresentation, ImGroupMentionApi, ImGroupPinnedMessage, ImGroupProfile, ImGroupsApi, ImI18n, ImImageBody, ImLastMessageCatalog, ImLifecycleSnapshot, ImLocalDataApi, ImLocalDataInfo, ImLocale, ImLogoutOptions, ImMediaBatchSendResult, ImMediaCatalog, ImMediaConfig, ImMediaTask, ImMediaTasksApi, ImMembershipJoinResult, ImMentionCatalog, ImMessageActionResult, ImMessageBodyKind, ImMessageMention, ImMessageReactionAggregate, ImMessageReactions, ImMessageRef, ImMessageSearchApi, ImMessageView, ImMessageViewBody, ImMessagesByIdResult, ImMiniProgramBody, ImMiniProgramShowType, ImOutboxApi, ImOutboxItem, ImPageToken, ImPartialCatalog, ImPinnedMessageActionResult, ImPinnedMessageErrorKind, ImPinnedMessageOperation, ImPinnedMessageSnapshot, ImProductApplicationUpdate, ImProductAuthInvalidReason, ImProductClient, ImProductEvent, ImProductEventError, ImProductEventMap, ImProductMessage, ImProfileAccessDestination, ImQuotedMessagePresentation, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImServiceCatalog, ImServiceTextKey, ImSessionApi, ImSessionLifecycleState, ImSettingsApi, ImStickerAssetInput, ImStickerBody, ImStickerPack, ImSupportedConversationRef, ImSystemCatalog, ImTextResolver, ImTextSearchMatch, ImTextSearchMatchOptions, ImTextSearchMatcher, ImTextSearchRange, ImThreadActiveDateSnapshot, ImThreadDateMarkerMetric, ImThreadDecoration, ImThreadEncryptionItem, ImThreadIntent, ImThreadItem, ImThreadPresentationAdapter, ImThreadReadActions, ImThreadReadTargetResolver, ImThreadViewportMetrics, ImTimeCatalog, ImTransferBody, ImTransferSessionType, ImTransferStatus, ImVideoBody, ImVoiceBody, ImWeekdayKey, ImageMessageOptions, ImagePreviewMetadata, IncomingMessageFollowInput, InitialHistoryViewportFillInput, InitialViewportCompletionInput, LinkSegment, LocalConversationHistoryClearResult, LocalMessageDeletionResult, MediaBatchBudgetOptions, MediaBatchLimitInfo, MediaLimitItem, MediaObjectUrlLease, MediaPresentationFit, MediaPresentationPolicy, MediaPresentationRule, MediaPresentationSourceCandidate, MediaPresentationSourceQuality, MediaSendBatchResult, MemberTargetCapabilityAction, MemberTargetCapabilityInput, MentionCandidate, MentionCandidatePage, MentionInput, MessageCapabilityAction, MessageCapabilityInput, MessageContentType, MessageLocateScrollProtectionInput, MessageWindowInfo, MessageWindowPage, MessagesByIdFailure, MigrateImCachePrefixInput, MiniProgramMessageOptions, NewMessageBadgeController, NewMessageBadgeCountListener, NewMessageBadgeVisibilityInput, NewerHistoryPageTriggerInput, OlderHistoryPrefetchInput, PrependAnchorCandidate, PrependAnchorViewport, PrependMessageAnchorPosition, ProductConversationListType, ProductHandleConversationType, ProductMessageSearchPage, ProductMessageSearchResult, RemoteMessageBadgeTrackingInput, ResolveMediaPresentationInput, ResolveTextOptions, ResolvedConversationBackground, ResolvedMediaPresentation, RichExtraSegment, RuntimeClientOperation, RuntimeOperation, SearchBatchResult, SearchFilesInput, SearchMessagesInput, SearchTextMessagesInput, SegmentMatch, SegmentMatcher, SendCapabilityMode, SendCommandHooks, SendMessageResult, SendVoicePayload, SenderProfileEntry, ServiceNoteHooks, StandaloneEmojiMessage, StickerAssetKind, TextMessageOptions, TextSegment, TransferMessageOptions, UnicodeEmojiEntry, UnknownMessageBody, UserProfile, VideoMessageOptions, VideoPreviewMetadata, VoiceCapabilities, VoiceErrorCode, VoiceMessageMetadata, VoicePlayer, VoicePlayerOptions, VoicePlayerState, VoiceRecordingResult, VoiceRecordingSession, VoiceRecordingSessionOptions, VoiceRecordingState, VoiceToggleOptions };
9124
+ export { DEFAULT_EMOJI_ASSET_BASE, DEFAULT_LOADING_MINIMUM_VISIBLE_MS, DEFAULT_LOADING_SHOW_DELAY_MS, DEFAULT_LOCALE, EDIT_WINDOW_MS, EMOJI_CATALOG, EMOJI_GAME_DICE_STABLE_KEY, EMOJI_GAME_RPS_STABLE_KEY, EMOJI_TOKEN_RE, IM_CHAT_FONT_SCALES, IM_DIAGNOSTIC_CATEGORIES, IM_EMOJI_CATALOG, ImPinnedMessageOperationError, MAX_BATCH_FILES, MAX_RECENT_EMOJI_COUNT, MediaTransferError, REACTION_SUPPORTED_CONTENT_TYPES, SPIKE_STEP, UNICODE_EMOJI_CATALOG, blockReasonForChannelSession, blockReasonForChannelState, blockReasonForGroupState, blockReasonForSession, buildSessionFavoritePlainBody, calculateMediaBox, canEditMessage, canPinChannelMessage, canPinGroupMessage, canPinMessage, canPromoteMediaPresentationSource, canReactToMessage, canRecallMessage, canTransmit, canTransmitByType, canTransmitContent, cancelMediaUpload, captureRuntimeClientOperation, captureRuntimeOperation, classifyStickerImageType, createChatRuntime, createDelayedLoadingIndicator, createEmojiMatcher, createFaceToFaceGroupQrPayload, createImClient, createImConsoleDiagnosticSink, createImDiagnosticMemoryBuffer, createImI18n, createImTextSearchMatcher, createLinkMatcher, createNewMessageBadgeController, createSdkDiagnosticWriter, createThreadItems, createVoicePlayer, createVoiceRecordingSession, decideConversationAction, decideMemberTargetAction, decideMessageAction, detectVoiceCapabilities, emojiAssetUrl, emojiUrlByCode, extractSearchText, fetchConversationFileBatch, fetchConversationImageBatch, fetchConversationMessageBatch, fetchConversationVideoBatch, fetchConversationVoiceBatch, fetchNextConversationSearchBatch, formatChatDateSeparator, formatConversationDisplayTime, formatFailure, formatFileSize, formatLastMessageSummary, formatMediaDuration, formatMediaPlaceholder, formatMentionAll, formatServiceText, formatSystemMessage, forward_service as forwardService, getFileExtension, getImTextSearchInitial, getImTimeCatalog, getLocalDayKey, hasEmojiCandidate, hasLinkCandidate, highlightSegments, isGifFile, isMessageLocateScrollProtected, isMessageTailChangeFromOlderWindowTrim, isMessageViewportMeasurable, isMessageVisibleForNewMessageBadge, isPinnedMessageProtected, isVoiceStorageConfigured, loadOlderUntilBoundary, mediaBatchBudgetBytes, media_service as mediaService, mediaTransferErrorCodeOf, message_service as messageService, migrateImCachePrefix, normalizeImLocale, normalizeLinkHref, normalizeMediaUploadCredentials, parseUnicodeEmojiCode, pinnedMessage_service as pinnedMessageService, placeholderWaveform, prependRecentEmoji, profile_service as profileService, read_service as readService, refreshPrependMessageAnchorPosition, registerImCatalogOverrides, replaceInterruptedMediaFile, requiresConversationEncryption, requiresForwardTypeConfirmation, resampleWaveform, resetImCatalogOverrides, resolveBestMediaPresentationSource, resolveCenteredMessageScrollTop, resolveChannelAccess, resolveChannelMemberAvatarUrl, resolveChannelMemberDisplayName, resolveConversationListPresentation, resolveDisplayTimestamp, resolveEmojiToken, resolveFriendDisplayName, resolveImEmojiToken, resolveImProfileAccessDestination, resolveImThreadActiveDate, resolveMediaPresentation, resolveMemberDisplayName, resolveMessageBodyKind, resolveMessageTimelineTimestamp, resolvePrependMessageAnchor, resolvePrependMessageAnchorAdjustment, resolvePrependMessageAnchorPosition, resolvePublicNickname, resolveQuotedMessagePresentation, resolveSenderAvatarUrl, resolveSessionFavoriteKindFromMessage, resolveStandaloneEmojiMessage, resolveSurvivingMessageAnchorAdjustment, resolveTextSegments, resolveUnicodeEmoji, resolveVisibleMessageAnchorPositions, retryMessage, runMediaSendBatch, sendAsFilesBatch, sendBlockReasonForDecision, sendMediaFile, sendMediaFilesBatch, sendText, sendVoice, shouldCompleteInitialViewport, shouldFillInitialHistoryViewport, shouldFollowIncomingMessage, shouldLoadNewerHistoryPage, shouldPrefetchOlderHistory, shouldRestoreMessageViewportFocus, shouldShowChatDateSeparator, shouldTrackRemoteMessageForBadge, sortSessions, spikeCountForDuration, sumSessionsUnread, supportsConversationMention, unicodeEmojiTextFromCode, voiceErrorCodeOf };
9125
+ export type { ApplySessionResult, BrowseMessagesInput, CanPinMessageInput, CapabilityAvailability, CapabilityDecision, CapabilityReason, CenteredMessageScrollInput, ChannelAccessSnapshot, ChannelBaseSessionState, ChannelConversationCapabilities, ChannelConversationMessageApi, ChannelJoinApplication, ChannelJoinApplicationNotification, ChannelJoinApplicationPage, ChannelMember, ChannelMemberPage, ChannelMentionMember, ChannelMentionMemberPage, ChannelMiniProgramRel, ChannelMiniProgramRelConfigType, ChannelMuteReason, ChannelPermissionSet, ChannelProfile, ChannelRole, ChannelSessionState, ChatMediaMessageRef, ChatProfileAdapter, ChatRuntime, ChatRuntimeCredentials, ChatRuntimeFactories, ChatRuntimeHostDeps, ChatRuntimeOpResult, ContactCardInput, ContactMessageOptions, ConversationBackgroundPreset, ConversationBackgroundSelection, ConversationCapabilityAction, ConversationCapabilitySnapshot, ConversationDraft, ConversationDraftApi, ConversationEntryUnreadSnapshot, ConversationHandle, ConversationHandleSnapshot, ConversationInitialPosition, ConversationLastMessageSummary, ConversationListItem, ConversationListMention, ConversationListPresentation, ConversationListPresentationLabels, ConversationListPresentationOptions, ConversationListPreviewSegment, ConversationMessageApi, ConversationOpenOptions, ConversationRef, ConversationSearchCategory, ConversationSearchPage, ConversationSearchResult, ConversationSystemSummary, ConversationType, CreateThreadItemsInput, DelayedLoadingIndicator, DelayedLoadingIndicatorOptions, DirectConversationCapabilities, DirectConversationMessageApi, DraftInput, EditTextOptions, EmojiEntry, EmojiRecentItem, EmojiSegment, ExpressionMessageOptions, FileMessageOptions, FormatFailureContext, FormatLastMessageContext, FormatMediaPlaceholderContext, FormatServiceTextContext, FormatSystemMessageContext, FormatTimeDisplayContext, ForwardCommandHooks, ForwardFailReason, ForwardItemStatus, ForwardMessageFailure, ForwardMessagesInput, ForwardMessagesResult, ForwardTarget, ForwardedMessageRef, GameMessageOptions, GifMessageOptions, GroupConversationCapabilities, GroupConversationMessageApi, GroupMemberItem, GroupProfile, HighlightSegment, ImAppearanceSettingsApi, ImApplicationItem, ImApplicationRef, ImApplicationsApi, ImAuthIssue, ImAuthProvider, ImCacheOptions, ImCachePrefixMigrationContext, ImCachePrefixMigrator, ImCallKind, ImCallOutcome, ImCallRecordBody, ImCatalog, ImCatalogOverrides, ImChannelConversationAccessSnapshot, ImChannelMemberPresentation, ImChannelMentionApi, ImChannelMentionPresentation, ImChannelMiniProgramRel, ImChannelPermissions, ImChannelPinnedMessage, ImChannelProfile, ImChannelProfilePresentation, ImChannelRole, ImChannelState, ImChannelsApi, ImChatFontScale, ImClientOptions, ImConnectionState, ImContactBody, ImContactKind, ImContactProfile, ImContactRelationship, ImContactRemarkPhone, ImContactSearchResult, ImContactsApi, ImConversationBackgroundApi, ImConversationCapabilitiesApi, ImConversationListApi, ImConversationListSnapshot, ImConversationListState, ImConversationSearchApi, ImCoreApiOptions, ImCreateChannelInput, ImCreateChannelResult, ImCreateFaceToFaceGroupResult, ImCreateGroupInput, ImCreateGroupResult, ImCreatedChannel, ImCreatedGroup, ImDebugOptions, ImDiagnosticCategory, ImDiagnosticError, ImDiagnosticLayer, ImDiagnosticLevel, ImDiagnosticMemoryBuffer, ImDiagnosticMemoryBufferFilter, ImDiagnosticMemoryBufferOptions, ImDiagnosticMemoryBufferSnapshot, ImDiagnosticMessage, ImDiagnosticRecord, ImDiagnosticSink, ImDiagnosticWriter, ImDirectCallAnswerResult, ImDirectCallFailReason, ImDirectCallHangupInput, ImDirectCallHangupReason, ImDirectCallInviteInput, ImDirectCallNotifyAudioInput, ImDirectCallTargetInput, ImDirectCallsApi, ImDirectReadReceiptSettings, ImDirectoryApi, ImDirectoryFieldMatch, ImDirectoryItem, ImDirectoryKind, ImDirectoryPage, ImDirectorySearchApi, ImDirectorySearchItem, ImDirectorySearchResult, ImDraftsApi, ImEmojiCatalogEntry, ImEndpointProvider, ImEventsApi, ImExpressionAsset, ImExpressionAssetInput, ImExpressionEmojiRecentInput, ImExpressionFavoriteKind, ImExpressionOptions, ImExpressionRecentInput, ImExpressionRecentItem, ImExpressionRecentItemKind, ImExpressionsApi, ImFaceToFaceGroup, ImFailureCatalog, ImFileBody, ImForwardOperationResult, ImFriendshipRequestResult, ImGameBody, ImGameType, ImGifAssetInput, ImGiphyAsset, ImGiphyPage, ImGiphyPageOptions, ImGroupCallAnswerInput, ImGroupCallBusyInput, ImGroupCallCreateInput, ImGroupCallJoinInput, ImGroupCallMeetingSnapshot, ImGroupCallMember, ImGroupCallMemberStatus, ImGroupCallStatusInput, ImGroupCallTargetInput, ImGroupCallsApi, ImGroupConversationState, ImGroupMemberPresentation, ImGroupMentionApi, ImGroupPinnedMessage, ImGroupProfile, ImGroupsApi, ImI18n, ImImageBody, ImLastMessageCatalog, ImLifecycleSnapshot, ImLocalDataApi, ImLocalDataInfo, ImLocale, ImLogoutOptions, ImMediaBatchSendResult, ImMediaCatalog, ImMediaConfig, ImMediaTask, ImMediaTasksApi, ImMembershipJoinResult, ImMentionCatalog, ImMessageActionResult, ImMessageBodyKind, ImMessageMention, ImMessageReactionAggregate, ImMessageReactions, ImMessageRef, ImMessageSearchApi, ImMessageView, ImMessageViewBody, ImMessagesByIdResult, ImMiniProgramBody, ImMiniProgramShowType, ImOutboxApi, ImOutboxItem, ImPageToken, ImPartialCatalog, ImPinnedMessageActionResult, ImPinnedMessageErrorKind, ImPinnedMessageOperation, ImPinnedMessageSnapshot, ImProductApplicationUpdate, ImProductAuthInvalidReason, ImProductClient, ImProductEvent, ImProductEventError, ImProductEventMap, ImProductMessage, ImProfileAccessDestination, ImQuotedMessagePresentation, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImServiceCatalog, ImServiceTextKey, ImSessionApi, ImSessionFavoriteItem, ImSessionFavoriteKind, ImSessionFavoritesApi, ImSessionLifecycleState, ImSettingsApi, ImStickerAssetInput, ImStickerBody, ImStickerPack, ImSupportedConversationRef, ImSystemCatalog, ImTextResolver, ImTextSearchMatch, ImTextSearchMatchOptions, ImTextSearchMatcher, ImTextSearchRange, ImThreadActiveDateSnapshot, ImThreadDateMarkerMetric, ImThreadDecoration, ImThreadEncryptionItem, ImThreadIntent, ImThreadItem, ImThreadPresentationAdapter, ImThreadReadActions, ImThreadReadTargetResolver, ImThreadViewportMetrics, ImTimeCatalog, ImTransferBody, ImTransferSessionType, ImTransferStatus, ImVideoBody, ImVoiceBody, ImWeekdayKey, ImageMessageOptions, ImagePreviewMetadata, IncomingMessageFollowInput, InitialHistoryViewportFillInput, InitialViewportCompletionInput, LinkSegment, LocalConversationHistoryClearResult, LocalMessageDeletionResult, MediaBatchBudgetOptions, MediaBatchLimitInfo, MediaLimitItem, MediaObjectUrlLease, MediaPresentationFit, MediaPresentationPolicy, MediaPresentationRule, MediaPresentationSourceCandidate, MediaPresentationSourceQuality, MediaSendBatchResult, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MemberTargetCapabilityAction, MemberTargetCapabilityInput, MentionCandidate, MentionCandidatePage, MentionInput, MessageCapabilityAction, MessageCapabilityInput, MessageContentType, MessageLocateScrollProtectionInput, MessageWindowInfo, MessageWindowPage, MessagesByIdFailure, MigrateImCachePrefixInput, MiniProgramMessageOptions, NewMessageBadgeController, NewMessageBadgeCountListener, NewMessageBadgeVisibilityInput, NewerHistoryPageTriggerInput, OlderHistoryPrefetchInput, PrependAnchorCandidate, PrependAnchorViewport, PrependMessageAnchorPosition, ProductConversationListType, ProductHandleConversationType, ProductMessageSearchPage, ProductMessageSearchResult, RemoteMessageBadgeTrackingInput, ResolveMediaPresentationInput, ResolveTextOptions, ResolvedConversationBackground, ResolvedMediaPresentation, RichExtraSegment, RuntimeClientOperation, RuntimeOperation, SearchBatchResult, SearchFilesInput, SearchMessagesInput, SearchTextMessagesInput, SegmentMatch, SegmentMatcher, SendCapabilityMode, SendCommandHooks, SendMessageResult, SendVoicePayload, SenderProfileEntry, ServiceNoteHooks, StandaloneEmojiMessage, StickerAssetKind, TextMessageOptions, TextSegment, TransferMessageOptions, UnicodeEmojiEntry, UnknownMessageBody, UserProfile, VideoMessageOptions, VideoPreviewMetadata, VoiceCapabilities, VoiceErrorCode, VoiceMessageMetadata, VoicePlayer, VoicePlayerOptions, VoicePlayerState, VoiceRecordingResult, VoiceRecordingSession, VoiceRecordingSessionOptions, VoiceRecordingState, VoiceToggleOptions };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-IDECJJXC.js';import'./chunk-SXY56EVC.js';export{c as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,b as DEFAULT_LOADING_SHOW_DELAY_MS,u as SPIKE_STEP,q as calculateMediaBox,f as canPromoteMediaPresentationSource,h as captureRuntimeClientOperation,g as captureRuntimeOperation,d as createDelayedLoadingIndicator,o as createLinkMatcher,s as formatFileSize,r as formatMediaDuration,t as getFileExtension,n as hasLinkCandidate,l as highlightSegments,i as mediaService,m as normalizeLinkHref,x as placeholderWaveform,j as readService,w as resampleWaveform,e as resolveBestMediaPresentationSource,a as resolveConversationListPresentation,p as resolveMediaPresentation,k as resolveQuotedMessagePresentation,v as spikeCountForDuration}from'./chunk-HFB7A67C.js';export{j as DEFAULT_EMOJI_ASSET_BASE,i as EMOJI_CATALOG,c as EMOJI_GAME_DICE_STABLE_KEY,b as EMOJI_GAME_RPS_STABLE_KEY,m as EMOJI_TOKEN_RE,K as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,J as blockReasonForChannelSession,I as blockReasonForChannelState,O as blockReasonForGroupState,R as blockReasonForSession,D as canEditMessage,t as canPinChannelMessage,s as canPinGroupMessage,u as canPinMessage,C as canRecallMessage,Z as cancelMediaUpload,r as createChatRuntime,p as createEmojiMatcher,F as decideConversationAction,H as decideMemberTargetAction,G as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,xa as fetchConversationFileBatch,ya as fetchConversationImageBatch,va as fetchConversationMessageBatch,za as fetchConversationVideoBatch,Aa as fetchConversationVoiceBatch,Ba as fetchNextConversationSearchBatch,aa as forwardService,o as hasEmojiCandidate,N as isGifFile,v as isPinnedMessageProtected,V as isVoiceStorageConfigured,L as mediaBatchBudgetBytes,fa as messageService,e as parseUnicodeEmojiCode,ka as pinnedMessageService,d as prependRecentEmoji,ua as profileService,U as replaceInterruptedMediaFile,P as requiresConversationEncryption,y as resolveChannelMemberAvatarUrl,x as resolveChannelMemberDisplayName,k as resolveEmojiToken,B as resolveFriendDisplayName,la as resolveImProfileAccessDestination,w as resolveMemberDisplayName,A as resolvePublicNickname,z as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,_ as retryMessage,M as runMediaSendBatch,Y as sendAsFilesBatch,E as sendBlockReasonForDecision,T as sendMediaFile,X as sendMediaFilesBatch,S as sendText,W as sendVoice,Q as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-2R5T6ZOX.js';export{C as createNewMessageBadgeController,i as createThreadItems,f as formatChatDateSeparator,e as formatConversationDisplayTime,c as getLocalDayKey,l as isMessageLocateScrollProtected,v as isMessageTailChangeFromOlderWindowTrim,k as isMessageViewportMeasurable,B as isMessageVisibleForNewMessageBadge,x as loadOlderUntilBoundary,p as refreshPrependMessageAnchorPosition,j as resolveCenteredMessageScrollTop,a as resolveDisplayTimestamp,g as resolveImThreadActiveDate,h as resolveMessageBodyKind,b as resolveMessageTimelineTimestamp,n as resolvePrependMessageAnchor,q as resolvePrependMessageAnchorAdjustment,o as resolvePrependMessageAnchorPosition,s as resolveSurvivingMessageAnchorAdjustment,r as resolveVisibleMessageAnchorPositions,t as shouldCompleteInitialViewport,y as shouldFillInitialHistoryViewport,u as shouldFollowIncomingMessage,z as shouldLoadNewerHistoryPage,m as shouldPrefetchOlderHistory,w as shouldRestoreMessageViewportFocus,d as shouldShowChatDateSeparator,A as shouldTrackRemoteMessageForBadge}from'./chunk-CLEJGY6F.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-7HTZ3OXY.js';export{j as IM_CHAT_FONT_SCALES,e as IM_DIAGNOSTIC_CATEGORIES,h as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,d as createFaceToFaceGroupQrPayload,k as createImClient,f as createImConsoleDiagnosticSink,n as createImDiagnosticMemoryBuffer,g as createSdkDiagnosticWriter,a as migrateImCachePrefix,i as resolveImEmojiToken}from'./chunk-UY3JAQMB.js';export{Va as createVoicePlayer,Wa as createVoiceRecordingSession,Ta as detectVoiceCapabilities,Ua as voiceErrorCodeOf}from'./chunk-KBKZ27GY.js';export{ia as EDIT_WINDOW_MS,qa as REACTION_SUPPORTED_CONTENT_TYPES,ra as canReactToMessage,ma as canTransmit,ka as canTransmitByType,la as canTransmitContent,o as classifyStickerImageType,Z as createImTextSearchMatcher,X as extractSearchText,Y as getImTextSearchInitial,ja as requiresForwardTypeConfirmation,ta as resolveChannelAccess,ca as resolveTextSegments,za as sortSessions,Aa as sumSessionsUnread}from'./chunk-KZM3GLRL.js';import'./chunk-WOT6VMZA.js';
1
+ import'./chunk-IDECJJXC.js';import'./chunk-SXY56EVC.js';export{c as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,b as DEFAULT_LOADING_SHOW_DELAY_MS,u as SPIKE_STEP,q as calculateMediaBox,f as canPromoteMediaPresentationSource,h as captureRuntimeClientOperation,g as captureRuntimeOperation,d as createDelayedLoadingIndicator,o as createLinkMatcher,s as formatFileSize,r as formatMediaDuration,t as getFileExtension,n as hasLinkCandidate,l as highlightSegments,i as mediaService,m as normalizeLinkHref,x as placeholderWaveform,j as readService,w as resampleWaveform,e as resolveBestMediaPresentationSource,a as resolveConversationListPresentation,p as resolveMediaPresentation,k as resolveQuotedMessagePresentation,v as spikeCountForDuration}from'./chunk-EBFUMES6.js';export{j as DEFAULT_EMOJI_ASSET_BASE,i as EMOJI_CATALOG,c as EMOJI_GAME_DICE_STABLE_KEY,b as EMOJI_GAME_RPS_STABLE_KEY,m as EMOJI_TOKEN_RE,K as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,J as blockReasonForChannelSession,I as blockReasonForChannelState,O as blockReasonForGroupState,R as blockReasonForSession,D as canEditMessage,t as canPinChannelMessage,s as canPinGroupMessage,u as canPinMessage,C as canRecallMessage,Z as cancelMediaUpload,r as createChatRuntime,p as createEmojiMatcher,F as decideConversationAction,H as decideMemberTargetAction,G as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,xa as fetchConversationFileBatch,ya as fetchConversationImageBatch,va as fetchConversationMessageBatch,za as fetchConversationVideoBatch,Aa as fetchConversationVoiceBatch,Ba as fetchNextConversationSearchBatch,aa as forwardService,o as hasEmojiCandidate,N as isGifFile,v as isPinnedMessageProtected,V as isVoiceStorageConfigured,L as mediaBatchBudgetBytes,fa as messageService,e as parseUnicodeEmojiCode,ka as pinnedMessageService,d as prependRecentEmoji,ua as profileService,U as replaceInterruptedMediaFile,P as requiresConversationEncryption,y as resolveChannelMemberAvatarUrl,x as resolveChannelMemberDisplayName,k as resolveEmojiToken,B as resolveFriendDisplayName,la as resolveImProfileAccessDestination,w as resolveMemberDisplayName,A as resolvePublicNickname,z as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,_ as retryMessage,M as runMediaSendBatch,Y as sendAsFilesBatch,E as sendBlockReasonForDecision,T as sendMediaFile,X as sendMediaFilesBatch,S as sendText,W as sendVoice,Q as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-LCNFKUGH.js';export{C as createNewMessageBadgeController,i as createThreadItems,f as formatChatDateSeparator,e as formatConversationDisplayTime,c as getLocalDayKey,l as isMessageLocateScrollProtected,v as isMessageTailChangeFromOlderWindowTrim,k as isMessageViewportMeasurable,B as isMessageVisibleForNewMessageBadge,x as loadOlderUntilBoundary,p as refreshPrependMessageAnchorPosition,j as resolveCenteredMessageScrollTop,a as resolveDisplayTimestamp,g as resolveImThreadActiveDate,h as resolveMessageBodyKind,b as resolveMessageTimelineTimestamp,n as resolvePrependMessageAnchor,q as resolvePrependMessageAnchorAdjustment,o as resolvePrependMessageAnchorPosition,s as resolveSurvivingMessageAnchorAdjustment,r as resolveVisibleMessageAnchorPositions,t as shouldCompleteInitialViewport,y as shouldFillInitialHistoryViewport,u as shouldFollowIncomingMessage,z as shouldLoadNewerHistoryPage,m as shouldPrefetchOlderHistory,w as shouldRestoreMessageViewportFocus,d as shouldShowChatDateSeparator,A as shouldTrackRemoteMessageForBadge}from'./chunk-IXEEIWDI.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-G7IJFU6R.js';export{l as IM_CHAT_FONT_SCALES,e as IM_DIAGNOSTIC_CATEGORIES,h as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,k as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,m as createImClient,f as createImConsoleDiagnosticSink,p as createImDiagnosticMemoryBuffer,g as createSdkDiagnosticWriter,a as migrateImCachePrefix,i as resolveImEmojiToken,j as resolveSessionFavoriteKindFromMessage}from'./chunk-ACU6MYJB.js';export{Ra as MediaTransferError,$a as createVoicePlayer,ab as createVoiceRecordingSession,Za as detectVoiceCapabilities,Sa as mediaTransferErrorCodeOf,Ta as normalizeMediaUploadCredentials,_a as voiceErrorCodeOf}from'./chunk-DFJWOEGQ.js';export{ia as EDIT_WINDOW_MS,qa as REACTION_SUPPORTED_CONTENT_TYPES,ra as canReactToMessage,ma as canTransmit,ka as canTransmitByType,la as canTransmitContent,o as classifyStickerImageType,Z as createImTextSearchMatcher,X as extractSearchText,Y as getImTextSearchInitial,ja as requiresForwardTypeConfirmation,ta as resolveChannelAccess,ca as resolveTextSegments,za as sortSessions,Aa as sumSessionsUnread}from'./chunk-RKZTPXBQ.js';import'./chunk-WOT6VMZA.js';