k2-im 0.1.21 → 0.1.23

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.
@@ -1 +1 @@
1
- import {c as c$1}from'./chunk-P4HOR4XO.js';import {q as q$1}from'./chunk-A2BLOVZ5.js';var w=864e5,P=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function u(e){return e!=null&&Number.isFinite(e)&&e>0&&!Number.isNaN(new Date(e).getTime())}function v(e,n){if(u(e))return e;if(u(n))return n}function b(e,n){return v(e,n)}function m(e){if(!u(e))return "";let n=new Date(e);return `${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`}function h(e,n){return u(e)?u(n)?m(e)!==m(n):true:false}function F(e,n){return T(e,n,"conversation")}function L(e,n){return T(e,n,"separator")}function T(e,n,r){if(!u(e))return "";let t=n.now??new Date;if(Number.isNaN(t.getTime()))return "";let o=new Date(e),a=y(t)-y(o),i=c$1(n.locale);return o.getFullYear()!==t.getFullYear()?A(o):a===0?r==="conversation"?k(o):i.today:a===1?i.yesterday:a>=2&&a<=6?x(o,i):D(o)}function y(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/w}function x(e,n){return n.weekdays[P[e.getDay()]]}function k(e){return `${c(e.getHours())}:${c(e.getMinutes())}`}function A(e){return `${e.getFullYear()}/${c(e.getMonth()+1)}/${c(e.getDate())}`}function D(e){return `${c(e.getMonth()+1)}/${c(e.getDate())}`}function c(e){return String(e).padStart(2,"0")}function O(e){if(e.markers.length===0)return null;let n=e.viewportTop+e.overlayTop;if(e.markers[0].top>n+1)return null;let r=0;for(let d=0;d<e.markers.length&&!(e.markers[d].top>n+1);d+=1)r=d;let t=e.markers[r],o=n+e.overlayHeight,a=e.markers.filter(d=>d.top<o+1&&d.top+d.height>n-1).at(-1),i=a===void 0?0:Math.max(0,Math.min(a.top+a.height,o)-Math.max(a.top,n)),s=a===void 0?1:Math.max(1,Math.min(a.height,e.overlayHeight)),l=Math.min(1,i/s);return {key:t.key,label:t.label,inlineOpacity:1-l,...a===void 0?{}:{inlineDateKey:a.key}}}var C={text:"text",image:"image",video:"video",voice:"voice",file:"file",sticker:"sticker",contact:"contact",miniProgram:"miniProgram",game:"game",transfer:"transfer",redPacket:"redPacket",call:"call",mediaAlbum:"mediaAlbum",system:"system",unknown:"unknown"};function S(e){switch(e.contentType){case "text":return typeof e.body.text=="string";case "image":return e.body.image!==void 0&&typeof e.body.image.url=="string";case "video":return e.body.video!==void 0&&typeof e.body.video.url=="string";case "voice":return e.body.voice!==void 0;case "file":return e.body.file!==void 0;case "sticker":return e.body.sticker!==void 0;case "contact":return e.body.contact!==void 0;case "miniProgram":return e.body.miniProgram!==void 0&&typeof e.body.miniProgram.appId=="string";case "transfer":return e.body.transfer!==void 0&&typeof e.body.transfer.serialNumber=="string";case "redPacket":{let n=e.body.redPacket;return n!==void 0&&n.packetId.trim()!==""&&(n.packetType===1||n.packetType===2||n.packetType===3||n.packetType===4)}case "call":return e.body.call!==void 0&&(e.body.call.callKind==="audio"||e.body.call.callKind==="video")&&typeof e.body.call.durationMs=="number";case "game":{let n=e.body.game;return n?.gameType==="dice"?Number.isInteger(n.value)&&n.value>=1&&n.value<=6:n?.gameType==="rock-paper-scissors"&&Number.isInteger(n.value)&&n.value>=1&&n.value<=3}case "mediaAlbum":{let n=e.body.mediaAlbum;return n!==void 0&&n.items.length>0&&n.items.every(r=>typeof r.url=="string"&&r.url!=="")}case "system":return e.body.system!==void 0;case "unknown":return e.body.unknown!==void 0}}function I(e){return e.encryption.decryptFailed===true?"decrypt-failed":S(e)?e.contentType==="sticker"?q$1(e.body.sticker.imageType):C[e.contentType]:"unknown"}function _(e){let n=[...e.leadingItems??[]],r=e.entryUnread.state==="located"?e.entryUnread:null,t,o=null,a=false;for(let i of e.messages){let s=b(i.createdAt,i.serverTime),l=s!==void 0&&h(s,t);s!==void 0&&l&&n.push({kind:"date-separator",key:`date-${m(s)}-${i.id}`,label:e.formatDate(s)}),t=s,!a&&r!==null&&i.id===r.firstMessageId&&(n.push({kind:"entry-unread",key:`entry-unread-${i.id}`,...r.count===void 0?{}:{count:r.count}}),a=true);let d=e.beforeMessageItems?.(i)??[];if(n.push(...d),I(i)==="system"){n.push({kind:"system",key:i.id,message:i}),o=null;continue}n.push({kind:"message",key:`message-${i.id}`,message:i,firstOfRun:l||i.senderId!==o}),o=i.senderId;}return n}function U(e){let n=e.targetTop-e.viewportTop,r=e.currentScrollTop+n-(e.viewportHeight-e.targetHeight)/2,t=Math.max(0,e.scrollHeight-e.viewportHeight);return Math.min(t,Math.max(0,r))}function j(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}function G(e){return e.locatedAt<=0||e.duration<0||e.now<e.locatedAt?false:e.now-e.locatedAt<=e.duration}function q(e){return !Number.isFinite(e.topThreshold)||e.topThreshold<0?false:e.currentScrollTop<e.previousScrollTop&&e.currentScrollTop<=e.topThreshold}function H(e,n){return e.find(r=>r.bottom>n.top&&r.top<n.bottom)??e[0]}function f(e){return e.anchorTop??e.top}function B(e,n){let r=H(e,n);return r===void 0?void 0:{id:r.id,offset:f(r)-n.top}}function J(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t!==void 0&&t.bottom>r.top&&t.top<r.bottom?{id:e.id,offset:f(t)-r.top}:B(n,r)??e}function V(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t===void 0?void 0:f(t)-r.top-e.offset}function Q(e,n,r=3){return !Number.isFinite(r)||r<=0?[]:e.filter(t=>t.bottom>n.top&&t.top<n.bottom).slice(0,Math.floor(r)).map(t=>({id:t.id,offset:f(t)-n.top}))}function X(e,n,r){for(let t of e){let o=V(t,n,r);if(o!==void 0)return o}}function Z(e){return e.sameConversation&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&e.userKeptLatestIntent}function ee(e){return e.isPageVisible&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&(e.isOwnMessage||e.isAtBottom)}function ne(e){return e.isLoadingOlder&&e.previousTailId!==void 0&&e.previousTailId!==e.currentTailId&&e.previousMessageIds.includes(e.currentTailId)}function re(e,n){return e!==void 0&&!n.has(e)}async function te(e,n){let r=0;for(;e()&&!(await n()<=0);)r+=1;return r}function oe(e){return e.hasMoreHistory&&Number.isFinite(e.scrollHeight)&&Number.isFinite(e.clientHeight)&&e.scrollHeight>0&&e.clientHeight>0&&e.scrollHeight<=e.clientHeight}function ie(e){return e.isHistoryWindow&&!e.isPageSettling&&e.isAtBottom&&(e.currentScrollTop>e.previousScrollTop||e.allowStationaryBoundary===true)}function M(e){return !e.isPageVisible||!e.isAtBottom||e.isHistoryWindow}function ae(e){let n=Math.max(0,e.margin);return e.messageTop<e.viewportBottom-n&&e.messageBottom>e.viewportTop+n}function le(e){let n=new Set;function r(s){return s===n.size?false:(e?.(n.size),true)}function t(s){let l=n.size;for(let d of s)d!==""&&n.add(d);return r(l)}function o(s,l){return M(l)&&t(s)}function a(s){let l=n.size;for(let d of s)n.delete(d);return r(l)}function i(){let s=n.size;return n.clear(),r(s)}return {get count(){return n.size},add:t,trackRemote:o,acknowledgeVisible:a,clear:i}}export{M as A,ae as B,le as C,v as a,b,m as c,h as d,F as e,L as f,O as g,I as h,_ as i,U as j,j as k,G as l,q as m,H as n,B as o,J as p,V as q,Q as r,X as s,Z as t,ee as u,ne as v,re as w,te as x,oe as y,ie as z};
1
+ import {c as c$1}from'./chunk-HQ7FTY2C.js';import {q as q$1}from'./chunk-W5SQGPRQ.js';var w=864e5,P=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function u(e){return e!=null&&Number.isFinite(e)&&e>0&&!Number.isNaN(new Date(e).getTime())}function v(e,n){if(u(e))return e;if(u(n))return n}function b(e,n){return v(e,n)}function m(e){if(!u(e))return "";let n=new Date(e);return `${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`}function h(e,n){return u(e)?u(n)?m(e)!==m(n):true:false}function F(e,n){return T(e,n,"conversation")}function L(e,n){return T(e,n,"separator")}function T(e,n,r){if(!u(e))return "";let t=n.now??new Date;if(Number.isNaN(t.getTime()))return "";let o=new Date(e),a=y(t)-y(o),i=c$1(n.locale);return o.getFullYear()!==t.getFullYear()?A(o):a===0?r==="conversation"?k(o):i.today:a===1?i.yesterday:a>=2&&a<=6?x(o,i):D(o)}function y(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/w}function x(e,n){return n.weekdays[P[e.getDay()]]}function k(e){return `${c(e.getHours())}:${c(e.getMinutes())}`}function A(e){return `${e.getFullYear()}/${c(e.getMonth()+1)}/${c(e.getDate())}`}function D(e){return `${c(e.getMonth()+1)}/${c(e.getDate())}`}function c(e){return String(e).padStart(2,"0")}function O(e){if(e.markers.length===0)return null;let n=e.viewportTop+e.overlayTop;if(e.markers[0].top>n+1)return null;let r=0;for(let d=0;d<e.markers.length&&!(e.markers[d].top>n+1);d+=1)r=d;let t=e.markers[r],o=n+e.overlayHeight,a=e.markers.filter(d=>d.top<o+1&&d.top+d.height>n-1).at(-1),i=a===void 0?0:Math.max(0,Math.min(a.top+a.height,o)-Math.max(a.top,n)),s=a===void 0?1:Math.max(1,Math.min(a.height,e.overlayHeight)),l=Math.min(1,i/s);return {key:t.key,label:t.label,inlineOpacity:1-l,...a===void 0?{}:{inlineDateKey:a.key}}}var C={text:"text",image:"image",video:"video",voice:"voice",file:"file",sticker:"sticker",contact:"contact",miniProgram:"miniProgram",game:"game",transfer:"transfer",redPacket:"redPacket",call:"call",mediaAlbum:"mediaAlbum",system:"system",unknown:"unknown"};function S(e){switch(e.contentType){case "text":return typeof e.body.text=="string";case "image":return e.body.image!==void 0&&typeof e.body.image.url=="string";case "video":return e.body.video!==void 0&&typeof e.body.video.url=="string";case "voice":return e.body.voice!==void 0;case "file":return e.body.file!==void 0;case "sticker":return e.body.sticker!==void 0;case "contact":return e.body.contact!==void 0;case "miniProgram":return e.body.miniProgram!==void 0&&typeof e.body.miniProgram.appId=="string";case "transfer":return e.body.transfer!==void 0&&typeof e.body.transfer.serialNumber=="string";case "redPacket":{let n=e.body.redPacket;return n!==void 0&&n.packetId.trim()!==""&&(n.packetType===1||n.packetType===2||n.packetType===3||n.packetType===4)}case "call":return e.body.call!==void 0&&(e.body.call.callKind==="audio"||e.body.call.callKind==="video")&&typeof e.body.call.durationMs=="number";case "game":{let n=e.body.game;return n?.gameType==="dice"?Number.isInteger(n.value)&&n.value>=1&&n.value<=6:n?.gameType==="rock-paper-scissors"&&Number.isInteger(n.value)&&n.value>=1&&n.value<=3}case "mediaAlbum":{let n=e.body.mediaAlbum;return n!==void 0&&n.items.length>0&&n.items.every(r=>typeof r.url=="string"&&r.url!=="")}case "system":return e.body.system!==void 0;case "unknown":return e.body.unknown!==void 0}}function I(e){return e.encryption.decryptFailed===true?"decrypt-failed":S(e)?e.contentType==="sticker"?q$1(e.body.sticker.imageType):C[e.contentType]:"unknown"}function _(e){let n=[...e.leadingItems??[]],r=e.entryUnread.state==="located"?e.entryUnread:null,t,o=null,a=false;for(let i of e.messages){let s=b(i.createdAt,i.serverTime),l=s!==void 0&&h(s,t);s!==void 0&&l&&n.push({kind:"date-separator",key:`date-${m(s)}-${i.id}`,label:e.formatDate(s)}),t=s,!a&&r!==null&&i.id===r.firstMessageId&&(n.push({kind:"entry-unread",key:`entry-unread-${i.id}`,...r.count===void 0?{}:{count:r.count}}),a=true);let d=e.beforeMessageItems?.(i)??[];if(n.push(...d),I(i)==="system"){n.push({kind:"system",key:i.id,message:i}),o=null;continue}n.push({kind:"message",key:`message-${i.id}`,message:i,firstOfRun:l||i.senderId!==o}),o=i.senderId;}return n}function U(e){let n=e.targetTop-e.viewportTop,r=e.currentScrollTop+n-(e.viewportHeight-e.targetHeight)/2,t=Math.max(0,e.scrollHeight-e.viewportHeight);return Math.min(t,Math.max(0,r))}function j(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}function G(e){return e.locatedAt<=0||e.duration<0||e.now<e.locatedAt?false:e.now-e.locatedAt<=e.duration}function q(e){return !Number.isFinite(e.topThreshold)||e.topThreshold<0?false:e.currentScrollTop<e.previousScrollTop&&e.currentScrollTop<=e.topThreshold}function H(e,n){return e.find(r=>r.bottom>n.top&&r.top<n.bottom)??e[0]}function f(e){return e.anchorTop??e.top}function B(e,n){let r=H(e,n);return r===void 0?void 0:{id:r.id,offset:f(r)-n.top}}function J(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t!==void 0&&t.bottom>r.top&&t.top<r.bottom?{id:e.id,offset:f(t)-r.top}:B(n,r)??e}function V(e,n,r){if(e===void 0)return;let t=n.find(o=>o.id===e.id);return t===void 0?void 0:f(t)-r.top-e.offset}function Q(e,n,r=3){return !Number.isFinite(r)||r<=0?[]:e.filter(t=>t.bottom>n.top&&t.top<n.bottom).slice(0,Math.floor(r)).map(t=>({id:t.id,offset:f(t)-n.top}))}function X(e,n,r){for(let t of e){let o=V(t,n,r);if(o!==void 0)return o}}function Z(e){return e.sameConversation&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&e.userKeptLatestIntent}function ee(e){return e.isPageVisible&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&(e.isOwnMessage||e.isAtBottom)}function ne(e){return e.isLoadingOlder&&e.previousTailId!==void 0&&e.previousTailId!==e.currentTailId&&e.previousMessageIds.includes(e.currentTailId)}function re(e,n){return e!==void 0&&!n.has(e)}async function te(e,n){let r=0;for(;e()&&!(await n()<=0);)r+=1;return r}function oe(e){return e.hasMoreHistory&&Number.isFinite(e.scrollHeight)&&Number.isFinite(e.clientHeight)&&e.scrollHeight>0&&e.clientHeight>0&&e.scrollHeight<=e.clientHeight}function ie(e){return e.isHistoryWindow&&!e.isPageSettling&&e.isAtBottom&&(e.currentScrollTop>e.previousScrollTop||e.allowStationaryBoundary===true)}function M(e){return !e.isPageVisible||!e.isAtBottom||e.isHistoryWindow}function ae(e){let n=Math.max(0,e.margin);return e.messageTop<e.viewportBottom-n&&e.messageBottom>e.viewportTop+n}function le(e){let n=new Set;function r(s){return s===n.size?false:(e?.(n.size),true)}function t(s){let l=n.size;for(let d of s)d!==""&&n.add(d);return r(l)}function o(s,l){return M(l)&&t(s)}function a(s){let l=n.size;for(let d of s)n.delete(d);return r(l)}function i(){let s=n.size;return n.clear(),r(s)}return {get count(){return n.size},add:t,trackRemote:o,acknowledgeVisible:a,clear:i}}export{M as A,ae as B,le as C,v as a,b,m as c,h as d,F as e,L as f,O as g,I as h,_ as i,U as j,j as k,G as l,q as m,H as n,B as o,J as p,V as q,Q as r,X as s,Z as t,ee as u,ne as v,re as w,te as x,oe as y,ie as z};
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-P4HOR4XO.js';import'./chunk-A2BLOVZ5.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-HQ7FTY2C.js';import'./chunk-W5SQGPRQ.js';import'./chunk-WOT6VMZA.js';
package/dist/index.d.ts CHANGED
@@ -3394,6 +3394,20 @@ interface ApiProtocolUploadProgress {
3394
3394
  /** 底层 transport 的原始进度事件,供调试或特殊场景读取。 */
3395
3395
  event?: unknown;
3396
3396
  }
3397
+ /**
3398
+ * 单次请求完成后的安全状态信息,供调用方识别 HTTP 与业务失败。
3399
+ *
3400
+ * 不包含请求头、URL、凭据或响应正文;HTTP 状态与后端业务码分别保留,避免把网络
3401
+ * 失败合成的 502 或纯 HTTP 403 当成服务端业务码。原始响应仍通过请求返回值交付。
3402
+ */
3403
+ interface ApiProtocolResponseObservation {
3404
+ /** 请求结果所属层;成功收到业务错误信封仍属于 `success`。 */
3405
+ transportStatus: 'success' | 'http_error' | 'network_error' | 'invalid_response';
3406
+ /** 服务端真实 HTTP 状态;未收到响应时不存在。 */
3407
+ httpStatus?: number;
3408
+ /** 仅在真实响应正文是协议信封时提供其 code;不包含客户端合成的错误码。 */
3409
+ businessCode?: number;
3410
+ }
3397
3411
  /**
3398
3412
  * 单次协议请求的可覆盖项。
3399
3413
  *
@@ -3436,6 +3450,13 @@ interface ApiProtocolRequestOptions {
3436
3450
  signal?: AbortSignal;
3437
3451
  /** 上传进度回调;默认浏览器客户端的 axios transport 支持该能力。 */
3438
3452
  onUploadProgress?: (progress: ApiProtocolUploadProgress) => void;
3453
+ /**
3454
+ * 请求完成后调用一次,只提供安全状态字段。回调异常会使请求显式失败,不会转换成网络错误。
3455
+ * 调用方如需检查当前账号是否仍有效,可先保存这些字段,在请求返回后决定是否处理。
3456
+ */
3457
+ onResponse?: (observation: ApiProtocolResponseObservation) => void | Promise<void>;
3458
+ /** 跳过客户端注入的全局业务处理器,默认 false;由调用方接管当前请求的业务副作用。 */
3459
+ skipBusinessResponseHandler?: boolean;
3439
3460
  /**
3440
3461
  * 响应解析模式。
3441
3462
  * - `'json'`(默认):按 content-type 走 JSON / 文本 / AES-JSON 解析,返回业务响应对象。
@@ -5586,6 +5607,17 @@ interface ConversationOpenOptions {
5586
5607
  * 后续 read 事件或新消息不会移动分隔线。
5587
5608
  */
5588
5609
  initialPosition?: ConversationInitialPosition;
5610
+ /**
5611
+ * 初始历史加载方式,默认 `blocking`。
5612
+ *
5613
+ * @remarks 两种模式都在句柄交付前把初始窗口和 `entryUnread` 定稿,交付后不会再因本次初始化替换窗口或补填未读锚点,
5614
+ * 因此交付的快照 `loading` 已经结束。区别只在失败处理:`blocking` 下初始历史失败会拒绝 `openConversation`;
5615
+ * `local-first` 先读出本地最新页,之后的远端补齐失败不再拒绝打开,而是保留失败时的当前连续窗口、把失败写入
5616
+ * `error`(`operation` 为 `history.initial`),并把 `first-unread` 的 `entryUnread` 降级为 `unavailable`,
5617
+ * 由调用方用 `history` 动作重试。窗口可能已经定位在历史锚点,`hasNewer` 仍按实际边界返回。
5618
+ * 两种模式下首屏窗口的本地读取失败都拒绝打开,并保留原始异常。
5619
+ */
5620
+ initialLoad?: 'blocking' | 'local-first';
5589
5621
  }
5590
5622
  /**
5591
5623
  * 产品会话的连续窗口快照;协议 cursor、窗口 id 与 generation 始终保持在 SDK 内部。
@@ -6487,6 +6519,39 @@ interface ImMembershipJoinResult {
6487
6519
  outcome: 'joined' | 'waiting';
6488
6520
  }
6489
6521
 
6522
+ /**
6523
+ * SDK 自管 Core JSON / CM HTTP 请求的失败事实,交由宿主决定是否触发全局处理。
6524
+ *
6525
+ * 不包含 URL、响应正文、服务端文案或凭据。`httpStatus` 与 `businessCode` 分别来自 HTTP
6526
+ * 响应和真实业务响应体;网络失败没有 HTTP 状态,合成的 502 不会冒充业务码。
6527
+ * S3、Giphy 和宿主自己发出的请求不属于这两个服务,不会被当作账号认证失败上报。
6528
+ */
6529
+ interface ImRequestError {
6530
+ /** 返回错误的服务;宿主不能把 CM 成员权限错误等同于 Core 账号失效。 */
6531
+ readonly service: 'core' | 'cm';
6532
+ /** 失败发生在哪一层;同时有 HTTP 和业务失败时,优先标为 `http`。 */
6533
+ readonly kind: 'http' | 'business' | 'network' | 'invalid-response';
6534
+ /** 实际 HTTP 状态;没有收到响应时不存在。 */
6535
+ readonly httpStatus?: number;
6536
+ /** Core 返回的真实业务码;CM protobuf 请求不提供该字段。 */
6537
+ readonly businessCode?: number;
6538
+ }
6539
+ /**
6540
+ * 宿主的全局请求错误入口;SDK 不依据返回值重试、登出或改变原调用的结果。
6541
+ *
6542
+ * 每个失败请求通知一次,重复提示策略由宿主现有全局处理器负责。调用前 SDK 会核对账号、
6543
+ * 实际发送凭据及运行时是否仍有效;异步处理器应在第一次 await 前完成需要当前登录态的决策。
6544
+ * 回调抛错或拒绝只进入 SDK 诊断,不会替换请求本身的失败。不会等待回调中的登录/退出操作,
6545
+ * 避免宿主退出流程等待当前请求时互相阻塞。
6546
+ *
6547
+ * @example
6548
+ * ```ts
6549
+ * const onRequestError: ImRequestErrorHandler = issue => appErrors.handleImRequest(issue)
6550
+ * const client = createImClient({ authProvider, endpointProvider, cache, onRequestError })
6551
+ * ```
6552
+ */
6553
+ type ImRequestErrorHandler = (issue: ImRequestError) => void | Promise<void>;
6554
+
6490
6555
  /**
6491
6556
  * 当前账号本地会话与消息的分场景产品搜索运行时。
6492
6557
  *
@@ -6778,6 +6843,8 @@ interface ImClientAdapters {
6778
6843
  * ```
6779
6844
  */
6780
6845
  interface ImClientOptions {
6846
+ /** HTTP/业务失败交给宿主全局处理;SDK 不自动登出,详见 ImRequestErrorHandler。 */
6847
+ onRequestError?: ImRequestErrorHandler;
6781
6848
  authProvider: ImAuthProvider;
6782
6849
  endpointProvider: ImEndpointProvider;
6783
6850
  /** 所有 SDK 自管本地数据与协调名称的宿主前缀;创建 client 时同步校验。 */
@@ -7551,6 +7618,8 @@ interface ChatRuntimeHostDeps {
7551
7618
  } | null;
7552
7619
  /** 返回 core JSON 部署配置;未提供 core client 时由 SDK 内部协议工厂创建等价 client。 */
7553
7620
  getCoreApi?: () => ImCoreApiOptions | undefined;
7621
+ /** HTTP/业务错误交回宿主的全局处理器;Chat Kit 不依据状态码作登录决策。 */
7622
+ onRequestError?: ImRequestErrorHandler;
7554
7623
  /** 当前宿主的客户端类型编号,随登录请求上报,PC Web 默认使用自己的固定类型。 */
7555
7624
  clientType: number;
7556
7625
  /** 获取当前环境的媒体上传下载配置;未启用媒体能力时返回 `undefined`。 */
@@ -8994,6 +9063,8 @@ interface ImThreadReadActions {
8994
9063
  /** Managed Headless Surface 首批会向 typed hooks 暴露的用户意图。 */
8995
9064
  type ImThreadIntent = Readonly<{
8996
9065
  kind: 'load-older';
9066
+ /** 用户滚动触顶或程序自动补页;旧调用方未提供时,不应推断为用户触发。 */
9067
+ source?: 'user-scroll' | 'automatic';
8997
9068
  }> | Readonly<{
8998
9069
  kind: 'retry-older';
8999
9070
  }> | Readonly<{
@@ -9667,4 +9738,4 @@ declare function resampleWaveform(data: readonly number[], targetCount: number):
9667
9738
  declare function placeholderWaveform(seed: string, count: number): number[];
9668
9739
 
9669
9740
  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, MEDIA_ALBUM_CAPTION_MAX_LENGTH, MEDIA_ALBUM_MAX_ITEMS, 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, classifyGifFile, 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, parseSessionFavoriteAlbumItems, 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, resolveMediaAlbumSendContentType, resolveMediaPresentation, resolveMemberDisplayName, resolveMessageBodyKind, resolveMessageNotificationDecision, resolveMessageTimelineTimestamp, resolvePrependMessageAnchor, resolvePrependMessageAnchorAdjustment, resolvePrependMessageAnchorPosition, resolvePublicNickname, resolveQuotedMessagePresentation, resolveSenderAvatarUrl, resolveSessionFavoriteAlbumCaption, resolveSessionFavoriteAlbumItemPreviewUrl, resolveSessionFavoriteKindFromMessage, resolveStandaloneEmojiMessage, resolveSurvivingMessageAnchorAdjustment, resolveTextSegments, resolveUnicodeEmoji, resolveVisibleMessageAnchorPositions, retryMessage, runMediaSendBatch, sendAsFilesBatch, sendBlockReasonForDecision, sendMediaAlbum, sendMediaFile, sendMediaFilesBatch, sendText, sendVoice, shouldCompleteInitialViewport, shouldFillInitialHistoryViewport, shouldFollowIncomingMessage, shouldLoadNewerHistoryPage, shouldPrefetchOlderHistory, shouldRestoreMessageViewportFocus, shouldShowChatDateSeparator, shouldTrackRemoteMessageForBadge, sortSessions, spikeCountForDuration, sumSessionsUnread, supportsConversationMention, unicodeEmojiTextFromCode, voiceErrorCodeOf };
9670
- 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, ConversationListPreviewMediaKind, 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, GifFileClassification, 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, ImMediaAlbumBody, ImMediaAlbumItem, 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, ImPushApi, ImPushSnapshot, ImQuotedMessagePresentation, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImServiceCatalog, ImServiceTextKey, ImSessionApi, ImSessionFavoriteAlbumItem, 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, ImWebPushSubscription, ImWeekdayKey, ImageMessageOptions, ImagePreviewMetadata, IncomingMessageFollowInput, InitialHistoryViewportFillInput, InitialViewportCompletionInput, LinkSegment, LocalConversationHistoryClearResult, LocalMessageDeletionResult, MediaAlbumItemInput, MediaAlbumMessageOptions, MediaBatchBudgetOptions, MediaBatchLimitInfo, MediaLimitItem, MediaObjectUrlLease, MediaPresentationFit, MediaPresentationPolicy, MediaPresentationRule, MediaPresentationSourceCandidate, MediaPresentationSourceQuality, MediaSendBatchResult, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MemberTargetCapabilityAction, MemberTargetCapabilityInput, MentionCandidate, MentionCandidatePage, MentionInput, MessageCapabilityAction, MessageCapabilityInput, MessageContentType, MessageLocateScrollProtectionInput, MessageNotificationDecision, MessageNotificationInput, 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 };
9741
+ 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, ConversationListPreviewMediaKind, 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, GifFileClassification, 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, ImMediaAlbumBody, ImMediaAlbumItem, 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, ImPushApi, ImPushSnapshot, ImQuotedMessagePresentation, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImRequestError, ImRequestErrorHandler, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImServiceCatalog, ImServiceTextKey, ImSessionApi, ImSessionFavoriteAlbumItem, 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, ImWebPushSubscription, ImWeekdayKey, ImageMessageOptions, ImagePreviewMetadata, IncomingMessageFollowInput, InitialHistoryViewportFillInput, InitialViewportCompletionInput, LinkSegment, LocalConversationHistoryClearResult, LocalMessageDeletionResult, MediaAlbumItemInput, MediaAlbumMessageOptions, MediaBatchBudgetOptions, MediaBatchLimitInfo, MediaLimitItem, MediaObjectUrlLease, MediaPresentationFit, MediaPresentationPolicy, MediaPresentationRule, MediaPresentationSourceCandidate, MediaPresentationSourceQuality, MediaSendBatchResult, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MemberTargetCapabilityAction, MemberTargetCapabilityInput, MentionCandidate, MentionCandidatePage, MentionInput, MessageCapabilityAction, MessageCapabilityInput, MessageContentType, MessageLocateScrollProtectionInput, MessageNotificationDecision, MessageNotificationInput, 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-5I7S6LWE.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,L as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,K as blockReasonForChannelSession,J as blockReasonForChannelState,Q as blockReasonForGroupState,T as blockReasonForSession,E as canEditMessage,u as canPinChannelMessage,t as canPinGroupMessage,v as canPinMessage,D as canRecallMessage,aa as cancelMediaUpload,O as classifyGifFile,s as createChatRuntime,p as createEmojiMatcher,G as decideConversationAction,I as decideMemberTargetAction,H as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,Aa as fetchConversationFileBatch,Ba as fetchConversationImageBatch,ya as fetchConversationMessageBatch,Ca as fetchConversationVideoBatch,Da as fetchConversationVoiceBatch,Ea as fetchNextConversationSearchBatch,da as forwardService,o as hasEmojiCandidate,P as isGifFile,w as isPinnedMessageProtected,X as isVoiceStorageConfigured,M as mediaBatchBudgetBytes,ia as messageService,e as parseUnicodeEmojiCode,na as pinnedMessageService,d as prependRecentEmoji,xa as profileService,W as replaceInterruptedMediaFile,R as requiresConversationEncryption,z as resolveChannelMemberAvatarUrl,y as resolveChannelMemberDisplayName,k as resolveEmojiToken,C as resolveFriendDisplayName,oa as resolveImProfileAccessDestination,x as resolveMemberDisplayName,r as resolveMessageNotificationDecision,B as resolvePublicNickname,A as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,ba as retryMessage,N as runMediaSendBatch,$ as sendAsFilesBatch,F as sendBlockReasonForDecision,Z as sendMediaAlbum,V as sendMediaFile,_ as sendMediaFilesBatch,U as sendText,Y as sendVoice,S as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-4X7RCGEV.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-2GZMQCIP.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-P4HOR4XO.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-DN4H5C7G.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-YAM4YHKF.js';export{la as EDIT_WINDOW_MS,m as MEDIA_ALBUM_CAPTION_MAX_LENGTH,n as MEDIA_ALBUM_MAX_ITEMS,ta as REACTION_SUPPORTED_CONTENT_TYPES,ua as canReactToMessage,pa as canTransmit,na as canTransmitByType,oa as canTransmitContent,q as classifyStickerImageType,aa as createImTextSearchMatcher,_ as extractSearchText,$ as getImTextSearchInitial,lb as parseSessionFavoriteAlbumItems,ma as requiresForwardTypeConfirmation,wa as resolveChannelAccess,o as resolveMediaAlbumSendContentType,mb as resolveSessionFavoriteAlbumCaption,kb as resolveSessionFavoriteAlbumItemPreviewUrl,fa as resolveTextSegments,Ca as sortSessions,Da as sumSessionsUnread}from'./chunk-A2BLOVZ5.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-HNSTHP6F.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,L as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,K as blockReasonForChannelSession,J as blockReasonForChannelState,Q as blockReasonForGroupState,T as blockReasonForSession,E as canEditMessage,u as canPinChannelMessage,t as canPinGroupMessage,v as canPinMessage,D as canRecallMessage,aa as cancelMediaUpload,O as classifyGifFile,s as createChatRuntime,p as createEmojiMatcher,G as decideConversationAction,I as decideMemberTargetAction,H as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,Aa as fetchConversationFileBatch,Ba as fetchConversationImageBatch,ya as fetchConversationMessageBatch,Ca as fetchConversationVideoBatch,Da as fetchConversationVoiceBatch,Ea as fetchNextConversationSearchBatch,da as forwardService,o as hasEmojiCandidate,P as isGifFile,w as isPinnedMessageProtected,X as isVoiceStorageConfigured,M as mediaBatchBudgetBytes,ia as messageService,e as parseUnicodeEmojiCode,na as pinnedMessageService,d as prependRecentEmoji,xa as profileService,W as replaceInterruptedMediaFile,R as requiresConversationEncryption,z as resolveChannelMemberAvatarUrl,y as resolveChannelMemberDisplayName,k as resolveEmojiToken,C as resolveFriendDisplayName,oa as resolveImProfileAccessDestination,x as resolveMemberDisplayName,r as resolveMessageNotificationDecision,B as resolvePublicNickname,A as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,ba as retryMessage,N as runMediaSendBatch,$ as sendAsFilesBatch,F as sendBlockReasonForDecision,Z as sendMediaAlbum,V as sendMediaFile,_ as sendMediaFilesBatch,U as sendText,Y as sendVoice,S as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-FUEAUHMC.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-YQSRQ25X.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-HQ7FTY2C.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-EM4YNWX4.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-MO2EU56Q.js';export{la as EDIT_WINDOW_MS,m as MEDIA_ALBUM_CAPTION_MAX_LENGTH,n as MEDIA_ALBUM_MAX_ITEMS,ta as REACTION_SUPPORTED_CONTENT_TYPES,ua as canReactToMessage,pa as canTransmit,na as canTransmitByType,oa as canTransmitContent,q as classifyStickerImageType,aa as createImTextSearchMatcher,_ as extractSearchText,$ as getImTextSearchInitial,mb as parseSessionFavoriteAlbumItems,ma as requiresForwardTypeConfirmation,wa as resolveChannelAccess,o as resolveMediaAlbumSendContentType,nb as resolveSessionFavoriteAlbumCaption,lb as resolveSessionFavoriteAlbumItemPreviewUrl,fa as resolveTextSegments,Da as sortSessions,Ea as sumSessionsUnread}from'./chunk-W5SQGPRQ.js';import'./chunk-WOT6VMZA.js';
package/dist/sdk.d.ts CHANGED
@@ -4162,6 +4162,17 @@ interface ConversationOpenOptions {
4162
4162
  * 后续 read 事件或新消息不会移动分隔线。
4163
4163
  */
4164
4164
  initialPosition?: ConversationInitialPosition;
4165
+ /**
4166
+ * 初始历史加载方式,默认 `blocking`。
4167
+ *
4168
+ * @remarks 两种模式都在句柄交付前把初始窗口和 `entryUnread` 定稿,交付后不会再因本次初始化替换窗口或补填未读锚点,
4169
+ * 因此交付的快照 `loading` 已经结束。区别只在失败处理:`blocking` 下初始历史失败会拒绝 `openConversation`;
4170
+ * `local-first` 先读出本地最新页,之后的远端补齐失败不再拒绝打开,而是保留失败时的当前连续窗口、把失败写入
4171
+ * `error`(`operation` 为 `history.initial`),并把 `first-unread` 的 `entryUnread` 降级为 `unavailable`,
4172
+ * 由调用方用 `history` 动作重试。窗口可能已经定位在历史锚点,`hasNewer` 仍按实际边界返回。
4173
+ * 两种模式下首屏窗口的本地读取失败都拒绝打开,并保留原始异常。
4174
+ */
4175
+ initialLoad?: 'blocking' | 'local-first';
4165
4176
  }
4166
4177
  /**
4167
4178
  * 产品会话的连续窗口快照;协议 cursor、窗口 id 与 generation 始终保持在 SDK 内部。
@@ -5063,6 +5074,39 @@ interface ImMembershipJoinResult {
5063
5074
  outcome: 'joined' | 'waiting';
5064
5075
  }
5065
5076
 
5077
+ /**
5078
+ * SDK 自管 Core JSON / CM HTTP 请求的失败事实,交由宿主决定是否触发全局处理。
5079
+ *
5080
+ * 不包含 URL、响应正文、服务端文案或凭据。`httpStatus` 与 `businessCode` 分别来自 HTTP
5081
+ * 响应和真实业务响应体;网络失败没有 HTTP 状态,合成的 502 不会冒充业务码。
5082
+ * S3、Giphy 和宿主自己发出的请求不属于这两个服务,不会被当作账号认证失败上报。
5083
+ */
5084
+ interface ImRequestError {
5085
+ /** 返回错误的服务;宿主不能把 CM 成员权限错误等同于 Core 账号失效。 */
5086
+ readonly service: 'core' | 'cm';
5087
+ /** 失败发生在哪一层;同时有 HTTP 和业务失败时,优先标为 `http`。 */
5088
+ readonly kind: 'http' | 'business' | 'network' | 'invalid-response';
5089
+ /** 实际 HTTP 状态;没有收到响应时不存在。 */
5090
+ readonly httpStatus?: number;
5091
+ /** Core 返回的真实业务码;CM protobuf 请求不提供该字段。 */
5092
+ readonly businessCode?: number;
5093
+ }
5094
+ /**
5095
+ * 宿主的全局请求错误入口;SDK 不依据返回值重试、登出或改变原调用的结果。
5096
+ *
5097
+ * 每个失败请求通知一次,重复提示策略由宿主现有全局处理器负责。调用前 SDK 会核对账号、
5098
+ * 实际发送凭据及运行时是否仍有效;异步处理器应在第一次 await 前完成需要当前登录态的决策。
5099
+ * 回调抛错或拒绝只进入 SDK 诊断,不会替换请求本身的失败。不会等待回调中的登录/退出操作,
5100
+ * 避免宿主退出流程等待当前请求时互相阻塞。
5101
+ *
5102
+ * @example
5103
+ * ```ts
5104
+ * const onRequestError: ImRequestErrorHandler = issue => appErrors.handleImRequest(issue)
5105
+ * const client = createImClient({ authProvider, endpointProvider, cache, onRequestError })
5106
+ * ```
5107
+ */
5108
+ type ImRequestErrorHandler = (issue: ImRequestError) => void | Promise<void>;
5109
+
5066
5110
  /**
5067
5111
  * 当前账号本地会话与消息的分场景产品搜索运行时。
5068
5112
  *
@@ -5331,6 +5375,8 @@ interface ImExpressionOptions {
5331
5375
  * ```
5332
5376
  */
5333
5377
  interface ImClientOptions {
5378
+ /** HTTP/业务失败交给宿主全局处理;SDK 不自动登出,详见 ImRequestErrorHandler。 */
5379
+ onRequestError?: ImRequestErrorHandler;
5334
5380
  authProvider: ImAuthProvider;
5335
5381
  endpointProvider: ImEndpointProvider;
5336
5382
  /** 所有 SDK 自管本地数据与协调名称的宿主前缀;创建 client 时同步校验。 */
@@ -5782,4 +5828,4 @@ interface ImDiagnosticMemoryBuffer extends ImDiagnosticSink {
5782
5828
  declare function createImDiagnosticMemoryBuffer(options?: ImDiagnosticMemoryBufferOptions): ImDiagnosticMemoryBuffer;
5783
5829
 
5784
5830
  export { EDIT_WINDOW_MS, IM_CHAT_FONT_SCALES, IM_DIAGNOSTIC_CATEGORIES, IM_EMOJI_CATALOG, ImPinnedMessageOperationError, MEDIA_ALBUM_CAPTION_MAX_LENGTH, MEDIA_ALBUM_MAX_ITEMS, MediaTransferError, REACTION_SUPPORTED_CONTENT_TYPES, buildSessionFavoritePlainBody, canReactToMessage, canTransmit, canTransmitByType, canTransmitContent, classifyStickerImageType, createFaceToFaceGroupQrPayload, createImClient, createImConsoleDiagnosticSink, createImDiagnosticMemoryBuffer, createImTextSearchMatcher, createSdkDiagnosticWriter, createVoicePlayer, createVoiceRecordingSession, detectVoiceCapabilities, extractSearchText, getImTextSearchInitial, mediaTransferErrorCodeOf, migrateImCachePrefix, normalizeMediaUploadCredentials, parseSessionFavoriteAlbumItems, requiresForwardTypeConfirmation, resolveChannelAccess, resolveImEmojiToken, resolveMediaAlbumSendContentType, resolveSessionFavoriteAlbumCaption, resolveSessionFavoriteAlbumItemPreviewUrl, resolveSessionFavoriteKindFromMessage, resolveTextSegments, sortSessions, sumSessionsUnread, voiceErrorCodeOf };
5785
- export type { CapabilityAvailability, CapabilityDecision, CapabilityReason, ChannelAccessSnapshot, ChannelBaseSessionState, ChannelConversationCapabilities, ChannelConversationMessageApi, ChannelJoinApplication, ChannelJoinApplicationNotification, ChannelJoinApplicationPage, ChannelMember, ChannelMemberPage, ChannelMentionMember, ChannelMentionMemberPage, ChannelMiniProgramRel, ChannelMiniProgramRelConfigType, ChannelMuteReason, ChannelPermissionSet, ChannelProfile, ChannelRole, ChannelSessionState, ContactCardInput, ContactMessageOptions, ConversationBackgroundPreset, ConversationBackgroundSelection, ConversationCapabilitySnapshot, ConversationDraft, ConversationDraftApi, ConversationEntryUnreadSnapshot, ConversationHandle, ConversationHandleSnapshot, ConversationInitialPosition, ConversationLastMessageSummary, ConversationListItem, ConversationListMention, ConversationMessageApi, ConversationOpenOptions, ConversationRef, ConversationSearchPage, ConversationSearchResult, ConversationSystemSummary, ConversationType, DirectConversationCapabilities, DirectConversationMessageApi, DraftInput, EditTextOptions, ExpressionMessageOptions, FileMessageOptions, ForwardFailReason, ForwardItemStatus, ForwardMessageFailure, ForwardMessagesInput, ForwardMessagesResult, ForwardTarget, ForwardedMessageRef, GameMessageOptions, GifMessageOptions, GroupConversationCapabilities, GroupConversationMessageApi, GroupMemberItem, GroupProfile, ImAppearanceSettingsApi, ImApplicationItem, ImApplicationRef, ImApplicationsApi, ImAuthIssue, ImAuthProvider, ImCacheOptions, ImCachePrefixMigrationContext, ImCachePrefixMigrator, ImCallKind, ImCallOutcome, ImCallRecordBody, ImChannelConversationAccessSnapshot, ImChannelMentionApi, ImChannelMiniProgramRel, ImChannelPermissions, ImChannelPinnedMessage, ImChannelProfile, 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, ImFileBody, ImFriendshipRequestResult, ImGameBody, ImGameType, ImGifAssetInput, ImGiphyAsset, ImGiphyPage, ImGiphyPageOptions, ImGroupCallAnswerInput, ImGroupCallBusyInput, ImGroupCallCreateInput, ImGroupCallJoinInput, ImGroupCallMeetingSnapshot, ImGroupCallMember, ImGroupCallMemberStatus, ImGroupCallStatusInput, ImGroupCallTargetInput, ImGroupCallsApi, ImGroupConversationState, ImGroupMentionApi, ImGroupPinnedMessage, ImGroupProfile, ImGroupsApi, ImImageBody, ImLifecycleSnapshot, ImLocalDataApi, ImLocalDataInfo, ImLogoutOptions, ImMediaAlbumBody, ImMediaAlbumItem, ImMediaConfig, ImMediaTask, ImMediaTasksApi, ImMembershipJoinResult, ImMessageMention, ImMessageReactionAggregate, ImMessageReactions, ImMessageRef, ImMessageSearchApi, ImMessageView, ImMessageViewBody, ImMessagesByIdResult, ImMiniProgramBody, ImMiniProgramShowType, ImOutboxApi, ImOutboxItem, ImPageToken, ImPinnedMessageErrorKind, ImPinnedMessageOperation, ImProductApplicationUpdate, ImProductAuthInvalidReason, ImProductClient, ImProductEvent, ImProductEventError, ImProductEventMap, ImProductMessage, ImPushApi, ImPushSnapshot, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImSessionApi, ImSessionFavoriteAlbumItem, ImSessionFavoriteItem, ImSessionFavoriteKind, ImSessionFavoritesApi, ImSessionLifecycleState, ImSettingsApi, ImStickerAssetInput, ImStickerBody, ImStickerPack, ImSupportedConversationRef, ImTextSearchMatch, ImTextSearchMatchOptions, ImTextSearchMatcher, ImTextSearchRange, ImTransferBody, ImTransferSessionType, ImTransferStatus, ImVideoBody, ImVoiceBody, ImWebPushSubscription, ImageMessageOptions, ImagePreviewMetadata, LocalConversationHistoryClearResult, LocalMessageDeletionResult, MediaAlbumItemInput, MediaAlbumMessageOptions, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MentionCandidate, MentionCandidatePage, MentionInput, MessageContentType, MessageWindowInfo, MessageWindowPage, MessagesByIdFailure, MigrateImCachePrefixInput, MiniProgramMessageOptions, ProductConversationListType, ProductHandleConversationType, ProductMessageSearchPage, ProductMessageSearchResult, ResolveTextOptions, ResolvedConversationBackground, SegmentMatch, SegmentMatcher, SendMessageResult, StickerAssetKind, TextMessageOptions, TextSegment, TransferMessageOptions, UnknownMessageBody, UserProfile, VideoMessageOptions, VideoPreviewMetadata, VoiceCapabilities, VoiceErrorCode, VoiceMessageMetadata, VoicePlayer, VoicePlayerOptions, VoicePlayerState, VoiceRecordingResult, VoiceRecordingSession, VoiceRecordingSessionOptions, VoiceRecordingState, VoiceToggleOptions };
5831
+ export type { CapabilityAvailability, CapabilityDecision, CapabilityReason, ChannelAccessSnapshot, ChannelBaseSessionState, ChannelConversationCapabilities, ChannelConversationMessageApi, ChannelJoinApplication, ChannelJoinApplicationNotification, ChannelJoinApplicationPage, ChannelMember, ChannelMemberPage, ChannelMentionMember, ChannelMentionMemberPage, ChannelMiniProgramRel, ChannelMiniProgramRelConfigType, ChannelMuteReason, ChannelPermissionSet, ChannelProfile, ChannelRole, ChannelSessionState, ContactCardInput, ContactMessageOptions, ConversationBackgroundPreset, ConversationBackgroundSelection, ConversationCapabilitySnapshot, ConversationDraft, ConversationDraftApi, ConversationEntryUnreadSnapshot, ConversationHandle, ConversationHandleSnapshot, ConversationInitialPosition, ConversationLastMessageSummary, ConversationListItem, ConversationListMention, ConversationMessageApi, ConversationOpenOptions, ConversationRef, ConversationSearchPage, ConversationSearchResult, ConversationSystemSummary, ConversationType, DirectConversationCapabilities, DirectConversationMessageApi, DraftInput, EditTextOptions, ExpressionMessageOptions, FileMessageOptions, ForwardFailReason, ForwardItemStatus, ForwardMessageFailure, ForwardMessagesInput, ForwardMessagesResult, ForwardTarget, ForwardedMessageRef, GameMessageOptions, GifMessageOptions, GroupConversationCapabilities, GroupConversationMessageApi, GroupMemberItem, GroupProfile, ImAppearanceSettingsApi, ImApplicationItem, ImApplicationRef, ImApplicationsApi, ImAuthIssue, ImAuthProvider, ImCacheOptions, ImCachePrefixMigrationContext, ImCachePrefixMigrator, ImCallKind, ImCallOutcome, ImCallRecordBody, ImChannelConversationAccessSnapshot, ImChannelMentionApi, ImChannelMiniProgramRel, ImChannelPermissions, ImChannelPinnedMessage, ImChannelProfile, 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, ImFileBody, ImFriendshipRequestResult, ImGameBody, ImGameType, ImGifAssetInput, ImGiphyAsset, ImGiphyPage, ImGiphyPageOptions, ImGroupCallAnswerInput, ImGroupCallBusyInput, ImGroupCallCreateInput, ImGroupCallJoinInput, ImGroupCallMeetingSnapshot, ImGroupCallMember, ImGroupCallMemberStatus, ImGroupCallStatusInput, ImGroupCallTargetInput, ImGroupCallsApi, ImGroupConversationState, ImGroupMentionApi, ImGroupPinnedMessage, ImGroupProfile, ImGroupsApi, ImImageBody, ImLifecycleSnapshot, ImLocalDataApi, ImLocalDataInfo, ImLogoutOptions, ImMediaAlbumBody, ImMediaAlbumItem, ImMediaConfig, ImMediaTask, ImMediaTasksApi, ImMembershipJoinResult, ImMessageMention, ImMessageReactionAggregate, ImMessageReactions, ImMessageRef, ImMessageSearchApi, ImMessageView, ImMessageViewBody, ImMessagesByIdResult, ImMiniProgramBody, ImMiniProgramShowType, ImOutboxApi, ImOutboxItem, ImPageToken, ImPinnedMessageErrorKind, ImPinnedMessageOperation, ImProductApplicationUpdate, ImProductAuthInvalidReason, ImProductClient, ImProductEvent, ImProductEventError, ImProductEventMap, ImProductMessage, ImPushApi, ImPushSnapshot, ImReactionChangeAction, ImReactionChangeResult, ImReadReceiptSettingsApi, ImRedPacketBody, ImRedPacketType, ImRequestError, ImRequestErrorHandler, ImSdkErrorCategory, ImSdkErrorShape, ImSearchApi, ImSessionApi, ImSessionFavoriteAlbumItem, ImSessionFavoriteItem, ImSessionFavoriteKind, ImSessionFavoritesApi, ImSessionLifecycleState, ImSettingsApi, ImStickerAssetInput, ImStickerBody, ImStickerPack, ImSupportedConversationRef, ImTextSearchMatch, ImTextSearchMatchOptions, ImTextSearchMatcher, ImTextSearchRange, ImTransferBody, ImTransferSessionType, ImTransferStatus, ImVideoBody, ImVoiceBody, ImWebPushSubscription, ImageMessageOptions, ImagePreviewMetadata, LocalConversationHistoryClearResult, LocalMessageDeletionResult, MediaAlbumItemInput, MediaAlbumMessageOptions, MediaTransferErrorCode, MediaUploadCredentials, MediaUploadCredentialsProvider, MediaUploadCredentialsRequest, MentionCandidate, MentionCandidatePage, MentionInput, MessageContentType, MessageWindowInfo, MessageWindowPage, MessagesByIdFailure, MigrateImCachePrefixInput, MiniProgramMessageOptions, ProductConversationListType, ProductHandleConversationType, ProductMessageSearchPage, ProductMessageSearchResult, ResolveTextOptions, ResolvedConversationBackground, SegmentMatch, SegmentMatcher, SendMessageResult, StickerAssetKind, TextMessageOptions, TextSegment, TransferMessageOptions, UnknownMessageBody, UserProfile, VideoMessageOptions, VideoPreviewMetadata, VoiceCapabilities, VoiceErrorCode, VoiceMessageMetadata, VoicePlayer, VoicePlayerOptions, VoicePlayerState, VoiceRecordingResult, VoiceRecordingSession, VoiceRecordingSessionOptions, VoiceRecordingState, VoiceToggleOptions };
package/dist/sdk.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-IDECJJXC.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-DN4H5C7G.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-YAM4YHKF.js';export{la as EDIT_WINDOW_MS,m as MEDIA_ALBUM_CAPTION_MAX_LENGTH,n as MEDIA_ALBUM_MAX_ITEMS,ta as REACTION_SUPPORTED_CONTENT_TYPES,ua as canReactToMessage,pa as canTransmit,na as canTransmitByType,oa as canTransmitContent,q as classifyStickerImageType,aa as createImTextSearchMatcher,_ as extractSearchText,$ as getImTextSearchInitial,lb as parseSessionFavoriteAlbumItems,ma as requiresForwardTypeConfirmation,wa as resolveChannelAccess,o as resolveMediaAlbumSendContentType,mb as resolveSessionFavoriteAlbumCaption,kb as resolveSessionFavoriteAlbumItemPreviewUrl,fa as resolveTextSegments,Ca as sortSessions,Da as sumSessionsUnread}from'./chunk-A2BLOVZ5.js';import'./chunk-WOT6VMZA.js';
1
+ import'./chunk-IDECJJXC.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-EM4YNWX4.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-MO2EU56Q.js';export{la as EDIT_WINDOW_MS,m as MEDIA_ALBUM_CAPTION_MAX_LENGTH,n as MEDIA_ALBUM_MAX_ITEMS,ta as REACTION_SUPPORTED_CONTENT_TYPES,ua as canReactToMessage,pa as canTransmit,na as canTransmitByType,oa as canTransmitContent,q as classifyStickerImageType,aa as createImTextSearchMatcher,_ as extractSearchText,$ as getImTextSearchInitial,mb as parseSessionFavoriteAlbumItems,ma as requiresForwardTypeConfirmation,wa as resolveChannelAccess,o as resolveMediaAlbumSendContentType,nb as resolveSessionFavoriteAlbumCaption,lb as resolveSessionFavoriteAlbumItemPreviewUrl,fa as resolveTextSegments,Da as sortSessions,Ea as sumSessionsUnread}from'./chunk-W5SQGPRQ.js';import'./chunk-WOT6VMZA.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "k2-im",
3
3
  "type": "module",
4
- "version": "0.1.21",
4
+ "version": "0.1.23",
5
5
  "private": false,
6
6
  "license": "MIT",
7
7
  "publishConfig": {
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-WOT6VMZA.js';import {parse,isInteger,isSafeNumber}from'lossless-json';import Ce from'axios';function ot(t){return {cryptMd5:t.crypt_md5,generateSign:t.generate_sign,encryptAes:t.encrypt_aes,decryptAes:t.decrypt_aes}}var $={};a$1($,{__wbg_get_67b2ba62fc30de12:()=>Yt,__wbg_get_b9b93047fe3cf45b:()=>Gt,__wbg_length_e2d2a49132c1b256:()=>Kt,__wbg_ownKeys_3930041068756f1f:()=>Xt,__wbg_set_wasm:()=>G,__wbindgen_debug_string:()=>Qt,__wbindgen_init_externref_table:()=>Zt,__wbindgen_is_object:()=>te,__wbindgen_string_get:()=>ee,__wbindgen_string_new:()=>re,__wbindgen_throw:()=>ne,crypt_md5:()=>qt,decrypt_aes:()=>Jt,encrypt_aes:()=>zt,generate_sign:()=>Vt});var a;function G(t){a=t;}function $t(t){let e=a.__externref_table_alloc();return a.__wbindgen_export_2.set(e,t),e}function st(t,e){try{return t.apply(this,e)}catch(r){let n=$t(r);a.__wbindgen_exn_store(n);}}function Y(t){let e=typeof t;if(e=="number"||e=="boolean"||t==null)return `${t}`;if(e=="string")return `"${t}"`;if(e=="symbol"){let o=t.description;return o==null?"Symbol":`Symbol(${o})`}if(e=="function"){let o=t.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(t)){let o=t.length,s="[";o>0&&(s+=Y(t[0]));for(let i=1;i<o;i++)s+=`, ${Y(t[i])}`;return s+="]",s}let r=/\[object ([^\]]+)\]/.exec(toString.call(t)),n;if(r&&r.length>1)n=r[1];else return toString.call(t);if(n=="Object")try{return `Object(${JSON.stringify(t)})`}catch{return "Object"}return t instanceof Error?`${t.name}: ${t.message}
2
- ${t.stack}`:n}var m=0,U=null;function O(){return (U===null||U.byteLength===0)&&(U=new Uint8Array(a.memory.buffer)),U}var jt=typeof TextEncoder>"u"?(0, module.require)("util").TextEncoder:TextEncoder,L=new jt("utf-8"),vt=typeof L.encodeInto=="function"?function(t,e){return L.encodeInto(t,e)}:function(t,e){let r=L.encode(t);return e.set(r),{read:t.length,written:r.length}};function E(t,e,r){if(r===void 0){let u=L.encode(t),c=e(u.length,1)>>>0;return O().subarray(c,c+u.length).set(u),m=u.length,c}let n=t.length,o=e(n,1)>>>0,s=O(),i=0;for(;i<n;i++){let u=t.charCodeAt(i);if(u>127)break;s[o+i]=u;}if(i!==n){i!==0&&(t=t.slice(i)),o=r(o,n,n=i+t.length*3,1)>>>0;let u=O().subarray(o+i,o+n),c=vt(t,u);i+=c.written,o=r(o,n,i,1)>>>0;}return m=i,o}var I=null;function N(){return (I===null||I.buffer.detached===true||I.buffer.detached===void 0&&I.buffer!==a.memory.buffer)&&(I=new DataView(a.memory.buffer)),I}function it(t){return t==null}var Ft=typeof TextDecoder>"u"?(0, module.require)("util").TextDecoder:TextDecoder,at=new Ft("utf-8",{ignoreBOM:true,fatal:true});at.decode();function H(t,e){return t=t>>>0,at.decode(O().subarray(t,t+e))}function qt(t){let e,r;try{let n=E(t,a.__wbindgen_malloc,a.__wbindgen_realloc),o=m,s=a.crypt_md5(n,o);return e=s[0],r=s[1],H(s[0],s[1])}finally{a.__wbindgen_free(e,r,1);}}function Wt(t){let e=a.__wbindgen_export_2.get(t);return a.__externref_table_dealloc(t),e}function Vt(t,e,r,n){let o,s;try{let i=E(t,a.__wbindgen_malloc,a.__wbindgen_realloc),u=m,c=E(e,a.__wbindgen_malloc,a.__wbindgen_realloc),f=m,l=it(n)?0:E(n,a.__wbindgen_malloc,a.__wbindgen_realloc),p=m,g=a.generate_sign(i,u,c,f,r,l,p),_=g[0],d=g[1];if(g[3])throw _=0,d=0,Wt(g[2]);return o=_,s=d,H(_,d)}finally{a.__wbindgen_free(o,s,1);}}function ct(t,e){let r=e(t.length*1,1)>>>0;return O().set(t,r/1),m=t.length,r}function ut(t,e){return t=t>>>0,O().subarray(t/1,t/1+e)}function zt(t){let e=ct(t,a.__wbindgen_malloc),r=m,n=a.encrypt_aes(e,r),o=ut(n[0],n[1]).slice();return a.__wbindgen_free(n[0],n[1]*1,1),o}function Jt(t){let e=ct(t,a.__wbindgen_malloc),r=m,n=a.decrypt_aes(e,r),o=ut(n[0],n[1]).slice();return a.__wbindgen_free(n[0],n[1]*1,1),o}function Yt(){return st((t,e)=>Reflect.get(t,e),arguments)}function Gt(t,e){return t[e>>>0]}function Kt(t){return t.length}function Xt(){return st(t=>Reflect.ownKeys(t),arguments)}function Qt(t,e){let r=Y(e),n=E(r,a.__wbindgen_malloc,a.__wbindgen_realloc),o=m;N().setInt32(t+4,o,true),N().setInt32(t+0,n,true);}function Zt(){let t=a.__wbindgen_export_2,e=t.grow(4);t.set(0,void 0),t.set(e+0,void 0),t.set(e+1,null),t.set(e+2,true),t.set(e+3,false);}function te(t){let e=t;return typeof e=="object"&&e!==null}function ee(t,e){let r=e,n=typeof r=="string"?r:void 0,o=it(n)?0:E(n,a.__wbindgen_malloc,a.__wbindgen_realloc),s=m;N().setInt32(t+4,s,true),N().setInt32(t+0,o,true);}function re(t,e){return H(t,e)}function ne(t,e){throw new Error(H(t,e))}var lt=null,j=null;async function oe(){let t=await fetch(new URL("./vendor/crypto/index_bg.wasm",import.meta.url));if(!t.ok)throw new Error(`crypto wasm \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${t.status}`);let e={"./index_bg.js":$},r;if(typeof WebAssembly.instantiateStreaming=="function")try{r=await WebAssembly.instantiateStreaming(t.clone(),e);}catch{r=await WebAssembly.instantiate(await t.arrayBuffer(),e);}else r=await WebAssembly.instantiate(await t.arrayBuffer(),e);return G(r.instance.exports),r.instance.exports.__wbindgen_start(),ot($)}async function K(){return j||(j=oe().catch(t=>{throw j=null,t})),lt=await j,lt}await K();var pt="b097f885e9577cdb04d9faf91aa08329";function se(t){return Object.keys(t).sort((r,n)=>r.localeCompare(n,void 0,{numeric:true})).map(r=>r+t[r]).join("")}function ft(t,e){let r=se(e);return t.cryptMd5(pt+r+pt).toUpperCase()}var gt="123456789";var dt={core:"/api/h5",wallet:"/api/h5",bi:"/bi/h5",im:""};function ue(t){return isInteger(t)?isSafeNumber(t)?Number.parseInt(t,10):t:Number.parseFloat(t)}function v(t){return parse(t,void 0,{parseNumber:ue})}var mt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";function _t(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function yt(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Object.fromEntries(Object.entries(t).map(([e,r])=>[e,Array.isArray(r)?r.join(", "):String(r)])):{}}function bt(t,e){let r=e.toLowerCase();return Object.entries(t).find(([o])=>o.toLowerCase()===r)?.[1]??null}function M(t,e=2){return t.toString().padStart(e,"0")}function Pt(t){return `${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())} ${M(t.getHours())}:${M(t.getMinutes())}:${M(t.getSeconds())}`}function pe(t){if(t!=null)return typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"||typeof t=="bigint"?String(t):t&&typeof t=="object"?JSON.stringify(t):String(t)}function wt(t){let e={};for(let[r,n]of Object.entries(t)){let o=pe(n);o!==void 0&&(e[r]=o);}return e}function Tt(t=16){let e="";for(let r=0;r<t;r+=1){let n=Math.floor(Math.random()*mt.length);e+=mt.charAt(n);}return e}function At(t){let e={deviceBrand:"web",deviceInfo:"web",deviceNumber:"",deviceToken:"web"},r=t||(typeof navigator<"u"?navigator.userAgent:"");if(!r)return e;let n=r.match(/(Chrome|Firefox|Safari|Edg)\/([\d.]+)/i);return n?{deviceBrand:"web",deviceInfo:`${n[1]}/${n[2]}`,deviceNumber:n[2]??"",deviceToken:"web"}:{...e,deviceInfo:r}}function xt(t){let e=String(t||"").trim().toLowerCase();return e==="cn"||e.startsWith("zh-cn")?"cn":e==="tc"||e.startsWith("zh-tw")||e.startsWith("zh-hk")?"tc":e==="vn"||e.startsWith("vi")?"vn":e==="th"||e.startsWith("th")?"th":e==="en"||e.startsWith("en")?"en":"cn"}function x(t,e){return {baseUrl:e?.baseUrl??"",prefix:e?.prefix??dt[t]}}function fe(t){return t.replace(/^\/+|\/+$/g,"")}function ht(t,e,r){let n=t.replace(/\/+$/g,""),o=fe(e),s=r.startsWith("/")?r:`/${r}`,i=o?`/${o}`:"";return `${n}${i}${s}`}function Rt(t,e){let r=new URLSearchParams(Object.entries(e).map(([u,c])=>[u,String(c)])).toString();if(!r)return t;let n=t.indexOf("#"),o=n>=0?t.slice(0,n):t,s=n>=0?t.slice(n):"",i=o.includes("?")?o.endsWith("?")||o.endsWith("&")?"":"&":"?";return `${o}${i}${r}${s}`}function X(t){return !!t&&t.toLowerCase().includes("application/json")}function Q(t){return !!t&&t.toLowerCase().startsWith("text/")}function k(t){return t==null?new Uint8Array:typeof t=="string"?new TextEncoder().encode(t):t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new TextEncoder().encode(JSON.stringify(t))}function F(t){return typeof t=="string"?t:new TextDecoder().decode(k(t))}function Ct(t){return typeof FormData<"u"&&t instanceof FormData}var ye=new Set(["content-etag","token","req-id"]);function be(t){return Number.isInteger(t)&&t>=400&&t<=599?t:502}function Pe(t,e){return {code:t.status,msg:t.statusText,data:null,time:Math.floor(e/1e3)}}function we(t,e){return {code:502,msg:t instanceof Error?t.message:String(t),data:null,time:Math.floor(e/1e3)}}function Te(t){if(!t||typeof t!="object")return false;let e=t;return Number.isFinite(e.code)&&"data"in e}function Ot(t,e,r,n){if(X(r))return v(F(e.data));if(Q(r))return F(e.data);let o=k(e.data),s=n?t.crypto.decryptAes(o):o,i=new TextDecoder().decode(s);return v(i)}async function Et(t,e,r){if(!t.onDebugRecord)return;let n={...e.meta,response:e.response,...r?{error:{name:r instanceof Error?r.name:void 0,message:r instanceof Error?r.message:String(r)}}:{}};try{await t.onDebugRecord(n);}catch{}}function Ae(t,e,r,n,o){if(r.customUrl)return t;let s=x(n,e.config.targets[n]),i=r.baseUrl??s.baseUrl;return ht(i,o,t)}function xe(t,e){let r=new AbortController,n=setTimeout(()=>r.abort(),t),o=()=>r.abort();return e&&(e.aborted?r.abort():e.addEventListener("abort",o,{once:true})),{signal:r.signal,dispose:()=>{clearTimeout(n),e?.removeEventListener("abort",o);}}}async function he(t,e,r,n,o,s,i){let u=yt(e.headers),c=bt(u,"content-type");if(e.status<200||e.status>=300){let l;if(n)l=void 0;else try{l=Ot(t,e,c,r);}catch{l=void 0;}return {response:Te(l)?l:Pe(e,i),meta:{...o,transportStatus:"http_error",httpStatus:e.status,contentType:c,responseHeaders:u,...l!==void 0?{rawBody:l}:{},timings:{totalMs:i-s,upstreamMs:i-s}}}}let f=Date.now();if(n){let l=k(e.data),p=Date.now();return {response:{code:e.status,data:l,time:Math.floor(p/1e3)},meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:l,timings:{totalMs:p-s,upstreamMs:i-s,parseMs:p-f}}}}try{if(X(c)){let T=Ot(t,e,c,!1),y=Date.now();return {response:T,meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:T,timings:{totalMs:y-s,upstreamMs:i-s,parseMs:y-f}}}}if(Q(c)){let T=F(e.data),y=Date.now();return {response:{code:e.status,msg:e.statusText,data:T,time:Math.floor(y/1e3)},meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:T,timings:{totalMs:y-s,upstreamMs:i-s,parseMs:y-f}}}}let l=k(e.data),p=Date.now(),g=r?t.crypto.decryptAes(l):l,_=Date.now(),d=new TextDecoder().decode(g),D=v(d),B=Date.now();return {response:D,meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:D,timings:{totalMs:B-s,upstreamMs:i-s,parseMs:B-f,...r?{decryptMs:_-p}:{}}}}}catch(l){let p=Date.now();return {response:{code:be(e.status),msg:l instanceof Error?l.message:String(l),data:null,time:Math.floor(p/1e3)},meta:{...o,transportStatus:"invalid_response",httpStatus:e.status,contentType:c,responseHeaders:u,timings:{totalMs:p-s,upstreamMs:i-s,parseMs:p-f}}}}}function Re(t){return async function(r,n={}){let o=t.now??(()=>new Date),s=t.randomNonce??(()=>gt),i=t.randomRequestId??(()=>`req-${crypto.randomUUID().replaceAll("-","")}`),u=t.randomETag??(()=>Tt()),c=(n.method??"POST").toUpperCase(),f=n.target??"core",l=x(f,t.config.targets[f]),p=n.prefix??l.prefix??"",g=n.body!=null,_=wt(n.data??{}),d=r==="/v1/feedback"&&p==="/bi/h5",D=d?false:n.encrypt??!g,B=d?false:n.sign??!g,T=o(),y=u(),Z=i(),kt=n.token??await t.getToken?.()??"",Bt=xt(n.locale??t.getLocale?.()),S=t.getBrowserInfo?.()??At(n.userAgent),q={app_id:"5",os_type:"4",app_version:t.config.appVersion,sign_method:"md5",timestamp:Pt(T),nonce:s()},b={...q,..._},W=q,tt=_,h=b;!d&&B&&(b.sign=t.crypto.generateSign("api",t.config.envType,b,y),q.sign=b.sign);let Ut={app_version:t.config.appVersion,"X-ENC-VERSION":t.config.appVersion,"X-APP-TYPE":"h5","Client-type":"2","Content-ETag":y,"brand-id":t.config.brandId,"channel-id":n.channelId||t.config.channelId,device_brand:S.deviceBrand,device_info:S.deviceInfo,device_number:S.deviceNumber,device_token:S.deviceToken,lang:Bt,"mch-id":t.config.merchantId,"req-id":Z,token:kt},Lt=_t(n.headers),Nt=Object.fromEntries(Object.entries(Lt).filter(([A])=>!ye.has(A.toLowerCase()))),V=r,R,P={...Ut,...Nt};if(g)R=n.body??void 0,W=null,tt=n.data??null,h=n.data??null;else if(d){let A=String(T.getTime()),w={"app-id":"1","app-version":t.config.appVersion,"sys-type":"h5","sys-version":S.deviceNumber,time:A};W=w,P={...P,...w,sign:ft(t.crypto,w),"Content-Type":"application/json"},R=JSON.stringify(_),h=_;}else c==="GET"?(V=Rt(V,b),h=b):D?(R=t.crypto.encryptAes(new TextEncoder().encode(JSON.stringify(b))),P["Content-Type"]=P["Content-Type"]||"application/octet-stream",h=b):(R=JSON.stringify(b),P["Content-Type"]=P["Content-Type"]||"application/json",h=b);Ct(R)&&delete P["Content-Type"];let z=Ae(V,t,n,f,p),J=Date.now(),et=n.timeoutMs??6e4,rt=xe(et,n.signal),nt={requestId:Z,eTag:y,method:c,upstreamUrl:z,requestHeaders:P,requestCommonParams:W,requestBusinessParams:tt,requestParams:h};try{let A=await t.transport({url:z,method:c,headers:P,body:R,signal:rt.signal,timeoutMs:et,onUploadProgress:n.onUploadProgress}),w=Date.now(),C=await he(t,A,D&&!d,n.responseMode==="raw",nt,J,w);return await Et(t,C),t.onBusinessResponse&&await t.onBusinessResponse(C.response,{request:{path:r,method:c,target:f,url:z},options:n}),C}catch(A){let w=Date.now(),C={response:we(A,w),meta:{...nt,transportStatus:"network_error",timings:{totalMs:w-J,upstreamMs:w-J}}};return await Et(t,C,A),C}finally{rt.dispose();}}}function Dt(t){let e=Re(t);return async function(n,o={}){return (await e(n,o)).response}}function St(t={}){let e={core:x("core",{baseUrl:t.coreBaseUrl||"",...t.targets?.core}),wallet:x("wallet",{baseUrl:t.walletBaseUrl||"",...t.targets?.wallet}),bi:x("bi",{baseUrl:t.biBaseUrl||"",...t.targets?.bi}),im:x("im",{baseUrl:t.imBaseUrl||"",...t.targets?.im})};return {appVersion:t.appVersion||"",brandId:t.brandId||"",merchantId:t.merchantId||"",channelId:t.channelId||"",envType:t.envType||"prod",targets:e}}function Mt(t={}){let e=t.axios??Ce.create();return async r=>{let n=await e.request({url:r.url,method:r.method,headers:r.headers,data:r.body,signal:r.signal,timeout:r.timeoutMs,onUploadProgress:r.onUploadProgress?o=>{let s=typeof o.progress=="number"?o.progress:typeof o.total=="number"&&o.total>0?o.loaded/o.total:void 0;r.onUploadProgress?.({loaded:o.loaded,...typeof o.total=="number"?{total:o.total}:{},...typeof s=="number"?{progress:s}:{},event:o});}:void 0,responseType:"arraybuffer",transformResponse:o=>o,validateStatus:()=>true});return {status:n.status,statusText:n.statusText,headers:n.headers,data:n.data}}}async function Ge(t={}){let e=await K(),r=St(t.config);return Dt({...t,config:r,crypto:e,transport:t.transport??Mt()})}export{Ge as createBrowserApiProtocolClient};
@@ -1 +0,0 @@
1
- import {h,n,b as b$1,g,o}from'./chunk-DN4H5C7G.js';import {Xa,B as B$1,Wa}from'./chunk-YAM4YHKF.js';import {pa,a as a$1,b,la,wa}from'./chunk-A2BLOVZ5.js';import {a}from'./chunk-WOT6VMZA.js';var un=14,mn="game:rps",gn="game:dice";function Fe(e){if(e.stableKey.length===0||e.stableKey.trim()!==e.stableKey)throw new TypeError("Emoji recent item \u9700\u8981\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684 stableKey")}function pn(e,t){Fe(t);let n=new Set([t.stableKey]),r=[t];for(let o of e)if(Fe(o),!n.has(o.stableKey)&&(n.add(o.stableKey),r.push(o),r.length===14))break;return Object.freeze(r)}var Ue=["0x1f600","0x1f603","0x1f604","0x1f601","0x1f606","0x1f605","0x1f923","0x1f602","0x1f642","0x1f643","0x1f609","0x1f60a","0x1f607","0x1f970","0x1f60d","0x1f929","0x1f618","0x1f617","0x1f61a","0x1f619","0x1f60b","0x1f61b","0x1f61c","0x1f92a","0x1f61d","0x1f911","0x1f917","0x1f92d","0x1f92b","0x1f914","0x1f910","0x1f928","0x1f610","0x1f611","0x1f636","0x1f60f","0x1f612","0x1f644","0x1f62c","0x1f925","0x1f60c","0x1f614","0x1f62a","0x1f924","0x1f634","0x1f637","0x1f912","0x1f915","0x1f922","0x1f92e","0x1f927","0x1f975","0x1f976","0x1f974","0x1f635","0x1f92f","0x1f920","0x1f973","0x1f60e","0x1f913","0x1f9d0","0x1f615","0x1f61f","0x1f641","0x1f62e","0x1f62f","0x1f632","0x1f633","0x1f97a","0x1f626","0x1f627","0x1f628","0x1f630","0x1f625","0x1f622","0x1f62d","0x1f631","0x1f616","0x1f623","0x1f61e","0x1f613","0x1f629","0x1f62b","0x1f971","0x1f624","0x1f621","0x1f620","0x1f92c","0x1f608","0x1f47f","0x1f480","0x1f4a9","0x1f921","0x1f479","0x1f47a","0x1f47b","0x1f47d","0x1f47e","0x1f916","0x1f63a","0x1f638","0x1f639","0x1f63b","0x1f63c","0x1f63d","0x1f640","0x1f63f","0x1f63e","0x1f648","0x1f649","0x1f64a","0x1f48c","0x1f498","0x1f49d","0x1f496","0x1f497","0x1f493","0x1f49e","0x1f495","0x1f49f","0x1f494","0x1f9e1","0x1f49b","0x1f49a","0x1f499","0x1f49c","0x1f90e","0x1f5a4","0x1f90d","0x1f48b","0x1f4af","0x1f4a2","0x1f4a5","0x1f4ab","0x1f4a6","0x1f4a8","0x1f4ac","0x1f4ad","0x1f4a4","0x1f44b","0x1f91a","0x1f590","0x270b","0x1f596","0x1f44c","0x1f90f","0x270c","0x1f91e","0x1f91f","0x1f918","0x1f919","0x1f448","0x1f449","0x1f446","0x1f595","0x1f447","0x1f44d","0x1f44e","0x270a","0x1f44a","0x1f91b","0x1f91c","0x1f44f","0x1f64c","0x1f450","0x1f932","0x1f91d","0x1f64f","0x270d","0x1f485","0x1f933","0x1f4aa","0x1f9be","0x1f9bf","0x1f9b5","0x1f9b6","0x1f442","0x1f9bb","0x1f443","0x1f9e0","0x1f9b7","0x1f9b4","0x1f440","0x1f445","0x1f444","0x1f435","0x1f9a7","0x1f436","0x1f98a","0x1f99d","0x1f431","0x1f981","0x1f42f","0x1f42e","0x1f437","0x1f43d","0x1f42d","0x1f439","0x1f430","0x1f43b","0x1f428","0x1f43c","0x1f9a5","0x1f983","0x1f414","0x1f423","0x1f425","0x1f427","0x1f985","0x1f986","0x1f989","0x1f9a9","0x1f99a","0x1f99c","0x1f438","0x1f433","0x1f980","0x1f490","0x1f338","0x1f4ae","0x1f339","0x1f940","0x1f33a","0x1f33b","0x1f340","0x1f341","0x1f342","0x1f343","0x1f9c0","0x1f969","0x1f354","0x1f35f","0x1f355","0x1f32d","0x1f96a","0x1f32e","0x1f32f","0x1f365","0x1f36b","0x2615","0x1f37a","0x1f943","0x1f30f","0x1f9f1","0x1f6d1","0x1f6a7","0x2693","0x1f680","0x23f3","0x231a","0x23f0","0x1f553","0x1f319","0x1f31a","0x1f31b","0x1f31c","0x1f31d","0x1f31e","0x1fa90","0x2b50","0x1f31f","0x1f320","0x1f30c","0x26c5","0x1f300","0x1f308","0x1f302","0x2614","0x26a1","0x26c4","0x1f525","0x1f4a7","0x1f30a","0x1f383","0x1f384","0x1f386","0x1f387","0x1f9e8","0x2728","0x1f388","0x1f389","0x1f38a","0x1f38b","0x1f38d","0x1f38e","0x1f38f","0x1f390","0x1f391","0x1f9e7","0x1f380","0x1f381","0x1f3ab","0x1f3c6","0x1f3c5","0x1f947","0x1f948","0x1f949","0x1f3c1","0x1f6a9","0x1f38c","0x1f3f4"];var yn=1114111,Cn=55296,Mn=57343,Ve=65039,xn="0123456789abcdef";function bn(e,t){if(!e.startsWith("0x")||e.length<=2)throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let n=e.slice(2);for(let o of n)if(!xn.includes(o))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let r=Number.parseInt(n,16);if(!Number.isSafeInteger(r)||r>yn||r>=Cn&&r<=Mn)throw new RangeError(`Unicode emoji code point \u8D8A\u754C: ${t}`);return r}function ae(e){if(e.length===0||e.trim()!==e)throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${e}`);let t=e.split(" ");if(t.some(n=>n.length===0))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${e}`);return Object.freeze(t.map(n=>bn(n,e)))}function In(e){return String.fromCodePoint(...ae(e))}function be(e){return e.map(t=>`0x${t.toString(16)}`).join(" ")}function hn(e){let t=ae(e),n=be(t);if(n!==e)throw new TypeError(`Unicode emoji code \u5FC5\u987B\u4F7F\u7528 canonical \u5C0F\u5199\u683C\u5F0F: ${e}`);return Object.freeze({stableKey:`unicode:${n}`,code:e,codePoints:t,text:String.fromCodePoint(...t),kind:"unicode"})}var Ie=Object.freeze(Ue.map(hn)),z=new Map,K=new Map;for(let e of Ie){if(z.has(e.code)||K.has(e.text))throw new Error(`Unicode emoji \u76EE\u5F55\u5B58\u5728\u91CD\u590D\u9879: ${e.code}`);z.set(e.code,e),K.set(e.text,e);}for(let e of Ie){let n=e.codePoints.at(-1)===Ve?e.codePoints.slice(0,-1):[...e.codePoints,Ve],r=be(n),o=String.fromCodePoint(...n);z.has(r)||z.set(r,e),K.has(o)||K.set(o,e);}function Sn(e){if(e.startsWith("0x")){let t=be(ae(e));return z.get(t)}return K.get(e)}var ze=["[100\u5206]","[VS]","[\u4E0A]","[\u4E0B]","[\u4E0D\u542C]","[\u4E0D\u770B]","[\u4E0D\u9AD8\u5174]","[\u4EB2\u543B]","[\u4F1E]","[\u51FB\u638C]","[\u5357\u74DC\u5934]","[\u53F3]","[\u54C8\u54C8]","[\u54E6]","[\u5564\u9152]","[\u55B7\u568F]","[\u5723\u8BDE\u6811]","[\u5929\u4F7F\u7B11]","[\u5956\u676F]","[\u5BB3\u6015]","[\u5DE6]","[\u5E73\u9759]","[\u5F3A\u58EE]","[\u5F69\u8679]","[\u5F97\u610F]","[\u5FAE\u7B11]","[\u5FC3\u7D2F]","[\u5FC3\u8DF3]","[\u601D\u8003]","[\u6076\u9B54\u6012]","[\u6076\u9B54\u7B11]","[\u6210\u957F]","[\u6293\u72C2]","[\u62F3\u5934]","[\u6325\u624B]","[\u63E1\u62F3]","[\u65E0]","[\u661F\u661F]","[\u661F\u661F\u773C]","[\u6708\u997C]","[\u6C14\u6124]","[\u6EE1\u8DB3]","[\u706B]","[\u718A\u732B]","[\u7231\u4F60]","[\u725B]","[\u72D7]","[\u732B]","[\u7591\u60D1]","[\u7687\u51A0]","[\u778C\u7761]","[\u795D]","[\u79D8]","[\u7BEE\u7403]","[\u7F8E\u5473]","[\u836F]","[\u8DB3\u7403]","[\u95EA\u7535]","[\u95EA\u8000\u7684\u5FC3]","[\u96EA\u82B1]","[\u997A\u5B50]","[\u9A6C]","[\u9B3C]","[\u9E21]","[\u9F13\u638C]","[\u9F20]","[ALLIN]","[\u4F24\u5FC3]","[\u4FBF\u4FBF]","[\u5077\u7B11]","[\u50B2\u6162]","[\u50BB\u7B11]","[\u5192\u6C57]","[\u51CB\u96F6]","[\u53D1\u5446]","[\u53EF\u601C]","[\u53F9\u6C14]","[\u5403\u60CA]","[\u5403\u74DC]","[\u5408\u638C]","[\u5446\u6EDE]","[\u5455\u5410]","[\u5492\u9A82]","[\u5496\u5561]","[\u54C7]","[\u559C\u7231]","[\u5634\u5507]","[\u563F\u54C8]","[\u56F0]","[\u56F0\u4F4F]","[\u5927\u54ED]","[\u5927\u7B11]","[\u592A\u9633]","[\u5931\u671B]","[\u594B\u6597]","[\u5978\u7B11]","[\u59D4\u5C48]","[\u5BB3\u7F9E]","[\u5C2C\u7B11]","[\u5E72\u676F]","[\u5E86\u795D]","[\u5FC3\u788E]","[\u6050\u60E7]","[\u60CA\u8BB6]","[\u6109\u60A6]","[\u611F\u5192]","[\u6124\u6012]","[\u61CA\u607C]","[\u620F\u5F04]","[\u6253\u51FB]","[\u62A0\u9F3B]","[\u62B1\u62F3]","[\u62C5\u5FC3]","[\u62DC\u62DC]","[\u62E5\u62B1]","[\u6342\u8138]","[\u63E1\u624B]","[\u642C\u7816]","[\u6536\u5230]","[\u6536\u5272]","[\u65B9\u5757]","[\u65E0\u8BED]","[\u6655]","[\u6708\u4EAE]","[\u673A\u667A]","[\u6C57]","[\u6D77\u8482]","[\u70B8\u5F39]","[\u70DF\u82B1]","[\u718A\u54ED\u4E86]","[\u7206\u7AF9]","[\u7231\u5FC3]","[\u725B\u5E02]","[\u72D7\u5934]","[\u732A]","[\u73AB\u7470]","[\u751F\u65E5\u86CB\u7CD5]","[\u767D\u773C]","[\u76B1\u7709]","[\u770B\u6DA8]","[\u770B\u8DCC]","[\u7728\u773C]","[\u7761\u89C9]","[\u793C\u7269]","[\u793E\u4F1A]","[\u798F]","[\u7B11\u54ED]","[\u7CD6\u679C]","[\u7EA2\u5305]","[\u8036]","[\u8138\u7EA2]","[\u82E6\u6DA9]","[\u83DC\u5200]","[\u8870]","[\u88C2\u5F00]","[\u8981\u54ED\u4E86]","[\u8C03\u76AE]","[\u8D5E]","[\u8E29]","[\u9119\u89C6]","[\u9177]","[\u91D1\u94B1]","[\u9501\u7BB1]","[\u957F\u8349]","[\u95EE\u53F7]","[\u95F9\u5267]","[\u9634\u9669]","[\u964D\u843D\u4F1E]","[\u96BE\u8FC7]","[\u98DE\u543B]","[\u9AB7\u9AC5]","[\u9EBB\u5C06]"];var Ke=h,En=new Set(ze),Pn="/images/emoji/v1",Rn=(()=>{let e=new Map;for(let t of Ke)for(let n of t.tokens)e.set(n,t);return e})();function wn(e){return Rn.get(e)}function An(e,t=Pn){return `${t}/${e.file}`}var kn=/\[[^[\]]{1,20}\]/g,_n=(()=>{let e=new Map;for(let t of Ke)e.set(t.code,t);return e})();function $t(e,t){let n=_n.get(e);return n===void 0?void 0:An(n,t)}var Nn=/\[[^[\]]{1,20}\]/;function Xt(e){return Nn.test(e)}function Dn(){return e=>{let t=[];for(let n of e.matchAll(kn)){let r=wn(n[0]);if(n.index!==void 0){if(r!==void 0){t.push({start:n.index,end:n.index+n[0].length-1,segment:{kind:"emoji",text:n[0],code:r.code}});continue}En.has(n[0])&&t.push({start:n.index,end:n.index+n[0].length-1,segment:{kind:"legacy-emoji-placeholder",text:n[0]}});}}return t}}var On=Dn();function Yt(e){if(e.contentType!=="text"||e.encryption.decryptFailed===true||e.mention!==void 0)return null;let t=e.body.text;if(t===void 0||t==="")return null;let n=On(t);if(n.length===0)return null;let r=0,o=[];for(let a of n){if(a.start!==r||a.segment.kind!=="emoji"&&a.segment.kind!=="legacy-emoji-placeholder")return null;o.push(a.segment),r=a.end+1;}return r!==t.length?null:Object.freeze({segments:Object.freeze(o),count:o.length})}function Zt(e){return e.source!=="live"?{show:false,reason:"not-live"}:e.permission===null?{show:false,reason:"unsupported"}:e.permission!=="granted"?{show:false,reason:"permission-denied"}:e.visibilityState==="visible"?{show:false,reason:"page-visible"}:e.accountId!==""&&e.senderId===e.accountId?{show:false,reason:"self-message"}:e.contentType==="system"?{show:false,reason:"system-message"}:e.muted?{show:false,reason:"conversation-muted"}:e.globallyEnabled?{show:true}:{show:false,reason:"globally-disabled"}}function We(e){let t=new Map,n=new Set,r=e.revokeObjectUrl??(c=>URL.revokeObjectURL(c));function o(c){c.revoked||(c.revoked=true,n.delete(c),r(c.url));}function a(c){t.get(c.key)===c&&t.delete(c.key),c.retired=true,c.leases===0?o(c):n.add(c);}function s(){let c=0,d=0;for(let m of t.values())m.evictable&&(c+=1,d+=m.byteSize);return {entries:c,bytes:d}}function i(){let c=s();for(;c.entries>e.maxCachedEntries||c.bytes>e.maxCachedBytes;){let d;for(let m of t.values())if(m.evictable&&m.leases===0){d=m;break}if(d===void 0)return;a(d),c=s();}}function l(c,d,m){let h=m.byteSize??0,Q=Number.isFinite(h)&&h>0?Math.floor(h):0,P=t.get(c);if(P?.url===d){P.byteSize=Q,P.evictable=m.evictable,t.delete(c),t.set(c,P),i();return}P!==void 0&&a(P),t.set(c,{key:c,url:d,byteSize:Q,evictable:m.evictable,leases:0,retired:false,revoked:false}),i();}function g(c,d){let m=t.get(c);if(m===void 0)return false;let h=t.get(d);return h!==void 0&&h!==m&&a(h),t.delete(c),m.key=d,t.set(d,m),true}function f(c,d){let m=t.get(c);return m===void 0?false:(d!==void 0&&Number.isFinite(d)&&d>0&&(m.byteSize=Math.floor(d)),m.evictable=true,t.delete(c),t.set(c,m),i(),t.get(c)===m)}function v(c){let d=t.get(c);if(d===void 0||d.revoked)return;d.leases+=1,t.delete(c),t.set(c,d);let m=false;return Object.freeze({url:d.url,release(){m||(m=true,d.leases=Math.max(0,d.leases-1),d.retired&&d.leases===0?o(d):i());}})}function u(c){let d=t.get(c);d!==void 0&&a(d);}function y(c){for(let d of [...t.keys()])d.startsWith(c)&&u(d);}function C(){let c=[...t.values()];t.clear();for(let d of [...c,...n])o(d);n.clear();}return {register:l,move:g,makeEvictable:f,acquire:v,remove:u,removeByPrefix:y,clearAll:C,getStats:()=>Object.freeze({activeEntries:t.size,retiredEntries:n.size,...s()})}}var Gn=20;function jn(){if(typeof navigator>"u")return {maxCachedEntries:6,maxCachedBytes:512*1024*1024};let e=navigator,t=e.deviceMemory??4,n=/Android|iPhone|iPad|Mobile/i.test(e.userAgent);return e.connection?.saveData===true||t<=2||navigator.hardwareConcurrency<=2?{maxCachedEntries:2,maxCachedBytes:128*1024*1024}:n?{maxCachedEntries:4,maxCachedBytes:256*1024*1024}:t>=8&&navigator.hardwareConcurrency>=8?{maxCachedEntries:9,maxCachedBytes:1024*1024*1024}:{maxCachedEntries:6,maxCachedBytes:512*1024*1024}}function he(e){let t=`message\0${e.conversationType}\0${e.conversationId}\0${e.messageId}`;return e.itemIndex===void 0?t:`${t}\0${e.itemIndex}`}function Ln(e){return `message\0${e.conversationType}\0${e.conversationId}\0`}function Se(e){return `source\0${e}`}function hr(e){let t=a$1(e.cachePrefix),n$1=b(t),r=e.createClient??n,o$1=e.createStorage??(p=>typeof indexedDB>"u"?void 0:Xa({...p,mediaAssetCache:{strategies:b$1()}})),a=e.createProfile??(p=>B$1(p)),s=e.deleteStorage??(p=>Wa(p.accountId,{namespaceFactory:p.namespaceFactory})),i=null,l=null,g$1=false,f,v,u,y=0,C,c=false,d={wsUrl:"",userId:"",token:"",deviceToken:"",channelType:"0",cmHttpBaseUrl:""},m=g(e.debug,()=>({generation:y,...d.userId===""?{}:{accountId:d.userId}}));m.record("debug","chat-kit","session","runtime-created");function h(){return {generation:y,...d.userId===""?{}:{accountId:d.userId}}}function Q(){d.userId="",d.token="",d.deviceToken="",d.channelType="0";}let P={},Z={},ee={},w=new Map,k=We(jn()),ne=new Set,F=new Set,te=new Set;function U(){for(let p of te)p();}function ce(){let p=h(),x=i,b=v!==void 0||u!==void 0;v?.(),v=void 0,u?.(),u=void 0,b&&m.record("debug","chat-kit","session","client-subscriptions-released",()=>p),x?.connection.disconnect("im-chat-auth-changed"),i=null,l=null,Promise.resolve(f?.close?.()).catch(()=>{}),f=void 0,y+=1,P={},Z={},ee={},de(),w.clear(),U();}function re(){if(c)throw new Error("ChatRuntime \u5DF2 dispose\uFF0C\u4E0D\u80FD\u521B\u5EFA/\u590D\u7528 client");if(i===null){f=o$1({namespaceFactory:n$1});let x=C?.getCoreClient(),b=C?.getCoreApi?.();g$1=x!==void 0||b!==void 0;let E=C?.clientType??2,S=x?a({client:x,clientType:E,storage:f}):void 0,A={authProvider:{getLoginContext:async()=>{let R=C?.getSession?.(),L=C?.getSession!==void 0,fe=(L?R?.userId:d.userId)?.trim()??"",je=(L?R?.token:d.token)?.trim()??"";return fe===""||je===""||fe!==d.userId?null:{userId:fe,token:je,deviceToken:d.deviceToken,clientType:E,channelType:Number(d.channelType)}}},endpointProvider:{getEndpoints:async()=>[{url:d.wsUrl}],getCmHttpBaseUrl:async()=>d.cmHttpBaseUrl},cache:{prefix:t},adapters:{namespaceFactory:n$1,storage:{create:R=>{if(R.namespaceFactory!==n$1)throw new Error("ChatRuntime storage namespace factory \u4E0D\u4E00\u81F4");return f},purgeCurrentAccount:R=>s(R)}},profile:S,media:C?.getMediaConfig(),expressions:C?.getExpressionOptions?.(),coreApi:b,coreClient:x,debug:e.debug},j=r(A),le=j.events;if(le===void 0&&F.size>0)throw Promise.resolve(f?.close?.()).catch(()=>{}),f=void 0,new Error("IM client \u7F3A\u5C11\u4EA7\u54C1\u4E8B\u4EF6 API");i=j,v=i.connection.subscribe(R=>{for(let L of ne)L(R);}),le!==void 0&&(u=le.subscribe(R=>{for(let L of F)L(R);})),m.record("debug","chat-kit","session","client-subscriptions-established",()=>h());}return i}function Ge(){let p=re();return l??=o(p,{coreApiAvailable:g$1}),l}function de(){k.clearAll();}function fn(p){k.removeByPrefix(Ln(p));}return {getClient:()=>i,getProductClient:()=>i===null?null:Ge(),ensureProductClient:Ge,getConnectionState:()=>i?.connection.state??"idle",getGeneration:()=>y,getCredentials:()=>d,getMediaConfig:()=>C?.getMediaConfig(),getDiagnostics:()=>m,configureHost(p){C=p;},applySession(p,x,b){let E=p?.userId??"",S=p?.token??"",A=i!==null&&(d.userId!==E||d.token!==S);return A&&ce(),d.wsUrl=x.wsUrl,d.cmHttpBaseUrl=x.cmHttpBaseUrl,d.userId=E,d.token=S,d.deviceToken=b,d.channelType="0",m.record("info","chat-kit","session","session-applied",()=>({data:{accountId:E,hasToken:S!=="",didReset:A}})),{didReset:A,hasToken:S!==""}},ensureClient:re,async prepare(){if(c)return {ok:false,errorKey:"lifecycle.disposed"};if(d.userId==="")return {ok:false,errorKey:"lifecycle.missingLoginState"};let p=Date.now(),x=h();m.record("info","chat-kit","session","prepare-start",()=>x);try{return await re().connection.prepare(),m.record("info","chat-kit","session","prepare-complete",()=>({...x,durationMs:Date.now()-p})),{ok:!0}}catch(b){return m.record("error","chat-kit","session","prepare-failed",()=>({...x,durationMs:Date.now()-p,error:{message:"ChatRuntime prepare \u5931\u8D25",data:b}})),{ok:false,errorKey:"lifecycle.prepareFailed",errorParams:{reason:b instanceof Error?b.message:String(b)}}}},async connect(){if(c)return {ok:false,errorKey:"lifecycle.disposed"};if(d.wsUrl===""||d.userId===""||d.token==="")return {ok:false,errorKey:"lifecycle.missingConnectParams"};let p=Date.now(),x=h();m.record("info","chat-kit","connection","connect-start",()=>x);try{return await re().connection.connect(),m.record("info","chat-kit","connection","connect-complete",()=>({...x,durationMs:Date.now()-p})),{ok:!0}}catch(b){return m.record("error","chat-kit","connection","connect-failed",()=>({...x,durationMs:Date.now()-p,error:{message:"ChatRuntime connect \u5931\u8D25",data:b}})),{ok:false,errorKey:"lifecycle.connectFailed",errorParams:{reason:b instanceof Error?b.message:String(b)}}}},disconnect(){let p=h();m.record("info","chat-kit","connection","disconnect",()=>p),i?.connection.disconnect("im-chat-manual");},async logout(p){let x=Date.now(),b=h();m.record("info","chat-kit","session","logout-start",()=>({...b,data:p}));let E=i,S,A;if(E!==null)try{A=E.logout(p);}catch(j){S=j;}if(Q(),y+=1,A!==void 0)try{await A;}catch(j){S=j;}if(P={},Z={},ee={},de(),w.clear(),U(),m.record(S===void 0?"info":"error","chat-kit","session",S===void 0?"logout-complete":"logout-failed",()=>({...b,durationMs:Date.now()-x,...S===void 0?{}:{error:{message:"ChatRuntime logout \u5931\u8D25",data:S}}})),S!==void 0)throw S},resetForAuthChange:ce,dispose(){let p=h();m.record("info","chat-kit","session","dispose",()=>p),ce(),ne.clear(),F.clear(),te.clear(),c=true;},subscribeEvents(p){return ne.add(p),()=>{ne.delete(p);}},subscribeProductEvents(p){return F.add(p),()=>{F.delete(p);}},getSenderProfileCache:()=>P,setSenderProfileCache(p){P=p,U();},getGroupMemberNames:()=>Z,setGroupMemberNames(p){Z=p,U();},getChannelMemberProfiles:()=>ee,setChannelMemberProfiles(p){ee=p,U();},subscribeProfileChange(p){return te.add(p),()=>{te.delete(p);}},putSelfVoiceBytes(p,x){for(w.delete(p),w.set(p,x);w.size>Gn;){let b=w.keys().next().value;if(b===void 0)break;w.delete(b);}},getSelfVoiceBytes:p=>w.get(p),clearSelfVoiceBytes(){w.clear();},createLocalMediaPreview(p){let x=URL.createObjectURL(p);return k.register(Se(x),x,{byteSize:p.size,evictable:false}),x},discardLocalMediaPreview(p){k.remove(Se(p));},trackLocalMediaPreview(p,x){k.move(Se(x),he(p));},resolveMediaPreviewToRemote(p,x,b){let E=he(p);x==="image"||x==="video"?k.makeEvictable(E,b):k.remove(E);},acquireMediaBlob(p){return k.acquire(he(p))},cleanupLocalMediaBlobs:de,cleanupConversationMediaBlobs:fn}}function $e(e){return "group"in e?e.group:e.channel}function Xe(e,t,n){if(t.conversationType!==e.ref.conversationType||t.conversationId!==e.ref.conversationId||t.status!=="sent"||t.recalled!==void 0||t.deletedForEveryone!==void 0||t.encryption.decryptFailed===true||!["text","image","video","voice","file","miniProgram","transfer","game"].includes(t.contentType))return false;if(n===null)return true;let r=$e(n);return r.conversationType!==e.ref.conversationType||r.conversationId!==e.ref.conversationId||n.messageId!==t.id}function Bn(e){let{session:t,message:n,currentPinnedMessage:r,selfId:o,ownerId:a}=e;return t?.ref.conversationType==="group"&&(t.groupState===void 0||t.groupState==="active")&&o!==""&&a!==void 0&&a!==""&&o===a&&Xe(t,n,r)}function Hn(e){let{session:t,message:n,currentPinnedMessage:r}=e;return t?.ref.conversationType==="channel"&&t.channelState==="active"&&t.channelPermissions?.moderateMessages===true&&Xe(t,n,r)}function Tr(e){return e.session?.ref.conversationType==="group"?Bn(e):e.session?.ref.conversationType==="channel"?Hn(e):false}function Ye(e,t){if(e===null)return false;let n=$e(e);return n.conversationType===t.conversationType&&n.conversationId===t.conversationId&&e.messageId===t.id}function Pr(e,t,n,r,o){let a=e[r];if(a&&a.remark!=="")return a.remark;let s=n===""?void 0:t[n]?.[r];if(s!==void 0&&s!=="")return s;if(a&&a.nickname!=="")return a.nickname;let i=(o??"").trim();return i!==""?i:r.length>12?`${r.slice(0,6)}\u2026${r.slice(-4)}`:r}function Rr(e,t,n,r){let o=e[r];if(o?.remark!==void 0&&o.remark!=="")return o.remark;let a=t[n]?.[r]?.displayName;return a!==void 0&&a!==""?a:o?.nickname!==void 0&&o.nickname!==""?o.nickname:r}function wr(e,t,n,r){let o=t[n]?.[r]?.avatar;return o!==void 0&&o!==""?o:Fn(e,r)}function Fn(e,t){return e[t]?.avatar??""}function Ar(e,t){return e[t]?.nickname??""}function kr(e){return (e.remark??"").trim()||e.nickname||e.id}function Te(e,t,n=Date.now()){return e.senderId!==t||e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0?false:n-(e.serverTime??e.createdAt)<=300*1e3}function Ee(e,t,n,r=Date.now()){return e.senderId!==t||e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.body.text===void 0||e.body.text===""?false:r-(e.serverTime??e.createdAt)<=n}var I=Object.freeze({availability:"available",reason:"ok"});function M(e){return Object.freeze({availability:"unavailable",reason:e})}function Un(e,t){return e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}function W(e){if(e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.contentType==="system")return M("unsupported-type")}function Vn(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true&&["text","image","video","voice","file","miniProgram","game","mediaAlbum"].includes(e.contentType)}function zn(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0}function $(e){return e.conversationType==="channel"?e.value.canMutateMessages:(e.conversationType==="group",e.value.canUseMessageActions)}function Je(e,t,n={}){return t.availability==="available"?"":e==="direct"?n.mode!=="target"?"":t.reason==="blocked"||t.reason==="not-friend"?"directBlock.contactRequired":"":e==="group"?t.reason==="left"?"groupBlock.left":t.reason==="removed"?"groupBlock.removed":t.reason==="dismissed"?"groupBlock.dismissed":"groupBlock.unknownRestricted":e==="channel"?t.reason==="guest"?"channelBlock.guest":t.reason==="left"?"channelBlock.left":t.reason==="removed"?"channelBlock.removed":t.reason==="dismissed"?"channelBlock.dismissed":t.reason==="muted-all"?"channelBlock.allMembersMuted":t.reason==="muted-self"?"channelBlock.currentUserMuted":t.reason==="muted"?"channelBlock.muted":t.reason==="blacklisted"?"channelBlock.blacklisted":"channelBlock.unknownRestricted":""}function Gr(e,t){switch(t){case "conversation.openProfile":return e.conversationType==="direct"||e.conversationType==="group",e.value.canOpenProfile;case "conversation.readHistory":return e.conversationType==="direct"?I:e.value.canReadHistory;case "conversation.listPreferences":return e.conversationType==="channel"?e.value.state==="muted"?I:e.value.canOpenProfile:e.conversationType==="group"?e.value.canOpenProfile:I;case "composer.send":return e.value.canSendMessages;case "composer.mentionAll":return e.conversationType==="channel"?e.value.canMentionAll:I;case "profile.edit":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canEditProfile:I;case "relationship.manage":return e.conversationType==="direct"?e.value.canManageRelationship:M("unsupported-type");case "members.view":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canViewMembers:M("unsupported-type");case "members.manage":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canManageMembers:M("unsupported-type");case "members.invite":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canInviteMembers:M("unsupported-type");case "members.remove":return e.conversationType==="channel"?e.value.canRemoveMembers:e.conversationType==="group"?e.value.canManageMembers:M("unsupported-type");case "members.setAdmin":return e.conversationType==="channel"?e.value.canSetMemberAdmin:M("unsupported-type");case "ownership.transfer":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canTransferOwnership:M("unsupported-type");case "conversation.leave":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canLeave:M("unsupported-type");case "channel.manageMute":return e.conversationType==="channel"?e.value.canManageMute:M("unsupported-type");case "channel.setMemberPrivateChat":return e.conversationType==="channel"?e.value.canSetMemberPrivateChat:M("unsupported-type");case "channel.dismiss":return e.conversationType==="channel"?e.value.canDismiss:M("unsupported-type")}}function jr(e,t){let{message:n,pinnedMessage:r,selfId:o,snapshot:a,nowMs:s=Date.now()}=t;if(!Un(a,n))return M("unsupported-type");let i=Ye(r,n);switch(e){case "message.forward":{let l=W(n);return l!==void 0?l:pa(n)?I:M("unsupported-type")}case "message.favorite":{let l=W(n);return l!==void 0?l:n.encryption?.decryptFailed===true?M("unsupported-type"):n.contentType==="text"||n.contentType==="image"||n.contentType==="video"||n.contentType==="voice"||n.contentType==="file"||n.contentType==="mediaAlbum"?I:M("unsupported-type")}case "message.multiSelect":{let l=W(n);return l!==void 0?l:i?M("message-protected"):I}case "message.reply":{let l=W(n);return l!==void 0?l:a.conversationType==="direct"?I:$(a)}case "message.recall":return i?M("message-protected"):a.conversationType==="direct"?Te(n,o,s)?I:M("role-insufficient"):$(a).availability!=="available"?$(a):Te(n,o,s)?I:M("role-insufficient");case "message.edit":return i?M("message-protected"):a.conversationType==="direct"?Ee(n,o,la,s)?I:M("role-insufficient"):$(a).availability!=="available"?$(a):Ee(n,o,la,s)?I:M("role-insufficient");case "message.pin":return i?M("message-protected"):Vn(n)&&(a.conversationType==="group"||a.conversationType==="channel")?a.value.canPinMessages:M("unsupported-type");case "message.unpin":return a.conversationType==="group"||a.conversationType==="channel"?a.value.canUnpinMessages:M("unsupported-type");case "message.deleteLocal":{if(i)return M("message-protected");let l=W(n);return l!==void 0?l:n.contentType==="unknown"?M("unsupported-type"):a.conversationType==="direct"||a.conversationType==="group"?I:M("unsupported-type")}case "message.deleteForEveryone":return i?M("message-protected"):a.conversationType!=="channel"||!zn(n)?M("unsupported-type"):a.value.canDeleteMessagesForEveryone}}function Lr(e,t){let{selfId:n,snapshot:r,targetRole:o="unknown",targetUserId:a}=t;if(a===""||a===n)return M("role-insufficient");if(r.conversationType==="group"){if(e!=="members.removeTarget")return M("unsupported-type");let i=r.value.canManageMembers;return i.availability!=="available"?i:r.value.ownerId!==void 0&&a===r.value.ownerId?M("role-insufficient"):I}if(r.conversationType!=="channel")return M("unsupported-type");if(e==="members.removeTarget"||e==="members.editNicknameTarget"){let i=r.value.canRemoveMembers;return i.availability!=="available"?i:r.value.role==="owner"?o==="member"||o==="admin"?I:M("role-insufficient"):r.value.role==="admin"&&o==="member"?I:M("role-insufficient")}let s=r.value.canSetMemberAdmin;return s.availability!=="available"?s:r.value.role!=="owner"?M("role-insufficient"):e==="members.setAdminTarget"?o==="member"?I:M("role-insufficient"):o==="admin"?I:M("role-insufficient")}function qe(e){if(e===void 0||e==="active")return "";switch(e){case "guest":return "channelBlock.guest";case "left":return "channelBlock.left";case "removed":return "channelBlock.removed";case "dismissed":return "channelBlock.dismissed";case "muted":return "channelBlock.muted";case "blacklisted":return "channelBlock.blacklisted";case "unknown_restricted":return "channelBlock.unknownRestricted"}}function Qe(e,t=Date.now()){if(e?.channelState===void 0)return "channelBlock.unknownRestricted";let n=wa({channelState:e.channelState,snapshot:e.channelAccessSnapshot,permissions:e.channelPermissions,nowMs:t});return n.channelState==="muted"?n.muteReason==="all-members"?"channelBlock.allMembersMuted":n.muteReason==="current-user"?"channelBlock.currentUserMuted":"channelBlock.muted":n.channelState!=="active"?qe(n.channelState)||"channelBlock.unknownRestricted":n.permissions.sendMessages?"":"channelBlock.unknownRestricted"}var D=9;function Kn(e={}){let t=typeof navigator<"u"?navigator:void 0,n=e.deviceMemoryGb??(typeof t?.deviceMemory=="number"?t.deviceMemory:4),r=Math.floor(n*1024*1024*1024/8);return Math.min(512*1024*1024,Math.max(64*1024*1024,r))}async function Ze(e,t,n={}){if(e.length===0)return {processedCount:0,rejectedByLimit:false};let r=e.length>9;r&&n.onRejectedByLimit?.({reason:"count-limit",maxCount:9,selectedCount:e.length});let o=e.slice(0,9);if(n.startAll)return await Promise.all(o.map(g=>t(g).catch(()=>false))),{processedCount:o.length,rejectedByLimit:r};let a=Kn(n),s=Math.max(1,Math.floor(n.maxConcurrency??Number.POSITIVE_INFINITY)),i=0,l=new Set;for(let g of o){for(;l.size>0&&(l.size>=s||i+g.size>a);)await Promise.race(l);i+=g.size;let f=t(g).catch(()=>false).finally(()=>{i-=g.size,l.delete(f);});l.add(f);}return await Promise.all(l),{processedCount:o.length,rejectedByLimit:r}}async function X(e){let t=e.type.trim().toLowerCase(),n=new Uint8Array(await e.slice(0,6).arrayBuffer()),r=n.length===6?String.fromCharCode(...n):"",o=r==="GIF87a"||r==="GIF89a",a=t==="image/gif";return o&&(a||t==="")?"gif":o||a?"invalid-gif":"not-gif"}async function Pe(e){return await X(e)==="gif"}var Wn=new Set(["group","channel"]),$n=new Set(["group","channel"]),en=30*1024*1024,Re=200*1024*1024,nn=2*1024*1024*1024,Xn=3*1024*1024;function J(e,t,n){let r=e.getConversationHandle();if(!(r===void 0||n===void 0||n==="supergroup"))return r.ref.conversationId===t&&r.ref.conversationType===n?r:void 0}function q(e,t){return e.retainConversationHandle?.(t)??(()=>{})}function Y(e,t){try{return e.getSnapshot().messages.find(n=>n.contentType==="video"?n.body.video?.url===t:n.contentType==="image"?n.body.image?.url===t:n.contentType==="sticker"?n.body.sticker?.url===t:n.contentType==="mediaAlbum"?n.body.mediaAlbum?.items.some(r=>r.url===t)===!0:!1)?.id}catch{return}}function we(e){if(e===void 0)return;let t=e.atAll?[{userId:"0",displayName:""}]:[];for(let n of e.atUserIds)t.push({userId:n,displayName:e.atUsersName?.[n]??n});return t.length===0?void 0:t}function Yn(e){if(e===void 0||e==="active")return "";switch(e){case "left":return "groupBlock.left";case "removed":return "groupBlock.removed";case "dismissed":return "groupBlock.dismissed";default:return "groupBlock.unknownRestricted"}}function Xr(e){return Wn.has(e)}function Jn(e){return $n.has(e)}function Yr(e,t=Date.now()){return e?.type==="channel"?Qe(e,t):e?.type==="group"?Yn(e.groupState):""}function _(e,t,n,r={}){let o=e.getProductClient();if(o===null)return "";let a=n??o.conversations.list().find(i=>i.ref.conversationId===t)?.ref.conversationType;if(a===void 0||a==="supergroup")return "";let s=o.capabilities.get({conversationType:a,conversationId:t}).value.canSendMessages;return Je(a,s,r)}async function Jr(e,t,n){let r=e.getClient(),o=t.text.trim();if(r===null)return n.setNote(n.t("common.notConnected")),false;if(t.conversationId==="")return n.setNote(n.t("common.selectOrOpenConversation")),false;if(o==="")return false;let a=e.getGeneration();try{let s=t.conversationType;if(s===void 0)return n.setNote(n.t("common.conversationTypeNotReady")),!1;let i=J(n,t.conversationId,s);if(i===void 0)return n.setNote(n.t("common.conversationNotReady")),!1;let l=_(e,t.conversationId,s);if(l!=="")return n.setNote(n.t(l)),!1;let g=q(n,i);try{let f=await i.messages.sendText(o,{...Jn(s)?{mentions:we(t.mention)}:{},...t.refMessageId===void 0?{}:{replyToMessageId:t.refMessageId}});return n.refreshActiveMessages(),f.ok?e.getGeneration()===a:(e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:f.error.code})),!1)}finally{g();}}catch(s){return e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:s instanceof Error?s.message:String(s)})),false}}async function tn(e,t,n){let{kind:r,file:o,conversationId:a,conversationType:s,refMessageId:i}=t,l=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(a===""||s===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=J(n,a,s);if(f===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let v=_(e,a,s);if(v!=="")return n.setNote(n.t(v)),false;let u=r==="video"?Re:r==="file"?nn:r==="sticker"?Xn:en;if(o.size>u)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:l,maxMb:Math.round(u/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:l,maxMb:Math.round(u/1024/1024)})),false;let y=e.getGeneration();if(o.size===0)return e.getGeneration()===y&&n.setNote(n.t("send.mediaEmpty",{label:l})),false;if(r==="sticker"&&!await Pe(o))return e.getGeneration()===y&&n.setNote(n.t("send.mediaFormatMismatch",{name:o.name})),false;let C=q(n,f),c;try{c=r==="file"?void 0:e.createLocalMediaPreview(o);let d=t.localPreviewMetadata;if(e.getGeneration()!==y)return c!==void 0&&e.discardLocalMediaPreview(c),!1;let m=await(r==="image"?f.messages.sendImage(o,{...c===void 0?{}:{localPreviewUrl:c},...d===void 0?{}:{localPreviewMetadata:d},...i===void 0?{}:{replyToMessageId:i}}):r==="video"?f.messages.sendVideo(o,{...c===void 0?{}:{localPreviewUrl:c},...d===void 0?{}:{localPreviewMetadata:d},...i===void 0?{}:{replyToMessageId:i}}):r==="sticker"?f.messages.sendGif(o,{...c===void 0?{}:{localPreviewUrl:c},...i===void 0?{}:{replyToMessageId:i}}):f.messages.sendFile(o,{fileName:o.name,...i===void 0?{}:{replyToMessageId:i}}));if(n.refreshActiveMessages(),!m.ok){if(e.getGeneration()===y&&(m.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):m.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(m.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.mediaCancelled",{label:l}):n.t("send.mediaFailed",{label:l,reason:m.error.code}))),c!==void 0){let h=Y(f,c);h===void 0?e.discardLocalMediaPreview(c):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:h},c);}return !1}return e.getGeneration()===y}catch(d){if(e.getGeneration()===y&&n.setNote(n.t("send.mediaFailed",{label:l,reason:d instanceof Error?d.message:String(d)})),c!==void 0){let m=Y(f,c);m===void 0?e.discardLocalMediaPreview(c):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:m},c);}return false}finally{C();}}async function qr(e,t,n){let{kind:r,file:o,messageId:a,conversationId:s,conversationType:i}=t,l=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;let g=J(n,s,i);if(g===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=_(e,s,i);if(f!=="")return n.setNote(n.t(f)),false;let v=r==="video"?Re:nn;if(o.size>v)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:l,maxMb:Math.round(v/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:l,maxMb:Math.round(v/1024/1024)})),false;let u=e.getGeneration();if(o.size===0)return e.getGeneration()===u&&n.setNote(n.t("send.mediaEmpty",{label:l})),false;let y=q(n,g),C;try{if(C=r==="video"?e.createLocalMediaPreview(o):void 0,e.getGeneration()!==u)return C!==void 0&&e.discardLocalMediaPreview(C),!1;let c=await(r==="video"?g.messages.replaceInterruptedVideo(a,o,{...C===void 0?{}:{localPreviewUrl:C}}):g.messages.replaceInterruptedFile(a,o,{fileName:o.name}));if(n.refreshActiveMessages(),!c.ok){e.getGeneration()===u&&(c.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):c.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(n.t("send.mediaFailed",{label:l,reason:c.error.code})));let d=C!==void 0&&g.getSnapshot().messages.some(m=>m.id===a&&m.contentType==="video"&&m.body.video?.url===C);return C!==void 0&&!d?e.discardLocalMediaPreview(C):C!==void 0&&e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},C),!1}return e.getGeneration()===u}catch(c){return e.getGeneration()===u&&n.setNote(n.t("send.mediaFailed",{label:l,reason:c instanceof Error?c.message:String(c)})),C!==void 0&&(Y(g,C)===a?e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},C):e.discardLocalMediaPreview(C)),false}finally{y();}}function qn(e){let t=e.getMediaConfig()?.buckets.voice;return t!==void 0&&t!==""}async function Qr(e,t,n){let{payload:r,conversationId:o,conversationType:a,refMessageId:s}=t;if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(o===""||a===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let l=J(n,o,a);if(l===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let g=_(e,o,a);if(g!=="")return n.setNote(n.t(g)),false;if(r.data.length===0)return n.setNote(n.t("send.voiceEmpty")),false;if(!qn(e))return n.setNote(n.t("send.voiceStorageNotConfigured")),false;let f=e.getGeneration(),v=q(n,l);try{let u=new File([r.data],r.filename,{type:r.mimeType}),y=await l.messages.sendVoice(u,{durationMs:r.durationMs,waveform:r.waveform,...s===void 0?{}:{replyToMessageId:s}});return n.refreshActiveMessages(),y.ok?e.getGeneration()!==f?!1:(e.putSelfVoiceBytes(y.message.id,r.data),!0):(e.getGeneration()===f&&n.setNote(y.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.voiceCancelled"):n.t("send.voiceFailed",{reason:y.error.code})),!1)}catch(u){return e.getGeneration()===f&&n.setNote(n.t("send.voiceFailed",{reason:u instanceof Error?u.message:String(u)})),false}finally{v();}}var Qn=new Set(["IM_SDK_VIDEO_TOO_LARGE","IM_SDK_VIDEO_PREVIEW_METADATA_INVALID","IM_SDK_VIDEO_DURATION_TOO_LONG","IM_SDK_VIDEO_DURATION_UNAVAILABLE"]);async function Zr(e,t,n){let{caption:r,conversationId:o,conversationType:a,items:s,refMessageId:i}=t;if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(o===""||a===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let g=J(n,o,a);if(g===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=_(e,o,a);if(f!=="")return n.setNote(n.t(f)),false;if(s.length===0)return false;let v=e.getGeneration();for(let c of s){let d=n.t(`label.${c.kind}`),m=c.kind==="video"?Re:en;if(c.file.size>m)return n.pushMediaLimitItem({name:c.file.name,sizeMb:c.file.size/1024/1024,label:d,maxMb:Math.round(m/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:c.file.name,label:d,maxMb:Math.round(m/1024/1024)})),false;if(c.file.size===0)return n.setNote(n.t("send.mediaEmpty",{label:d})),false}for(let c of s)if(await X(c.file)!=="not-gif")return e.getGeneration()!==v||n.showWarning?.(n.t("send.mediaFailed",{label:n.t("label.image"),reason:"IM_SDK_MEDIA_ALBUM_GIF_UNSUPPORTED"})),false;if(e.getGeneration()!==v)return false;let u=q(n,g),y=s.map(c=>e.createLocalMediaPreview(c.file)),C=c=>{y.forEach((d,m)=>{c===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:o,conversationType:a,messageId:c,itemIndex:m},d);});};try{if(e.getGeneration()!==v)return C(void 0),!1;let c=await g.messages.sendMediaAlbum(s.map((d,m)=>({kind:d.kind,file:d.file,localPreviewUrl:y[m],...d.localPreviewMetadata===void 0?{}:{localPreviewMetadata:d.localPreviewMetadata}})),{...r===void 0||r.trim()===""?{}:{caption:r},...t.hd===void 0?{}:{hd:t.hd},...i===void 0?{}:{replyToMessageId:i}});if(n.refreshActiveMessages(),!c.ok){if(e.getGeneration()===v){let d=n.t(Qn.has(c.error.code)?"label.video":"label.image");n.setNote(c.error.code==="IM_SDK_MEDIA_CANCELLED"?n.t("send.mediaCancelled",{label:d}):n.t("send.mediaFailed",{label:d,reason:c.error.code}));}return C(Y(g,y[0])),!1}return e.getGeneration()===v}catch(c){return e.getGeneration()===v&&n.setNote(n.t("send.mediaFailed",{label:n.t("label.image"),reason:c instanceof Error?c.message:String(c)})),C(Y(g,y[0])),false}finally{u();}}async function eo(e,t,n){let r=t.files.slice(0,9);t.files.length>9&&(n.setMediaBatchLimit({selectedCount:t.files.length,maxCount:9}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:9,ignoredCount:t.files.length-9})));let o=e.getGeneration(),a=[];for(let i of r){let l=await X(i);if(e.getGeneration()!==o)break;let g=l!=="not-gif"?"sticker":i.type.startsWith("image/")?"image":i.type.startsWith("video/")?"video":"file";a.push(tn(e,{kind:g,file:i,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n));}let s=await Promise.all(a.map(i=>i.catch(()=>false)));return Object.freeze({selectedCount:t.files.length,processedCount:a.length,acceptedCount:s.filter(Boolean).length,rejectedByLimit:t.files.length>9})}async function no(e,t,n){let r=0,o=await Ze(t.files,async a=>{let s=await tn(e,{kind:"file",file:a,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n);return s&&(r+=1),s},{startAll:true,onRejectedByLimit:a=>{n.setMediaBatchLimit({selectedCount:a.selectedCount,maxCount:a.maxCount}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:a.maxCount,ignoredCount:a.selectedCount-a.maxCount}));}});return Object.freeze({selectedCount:t.files.length,processedCount:o.processedCount,acceptedCount:r,rejectedByLimit:o.rejectedByLimit})}async function to(e,t,n){let r=e.getClient(),o=n.getConversationHandle();if(r===null||o===void 0)return n.setNote(n.t("send.cancelFailed")),false;let a=e.getGeneration();try{let s=r.media.getSnapshot().filter(i=>i.direction==="upload"&&i.messageId===t&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);return s.length!==1?(n.setNote(n.t("send.cancelFailed")),!1):(await r.media.cancel(s[0].id),e.getGeneration()!==a||n.getConversationHandle()!==o?!1:(n.refreshActiveMessages(),!0))}catch{return e.getGeneration()===a&&n.getConversationHandle()===o&&n.setNote(n.t("send.cancelFailed")),false}}async function ro(e,t,n){let r=e.getClient();if(r===null)return false;let o=n.getConversationHandle();if(o===void 0)return n.setNote(n.t("send.retryFailed")),false;let a=e.getGeneration(),s=r.media.getSnapshot().find(l=>l.direction==="upload"&&(l.state==="failed"||l.state==="canceled")&&l.messageId===t&&l.ref.conversationType===o.ref.conversationType&&l.ref.conversationId===o.ref.conversationId);if(s!==void 0)try{return await r.media.retry(s.id),e.getGeneration()!==a?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===a&&n.setNote(n.t("send.retryFailed")),false}let i=r.outbox.getSnapshot().find(l=>l.messageId===t);if(i===void 0||i.ref.conversationType!==o.ref.conversationType||i.ref.conversationId!==o.ref.conversationId)return n.setNote(n.t("send.retryFailed")),false;try{return await r.outbox.retry(t),e.getGeneration()!==a?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===a&&n.setNote(n.t("send.retryFailed")),false}}var at={};a(at,{executeForwardMessages:()=>rt,forwardMessages:()=>ot});function Zn(e,t){let n=e.getConversationHandle();if(n!==void 0)return t.every(r=>r.conversationType!=="supergroup"&&r.conversationType===n.ref.conversationType&&r.conversationId===n.ref.conversationId)?n:void 0}function et(e){let t=e?.code;return typeof t=="string"&&t!==""?t:"unknown"}function nt(e,t){let n=e;return typeof n?.code=="string"&&typeof n.category=="string"&&typeof n.operation=="string"&&typeof n.retryable=="boolean"?n:Object.freeze({code:"IM_CHAT_KIT_FORWARD_FAILED",category:"state",operation:"message-operations.forward",retryable:false,conversation:Object.freeze({...t.ref}),cause:e})}function tt(e,t){return t.every(n=>n.conversationType!=="supergroup"&&n.conversationType===e.ref.conversationType&&n.conversationId===e.ref.conversationId)}async function rt(e,t){let n="forward";if(e.getProductClient()===null||e.getConnectionState()!=="authenticated"||t.handle===void 0||!tt(t.handle,t.messages))return Object.freeze({ok:false,operation:n,reason:"not-ready"});if(t.messages.length===0||t.targets.length===0)return Object.freeze({ok:false,operation:n,reason:"empty-input"});for(let f of t.targets){let v=_(e,f.conversationId,f.conversationType,{mode:"target"});if(v!=="")return Object.freeze({ok:false,operation:n,reason:"target-blocked",blockReason:v})}let o=t.messages.filter(pa),a=t.messages.length-o.length;if(o.length===0)return Object.freeze({ok:false,operation:n,reason:"all-skipped",skippedCount:a});let s=e.getGeneration(),i;try{i=await t.handle.messages.forward(o.map(f=>f.id),t.targets);}catch(f){return e.getGeneration()!==s?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:nt(f,t.handle)})}if(e.getGeneration()!==s)return Object.freeze({ok:false,operation:n,reason:"stale"});let l=i.sent.length,g=a+i.skippedSourceMessageIds.length;return Object.freeze(l===0?{ok:false,operation:n,reason:i.failed.length>0?"sdk-rejected":"all-skipped",...i.failed[0]===void 0?{}:{error:i.failed[0].error},result:i,skippedCount:g}:{ok:true,operation:n,result:i,sentCount:l,skippedCount:g})}async function ot(e,t,n){if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),null;if(t.messages.length===0||t.targets.length===0)return n.setNote(n.t("forward.emptyInput")),null;let o=Zn(n,t.messages);if(o===void 0)return n.setNote(n.t("common.conversationNotReady")),null;for(let v of t.targets){let u=_(e,v.conversationId,v.conversationType,{mode:"target"});if(u!=="")return n.setNote(n.t(u)),null}let a=t.messages.filter(pa),s=t.messages.length-a.length;if(a.length===0)return n.setNote(n.t("forward.allSkipped")),null;let i=e.getGeneration(),l;try{l=await o.messages.forward(a.map(v=>v.id),t.targets);}catch(v){return e.getGeneration()===i&&n.getConversationHandle()===o&&n.setNote(n.t("forward.failed",{reason:et(v)})),null}if(e.getGeneration()!==i||n.getConversationHandle()!==o)return l;let g=l.sent.length,f=s+l.skippedSourceMessageIds.length;if(g===0){let v=l.failed[0];v!==void 0?n.setNote(n.t("forward.failed",{reason:v.error.code})):f>0?n.setNote(n.t("forward.allSkipped")):n.setNote(n.t("forward.failed",{reason:"unknown"}));}else f>0?n.setNote(n.t("forward.partialSkipped",{skipped:f,ok:g})):n.setNote(n.t("forward.done"));return n.refreshActiveMessages?.(),l}var yt={};a(yt,{deleteChannelMessageForEveryone:()=>pt,editMessage:()=>vt,executeDeleteChannelMessageForEveryone:()=>ut,executeDeleteLocalMessage:()=>ft,executeRecallMessage:()=>lt,executeRetryMessage:()=>mt,recallMessage:()=>gt});var it={IM_SDK_MESSAGE_NOT_FOUND:"recall.not-found",IM_SDK_MESSAGE_STATE_MISMATCH:"recall.not-found",IM_SDK_RECALL_NOT_OWN:"recall.not-own",IM_SDK_RECALL_NOT_SENT:"recall.not-sent",IM_SDK_RECALL_EXPIRED:"recall.expired",IM_SDK_RECALL_UNSUPPORTED:"recall.unsupported",IM_SDK_RECALL_TIMEOUT:"recall.timeout",IM_SDK_RECALL_FAILED:"recall.failed",IM_SDK_RECALL_DISCONNECTED:"recall.disconnected"},st={IM_SDK_MESSAGE_NOT_FOUND:"edit.not-found",IM_SDK_MESSAGE_STATE_MISMATCH:"edit.not-found",IM_SDK_EDIT_NOT_OWN:"edit.not-own",IM_SDK_EDIT_NOT_SENT:"edit.not-sent",IM_SDK_EDIT_RECALLED:"edit.recalled",IM_SDK_EDIT_DELETED:"edit.deleted",IM_SDK_EDIT_EXPIRED:"edit.expired",IM_SDK_EDIT_UNSUPPORTED:"edit.unsupported",IM_SDK_DIRECT_MENTION_UNSUPPORTED:"edit.unsupported",IM_SDK_EDIT_EMPTY:"edit.empty",IM_SDK_EDIT_RESTRICTED:"edit.restricted",IM_SDK_EDIT_CONTENT_UNSUPPORTED:"edit.unsupported-content",IM_SDK_EDIT_KEY_UNAVAILABLE:"edit.no-key",IM_SDK_EDIT_ENCRYPT_FAILED:"edit.encrypt-failed",IM_SDK_EDIT_TIMEOUT:"edit.timeout",IM_SDK_EDIT_FAILED:"edit.failed",IM_SDK_EDIT_DISCONNECTED:"edit.disconnected"},ct={IM_SDK_MESSAGE_NOT_FOUND:"channelDelete.notFound",IM_SDK_CHANNEL_DELETE_UNSUPPORTED:"channelDelete.unsupported",IM_SDK_CHANNEL_DELETE_NOT_SENT:"channelDelete.notSent",IM_SDK_CHANNEL_DELETE_UNAVAILABLE:"channelDelete.unavailable",IM_SDK_CHANNEL_DELETE_FORBIDDEN:"channelDelete.forbidden",IM_SDK_CHANNEL_DELETE_TIMEOUT:"channelDelete.timeout",IM_SDK_CHANNEL_DELETE_FAILED:"channelDelete.failed",IM_SDK_CHANNEL_DELETE_DISCONNECTED:"channelDelete.disconnected"};function Ae(e,t){let n=e.getConversationHandle();if(!(n===void 0||t.conversationType==="supergroup"))return n.ref.conversationType===t.conversationType&&n.ref.conversationId===t.conversationId?n:void 0}function ke(e){return typeof e?.code=="string"?e.code:void 0}function dt(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.category=="string"&&typeof e.operation=="string"&&typeof e.retryable=="boolean"}function ie(e,t,n){return dt(e)?e:Object.freeze({code:"IM_CHAT_KIT_MESSAGE_OPERATION_FAILED",category:"state",operation:`message-operations.${t}`,retryable:false,...n===void 0?{}:{conversation:Object.freeze({...n.ref})},cause:e})}function _e(e,t){return e!==void 0&&t.conversationType!=="supergroup"&&e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}async function lt(e,t){let n="recall";if(!_e(t.handle,t.message))return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.recall(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ie(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function ft(e,t){let n="delete-local";if(!_e(t.handle,t.message)||t.handle.ref.conversationType!=="direct"&&t.handle.ref.conversationType!=="group"||t.message.conversationType!=="direct"&&t.message.conversationType!=="group")return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.deleteLocal(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ie(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function ut(e,t){let n="delete-for-everyone";if(!_e(t.handle,t.message)||t.handle.ref.conversationType!=="channel"||t.message.conversationType!=="channel")return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.deleteForEveryone(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ie(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function mt(e,t){let n="retry",r=e.getProductClient(),o=t.handle;if(r===null||o===void 0)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let a=e.getGeneration();try{let s=r.media.getSnapshot().find(i=>i.direction==="upload"&&(i.state==="failed"||i.state==="canceled")&&i.messageId===t.messageId&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);if(s!==void 0)await r.media.retry(s.id);else {let i=r.outbox.getSnapshot().find(l=>l.messageId===t.messageId);if(i===void 0||i.ref.conversationType!==o.ref.conversationType||i.ref.conversationId!==o.ref.conversationId)return Object.freeze({ok:!1,operation:n,reason:"not-ready"});await r.outbox.retry(t.messageId);}}catch(s){return e.getGeneration()!==a?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ie(s,n,o)})}return e.getGeneration()===a?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function gt(e,t,n){let r=Ae(n,t.message);if(r===void 0){n.setNote(n.t("common.conversationNotReady"));return}let o=e.getGeneration();try{await r.messages.recall(t.message.id);}catch(a){if(e.getGeneration()!==o)return;n.setNote(n.t(it[ke(a)??""]??"recall.failed"));}}async function pt(e,t,n){let r=Ae(n,t.message);if(r===void 0||r.ref.conversationType!=="channel"||t.message.conversationType!=="channel"){n.setNote(n.t("common.conversationNotReady"));return}let o=e.getGeneration();try{await r.messages.deleteForEveryone(t.message.id);}catch(a){if(e.getGeneration()!==o)return;n.setNote(n.t(ct[ke(a)??""]??"channelDelete.failed"));}}async function vt(e,t,n){let r=Ae(n,t.message);if(r===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let o=e.getGeneration(),a=we(t.mention);try{await r.messages.editText(t.message.id,t.text,{...a===void 0?{}:{mentions:a}});}catch(s){return e.getGeneration()!==o||n.setNote(n.t(st[ke(s)??""]??"edit.failed")),false}return e.getGeneration()===o}var Et={};a(Et,{executePinMessage:()=>Mt,executeSyncPinnedMessage:()=>bt,executeUnpinMessage:()=>xt,getPinnedMessage:()=>St,peekPinnedMessage:()=>Tt,pinMessage:()=>It,syncPinnedMessage:()=>on,unpinMessage:()=>ht});function B(e,t){let n=e.getProductClient();return n===null||e.getConnectionState()!=="authenticated"?(t?.setNote(t.t("common.notConnected")),null):n}function Ct(e){switch(e){case "permission":return "pinned.forbidden";case "network":return "pinned.network";case "contract":return "pinned.contract";case "unsupported":return "pinned.unsupported";default:return "pinned.failed"}}function rn(e){return typeof e=="object"&&e!==null&&typeof e.category=="string"}function Ne(e,t,n){if(rn(e))return e;let r=typeof e?.kind=="string"?e.kind:void 0,o=r==="forbidden"?"permission":r==="network"?"network":r==="unsupported"?"unsupported":r==="contract"?"contract":"state";return Object.freeze({code:"IM_CHAT_KIT_PINNED_MESSAGE_OPERATION_FAILED",category:o,operation:`message-operations.${t}`,retryable:o==="network",conversation:Object.freeze({...n}),cause:e})}async function Mt(e,t){let r=B(e);if(r===null||t.message.conversationId!==t.conversation.conversationId||t.message.conversationType!==t.conversation.conversationType)return Object.freeze({ok:false,operation:"pin",reason:"not-ready"});let o=e.getGeneration();try{let a=t.conversation.conversationType==="group"?await r.groups.pinMessage(t.conversation,t.message.id):await r.channels.pinMessage(t.conversation,t.message.id);return e.getGeneration()===o?Object.freeze({ok:!0,operation:"pin",value:a}):Object.freeze({ok:!1,operation:"pin",reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:"pin",reason:"stale"}):Object.freeze({ok:false,operation:"pin",reason:"sdk-rejected",error:Ne(a,"pin",t.conversation)})}}async function xt(e,t){let n="unpin",r=B(e);if(r===null)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let o=e.getGeneration();try{return t.conversationType==="group"?await r.groups.unpinMessage(t):await r.channels.unpinMessage(t),e.getGeneration()===o?Object.freeze({ok:!0,operation:n}):Object.freeze({ok:!1,operation:n,reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:Ne(a,n,t)})}}async function bt(e,t){let n="sync-pin",r=B(e);if(r===null)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let o=e.getGeneration();try{let a=t.conversationType==="group"?await r.groups.getPinnedMessage(t):await r.channels.getPinnedMessage(t);return e.getGeneration()===o?Object.freeze({ok:!0,operation:n,value:a}):Object.freeze({ok:!1,operation:n,reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:Ne(a,n,t)})}}function De(e,t,n,r){if(e.getGeneration()!==t)return;let o=rn(r)?Ct(r.category):"pinned.failed";n.setNote(n.t(o));}async function It(e,t,n){let r=B(e,n);if(r===null)return null;let o=e.getGeneration();try{let a=t.conversation.conversationType==="group"?await r.groups.pinMessage(t.conversation,t.message.id):await r.channels.pinMessage(t.conversation,t.message.id);return e.getGeneration()===o?a:null}catch(a){return De(e,o,n,a),null}}async function ht(e,t,n){let r=B(e,n);if(r===null)return false;let o=e.getGeneration();try{return t.conversationType==="group"?await r.groups.unpinMessage(t):await r.channels.unpinMessage(t),e.getGeneration()===o}catch(a){return De(e,o,n,a),false}}async function St(e,t,n){let r=await on(e,t,n);return r.ok?r.value:null}async function on(e,t,n){let r=B(e,n);if(r===null)return {ok:false};let o=e.getGeneration();try{let a=t.conversationType==="group"?await r.groups.getPinnedMessage(t):await r.channels.getPinnedMessage(t);return e.getGeneration()===o?{ok:!0,value:a}:{ok:!1}}catch(a){return De(e,o,n,a),{ok:false}}}function Tt(e,t){let n=e.getProductClient();return n===null?null:t.conversationType==="group"?n.groups.peekPinnedMessage(t):n.channels.peekPinnedMessage(t)}function fo(e){return e.conversation.conversationType==="channel"&&e.channelProfile?.memberPrivateChatDisabled!==false?"blocked":e.relationship==="friend"?"friend-profile":"friend-contact"}var Bt={};a(Bt,{applyGroupMemberNickname:()=>Dt,applyGroupMemberRename:()=>_t,applyMemberNames:()=>Nt,clearGroupMemberNicknameProjection:()=>Ot,ensureSelfProfile:()=>Gt,prewarmActiveSenders:()=>Lt,prewarmMemberAvatars:()=>jt,refreshStaleSenders:()=>ln,resolveChannelMembers:()=>kt,resolveGroupMembers:()=>dn,resolveSenderName:()=>At});var Pt=new WeakMap,Rt=new WeakMap,wt=new WeakMap;function Oe(e,t){let n=e.get(t);return n===void 0&&(n=new Map,e.set(t,n)),n}function sn(e,t){return e===void 0?t===void 0?0:-1:t===void 0?1:e.length!==t.length?e.length>t.length?1:-1:e===t?0:e>t?1:-1}var an=new WeakMap;function T(e){return (e??"").trim()}function H(e){let t=an.get(e),n=e.getGeneration();return (t===void 0||t.generation!==n)&&(t={generation:n,groups:new Map},an.set(e,t)),t}function se(e,t,n,r={}){let o=H(e).groups.get(t);if(o===void 0||o.size===0)return n;let a={...n};for(let[s,i]of o){let l=n[s];if((i===""?l===void 0:l===i)&&r.reconcile===true){o.delete(s);continue}i===""?delete a[s]:a[s]=i;}return o.size===0&&H(e).groups.delete(t),a}function cn(e,t,n){let r=H(e).groups.get(t);if(r!==void 0){if(n===void 0){H(e).groups.delete(t);return}r.delete(n.trim()),r.size===0&&H(e).groups.delete(t);}}function N(e,t,n,r){e.getDiagnostics().record("warn","chat-kit","profile",t,()=>({...r===void 0?{}:{data:r},error:{message:"\u8D44\u6599\u9884\u70ED\u5931\u8D25",data:n}}));}function At(e,t,n){let r=e.getClient(),o=e.getCredentials().userId;if(t===""||t==="system"||t===o||r===null)return Promise.resolve(false);let a=n?.forceRefresh===true,s=Oe(Pt,e),i=a?void 0:s.get(t);if(i!==void 0)return i;let l=e.getSenderProfileCache();if(!a&&l[t]!==void 0)return Promise.resolve(true);l[t]===void 0&&e.setSenderProfileCache({...l,[t]:{remark:"",nickname:"",avatar:""}});let g=e.getGeneration(),f=r.contact.getProfile(t,a?{forceRefresh:true}:void 0).then(v=>{if(e.getGeneration()!==g)return false;let u=T(v?.remark),y=T(v?.nickname),C=T(v?.avatar);return (u!==""||y!==""||C!=="")&&e.setSenderProfileCache({...e.getSenderProfileCache(),[t]:{remark:u,nickname:y,avatar:C}}),true}).catch(v=>{if(e.getGeneration()!==g)return false;if(!a){let u={...e.getSenderProfileCache()};delete u[t],e.setSenderProfileCache(u);}return e.getDiagnostics().record("warn","chat-kit","profile","sender-profile-resolve-failed",()=>({data:{userId:t},error:{message:"\u89E3\u6790\u53D1\u9001\u8005\u8D44\u6599\u5931\u8D25",data:v}})),false}).finally(()=>{!a&&s.get(t)===f&&s.delete(t);});return a||s.set(t,f),f}function dn(e,t,n){let r=e.getClient();if(t===""||r===null)return Promise.resolve(false);let o=n?.forceRefresh===true,a=Oe(Rt,e),s=o?void 0:a.get(t);if(s!==void 0)return s;let i=e.getGroupMemberNames();if(!o&&i[t]!==void 0)return Promise.resolve(true);let l=i[t]!==void 0;l||e.setGroupMemberNames({...i,[t]:{}});let g=e.getGeneration(),f=()=>{if(l||e.getGeneration()!==g)return;let u={...e.getGroupMemberNames()};delete u[t],e.setGroupMemberNames(u);},v=r.group.getMemberNames(t,{forceRefresh:o}).then(u=>e.getGeneration()!==g?false:u===null?(f(),false):(e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:se(e,t,u,{reconcile:true})}),true)).catch(u=>(f(),e.getGeneration()===g&&N(e,"group-member-name-resolve-failed",u,{groupId:t}),false)).finally(()=>{!o&&a.get(t)===v&&a.delete(t);});return o||a.set(t,v),v}function kt(e,t,n,r){let o=e.getClient();if(o===null||t===""||r?.isCurrent?.()===false)return Promise.resolve(false);let a=r?.forceRefresh===true,s=e.getChannelMemberProfiles()[t]??{},i=[...new Set(n.map(y=>y.trim()).filter(y=>y!==""&&y!=="system"))].filter(y=>a||s[y]===void 0||s[y].expiresAt<=Date.now());if(i.length===0)return Promise.resolve(true);let l=Oe(wt,e),g=`${t}:${[...i].sort().join(",")}`,f=a?void 0:l.get(g);if(f!==void 0)return f;let v=e.getGeneration(),u=o.channel.getMembersByIds(t,i,a?{forceRefresh:true}:void 0).then(y=>{if(e.getGeneration()!==v||r?.isCurrent?.()===false)return false;let C=Date.now()+3e5,c={...e.getChannelMemberProfiles()[t]??{}};for(let d of y){let m=c[d.userId];m!==void 0&&sn(d.updateVersion,m.updateVersion)<0||(c[d.userId]={displayName:d.displayName,...d.avatar===void 0?{}:{avatar:d.avatar},role:d.role,...d.updateVersion===void 0?{}:{updateVersion:d.updateVersion},expiresAt:C});}return e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[t]:c}),true}).catch(y=>(e.getGeneration()===v&&e.getDiagnostics().record("warn","chat-kit","profile","channel-members-resolve-failed",()=>({conversation:{conversationType:"channel",conversationId:t},error:{message:"\u89E3\u6790 CHANNEL \u6210\u5458\u8D44\u6599\u5931\u8D25",data:y}})),false)).finally(()=>{!a&&l.get(g)===u&&l.delete(g);});return a||l.set(g,u),u}function _t(e,t,n={}){let r=t.body.system;if(t.contentType!=="system"||r?.eventType!=="group_member_renamed")return;let o=new Set((n.preserveUserIds??[]).map(a=>a.trim()).filter(Boolean));for(let a of r.targetUserIds??[]){let s=a.trim();o.has(s)||cn(e,t.conversationId,s);}dn(e,t.conversationId,{forceRefresh:true});}function Nt(e,t,n){let r={};for(let o of n)o.nickName!==""&&(r[o.userId]=o.nickName);e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:se(e,t,r)});}function Dt(e,t,n,r){let o=t.trim(),a=n.trim();if(o===""||a==="")return;let s=r.trim(),i=H(e),l=i.groups.get(o)??new Map;l.set(a,s),i.groups.set(o,l);let g=e.getGroupMemberNames()[o];if(g===void 0)return;let f={...g};s===""?delete f[a]:f[a]=s,e.setGroupMemberNames({...e.getGroupMemberNames(),[o]:f});}function Ot(e,t,n={}){let r=t.trim();if(r===""||(cn(e,r),n.clearCachedNames!==true))return;let o=e.getGroupMemberNames();if(o[r]===void 0)return;let a={...o};delete a[r],e.setGroupMemberNames(a);}function Gt(e){let t=e.getClient(),n=e.getCredentials().userId;if(n===""||t===null||e.getSenderProfileCache()[n]!==void 0)return;let r=e.getGeneration();t.contact.getProfile(n).then(o=>{if(o===null||e.getGeneration()!==r)return;let a=T(o.remark),s=T(o.nickname),i=T(o.avatar);(a!==""||s!==""||i!=="")&&e.getSenderProfileCache()[n]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[n]:{remark:a,nickname:s,avatar:i}});}).catch(o=>{e.getGeneration()===r&&N(e,"self-profile-prefetch-failed",o,{userId:n});});}async function jt(e,t){let n=e.getClient();if(n===null)return;let r=e.getGeneration(),o=[];for(let a of t){let s=a.userId;e.getSenderProfileCache()[s]===void 0&&o.push((async()=>{let i;try{i=await n.contact.peekProfile(s);}catch(v){e.getGeneration()===r&&N(e,"member-avatar-prefetch-failed",v,{userId:s});return}if(i===null||e.getGeneration()!==r)return;let l=T(i.value.remark),g=T(i.value.nickname),f=T(i.value.avatar);(l!==""||g!==""||f!=="")&&e.getSenderProfileCache()[s]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[s]:{remark:l,nickname:g,avatar:f}});})());}await Promise.allSettled(o);}async function Lt(e,t,n,r){let o=e.getClient();if(o===null)return;let a=e.getCredentials().userId,s=e.getGeneration(),i=[],l=[],g=false,f=t[0]?.conversationType;f==="group"&&e.getGroupMemberNames()[n]===void 0&&i.push((async()=>{let u;try{u=await o.group.peekMemberNames(n);}catch(y){e.getGeneration()===s&&N(e,"group-member-name-prefetch-failed",y,{groupId:n});return}u===null||e.getGeneration()!==s||(e.getGroupMemberNames()[n]===void 0&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:se(e,n,u.value)}),u.stale&&(g=true));})());let v=[...new Set(t.map(u=>u.senderId).filter(u=>u!==""&&u!=="system"&&u!==a))];f==="channel"&&v.length>0&&i.push((async()=>{let u;try{u=await o.channel.getMembersByIds(n,v);}catch(c){e.getGeneration()===s&&N(e,"channel-member-prefetch-failed",c,{conversation:{conversationType:"channel",conversationId:n}});return}if(e.getGeneration()!==s||r?.isCurrent?.()===false)return;let y=Date.now()+3e5,C={...e.getChannelMemberProfiles()[n]??{}};for(let c of u){let d=C[c.userId];d!==void 0&&sn(c.updateVersion,d.updateVersion)<0||(C[c.userId]={displayName:c.displayName,...c.avatar===void 0?{}:{avatar:c.avatar},role:c.role,...c.updateVersion===void 0?{}:{updateVersion:c.updateVersion},expiresAt:y});}e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[n]:C});})());for(let u of v)e.getSenderProfileCache()[u]===void 0&&i.push((async()=>{let y;try{y=await o.contact.peekProfile(u);}catch(m){e.getGeneration()===s&&N(e,"sender-profile-prefetch-failed",m,{userId:u});return}if(y===null||e.getGeneration()!==s)return;let C=T(y.value.remark),c=T(y.value.nickname),d=T(y.value.avatar);(C!==""||c!==""||d!=="")&&e.getSenderProfileCache()[u]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[u]:{remark:C,nickname:c,avatar:d}}),y.stale&&l.push(u);})());await Promise.allSettled(i),e.getGeneration()===s&&ln(e,l,g?n:void 0);}function ln(e,t,n){let r=e.getClient();if(r===null)return;let o=e.getGeneration();n!==void 0&&r.group.getMemberNames(n,{forceRefresh:true}).then(a=>{a!==null&&e.getGeneration()===o&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:se(e,n,a,{reconcile:true})});}).catch(a=>{e.getGeneration()===o&&N(e,"group-member-name-refresh-failed",a,{groupId:n});});for(let a of t)r.contact.getProfile(a,{forceRefresh:true}).then(s=>{if(s===null||e.getGeneration()!==o)return;let i=T(s.remark),l=T(s.nickname),g=T(s.avatar),f=e.getSenderProfileCache()[a];(i!==""||l!==""||g!=="")&&(f===void 0||f.remark!==i||f.nickname!==l||f.avatar!==g)&&e.setSenderProfileCache({...e.getSenderProfileCache(),[a]:{remark:i,nickname:l,avatar:g}});}).catch(s=>{e.getGeneration()===o&&N(e,"sender-profile-refresh-failed",s,{userId:a});});}async function mo(e,t){let n=O(e),r=t.keyword.trim();return G(n,()=>{switch(t.conversation.conversationType){case "direct":return n.inDirect({conversationType:"direct",conversationId:t.conversation.conversationId},r);case "group":return n.inGroup({conversationType:"group",conversationId:t.conversation.conversationId},r);case "channel":return n.inChannel({conversationType:"channel",conversationId:t.conversation.conversationId},r)}})}async function go(e,t){let n=O(e),r=t.keyword.trim();return G(n,()=>n.texts(t.conversation,r))}function po(e,t){let n=O(e),r=t.keyword?.trim();return G(n,()=>n.files(t.conversation,r===void 0||r===""?void 0:r))}function vo(e,t){let n=O(e);return G(n,()=>n.images(t.conversation))}function yo(e,t){let n=O(e);return G(n,()=>n.videos(t.conversation))}function Co(e,t){let n=O(e);return G(n,()=>n.voices(t.conversation))}function Mo(e,t){let n=O(e);return G(n,()=>n.next(t))}function O(e){let t=e.getClient();if(t===null)throw new Error("IM client is not available");return t.search.messages}async function G(e,t){let n=await t();for(let r=0;r<5;r+=1){if(n.items.length>0||n.exhausted||r===4)return {results:n.items,...n.nextPageToken===void 0?{}:{nextPageToken:n.nextPageToken},exhausted:n.exhausted};if(n.nextPageToken===void 0)throw new Error("IM search page is missing nextPageToken");n=await e.next(n.nextPageToken);}throw new Error("Unreachable search pagination state")}export{no as $,Fn as A,po as Aa,Ar as B,vo as Ba,kr as C,yo as Ca,Te as D,Co as Da,Ee as E,Mo as Ea,Je as F,Gr as G,jr as H,Lr as I,qe as J,Qe as K,D as L,Kn as M,Ze as N,X as O,Pe as P,Yn as Q,Xr as R,Jn as S,Yr as T,Jr as U,tn as V,qr as W,qn as X,Qr as Y,Zr as Z,eo as _,un as a,to as aa,mn as b,ro as ba,gn as c,rt as ca,pn as d,at as da,ae as e,lt as ea,In as f,ft as fa,Ie as g,ut as ga,Sn as h,mt as ha,Ke as i,yt as ia,Pn as j,Mt as ja,wn as k,xt as ka,An as l,bt as la,kn as m,Tt as ma,$t as n,Et as na,Xt as o,fo as oa,Dn as p,At as pa,Yt as q,dn as qa,Zt as r,kt as ra,hr as s,_t as sa,Bn as t,Nt as ta,Hn as u,Dt as ua,Tr as v,Ot as va,Ye as w,Gt as wa,Pr as x,Bt as xa,Rr as y,mo as ya,wr as z,go as za};